From c51423b6aab5e92dd6a9450682d371ccab5d8e80 Mon Sep 17 00:00:00 2001 From: Stefan Popov Date: Fri, 23 Jul 2021 16:33:00 +0400 Subject: [PATCH 1/6] Improve build config --- build/rollup.config.js | 17 +++++++---------- package.json | 2 +- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/build/rollup.config.js b/build/rollup.config.js index 4a1ec3c2..cb594c84 100644 --- a/build/rollup.config.js +++ b/build/rollup.config.js @@ -26,7 +26,10 @@ export default { 'src/store/index.ts', 'src/utils/*.ts', 'src/directives/index.ts', - 'src/components/*/**/index.ts' + 'src/components/*/**/index.ts', + 'src/components/*/**/consts.ts', + 'src/components/DesignSystem/DesignSystemInject.ts', + 'src/mixins/*.ts' ], output: { format: 'esm', @@ -78,16 +81,10 @@ export default { del({ targets: [ 'lib/styles/index.d.ts', + 'lib/normalize-component-**.js', + 'lib/components-**.js', + 'lib/index-**.js', 'bundle.css' - // TODO: find a way how to remove this dependencies - // 'lib/BorderRadiusMixin-**.js', - // 'lib/SizeMixin-**.js', - // 'lib/DesignSystem-**.js', - // 'lib/DesignSystemInject-**.js', - // 'lib/normalize-component-**.js', - // 'lib/components-**.js', - // 'lib/consts-**.js', - // 'lib/index-**.js' ], hook: 'writeBundle' }) diff --git a/package.json b/package.json index 5d4254a9..03bf50d5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@soramitsu/soramitsu-js-ui", - "version": "1.0.3", + "version": "1.0.4", "private": false, "publishConfig": { "registry": "https://nexus.iroha.tech/repository/npm-soramitsu/" From d624d7b3cbc19d991198256479086e4f5da9a780 Mon Sep 17 00:00:00 2001 From: Stefan Popov Date: Sun, 25 Jul 2021 05:07:12 +0400 Subject: [PATCH 2/6] Add install function --- src/components/Breadcrumb/SBreadcrumb/index.ts | 6 ++---- src/components/Breadcrumb/SBreadcrumbItem/index.ts | 6 ++---- src/components/Button/SButton/index.ts | 6 ++---- src/components/Button/SButtonGroup/index.ts | 6 ++---- src/components/Card/SCard/index.ts | 6 ++---- src/components/Checkbox/index.ts | 6 ++---- src/components/Collapse/SCollapse/index.ts | 6 ++---- src/components/Collapse/SCollapseItem/index.ts | 6 ++---- src/components/DatePicker/SDatePicker/index.ts | 6 ++---- .../DesignSystem/SDesignSystemProvider/index.ts | 6 ++---- src/components/Dialog/index.ts | 6 ++---- src/components/Divider/SDivider/index.ts | 6 ++---- src/components/Dropdown/SDropdown/index.ts | 6 ++---- src/components/Dropdown/SDropdownItem/index.ts | 6 ++---- src/components/Form/SForm/index.ts | 6 ++---- src/components/Form/SFormItem/index.ts | 6 ++---- src/components/Icon/SIcon/index.ts | 6 ++---- src/components/Input/SFloatInput/index.ts | 6 ++---- src/components/Input/SInput/index.ts | 6 ++---- src/components/Input/SJsonInput/index.ts | 6 ++---- src/components/Layout/App/index.ts | 6 ++---- src/components/Layout/Aside/index.ts | 6 ++---- src/components/Layout/Col/index.ts | 6 ++---- src/components/Layout/Container/index.ts | 6 ++---- src/components/Layout/Footer/index.ts | 6 ++---- src/components/Layout/Header/index.ts | 6 ++---- src/components/Layout/Main/index.ts | 6 ++---- src/components/Layout/Row/index.ts | 6 ++---- src/components/Menu/SMenu/index.ts | 6 ++---- src/components/Menu/SMenuItem/index.ts | 6 ++---- src/components/Menu/SMenuItemGroup/index.ts | 6 ++---- src/components/Menu/SSubMenu/index.ts | 6 ++---- src/components/Pagination/index.ts | 6 ++---- src/components/Radio/SRadio/index.ts | 6 ++---- src/components/Radio/SRadioGroup/index.ts | 6 ++---- .../ScrollSections/SScrollSectionItem/index.ts | 6 ++---- src/components/ScrollSections/SScrollSections/index.ts | 6 ++---- src/components/Scrollbar/index.ts | 6 ++---- src/components/Select/SOption/index.ts | 6 ++---- src/components/Select/SOptionGroup/index.ts | 6 ++---- src/components/Select/SSelect/index.ts | 6 ++---- src/components/Slider/index.ts | 6 ++---- src/components/Switch/index.ts | 6 ++---- src/components/Tab/STab/index.ts | 6 ++---- src/components/Tab/STabs/index.ts | 6 ++---- src/components/Table/SHierarchicalTable/index.ts | 6 ++---- src/components/Table/STable/index.ts | 6 ++---- src/components/Table/STableColumn/index.ts | 6 ++---- src/components/Tooltip/index.ts | 6 ++---- src/utils/install.ts | 9 +++++++++ 50 files changed, 107 insertions(+), 196 deletions(-) create mode 100644 src/utils/install.ts diff --git a/src/components/Breadcrumb/SBreadcrumb/index.ts b/src/components/Breadcrumb/SBreadcrumb/index.ts index 25093ad7..a4ae62ef 100644 --- a/src/components/Breadcrumb/SBreadcrumb/index.ts +++ b/src/components/Breadcrumb/SBreadcrumb/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SBreadcrumb from './SBreadcrumb.vue' const SBreadcrumb = _SBreadcrumb as SFCWithInstall -SBreadcrumb.install = function (vue: VueConstructor) { - vue.component(Components.SBreadcrumb, SBreadcrumb) -} +SBreadcrumb.install = install(Components.SBreadcrumb, SBreadcrumb) export { SBreadcrumb } export default SBreadcrumb diff --git a/src/components/Breadcrumb/SBreadcrumbItem/index.ts b/src/components/Breadcrumb/SBreadcrumbItem/index.ts index 4b553cb2..1f03cd39 100644 --- a/src/components/Breadcrumb/SBreadcrumbItem/index.ts +++ b/src/components/Breadcrumb/SBreadcrumbItem/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SBreadcrumbItem from './SBreadcrumbItem.vue' const SBreadcrumbItem = _SBreadcrumbItem as SFCWithInstall -SBreadcrumbItem.install = function (vue: VueConstructor) { - vue.component(Components.SBreadcrumbItem, SBreadcrumbItem) -} +SBreadcrumbItem.install = install(Components.SBreadcrumbItem, SBreadcrumbItem) export { SBreadcrumbItem } export default SBreadcrumbItem diff --git a/src/components/Button/SButton/index.ts b/src/components/Button/SButton/index.ts index 6e4b31ab..63000572 100644 --- a/src/components/Button/SButton/index.ts +++ b/src/components/Button/SButton/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SButton from './SButton.vue' const SButton = _SButton as SFCWithInstall -SButton.install = function (vue: VueConstructor) { - vue.component(Components.SButton, SButton) -} +SButton.install = install(Components.SButton, SButton) export { SButton } export default SButton diff --git a/src/components/Button/SButtonGroup/index.ts b/src/components/Button/SButtonGroup/index.ts index 1d5863b0..34750a1c 100644 --- a/src/components/Button/SButtonGroup/index.ts +++ b/src/components/Button/SButtonGroup/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SButtonGroup from './SButtonGroup.vue' const SButtonGroup = _SButtonGroup as SFCWithInstall -SButtonGroup.install = function (vue: VueConstructor) { - vue.component(Components.SButtonGroup, SButtonGroup) -} +SButtonGroup.install = install(Components.SButtonGroup, SButtonGroup) export { SButtonGroup } export default SButtonGroup diff --git a/src/components/Card/SCard/index.ts b/src/components/Card/SCard/index.ts index c301ebde..dd9f56b1 100644 --- a/src/components/Card/SCard/index.ts +++ b/src/components/Card/SCard/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SCard from './SCard.vue' const SCard = _SCard as SFCWithInstall -SCard.install = function (vue: VueConstructor) { - vue.component(Components.SCard, SCard) -} +SCard.install = install(Components.SCard, SCard) export { SCard } export default SCard diff --git a/src/components/Checkbox/index.ts b/src/components/Checkbox/index.ts index 8781ed78..7736b71b 100644 --- a/src/components/Checkbox/index.ts +++ b/src/components/Checkbox/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../types/components' +import install from '../../utils/install' import _SCheckbox from './SCheckbox.vue' const SCheckbox = _SCheckbox as SFCWithInstall -SCheckbox.install = function (vue: VueConstructor) { - vue.component(Components.SCheckbox, SCheckbox) -} +SCheckbox.install = install(Components.SCheckbox, SCheckbox) export { SCheckbox } export default SCheckbox diff --git a/src/components/Collapse/SCollapse/index.ts b/src/components/Collapse/SCollapse/index.ts index 9c09acc7..19e60223 100644 --- a/src/components/Collapse/SCollapse/index.ts +++ b/src/components/Collapse/SCollapse/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SCollapse from './SCollapse.vue' const SCollapse = _SCollapse as SFCWithInstall -SCollapse.install = function (vue: VueConstructor) { - vue.component(Components.SCollapse, SCollapse) -} +SCollapse.install = install(Components.SCollapse, SCollapse) export { SCollapse } export default SCollapse diff --git a/src/components/Collapse/SCollapseItem/index.ts b/src/components/Collapse/SCollapseItem/index.ts index e2b40340..7df6110a 100644 --- a/src/components/Collapse/SCollapseItem/index.ts +++ b/src/components/Collapse/SCollapseItem/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SCollapseItem from './SCollapseItem.vue' const SCollapseItem = _SCollapseItem as SFCWithInstall -SCollapseItem.install = function (vue: VueConstructor) { - vue.component(Components.SCollapseItem, SCollapseItem) -} +SCollapseItem.install = install(Components.SCollapseItem, SCollapseItem) export { SCollapseItem } export default SCollapseItem diff --git a/src/components/DatePicker/SDatePicker/index.ts b/src/components/DatePicker/SDatePicker/index.ts index 88736cc4..ebc9c6b6 100644 --- a/src/components/DatePicker/SDatePicker/index.ts +++ b/src/components/DatePicker/SDatePicker/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SDatePicker from './SDatePicker.vue' const SDatePicker = _SDatePicker as SFCWithInstall -SDatePicker.install = function (vue: VueConstructor) { - vue.component(Components.SDatePicker, SDatePicker) -} +SDatePicker.install = install(Components.SDatePicker, SDatePicker) export { SDatePicker } export default SDatePicker diff --git a/src/components/DesignSystem/SDesignSystemProvider/index.ts b/src/components/DesignSystem/SDesignSystemProvider/index.ts index fff691a4..cb9055a0 100644 --- a/src/components/DesignSystem/SDesignSystemProvider/index.ts +++ b/src/components/DesignSystem/SDesignSystemProvider/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SDesignSystemProvider from './SDesignSystemProvider.vue' const SDesignSystemProvider = _SDesignSystemProvider as SFCWithInstall -SDesignSystemProvider.install = function (vue: VueConstructor) { - vue.component(Components.SDesignSystemProvider, SDesignSystemProvider) -} +SDesignSystemProvider.install = install(Components.SDesignSystemProvider, SDesignSystemProvider) export { SDesignSystemProvider } export default SDesignSystemProvider diff --git a/src/components/Dialog/index.ts b/src/components/Dialog/index.ts index 6f8c2603..8746c7eb 100644 --- a/src/components/Dialog/index.ts +++ b/src/components/Dialog/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../types/components' +import install from '../../utils/install' import _SDialog from './SDialog.vue' const SDialog = _SDialog as SFCWithInstall -SDialog.install = function (vue: VueConstructor) { - vue.component(Components.SDialog, SDialog) -} +SDialog.install = install(Components.SDialog, SDialog) export { SDialog } export default SDialog diff --git a/src/components/Divider/SDivider/index.ts b/src/components/Divider/SDivider/index.ts index dcef8f6c..a80839f3 100644 --- a/src/components/Divider/SDivider/index.ts +++ b/src/components/Divider/SDivider/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SDivider from './SDivider.vue' const SDivider = _SDivider as SFCWithInstall -SDivider.install = function (vue: VueConstructor) { - vue.component(Components.SDivider, SDivider) -} +SDivider.install = install(Components.SDivider, SDivider) export { SDivider } export default SDivider diff --git a/src/components/Dropdown/SDropdown/index.ts b/src/components/Dropdown/SDropdown/index.ts index e01774c2..702fcce6 100644 --- a/src/components/Dropdown/SDropdown/index.ts +++ b/src/components/Dropdown/SDropdown/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SDropdown from './SDropdown.vue' const SDropdown = _SDropdown as SFCWithInstall -SDropdown.install = function (vue: VueConstructor) { - vue.component(Components.SDropdown, SDropdown) -} +SDropdown.install = install(Components.SDropdown, SDropdown) export { SDropdown } export default SDropdown diff --git a/src/components/Dropdown/SDropdownItem/index.ts b/src/components/Dropdown/SDropdownItem/index.ts index 04d464e7..d7a5980d 100644 --- a/src/components/Dropdown/SDropdownItem/index.ts +++ b/src/components/Dropdown/SDropdownItem/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SDropdownItem from './SDropdownItem.vue' const SDropdownItem = _SDropdownItem as SFCWithInstall -SDropdownItem.install = function (vue: VueConstructor) { - vue.component(Components.SDropdownItem, SDropdownItem) -} +SDropdownItem.install = install(Components.SDropdownItem, SDropdownItem) export { SDropdownItem } export default SDropdownItem diff --git a/src/components/Form/SForm/index.ts b/src/components/Form/SForm/index.ts index bde5ee19..e9aece5b 100644 --- a/src/components/Form/SForm/index.ts +++ b/src/components/Form/SForm/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SForm from './SForm.vue' const SForm = _SForm as SFCWithInstall -SForm.install = function (vue: VueConstructor) { - vue.component(Components.SForm, SForm) -} +SForm.install = install(Components.SForm, SForm) export { SForm } export default SForm diff --git a/src/components/Form/SFormItem/index.ts b/src/components/Form/SFormItem/index.ts index dc2aaafa..76b96e41 100644 --- a/src/components/Form/SFormItem/index.ts +++ b/src/components/Form/SFormItem/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SFormItem from './SFormItem.vue' const SFormItem = _SFormItem as SFCWithInstall -SFormItem.install = function (vue: VueConstructor) { - vue.component(Components.SFormItem, SFormItem) -} +SFormItem.install = install(Components.SFormItem, SFormItem) export { SFormItem } export default SFormItem diff --git a/src/components/Icon/SIcon/index.ts b/src/components/Icon/SIcon/index.ts index c98e953c..d773ba32 100644 --- a/src/components/Icon/SIcon/index.ts +++ b/src/components/Icon/SIcon/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SIcon from './SIcon.vue' const SIcon = _SIcon as SFCWithInstall -SIcon.install = function (vue: VueConstructor) { - vue.component(Components.SIcon, SIcon) -} +SIcon.install = install(Components.SIcon, SIcon) export { SIcon } export default SIcon diff --git a/src/components/Input/SFloatInput/index.ts b/src/components/Input/SFloatInput/index.ts index 6077fab3..65e777ae 100644 --- a/src/components/Input/SFloatInput/index.ts +++ b/src/components/Input/SFloatInput/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SFloatInput from './SFloatInput.vue' const SFloatInput = _SFloatInput as SFCWithInstall -SFloatInput.install = function (vue: VueConstructor) { - vue.component(Components.SFloatInput, SFloatInput) -} +SFloatInput.install = install(Components.SFloatInput, SFloatInput) export { SFloatInput } export default SFloatInput diff --git a/src/components/Input/SInput/index.ts b/src/components/Input/SInput/index.ts index 610fee45..547e4565 100644 --- a/src/components/Input/SInput/index.ts +++ b/src/components/Input/SInput/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SInput from './SInput.vue' const SInput = _SInput as SFCWithInstall -SInput.install = function (vue: VueConstructor) { - vue.component(Components.SInput, SInput) -} +SInput.install = install(Components.SInput, SInput) export { SInput } export default SInput diff --git a/src/components/Input/SJsonInput/index.ts b/src/components/Input/SJsonInput/index.ts index 93fd86cb..52452ee7 100644 --- a/src/components/Input/SJsonInput/index.ts +++ b/src/components/Input/SJsonInput/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SJsonInput from './SJsonInput.vue' const SJsonInput = _SJsonInput as SFCWithInstall -SJsonInput.install = function (vue: VueConstructor) { - vue.component(Components.SJsonInput, SJsonInput) -} +SJsonInput.install = install(Components.SJsonInput, SJsonInput) export { SJsonInput } export default SJsonInput diff --git a/src/components/Layout/App/index.ts b/src/components/Layout/App/index.ts index 51f69229..68d25e86 100644 --- a/src/components/Layout/App/index.ts +++ b/src/components/Layout/App/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SApp from './SApp.vue' const SApp = _SApp as SFCWithInstall -SApp.install = function (vue: VueConstructor) { - vue.component(Components.SApp, SApp) -} +SApp.install = install(Components.SApp, SApp) export { SApp } export default SApp diff --git a/src/components/Layout/Aside/index.ts b/src/components/Layout/Aside/index.ts index c204a812..cda78d9f 100644 --- a/src/components/Layout/Aside/index.ts +++ b/src/components/Layout/Aside/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SAside from './SAside.vue' const SAside = _SAside as SFCWithInstall -SAside.install = function (vue: VueConstructor) { - vue.component(Components.SAside, SAside) -} +SAside.install = install(Components.SAside, SAside) export { SAside } export default SAside diff --git a/src/components/Layout/Col/index.ts b/src/components/Layout/Col/index.ts index 223da3af..36ecb13b 100644 --- a/src/components/Layout/Col/index.ts +++ b/src/components/Layout/Col/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SCol from './SCol.vue' const SCol = _SCol as SFCWithInstall -SCol.install = function (vue: VueConstructor) { - vue.component(Components.SCol, SCol) -} +SCol.install = install(Components.SCol, SCol) export { SCol } export default SCol diff --git a/src/components/Layout/Container/index.ts b/src/components/Layout/Container/index.ts index fbb8946b..aac2f1e7 100644 --- a/src/components/Layout/Container/index.ts +++ b/src/components/Layout/Container/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SContainer from './SContainer.vue' const SContainer = _SContainer as SFCWithInstall -SContainer.install = function (vue: VueConstructor) { - vue.component(Components.SContainer, SContainer) -} +SContainer.install = install(Components.SContainer, SContainer) export { SContainer } export { ContainerDirection } from './consts' diff --git a/src/components/Layout/Footer/index.ts b/src/components/Layout/Footer/index.ts index 294e4efe..d6c7cef8 100644 --- a/src/components/Layout/Footer/index.ts +++ b/src/components/Layout/Footer/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SFooter from './SFooter.vue' const SFooter = _SFooter as SFCWithInstall -SFooter.install = function (vue: VueConstructor) { - vue.component(Components.SFooter, SFooter) -} +SFooter.install = install(Components.SFooter, SFooter) export { SFooter } export default SFooter diff --git a/src/components/Layout/Header/index.ts b/src/components/Layout/Header/index.ts index d90d71d2..d100a592 100644 --- a/src/components/Layout/Header/index.ts +++ b/src/components/Layout/Header/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SHeader from './SHeader.vue' const SHeader = _SHeader as SFCWithInstall -SHeader.install = function (vue: VueConstructor) { - vue.component(Components.SHeader, SHeader) -} +SHeader.install = install(Components.SHeader, SHeader) export { SHeader } export default SHeader diff --git a/src/components/Layout/Main/index.ts b/src/components/Layout/Main/index.ts index e30ec8ab..95dcd754 100644 --- a/src/components/Layout/Main/index.ts +++ b/src/components/Layout/Main/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SMain from './SMain.vue' const SMain = _SMain as SFCWithInstall -SMain.install = function (vue: VueConstructor) { - vue.component(Components.SMain, SMain) -} +SMain.install = install(Components.SMain, SMain) export { SMain } export default SMain diff --git a/src/components/Layout/Row/index.ts b/src/components/Layout/Row/index.ts index eff810d3..753ec2ef 100644 --- a/src/components/Layout/Row/index.ts +++ b/src/components/Layout/Row/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SRow from './SRow.vue' const SRow = _SRow as SFCWithInstall -SRow.install = function (vue: VueConstructor) { - vue.component(Components.SRow, SRow) -} +SRow.install = install(Components.SRow, SRow) export { SRow } export default SRow diff --git a/src/components/Menu/SMenu/index.ts b/src/components/Menu/SMenu/index.ts index db104f18..27494e0a 100644 --- a/src/components/Menu/SMenu/index.ts +++ b/src/components/Menu/SMenu/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SMenu from './SMenu.vue' const SMenu = _SMenu as SFCWithInstall -SMenu.install = function (vue: VueConstructor) { - vue.component(Components.SMenu, SMenu) -} +SMenu.install = install(Components.SMenu, SMenu) export { SMenu } export default SMenu diff --git a/src/components/Menu/SMenuItem/index.ts b/src/components/Menu/SMenuItem/index.ts index 6e8e6811..80e5432d 100644 --- a/src/components/Menu/SMenuItem/index.ts +++ b/src/components/Menu/SMenuItem/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SMenuItem from './SMenuItem.vue' const SMenuItem = _SMenuItem as SFCWithInstall -SMenuItem.install = function (vue: VueConstructor) { - vue.component(Components.SMenuItem, SMenuItem) -} +SMenuItem.install = install(Components.SMenuItem, SMenuItem) export { SMenuItem } export default SMenuItem diff --git a/src/components/Menu/SMenuItemGroup/index.ts b/src/components/Menu/SMenuItemGroup/index.ts index 46b508c6..808ff05a 100644 --- a/src/components/Menu/SMenuItemGroup/index.ts +++ b/src/components/Menu/SMenuItemGroup/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SMenuItemGroup from './SMenuItemGroup.vue' const SMenuItemGroup = _SMenuItemGroup as SFCWithInstall -SMenuItemGroup.install = function (vue: VueConstructor) { - vue.component(Components.SMenuItemGroup, SMenuItemGroup) -} +SMenuItemGroup.install = install(Components.SMenuItemGroup, SMenuItemGroup) export { SMenuItemGroup } export default SMenuItemGroup diff --git a/src/components/Menu/SSubMenu/index.ts b/src/components/Menu/SSubMenu/index.ts index e37fa229..737f7d60 100644 --- a/src/components/Menu/SSubMenu/index.ts +++ b/src/components/Menu/SSubMenu/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SSubMenu from './SSubmenu.vue' const SSubmenu = _SSubMenu as SFCWithInstall -SSubmenu.install = function (vue: VueConstructor) { - vue.component(Components.SSubmenu, SSubmenu) -} +SSubmenu.install = install(Components.SSubmenu, SSubmenu) export { SSubmenu } export default SSubmenu diff --git a/src/components/Pagination/index.ts b/src/components/Pagination/index.ts index 75c18e9c..b47e2c00 100644 --- a/src/components/Pagination/index.ts +++ b/src/components/Pagination/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../types/components' +import install from '../../utils/install' import _SPagination from './SPagination.vue' const SPagination = _SPagination as SFCWithInstall -SPagination.install = function (vue: VueConstructor) { - vue.component(Components.SPagination, SPagination) -} +SPagination.install = install(Components.SPagination, SPagination) export { SPagination } export default SPagination diff --git a/src/components/Radio/SRadio/index.ts b/src/components/Radio/SRadio/index.ts index 34638d06..50b2ea79 100644 --- a/src/components/Radio/SRadio/index.ts +++ b/src/components/Radio/SRadio/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SRadio from './SRadio.vue' const SRadio = _SRadio as SFCWithInstall -SRadio.install = function (vue: VueConstructor) { - vue.component(Components.SRadio, SRadio) -} +SRadio.install = install(Components.SRadio, SRadio) export { SRadio } export default SRadio diff --git a/src/components/Radio/SRadioGroup/index.ts b/src/components/Radio/SRadioGroup/index.ts index 4849cb19..f11131eb 100644 --- a/src/components/Radio/SRadioGroup/index.ts +++ b/src/components/Radio/SRadioGroup/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SRadioGroup from './SRadioGroup.vue' const SRadioGroup = _SRadioGroup as SFCWithInstall -SRadioGroup.install = function (vue: VueConstructor) { - vue.component(Components.SRadioGroup, SRadioGroup) -} +SRadioGroup.install = install(Components.SRadioGroup, SRadioGroup) export { SRadioGroup } export default SRadioGroup diff --git a/src/components/ScrollSections/SScrollSectionItem/index.ts b/src/components/ScrollSections/SScrollSectionItem/index.ts index 5094f4cd..d3f5ea65 100644 --- a/src/components/ScrollSections/SScrollSectionItem/index.ts +++ b/src/components/ScrollSections/SScrollSectionItem/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SScrollSectionItem from './SScrollSectionItem.vue' const SScrollSectionItem = _SScrollSectionItem as SFCWithInstall -SScrollSectionItem.install = function (vue: VueConstructor) { - vue.component(Components.SScrollSectionItem, SScrollSectionItem) -} +SScrollSectionItem.install = install(Components.SScrollSectionItem, SScrollSectionItem) export { SScrollSectionItem } export default SScrollSectionItem diff --git a/src/components/ScrollSections/SScrollSections/index.ts b/src/components/ScrollSections/SScrollSections/index.ts index 254e86f1..260ce0bd 100644 --- a/src/components/ScrollSections/SScrollSections/index.ts +++ b/src/components/ScrollSections/SScrollSections/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SScrollSections from './SScrollSections.vue' const SScrollSections = _SScrollSections as SFCWithInstall -SScrollSections.install = function (vue: VueConstructor) { - vue.component(Components.SScrollSections, SScrollSections) -} +SScrollSections.install = install(Components.SScrollSections, SScrollSections) export { SScrollSections } export default SScrollSections diff --git a/src/components/Scrollbar/index.ts b/src/components/Scrollbar/index.ts index a3e62ad1..93304447 100644 --- a/src/components/Scrollbar/index.ts +++ b/src/components/Scrollbar/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../types/components' +import install from '../../utils/install' import _SScrollbar from './SScrollbar.vue' const SScrollbar = _SScrollbar as SFCWithInstall -SScrollbar.install = function (vue: VueConstructor) { - vue.component(Components.SScrollbar, SScrollbar) -} +SScrollbar.install = install(Components.SScrollbar, SScrollbar) export { SScrollbar } export default SScrollbar diff --git a/src/components/Select/SOption/index.ts b/src/components/Select/SOption/index.ts index 19a4b1d0..0853d03a 100644 --- a/src/components/Select/SOption/index.ts +++ b/src/components/Select/SOption/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SOption from './SOption.vue' const SOption = _SOption as SFCWithInstall -SOption.install = function (vue: VueConstructor) { - vue.component(Components.SOption, SOption) -} +SOption.install = install(Components.SOption, SOption) export { SOption } export default SOption diff --git a/src/components/Select/SOptionGroup/index.ts b/src/components/Select/SOptionGroup/index.ts index 8a49fdc2..704dfa52 100644 --- a/src/components/Select/SOptionGroup/index.ts +++ b/src/components/Select/SOptionGroup/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SOptionGroup from './SOptionGroup.vue' const SOptionGroup = _SOptionGroup as SFCWithInstall -SOptionGroup.install = function (vue: VueConstructor) { - vue.component(Components.SOptionGroup, SOptionGroup) -} +SOptionGroup.install = install(Components.SOptionGroup, SOptionGroup) export { SOptionGroup } export default SOptionGroup diff --git a/src/components/Select/SSelect/index.ts b/src/components/Select/SSelect/index.ts index 8928c212..ae7dd126 100644 --- a/src/components/Select/SSelect/index.ts +++ b/src/components/Select/SSelect/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SSelect from './SSelect.vue' const SSelect = _SSelect as SFCWithInstall -SSelect.install = function (vue: VueConstructor) { - vue.component(Components.SSelect, SSelect) -} +SSelect.install = install(Components.SSelect, SSelect) export { SSelect } export default SSelect diff --git a/src/components/Slider/index.ts b/src/components/Slider/index.ts index 839ae775..f98f9e04 100644 --- a/src/components/Slider/index.ts +++ b/src/components/Slider/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../types/components' +import install from '../../utils/install' import _SSlider from './SSlider.vue' const SSlider = _SSlider as SFCWithInstall -SSlider.install = function (vue: VueConstructor) { - vue.component(Components.SSlider, SSlider) -} +SSlider.install = install(Components.SSlider, SSlider) export { SSlider } export { SliderInputSize } from './consts' diff --git a/src/components/Switch/index.ts b/src/components/Switch/index.ts index 849299b3..cc9b3914 100644 --- a/src/components/Switch/index.ts +++ b/src/components/Switch/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../types/components' +import install from '../../utils/install' import _SSwitch from './SSwitch.vue' const SSwitch = _SSwitch as SFCWithInstall -SSwitch.install = function (vue: VueConstructor) { - vue.component(Components.SSwitch, SSwitch) -} +SSwitch.install = install(Components.SSwitch, SSwitch) export { SSwitch } export default SSwitch diff --git a/src/components/Tab/STab/index.ts b/src/components/Tab/STab/index.ts index 12b0e5da..74c95107 100644 --- a/src/components/Tab/STab/index.ts +++ b/src/components/Tab/STab/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import TabPane from 'element-ui/lib/tab-pane' const STab = TabPane as SFCWithInstall -STab.install = function (vue: VueConstructor) { - vue.component(Components.STab, STab) -} +STab.install = install(Components.STab, STab) export { STab } export default STab diff --git a/src/components/Tab/STabs/index.ts b/src/components/Tab/STabs/index.ts index 4bcc1154..55a94720 100644 --- a/src/components/Tab/STabs/index.ts +++ b/src/components/Tab/STabs/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _STabs from './STabs.vue' const STabs = _STabs as SFCWithInstall -STabs.install = function (vue: VueConstructor) { - vue.component(Components.STabs, STabs) -} +STabs.install = install(Components.STabs, STabs) export { STabs } export default STabs diff --git a/src/components/Table/SHierarchicalTable/index.ts b/src/components/Table/SHierarchicalTable/index.ts index f2a7de91..fd0f1164 100644 --- a/src/components/Table/SHierarchicalTable/index.ts +++ b/src/components/Table/SHierarchicalTable/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _SHierarchicalTable from './SHierarchicalTable.vue' const SHierarchicalTable = _SHierarchicalTable as SFCWithInstall -SHierarchicalTable.install = function (vue: VueConstructor) { - vue.component(Components.SHierarchicalTable, SHierarchicalTable) -} +SHierarchicalTable.install = install(Components.SHierarchicalTable, SHierarchicalTable) export { SHierarchicalTable } export default SHierarchicalTable diff --git a/src/components/Table/STable/index.ts b/src/components/Table/STable/index.ts index 21315cdb..ad5fbb67 100644 --- a/src/components/Table/STable/index.ts +++ b/src/components/Table/STable/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _STable from './STable.vue' const STable = _STable as SFCWithInstall -STable.install = function (vue: VueConstructor) { - vue.component(Components.STable, STable) -} +STable.install = install(Components.STable, STable) export { STable } export default STable diff --git a/src/components/Table/STableColumn/index.ts b/src/components/Table/STableColumn/index.ts index 2c85fd6a..c4b3d2a8 100644 --- a/src/components/Table/STableColumn/index.ts +++ b/src/components/Table/STableColumn/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../../types/components' +import install from '../../../utils/install' import _STableColumn from './STableColumn.vue' const STableColumn = _STableColumn as SFCWithInstall -STableColumn.install = function (vue: VueConstructor) { - vue.component(Components.STableColumn, STableColumn) -} +STableColumn.install = install(Components.STableColumn, STableColumn) export { STableColumn } export default STableColumn diff --git a/src/components/Tooltip/index.ts b/src/components/Tooltip/index.ts index 540d9cad..1c77381b 100644 --- a/src/components/Tooltip/index.ts +++ b/src/components/Tooltip/index.ts @@ -1,13 +1,11 @@ -import { VueConstructor } from 'vue' import { Components, SFCWithInstall } from '../../types/components' +import install from '../../utils/install' import _STooltip from './STooltip.vue' const STooltip = _STooltip as SFCWithInstall -STooltip.install = function (vue: VueConstructor) { - vue.component(Components.STooltip, STooltip) -} +STooltip.install = install(Components.STooltip, STooltip) export { STooltip } export { TooltipTheme, TooltipPlacement } from './consts' diff --git a/src/utils/install.ts b/src/utils/install.ts new file mode 100644 index 00000000..c32222f6 --- /dev/null +++ b/src/utils/install.ts @@ -0,0 +1,9 @@ +import { VueConstructor } from 'vue' + +import { Components, SFCWithInstall } from '../types/components' + +export default function (component: Components, instance: SFCWithInstall) { + return function (vue: VueConstructor) { + vue.component(component, instance) + } +} From 7ed4656b52b6414352edc8e60bcf0f44f4d215c3 Mon Sep 17 00:00:00 2001 From: Stefan Popov Date: Sun, 25 Jul 2021 05:09:33 +0400 Subject: [PATCH 3/6] Improve build config --- build/rollup.config.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/build/rollup.config.js b/build/rollup.config.js index cb594c84..78630ecb 100644 --- a/build/rollup.config.js +++ b/build/rollup.config.js @@ -21,6 +21,8 @@ export default { 'src/types/DesignSystem.ts', 'src/types/Locale.ts', 'src/types/Theme.ts', + 'src/types/components.ts', + 'src/types/index.ts', 'src/locale/index.ts', 'src/plugins/*.ts', 'src/store/index.ts', @@ -77,13 +79,12 @@ export default { }), scss(), resolve(), - terser(), + /* eslint-disable @typescript-eslint/camelcase */ + terser({ keep_classnames: true }), del({ targets: [ - 'lib/styles/index.d.ts', - 'lib/normalize-component-**.js', - 'lib/components-**.js', - 'lib/index-**.js', + // TODO: find a way how to remove this dependency below + // 'lib/normalize-component-**.js', 'bundle.css' ], hook: 'writeBundle' From 2e237d769799e994f6cce70cd086d1b469681b71 Mon Sep 17 00:00:00 2001 From: Stefan Popov Date: Sun, 25 Jul 2021 05:36:40 +0400 Subject: [PATCH 4/6] Fix issues --- src/components/DesignSystem/DesignSystemInject.ts | 2 ++ .../SDesignSystemProvider/SDesignSystemProvider.vue | 2 ++ src/components/Table/STableColumn/STableColumn.vue | 1 - src/index.ts | 1 + src/mixins/BorderRadiusMixin.ts | 1 + src/mixins/SizeMixin.ts | 1 + src/mixins/StatusMixin.ts | 1 + src/plugins/soramitsuUIStore.ts | 1 + src/stories/Menu/SMenu.stories.ts | 1 + 9 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/components/DesignSystem/DesignSystemInject.ts b/src/components/DesignSystem/DesignSystemInject.ts index 24ca84cd..1b76f72b 100644 --- a/src/components/DesignSystem/DesignSystemInject.ts +++ b/src/components/DesignSystem/DesignSystemInject.ts @@ -1,10 +1,12 @@ import { Component, Vue, Inject, Prop } from 'vue-property-decorator' + import { DesignSystemProvideKey } from './consts' import DesignSystem from '../../types/DesignSystem' @Component export default class DesignSystemInject extends Vue { @Prop({ default: true, type: Boolean }) readonly useDesignSystem!: boolean + @Inject({ from: DesignSystemProvideKey, default: DesignSystem.DEFAULT }) readonly designSystem!: any get designSystemClass (): string { diff --git a/src/components/DesignSystem/SDesignSystemProvider/SDesignSystemProvider.vue b/src/components/DesignSystem/SDesignSystemProvider/SDesignSystemProvider.vue index 57e40ce8..15df436c 100644 --- a/src/components/DesignSystem/SDesignSystemProvider/SDesignSystemProvider.vue +++ b/src/components/DesignSystem/SDesignSystemProvider/SDesignSystemProvider.vue @@ -6,12 +6,14 @@