@vc-shell/framework 1.0.120 → 1.0.122
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/CHANGELOG.md +13 -0
- package/core/api/platform.ts +8215 -8033
- package/core/composables/useApiClient/index.ts +2 -1
- package/core/composables/useAsync/index.ts +3 -3
- package/core/composables/useErrorHandler/index.ts +2 -2
- package/core/composables/useFunctions/debounce.ts +2 -1
- package/core/composables/useNotifications/index.ts +4 -5
- package/core/composables/usePermissions/index.ts +8 -12
- package/core/composables/useSettings/index.ts +1 -1
- package/core/composables/useUser/index.ts +21 -17
- package/core/plugins/modularity/index.ts +7 -3
- package/core/plugins/moment/humanize.ts +3 -3
- package/core/plugins/moment/moment.ts +3 -3
- package/core/plugins/validation/rules.ts +1 -1
- package/core/types/index.ts +20 -25
- package/dist/core/api/platform.d.ts +5 -5
- package/dist/core/api/platform.d.ts.map +1 -1
- package/dist/core/composables/useApiClient/index.d.ts.map +1 -1
- package/dist/core/composables/useAsync/index.d.ts +1 -1
- package/dist/core/composables/useAsync/index.d.ts.map +1 -1
- package/dist/core/composables/useErrorHandler/index.d.ts +1 -1
- package/dist/core/composables/useErrorHandler/index.d.ts.map +1 -1
- package/dist/core/composables/useFunctions/debounce.d.ts +1 -1
- package/dist/core/composables/useFunctions/debounce.d.ts.map +1 -1
- package/dist/core/composables/useNotifications/index.d.ts.map +1 -1
- package/dist/core/composables/usePermissions/index.d.ts +1 -1
- package/dist/core/composables/usePermissions/index.d.ts.map +1 -1
- package/dist/core/composables/useUser/index.d.ts +5 -5
- package/dist/core/composables/useUser/index.d.ts.map +1 -1
- package/dist/core/plugins/modularity/index.d.ts +8 -6
- package/dist/core/plugins/modularity/index.d.ts.map +1 -1
- package/dist/core/plugins/moment/humanize.d.ts +1 -1
- package/dist/core/plugins/moment/humanize.d.ts.map +1 -1
- package/dist/core/plugins/moment/moment.d.ts.map +1 -1
- package/dist/core/types/index.d.ts +20 -19
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/framework.mjs +7866 -7825
- package/dist/index.css +1 -1
- package/dist/shared/components/app-switcher/components/vc-app-switcher/index.d.ts +3 -3
- package/dist/shared/components/app-switcher/components/vc-app-switcher/vc-app-switcher.vue.d.ts +3 -3
- package/dist/shared/components/blade-navigation/components/vc-blade-navigation/index.d.ts +21 -21
- package/dist/shared/components/blade-navigation/components/vc-blade-navigation/vc-blade-navigation.vue.d.ts +23 -22
- package/dist/shared/components/blade-navigation/components/vc-blade-navigation/vc-blade-navigation.vue.d.ts.map +1 -1
- package/dist/shared/components/blade-navigation/composables/useBladeNavigation/index.d.ts +10 -10
- package/dist/shared/components/blade-navigation/composables/useBladeNavigation/index.d.ts.map +1 -1
- package/dist/shared/components/blade-navigation/types/index.d.ts +34 -18
- package/dist/shared/components/blade-navigation/types/index.d.ts.map +1 -1
- package/dist/shared/components/change-password/change-password.vue.d.ts +1 -1
- package/dist/shared/components/change-password/index.d.ts +1 -1
- package/dist/shared/components/error-interceptor/index.d.ts +35 -35
- package/dist/shared/components/error-interceptor/interceptor.d.ts +4 -4
- package/dist/shared/components/error-interceptor/interceptor.d.ts.map +1 -1
- package/dist/shared/components/language-selector/index.d.ts +7 -7
- package/dist/shared/components/language-selector/language-selector.vue.d.ts +3 -3
- package/dist/shared/components/notifications/components/notification-container/index.d.ts +9 -9
- package/dist/shared/components/notifications/composables/useContainer/index.d.ts +1 -1
- package/dist/shared/components/notifications/composables/useContainer/index.d.ts.map +1 -1
- package/dist/shared/components/notifications/core/notification.d.ts +4 -4
- package/dist/shared/components/popup-handler/composables/usePopup/index.d.ts +2 -1
- package/dist/shared/components/popup-handler/composables/usePopup/index.d.ts.map +1 -1
- package/dist/shared/components/popup-handler/types/index.d.ts +2 -7
- package/dist/shared/components/popup-handler/types/index.d.ts.map +1 -1
- package/dist/shared/components/popup-handler/utils/index.d.ts +1 -1
- package/dist/shared/components/popup-handler/utils/index.d.ts.map +1 -1
- package/dist/shared/components/user-dropdown-button/index.d.ts +5 -5
- package/dist/shared/components/user-dropdown-button/user-dropdown-button.vue.d.ts +3 -3
- package/dist/shared/modules/assets/components/assets-details/assets-details.vue.d.ts +3 -3
- package/dist/shared/modules/assets/components/assets-details/assets-details.vue.d.ts.map +1 -1
- package/dist/shared/modules/assets/components/assets-details/index.d.ts +1 -46
- package/dist/shared/modules/assets/components/assets-details/index.d.ts.map +1 -1
- package/dist/shared/modules/assets/index.d.ts +1 -1
- package/dist/shared/modules/assets-manager/components/assets-manager/assets-manager.vue.d.ts +6 -6
- package/dist/shared/modules/assets-manager/components/assets-manager/index.d.ts +12 -12
- package/dist/shared/modules/assets-manager/index.d.ts +1 -1
- package/dist/shared/modules/dynamic/components/FIELD_MAP.d.ts +1 -2
- package/dist/shared/modules/dynamic/components/FIELD_MAP.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/components/SchemaRender.d.ts +83 -82
- package/dist/shared/modules/dynamic/components/SchemaRender.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/components/factories.d.ts +15 -14
- package/dist/shared/modules/dynamic/components/factories.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/components/fields/Button.d.ts +39 -42
- package/dist/shared/modules/dynamic/components/fields/Button.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/components/fields/Card.d.ts +39 -42
- package/dist/shared/modules/dynamic/components/fields/Card.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/components/fields/Checkbox.d.ts +39 -42
- package/dist/shared/modules/dynamic/components/fields/Checkbox.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/components/fields/ContentField.d.ts +39 -42
- package/dist/shared/modules/dynamic/components/fields/ContentField.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/components/fields/DynamicProperty.d.ts +39 -42
- package/dist/shared/modules/dynamic/components/fields/DynamicProperty.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/components/fields/EditorField.d.ts +39 -42
- package/dist/shared/modules/dynamic/components/fields/EditorField.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/components/fields/Fieldset.d.ts +39 -42
- package/dist/shared/modules/dynamic/components/fields/Fieldset.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/components/fields/GalleryField.d.ts +39 -42
- package/dist/shared/modules/dynamic/components/fields/GalleryField.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/components/fields/ImageField.d.ts +39 -42
- package/dist/shared/modules/dynamic/components/fields/ImageField.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/components/fields/InputCurrency.d.ts +39 -42
- package/dist/shared/modules/dynamic/components/fields/InputCurrency.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/components/fields/InputField.d.ts +39 -42
- package/dist/shared/modules/dynamic/components/fields/InputField.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/components/fields/SelectField.d.ts +39 -42
- package/dist/shared/modules/dynamic/components/fields/SelectField.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/components/fields/StatusField.d.ts +39 -42
- package/dist/shared/modules/dynamic/components/fields/StatusField.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/components/fields/TextareaField.d.ts +132 -0
- package/dist/shared/modules/dynamic/components/fields/TextareaField.d.ts.map +1 -0
- package/dist/shared/modules/dynamic/components/fields/VideoField.d.ts +39 -42
- package/dist/shared/modules/dynamic/components/fields/VideoField.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/components/fields/props.d.ts +38 -41
- package/dist/shared/modules/dynamic/components/fields/props.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/composables/useFilterBuilder/index.d.ts +2 -2
- package/dist/shared/modules/dynamic/composables/useFilterBuilder/index.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/factories/base/useDetailsFactory.d.ts +3 -3
- package/dist/shared/modules/dynamic/factories/base/useDetailsFactory.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/factories/types/index.d.ts +10 -11
- package/dist/shared/modules/dynamic/factories/types/index.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/helpers/nodeBuilder.d.ts +1 -1
- package/dist/shared/modules/dynamic/helpers/nodeBuilder.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/helpers/override.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/helpers/safeIn.d.ts +5 -0
- package/dist/shared/modules/dynamic/helpers/safeIn.d.ts.map +1 -0
- package/dist/shared/modules/dynamic/helpers/setters.d.ts +1 -0
- package/dist/shared/modules/dynamic/helpers/setters.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/helpers/toolbarReducer.d.ts +1 -1
- package/dist/shared/modules/dynamic/helpers/toolbarReducer.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/helpers/unwrapInterpolation.d.ts +1 -1
- package/dist/shared/modules/dynamic/helpers/unwrapInterpolation.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/index.d.ts +7 -7
- package/dist/shared/modules/dynamic/index.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/pages/dynamic-blade-form.vue.d.ts +30 -30
- package/dist/shared/modules/dynamic/pages/dynamic-blade-form.vue.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/pages/dynamic-blade-list.vue.d.ts +11 -10
- package/dist/shared/modules/dynamic/pages/dynamic-blade-list.vue.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/types/index.d.ts +321 -17
- package/dist/shared/modules/dynamic/types/index.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/types/models.d.ts +7 -3
- package/dist/shared/modules/dynamic/types/models.d.ts.map +1 -1
- package/dist/shared/pages/InvitePage/components/invite/Invite.vue.d.ts +15 -28
- package/dist/shared/pages/InvitePage/components/invite/Invite.vue.d.ts.map +1 -1
- package/dist/shared/pages/InvitePage/components/invite/index.d.ts +13 -17
- package/dist/shared/pages/InvitePage/components/invite/index.d.ts.map +1 -1
- package/dist/shared/pages/LoginPage/components/login/Login.vue.d.ts.map +1 -1
- package/dist/shared/pages/ResetPasswordPage/components/reset-password/ResetPassword.vue.d.ts +15 -28
- package/dist/shared/pages/ResetPasswordPage/components/reset-password/ResetPassword.vue.d.ts.map +1 -1
- package/dist/shared/pages/ResetPasswordPage/components/reset-password/index.d.ts +13 -17
- package/dist/shared/pages/ResetPasswordPage/components/reset-password/index.d.ts.map +1 -1
- package/dist/shared/utilities/assets.d.ts +3 -3
- package/dist/shared/utilities/assets.d.ts.map +1 -1
- package/dist/shared/utilities/vueUtils.d.ts +34 -0
- package/dist/shared/utilities/vueUtils.d.ts.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/ui/components/atoms/vc-badge/index.d.ts +30 -30
- package/dist/ui/components/atoms/vc-badge/vc-badge.vue.d.ts +1 -1
- package/dist/ui/components/atoms/vc-button/vc-button.vue.d.ts +1 -1
- package/dist/ui/components/atoms/vc-card/index.d.ts +37 -37
- package/dist/ui/components/atoms/vc-card/vc-card.vue.d.ts +2 -2
- package/dist/ui/components/atoms/vc-checkbox/index.d.ts +49 -45
- package/dist/ui/components/atoms/vc-checkbox/index.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-checkbox/vc-checkbox.vue.d.ts +2 -2
- package/dist/ui/components/atoms/vc-checkbox/vc-checkbox.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-container/index.d.ts +33 -33
- package/dist/ui/components/atoms/vc-container/vc-container.vue.d.ts +2 -2
- package/dist/ui/components/atoms/vc-hint/index.d.ts +22 -22
- package/dist/ui/components/atoms/vc-image/index.d.ts +10 -10
- package/dist/ui/components/atoms/vc-image/vc-image.vue.d.ts +2 -2
- package/dist/ui/components/atoms/vc-info-row/index.d.ts +4 -4
- package/dist/ui/components/atoms/vc-label/index.d.ts +26 -26
- package/dist/ui/components/atoms/vc-label/vc-label.vue.d.ts +1 -1
- package/dist/ui/components/atoms/vc-link/index.d.ts +29 -29
- package/dist/ui/components/atoms/vc-link/vc-link.vue.d.ts +1 -1
- package/dist/ui/components/atoms/vc-progress/index.d.ts +43 -43
- package/dist/ui/components/atoms/vc-progress/vc-progress.vue.d.ts +1 -1
- package/dist/ui/components/atoms/vc-status-icon/index.d.ts +1 -9
- package/dist/ui/components/atoms/vc-status-icon/index.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-switch/index.d.ts +1 -1
- package/dist/ui/components/atoms/vc-switch/vc-switch.vue.d.ts +1 -1
- package/dist/ui/components/atoms/vc-video/index.d.ts +1 -19
- package/dist/ui/components/atoms/vc-video/index.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-video/vc-video.vue.d.ts +1 -4
- package/dist/ui/components/atoms/vc-video/vc-video.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-widget/index.d.ts +1 -1
- package/dist/ui/components/atoms/vc-widget/vc-widget.vue.d.ts +1 -1
- package/dist/ui/components/molecules/vc-breadcrumbs/_internal/vc-breadcrumbs-item/vc-breadcrumbs-item.vue.d.ts +9 -9
- package/dist/ui/components/molecules/vc-breadcrumbs/index.d.ts +8 -8
- package/dist/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.vue.d.ts +4 -4
- package/dist/ui/components/molecules/vc-code-editor/index.d.ts +65 -75
- package/dist/ui/components/molecules/vc-code-editor/index.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-code-editor/vc-code-editor.vue.d.ts +5 -16
- package/dist/ui/components/molecules/vc-code-editor/vc-code-editor.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-editor/vc-editor.vue.d.ts +6 -20
- package/dist/ui/components/molecules/vc-editor/vc-editor.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-field/_internal/vc-field-type/vc-field-type.vue.d.ts +3 -3
- package/dist/ui/components/molecules/vc-field/_internal/vc-field-type/vc-field-type.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-field/vc-field.vue.d.ts +2 -2
- package/dist/ui/components/molecules/vc-field/vc-field.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-file-upload/index.d.ts +59 -59
- package/dist/ui/components/molecules/vc-file-upload/vc-file-upload.vue.d.ts +2 -2
- package/dist/ui/components/molecules/vc-form/index.d.ts +22 -22
- package/dist/ui/components/molecules/vc-input/vc-input.vue.d.ts +8 -8
- package/dist/ui/components/molecules/vc-input-currency/index.d.ts +99 -99
- package/dist/ui/components/molecules/vc-input-currency/index.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-input-currency/vc-input-currency.vue.d.ts +8 -8
- package/dist/ui/components/molecules/vc-input-currency/vc-input-currency.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-multivalue/index.d.ts +70 -70
- package/dist/ui/components/molecules/vc-multivalue/vc-multivalue.vue.d.ts +70 -70
- package/dist/ui/components/molecules/vc-multivalue/vc-multivalue.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-notification/index.d.ts +1 -51
- package/dist/ui/components/molecules/vc-notification/index.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-pagination/index.d.ts +7 -7
- package/dist/ui/components/molecules/vc-pagination/vc-pagination.vue.d.ts +1 -1
- package/dist/ui/components/molecules/vc-rating/index.d.ts +25 -25
- package/dist/ui/components/molecules/vc-select/vc-select.vue.d.ts +80 -80
- package/dist/ui/components/molecules/vc-select/vc-select.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-slider/index.d.ts +40 -40
- package/dist/ui/components/molecules/vc-slider/vc-slider.vue.d.ts +2 -2
- package/dist/ui/components/molecules/vc-textarea/index.d.ts +1 -230
- package/dist/ui/components/molecules/vc-textarea/index.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-textarea/vc-textarea.vue.d.ts +6 -6
- package/dist/ui/components/molecules/vc-textarea/vc-textarea.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue.d.ts +4 -7
- package/dist/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/_internal/vc-app-menu-link.vue.d.ts +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/vc-app-menu-item.vue.d.ts +13 -13
- package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/vc-app-menu-item.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/vc-app-menu.vue.d.ts +10 -10
- package/dist/ui/components/organisms/vc-app/index.d.ts +93 -92
- package/dist/ui/components/organisms/vc-app/index.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/vc-app.vue.d.ts +20 -21
- package/dist/ui/components/organisms/vc-app/vc-app.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-header/vc-blade-header.vue.d.ts +4 -4
- package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-button/vc-blade-toolbar-button.vue.d.ts +9 -9
- package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-button/vc-blade-toolbar-button.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/vc-blade-toolbar.vue.d.ts +2 -2
- package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/vc-blade-toolbar.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/index.d.ts +70 -70
- package/dist/ui/components/organisms/vc-blade/vc-blade.vue.d.ts +5 -5
- package/dist/ui/components/organisms/vc-dynamic-property/vc-dynamic-property.vue.d.ts +67 -67
- package/dist/ui/components/organisms/vc-dynamic-property/vc-dynamic-property.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-item/vc-gallery-item.vue.d.ts +15 -15
- package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-preview/vc-gallery-preview.vue.d.ts +3 -3
- package/dist/ui/components/organisms/vc-gallery/index.d.ts +24 -36
- package/dist/ui/components/organisms/vc-gallery/index.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-gallery/vc-gallery.vue.d.ts +8 -10
- package/dist/ui/components/organisms/vc-gallery/vc-gallery.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-login-form/index.d.ts +24 -24
- package/dist/ui/components/organisms/vc-notification-dropdown/_internal/notification/notification.vue.d.ts +1 -1
- package/dist/ui/components/organisms/vc-notification-dropdown/_internal/notification/notification.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-notification-template/index.d.ts +1 -103
- package/dist/ui/components/organisms/vc-notification-template/index.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-notification-template/vc-notification-template.vue.d.ts +2 -0
- package/dist/ui/components/organisms/vc-notification-template/vc-notification-template.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-popup/_internal/vc-popup-error/vc-popup-error.vue.d.ts +1 -1
- package/dist/ui/components/organisms/vc-popup/_internal/vc-popup-warning/vc-popup-warning.vue.d.ts +2 -2
- package/dist/ui/components/organisms/vc-popup/vc-popup.vue.d.ts +2 -2
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-column-switcher/vc-table-column-switcher.vue.d.ts +1 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-counter/vc-table-counter.vue.d.ts +1 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-filter/vc-table-filter.vue.d.ts +2 -2
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-mobile-item/vc-table-mobile-item.vue.d.ts +15 -15
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-mobile-item/vc-table-mobile-item.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/vc-table.vue.d.ts +105 -105
- package/dist/ui/components/organisms/vc-table/vc-table.vue.d.ts.map +1 -1
- package/package.json +5 -5
- package/shared/components/app-switcher/components/vc-app-switcher/vc-app-switcher.vue +3 -3
- package/shared/components/app-switcher/composables/useAppSwitcher/index.ts +1 -1
- package/shared/components/blade-navigation/components/vc-blade-navigation/vc-blade-navigation.vue +7 -7
- package/shared/components/blade-navigation/composables/useBladeNavigation/index.ts +80 -80
- package/shared/components/blade-navigation/types/index.ts +50 -18
- package/shared/components/change-password/change-password.vue +32 -5
- package/shared/components/error-interceptor/interceptor.ts +4 -4
- package/shared/components/notifications/composables/useContainer/index.ts +2 -2
- package/shared/components/notifications/composables/useInstance/index.ts +2 -2
- package/shared/components/notifications/core/notification.ts +2 -2
- package/shared/components/popup-handler/components/vc-popup-container/vc-popup-container.vue +2 -2
- package/shared/components/popup-handler/composables/usePopup/index.ts +13 -6
- package/shared/components/popup-handler/types/index.ts +1 -7
- package/shared/components/user-dropdown-button/user-dropdown-button.vue +1 -1
- package/shared/modules/assets/components/assets-details/assets-details.vue +12 -6
- package/shared/modules/assets/components/assets-details/index.ts +1 -3
- package/shared/modules/assets-manager/components/assets-manager/assets-manager.vue +10 -10
- package/shared/modules/dynamic/components/FIELD_MAP.ts +4 -2
- package/shared/modules/dynamic/components/SchemaRender.ts +2 -2
- package/shared/modules/dynamic/components/factories.ts +24 -13
- package/shared/modules/dynamic/components/fields/Button.ts +3 -3
- package/shared/modules/dynamic/components/fields/Card.ts +30 -15
- package/shared/modules/dynamic/components/fields/Checkbox.ts +2 -2
- package/shared/modules/dynamic/components/fields/ContentField.ts +2 -2
- package/shared/modules/dynamic/components/fields/DynamicProperty.ts +19 -9
- package/shared/modules/dynamic/components/fields/Fieldset.ts +7 -4
- package/shared/modules/dynamic/components/fields/GalleryField.ts +42 -22
- package/shared/modules/dynamic/components/fields/ImageField.ts +2 -2
- package/shared/modules/dynamic/components/fields/InputCurrency.ts +8 -4
- package/shared/modules/dynamic/components/fields/InputField.ts +9 -9
- package/shared/modules/dynamic/components/fields/SelectField.ts +6 -3
- package/shared/modules/dynamic/components/fields/StatusField.ts +3 -3
- package/shared/modules/dynamic/components/fields/TextareaField.ts +41 -0
- package/shared/modules/dynamic/components/fields/ValidationField.ts +9 -9
- package/shared/modules/dynamic/components/fields/VideoField.ts +2 -5
- package/shared/modules/dynamic/components/fields/props.ts +1 -2
- package/shared/modules/dynamic/composables/useFilterBuilder/index.ts +18 -10
- package/shared/modules/dynamic/factories/base/useDetailsFactory.ts +7 -6
- package/shared/modules/dynamic/factories/base/useListFactory.ts +4 -4
- package/shared/modules/dynamic/factories/types/index.ts +11 -9
- package/shared/modules/dynamic/helpers/nodeBuilder.ts +53 -27
- package/shared/modules/dynamic/helpers/override.ts +14 -27
- package/shared/modules/dynamic/helpers/safeIn.ts +6 -0
- package/shared/modules/dynamic/helpers/setters.ts +11 -2
- package/shared/modules/dynamic/helpers/toolbarReducer.ts +3 -3
- package/shared/modules/dynamic/helpers/unwrapInterpolation.ts +2 -1
- package/shared/modules/dynamic/index.ts +38 -29
- package/shared/modules/dynamic/pages/dynamic-blade-form.vue +33 -31
- package/shared/modules/dynamic/pages/dynamic-blade-list.vue +45 -33
- package/shared/modules/dynamic/types/index.ts +323 -17
- package/shared/modules/dynamic/types/models.ts +11 -3
- package/shared/pages/InvitePage/components/invite/Invite.vue +17 -19
- package/shared/pages/LoginPage/components/login/Login.vue +6 -8
- package/shared/pages/ResetPasswordPage/components/reset-password/ResetPassword.vue +17 -19
- package/shared/utilities/assets.ts +6 -4
- package/shared/utilities/vueUtils.ts +46 -0
- package/ui/components/atoms/vc-checkbox/vc-checkbox.vue +2 -2
- package/ui/components/atoms/vc-status-icon/index.ts +1 -3
- package/ui/components/atoms/vc-video/vc-video.vue +1 -14
- package/ui/components/molecules/vc-code-editor/vc-code-editor.vue +1 -3
- package/ui/components/molecules/vc-editor/vc-editor.vue +13 -7
- package/ui/components/molecules/vc-field/_internal/vc-field-type/vc-field-type.vue +14 -5
- package/ui/components/molecules/vc-field/vc-field.vue +1 -1
- package/ui/components/molecules/vc-input/vc-input.vue +4 -4
- package/ui/components/molecules/vc-input-currency/vc-input-currency.vue +11 -11
- package/ui/components/molecules/vc-multivalue/vc-multivalue.vue +1 -1
- package/ui/components/molecules/vc-notification/index.ts +1 -3
- package/ui/components/molecules/vc-notification/vc-notification.vue +6 -6
- package/ui/components/molecules/vc-select/vc-select.vue +6 -4
- package/ui/components/molecules/vc-textarea/index.ts +1 -10
- package/ui/components/molecules/vc-textarea/vc-textarea.vue +6 -1
- package/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue +0 -1
- package/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/_internal/vc-app-menu-link.vue +3 -3
- package/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/vc-app-menu-item.vue +7 -7
- package/ui/components/organisms/vc-app/vc-app.vue +11 -19
- package/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-button/vc-blade-toolbar-button.vue +2 -2
- package/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/vc-blade-toolbar.vue +2 -2
- package/ui/components/organisms/vc-blade/vc-blade.vue +1 -1
- package/ui/components/organisms/vc-dynamic-property/vc-dynamic-property.vue +3 -3
- package/ui/components/organisms/vc-gallery/vc-gallery.vue +6 -7
- package/ui/components/organisms/vc-notification-dropdown/_internal/notification/notification.vue +1 -12
- package/ui/components/organisms/vc-notification-template/index.ts +1 -3
- package/ui/components/organisms/vc-notification-template/vc-notification-template.vue +35 -17
- package/ui/components/organisms/vc-table/_internal/vc-table-cell/vc-table-cell.vue +6 -6
- package/ui/components/organisms/vc-table/vc-table.vue +12 -11
|
@@ -1,16 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
ref,
|
|
4
|
-
unref,
|
|
5
|
-
watch,
|
|
6
|
-
Ref,
|
|
7
|
-
ComponentPublicInstance,
|
|
8
|
-
getCurrentInstance,
|
|
9
|
-
markRaw,
|
|
10
|
-
inject,
|
|
11
|
-
nextTick,
|
|
12
|
-
warn,
|
|
13
|
-
} from "vue";
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
import { computed, ref, unref, watch, Ref, getCurrentInstance, markRaw, inject, nextTick, warn, Component } from "vue";
|
|
14
3
|
import * as _ from "lodash-es";
|
|
15
4
|
import { useRouter, RouteLocationNormalized } from "vue-router";
|
|
16
5
|
import { usePermissions } from "../../../../../core/composables";
|
|
@@ -19,11 +8,10 @@ import {
|
|
|
19
8
|
IBladeRef,
|
|
20
9
|
IBladeEvent,
|
|
21
10
|
IParentCallArgs,
|
|
22
|
-
BladeConstructor,
|
|
23
11
|
BladeComponentInternalInstance,
|
|
24
12
|
BladeNavigationPlugin,
|
|
25
13
|
notification,
|
|
26
|
-
|
|
14
|
+
BladeInstanceConstructor,
|
|
27
15
|
} from "../../../..";
|
|
28
16
|
import { bladeNavigationInstance } from "../../plugin";
|
|
29
17
|
import pattern from "url-pattern";
|
|
@@ -34,18 +22,20 @@ interface BladeData {
|
|
|
34
22
|
param?: string;
|
|
35
23
|
options?: string;
|
|
36
24
|
}
|
|
25
|
+
|
|
37
26
|
interface IUseBladeNavigation {
|
|
38
27
|
readonly blades: Ref<IBladeContainer[]>;
|
|
39
|
-
|
|
40
|
-
readonly
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
29
|
+
readonly workspaceOptions: Ref<Record<string, any>> | Ref<undefined>;
|
|
30
|
+
readonly workspaceParam: Ref<string> | Ref<undefined>;
|
|
41
31
|
readonly lastBladeData: Ref<BladeData>;
|
|
42
32
|
bladesRefs: Ref<IBladeRef[]>;
|
|
43
33
|
activeBlade: Ref<IBladeContainer>;
|
|
44
|
-
openBlade: <Blade extends
|
|
34
|
+
openBlade: <Blade extends Component>(
|
|
45
35
|
{ blade, param, options, onOpen, onClose }: IBladeEvent<Blade>,
|
|
46
36
|
isWorkspace?: boolean
|
|
47
37
|
) => void;
|
|
48
|
-
closeBlade: (index: number) => Promise<boolean>;
|
|
38
|
+
closeBlade: (index: number) => Promise<boolean | undefined>;
|
|
49
39
|
onParentCall: (index: number, args: IParentCallArgs) => void;
|
|
50
40
|
/**
|
|
51
41
|
* Resolves blades from vue-router's navigation guard 'to' param. Used to display blades after page reload or accessing via direct link.
|
|
@@ -53,18 +43,17 @@ interface IUseBladeNavigation {
|
|
|
53
43
|
* @param to
|
|
54
44
|
* @returns string
|
|
55
45
|
*/
|
|
56
|
-
resolveBlades: (to: RouteLocationNormalized) => string;
|
|
57
|
-
resolveLastBlade: (pages:
|
|
58
|
-
resolveUnknownRoutes: (to: RouteLocationNormalized) => string;
|
|
59
|
-
resolveBladeByName: (name: string) =>
|
|
46
|
+
resolveBlades: (to: RouteLocationNormalized) => string | unknown;
|
|
47
|
+
resolveLastBlade: (pages: BladeInstanceConstructor[]) => void;
|
|
48
|
+
resolveUnknownRoutes: (to: RouteLocationNormalized) => string | unknown;
|
|
49
|
+
resolveBladeByName: (name: string) => BladeInstanceConstructor<any>;
|
|
60
50
|
}
|
|
61
51
|
|
|
62
52
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
63
|
-
const workspaceOptions: Ref<Record<string, any>> = ref();
|
|
64
|
-
const workspaceParam: Ref<string> = ref();
|
|
53
|
+
const workspaceOptions: Ref<Record<string, any>> | Ref<undefined> = ref();
|
|
54
|
+
const workspaceParam: Ref<string> | Ref<undefined> = ref();
|
|
65
55
|
const activeBlade = ref();
|
|
66
56
|
const lastBladeData = useLocalStorage<BladeData>("VC_BLADE_DATA", {});
|
|
67
|
-
// const resolvedLastBlade = ref<BladePageComponent>();
|
|
68
57
|
|
|
69
58
|
export function useBladeNavigation(): IUseBladeNavigation {
|
|
70
59
|
const router = useRouter();
|
|
@@ -73,7 +62,7 @@ export function useBladeNavigation(): IUseBladeNavigation {
|
|
|
73
62
|
const isPrevented = ref(false);
|
|
74
63
|
const routes = router.getRoutes();
|
|
75
64
|
|
|
76
|
-
const instance: BladeComponentInternalInstance = getCurrentInstance();
|
|
65
|
+
const instance: BladeComponentInternalInstance = getCurrentInstance() as BladeComponentInternalInstance;
|
|
77
66
|
const navigationInstance =
|
|
78
67
|
(instance && inject<BladeNavigationPlugin>("bladeNavigationPlugin")) || bladeNavigationInstance;
|
|
79
68
|
|
|
@@ -84,9 +73,9 @@ export function useBladeNavigation(): IUseBladeNavigation {
|
|
|
84
73
|
const workspace = navigationInstance.bladesRefs.value[0]?.blade;
|
|
85
74
|
const lastBlade = newVal[newVal.length - 1];
|
|
86
75
|
|
|
87
|
-
if (workspace && workspace.blade
|
|
76
|
+
if (workspace && workspace.blade?.url) {
|
|
88
77
|
let url: string;
|
|
89
|
-
if (lastBlade && lastBlade.blade
|
|
78
|
+
if (lastBlade && lastBlade.blade?.url) {
|
|
90
79
|
url = urlPattern.stringify({
|
|
91
80
|
workspace: workspace?.blade.url.substring(1),
|
|
92
81
|
blade: lastBlade?.blade.url.substring(1),
|
|
@@ -103,13 +92,13 @@ export function useBladeNavigation(): IUseBladeNavigation {
|
|
|
103
92
|
{ deep: true }
|
|
104
93
|
);
|
|
105
94
|
|
|
106
|
-
async function openWorkspace({ blade, param, options }: IBladeEvent) {
|
|
95
|
+
async function openWorkspace<Blade extends Component>({ blade, param, options }: IBladeEvent<Blade>) {
|
|
107
96
|
await closeBlade(0);
|
|
108
97
|
|
|
109
98
|
const bladeComponent = unref(blade);
|
|
110
99
|
|
|
111
|
-
if (!isPrevented.value) {
|
|
112
|
-
await router.replace(bladeComponent.url);
|
|
100
|
+
if (!isPrevented.value && bladeComponent?.url) {
|
|
101
|
+
await router.replace(bladeComponent.url as string);
|
|
113
102
|
|
|
114
103
|
await nextTick(() => {
|
|
115
104
|
workspaceOptions.value = unref(options);
|
|
@@ -119,7 +108,9 @@ export function useBladeNavigation(): IUseBladeNavigation {
|
|
|
119
108
|
}
|
|
120
109
|
|
|
121
110
|
function isBladeComponent(
|
|
122
|
-
component:
|
|
111
|
+
component:
|
|
112
|
+
| Omit<BladeComponentInternalInstance["vnode"]["type"], "__isFragment">
|
|
113
|
+
| InstanceType<BladeInstanceConstructor>
|
|
123
114
|
) {
|
|
124
115
|
if (!instance) {
|
|
125
116
|
warn("isBladeComponent can only be used in setup().");
|
|
@@ -130,7 +121,7 @@ export function useBladeNavigation(): IUseBladeNavigation {
|
|
|
130
121
|
return foundComponent && "isBladeComponent" in foundComponent && !!foundComponent.isBladeComponent;
|
|
131
122
|
}
|
|
132
123
|
|
|
133
|
-
async function openBlade<Blade extends
|
|
124
|
+
async function openBlade<Blade extends Component>(
|
|
134
125
|
{ blade, param, options, onOpen, onClose }: IBladeEvent<Blade>,
|
|
135
126
|
isWorkspace = false
|
|
136
127
|
) {
|
|
@@ -146,37 +137,39 @@ export function useBladeNavigation(): IUseBladeNavigation {
|
|
|
146
137
|
|
|
147
138
|
clearParentData();
|
|
148
139
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
140
|
+
if (instance) {
|
|
141
|
+
// caller blade component
|
|
142
|
+
const instanceComponent = isBladeComponent(instance.vnode.type)
|
|
143
|
+
? instance.vnode.type
|
|
144
|
+
: navigationInstance.bladesRefs.value.find((item) => item.active)?.blade?.blade;
|
|
145
|
+
|
|
146
|
+
if (instanceComponent) {
|
|
147
|
+
// Caller blade index in blades array
|
|
148
|
+
const callerIndex = navigationInstance.bladesRefs.value.findIndex((item) => {
|
|
149
|
+
return _.isEqual(item.blade.blade, instanceComponent);
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
// Trying to determine if the calling blade already has a child in order to replace it
|
|
153
|
+
const isBladeAlreadyExist =
|
|
154
|
+
callerIndex >= 0 ? navigationInstance.bladesRefs.value[callerIndex + 1]?.blade.blade : undefined;
|
|
155
|
+
|
|
156
|
+
// Blade we want to open
|
|
157
|
+
const bladeComponent = unref(blade);
|
|
158
|
+
|
|
159
|
+
// Check if caller blade has idx
|
|
160
|
+
const index = instanceComponent?.idx ? instanceComponent.idx : 0;
|
|
161
|
+
|
|
162
|
+
if (isBladeAlreadyExist === undefined) {
|
|
163
|
+
bladeComponent.idx = index ? index + 1 : 1;
|
|
164
|
+
} else if (isBladeAlreadyExist) {
|
|
165
|
+
await closeBlade(
|
|
166
|
+
navigationInstance.blades.value.findIndex((x: IBladeContainer) => x.idx === isBladeAlreadyExist.idx)
|
|
167
|
+
);
|
|
168
|
+
bladeComponent.idx = isBladeAlreadyExist.idx;
|
|
169
|
+
}
|
|
170
|
+
if (!isPrevented.value) {
|
|
171
|
+
await addBlade(bladeComponent, param, options, onOpen, onClose, index);
|
|
172
|
+
}
|
|
180
173
|
}
|
|
181
174
|
}
|
|
182
175
|
}
|
|
@@ -191,7 +184,7 @@ export function useBladeNavigation(): IUseBladeNavigation {
|
|
|
191
184
|
isPrevented.value = false;
|
|
192
185
|
for (let i = 0; i < children.length; i++) {
|
|
193
186
|
if (children[i]?.exposed.onBeforeClose && typeof children[i].exposed.onBeforeClose === "function") {
|
|
194
|
-
const result = await children[i].exposed.onBeforeClose();
|
|
187
|
+
const result = await children[i].exposed.onBeforeClose?.();
|
|
195
188
|
if (result === false) {
|
|
196
189
|
isPrevented.value = true;
|
|
197
190
|
console.debug(`[@vc-shell/framework#useBladeNavigation] - Navigation is prevented`);
|
|
@@ -211,19 +204,19 @@ export function useBladeNavigation(): IUseBladeNavigation {
|
|
|
211
204
|
}
|
|
212
205
|
|
|
213
206
|
async function addBlade(
|
|
214
|
-
blade:
|
|
215
|
-
param
|
|
207
|
+
blade: BladeInstanceConstructor,
|
|
208
|
+
param?: string,
|
|
216
209
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
217
|
-
options
|
|
218
|
-
onOpen
|
|
219
|
-
onClose
|
|
210
|
+
options?: Record<string, any>,
|
|
211
|
+
onOpen?: () => void,
|
|
212
|
+
onClose?: () => void,
|
|
220
213
|
index?: number
|
|
221
214
|
) {
|
|
222
215
|
if (index && navigationInstance.blades.value.length > index) {
|
|
223
216
|
await closeBlade(index);
|
|
224
217
|
}
|
|
225
218
|
|
|
226
|
-
if (
|
|
219
|
+
if (hasAccess(blade.permissions)) {
|
|
227
220
|
navigationInstance.blades.value.push({
|
|
228
221
|
blade: markRaw(blade),
|
|
229
222
|
options,
|
|
@@ -264,7 +257,7 @@ export function useBladeNavigation(): IUseBladeNavigation {
|
|
|
264
257
|
}
|
|
265
258
|
|
|
266
259
|
function addEntryToLocation(params: string) {
|
|
267
|
-
history.replaceState({},
|
|
260
|
+
history.replaceState({}, "", "#" + params);
|
|
268
261
|
}
|
|
269
262
|
|
|
270
263
|
async function clearParentData() {
|
|
@@ -308,34 +301,41 @@ export function useBladeNavigation(): IUseBladeNavigation {
|
|
|
308
301
|
workspaceParam.value = param;
|
|
309
302
|
}
|
|
310
303
|
|
|
311
|
-
function resolveLastBlade(pages:
|
|
304
|
+
function resolveLastBlade(pages: BladeInstanceConstructor[]) {
|
|
312
305
|
if (lastBladeData.value?.blade) {
|
|
313
306
|
const blade = pages?.find((b) => b.url === lastBladeData.value?.blade);
|
|
314
307
|
setParentData({ param: lastBladeData.value?.param });
|
|
315
308
|
|
|
316
|
-
if (!isBladeAlreadyOpened({ blade, param: lastBladeData.value?.param })) {
|
|
309
|
+
if (blade && !isBladeAlreadyOpened({ blade, param: lastBladeData.value?.param })) {
|
|
317
310
|
openBlade({ blade, param: lastBladeData.value?.param });
|
|
318
311
|
clearSavedBladeData();
|
|
319
312
|
}
|
|
320
313
|
}
|
|
321
314
|
}
|
|
322
315
|
|
|
323
|
-
function isBladeAlreadyOpened(args: { blade:
|
|
316
|
+
function isBladeAlreadyOpened(args: { blade: BladeInstanceConstructor; param?: string }) {
|
|
324
317
|
return navigationInstance?.blades.value.some((x) => {
|
|
325
318
|
return x.blade === args.blade && x.param === args.param;
|
|
326
319
|
});
|
|
327
320
|
}
|
|
328
321
|
|
|
329
|
-
function resolveBladeByName(name: string) {
|
|
322
|
+
function resolveBladeByName(name: string): BladeInstanceConstructor<any> {
|
|
330
323
|
if (!instance) {
|
|
331
324
|
warn("resolveComponentByName can only be used in setup().");
|
|
332
|
-
|
|
325
|
+
|
|
326
|
+
return null as any; // Return type inferred as any due to the early return
|
|
333
327
|
}
|
|
328
|
+
|
|
334
329
|
if (!name) {
|
|
335
330
|
throw new Error("blade name is required");
|
|
336
331
|
}
|
|
337
|
-
|
|
338
|
-
|
|
332
|
+
|
|
333
|
+
const components = instance?.appContext.components;
|
|
334
|
+
if (components[name]) {
|
|
335
|
+
return components[name] as BladeInstanceConstructor<any>;
|
|
336
|
+
} else {
|
|
337
|
+
throw new Error("Blade not found");
|
|
338
|
+
}
|
|
339
339
|
}
|
|
340
340
|
|
|
341
341
|
return {
|
|
@@ -1,17 +1,23 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
};
|
|
2
|
+
import {
|
|
3
|
+
AppContext,
|
|
4
|
+
Component,
|
|
5
|
+
ComponentOptionsBase,
|
|
6
|
+
ComponentOptionsMixin,
|
|
7
|
+
ComponentPublicInstance,
|
|
8
|
+
ComputedOptions,
|
|
9
|
+
VNode,
|
|
10
|
+
ComponentInternalInstance,
|
|
11
|
+
VNodeTypes,
|
|
12
|
+
Ref,
|
|
13
|
+
MethodOptions,
|
|
14
|
+
} from "vue";
|
|
15
|
+
import { ComponentPublicInstanceConstructor } from "../../../utilities/vueUtils";
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @deprecated use `ComponentPublicInstanceConstructor` interface instead
|
|
19
|
+
*/
|
|
20
|
+
export type ComponentInstanceConstructor<T = any> = ComponentPublicInstanceConstructor<T>;
|
|
15
21
|
|
|
16
22
|
export type CoreBladeComponentProps = {
|
|
17
23
|
expanded?: boolean;
|
|
@@ -20,16 +26,24 @@ export type CoreBladeComponentProps = {
|
|
|
20
26
|
options?: Record<string, any>;
|
|
21
27
|
};
|
|
22
28
|
|
|
23
|
-
export type
|
|
29
|
+
export type CoreDynamicBladeComponentProps = {
|
|
30
|
+
model?: any;
|
|
31
|
+
composables?: any;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* @deprecated use `BladeInstanceConstructor` interface instead
|
|
36
|
+
*/
|
|
37
|
+
export type BladePageComponent = BladeInstanceConstructor;
|
|
24
38
|
|
|
25
39
|
export type CoreComponentData = {
|
|
26
40
|
isBladeComponent?: boolean;
|
|
27
|
-
isWorkspace?: boolean;
|
|
28
41
|
};
|
|
29
42
|
|
|
30
43
|
export type CoreBladeAdditionalSettings = {
|
|
31
44
|
url?: `/${string}`;
|
|
32
45
|
permissions?: string | string[];
|
|
46
|
+
isWorkspace?: boolean;
|
|
33
47
|
};
|
|
34
48
|
|
|
35
49
|
export type CoreBladeNavigationData = {
|
|
@@ -56,15 +70,33 @@ export interface IBladeContainer extends IBladeEvent {
|
|
|
56
70
|
|
|
57
71
|
export interface BladeComponentInternalInstance extends ComponentInternalInstance {
|
|
58
72
|
vnode: VNode & { type: VNodeTypes & CoreBladeAdditionalSettings & CoreBladeNavigationData };
|
|
73
|
+
appContext: AppContext & { components: Record<string, BladeInstanceConstructor> };
|
|
59
74
|
}
|
|
60
75
|
|
|
61
76
|
export type ExtractedBladeOptions<T, U extends keyof T> = T[U];
|
|
62
77
|
|
|
78
|
+
/**
|
|
79
|
+
* @deprecated use `BladeInstanceConstructor` interface instead
|
|
80
|
+
*/
|
|
63
81
|
export type BladeConstructor<T extends ComponentPublicInstance = ComponentPublicInstance> = BladeInstanceConstructor<T>;
|
|
64
82
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
83
|
+
type Extractor<T> = Extract<T, ComponentPublicInstanceConstructor>;
|
|
84
|
+
|
|
85
|
+
export type BladeInstanceConstructor<T extends Component = Component> = Extractor<T> & {
|
|
86
|
+
new (...args: any[]): InstanceType<Extractor<T>> & {
|
|
87
|
+
$: ComponentInternalInstance & {
|
|
88
|
+
exposed: CoreBladeExposed | InstanceType<Extractor<T>>["$"]["exposed"];
|
|
89
|
+
};
|
|
90
|
+
$props: InstanceType<Extractor<T>>["$props"] & CoreBladeComponentProps;
|
|
91
|
+
};
|
|
92
|
+
} & ComponentOptionsBase<any, any, any, any, ComponentOptionsMixin, ComponentOptionsMixin, any, any, any> &
|
|
93
|
+
CoreComponentData &
|
|
94
|
+
CoreBladeAdditionalSettings &
|
|
95
|
+
CoreBladeNavigationData;
|
|
96
|
+
|
|
97
|
+
export interface IBladeEvent<T extends Component = Component> {
|
|
98
|
+
blade: BladeInstanceConstructor<T>;
|
|
99
|
+
options?: ExtractedBladeOptions<InstanceType<BladeInstanceConstructor<T>>["$props"], "options">;
|
|
68
100
|
param?: string;
|
|
69
101
|
onOpen?: () => void;
|
|
70
102
|
onClose?: () => void;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
:title="t('COMPONENTS.CHANGE_PASSWORD.TITLE')"
|
|
5
5
|
@close="$emit('close')"
|
|
6
6
|
>
|
|
7
|
-
<div class="tw-p-3">
|
|
7
|
+
<div class="change-password tw-p-3 tw-overflow-scroll">
|
|
8
8
|
<VcForm>
|
|
9
9
|
<Field
|
|
10
10
|
v-slot="{ field, errorMessage, errors }"
|
|
@@ -144,10 +144,10 @@ const isDisabled = computed(() => {
|
|
|
144
144
|
|
|
145
145
|
async function changePassword() {
|
|
146
146
|
const result = await changeUserPassword(form.currentPassword, form.password);
|
|
147
|
-
if (result
|
|
147
|
+
if (result?.succeeded) {
|
|
148
148
|
emit("close");
|
|
149
|
-
} else {
|
|
150
|
-
form.errors = result
|
|
149
|
+
} else if (result?.errors) {
|
|
150
|
+
form.errors = result?.errors;
|
|
151
151
|
form.isValid = form.errors.length == 0;
|
|
152
152
|
}
|
|
153
153
|
}
|
|
@@ -155,7 +155,7 @@ async function changePassword() {
|
|
|
155
155
|
function validate() {
|
|
156
156
|
nextTick(async () => {
|
|
157
157
|
if (form.password || form.confirmPassword) {
|
|
158
|
-
form.errors = (await validatePassword(form.password)).errors;
|
|
158
|
+
form.errors = (await validatePassword(form.password)).errors ?? [];
|
|
159
159
|
if (form.confirmPassword !== form.password) {
|
|
160
160
|
(form.errors as IIdentityError[]).push({ code: "Repeat-password" });
|
|
161
161
|
}
|
|
@@ -167,3 +167,30 @@ function validate() {
|
|
|
167
167
|
});
|
|
168
168
|
}
|
|
169
169
|
</script>
|
|
170
|
+
|
|
171
|
+
<style lang="scss">
|
|
172
|
+
:root {
|
|
173
|
+
--change-password-scroll-color: #e1eff9;
|
|
174
|
+
--change-password-scroll-color-hover: #cce4f5;
|
|
175
|
+
--change-password-scroll-width: 8px;
|
|
176
|
+
--change-password-scroll-padding: 8px;
|
|
177
|
+
--change-password-scroll-shadow: 0 3px 2px rgba(0, 0, 0, 0.1) inset, 0 -3px 2px rgba(0, 0, 0, 0.1) inset;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
.change-password {
|
|
181
|
+
&::-webkit-scrollbar {
|
|
182
|
+
@apply tw-w-[var(--change-password-scroll-width)] tw-bg-transparent;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
&::-webkit-scrollbar-track {
|
|
186
|
+
@apply tw-bg-transparent;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
&::-webkit-scrollbar-thumb {
|
|
190
|
+
@apply tw-bg-[color:var(--change-password-scroll-color)]
|
|
191
|
+
tw-rounded-[calc(var(--change-password-scroll-width)/2)]
|
|
192
|
+
tw-overflow-x-hidden
|
|
193
|
+
hover:tw-bg-[color:var(--change-password-scroll-color-hover)];
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
</style>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useErrorHandler } from "./../../../core/composables";
|
|
2
|
-
import {
|
|
2
|
+
import { defineComponent, VNode } from "vue";
|
|
3
3
|
|
|
4
4
|
export interface Props {
|
|
5
5
|
capture?: boolean;
|
|
@@ -12,7 +12,7 @@ export interface Emits {
|
|
|
12
12
|
|
|
13
13
|
export type Slots = {
|
|
14
14
|
slots: {
|
|
15
|
-
default: (args: { error: string; reset: () => void }) => VNode[];
|
|
15
|
+
default: (args: { error: string | null; reset: () => void }) => VNode[];
|
|
16
16
|
};
|
|
17
17
|
};
|
|
18
18
|
|
|
@@ -31,11 +31,11 @@ export default defineComponent({
|
|
|
31
31
|
return true;
|
|
32
32
|
},
|
|
33
33
|
},
|
|
34
|
-
setup(props, { slots }
|
|
34
|
+
setup(props, { slots }) {
|
|
35
35
|
const { error, reset } = useErrorHandler(props.capture);
|
|
36
36
|
|
|
37
37
|
return () =>
|
|
38
|
-
slots.default({
|
|
38
|
+
slots.default?.({
|
|
39
39
|
error: error.value,
|
|
40
40
|
reset,
|
|
41
41
|
});
|
|
@@ -27,7 +27,7 @@ interface IUseContainer {
|
|
|
27
27
|
getAllNotifications(): NotificationOptions[];
|
|
28
28
|
appendInstance(options: NotificationOptions): void;
|
|
29
29
|
generateNotificationId(): string;
|
|
30
|
-
getNotification(notificationId: string): NotificationOptions;
|
|
30
|
+
getNotification(notificationId: string | number): NotificationOptions | undefined;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
const pending = reactive<PendingContainer>({ items: [] });
|
|
@@ -53,7 +53,7 @@ export function useContainer(): IUseContainer {
|
|
|
53
53
|
function appendFromPending() {
|
|
54
54
|
if (pending.items.length > 0) {
|
|
55
55
|
const append = pending.items.shift();
|
|
56
|
-
appendInstance(append?.notificationProps);
|
|
56
|
+
if (append?.notificationProps) appendInstance(append?.notificationProps);
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
|
|
@@ -7,7 +7,7 @@ interface IUseInstance {
|
|
|
7
7
|
clearContainer(): void;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
const containerInstance: Ref<App<Element
|
|
10
|
+
const containerInstance: Ref<App<Element> | undefined> = ref();
|
|
11
11
|
|
|
12
12
|
export function useInstance(): IUseInstance {
|
|
13
13
|
const { pending, notificationContainer } = useContainer();
|
|
@@ -21,7 +21,7 @@ export function useInstance(): IUseInstance {
|
|
|
21
21
|
|
|
22
22
|
function unmountComponent() {
|
|
23
23
|
try {
|
|
24
|
-
containerInstance.value
|
|
24
|
+
containerInstance.value?.unmount();
|
|
25
25
|
document.getElementById("notification")?.remove();
|
|
26
26
|
containerInstance.value = undefined;
|
|
27
27
|
notificationContainer.value = [];
|
|
@@ -19,7 +19,7 @@ function checkPending(limit?: number) {
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
function resolvePending(options: InternalNotificationOptions) {
|
|
22
|
-
if (checkPending(options.limit)) {
|
|
22
|
+
if (checkPending(options.limit) && options.notificationId) {
|
|
23
23
|
pending.items.push({
|
|
24
24
|
notificationId: options.notificationId,
|
|
25
25
|
notificationProps: options,
|
|
@@ -89,7 +89,7 @@ notification.update = (notificationId: string | number, options: NotificationOpt
|
|
|
89
89
|
const content = updatedOptions.content || item.content;
|
|
90
90
|
delete updatedOptions.content;
|
|
91
91
|
|
|
92
|
-
showNotification(content, updatedOptions);
|
|
92
|
+
if (content) showNotification(content, updatedOptions);
|
|
93
93
|
}
|
|
94
94
|
};
|
|
95
95
|
|
package/shared/components/popup-handler/components/vc-popup-container/vc-popup-container.vue
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<component
|
|
3
3
|
:is="popup.component"
|
|
4
|
-
v-for="popup in popupPlugin
|
|
4
|
+
v-for="popup in popupPlugin?.popups"
|
|
5
5
|
:key="popup.id"
|
|
6
6
|
v-bind="{ ...popup.props, ...popup.emits }"
|
|
7
|
-
@close="() => popup.close()"
|
|
7
|
+
@close="() => popup.close?.()"
|
|
8
8
|
>
|
|
9
9
|
<template
|
|
10
10
|
v-for="(slot, key) in popup.slots"
|
|
@@ -12,9 +12,10 @@ import {
|
|
|
12
12
|
unref,
|
|
13
13
|
DefineComponent,
|
|
14
14
|
} from "vue";
|
|
15
|
-
import {
|
|
15
|
+
import { PopupPlugin, UsePopupInternal, UsePopupProps } from "./../../types";
|
|
16
16
|
import { popupPluginInstance } from "./../../plugin";
|
|
17
17
|
import { useI18n } from "vue-i18n";
|
|
18
|
+
import { ComponentPublicInstanceConstructor } from "../../../../utilities/vueUtils";
|
|
18
19
|
|
|
19
20
|
interface IUsePopup {
|
|
20
21
|
open(): void;
|
|
@@ -29,12 +30,18 @@ export function usePopup<T extends ComponentPublicInstanceConstructor<any> = typ
|
|
|
29
30
|
const { t } = useI18n({ useScope: "global" });
|
|
30
31
|
const instance = getCurrentInstance();
|
|
31
32
|
const popupInstance: PopupPlugin = (instance && inject("popupPlugin")) || popupPluginInstance;
|
|
32
|
-
let rawPopup
|
|
33
|
+
let rawPopup: UsePopupProps<DefineComponent> & UsePopupInternal;
|
|
34
|
+
|
|
35
|
+
if (options) {
|
|
36
|
+
rawPopup = createInstance(unref(options));
|
|
37
|
+
}
|
|
33
38
|
|
|
34
39
|
watch(
|
|
35
40
|
() => options,
|
|
36
41
|
(newVal) => {
|
|
37
|
-
|
|
42
|
+
if (newVal) {
|
|
43
|
+
rawPopup = createInstance(unref(newVal));
|
|
44
|
+
}
|
|
38
45
|
},
|
|
39
46
|
{ deep: true }
|
|
40
47
|
);
|
|
@@ -46,7 +53,7 @@ export function usePopup<T extends ComponentPublicInstanceConstructor<any> = typ
|
|
|
46
53
|
activeInstance = popupInstance;
|
|
47
54
|
}
|
|
48
55
|
|
|
49
|
-
activeInstance
|
|
56
|
+
activeInstance?.popups.push(rawPopup || customInstance);
|
|
50
57
|
}
|
|
51
58
|
|
|
52
59
|
function close(customInstance?: UsePopupProps<DefineComponent>) {
|
|
@@ -54,8 +61,8 @@ export function usePopup<T extends ComponentPublicInstanceConstructor<any> = typ
|
|
|
54
61
|
if (popupInstance) {
|
|
55
62
|
activeInstance = popupInstance;
|
|
56
63
|
}
|
|
57
|
-
const index = activeInstance
|
|
58
|
-
if (index !== -1) activeInstance
|
|
64
|
+
const index = activeInstance?.popups.indexOf(rawPopup || customInstance);
|
|
65
|
+
if (index !== undefined && index !== -1) activeInstance?.popups.splice(index, 1);
|
|
59
66
|
}
|
|
60
67
|
|
|
61
68
|
async function showConfirmation(message: string | Ref<string>): Promise<boolean> {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Component, ComponentPublicInstance, DefineComponent, Slot as VueSlot } from "vue";
|
|
2
|
+
import { ComponentPublicInstanceConstructor } from "../../../utilities/vueUtils";
|
|
2
3
|
|
|
3
4
|
export type RawProps<T extends ComponentPublicInstanceConstructor<any>> = Omit<
|
|
4
5
|
InstanceType<T>["$props"],
|
|
@@ -20,13 +21,6 @@ export interface PopupPlugin {
|
|
|
20
21
|
popups: Partial<UsePopupProps<DefineComponent> & UsePopupInternal>[];
|
|
21
22
|
}
|
|
22
23
|
|
|
23
|
-
export interface ComponentPublicInstanceConstructor<T extends ComponentPublicInstance> {
|
|
24
|
-
__isFragment?: never;
|
|
25
|
-
__isTeleport?: never;
|
|
26
|
-
__isSuspense?: never;
|
|
27
|
-
new (...args: unknown[]): T;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
24
|
export interface UsePopupProps<T extends ComponentPublicInstanceConstructor<any>> {
|
|
31
25
|
component: T;
|
|
32
26
|
emits?: RawEmits<T>;
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
v-for="(item, i) in menuItems"
|
|
39
39
|
:key="`menu_item_${i}`"
|
|
40
40
|
class="user-dropdown-button__menu-item"
|
|
41
|
-
@click="item.hasOwnProperty('clickHandler') ? item.clickHandler() : null"
|
|
41
|
+
@click="item.hasOwnProperty('clickHandler') ? item.clickHandler?.() : null"
|
|
42
42
|
>
|
|
43
43
|
{{ item.title }}
|
|
44
44
|
</div>
|