@vc-shell/framework 1.0.127 → 1.0.129
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 +43 -0
- package/core/api/platform.ts +514 -92
- package/core/composables/index.ts +2 -1
- package/core/composables/useApiClient/index.ts +1 -7
- package/core/composables/useAssets/index.ts +0 -6
- package/core/composables/useBeforeUnload/index.ts +20 -0
- package/core/composables/useMenuService/index.ts +96 -0
- package/core/composables/useNotifications/index.ts +29 -40
- package/core/composables/useSettings/index.ts +23 -29
- package/core/composables/useUser/index.ts +69 -125
- package/core/directives/loading/styles.css +5 -5
- package/core/interceptors/index.ts +75 -0
- package/core/plugins/i18n/index.ts +1 -0
- package/core/plugins/modularity/index.ts +63 -20
- package/core/plugins/moment/moment.ts +2 -2
- package/core/plugins/signalR/index.ts +24 -4
- package/core/types/index.ts +18 -35
- package/core/utilities/kebabToCamel.ts +1 -1
- package/dist/core/api/platform.d.ts +125 -87
- package/dist/core/api/platform.d.ts.map +1 -1
- package/dist/core/composables/index.d.ts +2 -1
- package/dist/core/composables/index.d.ts.map +1 -1
- package/dist/core/composables/useApiClient/index.d.ts.map +1 -1
- package/dist/core/composables/useAssets/index.d.ts.map +1 -1
- package/dist/core/composables/useBeforeUnload/index.d.ts +5 -0
- package/dist/core/composables/useBeforeUnload/index.d.ts.map +1 -0
- package/dist/core/composables/useMenuService/index.d.ts +16 -0
- package/dist/core/composables/useMenuService/index.d.ts.map +1 -0
- package/dist/core/composables/useNotifications/index.d.ts.map +1 -1
- package/dist/core/composables/useSettings/index.d.ts +2 -2
- package/dist/core/composables/useSettings/index.d.ts.map +1 -1
- package/dist/core/composables/useUser/index.d.ts +8 -6
- package/dist/core/composables/useUser/index.d.ts.map +1 -1
- package/dist/core/interceptors/index.d.ts +3 -0
- package/dist/core/interceptors/index.d.ts.map +1 -0
- package/dist/core/plugins/i18n/index.d.ts.map +1 -1
- package/dist/core/plugins/modularity/index.d.ts +1 -1
- package/dist/core/plugins/modularity/index.d.ts.map +1 -1
- package/dist/core/plugins/moment/moment.d.ts.map +1 -1
- package/dist/core/plugins/signalR/index.d.ts.map +1 -1
- package/dist/core/types/index.d.ts +16 -29
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/{framework.mjs → framework.js} +31832 -31900
- package/dist/index.css +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/shared/components/app-switcher/components/vc-app-switcher/index.d.ts +1 -19
- package/dist/shared/components/app-switcher/components/vc-app-switcher/index.d.ts.map +1 -1
- package/dist/shared/components/app-switcher/components/vc-app-switcher/vc-app-switcher.vue.d.ts +3 -0
- package/dist/shared/components/app-switcher/components/vc-app-switcher/vc-app-switcher.vue.d.ts.map +1 -1
- package/dist/shared/components/blade-navigation/components/vc-blade-navigation/index.d.ts +1 -70
- package/dist/shared/components/blade-navigation/components/vc-blade-navigation/index.d.ts.map +1 -1
- package/dist/shared/components/blade-navigation/components/vc-blade-navigation/vc-blade-navigation.vue.d.ts +1 -82
- 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/components/vc-blade-view/vc-blade-view.d.ts +28 -0
- package/dist/shared/components/blade-navigation/components/vc-blade-view/vc-blade-view.d.ts.map +1 -0
- package/dist/shared/components/blade-navigation/composables/useBladeNavigation/index.d.ts +11 -27
- package/dist/shared/components/blade-navigation/composables/useBladeNavigation/index.d.ts.map +1 -1
- package/dist/shared/components/blade-navigation/injectionKeys.d.ts +4 -0
- package/dist/shared/components/blade-navigation/injectionKeys.d.ts.map +1 -0
- package/dist/shared/components/blade-navigation/plugin.d.ts +4 -1
- package/dist/shared/components/blade-navigation/plugin.d.ts.map +1 -1
- package/dist/shared/components/blade-navigation/types/index.d.ts +48 -35
- package/dist/shared/components/blade-navigation/types/index.d.ts.map +1 -1
- package/dist/shared/components/error-interceptor/index.d.ts +33 -67
- package/dist/shared/components/error-interceptor/index.d.ts.map +1 -1
- package/dist/shared/components/index.d.ts +2 -0
- package/dist/shared/components/index.d.ts.map +1 -1
- package/dist/shared/components/language-selector/index.d.ts +1 -49
- package/dist/shared/components/language-selector/index.d.ts.map +1 -1
- package/dist/shared/components/language-selector/language-selector.vue.d.ts +1 -40
- package/dist/shared/components/language-selector/language-selector.vue.d.ts.map +1 -1
- package/dist/{ui/components/organisms/vc-notification-dropdown → shared/components/notification-dropdown}/_internal/notification/notification.vue.d.ts +2 -2
- package/dist/shared/components/notification-dropdown/_internal/notification/notification.vue.d.ts.map +1 -0
- package/dist/shared/components/notification-dropdown/index.d.ts +7 -0
- package/dist/shared/components/notification-dropdown/index.d.ts.map +1 -0
- package/dist/shared/components/notification-dropdown/notification-dropdown.vue.d.ts +3 -0
- package/dist/shared/components/notification-dropdown/notification-dropdown.vue.d.ts.map +1 -0
- package/dist/shared/components/notification-template/index.d.ts +91 -0
- package/dist/shared/components/notification-template/index.d.ts.map +1 -0
- package/dist/{ui/components/organisms/vc-notification-template/vc-notification-template.vue.d.ts → shared/components/notification-template/notification-template.vue.d.ts} +2 -2
- package/dist/shared/components/notification-template/notification-template.vue.d.ts.map +1 -0
- package/dist/shared/components/notifications/components/notification-container/index.d.ts +1 -1
- package/dist/shared/components/notifications/components/notification-container/index.d.ts.map +1 -1
- package/dist/shared/components/popup-handler/composables/usePopup/index.d.ts.map +1 -1
- package/dist/shared/components/user-dropdown-button/index.d.ts +10 -16
- package/dist/shared/components/user-dropdown-button/index.d.ts.map +1 -1
- package/dist/shared/components/user-dropdown-button/user-dropdown-button.vue.d.ts +7 -4
- package/dist/shared/components/user-dropdown-button/user-dropdown-button.vue.d.ts.map +1 -1
- package/dist/shared/index.d.ts +4 -1
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/modules/assets/components/assets-details/assets-details.vue.d.ts +3 -0
- package/dist/shared/modules/assets/components/assets-details/assets-details.vue.d.ts.map +1 -1
- package/dist/shared/modules/assets-manager/components/assets-manager/assets-manager.vue.d.ts +3 -0
- package/dist/shared/modules/assets-manager/components/assets-manager/assets-manager.vue.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/components/fields/InputCurrency.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/composables/useFilterBuilder/index.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/factories/base/useDetailsFactory.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/factories/types/index.d.ts +3 -1
- package/dist/shared/modules/dynamic/factories/types/index.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/index.d.ts +1 -3
- package/dist/shared/modules/dynamic/index.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/pages/dynamic-blade-form.vue.d.ts +12 -10
- 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 +5 -2
- package/dist/shared/modules/dynamic/pages/dynamic-blade-list.vue.d.ts.map +1 -1
- package/dist/shared/modules/dynamic/types/index.d.ts +20 -2
- package/dist/shared/modules/dynamic/types/index.d.ts.map +1 -1
- package/dist/shared/pages/InvitePage/components/invite/Invite.vue.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.map +1 -1
- package/dist/shared/utilities/vueUtils.d.ts.map +1 -1
- package/dist/tailwind.config.d.ts +56 -0
- package/dist/tailwind.config.d.ts.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/ui/components/atoms/vc-badge/index.d.ts +32 -67
- package/dist/ui/components/atoms/vc-badge/index.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-badge/vc-badge.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-button/vc-button.vue.d.ts +6 -1
- package/dist/ui/components/atoms/vc-button/vc-button.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-card/index.d.ts +66 -102
- package/dist/ui/components/atoms/vc-card/index.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-card/vc-card.stories.d.ts +7 -0
- package/dist/ui/components/atoms/vc-card/vc-card.stories.d.ts.map +1 -0
- package/dist/ui/components/atoms/vc-card/vc-card.vue.d.ts +7 -1
- package/dist/ui/components/atoms/vc-card/vc-card.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-checkbox/index.d.ts +91 -129
- 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 +7 -1
- package/dist/ui/components/atoms/vc-checkbox/vc-checkbox.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-col/vc-col.vue.d.ts +6 -1
- package/dist/ui/components/atoms/vc-col/vc-col.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-container/index.d.ts +36 -71
- package/dist/ui/components/atoms/vc-container/index.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-container/vc-container.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-hint/index.d.ts +8 -38
- package/dist/ui/components/atoms/vc-hint/index.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-hint/vc-hint.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-icon/vc-icon.vue.d.ts +3 -0
- package/dist/ui/components/atoms/vc-icon/vc-icon.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-image/vc-image.vue.d.ts +3 -0
- package/dist/ui/components/atoms/vc-image/vc-image.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-info-row/vc-info-row.vue.d.ts +3 -0
- package/dist/ui/components/atoms/vc-info-row/vc-info-row.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-label/index.d.ts +42 -74
- package/dist/ui/components/atoms/vc-label/index.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-label/vc-label.vue.d.ts +7 -1
- package/dist/ui/components/atoms/vc-label/vc-label.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-link/index.d.ts +32 -66
- package/dist/ui/components/atoms/vc-link/index.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-link/vc-link.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-loading/vc-loading.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-progress/index.d.ts +30 -63
- package/dist/ui/components/atoms/vc-progress/index.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-progress/vc-progress.vue.d.ts +3 -0
- package/dist/ui/components/atoms/vc-progress/vc-progress.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-row/vc-row.vue.d.ts +3 -1
- package/dist/ui/components/atoms/vc-row/vc-row.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-status/vc-status.vue.d.ts +6 -1
- package/dist/ui/components/atoms/vc-status/vc-status.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-status-icon/vc-status-icon.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-switch/vc-switch.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-video/vc-video.vue.d.ts +3 -0
- package/dist/ui/components/atoms/vc-video/vc-video.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-widget/vc-widget.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.vue.d.ts +3 -0
- package/dist/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-code-editor/index.d.ts +59 -98
- 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 +1 -0
- 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 +4 -1
- 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.map +1 -1
- package/dist/ui/components/molecules/vc-field/vc-field.vue.d.ts +3 -0
- 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 +67 -105
- package/dist/ui/components/molecules/vc-file-upload/index.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-file-upload/vc-file-upload.vue.d.ts +3 -0
- package/dist/ui/components/molecules/vc-file-upload/vc-file-upload.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-form/index.d.ts +8 -38
- package/dist/ui/components/molecules/vc-form/index.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-form/vc-form.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-input/vc-input.vue.d.ts +56 -1
- package/dist/ui/components/molecules/vc-input/vc-input.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-input-currency/index.d.ts +159 -214
- 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 +3 -0
- package/dist/ui/components/molecules/vc-input-currency/vc-input-currency.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-multivalue/vc-multivalue.vue.d.ts +27 -9
- package/dist/ui/components/molecules/vc-multivalue/vc-multivalue.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-notification/vc-notification.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-pagination/vc-pagination.vue.d.ts +3 -0
- package/dist/ui/components/molecules/vc-pagination/vc-pagination.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-rating/index.d.ts +59 -96
- package/dist/ui/components/molecules/vc-rating/index.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-rating/vc-rating.vue.d.ts +3 -0
- package/dist/ui/components/molecules/vc-rating/vc-rating.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-select/vc-select.vue.d.ts +257 -8
- 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 +55 -91
- package/dist/ui/components/molecules/vc-slider/index.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-slider/vc-slider.vue.d.ts +3 -0
- package/dist/ui/components/molecules/vc-slider/vc-slider.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-textarea/vc-textarea.vue.d.ts +6 -1
- package/dist/ui/components/molecules/vc-textarea/vc-textarea.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/index.d.ts +0 -2
- package/dist/ui/components/organisms/index.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue.d.ts +2 -4
- 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 +10 -7
- package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/_internal/vc-app-menu-link.vue.d.ts.map +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 +10 -18
- 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 +16 -16
- package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/vc-app-menu.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/index.d.ts +1 -292
- 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 +17 -56
- 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.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-button/vc-blade-toolbar-button.vue.d.ts +3 -0
- 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 +3 -0
- 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 +89 -131
- package/dist/ui/components/organisms/vc-blade/index.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/vc-blade.vue.d.ts +3 -0
- package/dist/ui/components/organisms/vc-blade/vc-blade.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-dynamic-property/vc-dynamic-property.vue.d.ts +21 -18
- 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 +4 -1
- package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-item/vc-gallery-item.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-preview/vc-gallery-preview.vue.d.ts +4 -1
- package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-preview/vc-gallery-preview.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-gallery/vc-gallery.vue.d.ts +3 -0
- 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 +32 -66
- package/dist/ui/components/organisms/vc-login-form/index.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-login-form/vc-login-form.vue.d.ts +3 -0
- package/dist/ui/components/organisms/vc-login-form/vc-login-form.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-popup/_internal/vc-popup-error/vc-popup-error.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-popup/_internal/vc-popup-warning/vc-popup-warning.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-cell/vc-table-cell.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-column-switcher/vc-table-column-switcher.vue.d.ts +3 -0
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-column-switcher/vc-table-column-switcher.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-counter/vc-table-counter.vue.d.ts +3 -0
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-counter/vc-table-counter.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-filter/vc-table-filter.vue.d.ts +3 -0
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-filter/vc-table-filter.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/vc-table.vue.d.ts +57 -6
- package/dist/ui/components/organisms/vc-table/vc-table.vue.d.ts.map +1 -1
- package/dist/ui/types/index.d.ts +5 -45
- package/dist/ui/types/index.d.ts.map +1 -1
- package/package.json +24 -28
- package/shared/components/app-switcher/components/vc-app-switcher/index.ts +1 -3
- package/shared/components/app-switcher/composables/useAppSwitcher/index.ts +3 -3
- package/shared/components/blade-navigation/components/vc-blade-navigation/index.ts +1 -3
- package/shared/components/blade-navigation/components/vc-blade-navigation/vc-blade-navigation.vue +46 -157
- package/shared/components/blade-navigation/components/vc-blade-view/vc-blade-view.ts +81 -0
- package/shared/components/blade-navigation/composables/useBladeNavigation/index.ts +323 -261
- package/shared/components/blade-navigation/injectionKeys.ts +4 -0
- package/shared/components/blade-navigation/plugin.ts +8 -10
- package/shared/components/blade-navigation/types/index.ts +53 -44
- package/shared/components/index.ts +2 -0
- package/shared/components/language-selector/language-selector.vue +12 -12
- package/{ui/components/organisms/vc-notification-dropdown → shared/components/notification-dropdown}/_internal/notification/notification.vue +6 -5
- package/shared/components/notification-dropdown/index.ts +10 -0
- package/{ui/components/organisms/vc-notification-dropdown/vc-notification-dropdown.vue → shared/components/notification-dropdown/notification-dropdown.vue} +21 -17
- package/shared/components/notification-template/index.ts +10 -0
- package/{ui/components/organisms/vc-notification-template/vc-notification-template.vue → shared/components/notification-template/notification-template.vue} +2 -2
- package/shared/components/popup-handler/composables/usePopup/index.ts +29 -9
- package/shared/components/user-dropdown-button/user-dropdown-button.vue +58 -17
- package/shared/index.ts +3 -2
- package/shared/locales/en.json +7 -0
- package/shared/modules/assets/components/assets-details/assets-details.vue +5 -0
- package/shared/modules/assets-manager/components/assets-manager/assets-manager.vue +8 -5
- package/shared/modules/dynamic/components/fields/GalleryField.ts +7 -7
- package/shared/modules/dynamic/components/fields/InputCurrency.ts +2 -1
- package/shared/modules/dynamic/composables/useFilterBuilder/index.ts +42 -36
- package/shared/modules/dynamic/factories/base/useDetailsFactory.ts +5 -3
- package/shared/modules/dynamic/factories/types/index.ts +6 -2
- package/shared/modules/dynamic/helpers/override.ts +38 -32
- package/shared/modules/dynamic/helpers/safeIn.ts +1 -1
- package/shared/modules/dynamic/index.ts +12 -12
- package/shared/modules/dynamic/pages/dynamic-blade-form.vue +96 -57
- package/shared/modules/dynamic/pages/dynamic-blade-list.vue +150 -114
- package/shared/modules/dynamic/types/index.ts +22 -2
- package/shared/pages/InvitePage/components/invite/Invite.vue +2 -2
- package/shared/pages/LoginPage/components/login/Login.vue +23 -16
- package/shared/pages/ResetPasswordPage/components/reset-password/ResetPassword.vue +3 -3
- package/shared/utilities/vueUtils.ts +7 -7
- package/ui/components/atoms/vc-button/vc-button.vue +1 -1
- package/ui/components/atoms/vc-card/vc-card.stories.ts +25 -0
- package/ui/components/atoms/vc-card/vc-card.vue +1 -1
- package/ui/components/atoms/vc-container/vc-container.vue +1 -1
- package/ui/components/atoms/vc-icon/vc-icon.vue +1 -1
- package/ui/components/molecules/vc-editor/vc-editor.vue +2 -7
- package/ui/components/molecules/vc-notification/vc-notification.vue +2 -2
- package/ui/components/molecules/vc-select/vc-select.vue +13 -13
- package/ui/components/organisms/index.ts +0 -2
- package/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue +25 -42
- package/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/_internal/vc-app-menu-link.vue +123 -25
- package/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/vc-app-menu-item.vue +11 -103
- package/ui/components/organisms/vc-app/_internal/vc-app-menu/vc-app-menu.vue +34 -52
- package/ui/components/organisms/vc-app/index.ts +1 -12
- package/ui/components/organisms/vc-app/vc-app.stories.ts +36 -36
- package/ui/components/organisms/vc-app/vc-app.vue +122 -61
- package/ui/components/organisms/vc-blade/vc-blade.vue +5 -13
- package/ui/components/organisms/vc-table/vc-table.vue +19 -11
- package/ui/locales/en.json +2 -4
- package/ui/types/index.ts +7 -51
- package/core/composables/useMenuComposer/index.ts +0 -25
- package/dist/core/composables/useMenuComposer/index.d.ts +0 -12
- package/dist/core/composables/useMenuComposer/index.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-notification-dropdown/_internal/notification/notification.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-notification-dropdown/index.d.ts +0 -38
- package/dist/ui/components/organisms/vc-notification-dropdown/index.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-notification-dropdown/vc-notification-dropdown.vue.d.ts +0 -21
- package/dist/ui/components/organisms/vc-notification-dropdown/vc-notification-dropdown.vue.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-notification-template/index.d.ts +0 -2
- package/dist/ui/components/organisms/vc-notification-template/index.d.ts.map +0 -1
- package/dist/ui/components/organisms/vc-notification-template/vc-notification-template.vue.d.ts.map +0 -1
- package/dist/vite.config.d.ts +0 -3
- package/dist/vite.config.d.ts.map +0 -1
- package/tailwind.config.js +0 -50
- package/ui/components/organisms/vc-notification-dropdown/index.ts +0 -3
- package/ui/components/organisms/vc-notification-template/index.ts +0 -1
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
style="color: #f14e4e"
|
|
94
94
|
>
|
|
95
95
|
<!-- TODO: stylizing-->
|
|
96
|
-
{{ t(`INVITATION.ERRORS.${
|
|
96
|
+
{{ t(`INVITATION.ERRORS.${error}`) }}
|
|
97
97
|
</VcHint>
|
|
98
98
|
</VcForm>
|
|
99
99
|
</VcLoginForm>
|
|
@@ -163,7 +163,7 @@ const acceptInvitation = async () => {
|
|
|
163
163
|
if (result.succeeded) {
|
|
164
164
|
router.push("/");
|
|
165
165
|
} else {
|
|
166
|
-
form.errors = [result.errorCode as string];
|
|
166
|
+
// form.errors = [result.errorCode as string];
|
|
167
167
|
}
|
|
168
168
|
} else {
|
|
169
169
|
form.errors = result.errors as string[];
|
|
@@ -174,15 +174,15 @@
|
|
|
174
174
|
</VcHint>
|
|
175
175
|
</VcLoginForm>
|
|
176
176
|
</template>
|
|
177
|
-
|
|
177
|
+
<!-- eslint-disable @typescript-eslint/no-explicit-any -->
|
|
178
178
|
<script lang="ts" setup>
|
|
179
|
-
import { ref, reactive, computed, onMounted } from "vue";
|
|
179
|
+
import { ref, reactive, computed, onMounted, Ref } from "vue";
|
|
180
180
|
import { useRouter } from "vue-router";
|
|
181
181
|
import { useIsFormValid, Field, useIsFormDirty, useForm } from "vee-validate";
|
|
182
182
|
import { useSettings, useUser } from "./../../../../../core/composables";
|
|
183
|
-
import { RequestPasswordResult
|
|
183
|
+
import { RequestPasswordResult } from "./../../../../../core/types";
|
|
184
184
|
import AzureAdIcon from "./../../../../../assets/img/AzureAd.svg";
|
|
185
|
-
import { ExternalSignInProviderInfo } from "./../../../../../core/api/platform";
|
|
185
|
+
import { ExternalSignInProviderInfo, SignInResult } from "./../../../../../core/api/platform";
|
|
186
186
|
import { useI18n } from "vue-i18n";
|
|
187
187
|
|
|
188
188
|
type ForgotPasswordFunc = (args: { loginOrEmail: string }) => Promise<void>;
|
|
@@ -199,17 +199,17 @@ const props = defineProps<Props>();
|
|
|
199
199
|
const router = useRouter();
|
|
200
200
|
|
|
201
201
|
useForm({ validateOnMount: false });
|
|
202
|
-
const {
|
|
202
|
+
const { uiSettings, loading: customizationLoading } = useSettings();
|
|
203
203
|
const { t } = useI18n({ useScope: "global" });
|
|
204
204
|
let useLogin;
|
|
205
|
-
const signInResult = ref
|
|
205
|
+
const signInResult = ref({ succeeded: true }) as Ref<SignInResult & { status?: number; error?: any }>;
|
|
206
206
|
const requestPassResult = ref<RequestPasswordResult>({ succeeded: true });
|
|
207
207
|
const forgotPasswordRequestSent = ref(false);
|
|
208
208
|
const { signIn, loading, externalSignIn, getExternalLoginProviders, isAuthenticated } = useUser();
|
|
209
209
|
const isLogin = ref(true);
|
|
210
210
|
const isValid = useIsFormValid();
|
|
211
211
|
const isDirty = useIsFormDirty();
|
|
212
|
-
|
|
212
|
+
|
|
213
213
|
const loadingForgotPassword = ref(false);
|
|
214
214
|
const loginProviders = ref<ExternalSignInProviderInfo[]>();
|
|
215
215
|
let forgotPassword: ForgotPasswordFunc;
|
|
@@ -224,13 +224,7 @@ if (props.composable && typeof props.composable === "function") {
|
|
|
224
224
|
}
|
|
225
225
|
|
|
226
226
|
onMounted(async () => {
|
|
227
|
-
|
|
228
|
-
customizationLoading.value = true;
|
|
229
|
-
loginProviders.value = await getExternalLoginProviders();
|
|
230
|
-
await getUiCustomizationSettings();
|
|
231
|
-
} finally {
|
|
232
|
-
customizationLoading.value = false;
|
|
233
|
-
}
|
|
227
|
+
loginProviders.value = await getExternalLoginProviders();
|
|
234
228
|
});
|
|
235
229
|
|
|
236
230
|
const externalAuthIcon = (authenticationType: string) => {
|
|
@@ -259,10 +253,23 @@ const forgotPasswordForm = reactive({
|
|
|
259
253
|
|
|
260
254
|
const login = async () => {
|
|
261
255
|
if (isValid.value) {
|
|
262
|
-
signInResult.value = await signIn(form.username, form.password)
|
|
256
|
+
signInResult.value = (await signIn(form.username, form.password)) as SignInResult & {
|
|
257
|
+
status?: number;
|
|
258
|
+
error?: any;
|
|
259
|
+
};
|
|
263
260
|
|
|
264
261
|
if (signInResult.value.succeeded) {
|
|
265
|
-
router.push("/");
|
|
262
|
+
await router.push("/");
|
|
263
|
+
} else {
|
|
264
|
+
if (signInResult.value.status) {
|
|
265
|
+
if (signInResult.value.status === 401) {
|
|
266
|
+
signInResult.value.error = "The login or password is incorrect.";
|
|
267
|
+
} else {
|
|
268
|
+
signInResult.value.error = "Authentication error (code: " + signInResult.value.status + ").";
|
|
269
|
+
}
|
|
270
|
+
} else {
|
|
271
|
+
signInResult.value.error = "Authentication error: " + signInResult.value.error;
|
|
272
|
+
}
|
|
266
273
|
}
|
|
267
274
|
}
|
|
268
275
|
};
|
|
@@ -152,11 +152,11 @@ const resetPassword = async () => {
|
|
|
152
152
|
if (valid) {
|
|
153
153
|
const result = await resetPasswordByToken(props.userId, form.password, props.token);
|
|
154
154
|
if (result.succeeded) {
|
|
155
|
-
const
|
|
156
|
-
if (
|
|
155
|
+
const loginResult = await signIn(props.userName, form.password);
|
|
156
|
+
if (loginResult.succeeded) {
|
|
157
157
|
router.push("/");
|
|
158
158
|
} else {
|
|
159
|
-
form.errors = [
|
|
159
|
+
form.errors = ("error" in loginResult && [loginResult.error as string]) || [];
|
|
160
160
|
}
|
|
161
161
|
} else {
|
|
162
162
|
form.errors = result.errors as string[];
|
|
@@ -12,24 +12,24 @@ type EmitsExtractor<T> = RemoveOnVnodePrefix<Pick<T, Extract<keyof T, `on${strin
|
|
|
12
12
|
export type ComponentProps<T> = T extends new () => { $props: infer P }
|
|
13
13
|
? NonNullable<P>
|
|
14
14
|
: T extends (props: infer P, ...args: any) => any
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
? P
|
|
16
|
+
: {};
|
|
17
17
|
|
|
18
18
|
export type ComponentSlots<T> = T extends (...args: any) => any
|
|
19
19
|
? ReturnType<T> extends { [x: string]: any; __ctx?: { [x: string]: any; slots: infer Slots } }
|
|
20
20
|
? NonNullable<Slots>
|
|
21
21
|
: {}
|
|
22
22
|
: T extends new () => { $slots: infer S }
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
? NonNullable<S>
|
|
24
|
+
: {};
|
|
25
25
|
|
|
26
26
|
export type ComponentEmit<T> = T extends (...args: any) => any
|
|
27
27
|
? ReturnType<T> extends { [x: string]: any; __ctx?: { [x: string]: any; props: infer Props } }
|
|
28
28
|
? EmitsExtractor<Props>
|
|
29
29
|
: {}
|
|
30
30
|
: T extends new () => { $props: infer Props }
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
? EmitsExtractor<Props>
|
|
32
|
+
: never;
|
|
33
33
|
|
|
34
34
|
export type ComponentPublicInstanceConstructor<
|
|
35
35
|
T extends ComponentPublicInstance<Props, RawBindings, D, C, M> = ComponentPublicInstance<any>,
|
|
@@ -37,7 +37,7 @@ export type ComponentPublicInstanceConstructor<
|
|
|
37
37
|
RawBindings = any,
|
|
38
38
|
D = any,
|
|
39
39
|
C extends ComputedOptions = ComputedOptions,
|
|
40
|
-
M extends MethodOptions = MethodOptions
|
|
40
|
+
M extends MethodOptions = MethodOptions,
|
|
41
41
|
> = {
|
|
42
42
|
__isFragment?: never;
|
|
43
43
|
__isTeleport?: never;
|
|
@@ -156,7 +156,7 @@ $variants: primary, warning, danger;
|
|
|
156
156
|
}
|
|
157
157
|
|
|
158
158
|
&.vc-button_raised {
|
|
159
|
-
@apply tw-shadow-[1px_4px_10px_rgba(197,206,214,
|
|
159
|
+
@apply tw-shadow-[1px_4px_10px_rgba(197,206,214,1)] tw-px-[var(--button-padding-hor)] tw-py-[var(--button-padding-vert)];
|
|
160
160
|
|
|
161
161
|
&.vc-button_text:not(:disabled) {
|
|
162
162
|
&:hover,
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from "@storybook/vue3";
|
|
2
|
+
import { VcCard } from ".";
|
|
3
|
+
import { VcInput, VcCol } from "./../../";
|
|
4
|
+
|
|
5
|
+
const meta: Meta<typeof VcCard> = {
|
|
6
|
+
title: "atoms/VcCard",
|
|
7
|
+
component: VcCard,
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export default meta;
|
|
11
|
+
type Story = StoryObj<typeof VcCard>;
|
|
12
|
+
|
|
13
|
+
export const Primary: Story = {
|
|
14
|
+
render: (args) => ({
|
|
15
|
+
components: { VcCard, VcInput, VcCol },
|
|
16
|
+
setup() {
|
|
17
|
+
return { args };
|
|
18
|
+
},
|
|
19
|
+
template: `<vc-card v-bind="args">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Inventore sed consequuntur error repudiandae numquam deserunt quisquam repellat libero asperiores earum nam nobis, culpa ratione quam perferendis esse, cupiditate neque quas!</vc-card>`,
|
|
20
|
+
}),
|
|
21
|
+
args: {
|
|
22
|
+
variant: "default",
|
|
23
|
+
header: "Simple Card",
|
|
24
|
+
},
|
|
25
|
+
};
|
|
@@ -99,7 +99,7 @@ $variants: success, danger;
|
|
|
99
99
|
.vc-card {
|
|
100
100
|
@apply tw-bg-[color:var(--card-background)] tw-border
|
|
101
101
|
tw-border-[color:#eef0f2] tw-border-solid tw-box-border
|
|
102
|
-
tw-shadow-[
|
|
102
|
+
tw-shadow-[var(--card-box-shadow)]
|
|
103
103
|
tw-rounded-[var(--card-border-radius)] tw-overflow-hidden
|
|
104
104
|
tw-flex-grow tw-flex tw-flex-col;
|
|
105
105
|
|
|
@@ -192,7 +192,7 @@ defineExpose({
|
|
|
192
192
|
&__inner {
|
|
193
193
|
@apply tw-relative tw-overflow-y-auto tw-overflow-x-hidden
|
|
194
194
|
tw-flex-1 tw-p-[var(--container-scroll-padding)]
|
|
195
|
-
|
|
195
|
+
tw-transition-transform [scrollbar-color:var(--container-scroll-color)] [scrollbar-width:thin];
|
|
196
196
|
|
|
197
197
|
&::-webkit-scrollbar {
|
|
198
198
|
@apply tw-w-[var(--container-scroll-width)] tw-bg-transparent;
|
|
@@ -74,7 +74,7 @@ export interface Emits {
|
|
|
74
74
|
(event: "update:modelValue", value: string | number | Date | null | undefined): void;
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
-
const { getAccessToken } = useUser();
|
|
77
|
+
// const { getAccessToken } = useUser();
|
|
78
78
|
|
|
79
79
|
const props = defineProps<Props>();
|
|
80
80
|
|
|
@@ -108,17 +108,12 @@ const modules = {
|
|
|
108
108
|
module: ImageUploader,
|
|
109
109
|
options: {
|
|
110
110
|
upload: async (file: File) => {
|
|
111
|
-
const authToken = await getAccessToken();
|
|
112
|
-
|
|
113
111
|
const formData = new FormData();
|
|
114
112
|
formData.append("image", file);
|
|
115
113
|
|
|
116
114
|
const result = await fetch(`/api/assets?folderUrl=/catalog/${props.assetsFolder}`, {
|
|
117
115
|
method: "POST",
|
|
118
116
|
body: formData,
|
|
119
|
-
headers: {
|
|
120
|
-
Authorization: `Bearer ${authToken}`,
|
|
121
|
-
},
|
|
122
117
|
});
|
|
123
118
|
|
|
124
119
|
const response = await result.json();
|
|
@@ -142,7 +137,7 @@ watch(
|
|
|
142
137
|
(value) => {
|
|
143
138
|
content.value = unref(value);
|
|
144
139
|
},
|
|
145
|
-
{ immediate: true }
|
|
140
|
+
{ immediate: true },
|
|
146
141
|
);
|
|
147
142
|
|
|
148
143
|
function onInput() {
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
size="l"
|
|
13
13
|
class="tw-mr-2"
|
|
14
14
|
></VcIcon>
|
|
15
|
-
<div class="tw-text-[color:var(--notification-content-color)]">
|
|
15
|
+
<div class="tw-text-[color:var(--notification-content-color)] tw-whitespace-pre-line">
|
|
16
16
|
{{ content }}
|
|
17
17
|
</div>
|
|
18
18
|
<VcIcon
|
|
@@ -63,7 +63,7 @@ watch(
|
|
|
63
63
|
timer.value.start();
|
|
64
64
|
}
|
|
65
65
|
},
|
|
66
|
-
{ immediate: true }
|
|
66
|
+
{ immediate: true },
|
|
67
67
|
);
|
|
68
68
|
|
|
69
69
|
onMounted(() => {
|
|
@@ -257,7 +257,7 @@
|
|
|
257
257
|
</template>
|
|
258
258
|
|
|
259
259
|
<!-- eslint-disable @typescript-eslint/no-explicit-any -->
|
|
260
|
-
<script lang="ts" setup generic="T, P extends {results
|
|
260
|
+
<script lang="ts" setup generic="T, P extends { results?: T[] | any; totalCount?: number }">
|
|
261
261
|
import { ref, computed, watch, nextTick, Ref, toRefs } from "vue";
|
|
262
262
|
import { vOnClickOutside } from "@vueuse/components";
|
|
263
263
|
import * as _ from "lodash-es";
|
|
@@ -476,7 +476,7 @@ const props = withDefaults(
|
|
|
476
476
|
emitValue: true,
|
|
477
477
|
mapOptions: true,
|
|
478
478
|
options: (): T[] => [],
|
|
479
|
-
}
|
|
479
|
+
},
|
|
480
480
|
);
|
|
481
481
|
|
|
482
482
|
const emit = defineEmits<{
|
|
@@ -487,7 +487,7 @@ const emit = defineEmits<{
|
|
|
487
487
|
"update:modelValue": [
|
|
488
488
|
inputValue: MaybeArray<
|
|
489
489
|
string | Option | (T & P["results"][number] & object)[keyof T | keyof P["results"][number]]
|
|
490
|
-
> | null
|
|
490
|
+
> | null,
|
|
491
491
|
];
|
|
492
492
|
/**
|
|
493
493
|
* Emitted when user wants to filter a value
|
|
@@ -533,7 +533,7 @@ useIntersectionObserver(
|
|
|
533
533
|
onLoadMore();
|
|
534
534
|
}
|
|
535
535
|
},
|
|
536
|
-
{ threshold: 1, root: root.value?.component }
|
|
536
|
+
{ threshold: 1, root: root.value?.component },
|
|
537
537
|
);
|
|
538
538
|
|
|
539
539
|
const popper = useFloating(dropdownToggleRef, dropdownRef, {
|
|
@@ -568,11 +568,11 @@ watch(
|
|
|
568
568
|
const data = await props.options(
|
|
569
569
|
undefined,
|
|
570
570
|
undefined,
|
|
571
|
-
Array.isArray(props.modelValue) ? props.modelValue : [props.modelValue]
|
|
571
|
+
Array.isArray(props.modelValue) ? props.modelValue : [props.modelValue],
|
|
572
572
|
);
|
|
573
573
|
|
|
574
574
|
if (typeof data === "object" && !Array.isArray(data) && "results" in data) {
|
|
575
|
-
defaultValue.value = data.results?.filter((x) => x[props.optionValue as keyof T] === props.modelValue);
|
|
575
|
+
defaultValue.value = data.results?.filter((x: any) => x[props.optionValue as keyof T] === props.modelValue);
|
|
576
576
|
} else if (Array.isArray(data)) {
|
|
577
577
|
defaultValue.value = data?.filter((x) => x[props.optionValue as keyof T] === props.modelValue);
|
|
578
578
|
}
|
|
@@ -582,7 +582,7 @@ watch(
|
|
|
582
582
|
}
|
|
583
583
|
}
|
|
584
584
|
},
|
|
585
|
-
{ immediate: true }
|
|
585
|
+
{ immediate: true },
|
|
586
586
|
);
|
|
587
587
|
|
|
588
588
|
watch(
|
|
@@ -601,7 +601,7 @@ watch(
|
|
|
601
601
|
optionsList.value = props.options;
|
|
602
602
|
}
|
|
603
603
|
},
|
|
604
|
-
{ immediate: true }
|
|
604
|
+
{ immediate: true },
|
|
605
605
|
);
|
|
606
606
|
|
|
607
607
|
watch(
|
|
@@ -609,7 +609,7 @@ watch(
|
|
|
609
609
|
(newVal) => {
|
|
610
610
|
optionsTemp.value = newVal;
|
|
611
611
|
},
|
|
612
|
-
{ immediate: true, deep: true }
|
|
612
|
+
{ immediate: true, deep: true },
|
|
613
613
|
);
|
|
614
614
|
|
|
615
615
|
watch(
|
|
@@ -618,7 +618,7 @@ watch(
|
|
|
618
618
|
if (newVal) {
|
|
619
619
|
popper.update();
|
|
620
620
|
}
|
|
621
|
-
}
|
|
621
|
+
},
|
|
622
622
|
);
|
|
623
623
|
|
|
624
624
|
async function onLoadMore() {
|
|
@@ -667,7 +667,7 @@ watch(
|
|
|
667
667
|
(val) => {
|
|
668
668
|
innerValueCache = val;
|
|
669
669
|
},
|
|
670
|
-
{ immediate: true }
|
|
670
|
+
{ immediate: true },
|
|
671
671
|
);
|
|
672
672
|
|
|
673
673
|
const selectedScope = computed(
|
|
@@ -685,7 +685,7 @@ const selectedScope = computed(
|
|
|
685
685
|
toggleOption,
|
|
686
686
|
removeAtIndex,
|
|
687
687
|
}));
|
|
688
|
-
}
|
|
688
|
+
},
|
|
689
689
|
);
|
|
690
690
|
|
|
691
691
|
const hasValue = computed(() => fieldValueIsFilled(innerValue.value));
|
|
@@ -825,8 +825,8 @@ function toggleOption(opt: Option) {
|
|
|
825
825
|
if (props.multiple !== true) {
|
|
826
826
|
if (innerValue.value.length === 0 || _.isEqual(getOptionValue.value(innerValue.value[0]), optValue) !== true) {
|
|
827
827
|
emit("update:modelValue", props.emitValue === true ? optValue : opt);
|
|
828
|
-
isOpened.value = false;
|
|
829
828
|
}
|
|
829
|
+
isOpened.value = false;
|
|
830
830
|
return;
|
|
831
831
|
}
|
|
832
832
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div
|
|
3
|
-
class="tw-relative tw-flex tw-items-center tw-content-between tw-h-[var(--app-bar-height)] tw-bg-[color:var(--app-bar-background-color)] tw-px-4"
|
|
3
|
+
class="tw-relative tw-flex tw-items-center tw-content-between tw-h-[var(--app-bar-height)] tw-bg-[color:var(--app-bar-background-color)] tw-px-4 tw-shadow-[0px_2px_5px_0px_#3654751A]"
|
|
4
4
|
:class="{ '!tw-pr-0 !tw-pl-[10px]': $isMobile.value }"
|
|
5
5
|
>
|
|
6
|
-
<slot name="
|
|
6
|
+
<slot name="app-switcher"></slot>
|
|
7
7
|
|
|
8
|
-
<template v-if="!$isMobile.value ||
|
|
8
|
+
<template v-if="!$isMobile.value || quantity === 0">
|
|
9
9
|
<!-- Logo -->
|
|
10
10
|
<img
|
|
11
11
|
class="tw-h-1/2 tw-cursor-pointer tw-mx-3"
|
|
@@ -26,15 +26,15 @@
|
|
|
26
26
|
<template v-if="$isMobile.value">
|
|
27
27
|
<!-- Show blades name when at least one blade is opened -->
|
|
28
28
|
<div
|
|
29
|
-
v-if="
|
|
29
|
+
v-if="quantity === 1"
|
|
30
30
|
class="tw-overflow-ellipsis tw-overflow-hidden tw-whitespace-nowrap tw-text-2xl tw-leading-header tw-ml-2"
|
|
31
31
|
>
|
|
32
|
-
{{
|
|
32
|
+
{{ viewTitle || "" }}
|
|
33
33
|
</div>
|
|
34
34
|
|
|
35
35
|
<!-- Show back link when more than one blade is opened -->
|
|
36
36
|
<VcLink
|
|
37
|
-
v-else-if="
|
|
37
|
+
v-else-if="quantity > 1"
|
|
38
38
|
class="tw-ml-3"
|
|
39
39
|
@click="$emit('backlink:click')"
|
|
40
40
|
>
|
|
@@ -51,39 +51,7 @@
|
|
|
51
51
|
|
|
52
52
|
<!-- Toolbar container -->
|
|
53
53
|
<div class="tw-flex tw-h-full tw-box-border">
|
|
54
|
-
<
|
|
55
|
-
v-for="(item, index) in buttons"
|
|
56
|
-
:key="index"
|
|
57
|
-
>
|
|
58
|
-
<template v-if="item.isVisible === undefined || item.isVisible">
|
|
59
|
-
<!-- Draw custom component is it is passed -->
|
|
60
|
-
<component
|
|
61
|
-
:is="item.component"
|
|
62
|
-
v-if="item.component"
|
|
63
|
-
v-bind="item.options"
|
|
64
|
-
:is-accent="item.isAccent"
|
|
65
|
-
></component>
|
|
66
|
-
|
|
67
|
-
<!-- Otherwise draw default toolbar button -->
|
|
68
|
-
<div
|
|
69
|
-
v-else
|
|
70
|
-
class="tw-relative tw-flex tw-items-center tw-justify-center tw-w-[var(--app-bar-button-width)] tw-border-l tw-border-solid tw-border-[color:var(--app-bar-button-border-color)] tw-cursor-pointer tw-text-[color: var(--app-bar-button-color)] tw-bg-[color:var(--app-bar-button-background-color)] tw-transition-[color] tw-duration-200 hover:tw-text-[color:var(--app-bar-button-color-hover)] hover:tw-bg-[color:var(--app-bar-button-background-color-hover)]"
|
|
71
|
-
:title="item.title as string"
|
|
72
|
-
@click="$emit('button:click', item)"
|
|
73
|
-
>
|
|
74
|
-
<VcIcon
|
|
75
|
-
:icon="typeof item.icon === 'function' ? item.icon() : item.icon"
|
|
76
|
-
size="xl"
|
|
77
|
-
></VcIcon>
|
|
78
|
-
<div
|
|
79
|
-
:class="{
|
|
80
|
-
'tw-block tw-absolute tw-right-3 tw-top-[18px] tw-w-[7px] tw-h-[7px] tw-bg-[#ff4a4a] tw-rounded-full tw-z-[1]':
|
|
81
|
-
item.isAccent,
|
|
82
|
-
}"
|
|
83
|
-
></div>
|
|
84
|
-
</div>
|
|
85
|
-
</template>
|
|
86
|
-
</template>
|
|
54
|
+
<slot name="toolbar"></slot>
|
|
87
55
|
</div>
|
|
88
56
|
|
|
89
57
|
<!-- Show menu toggler on mobile devices -->
|
|
@@ -101,12 +69,11 @@
|
|
|
101
69
|
import { useI18n } from "vue-i18n";
|
|
102
70
|
import { VcIcon, VcLink } from "./../../../../";
|
|
103
71
|
import { IBladeToolbar } from "./../../../../../../core/types";
|
|
104
|
-
import {
|
|
72
|
+
import { useBladeNavigation } from "./../../../../../../shared";
|
|
73
|
+
import { ref, watch, nextTick } from "vue";
|
|
105
74
|
|
|
106
75
|
export interface Props {
|
|
107
76
|
logo: string;
|
|
108
|
-
blades: IBladeRef[];
|
|
109
|
-
buttons: IBladeToolbar[];
|
|
110
77
|
title?: string;
|
|
111
78
|
}
|
|
112
79
|
|
|
@@ -122,6 +89,22 @@ defineProps<Props>();
|
|
|
122
89
|
defineEmits<Emits>();
|
|
123
90
|
|
|
124
91
|
const { t } = useI18n({ useScope: "global" });
|
|
92
|
+
|
|
93
|
+
const { blades } = useBladeNavigation();
|
|
94
|
+
|
|
95
|
+
const viewTitle = ref();
|
|
96
|
+
const quantity = ref();
|
|
97
|
+
|
|
98
|
+
watch(
|
|
99
|
+
() => blades,
|
|
100
|
+
async (newVal) => {
|
|
101
|
+
await nextTick(() => {
|
|
102
|
+
viewTitle.value = Object.values(newVal.value?.instances || {})[0]?.title;
|
|
103
|
+
quantity.value = Object.values(newVal.value?.components || {}).length;
|
|
104
|
+
});
|
|
105
|
+
},
|
|
106
|
+
{ deep: true, immediate: true, flush: "post" },
|
|
107
|
+
);
|
|
125
108
|
</script>
|
|
126
109
|
|
|
127
110
|
<style lang="scss">
|