@vc-shell/framework 1.2.3-beta.0 → 1.2.3

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 (244) hide show
  1. package/core/composables/index.ts +0 -2
  2. package/core/composables/useAssets/index.ts +28 -72
  3. package/core/composables/useAsync/index.ts +1 -4
  4. package/core/composables/useBladeRegistry/index.ts +5 -6
  5. package/core/composables/useBreadcrumbs/index.ts +1 -4
  6. package/core/composables/useErrorHandler/index.ts +1 -4
  7. package/core/composables/useFunctions/debounce.ts +1 -0
  8. package/core/composables/useFunctions/delay.ts +1 -0
  9. package/core/composables/useFunctions/index.ts +1 -0
  10. package/core/composables/useFunctions/once.ts +1 -0
  11. package/core/composables/useFunctions/sleep.ts +1 -0
  12. package/core/composables/useFunctions/throttle.ts +1 -0
  13. package/core/composables/useGlobalSearch/index.ts +3 -3
  14. package/core/composables/useMenuService/index.ts +12 -7
  15. package/core/composables/useNotifications/index.ts +2 -5
  16. package/core/composables/useTheme/index.ts +1 -4
  17. package/core/composables/useUser/index.ts +20 -189
  18. package/core/composables/useWidgets/index.ts +2 -5
  19. package/core/constants/index.ts +0 -2
  20. package/core/interceptors/index.ts +2 -5
  21. package/core/plugins/modularity/index.ts +6 -8
  22. package/core/plugins/modularity/loader.ts +33 -36
  23. package/core/plugins/signalR/index.ts +3 -6
  24. package/core/services/app-bar-menu-service.ts +1 -4
  25. package/core/services/dashboard-service.ts +1 -4
  26. package/core/services/global-search-service.ts +36 -0
  27. package/core/services/index.ts +0 -2
  28. package/core/services/menu-service.ts +41 -5
  29. package/core/services/settings-menu-service.ts +1 -4
  30. package/core/services/toolbar-service.ts +3 -18
  31. package/core/services/widget-service.ts +4 -7
  32. package/core/types/index.ts +47 -3
  33. package/core/utilities/index.ts +0 -2
  34. package/dist/core/composables/useAssets/index.d.ts.map +1 -1
  35. package/dist/core/composables/useAsync/index.d.ts.map +1 -1
  36. package/dist/core/composables/useBladeRegistry/index.d.ts.map +1 -1
  37. package/dist/core/composables/useBreadcrumbs/index.d.ts.map +1 -1
  38. package/dist/core/composables/useErrorHandler/index.d.ts.map +1 -1
  39. package/dist/core/composables/useFunctions/debounce.d.ts.map +1 -1
  40. package/dist/core/composables/useFunctions/delay.d.ts.map +1 -1
  41. package/dist/core/composables/useFunctions/index.d.ts.map +1 -1
  42. package/dist/core/composables/useFunctions/once.d.ts.map +1 -1
  43. package/dist/core/composables/useFunctions/sleep.d.ts.map +1 -1
  44. package/dist/core/composables/useFunctions/throttle.d.ts.map +1 -1
  45. package/dist/core/composables/useGlobalSearch/index.d.ts.map +1 -1
  46. package/dist/core/composables/useMenuService/index.d.ts +2 -2
  47. package/dist/core/composables/useMenuService/index.d.ts.map +1 -1
  48. package/dist/core/composables/useNotifications/index.d.ts.map +1 -1
  49. package/dist/core/composables/useTheme/index.d.ts.map +1 -1
  50. package/dist/core/composables/useUser/index.d.ts +0 -8
  51. package/dist/core/composables/useUser/index.d.ts.map +1 -1
  52. package/dist/core/composables/useWidgets/index.d.ts.map +1 -1
  53. package/dist/core/constants/index.d.ts +0 -2
  54. package/dist/core/constants/index.d.ts.map +1 -1
  55. package/dist/core/interceptors/index.d.ts.map +1 -1
  56. package/dist/core/plugins/modularity/index.d.ts.map +1 -1
  57. package/dist/core/plugins/modularity/loader.d.ts.map +1 -1
  58. package/dist/core/plugins/signalR/index.d.ts.map +1 -1
  59. package/dist/core/services/app-bar-menu-service.d.ts.map +1 -1
  60. package/dist/core/services/dashboard-service.d.ts.map +1 -1
  61. package/dist/core/services/global-search-service.d.ts +10 -0
  62. package/dist/core/services/global-search-service.d.ts.map +1 -0
  63. package/dist/core/services/menu-service.d.ts +24 -1
  64. package/dist/core/services/menu-service.d.ts.map +1 -1
  65. package/dist/core/services/settings-menu-service.d.ts.map +1 -1
  66. package/dist/core/services/toolbar-service.d.ts.map +1 -1
  67. package/dist/core/services/widget-service.d.ts.map +1 -1
  68. package/dist/core/types/index.d.ts +34 -0
  69. package/dist/core/types/index.d.ts.map +1 -1
  70. package/dist/core/utilities/index.d.ts +0 -2
  71. package/dist/core/utilities/index.d.ts.map +1 -1
  72. package/dist/framework.js +8664 -9720
  73. package/dist/index.css +1 -1
  74. package/dist/index.d.ts +0 -19
  75. package/dist/index.d.ts.map +1 -1
  76. package/dist/injection-keys.d.ts +6 -21
  77. package/dist/injection-keys.d.ts.map +1 -1
  78. package/dist/shared/components/app-switcher/composables/useAppSwitcher/index.d.ts.map +1 -1
  79. package/dist/shared/components/blade-navigation/components/vc-blade-navigation/vc-blade-navigation.vue.d.ts.map +1 -1
  80. package/dist/shared/components/blade-navigation/composables/useBladeNavigation/index.d.ts.map +1 -1
  81. package/dist/shared/components/blade-navigation/composables/useBladeNavigation/internal/bladeActions.d.ts.map +1 -1
  82. package/dist/shared/components/blade-navigation/composables/useBladeNavigation/internal/bladeRouteResolver.d.ts.map +1 -1
  83. package/dist/shared/components/blade-navigation/composables/useBladeNavigation/internal/routerUtils.d.ts.map +1 -1
  84. package/dist/shared/components/draggable-dashboard/composables/useDashboardDragAndDrop.d.ts.map +1 -1
  85. package/dist/shared/components/draggable-dashboard/composables/useLayoutPersistence.d.ts.map +1 -1
  86. package/dist/shared/components/notifications/composables/useContainer/index.d.ts.map +1 -1
  87. package/dist/shared/components/notifications/composables/useInstance/index.d.ts.map +1 -1
  88. package/dist/shared/components/notifications/core/notification.d.ts.map +1 -1
  89. package/dist/shared/components/popup-handler/components/vc-popup-container/vc-popup-container.vue.d.ts.map +1 -1
  90. package/dist/shared/components/sign-in/useExternalProvider.d.ts.map +1 -1
  91. package/dist/shared/composables/useExternalWidgets.d.ts.map +1 -1
  92. package/dist/shared/composables/useMenuExpanded.d.ts.map +1 -1
  93. package/dist/shared/composables/useTableSelection.d.ts.map +1 -1
  94. package/dist/shared/composables/useTableSort.d.ts.map +1 -1
  95. package/dist/shared/modules/assets-manager/components/assets-manager/assets-manager.vue.d.ts.map +1 -1
  96. package/dist/shared/pages/LoginPage/components/login/Login.vue.d.ts.map +1 -1
  97. package/dist/shared/utilities/colorUtils.d.ts +6 -0
  98. package/dist/shared/utilities/colorUtils.d.ts.map +1 -1
  99. package/dist/tsconfig.tsbuildinfo +1 -1
  100. package/dist/ui/components/atoms/vc-badge/vc-badge.vue.d.ts +3 -0
  101. package/dist/ui/components/atoms/vc-badge/vc-badge.vue.d.ts.map +1 -1
  102. package/dist/ui/components/atoms/vc-banner/vc-banner.vue.d.ts.map +1 -1
  103. package/dist/ui/components/atoms/vc-button/vc-button.vue.d.ts +15 -0
  104. package/dist/ui/components/atoms/vc-button/vc-button.vue.d.ts.map +1 -1
  105. package/dist/ui/components/atoms/vc-container/vc-container.vue.d.ts.map +1 -1
  106. package/dist/ui/components/atoms/vc-icon/vc-icon.vue.d.ts.map +1 -1
  107. package/dist/ui/components/atoms/vc-icon/vc-lucide-icon.vue.d.ts.map +1 -1
  108. package/dist/ui/components/atoms/vc-image/vc-image.vue.d.ts.map +1 -1
  109. package/dist/ui/components/atoms/vc-link/vc-link.vue.d.ts.map +1 -1
  110. package/dist/ui/components/atoms/vc-loading/vc-loading.vue.d.ts.map +1 -1
  111. package/dist/ui/components/atoms/vc-status/vc-status.vue.d.ts +5 -0
  112. package/dist/ui/components/atoms/vc-status/vc-status.vue.d.ts.map +1 -1
  113. package/dist/ui/components/atoms/vc-tooltip/vc-tooltip.vue.d.ts.map +1 -1
  114. package/dist/ui/components/atoms/vc-video/vc-video.vue.d.ts.map +1 -1
  115. package/dist/ui/components/atoms/vc-widget/vc-widget.vue.d.ts.map +1 -1
  116. package/dist/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.vue.d.ts.map +1 -1
  117. package/dist/ui/components/molecules/vc-input/vc-input.vue.d.ts.map +1 -1
  118. package/dist/ui/components/molecules/vc-pagination/vc-pagination.vue.d.ts.map +1 -1
  119. package/dist/ui/components/molecules/vc-toast/vc-toast.vue.d.ts.map +1 -1
  120. package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/_internal/useBadge.d.ts +18 -0
  121. package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/_internal/useBadge.d.ts.map +1 -0
  122. package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/_internal/vc-app-menu-link.vue.d.ts +4 -1
  123. 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
  124. package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/vc-app-menu-item.vue.d.ts +4 -1
  125. 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
  126. package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/vc-app-menu.vue.d.ts.map +1 -1
  127. package/dist/ui/components/organisms/vc-app/vc-app.vue.d.ts.map +1 -1
  128. package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-buttons/_internal/vc-blade-toolbar-button/vc-blade-toolbar-button.vue.d.ts.map +1 -1
  129. package/dist/ui/components/organisms/vc-blade/vc-blade.vue.d.ts.map +1 -1
  130. package/dist/ui/components/organisms/vc-login-form/vc-login-form.vue.d.ts.map +1 -1
  131. package/dist/ui/components/organisms/vc-table/_internal/vc-table-cell/vc-table-cell.vue.d.ts.map +1 -1
  132. package/dist/ui/components/organisms/vc-table/composables/useTableActions.d.ts.map +1 -1
  133. package/dist/ui/components/organisms/vc-table/composables/useTableColumnResize.d.ts.map +1 -1
  134. package/dist/ui/components/organisms/vc-table/composables/useTableRowReorder.d.ts.map +1 -1
  135. package/dist/ui/components/organisms/vc-table/composables/useTableSelection.d.ts.map +1 -1
  136. package/dist/ui/components/organisms/vc-table/composables/useTableState.d.ts.map +1 -1
  137. package/dist/{vendor-lodash-es-SgOIjJF8.js → vendor-lodash-es-BqkGj3Jl.js} +0 -2
  138. package/package.json +5 -5
  139. package/shared/components/app-switcher/composables/useAppSwitcher/index.ts +1 -4
  140. package/shared/components/blade-navigation/components/vc-blade-navigation/vc-blade-navigation.vue +4 -67
  141. package/shared/components/blade-navigation/composables/useBladeNavigation/index.ts +10 -13
  142. package/shared/components/blade-navigation/composables/useBladeNavigation/internal/bladeActions.ts +4 -7
  143. package/shared/components/blade-navigation/composables/useBladeNavigation/internal/bladeRouteResolver.ts +1 -4
  144. package/shared/components/blade-navigation/composables/useBladeNavigation/internal/routerUtils.ts +1 -4
  145. package/shared/components/change-password/change-password.vue +1 -1
  146. package/shared/components/draggable-dashboard/composables/useDashboardDragAndDrop.ts +5 -14
  147. package/shared/components/draggable-dashboard/composables/useLayoutPersistence.ts +2 -5
  148. package/shared/components/index.ts +0 -2
  149. package/shared/components/notifications/composables/useContainer/index.ts +6 -8
  150. package/shared/components/notifications/composables/useInstance/index.ts +1 -4
  151. package/shared/components/notifications/core/notification.ts +7 -10
  152. package/shared/components/popup-handler/components/vc-popup-container/vc-popup-container.vue +1 -20
  153. package/shared/components/sign-in/useExternalProvider.ts +4 -6
  154. package/shared/composables/useExternalWidgets.ts +4 -7
  155. package/shared/composables/useMenuExpanded.ts +1 -15
  156. package/shared/composables/useTableSelection.ts +0 -6
  157. package/shared/composables/useTableSort.ts +4 -4
  158. package/shared/modules/assets-manager/components/assets-manager/assets-manager.vue +3 -6
  159. package/shared/pages/LoginPage/components/login/Login.vue +1 -4
  160. package/shared/utilities/colorUtils.ts +12 -5
  161. package/ui/components/atoms/vc-badge/vc-badge.vue +59 -0
  162. package/ui/components/atoms/vc-banner/vc-banner.vue +1 -4
  163. package/ui/components/atoms/vc-button/vc-button.vue +25 -2
  164. package/ui/components/atoms/vc-container/vc-container.vue +3 -12
  165. package/ui/components/atoms/vc-icon/vc-icon.vue +10 -0
  166. package/ui/components/atoms/vc-icon/vc-lucide-icon.vue +2 -5
  167. package/ui/components/atoms/vc-image/vc-image.vue +1 -4
  168. package/ui/components/atoms/vc-link/vc-link.vue +54 -59
  169. package/ui/components/atoms/vc-loading/vc-loading.vue +0 -4
  170. package/ui/components/atoms/vc-status/vc-status.vue +5 -0
  171. package/ui/components/atoms/vc-status-icon/vc-status-icon.vue +4 -4
  172. package/ui/components/atoms/vc-tooltip/vc-tooltip.vue +1 -8
  173. package/ui/components/atoms/vc-video/vc-video.vue +2 -4
  174. package/ui/components/atoms/vc-widget/vc-widget.vue +1 -4
  175. package/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.vue +2 -7
  176. package/ui/components/molecules/vc-input/vc-input.vue +1 -0
  177. package/ui/components/molecules/vc-pagination/vc-pagination.vue +1 -6
  178. package/ui/components/molecules/vc-rating/vc-rating.vue +1 -1
  179. package/ui/components/molecules/vc-textarea/vc-textarea.vue +1 -1
  180. package/ui/components/molecules/vc-toast/vc-toast.vue +1 -11
  181. package/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/_internal/useBadge.ts +80 -0
  182. package/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/_internal/vc-app-menu-link.vue +53 -10
  183. package/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/vc-app-menu-item.vue +10 -1
  184. package/ui/components/organisms/vc-app/_internal/vc-app-menu/vc-app-menu.vue +3 -0
  185. package/ui/components/organisms/vc-app/vc-app.vue +3 -22
  186. package/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-buttons/_internal/vc-blade-toolbar-button/vc-blade-toolbar-button.vue +1 -4
  187. package/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/vc-blade-toolbar.vue +14 -14
  188. package/ui/components/organisms/vc-blade/vc-blade.vue +1 -3
  189. package/ui/components/organisms/vc-login-form/vc-login-form.vue +1 -3
  190. package/ui/components/organisms/vc-table/_internal/vc-table-cell/vc-table-cell.vue +2 -34
  191. package/ui/components/organisms/vc-table/composables/useTableActions.ts +10 -7
  192. package/ui/components/organisms/vc-table/composables/useTableColumnResize.ts +1 -4
  193. package/ui/components/organisms/vc-table/composables/useTableRowReorder.ts +2 -5
  194. package/ui/components/organisms/vc-table/composables/useTableSelection.ts +18 -26
  195. package/ui/components/organisms/vc-table/composables/useTableState.ts +1 -4
  196. package/core/constants/defaults.ts +0 -76
  197. package/core/constants/ui.ts +0 -68
  198. package/core/plugins/ai-agent/README.md +0 -336
  199. package/core/plugins/ai-agent/components/VcAiAgentPanel.vue +0 -125
  200. package/core/plugins/ai-agent/components/_internal/VcAiAgentHeader.vue +0 -182
  201. package/core/plugins/ai-agent/components/_internal/VcAiAgentIframe.vue +0 -77
  202. package/core/plugins/ai-agent/components/index.ts +0 -1
  203. package/core/plugins/ai-agent/composables/index.ts +0 -4
  204. package/core/plugins/ai-agent/composables/useAiAgent.ts +0 -231
  205. package/core/plugins/ai-agent/composables/useAiAgentContext.ts +0 -280
  206. package/core/plugins/ai-agent/constants.ts +0 -89
  207. package/core/plugins/ai-agent/index.ts +0 -91
  208. package/core/plugins/ai-agent/services/ai-agent-service.ts +0 -598
  209. package/core/plugins/ai-agent/types.ts +0 -310
  210. package/core/types/services.ts +0 -194
  211. package/core/utilities/errorTypes.ts +0 -126
  212. package/core/utilities/logger.ts +0 -120
  213. package/dist/core/constants/defaults.d.ts +0 -63
  214. package/dist/core/constants/defaults.d.ts.map +0 -1
  215. package/dist/core/constants/ui.d.ts +0 -50
  216. package/dist/core/constants/ui.d.ts.map +0 -1
  217. package/dist/core/plugins/ai-agent/components/VcAiAgentPanel.vue.d.ts +0 -3
  218. package/dist/core/plugins/ai-agent/components/VcAiAgentPanel.vue.d.ts.map +0 -1
  219. package/dist/core/plugins/ai-agent/components/_internal/VcAiAgentHeader.vue.d.ts +0 -15
  220. package/dist/core/plugins/ai-agent/components/_internal/VcAiAgentHeader.vue.d.ts.map +0 -1
  221. package/dist/core/plugins/ai-agent/components/_internal/VcAiAgentIframe.vue.d.ts +0 -10
  222. package/dist/core/plugins/ai-agent/components/_internal/VcAiAgentIframe.vue.d.ts.map +0 -1
  223. package/dist/core/plugins/ai-agent/components/index.d.ts +0 -2
  224. package/dist/core/plugins/ai-agent/components/index.d.ts.map +0 -1
  225. package/dist/core/plugins/ai-agent/composables/index.d.ts +0 -4
  226. package/dist/core/plugins/ai-agent/composables/index.d.ts.map +0 -1
  227. package/dist/core/plugins/ai-agent/composables/useAiAgent.d.ts +0 -95
  228. package/dist/core/plugins/ai-agent/composables/useAiAgent.d.ts.map +0 -1
  229. package/dist/core/plugins/ai-agent/composables/useAiAgentContext.d.ts +0 -55
  230. package/dist/core/plugins/ai-agent/composables/useAiAgentContext.d.ts.map +0 -1
  231. package/dist/core/plugins/ai-agent/constants.d.ts +0 -47
  232. package/dist/core/plugins/ai-agent/constants.d.ts.map +0 -1
  233. package/dist/core/plugins/ai-agent/index.d.ts +0 -48
  234. package/dist/core/plugins/ai-agent/index.d.ts.map +0 -1
  235. package/dist/core/plugins/ai-agent/services/ai-agent-service.d.ts +0 -45
  236. package/dist/core/plugins/ai-agent/services/ai-agent-service.d.ts.map +0 -1
  237. package/dist/core/plugins/ai-agent/types.d.ts +0 -258
  238. package/dist/core/plugins/ai-agent/types.d.ts.map +0 -1
  239. package/dist/core/types/services.d.ts +0 -169
  240. package/dist/core/types/services.d.ts.map +0 -1
  241. package/dist/core/utilities/errorTypes.d.ts +0 -61
  242. package/dist/core/utilities/errorTypes.d.ts.map +0 -1
  243. package/dist/core/utilities/logger.d.ts +0 -259
  244. package/dist/core/utilities/logger.d.ts.map +0 -1
@@ -6,9 +6,6 @@ import {
6
6
  registerExternalWidget,
7
7
  } from "./../../services/widget-service";
8
8
  import { WidgetServiceKey } from "./../../../injection-keys";
9
- import { createLogger, InjectionError } from "../../utilities";
10
-
11
- const logger = createLogger("use-widgets");
12
9
 
13
10
  export function provideWidgetService(): IWidgetService {
14
11
  const service = createWidgetService();
@@ -19,8 +16,8 @@ export function provideWidgetService(): IWidgetService {
19
16
  export function useWidgets(): IWidgetService {
20
17
  const service = inject(WidgetServiceKey);
21
18
  if (!service) {
22
- logger.error("Widget service not found in current context. Injection chain:", getCurrentInstance());
23
- throw new InjectionError("WidgetService");
19
+ console.error("Widget service not found in current context. Injection chain:", getCurrentInstance());
20
+ throw new Error("WidgetService not provided");
24
21
  }
25
22
  return service;
26
23
  }
@@ -1,5 +1,3 @@
1
1
  export const FALLBACK_BLADE_ID = "fallback-blade-id";
2
2
 
3
3
  export * from "./locale";
4
- export * from "./ui";
5
- export * from "./defaults";
@@ -2,9 +2,6 @@
2
2
  import { Router } from "vue-router";
3
3
  import { useUserManagement } from "../composables/useUserManagement";
4
4
  import { notification } from "../../shared";
5
- import { createLogger } from "../utilities";
6
-
7
- const logger = createLogger("interceptors");
8
5
 
9
6
  export function registerInterceptors(router: Router) {
10
7
  const { fetch: originalFetch } = window;
@@ -19,8 +16,8 @@ export function registerInterceptors(router: Router) {
19
16
  * @returns A promise that resolves to the response from the API call.
20
17
  */
21
18
  if (window.__DEMO_MODE__) {
22
- logger.warn("CANCELLED FETCH WHILE IN __DEMO_MODE__: ", ...args);
23
- logger.warn("Please logout and add APP_PLATFORM_URL into .env file of your application to enable API calls");
19
+ console.warn("CANCELLED FETCH WHILE IN __DEMO_MODE__: ", ...args);
20
+ console.warn("Please logout and add APP_PLATFORM_URL into .env file of your application to enable API calls");
24
21
  return new Promise((resolve: any) => {
25
22
  /**
26
23
  * This conditions are mocking login, currentuser API calls for demo purposes.
@@ -2,14 +2,12 @@ import { App, Component, h, inject, resolveComponent, watch } from "vue";
2
2
  import { i18n } from "./../i18n";
3
3
  import { Router } from "vue-router";
4
4
  import { BladeInstanceConstructor, BladeVNode } from "./../../../shared/components/blade-navigation/types";
5
- import { kebabToPascal, createLogger } from "./../../utilities";
5
+ import { kebabToPascal } from "./../../utilities";
6
6
  import { addMenuItem, useMenuService, useNotifications } from "../../composables";
7
7
  import * as _ from "lodash-es";
8
8
  import { notification } from "../../../shared";
9
9
  import { BladeRegistryKey, IBladeRegistrationData, IBladeRegistryInstance } from "../../composables/useBladeRegistry";
10
10
 
11
- const logger = createLogger("modularity");
12
-
13
11
  export function createModule(components: { [key: string]: BladeInstanceConstructor }, locales?: unknown) {
14
12
  return {
15
13
  install(app: App): void {
@@ -19,7 +17,7 @@ export function createModule(components: { [key: string]: BladeInstanceConstruct
19
17
  if (app.component(componentName)) {
20
18
  // Remove the existing component
21
19
  // Note: Vue does not provide a method to remove a component, so we can overwrite it
22
- logger.warn(
20
+ console.warn(
23
21
  `Component ${componentName} is already registered. It will be overwritten with the new component.`,
24
22
  );
25
23
  }
@@ -54,11 +52,11 @@ export function createAppModule(
54
52
  if (bladeRegistry && bladeRegistry._registerBladeFn) {
55
53
  registerBladeWithRegistry = bladeRegistry._registerBladeFn;
56
54
  } else {
57
- logger.error(
55
+ console.error(
58
56
  "createAppModule: BladeRegistry or its _registerBladeFn not found via inject. Blade registration will be skipped.",
59
57
  );
60
58
  registerBladeWithRegistry = (name: string, data: IBladeRegistrationData) => {
61
- logger.warn(`BladeRegistry (noop): Tried to register '${name}' but _registerBladeFn is missing.`);
59
+ console.warn(`BladeRegistry (noop): Tried to register '${name}' but _registerBladeFn is missing.`);
62
60
  };
63
61
  }
64
62
 
@@ -85,7 +83,7 @@ export function createAppModule(
85
83
  isWorkspace: page.isWorkspace || false,
86
84
  });
87
85
  } else {
88
- logger.warn(
86
+ console.warn(
89
87
  "createAppModule: Page without URL is missing a name. Cannot register with BladeRegistry.",
90
88
  page,
91
89
  );
@@ -181,7 +179,7 @@ export function createAppModule(
181
179
  // Check if the component is already registered
182
180
  if (app.component(name)) {
183
181
  // Overwrite existing component
184
- logger.warn(`Component ${name} is already registered. It will be overwritten with the new component.`);
182
+ console.warn(`Component ${name} is already registered. It will be overwritten with the new component.`);
185
183
  }
186
184
  app.component(name, component);
187
185
  });
@@ -3,9 +3,6 @@ import { Router } from "vue-router";
3
3
  import { DynamicModulesKey } from "../../../injection-keys";
4
4
  import * as semver from "semver";
5
5
  import { notification } from "../../../shared";
6
- import { createLogger } from "../../utilities";
7
-
8
- const logger = createLogger("module-loader");
9
6
 
10
7
  interface ModuleManifest {
11
8
  file: string;
@@ -111,12 +108,12 @@ async function loadVersionInfo(url: string): Promise<VersionInfo | null> {
111
108
  try {
112
109
  const response = await fetch(url);
113
110
  if (!response.ok) {
114
- logger.warn(`Failed to load version info: ${response.statusText}`);
111
+ console.warn(`Failed to load version info: ${response.statusText}`);
115
112
  return null;
116
113
  }
117
114
  return (await response.json()) as VersionInfo;
118
115
  } catch (error) {
119
- logger.warn(`Error loading version info: ${error}`);
116
+ console.warn(`Error loading version info: ${error}`);
120
117
  return null;
121
118
  }
122
119
  }
@@ -148,7 +145,7 @@ function checkVersionCompatibility(
148
145
  moduleVersion.compatibleWith.framework &&
149
146
  !semver.satisfies(frameworkVersion, moduleVersion.compatibleWith.framework, { includePrerelease: true })
150
147
  ) {
151
- logger.error(
148
+ console.error(
152
149
  `Module ${moduleId} requires framework version ${moduleVersion.compatibleWith.framework}, but current framework version is ${frameworkVersion}.`,
153
150
  );
154
151
  notification.error(
@@ -166,12 +163,12 @@ function checkVersionCompatibility(
166
163
  const loadedDepVersion = loadedModulesWithVersions.get(depModuleId);
167
164
 
168
165
  if (!loadedDepVersion) {
169
- logger.warn(`Module ${moduleId} depends on ${depModuleId}, but it is not loaded yet.`);
166
+ console.warn(`Module ${moduleId} depends on ${depModuleId}, but it is not loaded yet.`);
170
167
  continue;
171
168
  }
172
169
 
173
170
  if (!semver.satisfies(loadedDepVersion, versionRange, { includePrerelease: true })) {
174
- logger.error(
171
+ console.error(
175
172
  `Module ${moduleId} requires ${depModuleId} version ${versionRange}, but loaded version is ${loadedDepVersion}.`,
176
173
  );
177
174
  notification.error(
@@ -236,7 +233,7 @@ export function useDynamicModules(
236
233
  const finalConfig = { ...DEFAULT_CONFIG, ...config };
237
234
 
238
235
  if (!config.frameworkVersion && finalConfig.frameworkVersion) {
239
- logger.warn(
236
+ console.warn(
240
237
  `Framework version not specified in the configuration, using default ${finalConfig.frameworkVersion}. This may cause compatibility issues with modules.`,
241
238
  );
242
239
  }
@@ -275,7 +272,7 @@ export function useDynamicModules(
275
272
  manifest: (await response.json()) as Manifest,
276
273
  };
277
274
  } catch (error) {
278
- logger.error("Error loading module manifest:", error);
275
+ console.error(error);
279
276
  return null;
280
277
  }
281
278
  });
@@ -306,12 +303,12 @@ export function useDynamicModules(
306
303
  .filter((file) => file.file.endsWith(".css"))
307
304
  .map((file) => loadCSS(moduleUrl + file.file)),
308
305
  ).catch((error) => {
309
- logger.error(`Failed to load styles for module ${moduleId}:`, error);
306
+ console.error(`Failed to load styles for module ${moduleId}:`, error);
310
307
  }),
311
308
  ]);
312
309
 
313
310
  if (versionInfoFromFile) {
314
- logger.info(`Loaded version info for module ${moduleId}: v${versionInfoFromFile.version}`);
311
+ console.info(`Loaded version info for module ${moduleId}: v${versionInfoFromFile.version}`);
315
312
  }
316
313
 
317
314
  // Import module
@@ -325,7 +322,7 @@ export function useDynamicModules(
325
322
  success: true,
326
323
  };
327
324
  } catch (error) {
328
- logger.error(`Failed to load module ${moduleId}:`, error);
325
+ console.error(`Failed to load module ${moduleId}:`, error);
329
326
  return {
330
327
  moduleId,
331
328
  moduleUrl,
@@ -345,7 +342,7 @@ export function useDynamicModules(
345
342
  moduleLoadResults.filter((result) => result.success).map((result) => [result.moduleId, result]),
346
343
  );
347
344
 
348
- logger.debug("LoadResultsMap keys:", Array.from(loadResultsMap.keys()));
345
+ console.log("🔍 LoadResultsMap keys:", Array.from(loadResultsMap.keys()));
349
346
 
350
347
  // Wait for all modules to register themselves in the global scope
351
348
  const expectedModuleIds = Array.from(loadResultsMap.keys());
@@ -372,9 +369,9 @@ export function useDynamicModules(
372
369
 
373
370
  // Check if modules are already registered
374
371
  if (areAllModulesRegistered()) {
375
- logger.debug("All modules are already registered, proceeding with installation");
372
+ console.log("All modules are already registered, proceeding with installation");
376
373
  } else {
377
- logger.debug(`Waiting for ${expectedModuleIds.length} modules to register:`, expectedModuleIds);
374
+ console.log(`🔍 Waiting for ${expectedModuleIds.length} modules to register:`, expectedModuleIds);
378
375
 
379
376
  // Wait for module registration with timeout
380
377
  await new Promise<void>((resolve) => {
@@ -395,7 +392,7 @@ export function useDynamicModules(
395
392
 
396
393
  const checkAndResolve = () => {
397
394
  if (areAllModulesRegistered()) {
398
- logger.debug("All modules are registered, proceeding with installation");
395
+ console.log("All modules are registered, proceeding with installation");
399
396
  cleanup();
400
397
  resolve();
401
398
  return true;
@@ -413,8 +410,8 @@ export function useDynamicModules(
413
410
  const poll = async () => {
414
411
  while (attempts < maxAttempts) {
415
412
  const availableModules = getAvailableModules();
416
- logger.debug(
417
- `Attempt ${attempts + 1}: Available modules:`,
413
+ console.log(
414
+ `🔍 Attempt ${attempts + 1}: Available modules:`,
418
415
  availableModules,
419
416
  `(${availableModules.length}/${expectedModuleIds.length})`,
420
417
  );
@@ -425,7 +422,7 @@ export function useDynamicModules(
425
422
  await new Promise((r) => setTimeout(r, 100));
426
423
  }
427
424
 
428
- logger.warn("Timeout waiting for all modules to register, proceeding with available modules");
425
+ console.warn("⚠️ Timeout waiting for all modules to register, proceeding with available modules");
429
426
  cleanup();
430
427
  resolve();
431
428
  };
@@ -444,18 +441,18 @@ export function useDynamicModules(
444
441
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
445
442
  const modulesToProcess: [string, any][] = Object.entries(window.VcShellDynamicModules || {});
446
443
 
447
- logger.debug(
448
- `Found ${modulesToProcess.length} modules to process:`,
444
+ console.log(
445
+ `🚀 Found ${modulesToProcess.length} modules to process:`,
449
446
  modulesToProcess.map(([name]) => name),
450
447
  );
451
448
 
452
449
  for (const [moduleName, moduleObject] of modulesToProcess) {
453
450
  if (loadedModules.has(moduleName)) {
454
- logger.debug(`Skipping already loaded module: ${moduleName}`);
451
+ console.log(`⏭️ Skipping already loaded module: ${moduleName}`);
455
452
  continue;
456
453
  }
457
454
 
458
- logger.debug(`Processing module: ${moduleName}`);
455
+ console.log(`📦 Processing module: ${moduleName}`);
459
456
 
460
457
  // Try to find the corresponding load result by matching module names
461
458
  const loadResult =
@@ -472,16 +469,16 @@ export function useDynamicModules(
472
469
 
473
470
  const mainModule = getModuleInstall(moduleObject);
474
471
 
475
- logger.debug(`Module ${moduleName} exports:`, Object.keys(moduleObject));
476
- logger.debug(`Module ${moduleName} has install function:`, !!mainModule);
472
+ console.log(`🔍 Module ${moduleName} exports:`, Object.keys(moduleObject));
473
+ console.log(`🔍 Module ${moduleName} has install function:`, !!mainModule);
477
474
 
478
475
  if (mainModule) {
479
476
  const moduleVersionInfo = (mainModule as ModuleWithNamedExport).version || versionFromFile;
480
477
 
481
478
  try {
482
479
  if (!finalConfig.skipVersionCheck) {
483
- logger.debug(
484
- `Checking compatibility for ${moduleName} (version: ${moduleVersionInfo?.version || "N/A"})`,
480
+ console.log(
481
+ `🔎 Checking compatibility for ${moduleName} (version: ${moduleVersionInfo?.version || "N/A"})`,
485
482
  );
486
483
  checkVersionCompatibility(
487
484
  moduleName,
@@ -491,7 +488,7 @@ export function useDynamicModules(
491
488
  );
492
489
  }
493
490
 
494
- logger.debug(`Installing module: ${moduleName}`, {
491
+ console.log(`🔧 Installing module: ${moduleName}`, {
495
492
  hasLoadResult: !!loadResult,
496
493
  versionFromFile: versionFromFile?.version,
497
494
  moduleVersion: moduleVersionInfo?.version,
@@ -506,31 +503,31 @@ export function useDynamicModules(
506
503
  loadedModulesWithVersions.set(moduleName, moduleVersionInfo.version);
507
504
  }
508
505
 
509
- logger.info(
510
- `Module ${moduleName} installed successfully (version: ${
506
+ console.log(
507
+ `✅ Module ${moduleName} installed successfully (version: ${
511
508
  moduleVersionInfo?.version || "no version info"
512
509
  })`,
513
510
  );
514
511
  } catch (e) {
515
512
  if (e instanceof VersionCompatibilityError) {
516
- logger.error(`Compatibility error in module ${e.moduleId}:`, e.details);
513
+ console.error(`Compatibility error in module ${e.moduleId}:`, e.details);
517
514
  } else {
518
- logger.error(`Failed to install module ${moduleName}:`, e);
515
+ console.error(`Failed to install module ${moduleName}:`, e);
519
516
  notification.error(`Failed to install module ${moduleName}`);
520
517
  }
521
518
  }
522
519
  } else {
523
- logger.error(`Module ${moduleName} does not have an 'install' function`);
520
+ console.error(`❌ Module ${moduleName} does not have an 'install' function`);
524
521
  notification.error(
525
522
  `Module ${moduleName} is not a valid module because it does not have an 'install' function.`,
526
523
  );
527
524
  }
528
525
  }
529
526
 
530
- logger.debug("Final loadedModules set:", Array.from(loadedModules));
527
+ console.log("🏁 Final loadedModules set:", Array.from(loadedModules));
531
528
  }
532
529
  } catch (error) {
533
- logger.error("Failed to load modules:", error);
530
+ console.error("Failed to load modules:", error);
534
531
  }
535
532
 
536
533
  app.config.globalProperties.$dynamicModules = {
@@ -4,9 +4,6 @@ import { PushNotification } from "../../api/platform";
4
4
  import { useNotifications } from "./../../composables/useNotifications";
5
5
  import { useUserManagement } from "../../composables/useUserManagement";
6
6
  import { useCypressSignalRMock } from "cypress-signalr-mock";
7
- import { createLogger } from "../../utilities";
8
-
9
- const logger = createLogger("signalR");
10
7
 
11
8
  const { addNotification } = useNotifications();
12
9
  const currentCreator = ref<string | undefined>();
@@ -20,7 +17,7 @@ function setupSystemEventsHandler(connection: any, creator?: string) {
20
17
 
21
18
  // Subscribe to events with the new creator
22
19
  if (creator) {
23
- logger.debug("Setup handler for creator: ", creator);
20
+ console.log("[SignalR] Setup handler for creator: ", creator);
24
21
  connection.on("SendSystemEvents", (message: PushNotification) => {
25
22
  if (message.creator === creator) {
26
23
  addNotification(message);
@@ -51,11 +48,11 @@ export const signalR = {
51
48
  connection
52
49
  .start()
53
50
  .then(() => {
54
- logger.info("Connected.");
51
+ console.log("[SignalR] Connected.");
55
52
  setupSystemEventsHandler(connection, currentCreator.value);
56
53
  })
57
54
  .catch((err) => {
58
- logger.error("Connection Error: ", err);
55
+ console.log("[SignalR] Connection Error: ", err);
59
56
  setTimeout(() => start(), 5000);
60
57
  });
61
58
  };
@@ -1,7 +1,4 @@
1
1
  import { ref, computed, Component, ComputedRef } from "vue";
2
- import { createLogger } from "../utilities";
3
-
4
- const logger = createLogger("app-bar-widget-service");
5
2
 
6
3
  export interface AppBarWidget {
7
4
  id: string;
@@ -78,7 +75,7 @@ export function createAppBarWidgetService(): IAppBarWidgetService {
78
75
  try {
79
76
  register(item);
80
77
  } catch (e) {
81
- logger.warn(`Failed to register pre-added AppBar widget ${item.id}:`, e);
78
+ console.warn(`Failed to register pre-added AppBar widget ${item.id}:`, e);
82
79
  }
83
80
  });
84
81
 
@@ -1,9 +1,6 @@
1
1
  import { reactive, Component } from "vue";
2
2
  import { DashboardServiceKey } from "../../injection-keys";
3
3
  import { usePermissions } from "../composables/usePermissions";
4
- import { createLogger } from "../utilities";
5
-
6
- const logger = createLogger("dashboard-service");
7
4
 
8
5
  export interface DashboardWidgetSize {
9
6
  width: number;
@@ -105,7 +102,7 @@ export function createDashboardService(): IDashboardService {
105
102
  try {
106
103
  registerWidget(widget);
107
104
  } catch (e) {
108
- logger.warn(`Failed to register preregistered widget ${widget.id}:`, e);
105
+ console.warn(`Failed to register preregistered widget ${widget.id}:`, e);
109
106
  }
110
107
  });
111
108
 
@@ -0,0 +1,36 @@
1
+ import { Ref, ref } from "vue";
2
+
3
+ export interface GlobalSearchState {
4
+ isSearchVisible: Ref<Record<string, boolean>>;
5
+ searchQuery: Ref<Record<string, string>>;
6
+ toggleSearch: (bladeId: string) => void;
7
+ setSearchQuery: (bladeId: string, query: string) => void;
8
+ closeSearch: (bladeId: string) => void;
9
+ }
10
+
11
+ export function createGlobalSearchService() {
12
+ const isSearchVisible = ref<Record<string, boolean>>({});
13
+ const searchQuery = ref<Record<string, string>>({});
14
+
15
+ const toggleSearch = (bladeId: string) => {
16
+ isSearchVisible.value[bladeId] = !isSearchVisible.value[bladeId];
17
+ };
18
+
19
+ const setSearchQuery = (bladeId: string, query: string) => {
20
+ searchQuery.value[bladeId] = query;
21
+ };
22
+
23
+ const closeSearch = (bladeId: string) => {
24
+ isSearchVisible.value[bladeId] = false;
25
+ };
26
+
27
+ const state: GlobalSearchState = {
28
+ isSearchVisible,
29
+ searchQuery,
30
+ toggleSearch,
31
+ setSearchQuery,
32
+ closeSearch,
33
+ };
34
+
35
+ return state;
36
+ }
@@ -7,5 +7,3 @@ export * from "./menu-service";
7
7
  export * from "./settings-menu-service";
8
8
  export * from "./toolbar-service";
9
9
  export * from "./widget-service";
10
- // blade-selection-service and ai-agent-service are now part of the ai-agent plugin
11
- // export * from "./core/plugins/ai-agent";
@@ -1,14 +1,14 @@
1
1
  import { Component, ref, type Ref } from "vue";
2
2
  import * as _ from "lodash-es";
3
- import type { MenuItem } from "../types";
3
+ import type { MenuItem, MenuItemBadgeConfig } from "../types";
4
4
  import { createUnrefFn, useArrayFind } from "@vueuse/core";
5
- import { createLogger } from "../utilities";
6
-
7
- const logger = createLogger("menu-service");
8
5
 
9
6
  // Global state for pre-registering menu items
10
7
  const preregisteredMenuItems: Ref<MenuItem[]> = ref([]);
11
8
 
9
+ // Badge registry - key is routeId (blade name) or groupId
10
+ const menuBadges: Ref<Map<string, MenuItemBadgeConfig>> = ref(new Map());
11
+
12
12
  /**
13
13
  * Registers a menu item before the service is initialized
14
14
  */
@@ -16,10 +16,45 @@ export function addMenuItem(item: MenuItem): void {
16
16
  preregisteredMenuItems.value.push(item);
17
17
  }
18
18
 
19
+ /**
20
+ * Sets a badge for a menu item by its routeId (blade name) or groupId.
21
+ * Can be called at any time, even after menu registration.
22
+ * @param id - routeId for menu items, groupId for groups
23
+ * @param badge - Badge configuration (number, ref, function, or full config)
24
+ */
25
+ export function setMenuBadge(id: string, badge: MenuItemBadgeConfig): void {
26
+ menuBadges.value.set(id, badge);
27
+ }
28
+
29
+ /**
30
+ * Gets the badge for a menu item by routeId or groupId.
31
+ * @param id - routeId for menu items, groupId for groups
32
+ */
33
+ export function getMenuBadge(id: string): MenuItemBadgeConfig | undefined {
34
+ return menuBadges.value.get(id);
35
+ }
36
+
37
+ /**
38
+ * Removes a badge from a menu item.
39
+ * @param id - routeId for menu items, groupId for groups
40
+ */
41
+ export function removeMenuBadge(id: string): void {
42
+ menuBadges.value.delete(id);
43
+ }
44
+
45
+ /**
46
+ * Returns the reactive badge registry map.
47
+ * Used internally by menu components to reactively watch for badge changes.
48
+ */
49
+ export function getMenuBadges(): Ref<Map<string, MenuItemBadgeConfig>> {
50
+ return menuBadges;
51
+ }
52
+
19
53
  export interface MenuService {
20
54
  addMenuItem: (item: MenuItem) => void;
21
55
  menuItems: Ref<MenuItem[]>;
22
56
  removeMenuItem: (item: MenuItem) => void;
57
+ menuBadges: Ref<Map<string, MenuItemBadgeConfig>>;
23
58
  }
24
59
 
25
60
  // Default priority values
@@ -215,7 +250,7 @@ export function createMenuService(): MenuService {
215
250
  try {
216
251
  addMenuItem(item);
217
252
  } catch (e) {
218
- logger.warn(`Failed to register preregistered menu item ${item.id || item.title}:`, e);
253
+ console.warn(`Failed to register preregistered menu item ${item.id || item.title}:`, e);
219
254
  }
220
255
  });
221
256
 
@@ -223,5 +258,6 @@ export function createMenuService(): MenuService {
223
258
  addMenuItem,
224
259
  menuItems,
225
260
  removeMenuItem,
261
+ menuBadges,
226
262
  };
227
263
  }
@@ -1,7 +1,4 @@
1
1
  import { ref, computed, Component, ComputedRef } from "vue";
2
- import { createLogger } from "../utilities";
3
-
4
- const logger = createLogger("settings-menu-service");
5
2
 
6
3
  export interface ISettingsMenuItem {
7
4
  id: string;
@@ -66,7 +63,7 @@ export function createSettingsMenuService(): ISettingsMenuService {
66
63
  try {
67
64
  register(item);
68
65
  } catch (e) {
69
- logger.warn(`Failed to register pre-added settings menu item ${item.id}:`, e);
66
+ console.warn(`Failed to register pre-added settings menu item ${item.id}:`, e);
70
67
  }
71
68
  });
72
69
 
@@ -1,4 +1,4 @@
1
- import { reactive } from "vue";
1
+ import { reactive, ref, ComputedRef, Ref } from "vue";
2
2
  import { IBladeToolbar } from "../types";
3
3
 
4
4
  export interface IToolbarItem extends IBladeToolbar {
@@ -103,22 +103,7 @@ export function createToolbarService(): IToolbarService {
103
103
 
104
104
  const getToolbarItems = (bladeId: string): IToolbarItem[] => {
105
105
  const normalizedBladeId = bladeId ? bladeId.toLowerCase() : "";
106
- const bladeItems = toolbarRegistry[normalizedBladeId] || [];
107
-
108
- // Include global toolbar items registered with "*" (wildcard)
109
- const globalItems = toolbarRegistry["*"] || [];
110
-
111
- // Merge items, avoiding duplicates by id
112
- const result = [...bladeItems];
113
- const existingIds = new Set(result.map((item) => item.id));
114
-
115
- globalItems.forEach((item) => {
116
- if (!existingIds.has(item.id)) {
117
- result.push(item);
118
- }
119
- });
120
-
121
- return result;
106
+ return toolbarRegistry[normalizedBladeId] || [];
122
107
  };
123
108
 
124
109
  const clearBladeToolbarItems = (bladeId: string): void => {
@@ -150,7 +135,7 @@ export function createToolbarService(): IToolbarService {
150
135
  try {
151
136
  registerToolbarItem(item.toolbarItem, item.bladeId);
152
137
  } catch (e) {
153
- console.warn(`[toolbar-service] Failed to register preregistered toolbar item ${item.toolbarItem.id}:`, e);
138
+ console.warn(`Failed to register preregistered toolbar item ${item.toolbarItem.id}:`, e);
154
139
  }
155
140
  });
156
141
 
@@ -1,9 +1,6 @@
1
1
  import { Component, reactive, ref, ComponentInternalInstance, ComputedRef, Ref, markRaw, Raw } from "vue";
2
2
  import { IBladeInstance } from "../../shared/components/blade-navigation/types";
3
3
  import { cloneDeep } from "lodash-es";
4
- import { createLogger } from "../utilities";
5
-
6
- const logger = createLogger("widget-service");
7
4
 
8
5
  export type WidgetEventHandler = (...args: unknown[]) => void;
9
6
 
@@ -154,7 +151,7 @@ export function createWidgetService(): IWidgetService {
154
151
  const customProps = widget.config.propsResolver(bladeData);
155
152
  resolvedProps = { ...widget.props, ...customProps };
156
153
  } catch (error) {
157
- logger.error(`Error in propsResolver for widget '${widget.id}':`, error);
154
+ console.error(`Error in propsResolver for widget '${widget.id}':`, error);
158
155
  // Fallback to existing props if resolver fails
159
156
  resolvedProps = { ...widget.props };
160
157
  }
@@ -171,7 +168,7 @@ export function createWidgetService(): IWidgetService {
171
168
  if (bladeData[bladeKey] !== undefined) {
172
169
  resolvedProps[key] = bladeData[bladeKey];
173
170
  } else {
174
- logger.warn(`Required data '${key}' not found in blade data for widget '${widget.id}'`);
171
+ console.warn(`Required data '${key}' not found in blade data for widget '${widget.id}'`);
175
172
  }
176
173
  });
177
174
 
@@ -275,7 +272,7 @@ export function createWidgetService(): IWidgetService {
275
272
  if (functionNameToCall && typeof activeExposed[functionNameToCall] === "function") {
276
273
  activeExposed[functionNameToCall]();
277
274
  } else {
278
- logger.warn(`Widget '${widgetId}' does not have an exposed function named '${functionNameToCall}'.`);
275
+ console.warn(`Widget '${widgetId}' does not have an exposed function named '${functionNameToCall}'.`);
279
276
  }
280
277
  }
281
278
  };
@@ -296,7 +293,7 @@ export function createWidgetService(): IWidgetService {
296
293
  try {
297
294
  registerWidget(widget.widget, widget.bladeId);
298
295
  } catch (e) {
299
- logger.warn(`Failed to register preregistered widget ${widget.widget.id}:`, e);
296
+ console.warn(`Failed to register preregistered widget ${widget.widget.id}:`, e);
300
297
  }
301
298
  });
302
299