diff --git a/app/.eslintrc.js b/app/.eslintrc.js
index 728ddd1a..e703f821 100644
--- a/app/.eslintrc.js
+++ b/app/.eslintrc.js
@@ -5,14 +5,22 @@ module.exports = {
node: true,
},
extends: [
- 'plugin:vue/strongly-recommended',
+ 'plugin:vue/vue3-recommended',
'eslint:recommended',
+ '@vue/eslint-config-typescript',
'plugin:prettier/recommended',
],
rules: {
- 'no-unused-vars': [
+ 'vue/no-v-html': 'off',
+ 'no-unused-vars': 'off',
+ '@typescript-eslint/no-unused-vars': [
'warn',
- { varsIgnorePattern: '^_', destructuredArrayIgnorePattern: '^_' },
+ {
+ varsIgnorePattern: '^_',
+ argsIgnorePattern: '^_',
+ destructuredArrayIgnorePattern: '^_',
+ },
],
+ 'no-console': ['error', { allow: ['warn', 'error'] }],
},
}
diff --git a/app/components.d.ts b/app/components.d.ts
new file mode 100644
index 00000000..1d1de8ad
--- /dev/null
+++ b/app/components.d.ts
@@ -0,0 +1,125 @@
+/* eslint-disable */
+// @ts-nocheck
+// Generated by unplugin-vue-components
+// Read more: https://github.com/vuejs/core/pull/3399
+export {}
+
+/* prettier-ignore */
+declare module 'vue' {
+ export interface GlobalComponents {
+ AdressItem: typeof import('./src/components/globals/formItems/AdressItem.vue')['default']
+ AppCatalogSkeleton: typeof import('./src/components/globals/skeletons/AppCatalogSkeleton.vue')['default']
+ BAccordion: typeof import('bootstrap-vue-next')['BAccordion']
+ BAccordionItem: typeof import('bootstrap-vue-next')['BAccordionItem']
+ BBadge: typeof import('bootstrap-vue-next')['BBadge']
+ BBreadcrumb: typeof import('bootstrap-vue-next')['BBreadcrumb']
+ BBreadcrumbItem: typeof import('bootstrap-vue-next')['BBreadcrumbItem']
+ BButton: typeof import('bootstrap-vue-next')['BButton']
+ BButtonGroup: typeof import('bootstrap-vue-next')['BButtonGroup']
+ BButtonToolbar: typeof import('bootstrap-vue-next')['BButtonToolbar']
+ BCard: typeof import('bootstrap-vue-next')['BCard']
+ BCardBody: typeof import('bootstrap-vue-next')['BCardBody']
+ BCardGroup: typeof import('bootstrap-vue-next')['BCardGroup']
+ BCardHeader: typeof import('bootstrap-vue-next')['BCardHeader']
+ BCardText: typeof import('bootstrap-vue-next')['BCardText']
+ BCardTitle: typeof import('bootstrap-vue-next')['BCardTitle']
+ BCol: typeof import('bootstrap-vue-next')['BCol']
+ BCollapse: typeof import('bootstrap-vue-next')['BCollapse']
+ BDropdown: typeof import('bootstrap-vue-next')['BDropdown']
+ BDropdownDivider: typeof import('bootstrap-vue-next')['BDropdownDivider']
+ BDropdownForm: typeof import('bootstrap-vue-next')['BDropdownForm']
+ BDropdownGroup: typeof import('bootstrap-vue-next')['BDropdownGroup']
+ BDropdownItem: typeof import('bootstrap-vue-next')['BDropdownItem']
+ BDropdownItemButton: typeof import('bootstrap-vue-next')['BDropdownItemButton']
+ BDropdownText: typeof import('bootstrap-vue-next')['BDropdownText']
+ BForm: typeof import('bootstrap-vue-next')['BForm']
+ BFormCheckbox: typeof import('bootstrap-vue-next')['BFormCheckbox']
+ BFormCheckboxGroup: typeof import('bootstrap-vue-next')['BFormCheckboxGroup']
+ BFormFile: typeof import('bootstrap-vue-next')['BFormFile']
+ BFormGroup: typeof import('bootstrap-vue-next')['BFormGroup']
+ BFormInput: typeof import('bootstrap-vue-next')['BFormInput']
+ BFormInvalidFeedback: typeof import('bootstrap-vue-next')['BFormInvalidFeedback']
+ BFormRadio: typeof import('bootstrap-vue-next')['BFormRadio']
+ BFormRadioGroup: typeof import('bootstrap-vue-next')['BFormRadioGroup']
+ BFormSelect: typeof import('bootstrap-vue-next')['BFormSelect']
+ BFormSelectOption: typeof import('bootstrap-vue-next')['BFormSelectOption']
+ BFormTag: typeof import('bootstrap-vue-next')['BFormTag']
+ BFormTags: typeof import('bootstrap-vue-next')['BFormTags']
+ BFormTextarea: typeof import('bootstrap-vue-next')['BFormTextarea']
+ BImg: typeof import('bootstrap-vue-next')['BImg']
+ BInputGroup: typeof import('bootstrap-vue-next')['BInputGroup']
+ BInputGroupText: typeof import('bootstrap-vue-next')['BInputGroupText']
+ BLink: typeof import('bootstrap-vue-next')['BLink']
+ BListGroup: typeof import('bootstrap-vue-next')['BListGroup']
+ BListGroupItem: typeof import('bootstrap-vue-next')['BListGroupItem']
+ BModal: typeof import('bootstrap-vue-next')['BModal']
+ BModalOrchestrator: typeof import('bootstrap-vue-next')['BModalOrchestrator']
+ BNav: typeof import('bootstrap-vue-next')['BNav']
+ BNavbar: typeof import('bootstrap-vue-next')['BNavbar']
+ BNavbarBrand: typeof import('bootstrap-vue-next')['BNavbarBrand']
+ BNavbarNav: typeof import('bootstrap-vue-next')['BNavbarNav']
+ BNavItem: typeof import('bootstrap-vue-next')['BNavItem']
+ BNavText: typeof import('bootstrap-vue-next')['BNavText']
+ BOverlay: typeof import('bootstrap-vue-next')['BOverlay']
+ BPopover: typeof import('bootstrap-vue-next')['BPopover']
+ BProgress: typeof import('bootstrap-vue-next')['BProgress']
+ BProgressBar: typeof import('bootstrap-vue-next')['BProgressBar']
+ BRow: typeof import('bootstrap-vue-next')['BRow']
+ BSkeleton: typeof import('./src/components/globals/skeletons/BSkeleton.vue')['default']
+ BSkeletonWrapper: typeof import('./src/components/globals/skeletons/BSkeletonWrapper.vue')['default']
+ BTab: typeof import('bootstrap-vue-next')['BTab']
+ BTable: typeof import('bootstrap-vue-next')['BTable']
+ BTabs: typeof import('bootstrap-vue-next')['BTabs']
+ ButtonItem: typeof import('./src/components/globals/formItems/ButtonItem.vue')['default']
+ CardCollapse: typeof import('./src/components/CardCollapse.vue')['default']
+ CardDeckFeed: typeof import('./src/components/CardDeckFeed.vue')['default']
+ CardForm: typeof import('./src/components/globals/CardForm.vue')['default']
+ CardFormSkeleton: typeof import('./src/components/globals/skeletons/CardFormSkeleton.vue')['default']
+ CardInfoSkeleton: typeof import('./src/components/globals/skeletons/CardInfoSkeleton.vue')['default']
+ CardListSkeleton: typeof import('./src/components/globals/skeletons/CardListSkeleton.vue')['default']
+ CheckboxItem: typeof import('./src/components/globals/formItems/CheckboxItem.vue')['default']
+ ConfigPanels: typeof import('./src/components/ConfigPanels.vue')['default']
+ DescriptionRow: typeof import('./src/components/globals/DescriptionRow.vue')['default']
+ DisplayTextItem: typeof import('./src/components/globals/formItems/DisplayTextItem.vue')['default']
+ ExplainWhat: typeof import('./src/components/globals/ExplainWhat.vue')['default']
+ FileItem: typeof import('./src/components/globals/formItems/FileItem.vue')['default']
+ FormField: typeof import('./src/components/globals/FormField.vue')['default']
+ FormFieldMultiple: typeof import('./src/components/globals/FormFieldMultiple.vue')['default']
+ FormFieldReadonly: typeof import('./src/components/globals/FormFieldReadonly.vue')['default']
+ InputItem: typeof import('./src/components/globals/formItems/InputItem.vue')['default']
+ LazyRenderer: typeof import('./src/components/LazyRenderer.vue')['default']
+ ListGroupSkeleton: typeof import('./src/components/globals/skeletons/ListGroupSkeleton.vue')['default']
+ MainLayout: typeof import('./src/components/layouts/MainLayout.vue')['default']
+ MarkdownItem: typeof import('./src/components/globals/formItems/MarkdownItem.vue')['default']
+ MessageListGroup: typeof import('./src/components/MessageListGroup.vue')['default']
+ ModalError: typeof import('./src/components/modals/ModalError.vue')['default']
+ ModalOverlay: typeof import('./src/components/modals/ModalOverlay.vue')['default']
+ ModalReconnecting: typeof import('./src/components/modals/ModalReconnecting.vue')['default']
+ ModalWaiting: typeof import('./src/components/modals/ModalWaiting.vue')['default']
+ ModalWarning: typeof import('./src/components/modals/ModalWarning.vue')['default']
+ QueryHeader: typeof import('./src/components/QueryHeader.vue')['default']
+ ReadOnlyAlertItem: typeof import('./src/components/globals/formItems/ReadOnlyAlertItem.vue')['default']
+ RecursiveListGroup: typeof import('./src/components/RecursiveListGroup.vue')['default']
+ RouterLink: typeof import('vue-router')['RouterLink']
+ RouterView: typeof import('vue-router')['RouterView']
+ SelectItem: typeof import('./src/components/globals/formItems/SelectItem.vue')['default']
+ TagsItem: typeof import('./src/components/globals/formItems/TagsItem.vue')['default']
+ TagsSelectizeItem: typeof import('./src/components/globals/formItems/TagsSelectizeItem.vue')['default']
+ TextAreaItem: typeof import('./src/components/globals/formItems/TextAreaItem.vue')['default']
+ TopBar: typeof import('./src/components/globals/TopBar.vue')['default']
+ ViewSearch: typeof import('./src/components/globals/ViewSearch.vue')['default']
+ YAlert: typeof import('./src/components/globals/YAlert.vue')['default']
+ YBreadcrumb: typeof import('./src/components/globals/YBreadcrumb.vue')['default']
+ YCard: typeof import('./src/components/globals/YCard.vue')['default']
+ YIcon: typeof import('./src/components/globals/YIcon.vue')['default']
+ YListGroupItem: typeof import('./src/components/globals/YListGroupItem.vue')['default']
+ YListItem: typeof import('./src/components/globals/YListItem.vue')['default']
+ YSpinner: typeof import('./src/components/globals/YSpinner.vue')['default']
+ }
+ export interface ComponentCustomProperties {
+ vBModal: typeof import('bootstrap-vue-next')['vBModal']
+ vBPopover: typeof import('bootstrap-vue-next')['vBPopover']
+ vBToggle: typeof import('bootstrap-vue-next')['vBToggle']
+ vBTooltip: typeof import('bootstrap-vue-next')['vBTooltip']
+ }
+}
diff --git a/app/env.d.ts b/app/env.d.ts
new file mode 100644
index 00000000..11f02fe2
--- /dev/null
+++ b/app/env.d.ts
@@ -0,0 +1 @@
+///