@vc-shell/framework 1.0.128 → 1.0.130

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.
Files changed (331) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/core/api/platform.ts +514 -92
  3. package/core/composables/index.ts +2 -1
  4. package/core/composables/useApiClient/index.ts +1 -7
  5. package/core/composables/useAssets/index.ts +0 -6
  6. package/core/composables/useBeforeUnload/index.ts +20 -0
  7. package/core/composables/useMenuService/index.ts +96 -0
  8. package/core/composables/useNotifications/index.ts +29 -40
  9. package/core/composables/useSettings/index.ts +23 -29
  10. package/core/composables/useUser/index.ts +61 -132
  11. package/core/directives/loading/styles.css +5 -5
  12. package/core/interceptors/index.ts +75 -0
  13. package/core/plugins/i18n/index.ts +1 -0
  14. package/core/plugins/modularity/index.ts +63 -20
  15. package/core/plugins/moment/moment.ts +2 -2
  16. package/core/plugins/signalR/index.ts +23 -3
  17. package/core/types/index.ts +18 -35
  18. package/core/utilities/kebabToCamel.ts +1 -1
  19. package/dist/core/api/platform.d.ts +125 -87
  20. package/dist/core/api/platform.d.ts.map +1 -1
  21. package/dist/core/composables/index.d.ts +2 -1
  22. package/dist/core/composables/index.d.ts.map +1 -1
  23. package/dist/core/composables/useApiClient/index.d.ts.map +1 -1
  24. package/dist/core/composables/useAssets/index.d.ts.map +1 -1
  25. package/dist/core/composables/useBeforeUnload/index.d.ts +5 -0
  26. package/dist/core/composables/useBeforeUnload/index.d.ts.map +1 -0
  27. package/dist/core/composables/useMenuService/index.d.ts +16 -0
  28. package/dist/core/composables/useMenuService/index.d.ts.map +1 -0
  29. package/dist/core/composables/useNotifications/index.d.ts.map +1 -1
  30. package/dist/core/composables/useSettings/index.d.ts +2 -2
  31. package/dist/core/composables/useSettings/index.d.ts.map +1 -1
  32. package/dist/core/composables/useUser/index.d.ts +8 -6
  33. package/dist/core/composables/useUser/index.d.ts.map +1 -1
  34. package/dist/core/interceptors/index.d.ts +3 -0
  35. package/dist/core/interceptors/index.d.ts.map +1 -0
  36. package/dist/core/plugins/i18n/index.d.ts.map +1 -1
  37. package/dist/core/plugins/modularity/index.d.ts +1 -1
  38. package/dist/core/plugins/modularity/index.d.ts.map +1 -1
  39. package/dist/core/plugins/moment/moment.d.ts.map +1 -1
  40. package/dist/core/plugins/signalR/index.d.ts.map +1 -1
  41. package/dist/core/types/index.d.ts +16 -29
  42. package/dist/core/types/index.d.ts.map +1 -1
  43. package/dist/{framework.mjs → framework.js} +32147 -32235
  44. package/dist/index.css +1 -1
  45. package/dist/index.d.ts +5 -2
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/shared/components/app-switcher/components/vc-app-switcher/index.d.ts +1 -19
  48. package/dist/shared/components/app-switcher/components/vc-app-switcher/index.d.ts.map +1 -1
  49. package/dist/shared/components/app-switcher/components/vc-app-switcher/vc-app-switcher.vue.d.ts +3 -0
  50. package/dist/shared/components/app-switcher/components/vc-app-switcher/vc-app-switcher.vue.d.ts.map +1 -1
  51. package/dist/shared/components/blade-navigation/components/vc-blade-navigation/index.d.ts +1 -70
  52. package/dist/shared/components/blade-navigation/components/vc-blade-navigation/index.d.ts.map +1 -1
  53. package/dist/shared/components/blade-navigation/components/vc-blade-navigation/vc-blade-navigation.vue.d.ts +1 -82
  54. package/dist/shared/components/blade-navigation/components/vc-blade-navigation/vc-blade-navigation.vue.d.ts.map +1 -1
  55. package/dist/shared/components/blade-navigation/components/vc-blade-view/vc-blade-view.d.ts +28 -0
  56. package/dist/shared/components/blade-navigation/components/vc-blade-view/vc-blade-view.d.ts.map +1 -0
  57. package/dist/shared/components/blade-navigation/composables/useBladeNavigation/index.d.ts +11 -27
  58. package/dist/shared/components/blade-navigation/composables/useBladeNavigation/index.d.ts.map +1 -1
  59. package/dist/shared/components/blade-navigation/injectionKeys.d.ts +4 -0
  60. package/dist/shared/components/blade-navigation/injectionKeys.d.ts.map +1 -0
  61. package/dist/shared/components/blade-navigation/plugin.d.ts +4 -1
  62. package/dist/shared/components/blade-navigation/plugin.d.ts.map +1 -1
  63. package/dist/shared/components/blade-navigation/types/index.d.ts +48 -35
  64. package/dist/shared/components/blade-navigation/types/index.d.ts.map +1 -1
  65. package/dist/shared/components/error-interceptor/index.d.ts +33 -67
  66. package/dist/shared/components/error-interceptor/index.d.ts.map +1 -1
  67. package/dist/shared/components/index.d.ts +2 -0
  68. package/dist/shared/components/index.d.ts.map +1 -1
  69. package/dist/shared/components/language-selector/index.d.ts +1 -49
  70. package/dist/shared/components/language-selector/index.d.ts.map +1 -1
  71. package/dist/shared/components/language-selector/language-selector.vue.d.ts +1 -40
  72. package/dist/shared/components/language-selector/language-selector.vue.d.ts.map +1 -1
  73. package/dist/{ui/components/organisms/vc-notification-dropdown → shared/components/notification-dropdown}/_internal/notification/notification.vue.d.ts +2 -2
  74. package/dist/shared/components/notification-dropdown/_internal/notification/notification.vue.d.ts.map +1 -0
  75. package/dist/shared/components/notification-dropdown/index.d.ts +7 -0
  76. package/dist/shared/components/notification-dropdown/index.d.ts.map +1 -0
  77. package/dist/shared/components/notification-dropdown/notification-dropdown.vue.d.ts +3 -0
  78. package/dist/shared/components/notification-dropdown/notification-dropdown.vue.d.ts.map +1 -0
  79. package/dist/shared/components/notification-template/index.d.ts +91 -0
  80. package/dist/shared/components/notification-template/index.d.ts.map +1 -0
  81. 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
  82. package/dist/shared/components/notification-template/notification-template.vue.d.ts.map +1 -0
  83. package/dist/shared/components/notifications/components/notification-container/index.d.ts +1 -1
  84. package/dist/shared/components/notifications/components/notification-container/index.d.ts.map +1 -1
  85. package/dist/shared/components/popup-handler/composables/usePopup/index.d.ts.map +1 -1
  86. package/dist/shared/components/user-dropdown-button/index.d.ts +10 -16
  87. package/dist/shared/components/user-dropdown-button/index.d.ts.map +1 -1
  88. package/dist/shared/components/user-dropdown-button/user-dropdown-button.vue.d.ts +7 -4
  89. package/dist/shared/components/user-dropdown-button/user-dropdown-button.vue.d.ts.map +1 -1
  90. package/dist/shared/index.d.ts +4 -1
  91. package/dist/shared/index.d.ts.map +1 -1
  92. package/dist/shared/modules/assets/components/assets-details/assets-details.vue.d.ts +3 -0
  93. package/dist/shared/modules/assets/components/assets-details/assets-details.vue.d.ts.map +1 -1
  94. package/dist/shared/modules/assets-manager/components/assets-manager/assets-manager.vue.d.ts +3 -0
  95. package/dist/shared/modules/assets-manager/components/assets-manager/assets-manager.vue.d.ts.map +1 -1
  96. package/dist/shared/modules/dynamic/components/fields/InputCurrency.d.ts.map +1 -1
  97. package/dist/shared/modules/dynamic/composables/useFilterBuilder/index.d.ts.map +1 -1
  98. package/dist/shared/modules/dynamic/factories/base/useDetailsFactory.d.ts.map +1 -1
  99. package/dist/shared/modules/dynamic/factories/types/index.d.ts +3 -1
  100. package/dist/shared/modules/dynamic/factories/types/index.d.ts.map +1 -1
  101. package/dist/shared/modules/dynamic/index.d.ts +1 -3
  102. package/dist/shared/modules/dynamic/index.d.ts.map +1 -1
  103. package/dist/shared/modules/dynamic/pages/dynamic-blade-form.vue.d.ts +12 -10
  104. package/dist/shared/modules/dynamic/pages/dynamic-blade-form.vue.d.ts.map +1 -1
  105. package/dist/shared/modules/dynamic/pages/dynamic-blade-list.vue.d.ts +5 -2
  106. package/dist/shared/modules/dynamic/pages/dynamic-blade-list.vue.d.ts.map +1 -1
  107. package/dist/shared/modules/dynamic/types/index.d.ts +16 -1
  108. package/dist/shared/modules/dynamic/types/index.d.ts.map +1 -1
  109. package/dist/shared/pages/InvitePage/components/invite/Invite.vue.d.ts.map +1 -1
  110. package/dist/shared/pages/LoginPage/components/login/Login.vue.d.ts.map +1 -1
  111. package/dist/shared/pages/ResetPasswordPage/components/reset-password/ResetPassword.vue.d.ts.map +1 -1
  112. package/dist/shared/utilities/vueUtils.d.ts.map +1 -1
  113. package/dist/tailwind.config.d.ts +56 -0
  114. package/dist/tailwind.config.d.ts.map +1 -0
  115. package/dist/tsconfig.tsbuildinfo +1 -1
  116. package/dist/ui/components/atoms/vc-badge/index.d.ts +32 -67
  117. package/dist/ui/components/atoms/vc-badge/index.d.ts.map +1 -1
  118. package/dist/ui/components/atoms/vc-badge/vc-badge.vue.d.ts.map +1 -1
  119. package/dist/ui/components/atoms/vc-button/vc-button.vue.d.ts +6 -1
  120. package/dist/ui/components/atoms/vc-button/vc-button.vue.d.ts.map +1 -1
  121. package/dist/ui/components/atoms/vc-card/index.d.ts +66 -102
  122. package/dist/ui/components/atoms/vc-card/index.d.ts.map +1 -1
  123. package/dist/ui/components/atoms/vc-card/vc-card.stories.d.ts +7 -0
  124. package/dist/ui/components/atoms/vc-card/vc-card.stories.d.ts.map +1 -0
  125. package/dist/ui/components/atoms/vc-card/vc-card.vue.d.ts +7 -1
  126. package/dist/ui/components/atoms/vc-card/vc-card.vue.d.ts.map +1 -1
  127. package/dist/ui/components/atoms/vc-checkbox/index.d.ts +91 -129
  128. package/dist/ui/components/atoms/vc-checkbox/index.d.ts.map +1 -1
  129. package/dist/ui/components/atoms/vc-checkbox/vc-checkbox.vue.d.ts +7 -1
  130. package/dist/ui/components/atoms/vc-checkbox/vc-checkbox.vue.d.ts.map +1 -1
  131. package/dist/ui/components/atoms/vc-col/vc-col.vue.d.ts +6 -1
  132. package/dist/ui/components/atoms/vc-col/vc-col.vue.d.ts.map +1 -1
  133. package/dist/ui/components/atoms/vc-container/index.d.ts +36 -71
  134. package/dist/ui/components/atoms/vc-container/index.d.ts.map +1 -1
  135. package/dist/ui/components/atoms/vc-container/vc-container.vue.d.ts.map +1 -1
  136. package/dist/ui/components/atoms/vc-hint/index.d.ts +8 -38
  137. package/dist/ui/components/atoms/vc-hint/index.d.ts.map +1 -1
  138. package/dist/ui/components/atoms/vc-hint/vc-hint.vue.d.ts.map +1 -1
  139. package/dist/ui/components/atoms/vc-icon/vc-icon.vue.d.ts +3 -0
  140. package/dist/ui/components/atoms/vc-icon/vc-icon.vue.d.ts.map +1 -1
  141. package/dist/ui/components/atoms/vc-image/vc-image.vue.d.ts +3 -0
  142. package/dist/ui/components/atoms/vc-image/vc-image.vue.d.ts.map +1 -1
  143. package/dist/ui/components/atoms/vc-info-row/vc-info-row.vue.d.ts +3 -0
  144. package/dist/ui/components/atoms/vc-info-row/vc-info-row.vue.d.ts.map +1 -1
  145. package/dist/ui/components/atoms/vc-label/index.d.ts +42 -74
  146. package/dist/ui/components/atoms/vc-label/index.d.ts.map +1 -1
  147. package/dist/ui/components/atoms/vc-label/vc-label.vue.d.ts +7 -1
  148. package/dist/ui/components/atoms/vc-label/vc-label.vue.d.ts.map +1 -1
  149. package/dist/ui/components/atoms/vc-link/index.d.ts +32 -66
  150. package/dist/ui/components/atoms/vc-link/index.d.ts.map +1 -1
  151. package/dist/ui/components/atoms/vc-link/vc-link.vue.d.ts.map +1 -1
  152. package/dist/ui/components/atoms/vc-loading/vc-loading.vue.d.ts.map +1 -1
  153. package/dist/ui/components/atoms/vc-progress/index.d.ts +30 -63
  154. package/dist/ui/components/atoms/vc-progress/index.d.ts.map +1 -1
  155. package/dist/ui/components/atoms/vc-progress/vc-progress.vue.d.ts +3 -0
  156. package/dist/ui/components/atoms/vc-progress/vc-progress.vue.d.ts.map +1 -1
  157. package/dist/ui/components/atoms/vc-row/vc-row.vue.d.ts +3 -1
  158. package/dist/ui/components/atoms/vc-row/vc-row.vue.d.ts.map +1 -1
  159. package/dist/ui/components/atoms/vc-status/vc-status.vue.d.ts +6 -1
  160. package/dist/ui/components/atoms/vc-status/vc-status.vue.d.ts.map +1 -1
  161. package/dist/ui/components/atoms/vc-status-icon/vc-status-icon.vue.d.ts.map +1 -1
  162. package/dist/ui/components/atoms/vc-switch/vc-switch.vue.d.ts.map +1 -1
  163. package/dist/ui/components/atoms/vc-video/vc-video.vue.d.ts +3 -0
  164. package/dist/ui/components/atoms/vc-video/vc-video.vue.d.ts.map +1 -1
  165. package/dist/ui/components/atoms/vc-widget/vc-widget.vue.d.ts.map +1 -1
  166. package/dist/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.vue.d.ts +3 -0
  167. package/dist/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.vue.d.ts.map +1 -1
  168. package/dist/ui/components/molecules/vc-code-editor/index.d.ts +59 -98
  169. package/dist/ui/components/molecules/vc-code-editor/index.d.ts.map +1 -1
  170. package/dist/ui/components/molecules/vc-code-editor/vc-code-editor.vue.d.ts +1 -0
  171. package/dist/ui/components/molecules/vc-code-editor/vc-code-editor.vue.d.ts.map +1 -1
  172. package/dist/ui/components/molecules/vc-editor/vc-editor.vue.d.ts +4 -1
  173. package/dist/ui/components/molecules/vc-editor/vc-editor.vue.d.ts.map +1 -1
  174. package/dist/ui/components/molecules/vc-field/_internal/vc-field-type/vc-field-type.vue.d.ts.map +1 -1
  175. package/dist/ui/components/molecules/vc-field/vc-field.vue.d.ts +3 -0
  176. package/dist/ui/components/molecules/vc-field/vc-field.vue.d.ts.map +1 -1
  177. package/dist/ui/components/molecules/vc-file-upload/index.d.ts +67 -105
  178. package/dist/ui/components/molecules/vc-file-upload/index.d.ts.map +1 -1
  179. package/dist/ui/components/molecules/vc-file-upload/vc-file-upload.vue.d.ts +3 -0
  180. package/dist/ui/components/molecules/vc-file-upload/vc-file-upload.vue.d.ts.map +1 -1
  181. package/dist/ui/components/molecules/vc-form/index.d.ts +8 -38
  182. package/dist/ui/components/molecules/vc-form/index.d.ts.map +1 -1
  183. package/dist/ui/components/molecules/vc-form/vc-form.vue.d.ts.map +1 -1
  184. package/dist/ui/components/molecules/vc-input/vc-input.vue.d.ts +56 -1
  185. package/dist/ui/components/molecules/vc-input/vc-input.vue.d.ts.map +1 -1
  186. package/dist/ui/components/molecules/vc-input-currency/index.d.ts +159 -214
  187. package/dist/ui/components/molecules/vc-input-currency/index.d.ts.map +1 -1
  188. package/dist/ui/components/molecules/vc-input-currency/vc-input-currency.vue.d.ts +3 -0
  189. package/dist/ui/components/molecules/vc-input-currency/vc-input-currency.vue.d.ts.map +1 -1
  190. package/dist/ui/components/molecules/vc-multivalue/vc-multivalue.vue.d.ts +27 -9
  191. package/dist/ui/components/molecules/vc-multivalue/vc-multivalue.vue.d.ts.map +1 -1
  192. package/dist/ui/components/molecules/vc-notification/vc-notification.vue.d.ts.map +1 -1
  193. package/dist/ui/components/molecules/vc-pagination/vc-pagination.vue.d.ts +3 -0
  194. package/dist/ui/components/molecules/vc-pagination/vc-pagination.vue.d.ts.map +1 -1
  195. package/dist/ui/components/molecules/vc-rating/index.d.ts +59 -96
  196. package/dist/ui/components/molecules/vc-rating/index.d.ts.map +1 -1
  197. package/dist/ui/components/molecules/vc-rating/vc-rating.vue.d.ts +3 -0
  198. package/dist/ui/components/molecules/vc-rating/vc-rating.vue.d.ts.map +1 -1
  199. package/dist/ui/components/molecules/vc-select/vc-select.vue.d.ts +257 -8
  200. package/dist/ui/components/molecules/vc-select/vc-select.vue.d.ts.map +1 -1
  201. package/dist/ui/components/molecules/vc-slider/index.d.ts +55 -91
  202. package/dist/ui/components/molecules/vc-slider/index.d.ts.map +1 -1
  203. package/dist/ui/components/molecules/vc-slider/vc-slider.vue.d.ts +3 -0
  204. package/dist/ui/components/molecules/vc-slider/vc-slider.vue.d.ts.map +1 -1
  205. package/dist/ui/components/molecules/vc-textarea/vc-textarea.vue.d.ts +6 -1
  206. package/dist/ui/components/molecules/vc-textarea/vc-textarea.vue.d.ts.map +1 -1
  207. package/dist/ui/components/organisms/index.d.ts +0 -2
  208. package/dist/ui/components/organisms/index.d.ts.map +1 -1
  209. package/dist/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue.d.ts +2 -4
  210. package/dist/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue.d.ts.map +1 -1
  211. 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
  212. 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
  213. 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
  214. 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
  215. package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/vc-app-menu.vue.d.ts +16 -16
  216. package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/vc-app-menu.vue.d.ts.map +1 -1
  217. package/dist/ui/components/organisms/vc-app/index.d.ts +1 -292
  218. package/dist/ui/components/organisms/vc-app/index.d.ts.map +1 -1
  219. package/dist/ui/components/organisms/vc-app/vc-app.vue.d.ts +17 -56
  220. package/dist/ui/components/organisms/vc-app/vc-app.vue.d.ts.map +1 -1
  221. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-header/vc-blade-header.vue.d.ts.map +1 -1
  222. 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
  223. 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
  224. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/vc-blade-toolbar.vue.d.ts +3 -0
  225. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/vc-blade-toolbar.vue.d.ts.map +1 -1
  226. package/dist/ui/components/organisms/vc-blade/index.d.ts +89 -131
  227. package/dist/ui/components/organisms/vc-blade/index.d.ts.map +1 -1
  228. package/dist/ui/components/organisms/vc-blade/vc-blade.vue.d.ts +3 -0
  229. package/dist/ui/components/organisms/vc-blade/vc-blade.vue.d.ts.map +1 -1
  230. package/dist/ui/components/organisms/vc-dynamic-property/vc-dynamic-property.vue.d.ts +21 -18
  231. package/dist/ui/components/organisms/vc-dynamic-property/vc-dynamic-property.vue.d.ts.map +1 -1
  232. package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-item/vc-gallery-item.vue.d.ts +4 -1
  233. package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-item/vc-gallery-item.vue.d.ts.map +1 -1
  234. package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-preview/vc-gallery-preview.vue.d.ts +4 -1
  235. package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-preview/vc-gallery-preview.vue.d.ts.map +1 -1
  236. package/dist/ui/components/organisms/vc-gallery/vc-gallery.vue.d.ts +3 -0
  237. package/dist/ui/components/organisms/vc-gallery/vc-gallery.vue.d.ts.map +1 -1
  238. package/dist/ui/components/organisms/vc-login-form/index.d.ts +32 -66
  239. package/dist/ui/components/organisms/vc-login-form/index.d.ts.map +1 -1
  240. package/dist/ui/components/organisms/vc-login-form/vc-login-form.vue.d.ts +3 -0
  241. package/dist/ui/components/organisms/vc-login-form/vc-login-form.vue.d.ts.map +1 -1
  242. package/dist/ui/components/organisms/vc-popup/_internal/vc-popup-error/vc-popup-error.vue.d.ts.map +1 -1
  243. package/dist/ui/components/organisms/vc-popup/_internal/vc-popup-warning/vc-popup-warning.vue.d.ts.map +1 -1
  244. package/dist/ui/components/organisms/vc-table/_internal/vc-table-cell/vc-table-cell.vue.d.ts.map +1 -1
  245. package/dist/ui/components/organisms/vc-table/_internal/vc-table-column-switcher/vc-table-column-switcher.vue.d.ts +3 -0
  246. package/dist/ui/components/organisms/vc-table/_internal/vc-table-column-switcher/vc-table-column-switcher.vue.d.ts.map +1 -1
  247. package/dist/ui/components/organisms/vc-table/_internal/vc-table-counter/vc-table-counter.vue.d.ts +3 -0
  248. package/dist/ui/components/organisms/vc-table/_internal/vc-table-counter/vc-table-counter.vue.d.ts.map +1 -1
  249. package/dist/ui/components/organisms/vc-table/_internal/vc-table-filter/vc-table-filter.vue.d.ts +3 -0
  250. package/dist/ui/components/organisms/vc-table/_internal/vc-table-filter/vc-table-filter.vue.d.ts.map +1 -1
  251. package/dist/ui/components/organisms/vc-table/vc-table.vue.d.ts +57 -6
  252. package/dist/ui/components/organisms/vc-table/vc-table.vue.d.ts.map +1 -1
  253. package/dist/ui/types/index.d.ts +5 -45
  254. package/dist/ui/types/index.d.ts.map +1 -1
  255. package/package.json +26 -30
  256. package/shared/components/app-switcher/components/vc-app-switcher/index.ts +1 -3
  257. package/shared/components/app-switcher/composables/useAppSwitcher/index.ts +2 -2
  258. package/shared/components/blade-navigation/components/vc-blade-navigation/index.ts +1 -3
  259. package/shared/components/blade-navigation/components/vc-blade-navigation/vc-blade-navigation.vue +46 -157
  260. package/shared/components/blade-navigation/components/vc-blade-view/vc-blade-view.ts +81 -0
  261. package/shared/components/blade-navigation/composables/useBladeNavigation/index.ts +323 -261
  262. package/shared/components/blade-navigation/injectionKeys.ts +4 -0
  263. package/shared/components/blade-navigation/plugin.ts +8 -10
  264. package/shared/components/blade-navigation/types/index.ts +53 -44
  265. package/shared/components/index.ts +2 -0
  266. package/shared/components/language-selector/language-selector.vue +12 -12
  267. package/{ui/components/organisms/vc-notification-dropdown → shared/components/notification-dropdown}/_internal/notification/notification.vue +6 -5
  268. package/shared/components/notification-dropdown/index.ts +10 -0
  269. package/{ui/components/organisms/vc-notification-dropdown/vc-notification-dropdown.vue → shared/components/notification-dropdown/notification-dropdown.vue} +21 -17
  270. package/shared/components/notification-template/index.ts +10 -0
  271. package/{ui/components/organisms/vc-notification-template/vc-notification-template.vue → shared/components/notification-template/notification-template.vue} +2 -2
  272. package/shared/components/popup-handler/composables/usePopup/index.ts +29 -9
  273. package/shared/components/user-dropdown-button/user-dropdown-button.vue +58 -17
  274. package/shared/index.ts +3 -2
  275. package/shared/locales/en.json +7 -0
  276. package/shared/modules/assets/components/assets-details/assets-details.vue +5 -0
  277. package/shared/modules/assets-manager/components/assets-manager/assets-manager.vue +8 -5
  278. package/shared/modules/dynamic/components/fields/GalleryField.ts +7 -7
  279. package/shared/modules/dynamic/components/fields/InputCurrency.ts +2 -1
  280. package/shared/modules/dynamic/composables/useFilterBuilder/index.ts +42 -36
  281. package/shared/modules/dynamic/factories/base/useDetailsFactory.ts +5 -3
  282. package/shared/modules/dynamic/factories/types/index.ts +6 -2
  283. package/shared/modules/dynamic/helpers/override.ts +38 -32
  284. package/shared/modules/dynamic/helpers/safeIn.ts +1 -1
  285. package/shared/modules/dynamic/index.ts +12 -12
  286. package/shared/modules/dynamic/pages/dynamic-blade-form.vue +96 -57
  287. package/shared/modules/dynamic/pages/dynamic-blade-list.vue +133 -118
  288. package/shared/modules/dynamic/types/index.ts +16 -1
  289. package/shared/pages/InvitePage/components/invite/Invite.vue +2 -2
  290. package/shared/pages/LoginPage/components/login/Login.vue +23 -16
  291. package/shared/pages/ResetPasswordPage/components/reset-password/ResetPassword.vue +3 -3
  292. package/shared/utilities/vueUtils.ts +7 -7
  293. package/tailwind.config.ts +50 -0
  294. package/ui/components/atoms/vc-button/vc-button.vue +1 -1
  295. package/ui/components/atoms/vc-card/vc-card.stories.ts +25 -0
  296. package/ui/components/atoms/vc-card/vc-card.vue +1 -1
  297. package/ui/components/atoms/vc-container/vc-container.vue +1 -1
  298. package/ui/components/atoms/vc-icon/vc-icon.vue +1 -1
  299. package/ui/components/molecules/vc-editor/vc-editor.vue +2 -7
  300. package/ui/components/molecules/vc-notification/vc-notification.vue +2 -2
  301. package/ui/components/molecules/vc-select/vc-select.vue +13 -13
  302. package/ui/components/organisms/index.ts +0 -2
  303. package/ui/components/organisms/vc-app/_internal/vc-app-bar/vc-app-bar.vue +25 -42
  304. package/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/_internal/vc-app-menu-link.vue +123 -25
  305. package/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/vc-app-menu-item.vue +11 -103
  306. package/ui/components/organisms/vc-app/_internal/vc-app-menu/vc-app-menu.vue +34 -52
  307. package/ui/components/organisms/vc-app/index.ts +1 -12
  308. package/ui/components/organisms/vc-app/vc-app.stories.ts +36 -36
  309. package/ui/components/organisms/vc-app/vc-app.vue +122 -61
  310. package/ui/components/organisms/vc-blade/vc-blade.vue +5 -13
  311. package/ui/components/organisms/vc-table/vc-table.vue +9 -9
  312. package/ui/locales/en.json +2 -4
  313. package/ui/types/index.ts +7 -51
  314. package/core/composables/useMenuComposer/index.ts +0 -25
  315. package/dist/core/composables/useMenuComposer/index.d.ts +0 -12
  316. package/dist/core/composables/useMenuComposer/index.d.ts.map +0 -1
  317. package/dist/ui/components/organisms/vc-notification-dropdown/_internal/notification/notification.vue.d.ts.map +0 -1
  318. package/dist/ui/components/organisms/vc-notification-dropdown/index.d.ts +0 -38
  319. package/dist/ui/components/organisms/vc-notification-dropdown/index.d.ts.map +0 -1
  320. package/dist/ui/components/organisms/vc-notification-dropdown/vc-notification-dropdown.vue.d.ts +0 -21
  321. package/dist/ui/components/organisms/vc-notification-dropdown/vc-notification-dropdown.vue.d.ts.map +0 -1
  322. package/dist/ui/components/organisms/vc-notification-template/index.d.ts +0 -2
  323. package/dist/ui/components/organisms/vc-notification-template/index.d.ts.map +0 -1
  324. package/dist/ui/components/organisms/vc-notification-template/vc-notification-template.vue.d.ts.map +0 -1
  325. package/dist/utils/isInDemoMode.d.ts +0 -2
  326. package/dist/utils/isInDemoMode.d.ts.map +0 -1
  327. package/dist/vite.config.d.ts +0 -3
  328. package/dist/vite.config.d.ts.map +0 -1
  329. package/tailwind.config.js +0 -50
  330. package/ui/components/organisms/vc-notification-dropdown/index.ts +0 -3
  331. 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.${+error}`) }}
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, SignInResults } from "./../../../../../core/types";
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 { getUiCustomizationSettings, uiSettings } = useSettings();
202
+ const { uiSettings, loading: customizationLoading } = useSettings();
203
203
  const { t } = useI18n({ useScope: "global" });
204
204
  let useLogin;
205
- const signInResult = ref<SignInResults>({ succeeded: true });
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
- const customizationLoading = ref(false);
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
- try {
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 result = await signIn(props.userName, form.password);
156
- if (result.succeeded) {
155
+ const loginResult = await signIn(props.userName, form.password);
156
+ if (loginResult.succeeded) {
157
157
  router.push("/");
158
158
  } else {
159
- form.errors = [result.errorCode as string];
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
- ? P
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
- ? NonNullable<S>
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
- ? EmitsExtractor<Props>
32
- : never;
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;
@@ -0,0 +1,50 @@
1
+ /** @type { import('tailwindcss').Config } */
2
+ export default {
3
+ prefix: "tw-",
4
+ content: ["./ui/components/**/*.{vue,js,ts,jsx,tsx}", "./shared/**/*.{vue,js,ts,jsx,tsx}"],
5
+ theme: {
6
+ fontFamily: {
7
+ roboto: ["Roboto", "sans-serif"],
8
+ },
9
+ fontSize: {
10
+ xs: ["11px", "14px"],
11
+ sm: ["12px", "16px"],
12
+ base: ["13px", "18px"],
13
+ lg: ["14px", "19px"],
14
+ xl: ["16px", "22px"],
15
+ "2xl": ["23px", "28px"],
16
+ },
17
+ lineHeight: {
18
+ xs: "14px",
19
+ sm: "16px",
20
+ base: "18px",
21
+ lg: "19px",
22
+ xl: "22px",
23
+ "2xl": "28px",
24
+ header: "28px",
25
+ },
26
+ extend: {
27
+ keyframes: {
28
+ loadingMarker: {
29
+ "50%": { transform: "translateX(96px)" },
30
+ },
31
+ loadingMarkers: {
32
+ "50%": { transform: "translateX(-31px)" },
33
+ },
34
+ loadingProgress: {
35
+ from: {
36
+ "background-position": "0 0, left",
37
+ },
38
+ to: {
39
+ "background-position": "30px 0, left",
40
+ },
41
+ },
42
+ },
43
+ animation: {
44
+ loadingMarker: "loadingMarker 3s infinite",
45
+ loadingMarkers: "loadingMarkers 3s infinite",
46
+ loadingProgress: "loadingProgress 1s linear infinite",
47
+ },
48
+ },
49
+ },
50
+ };
@@ -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,0.24)] tw-px-[var(--button-padding-hor)] tw-py-[var(--button-padding-vert)];
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-[1px_1px_7px_rgba(126,142,157,0.15)]
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
- tw-transition-transform [scrollbar-color:var(--container-scroll-color)] [scrollbar-width:thin];
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;
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <i :class="`vc-icon vc-icon_${size} vc-icon_${variant} ${(icon as string).toLowerCase()}`" />
2
+ <i :class="[`vc-icon vc-icon_${size} ${(icon as string).toLowerCase()}`, variant ? `vc-icon_${variant}` : '']" />
3
3
  </template>
4
4
 
5
5
  <script lang="ts" setup>
@@ -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: T[]; totalCount: number }">
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
 
@@ -5,5 +5,3 @@ export * from "./vc-gallery";
5
5
  export * from "./vc-login-form";
6
6
  export * from "./vc-popup";
7
7
  export * from "./vc-table";
8
- export * from "./vc-notification-dropdown";
9
- export * from "./vc-notification-template";
@@ -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="appSwitcher"></slot>
6
+ <slot name="app-switcher"></slot>
7
7
 
8
- <template v-if="!$isMobile.value || blades.length === 0">
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="blades.length === 1"
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
- {{ blades[0].exposed.title }}
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="blades.length > 1"
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
- <template
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 { IBladeRef } from "./../../../../../../shared";
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">