eco-vue-js 0.8.41 → 0.8.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ActionsBar/WActionsBar.vue.d.ts.map +1 -1
- package/dist/components/ActionsBar/WActionsBar.vue.js +8 -8
- package/dist/components/BottomSheet/WBottomSheet.vue.d.ts +4 -4
- package/dist/components/BottomSheet/WBottomSheet.vue.d.ts.map +1 -1
- package/dist/components/BottomSheet/WBottomSheet.vue.js +28 -39
- package/dist/components/Button/WButton.vue.d.ts +1 -1
- package/dist/components/Button/WButton.vue.d.ts.map +1 -1
- package/dist/components/Button/WButton.vue.js +7 -7
- package/dist/components/Button/WButtonAction.vue.d.ts +1 -1
- package/dist/components/Button/WButtonAction.vue.d.ts.map +1 -1
- package/dist/components/Button/WButtonAction.vue.js +3 -3
- package/dist/components/Button/WButtonCopy.vue.d.ts.map +1 -1
- package/dist/components/Button/WButtonCopy.vue.js +1 -1
- package/dist/components/Button/WButtonDropdown.vue.d.ts +1 -1
- package/dist/components/Button/WButtonDropdown.vue.d.ts.map +1 -1
- package/dist/components/Button/WButtonDropdown.vue.js +3 -3
- package/dist/components/Button/WButtonGroup.vue.d.ts.map +1 -1
- package/dist/components/Button/WButtonGroup.vue.js +2 -2
- package/dist/components/Button/WButtonMore.vue.d.ts.map +1 -1
- package/dist/components/Button/WButtonMore.vue.js +4 -4
- package/dist/components/Button/WButtonMoreItem.vue.d.ts.map +1 -1
- package/dist/components/Button/WButtonMoreItem.vue.js +1 -1
- package/dist/components/Button/WButtonSelection.vue.d.ts.map +1 -1
- package/dist/components/Button/WButtonSelection.vue.js +8 -8
- package/dist/components/Button/WButtonSelectionAction.vue.d.ts.map +1 -1
- package/dist/components/Button/WButtonSelectionAction.vue.js +3 -3
- package/dist/components/Button/types.d.ts +1 -1
- package/dist/components/Button/types.d.ts.map +1 -1
- package/dist/components/Checkbox/WCheckbox.vue.d.ts +3 -1
- package/dist/components/Checkbox/WCheckbox.vue.d.ts.map +1 -1
- package/dist/components/Checkbox/WCheckbox.vue.js +11 -12
- package/dist/components/Chip/WChip.vue.d.ts.map +1 -1
- package/dist/components/Chip/WChip.vue.js +2 -2
- package/dist/components/ClickOutside/WClickOutside.vue.d.ts +3 -1
- package/dist/components/ClickOutside/WClickOutside.vue.d.ts.map +1 -1
- package/dist/components/ClickOutside/WClickOutside.vue.js +5 -7
- package/dist/components/Counter/WCounter.vue.d.ts.map +1 -1
- package/dist/components/Counter/WCounter.vue.js +3 -3
- package/dist/components/DatePicker/WDatePicker.vue.d.ts.map +1 -1
- package/dist/components/DatePicker/WDatePicker.vue.js +2 -2
- package/dist/components/DatePicker/WDatePickerSingle.vue.d.ts.map +1 -1
- package/dist/components/DatePicker/WDatePickerSingle.vue.js +1 -1
- package/dist/components/DatePicker/components/CalendarDay.vue.d.ts.map +1 -1
- package/dist/components/DatePicker/components/CalendarDay.vue.js +6 -6
- package/dist/components/DatePicker/components/CalendarMonth.vue.d.ts +1 -1
- package/dist/components/DatePicker/components/CalendarMonth.vue.d.ts.map +1 -1
- package/dist/components/DatePicker/components/CalendarMonth.vue.js +3 -3
- package/dist/components/DatePicker/components/CalendarToggle.vue.d.ts.map +1 -1
- package/dist/components/DatePicker/components/CalendarToggle.vue.js +6 -6
- package/dist/components/DatePicker/components/CalendarValue.vue.d.ts.map +1 -1
- package/dist/components/DatePicker/components/CalendarValue.vue.js +1 -1
- package/dist/components/DatePicker/components/CalendarWeek.vue.d.ts.map +1 -1
- package/dist/components/DatePicker/models/types.d.ts.map +1 -1
- package/dist/components/Dropdown/WDropdown.vue.d.ts +3 -1
- package/dist/components/Dropdown/WDropdown.vue.d.ts.map +1 -1
- package/dist/components/Dropdown/WDropdown.vue.js +6 -7
- package/dist/components/DropdownMenu/WDropdownMenu.vue.d.ts +3 -135
- package/dist/components/DropdownMenu/WDropdownMenu.vue.d.ts.map +1 -1
- package/dist/components/Expansion/WExpansion.vue.d.ts.map +1 -1
- package/dist/components/Expansion/WExpansion.vue.js +1 -1
- package/dist/components/Expansion/WExpansionItem.vue.d.ts.map +1 -1
- package/dist/components/Expansion/WExpansionItem.vue.js +5 -5
- package/dist/components/FieldWrapper/WFieldWrapper.vue.d.ts.map +1 -1
- package/dist/components/FieldWrapper/WFieldWrapper.vue.js +10 -10
- package/dist/components/FieldWrapper/types.d.ts.map +1 -1
- package/dist/components/FilePicker/WFilePicker.vue.d.ts +4 -1
- package/dist/components/FilePicker/WFilePicker.vue.d.ts.map +1 -1
- package/dist/components/FilePicker/WFilePicker.vue.js +24 -26
- package/dist/components/FilePicker/components/FilePickerItem.vue.d.ts.map +1 -1
- package/dist/components/FilePicker/components/FilePickerItem.vue.js +3 -3
- package/dist/components/FilePicker/components/FilePickerSvg.vue.d.ts +3 -1
- package/dist/components/FilePicker/components/FilePickerSvg.vue.d.ts.map +1 -1
- package/dist/components/FilePicker/components/FilePickerSvg.vue.js +4 -5
- package/dist/components/FilterWrapper/WFilterWrapper.vue.d.ts.map +1 -1
- package/dist/components/FilterWrapper/WFilterWrapper.vue.js +4 -4
- package/dist/components/Form/WForm.vue.d.ts.map +1 -1
- package/dist/components/Form/WFormValidator.vue.d.ts +1 -1
- package/dist/components/Form/WFormValidator.vue.d.ts.map +1 -1
- package/dist/components/Form/WFormValidator.vue.js +11 -12
- package/dist/components/Form/use/useFormErrorMessageMap.d.ts.map +1 -1
- package/dist/components/Form/use/useFormHasChangesMap.d.ts.map +1 -1
- package/dist/components/Form/use/useFormInitModelMap.d.ts.map +1 -1
- package/dist/components/Form/use/useFormInvalidateMap.d.ts.map +1 -1
- package/dist/components/Form/use/useFormTitleMap.d.ts.map +1 -1
- package/dist/components/Form/use/useFormValidateMap.d.ts.map +1 -1
- package/dist/components/FormAsync/WFormAsyncButtonGroup.vue.d.ts +2 -2
- package/dist/components/FormAsync/WFormAsyncButtonGroup.vue.d.ts.map +1 -1
- package/dist/components/FormAsync/WFormAsyncButtonGroup.vue.js +3 -3
- package/dist/components/FormAsync/WFormAsyncInput.vue.d.ts.map +1 -1
- package/dist/components/FormAsync/WFormAsyncInput.vue.js +2 -2
- package/dist/components/FormAsync/WFormAsyncSelect.vue.d.ts.map +1 -1
- package/dist/components/FormAsync/WFormAsyncSelect.vue.js +2 -2
- package/dist/components/FormAsync/WFormAsyncSelectInfiniteSingle.vue.d.ts.map +1 -1
- package/dist/components/FormAsync/WFormAsyncSelectInfiniteSingle.vue.js +2 -2
- package/dist/components/FormAsync/WFormAsyncSelectSingle.vue.d.ts.map +1 -1
- package/dist/components/FormAsync/WFormAsyncSelectSingle.vue.js +2 -2
- package/dist/components/FormAsync/WFormAsyncSelectStringified.vue.d.ts.map +1 -1
- package/dist/components/FormAsync/WFormAsyncSelectStringified.vue.js +2 -2
- package/dist/components/FormAsync/WFormAsyncToggle.vue.d.ts.map +1 -1
- package/dist/components/FormAsync/WFormAsyncToggle.vue.js +1 -1
- package/dist/components/FormAsync/types.d.ts +2 -2
- package/dist/components/FormAsync/types.d.ts.map +1 -1
- package/dist/components/HeaderBar/WHeaderBar.vue.d.ts +1 -4
- package/dist/components/HeaderBar/WHeaderBar.vue.d.ts.map +1 -1
- package/dist/components/HeaderBar/WHeaderBar.vue.js +14 -16
- package/dist/components/ImageViewer/WImageViewer.vue.d.ts.map +1 -1
- package/dist/components/ImageViewer/WImageViewer.vue.js +6 -6
- package/dist/components/ImageViewer/components/ImageModal.vue.d.ts.map +1 -1
- package/dist/components/ImageViewer/components/ImageModal.vue2.js +3 -3
- package/dist/components/InfiniteList/WInfiniteList.vue.d.ts +2 -2
- package/dist/components/InfiniteList/WInfiniteList.vue.d.ts.map +1 -1
- package/dist/components/InfiniteList/WInfiniteList.vue.js +9 -10
- package/dist/components/InfiniteList/WInfiniteListWrapper.vue.d.ts.map +1 -1
- package/dist/components/InfiniteList/WInfiniteListWrapper.vue.js +2 -1
- package/dist/components/InfiniteList/components/EmptyComponent.vue.d.ts.map +1 -1
- package/dist/components/InfiniteList/components/InfiniteListButton.vue.d.ts.map +1 -1
- package/dist/components/InfiniteList/components/InfiniteListButton.vue.js +2 -2
- package/dist/components/InfiniteList/components/InfiniteListPage.vue.d.ts.map +1 -1
- package/dist/components/InfiniteList/components/InfiniteListPage.vue.js +15 -16
- package/dist/components/InfiniteList/components/InfiniteListPageSelectItem.vue.d.ts.map +1 -1
- package/dist/components/InfiniteList/components/InfiniteListPageSelection.vue.d.ts.map +1 -1
- package/dist/components/InfiniteList/components/InfiniteListPageTitle.vue.d.ts.map +1 -1
- package/dist/components/InfiniteList/components/InfiniteListPageTitle.vue.js +1 -1
- package/dist/components/InfiniteList/components/InfiniteListPages.vue.d.ts.map +1 -1
- package/dist/components/InfiniteList/components/InfiniteListPages.vue.js +17 -18
- package/dist/components/InfiniteList/components/InfiniteListScroll.vue.d.ts.map +1 -1
- package/dist/components/InfiniteList/models/utils.d.ts.map +1 -1
- package/dist/components/InfiniteList/use/useInfiniteListHeader.d.ts.map +1 -1
- package/dist/components/InfiniteList/use/useRefetchNextPages.d.ts.map +1 -1
- package/dist/components/InfiniteList/use/useSelected.d.ts.map +1 -1
- package/dist/components/InfoCard/WInfoCard.vue.d.ts.map +1 -1
- package/dist/components/InfoCard/WInfoCard.vue.js +3 -3
- package/dist/components/InfoCard/WInfoCardNegative.vue.d.ts.map +1 -1
- package/dist/components/InfoCard/WInfoCardNegative.vue.js +5 -5
- package/dist/components/Input/WInput.vue.d.ts.map +1 -1
- package/dist/components/Input/WInput.vue.js +15 -16
- package/dist/components/Input/WInputAsync.vue.d.ts.map +1 -1
- package/dist/components/Input/WInputAsync.vue.js +12 -15
- package/dist/components/Input/WInputDate.vue.d.ts +5 -8
- package/dist/components/Input/WInputDate.vue.d.ts.map +1 -1
- package/dist/components/Input/WInputDate.vue.js +6 -9
- package/dist/components/Input/WInputOptions.vue.d.ts +1 -1
- package/dist/components/Input/WInputOptions.vue.d.ts.map +1 -1
- package/dist/components/Input/WInputOptions.vue.js +9 -12
- package/dist/components/Input/WInputSuggest.vue.d.ts.map +1 -1
- package/dist/components/Input/WInputSuggest.vue.js +16 -23
- package/dist/components/Input/components/InputActions.vue.d.ts.map +1 -1
- package/dist/components/Input/components/InputActions.vue.js +3 -3
- package/dist/components/Input/components/InputActionsButton.vue.d.ts.map +1 -1
- package/dist/components/Input/components/InputActionsButton.vue.js +2 -2
- package/dist/components/Input/types.d.ts +1 -1
- package/dist/components/Input/types.d.ts.map +1 -1
- package/dist/components/Link/WLink.vue.d.ts +1 -1
- package/dist/components/Link/WLink.vue.d.ts.map +1 -1
- package/dist/components/Link/WLink.vue.js +4 -4
- package/dist/components/Link/WLinkArrow.vue.d.ts.map +1 -1
- package/dist/components/Link/WLinkArrow.vue.js +1 -1
- package/dist/components/List/WList.vue.d.ts.map +1 -1
- package/dist/components/List/WList.vue.js +6 -5
- package/dist/components/List/WListCard.vue.d.ts.map +1 -1
- package/dist/components/List/WListCard.vue.js +19 -19
- package/dist/components/List/WListCardField.vue.d.ts.map +1 -1
- package/dist/components/List/WListHeader.vue.d.ts.map +1 -1
- package/dist/components/List/WListHeader.vue.js +8 -8
- package/dist/components/List/WListHeaderItem.vue.d.ts.map +1 -1
- package/dist/components/List/WListHeaderItem.vue.js +4 -4
- package/dist/components/List/components/HeaderFieldNested.vue.d.ts.map +1 -1
- package/dist/components/List/components/HeaderItemResizer.vue.d.ts.map +1 -1
- package/dist/components/List/components/HeaderItemResizer.vue.js +1 -1
- package/dist/components/List/components/HeaderSettings.vue.d.ts.map +1 -1
- package/dist/components/List/components/HeaderSettings.vue.js +4 -4
- package/dist/components/List/components/HeaderSettingsItem.vue.d.ts.map +1 -1
- package/dist/components/List/components/HeaderSettingsItem.vue.js +4 -4
- package/dist/components/List/components/ListCardFieldNested.vue.d.ts.map +1 -1
- package/dist/components/List/components/ListCardFieldNested.vue.js +1 -1
- package/dist/components/List/components/ListCardFieldNestedItem.vue.d.ts.map +1 -1
- package/dist/components/List/use/useFieldConfigMap.d.ts +1 -1
- package/dist/components/List/use/useFieldConfigMap.d.ts.map +1 -1
- package/dist/components/MenuItem/WMenuItem.vue.d.ts.map +1 -1
- package/dist/components/MenuItem/WMenuItem.vue.js +2 -2
- package/dist/components/Modal/WModal.vue.d.ts.map +1 -1
- package/dist/components/Modal/WModal.vue.js +2 -2
- package/dist/components/Modal/WModalStepper.vue.d.ts +4 -196
- package/dist/components/Modal/WModalStepper.vue.d.ts.map +1 -1
- package/dist/components/Modal/WModalStepper.vue.js +9 -10
- package/dist/components/Modal/WModalWrapper.vue.d.ts.map +1 -1
- package/dist/components/Modal/WModalWrapper.vue.js +4 -4
- package/dist/components/Modal/components/ModalCloseButton.vue.d.ts +3 -1
- package/dist/components/Modal/components/ModalCloseButton.vue.d.ts.map +1 -1
- package/dist/components/Modal/components/ModalCloseButton.vue.js +5 -6
- package/dist/components/Modal/modals/Confirm/ConfirmModal.vue.d.ts.map +1 -1
- package/dist/components/Modal/modals/Confirm/ConfirmModal.vue2.js +2 -2
- package/dist/components/Nav/WNavBar.vue.d.ts.map +1 -1
- package/dist/components/Nav/WNavBar.vue.js +4 -4
- package/dist/components/Nav/WNavItem.vue.d.ts.map +1 -1
- package/dist/components/Nav/WNavItem.vue.js +9 -9
- package/dist/components/Nav/WNavItemExpand.vue.d.ts.map +1 -1
- package/dist/components/Nav/WNavItemExpand.vue.js +3 -3
- package/dist/components/Notify/WNotify.vue.d.ts.map +1 -1
- package/dist/components/Notify/WNotify.vue.js +1 -1
- package/dist/components/Notify/components/NotifyCard.vue.d.ts +4 -2
- package/dist/components/Notify/components/NotifyCard.vue.d.ts.map +1 -1
- package/dist/components/Notify/components/NotifyCard.vue.js +17 -18
- package/dist/components/Notify/models/NotifyType.d.ts.map +1 -1
- package/dist/components/Notify/models/types.d.ts +1 -1
- package/dist/components/Notify/models/types.d.ts.map +1 -1
- package/dist/components/Select/WSelect.vue.d.ts +1 -1
- package/dist/components/Select/WSelect.vue.d.ts.map +1 -1
- package/dist/components/Select/WSelect.vue.js +13 -16
- package/dist/components/Select/WSelectAsync.vue.d.ts.map +1 -1
- package/dist/components/Select/WSelectAsync.vue.js +13 -17
- package/dist/components/Select/WSelectAsyncList.vue.d.ts.map +1 -1
- package/dist/components/Select/WSelectAsyncList.vue.js +11 -11
- package/dist/components/Select/WSelectAsyncSingle.vue.d.ts +4 -4
- package/dist/components/Select/WSelectAsyncSingle.vue.d.ts.map +1 -1
- package/dist/components/Select/WSelectSingle.vue.d.ts +5 -5
- package/dist/components/Select/WSelectSingle.vue.d.ts.map +1 -1
- package/dist/components/Select/WSelectSingle.vue.js +5 -8
- package/dist/components/Select/WSelectStringified.vue.d.ts +5 -5
- package/dist/components/Select/WSelectStringified.vue.d.ts.map +1 -1
- package/dist/components/Select/WSelectStringified.vue.js +4 -7
- package/dist/components/Select/components/SelectAsyncList.vue.d.ts.map +1 -1
- package/dist/components/Select/components/SelectAsyncList.vue.js +2 -2
- package/dist/components/Select/components/SelectAsyncPrefix.vue.d.ts.map +1 -1
- package/dist/components/Select/components/SelectAsyncPrefix.vue.js +5 -5
- package/dist/components/Select/components/SelectAsyncPrefixPage.vue.d.ts.map +1 -1
- package/dist/components/Select/components/SelectAsyncPrefixPage.vue.js +5 -5
- package/dist/components/Select/components/SelectOption.vue.d.ts.map +1 -1
- package/dist/components/Select/components/SelectOption.vue.js +8 -9
- package/dist/components/Select/components/SelectOptionPrefix.vue.d.ts +1 -1
- package/dist/components/Select/components/SelectOptionPrefix.vue.d.ts.map +1 -1
- package/dist/components/Select/components/SelectOptionPrefix.vue.js +5 -5
- package/dist/components/Spinner/WSpinner.vue.js +1 -1
- package/dist/components/Tabs/WTabs.vue.d.ts +3 -140
- package/dist/components/Tabs/WTabs.vue.d.ts.map +1 -1
- package/dist/components/Tabs/WTabs.vue.js +22 -25
- package/dist/components/Tabs/WTabsColumns.vue.d.ts.map +1 -1
- package/dist/components/Tabs/WTabsColumns.vue.js +1 -1
- package/dist/components/Tabs/components/TabItem.vue.d.ts +3 -1
- package/dist/components/Tabs/components/TabItem.vue.d.ts.map +1 -1
- package/dist/components/Tabs/components/TabItem.vue.js +6 -8
- package/dist/components/Tabs/use/useIsInsideTab.d.ts.map +1 -1
- package/dist/components/Tabs/use/useTabActiveListener.d.ts.map +1 -1
- package/dist/components/Tabs/use/useTabItemActiveListener.d.ts.map +1 -1
- package/dist/components/Toggle/WToggle.vue.d.ts.map +1 -1
- package/dist/components/Toggle/WToggle.vue.js +8 -8
- package/dist/components/Toggle/types.d.ts.map +1 -1
- package/dist/components/Tooltip/WTooltip.vue.d.ts.map +1 -1
- package/dist/components/Tooltip/WTooltip.vue.js +1 -1
- package/dist/components/Tooltip/WTooltipContainer.vue.d.ts.map +1 -1
- package/dist/components/Tooltip/WTooltipContainer.vue.js +1 -1
- package/dist/components/Tooltip/components/TooltipContainer.vue.d.ts +3 -1
- package/dist/components/Tooltip/components/TooltipContainer.vue.d.ts.map +1 -1
- package/dist/components/Tooltip/components/TooltipContainer.vue.js +14 -15
- package/dist/components/Tooltip/models/utils.d.ts.map +1 -1
- package/dist/imports/componentsPlugin.d.ts +1 -1
- package/dist/imports/componentsPlugin.d.ts.map +1 -1
- package/dist/imports/iconsSax.d.ts +2 -0
- package/dist/imports/iconsSax.d.ts.map +1 -1
- package/dist/imports/iconsSax.js +2 -0
- package/dist/main.d.ts +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +2 -1
- package/dist/types/global.d.ts +1 -0
- package/dist/utils/HorizontalAlign.d.ts.map +1 -1
- package/dist/utils/Modal.d.ts +1 -1
- package/dist/utils/Modal.d.ts.map +1 -1
- package/dist/utils/Notify.d.ts.map +1 -1
- package/dist/utils/SemanticType.d.ts.map +1 -1
- package/dist/utils/api.d.ts.map +1 -1
- package/dist/utils/order.d.ts.map +1 -1
- package/dist/utils/useCopy.d.ts.map +1 -1
- package/dist/utils/useCopy.js +1 -1
- package/dist/utils/useDefaultQuery.d.ts +1 -1
- package/dist/utils/useDefaultQuery.d.ts.map +1 -1
- package/dist/utils/useDefaultQuery.js +1 -1
- package/dist/utils/useQueryUpdater.d.ts.map +1 -1
- package/dist/utils/useSelected.d.ts.map +1 -1
- package/eslint/plugin.js +43 -0
- package/eslint/recommended.js +171 -0
- package/eslint/rules/modal-declaration.js +33 -0
- package/eslint/rules/modal-import-async.js +38 -0
- package/eslint/rules/modal-import.js +44 -0
- package/eslint/rules/ui-kit-imports.js +65 -0
- package/package.json +14 -6
@@ -0,0 +1,171 @@
|
|
1
|
+
import pluginQuery from '@tanstack/eslint-plugin-query'
|
2
|
+
import vueTsEslintConfig from '@vue/eslint-config-typescript'
|
3
|
+
import importPlugin from 'eslint-plugin-import'
|
4
|
+
import tailwind from 'eslint-plugin-tailwindcss'
|
5
|
+
import unusedImports from 'eslint-plugin-unused-imports'
|
6
|
+
import pluginVue from 'eslint-plugin-vue'
|
7
|
+
|
8
|
+
export default [
|
9
|
+
...pluginVue.configs['flat/recommended'],
|
10
|
+
...tailwind.configs['flat/recommended'],
|
11
|
+
...pluginQuery.configs['flat/recommended'],
|
12
|
+
...vueTsEslintConfig(),
|
13
|
+
|
14
|
+
{
|
15
|
+
files: ['**/*.cjs'],
|
16
|
+
rules: {
|
17
|
+
'@typescript-eslint/no-require-imports': 'off',
|
18
|
+
},
|
19
|
+
},
|
20
|
+
|
21
|
+
{
|
22
|
+
files: ['**/*.{ts,js,mts,tsx,json}'],
|
23
|
+
rules: {
|
24
|
+
'indent': ['error', 2, {
|
25
|
+
'SwitchCase': 1,
|
26
|
+
}],
|
27
|
+
},
|
28
|
+
},
|
29
|
+
|
30
|
+
{
|
31
|
+
files: ['**/*.json'],
|
32
|
+
rules: {
|
33
|
+
'quotes': ['error', 'double'],
|
34
|
+
'@typescript-eslint/no-unused-expressions': 'off',
|
35
|
+
'comma-dangle': ['error', 'never'],
|
36
|
+
},
|
37
|
+
},
|
38
|
+
|
39
|
+
{
|
40
|
+
files: ['**/*.ts'],
|
41
|
+
rules: {
|
42
|
+
'@typescript-eslint/naming-convention': [
|
43
|
+
'error',
|
44
|
+
{'selector': 'enum', 'format': ['PascalCase']},
|
45
|
+
{'selector': 'enumMember', 'format': ['UPPER_CASE', 'snake_case']},
|
46
|
+
],
|
47
|
+
},
|
48
|
+
},
|
49
|
+
|
50
|
+
{
|
51
|
+
files: ['**/*.{ts,js,vue}'],
|
52
|
+
plugins: {
|
53
|
+
import: importPlugin,
|
54
|
+
},
|
55
|
+
languageOptions: {
|
56
|
+
parser: pluginVue.parser,
|
57
|
+
ecmaVersion: 'latest',
|
58
|
+
sourceType: 'module',
|
59
|
+
},
|
60
|
+
rules: {
|
61
|
+
...importPlugin.flatConfigs.recommended.rules,
|
62
|
+
'import/order': [
|
63
|
+
1,
|
64
|
+
{
|
65
|
+
'newlines-between': 'always',
|
66
|
+
'named': true,
|
67
|
+
'groups': ['type', 'external', 'builtin', 'internal', 'sibling', 'parent', 'index'],
|
68
|
+
distinctGroup: true,
|
69
|
+
'pathGroups': [
|
70
|
+
{'pattern': 'eco-vue-js/**/W**', 'group': 'builtin', 'position': 'before'},
|
71
|
+
{'pattern': '**/W**', 'group': 'builtin', 'position': 'before'},
|
72
|
+
{'pattern': 'eco-vue-js/**/Icon**', 'group': 'builtin', 'position': 'before'},
|
73
|
+
{'pattern': '**/Icon**', 'group': 'builtin', 'position': 'before'},
|
74
|
+
{'pattern': 'eco-vue-js/**', 'group': 'external', 'position': 'after'},
|
75
|
+
],
|
76
|
+
'pathGroupsExcludedImportTypes': ['builtin'],
|
77
|
+
'alphabetize': {'order': 'asc', 'caseInsensitive': false},
|
78
|
+
},
|
79
|
+
],
|
80
|
+
'import/no-useless-path-segments': [1, {noUselessIndex: true}],
|
81
|
+
// 'import/extensions': [1, 'never'],
|
82
|
+
'import/first': 1,
|
83
|
+
'import/newline-after-import': 1,
|
84
|
+
},
|
85
|
+
settings: {
|
86
|
+
'import/parsers': {
|
87
|
+
'@typescript-eslint/parser': ['.ts', '.js'],
|
88
|
+
},
|
89
|
+
'import/resolver': {
|
90
|
+
'typescript': {
|
91
|
+
'alwaysTryTypes': true,
|
92
|
+
'project': './tsconfig.vue.json',
|
93
|
+
},
|
94
|
+
'node': true,
|
95
|
+
},
|
96
|
+
},
|
97
|
+
},
|
98
|
+
|
99
|
+
{
|
100
|
+
files: ['**/*.{ts,js,vue}'],
|
101
|
+
plugins: {
|
102
|
+
'unused-imports': unusedImports,
|
103
|
+
},
|
104
|
+
rules: {
|
105
|
+
'semi': ['error', 'never'],
|
106
|
+
'quotes': ['error', 'single', {allowTemplateLiterals: true}],
|
107
|
+
'comma-dangle': ['error', 'always-multiline'],
|
108
|
+
'comma-spacing': ['error', {'before': false, 'after': true}],
|
109
|
+
'object-curly-spacing': ['error', 'never'],
|
110
|
+
'func-call-spacing': 'off',
|
111
|
+
'template-curly-spacing': ['error', 'always'],
|
112
|
+
'space-before-function-paren': ['error', {anonymous: 'always', named: 'never', asyncArrow: 'always'}],
|
113
|
+
'vue/no-lone-template': ['error', {
|
114
|
+
ignoreAccessible: false,
|
115
|
+
}],
|
116
|
+
'no-undef': 'off',
|
117
|
+
'default-case-last': 'off',
|
118
|
+
'no-console': ['warn'],
|
119
|
+
'no-unused-vars': 'off',
|
120
|
+
'@typescript-eslint/no-unused-vars': ['error', {'args': 'after-used', 'caughtErrors': 'none'}],
|
121
|
+
'unused-imports/no-unused-imports': 'error',
|
122
|
+
'tailwindcss/no-custom-classname': 'off',
|
123
|
+
'tailwindcss/migration-from-tailwind-2': 'off',
|
124
|
+
'no-multiple-empty-lines': [1, {max: 1, maxEOF: 0, maxBOF: 0}],
|
125
|
+
},
|
126
|
+
},
|
127
|
+
|
128
|
+
{
|
129
|
+
files: ['**/*.vue'],
|
130
|
+
rules: {
|
131
|
+
'vue/script-indent': ['error', 2, {
|
132
|
+
'baseIndent': 0,
|
133
|
+
'switchCase': 1,
|
134
|
+
'ignores': [],
|
135
|
+
}],
|
136
|
+
'vue/component-name-in-template-casing': ['error', 'PascalCase', {registeredComponentsOnly: false}],
|
137
|
+
'vue/component-tags-order': ['error', {
|
138
|
+
'order': ['template', 'script[setup]', 'style'],
|
139
|
+
}],
|
140
|
+
'vue/multiline-html-element-content-newline': ['error', {
|
141
|
+
'ignoreWhenEmpty': true,
|
142
|
+
'ignores': ['pre', 'textarea', 'span', 'tspan'],
|
143
|
+
'allowEmptyLines': false,
|
144
|
+
}],
|
145
|
+
'vue/attributes-order': ['error', {
|
146
|
+
'order': [
|
147
|
+
'DEFINITION',
|
148
|
+
'LIST_RENDERING',
|
149
|
+
'CONDITIONALS',
|
150
|
+
'RENDER_MODIFIERS',
|
151
|
+
'GLOBAL',
|
152
|
+
['UNIQUE', 'SLOT'],
|
153
|
+
'TWO_WAY_BINDING',
|
154
|
+
'OTHER_DIRECTIVES',
|
155
|
+
['ATTR_DYNAMIC', 'ATTR_STATIC', 'ATTR_SHORTHAND_BOOL'],
|
156
|
+
'EVENTS',
|
157
|
+
'CONTENT',
|
158
|
+
],
|
159
|
+
'alphabetical': false,
|
160
|
+
}],
|
161
|
+
'vue/prefer-use-template-ref': 'error',
|
162
|
+
'vue/require-macro-variable-name': ['error', {'defineProps': 'props', 'defineEmits': 'emit', 'defineSlots': 'slots', 'useSlots': 'slots', 'useAttrs': 'attrs'}],
|
163
|
+
'vue/require-typed-ref': 'error',
|
164
|
+
'vue/padding-line-between-blocks': ['error', 'always'],
|
165
|
+
'vue/block-tag-newline': [1, {
|
166
|
+
'singleline': 'always',
|
167
|
+
'multiline': 'always',
|
168
|
+
}],
|
169
|
+
},
|
170
|
+
},
|
171
|
+
]
|
@@ -0,0 +1,33 @@
|
|
1
|
+
export default {
|
2
|
+
meta: {
|
3
|
+
type: 'suggestion',
|
4
|
+
docs: {
|
5
|
+
description: 'Restrict specific imports and provide replacement',
|
6
|
+
category: 'Best Practices',
|
7
|
+
recommended: true,
|
8
|
+
},
|
9
|
+
fixable: 'code',
|
10
|
+
},
|
11
|
+
|
12
|
+
create: function (context) {
|
13
|
+
const sourceCode = context.sourceCode ?? context.getSourceCode()
|
14
|
+
const filename = context.filename ?? context.getFilename()
|
15
|
+
return {
|
16
|
+
Program(node) {
|
17
|
+
const baseName = filename
|
18
|
+
|
19
|
+
if (!baseName.endsWith('.vue') || baseName.includes('Modal')) return
|
20
|
+
|
21
|
+
const templateNode = node.templateBody
|
22
|
+
if (!templateNode) return
|
23
|
+
|
24
|
+
if (!sourceCode.getText(templateNode).includes('<WModalWrapper')) return
|
25
|
+
|
26
|
+
context.report({
|
27
|
+
node,
|
28
|
+
message: `Component with <WModalWrapper> should contain "Modal" in file name`,
|
29
|
+
})
|
30
|
+
},
|
31
|
+
}
|
32
|
+
},
|
33
|
+
}
|
@@ -0,0 +1,38 @@
|
|
1
|
+
export default {
|
2
|
+
meta: {
|
3
|
+
type: 'suggestion',
|
4
|
+
docs: {
|
5
|
+
description: 'Restrict specific imports and provide replacement',
|
6
|
+
category: 'Best Practices',
|
7
|
+
recommended: true,
|
8
|
+
},
|
9
|
+
fixable: 'code',
|
10
|
+
},
|
11
|
+
|
12
|
+
create: function (context) {
|
13
|
+
return {
|
14
|
+
ImportDeclaration(node) {
|
15
|
+
const importPath = node.source.value
|
16
|
+
|
17
|
+
// Check if import is of a modal component
|
18
|
+
if (importPath.includes('@') && importPath.includes('Modal')) {
|
19
|
+
const defaultImport = node.specifiers.find(specifier => specifier.type === 'ImportDefaultSpecifier')
|
20
|
+
|
21
|
+
if (defaultImport) {
|
22
|
+
// Check if import method is not defineAsyncComponent
|
23
|
+
if (node.importKind !== 'type' && node.importKind !== 'typeof') {
|
24
|
+
context.report({
|
25
|
+
node,
|
26
|
+
message: `Imported modal component '${ defaultImport.local.name }' should use defineAsyncComponent`,
|
27
|
+
fix: function (fixer) {
|
28
|
+
const replacement = `const ${ defaultImport.local.name } = defineAsyncComponent(() => import('${ importPath }'))`
|
29
|
+
return fixer.replaceText(node, replacement)
|
30
|
+
},
|
31
|
+
})
|
32
|
+
}
|
33
|
+
}
|
34
|
+
}
|
35
|
+
},
|
36
|
+
}
|
37
|
+
},
|
38
|
+
}
|
@@ -0,0 +1,44 @@
|
|
1
|
+
export default {
|
2
|
+
meta: {
|
3
|
+
type: 'suggestion',
|
4
|
+
docs: {
|
5
|
+
description: 'Ensure defineAsyncComponent is not called inside functions or passed as arguments',
|
6
|
+
category: 'Best Practices',
|
7
|
+
recommended: true,
|
8
|
+
},
|
9
|
+
fixable: 'code',
|
10
|
+
},
|
11
|
+
|
12
|
+
create(context) {
|
13
|
+
const sourceCode = context.sourceCode ?? context.getSourceCode()
|
14
|
+
return {
|
15
|
+
CallExpression(node) {
|
16
|
+
if (node.callee.type === 'Identifier' && node.callee.name === 'defineAsyncComponent') {
|
17
|
+
const parentFunction = (sourceCode.getAncestors ? sourceCode.getAncestors(node, node) : context.getAncestors()).find(ancestor => ancestor.type === 'FunctionDeclaration' || ancestor.type === 'ArrowFunctionExpression')
|
18
|
+
|
19
|
+
if (parentFunction) {
|
20
|
+
const importPath = node.arguments[0].body.source.value
|
21
|
+
const componentName = importPath.substring(importPath.lastIndexOf('/') + 1, importPath.lastIndexOf('.'))
|
22
|
+
|
23
|
+
context.report({
|
24
|
+
node: node,
|
25
|
+
message: 'defineAsyncComponent should not be called inside functions or passed as arguments',
|
26
|
+
fix: function (fixer) {
|
27
|
+
return [
|
28
|
+
fixer.replaceText(node, componentName),
|
29
|
+
fixer.insertTextAfterRange(
|
30
|
+
(sourceCode.getAncestors ? sourceCode.getAncestors(node, node) : context.getAncestors())[0].body
|
31
|
+
.slice()
|
32
|
+
.reverse()
|
33
|
+
.find(item => item.type === 'ImportDeclaration').source.range,
|
34
|
+
`\n\nconst ${ componentName } = defineAsyncComponent(() => import('${ importPath }'));`,
|
35
|
+
),
|
36
|
+
]
|
37
|
+
},
|
38
|
+
})
|
39
|
+
}
|
40
|
+
}
|
41
|
+
},
|
42
|
+
}
|
43
|
+
},
|
44
|
+
}
|
@@ -0,0 +1,65 @@
|
|
1
|
+
export default {
|
2
|
+
meta: {
|
3
|
+
type: 'suggestion',
|
4
|
+
docs: {
|
5
|
+
description: 'Restrict specific imports and provide replacement',
|
6
|
+
category: 'Best Practices',
|
7
|
+
recommended: true,
|
8
|
+
},
|
9
|
+
fixable: 'code',
|
10
|
+
},
|
11
|
+
|
12
|
+
create: function (context) {
|
13
|
+
return {
|
14
|
+
ImportDeclaration(node) {
|
15
|
+
const source = node.source.value
|
16
|
+
const importSpecifiers = node.specifiers.filter(specifier => specifier.type === 'ImportSpecifier')
|
17
|
+
|
18
|
+
importSpecifiers.forEach(specifier => {
|
19
|
+
if (!source.includes('eco-vue-js')) return
|
20
|
+
|
21
|
+
const importedName = specifier.imported.name
|
22
|
+
|
23
|
+
if (importedName.startsWith('W')) {
|
24
|
+
const replacementImport = `import ${ importedName } from 'eco-vue-js/dist/components/${ importedName.substr(1) }/${ importedName }.vue'`
|
25
|
+
context.report({
|
26
|
+
node,
|
27
|
+
message: `Do not import '${ importedName }' directly. Use the replacement: ${ replacementImport }`,
|
28
|
+
fix: function (fixer) {
|
29
|
+
return fixer.replaceText(node, replacementImport)
|
30
|
+
},
|
31
|
+
})
|
32
|
+
|
33
|
+
return
|
34
|
+
}
|
35
|
+
|
36
|
+
if (source.includes('iconsSax')) {
|
37
|
+
const replacementImport = `import ${ importedName } from 'eco-vue-js/dist/assets/icons/sax/${ importedName }'`
|
38
|
+
context.report({
|
39
|
+
node,
|
40
|
+
message: `Do not import '${ importedName }' directly. Use the replacement: ${ replacementImport }`,
|
41
|
+
fix: function (fixer) {
|
42
|
+
return fixer.replaceText(node, replacementImport)
|
43
|
+
},
|
44
|
+
})
|
45
|
+
|
46
|
+
return
|
47
|
+
}
|
48
|
+
|
49
|
+
if (source.includes('iconsDefault')) {
|
50
|
+
const replacementImport = `import ${ importedName } from 'eco-vue-js/dist/assets/icons/default/${ importedName }'`
|
51
|
+
context.report({
|
52
|
+
node,
|
53
|
+
message: `Do not import '${ importedName }' directly. Use the replacement: ${ replacementImport }`,
|
54
|
+
fix: function (fixer) {
|
55
|
+
return fixer.replaceText(node, replacementImport)
|
56
|
+
},
|
57
|
+
})
|
58
|
+
|
59
|
+
return
|
60
|
+
}
|
61
|
+
})
|
62
|
+
},
|
63
|
+
}
|
64
|
+
},
|
65
|
+
}
|
package/package.json
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
"type": "git",
|
5
5
|
"url": "https://github.com/rsmple/eco-vue-js.git"
|
6
6
|
},
|
7
|
-
"version": "0.8.
|
7
|
+
"version": "0.8.43",
|
8
8
|
"scripts": {
|
9
9
|
"build": "run-p type-check \"build-only {@}\" --",
|
10
10
|
"preview": "vite preview",
|
@@ -15,25 +15,29 @@
|
|
15
15
|
"lint-inspect-config": "npx eslint --inspect-config",
|
16
16
|
"write-imports": "node write-imports.js"
|
17
17
|
},
|
18
|
+
"dependencies": {
|
19
|
+
"@tanstack/eslint-plugin-query": "5.60.1",
|
20
|
+
"@vue/eslint-config-typescript": "14.1.3",
|
21
|
+
"eslint-import-resolver-typescript": "3.6.3",
|
22
|
+
"eslint-plugin-import": "2.31.0",
|
23
|
+
"eslint-plugin-tailwindcss": "3.17.5",
|
24
|
+
"eslint-plugin-unused-imports": "4.1.4",
|
25
|
+
"eslint-plugin-vue": "9.31.0"
|
26
|
+
},
|
18
27
|
"peerDependencies": {
|
19
28
|
"@tanstack/vue-query": ">=5.59.0",
|
20
29
|
"vue": ">=3.5.11",
|
21
30
|
"vue-router": ">=4.4.5"
|
22
31
|
},
|
23
32
|
"devDependencies": {
|
24
|
-
"@tanstack/eslint-plugin-query": "5.60.1",
|
25
33
|
"@tsconfig/node22": "22.0.0",
|
26
34
|
"@types/jsdom": "21.1.7",
|
27
35
|
"@types/node": "22.9.1",
|
28
36
|
"@types/postcss-import": "14.0.3",
|
29
37
|
"@vitejs/plugin-vue": "5.2.0",
|
30
|
-
"@vue/eslint-config-typescript": "14.1.3",
|
31
38
|
"@vue/tsconfig": "0.6.0",
|
32
39
|
"autoprefixer": "10.4.20",
|
33
40
|
"eslint": "9.15.0",
|
34
|
-
"eslint-plugin-tailwindcss": "3.17.5",
|
35
|
-
"eslint-plugin-unused-imports": "4.1.4",
|
36
|
-
"eslint-plugin-vue": "9.31.0",
|
37
41
|
"jsdom": "25.0.1",
|
38
42
|
"npm-run-all2": "7.0.1",
|
39
43
|
"path": "0.12.7",
|
@@ -48,6 +52,7 @@
|
|
48
52
|
},
|
49
53
|
"type": "module",
|
50
54
|
"files": [
|
55
|
+
"eslint",
|
51
56
|
"dist",
|
52
57
|
"tailwind-base",
|
53
58
|
"LICENSE"
|
@@ -68,6 +73,9 @@
|
|
68
73
|
"./tailwind-base/index.cjs": {
|
69
74
|
"require": "./tailwind-base/index.cjs"
|
70
75
|
},
|
76
|
+
"./eslint/plugin": {
|
77
|
+
"import": "./eslint/plugin.js"
|
78
|
+
},
|
71
79
|
"./dist/assets/icons/default/*": {
|
72
80
|
"import": "./dist/assets/icons/default/*.svg.js"
|
73
81
|
},
|