@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.
- package/core/composables/index.ts +0 -2
- package/core/composables/useAssets/index.ts +28 -72
- package/core/composables/useAsync/index.ts +1 -4
- package/core/composables/useBladeRegistry/index.ts +5 -6
- package/core/composables/useBreadcrumbs/index.ts +1 -4
- package/core/composables/useErrorHandler/index.ts +1 -4
- package/core/composables/useFunctions/debounce.ts +1 -0
- package/core/composables/useFunctions/delay.ts +1 -0
- package/core/composables/useFunctions/index.ts +1 -0
- package/core/composables/useFunctions/once.ts +1 -0
- package/core/composables/useFunctions/sleep.ts +1 -0
- package/core/composables/useFunctions/throttle.ts +1 -0
- package/core/composables/useGlobalSearch/index.ts +3 -3
- package/core/composables/useMenuService/index.ts +12 -7
- package/core/composables/useNotifications/index.ts +2 -5
- package/core/composables/useTheme/index.ts +1 -4
- package/core/composables/useUser/index.ts +20 -189
- package/core/composables/useWidgets/index.ts +2 -5
- package/core/constants/index.ts +0 -2
- package/core/interceptors/index.ts +2 -5
- package/core/plugins/modularity/index.ts +6 -8
- package/core/plugins/modularity/loader.ts +33 -36
- package/core/plugins/signalR/index.ts +3 -6
- package/core/services/app-bar-menu-service.ts +1 -4
- package/core/services/dashboard-service.ts +1 -4
- package/core/services/global-search-service.ts +36 -0
- package/core/services/index.ts +0 -2
- package/core/services/menu-service.ts +41 -5
- package/core/services/settings-menu-service.ts +1 -4
- package/core/services/toolbar-service.ts +3 -18
- package/core/services/widget-service.ts +4 -7
- package/core/types/index.ts +47 -3
- package/core/utilities/index.ts +0 -2
- package/dist/core/composables/useAssets/index.d.ts.map +1 -1
- package/dist/core/composables/useAsync/index.d.ts.map +1 -1
- package/dist/core/composables/useBladeRegistry/index.d.ts.map +1 -1
- package/dist/core/composables/useBreadcrumbs/index.d.ts.map +1 -1
- package/dist/core/composables/useErrorHandler/index.d.ts.map +1 -1
- package/dist/core/composables/useFunctions/debounce.d.ts.map +1 -1
- package/dist/core/composables/useFunctions/delay.d.ts.map +1 -1
- package/dist/core/composables/useFunctions/index.d.ts.map +1 -1
- package/dist/core/composables/useFunctions/once.d.ts.map +1 -1
- package/dist/core/composables/useFunctions/sleep.d.ts.map +1 -1
- package/dist/core/composables/useFunctions/throttle.d.ts.map +1 -1
- package/dist/core/composables/useGlobalSearch/index.d.ts.map +1 -1
- package/dist/core/composables/useMenuService/index.d.ts +2 -2
- package/dist/core/composables/useMenuService/index.d.ts.map +1 -1
- package/dist/core/composables/useNotifications/index.d.ts.map +1 -1
- package/dist/core/composables/useTheme/index.d.ts.map +1 -1
- package/dist/core/composables/useUser/index.d.ts +0 -8
- package/dist/core/composables/useUser/index.d.ts.map +1 -1
- package/dist/core/composables/useWidgets/index.d.ts.map +1 -1
- package/dist/core/constants/index.d.ts +0 -2
- package/dist/core/constants/index.d.ts.map +1 -1
- package/dist/core/interceptors/index.d.ts.map +1 -1
- package/dist/core/plugins/modularity/index.d.ts.map +1 -1
- package/dist/core/plugins/modularity/loader.d.ts.map +1 -1
- package/dist/core/plugins/signalR/index.d.ts.map +1 -1
- package/dist/core/services/app-bar-menu-service.d.ts.map +1 -1
- package/dist/core/services/dashboard-service.d.ts.map +1 -1
- package/dist/core/services/global-search-service.d.ts +10 -0
- package/dist/core/services/global-search-service.d.ts.map +1 -0
- package/dist/core/services/menu-service.d.ts +24 -1
- package/dist/core/services/menu-service.d.ts.map +1 -1
- package/dist/core/services/settings-menu-service.d.ts.map +1 -1
- package/dist/core/services/toolbar-service.d.ts.map +1 -1
- package/dist/core/services/widget-service.d.ts.map +1 -1
- package/dist/core/types/index.d.ts +34 -0
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/core/utilities/index.d.ts +0 -2
- package/dist/core/utilities/index.d.ts.map +1 -1
- package/dist/framework.js +8664 -9720
- package/dist/index.css +1 -1
- package/dist/index.d.ts +0 -19
- package/dist/index.d.ts.map +1 -1
- package/dist/injection-keys.d.ts +6 -21
- package/dist/injection-keys.d.ts.map +1 -1
- package/dist/shared/components/app-switcher/composables/useAppSwitcher/index.d.ts.map +1 -1
- package/dist/shared/components/blade-navigation/components/vc-blade-navigation/vc-blade-navigation.vue.d.ts.map +1 -1
- package/dist/shared/components/blade-navigation/composables/useBladeNavigation/index.d.ts.map +1 -1
- package/dist/shared/components/blade-navigation/composables/useBladeNavigation/internal/bladeActions.d.ts.map +1 -1
- package/dist/shared/components/blade-navigation/composables/useBladeNavigation/internal/bladeRouteResolver.d.ts.map +1 -1
- package/dist/shared/components/blade-navigation/composables/useBladeNavigation/internal/routerUtils.d.ts.map +1 -1
- package/dist/shared/components/draggable-dashboard/composables/useDashboardDragAndDrop.d.ts.map +1 -1
- package/dist/shared/components/draggable-dashboard/composables/useLayoutPersistence.d.ts.map +1 -1
- package/dist/shared/components/notifications/composables/useContainer/index.d.ts.map +1 -1
- package/dist/shared/components/notifications/composables/useInstance/index.d.ts.map +1 -1
- package/dist/shared/components/notifications/core/notification.d.ts.map +1 -1
- package/dist/shared/components/popup-handler/components/vc-popup-container/vc-popup-container.vue.d.ts.map +1 -1
- package/dist/shared/components/sign-in/useExternalProvider.d.ts.map +1 -1
- package/dist/shared/composables/useExternalWidgets.d.ts.map +1 -1
- package/dist/shared/composables/useMenuExpanded.d.ts.map +1 -1
- package/dist/shared/composables/useTableSelection.d.ts.map +1 -1
- package/dist/shared/composables/useTableSort.d.ts.map +1 -1
- package/dist/shared/modules/assets-manager/components/assets-manager/assets-manager.vue.d.ts.map +1 -1
- package/dist/shared/pages/LoginPage/components/login/Login.vue.d.ts.map +1 -1
- package/dist/shared/utilities/colorUtils.d.ts +6 -0
- package/dist/shared/utilities/colorUtils.d.ts.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/ui/components/atoms/vc-badge/vc-badge.vue.d.ts +3 -0
- package/dist/ui/components/atoms/vc-badge/vc-badge.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-banner/vc-banner.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-button/vc-button.vue.d.ts +15 -0
- package/dist/ui/components/atoms/vc-button/vc-button.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-container/vc-container.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-icon/vc-icon.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-icon/vc-lucide-icon.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-image/vc-image.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-link/vc-link.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-loading/vc-loading.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-status/vc-status.vue.d.ts +5 -0
- package/dist/ui/components/atoms/vc-status/vc-status.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-tooltip/vc-tooltip.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-video/vc-video.vue.d.ts.map +1 -1
- package/dist/ui/components/atoms/vc-widget/vc-widget.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-input/vc-input.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-pagination/vc-pagination.vue.d.ts.map +1 -1
- package/dist/ui/components/molecules/vc-toast/vc-toast.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/_internal/useBadge.d.ts +18 -0
- package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/_internal/useBadge.d.ts.map +1 -0
- 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
- package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/_internal/vc-app-menu-link.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/vc-app-menu-item.vue.d.ts +4 -1
- package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/vc-app-menu-item.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/_internal/vc-app-menu/vc-app-menu.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-app/vc-app.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/_internal/vc-blade-toolbar-buttons/_internal/vc-blade-toolbar-button/vc-blade-toolbar-button.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-blade/vc-blade.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-login-form/vc-login-form.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/_internal/vc-table-cell/vc-table-cell.vue.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableActions.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableColumnResize.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableRowReorder.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableSelection.d.ts.map +1 -1
- package/dist/ui/components/organisms/vc-table/composables/useTableState.d.ts.map +1 -1
- package/dist/{vendor-lodash-es-SgOIjJF8.js → vendor-lodash-es-BqkGj3Jl.js} +0 -2
- package/package.json +5 -5
- package/shared/components/app-switcher/composables/useAppSwitcher/index.ts +1 -4
- package/shared/components/blade-navigation/components/vc-blade-navigation/vc-blade-navigation.vue +4 -67
- package/shared/components/blade-navigation/composables/useBladeNavigation/index.ts +10 -13
- package/shared/components/blade-navigation/composables/useBladeNavigation/internal/bladeActions.ts +4 -7
- package/shared/components/blade-navigation/composables/useBladeNavigation/internal/bladeRouteResolver.ts +1 -4
- package/shared/components/blade-navigation/composables/useBladeNavigation/internal/routerUtils.ts +1 -4
- package/shared/components/change-password/change-password.vue +1 -1
- package/shared/components/draggable-dashboard/composables/useDashboardDragAndDrop.ts +5 -14
- package/shared/components/draggable-dashboard/composables/useLayoutPersistence.ts +2 -5
- package/shared/components/index.ts +0 -2
- package/shared/components/notifications/composables/useContainer/index.ts +6 -8
- package/shared/components/notifications/composables/useInstance/index.ts +1 -4
- package/shared/components/notifications/core/notification.ts +7 -10
- package/shared/components/popup-handler/components/vc-popup-container/vc-popup-container.vue +1 -20
- package/shared/components/sign-in/useExternalProvider.ts +4 -6
- package/shared/composables/useExternalWidgets.ts +4 -7
- package/shared/composables/useMenuExpanded.ts +1 -15
- package/shared/composables/useTableSelection.ts +0 -6
- package/shared/composables/useTableSort.ts +4 -4
- package/shared/modules/assets-manager/components/assets-manager/assets-manager.vue +3 -6
- package/shared/pages/LoginPage/components/login/Login.vue +1 -4
- package/shared/utilities/colorUtils.ts +12 -5
- package/ui/components/atoms/vc-badge/vc-badge.vue +59 -0
- package/ui/components/atoms/vc-banner/vc-banner.vue +1 -4
- package/ui/components/atoms/vc-button/vc-button.vue +25 -2
- package/ui/components/atoms/vc-container/vc-container.vue +3 -12
- package/ui/components/atoms/vc-icon/vc-icon.vue +10 -0
- package/ui/components/atoms/vc-icon/vc-lucide-icon.vue +2 -5
- package/ui/components/atoms/vc-image/vc-image.vue +1 -4
- package/ui/components/atoms/vc-link/vc-link.vue +54 -59
- package/ui/components/atoms/vc-loading/vc-loading.vue +0 -4
- package/ui/components/atoms/vc-status/vc-status.vue +5 -0
- package/ui/components/atoms/vc-status-icon/vc-status-icon.vue +4 -4
- package/ui/components/atoms/vc-tooltip/vc-tooltip.vue +1 -8
- package/ui/components/atoms/vc-video/vc-video.vue +2 -4
- package/ui/components/atoms/vc-widget/vc-widget.vue +1 -4
- package/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.vue +2 -7
- package/ui/components/molecules/vc-input/vc-input.vue +1 -0
- package/ui/components/molecules/vc-pagination/vc-pagination.vue +1 -6
- package/ui/components/molecules/vc-rating/vc-rating.vue +1 -1
- package/ui/components/molecules/vc-textarea/vc-textarea.vue +1 -1
- package/ui/components/molecules/vc-toast/vc-toast.vue +1 -11
- package/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/_internal/useBadge.ts +80 -0
- package/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/_internal/vc-app-menu-link.vue +53 -10
- package/ui/components/organisms/vc-app/_internal/vc-app-menu/_internal/vc-app-menu-item/vc-app-menu-item.vue +10 -1
- package/ui/components/organisms/vc-app/_internal/vc-app-menu/vc-app-menu.vue +3 -0
- package/ui/components/organisms/vc-app/vc-app.vue +3 -22
- 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
- package/ui/components/organisms/vc-blade/_internal/vc-blade-toolbar/vc-blade-toolbar.vue +14 -14
- package/ui/components/organisms/vc-blade/vc-blade.vue +1 -3
- package/ui/components/organisms/vc-login-form/vc-login-form.vue +1 -3
- package/ui/components/organisms/vc-table/_internal/vc-table-cell/vc-table-cell.vue +2 -34
- package/ui/components/organisms/vc-table/composables/useTableActions.ts +10 -7
- package/ui/components/organisms/vc-table/composables/useTableColumnResize.ts +1 -4
- package/ui/components/organisms/vc-table/composables/useTableRowReorder.ts +2 -5
- package/ui/components/organisms/vc-table/composables/useTableSelection.ts +18 -26
- package/ui/components/organisms/vc-table/composables/useTableState.ts +1 -4
- package/core/constants/defaults.ts +0 -76
- package/core/constants/ui.ts +0 -68
- package/core/plugins/ai-agent/README.md +0 -336
- package/core/plugins/ai-agent/components/VcAiAgentPanel.vue +0 -125
- package/core/plugins/ai-agent/components/_internal/VcAiAgentHeader.vue +0 -182
- package/core/plugins/ai-agent/components/_internal/VcAiAgentIframe.vue +0 -77
- package/core/plugins/ai-agent/components/index.ts +0 -1
- package/core/plugins/ai-agent/composables/index.ts +0 -4
- package/core/plugins/ai-agent/composables/useAiAgent.ts +0 -231
- package/core/plugins/ai-agent/composables/useAiAgentContext.ts +0 -280
- package/core/plugins/ai-agent/constants.ts +0 -89
- package/core/plugins/ai-agent/index.ts +0 -91
- package/core/plugins/ai-agent/services/ai-agent-service.ts +0 -598
- package/core/plugins/ai-agent/types.ts +0 -310
- package/core/types/services.ts +0 -194
- package/core/utilities/errorTypes.ts +0 -126
- package/core/utilities/logger.ts +0 -120
- package/dist/core/constants/defaults.d.ts +0 -63
- package/dist/core/constants/defaults.d.ts.map +0 -1
- package/dist/core/constants/ui.d.ts +0 -50
- package/dist/core/constants/ui.d.ts.map +0 -1
- package/dist/core/plugins/ai-agent/components/VcAiAgentPanel.vue.d.ts +0 -3
- package/dist/core/plugins/ai-agent/components/VcAiAgentPanel.vue.d.ts.map +0 -1
- package/dist/core/plugins/ai-agent/components/_internal/VcAiAgentHeader.vue.d.ts +0 -15
- package/dist/core/plugins/ai-agent/components/_internal/VcAiAgentHeader.vue.d.ts.map +0 -1
- package/dist/core/plugins/ai-agent/components/_internal/VcAiAgentIframe.vue.d.ts +0 -10
- package/dist/core/plugins/ai-agent/components/_internal/VcAiAgentIframe.vue.d.ts.map +0 -1
- package/dist/core/plugins/ai-agent/components/index.d.ts +0 -2
- package/dist/core/plugins/ai-agent/components/index.d.ts.map +0 -1
- package/dist/core/plugins/ai-agent/composables/index.d.ts +0 -4
- package/dist/core/plugins/ai-agent/composables/index.d.ts.map +0 -1
- package/dist/core/plugins/ai-agent/composables/useAiAgent.d.ts +0 -95
- package/dist/core/plugins/ai-agent/composables/useAiAgent.d.ts.map +0 -1
- package/dist/core/plugins/ai-agent/composables/useAiAgentContext.d.ts +0 -55
- package/dist/core/plugins/ai-agent/composables/useAiAgentContext.d.ts.map +0 -1
- package/dist/core/plugins/ai-agent/constants.d.ts +0 -47
- package/dist/core/plugins/ai-agent/constants.d.ts.map +0 -1
- package/dist/core/plugins/ai-agent/index.d.ts +0 -48
- package/dist/core/plugins/ai-agent/index.d.ts.map +0 -1
- package/dist/core/plugins/ai-agent/services/ai-agent-service.d.ts +0 -45
- package/dist/core/plugins/ai-agent/services/ai-agent-service.d.ts.map +0 -1
- package/dist/core/plugins/ai-agent/types.d.ts +0 -258
- package/dist/core/plugins/ai-agent/types.d.ts.map +0 -1
- package/dist/core/types/services.d.ts +0 -169
- package/dist/core/types/services.d.ts.map +0 -1
- package/dist/core/utilities/errorTypes.d.ts +0 -61
- package/dist/core/utilities/errorTypes.d.ts.map +0 -1
- package/dist/core/utilities/logger.d.ts +0 -259
- package/dist/core/utilities/logger.d.ts.map +0 -1
package/shared/components/blade-navigation/composables/useBladeNavigation/internal/bladeActions.ts
CHANGED
|
@@ -8,9 +8,6 @@ import type { notification as NotificationServiceType } from "../../../../notifi
|
|
|
8
8
|
import type { BladeVNode, IBladeEvent, BladeInstanceConstructor } from "../../../types";
|
|
9
9
|
import type { _createBladeStateManagement } from "./bladeState";
|
|
10
10
|
import type { _createRouterUtils } from "./routerUtils";
|
|
11
|
-
import { createLogger } from "../../../../../../core/utilities";
|
|
12
|
-
|
|
13
|
-
const logger = createLogger("blade-actions");
|
|
14
11
|
|
|
15
12
|
// --- Blade Actions Module ---
|
|
16
13
|
export function _createBladeActions(
|
|
@@ -71,7 +68,7 @@ export function _createBladeActions(
|
|
|
71
68
|
}
|
|
72
69
|
}
|
|
73
70
|
} catch (e) {
|
|
74
|
-
|
|
71
|
+
console.error(e);
|
|
75
72
|
const bladeNameForError =
|
|
76
73
|
bladeComponent?.type?.name ||
|
|
77
74
|
(typeof bladeInput === "object" && "name" in bladeInput ? bladeInput.name : "Unknown");
|
|
@@ -95,11 +92,11 @@ export function _createBladeActions(
|
|
|
95
92
|
const instanceComponent = sourceBladeInstance || bladeState.activeWorkspace.value;
|
|
96
93
|
|
|
97
94
|
if (!instanceComponent) {
|
|
98
|
-
|
|
95
|
+
console.error("No active workspace or source blade instance provided to open a blade into.");
|
|
99
96
|
throw new Error("No workspace or source blade context to open blade.");
|
|
100
97
|
}
|
|
101
98
|
if (!isVNode(instanceComponent)) {
|
|
102
|
-
|
|
99
|
+
console.error("Source blade instance or active workspace is not a valid VNode.", instanceComponent);
|
|
103
100
|
throw new Error("Internal error: Invalid instanceComponent for opening blade.");
|
|
104
101
|
}
|
|
105
102
|
|
|
@@ -143,7 +140,7 @@ export function _createBladeActions(
|
|
|
143
140
|
}
|
|
144
141
|
}
|
|
145
142
|
} catch (e) {
|
|
146
|
-
|
|
143
|
+
console.error("Error in openBlade:", e);
|
|
147
144
|
}
|
|
148
145
|
}
|
|
149
146
|
|
|
@@ -6,9 +6,6 @@ import type { BladeInstanceConstructor, BladeVNode } from "../../../types";
|
|
|
6
6
|
import type { _createBladeStateManagement } from "./bladeState";
|
|
7
7
|
import type { _createRouterUtils } from "./routerUtils";
|
|
8
8
|
import type { _createBladeActions } from "./bladeActions";
|
|
9
|
-
import { createLogger } from "../../../../../../core/utilities";
|
|
10
|
-
|
|
11
|
-
const logger = createLogger("blade-route-resolver");
|
|
12
9
|
|
|
13
10
|
/**
|
|
14
11
|
* Checks if a component is routable from URL
|
|
@@ -93,7 +90,7 @@ export function _createBladeRouteResolver(
|
|
|
93
90
|
|
|
94
91
|
return undefined;
|
|
95
92
|
} catch (error) {
|
|
96
|
-
|
|
93
|
+
console.error("Error in findBladeComponentByUrlSegment:", error instanceof Error ? error.message : String(error));
|
|
97
94
|
return undefined;
|
|
98
95
|
}
|
|
99
96
|
}
|
package/shared/components/blade-navigation/composables/useBladeNavigation/internal/routerUtils.ts
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { computed, shallowRef, Ref, markRaw, watch } from "vue";
|
|
2
2
|
import { RouteLocationNormalized, Router, LocationQuery, RouteRecordNameGeneric, RouteParamsGeneric } from "vue-router";
|
|
3
3
|
import type { BladeVNode } from "../../../types";
|
|
4
|
-
import { createLogger } from "../../../../../../core/utilities";
|
|
5
|
-
|
|
6
|
-
const logger = createLogger("blade-router-utils");
|
|
7
4
|
|
|
8
5
|
const UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;
|
|
9
6
|
|
|
@@ -146,7 +143,7 @@ export function _createRouterUtils(router: Router, route: RouteLocationNormalize
|
|
|
146
143
|
if (mainRouteAlias?.name) {
|
|
147
144
|
return { name: mainRouteAlias.name as RouteRecordNameGeneric, params: route.params as RouteParamsGeneric };
|
|
148
145
|
}
|
|
149
|
-
|
|
146
|
+
console.error("goToRoot: Main route or its alias with a name not found!");
|
|
150
147
|
return { path: "/" };
|
|
151
148
|
},
|
|
152
149
|
};
|
|
@@ -11,15 +11,6 @@ import { useGridPosition, type CellSize } from "./useGridPosition";
|
|
|
11
11
|
// Value of 80px is defined in DraggableDashboard.vue
|
|
12
12
|
const CELL_HEIGHT = 80;
|
|
13
13
|
|
|
14
|
-
/** Minimum movement threshold in pixels to start dragging */
|
|
15
|
-
const DRAG_THRESHOLD = 3;
|
|
16
|
-
/** Gap between widgets in pixels */
|
|
17
|
-
const WIDGET_GAP = 20;
|
|
18
|
-
/** Delay in ms for animation style application */
|
|
19
|
-
const ANIMATION_STYLE_DELAY = 20;
|
|
20
|
-
/** Delay in ms for state reset after drag ends */
|
|
21
|
-
const STATE_RESET_DELAY = 50;
|
|
22
|
-
|
|
23
14
|
/**
|
|
24
15
|
* Return type for the useDashboardDragAndDrop composable.
|
|
25
16
|
*/
|
|
@@ -178,7 +169,7 @@ export function useDashboardDragAndDrop(
|
|
|
178
169
|
|
|
179
170
|
if (originalWidget) {
|
|
180
171
|
const cellSize = calculateCellSize();
|
|
181
|
-
const widgetGap =
|
|
172
|
+
const widgetGap = 20; // Widget gap in pixels
|
|
182
173
|
|
|
183
174
|
// Get the current position of the clone (where the user released the mouse)
|
|
184
175
|
const cloneRect = dragClone.value.getBoundingClientRect();
|
|
@@ -224,7 +215,7 @@ export function useDashboardDragAndDrop(
|
|
|
224
215
|
setTimeout(() => {
|
|
225
216
|
originalWidget.style.transition = `transform var(--dashboard-transition-duration) var(--dashboard-transition-timing)`;
|
|
226
217
|
originalWidget.style.transform = `translate(${finalX}px, ${finalY}px)`;
|
|
227
|
-
},
|
|
218
|
+
}, 20); // Small delay for correct style application
|
|
228
219
|
} else {
|
|
229
220
|
// If the original is not found, simply remove the clone and update the data
|
|
230
221
|
removeDragClone();
|
|
@@ -259,7 +250,7 @@ export function useDashboardDragAndDrop(
|
|
|
259
250
|
isDragging.value = false;
|
|
260
251
|
draggedWidget.value = null;
|
|
261
252
|
resetPosition();
|
|
262
|
-
},
|
|
253
|
+
}, 50);
|
|
263
254
|
};
|
|
264
255
|
|
|
265
256
|
// Mouse/touch event handler with passive listeners
|
|
@@ -293,8 +284,8 @@ export function useDashboardDragAndDrop(
|
|
|
293
284
|
|
|
294
285
|
const currentCoords = getEventCoordinates(moveEvent);
|
|
295
286
|
|
|
296
|
-
// Start dragging only if the mouse has moved
|
|
297
|
-
if (hasMovedBeyondThreshold(currentCoords,
|
|
287
|
+
// Start dragging only if the mouse has moved more than 3 pixels
|
|
288
|
+
if (hasMovedBeyondThreshold(currentCoords, 3)) {
|
|
298
289
|
hasDragStarted = true;
|
|
299
290
|
isDragging.value = true;
|
|
300
291
|
draggedWidget.value = widget;
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import { useLocalStorage } from "@vueuse/core";
|
|
2
2
|
import type { DashboardWidgetPosition } from "../types";
|
|
3
|
-
import { createLogger } from "../../../../core/utilities";
|
|
4
|
-
|
|
5
|
-
const logger = createLogger("use-layout-persistence");
|
|
6
3
|
|
|
7
4
|
/**
|
|
8
5
|
* Hook for managing the saving and loading of the dashboard layout
|
|
@@ -37,7 +34,7 @@ export function useLayoutPersistence(
|
|
|
37
34
|
// Save to localStorage through the reactive variable
|
|
38
35
|
savedLayout.value = layoutData;
|
|
39
36
|
} catch (error) {
|
|
40
|
-
|
|
37
|
+
console.error("Failed to save dashboard layout to localStorage:", error);
|
|
41
38
|
}
|
|
42
39
|
};
|
|
43
40
|
|
|
@@ -64,7 +61,7 @@ export function useLayoutPersistence(
|
|
|
64
61
|
|
|
65
62
|
return true;
|
|
66
63
|
} catch (error) {
|
|
67
|
-
|
|
64
|
+
console.error("Failed to load dashboard layout from localStorage:", error);
|
|
68
65
|
return false;
|
|
69
66
|
}
|
|
70
67
|
};
|
|
@@ -16,5 +16,3 @@ export * from "./generic-dropdown";
|
|
|
16
16
|
export * from "./draggable-dashboard";
|
|
17
17
|
export * from "./dashboard-widget-card";
|
|
18
18
|
export * from "./multilanguage-selector";
|
|
19
|
-
// ai-agent-panel is now part of the ai-agent plugin
|
|
20
|
-
// export * from "./core/plugins/ai-agent";
|
|
@@ -3,9 +3,7 @@ import { NotificationOptions, NotificationPosition } from "../../types";
|
|
|
3
3
|
import { NotificationContainer } from "../../components";
|
|
4
4
|
import { useInstance } from "../useInstance";
|
|
5
5
|
import * as _ from "lodash-es";
|
|
6
|
-
import { generateId
|
|
7
|
-
|
|
8
|
-
const logger = createLogger("notification-container");
|
|
6
|
+
import { generateId } from "../../../../../core/utilities";
|
|
9
7
|
|
|
10
8
|
export interface PendingNotification {
|
|
11
9
|
notificationId: string | number;
|
|
@@ -306,7 +304,7 @@ export function useContainer(): IUseContainer {
|
|
|
306
304
|
|
|
307
305
|
// If we found the notification and container to update
|
|
308
306
|
if (notification && containerToUpdate) {
|
|
309
|
-
|
|
307
|
+
console.log(`Updating notification ${option.notificationId} in position ${containerPosition}`);
|
|
310
308
|
|
|
311
309
|
// If the position changes, move the notification between containers
|
|
312
310
|
if (option.position && option.position !== containerPosition) {
|
|
@@ -327,16 +325,16 @@ export function useContainer(): IUseContainer {
|
|
|
327
325
|
// Check if a container already exists for the target position
|
|
328
326
|
if (!getInstanceByPosition(targetPosition)) {
|
|
329
327
|
// If no container exists for the target position, create a new one
|
|
330
|
-
|
|
328
|
+
console.log(`Creating new container for position ${targetPosition}`);
|
|
331
329
|
appendInstance(updatedNotification);
|
|
332
330
|
} else {
|
|
333
331
|
// If a container exists for the target position, add the updated notification
|
|
334
|
-
|
|
332
|
+
console.log(`Adding to existing container for position ${targetPosition}`);
|
|
335
333
|
notificationContainers[targetPosition].value.push(updatedNotification);
|
|
336
334
|
}
|
|
337
335
|
} else {
|
|
338
336
|
// Standard update of notification properties
|
|
339
|
-
|
|
337
|
+
console.log(`Standard update of notification properties`);
|
|
340
338
|
|
|
341
339
|
// Apply all new properties from option to notification
|
|
342
340
|
Object.keys(option).forEach((key) => {
|
|
@@ -355,7 +353,7 @@ export function useContainer(): IUseContainer {
|
|
|
355
353
|
|
|
356
354
|
return true;
|
|
357
355
|
} else {
|
|
358
|
-
|
|
356
|
+
console.warn(`Notification with ID ${option.notificationId} not found for update`);
|
|
359
357
|
return false;
|
|
360
358
|
}
|
|
361
359
|
}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import { App, Ref, ref } from "vue";
|
|
2
2
|
import { NotificationPosition } from "../../types";
|
|
3
|
-
import { createLogger } from "../../../../../core/utilities";
|
|
4
|
-
|
|
5
|
-
const logger = createLogger("notification-instance");
|
|
6
3
|
|
|
7
4
|
interface IUseInstance {
|
|
8
5
|
saveInstance(app: App<Element>, id: string, position: NotificationPosition): void;
|
|
@@ -54,7 +51,7 @@ export function useInstance(): IUseInstance {
|
|
|
54
51
|
}
|
|
55
52
|
}
|
|
56
53
|
} catch (error) {
|
|
57
|
-
|
|
54
|
+
console.error(error);
|
|
58
55
|
}
|
|
59
56
|
}
|
|
60
57
|
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { mergeProps } from "vue";
|
|
2
2
|
import { Content, InternalNotificationOptions, NotificationOptions, NotificationPosition } from "../types";
|
|
3
3
|
import { useContainer } from "../composables/useContainer";
|
|
4
|
-
import { createLogger } from "../../../../core/utilities";
|
|
5
|
-
|
|
6
|
-
const logger = createLogger("notification");
|
|
7
4
|
|
|
8
5
|
const {
|
|
9
6
|
defaultOptions,
|
|
@@ -106,7 +103,7 @@ notification.remove = (notificationId?: number | string) => {
|
|
|
106
103
|
notification.update = (notificationId: string | number, options: NotificationOptions) => {
|
|
107
104
|
// Check if notification exists
|
|
108
105
|
if (!hasNotification(notificationId)) {
|
|
109
|
-
|
|
106
|
+
console.warn(`Cannot update: notification with ID ${notificationId} not found`);
|
|
110
107
|
return notificationId;
|
|
111
108
|
}
|
|
112
109
|
|
|
@@ -198,12 +195,12 @@ notification.clearPosition = (position: NotificationPosition) => {
|
|
|
198
195
|
notification.debug = () => {
|
|
199
196
|
// Default settings information
|
|
200
197
|
Object.entries(defaultOptions).forEach(([key, value]) => {
|
|
201
|
-
|
|
198
|
+
console.log(`Default option ${key}: `, value);
|
|
202
199
|
});
|
|
203
200
|
|
|
204
201
|
// Available actions
|
|
205
202
|
Object.entries(actions).forEach(([key]) => {
|
|
206
|
-
|
|
203
|
+
console.log(`Available action: ${key}`);
|
|
207
204
|
});
|
|
208
205
|
|
|
209
206
|
// Collect statistics on notifications in different positions
|
|
@@ -234,14 +231,14 @@ notification.debug = () => {
|
|
|
234
231
|
|
|
235
232
|
// Display group information
|
|
236
233
|
Object.entries(groupedNotifications).forEach(([position, items]) => {
|
|
237
|
-
|
|
238
|
-
items.forEach((item) =>
|
|
234
|
+
console.log(`Position ${position}: ${items.length} notifications`);
|
|
235
|
+
items.forEach((item) => console.log(` - ${item.id} (${item.type}): ${item.content}`));
|
|
239
236
|
});
|
|
240
237
|
|
|
241
238
|
// Collect statistics on pending notifications
|
|
242
|
-
|
|
239
|
+
console.log(`Pending notifications: ${pending.items.length}`);
|
|
243
240
|
pending.items.forEach((item) => {
|
|
244
|
-
|
|
241
|
+
console.log(` - ${item.notificationId} (position: ${item.position})`);
|
|
245
242
|
});
|
|
246
243
|
|
|
247
244
|
return {
|
package/shared/components/popup-handler/components/vc-popup-container/vc-popup-container.vue
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
<div
|
|
15
15
|
v-if="typeof slot === 'string'"
|
|
16
16
|
class="tw-h-full tw-w-full"
|
|
17
|
-
v-html="
|
|
17
|
+
v-html="slot"
|
|
18
18
|
></div>
|
|
19
19
|
<component
|
|
20
20
|
:is="slot"
|
|
@@ -25,25 +25,6 @@
|
|
|
25
25
|
</template>
|
|
26
26
|
|
|
27
27
|
<script setup lang="ts">
|
|
28
|
-
// eslint-disable-next-line import/no-named-as-default
|
|
29
|
-
import DOMPurify from "dompurify";
|
|
30
28
|
import { getPopupPlugin } from "./../../utils";
|
|
31
|
-
|
|
32
29
|
const popupPlugin = getPopupPlugin();
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Sanitize HTML content to prevent XSS attacks
|
|
36
|
-
*/
|
|
37
|
-
function sanitizeHtml(html: string): string {
|
|
38
|
-
return DOMPurify.sanitize(html, {
|
|
39
|
-
ALLOWED_TAGS: [
|
|
40
|
-
"p", "br", "strong", "em", "u", "s", "h1", "h2", "h3", "h4", "h5", "h6",
|
|
41
|
-
"ul", "ol", "li", "blockquote", "pre", "code", "a", "img", "table",
|
|
42
|
-
"thead", "tbody", "tr", "th", "td", "hr", "div", "span",
|
|
43
|
-
],
|
|
44
|
-
ALLOWED_ATTR: ["href", "src", "alt", "title", "class", "id", "colspan", "rowspan", "align", "valign"],
|
|
45
|
-
FORBID_TAGS: ["script", "object", "embed", "form", "input"],
|
|
46
|
-
FORBID_ATTR: ["onerror", "onload", "onclick", "onmouseover", "onfocus", "onblur", "style"],
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
30
|
</script>
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { useLocalStorage } from "@vueuse/core";
|
|
2
2
|
import type { Ref } from "vue";
|
|
3
3
|
import { ExternalSignInClient, ExternalSignInProviderInfo } from "../../../core/api/platform";
|
|
4
|
-
import { createLogger } from "../../../core/utilities";
|
|
5
|
-
|
|
6
|
-
const logger = createLogger("use-external-provider");
|
|
7
4
|
|
|
8
5
|
export interface IUseExternalProvider {
|
|
9
6
|
storage: Ref<{ providerType?: string | undefined }>;
|
|
@@ -56,7 +53,7 @@ export const useExternalProvider = (): IUseExternalProvider => {
|
|
|
56
53
|
// Redirect to the constructed URL
|
|
57
54
|
window.location.assign(url);
|
|
58
55
|
} catch (e) {
|
|
59
|
-
|
|
56
|
+
console.error(e);
|
|
60
57
|
throw e;
|
|
61
58
|
}
|
|
62
59
|
}
|
|
@@ -78,7 +75,7 @@ export const useExternalProvider = (): IUseExternalProvider => {
|
|
|
78
75
|
// Redirect to the sign-out URL
|
|
79
76
|
window.location.assign(url);
|
|
80
77
|
} catch (e) {
|
|
81
|
-
|
|
78
|
+
console.error(e);
|
|
82
79
|
throw e;
|
|
83
80
|
}
|
|
84
81
|
}
|
|
@@ -88,7 +85,8 @@ export const useExternalProvider = (): IUseExternalProvider => {
|
|
|
88
85
|
try {
|
|
89
86
|
result = await externalSecurityClient.getExternalLoginProviders();
|
|
90
87
|
} catch (e) {
|
|
91
|
-
|
|
88
|
+
console.error(e);
|
|
89
|
+
// TODO check error in app!!!
|
|
92
90
|
}
|
|
93
91
|
|
|
94
92
|
return result;
|
|
@@ -2,9 +2,6 @@ import { computed, inject, onMounted, onUnmounted, watch, toValue, Ref, Computed
|
|
|
2
2
|
import { WidgetServiceKey, BladeInstance } from "../../injection-keys";
|
|
3
3
|
import { IWidget } from "../../core/services";
|
|
4
4
|
import { useBlade } from "../../core/composables";
|
|
5
|
-
import { createLogger } from "../../core/utilities";
|
|
6
|
-
|
|
7
|
-
const logger = createLogger("use-external-widgets");
|
|
8
5
|
|
|
9
6
|
export interface UseExternalWidgetsOptions {
|
|
10
7
|
bladeId: Ref<string> | string;
|
|
@@ -24,7 +21,7 @@ export function useExternalWidgets(options: UseExternalWidgetsOptions) {
|
|
|
24
21
|
|
|
25
22
|
const registerExternalWidgets = () => {
|
|
26
23
|
if (!widgetService || !blade?.value.id) {
|
|
27
|
-
|
|
24
|
+
console.warn("useExternalWidgets: Widget service or blade instance not available");
|
|
28
25
|
return;
|
|
29
26
|
}
|
|
30
27
|
|
|
@@ -51,7 +48,7 @@ export function useExternalWidgets(options: UseExternalWidgetsOptions) {
|
|
|
51
48
|
widgetService.registerWidget(newWidget, normalizedBladeId.value);
|
|
52
49
|
registeredExternalWidgetIds.add(externalWidget.id);
|
|
53
50
|
} catch (error) {
|
|
54
|
-
|
|
51
|
+
console.error(`Failed to register external widget '${externalWidget.id}':`, error);
|
|
55
52
|
}
|
|
56
53
|
});
|
|
57
54
|
};
|
|
@@ -71,7 +68,7 @@ export function useExternalWidgets(options: UseExternalWidgetsOptions) {
|
|
|
71
68
|
widget: { props: resolvedProps },
|
|
72
69
|
});
|
|
73
70
|
} catch (error) {
|
|
74
|
-
|
|
71
|
+
console.error(`Failed to update props for widget '${widget.id}':`, error);
|
|
75
72
|
}
|
|
76
73
|
}
|
|
77
74
|
});
|
|
@@ -84,7 +81,7 @@ export function useExternalWidgets(options: UseExternalWidgetsOptions) {
|
|
|
84
81
|
try {
|
|
85
82
|
widgetService.unregisterWidget(widgetId, normalizedBladeId.value);
|
|
86
83
|
} catch (error) {
|
|
87
|
-
|
|
84
|
+
console.error(`Failed to unregister external widget '${widgetId}':`, error);
|
|
88
85
|
}
|
|
89
86
|
});
|
|
90
87
|
registeredExternalWidgetIds.clear();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useLocalStorage } from "@vueuse/core";
|
|
2
|
-
import { ref
|
|
2
|
+
import { ref } from "vue";
|
|
3
3
|
|
|
4
4
|
const STORAGE_KEY_PREFIX = "VC_APP_MENU_EXPANDED";
|
|
5
5
|
const HOVER_DELAY = 200;
|
|
@@ -42,20 +42,6 @@ export const useMenuExpanded = () => {
|
|
|
42
42
|
}
|
|
43
43
|
};
|
|
44
44
|
|
|
45
|
-
/**
|
|
46
|
-
* Cleanup timeout when the effect scope is disposed
|
|
47
|
-
* This prevents memory leaks when component using this composable is unmounted
|
|
48
|
-
*/
|
|
49
|
-
const cleanup = () => {
|
|
50
|
-
if (expandTimeout) {
|
|
51
|
-
clearTimeout(expandTimeout);
|
|
52
|
-
expandTimeout = null;
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
// Register cleanup function to be called when effect scope is disposed
|
|
57
|
-
onScopeDispose(cleanup);
|
|
58
|
-
|
|
59
45
|
return {
|
|
60
46
|
isExpanded,
|
|
61
47
|
toggleExpanded,
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
import { ref, computed, Ref, ComputedRef } from "vue";
|
|
2
|
-
import { createLogger } from "../../core/utilities";
|
|
3
|
-
|
|
4
|
-
const logger = createLogger("use-table-selection");
|
|
5
2
|
|
|
6
3
|
export interface UseTableSelectionOptions<T> {
|
|
7
4
|
/**
|
|
@@ -101,7 +98,6 @@ export function useTableSelection<T extends object>(
|
|
|
101
98
|
if (items.length === 0) {
|
|
102
99
|
allSelected.value = false;
|
|
103
100
|
}
|
|
104
|
-
logger.debug("Selection changed", { count: items.length });
|
|
105
101
|
};
|
|
106
102
|
|
|
107
103
|
const handleSelectAll = (selected: boolean): void => {
|
|
@@ -109,13 +105,11 @@ export function useTableSelection<T extends object>(
|
|
|
109
105
|
if (!selected) {
|
|
110
106
|
selectedItems.value = [];
|
|
111
107
|
}
|
|
112
|
-
logger.debug("Select all changed", { selected });
|
|
113
108
|
};
|
|
114
109
|
|
|
115
110
|
const resetSelection = (): void => {
|
|
116
111
|
selectedItems.value = [];
|
|
117
112
|
allSelected.value = false;
|
|
118
|
-
logger.debug("Selection reset");
|
|
119
113
|
};
|
|
120
114
|
|
|
121
115
|
const isSelected = (item: T): boolean => {
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
2
|
// framework/composables/useTableSort.ts
|
|
3
3
|
import { ref, computed, Ref, WritableComputedRef } from "vue";
|
|
4
|
-
import { createLogger } from "../../core/utilities";
|
|
5
|
-
|
|
6
|
-
const logger = createLogger("use-table-sort");
|
|
7
4
|
|
|
8
5
|
export type ITableSortDirection = "ASC" | "DESC";
|
|
9
6
|
|
|
@@ -51,6 +48,8 @@ export function useTableSort(options?: UseTableSortOptions): UseTableSortReturn
|
|
|
51
48
|
});
|
|
52
49
|
|
|
53
50
|
const handleSortChange = (sortParam: SortParam) => {
|
|
51
|
+
console.log("[useTableSort] handleSortChange triggered. Received sortParam:", JSON.stringify(sortParam));
|
|
52
|
+
|
|
54
53
|
let newSortProperty: string | undefined = undefined;
|
|
55
54
|
let newSortDirection: ITableSortDirection | undefined = undefined;
|
|
56
55
|
|
|
@@ -80,8 +79,9 @@ export function useTableSort(options?: UseTableSortOptions): UseTableSortReturn
|
|
|
80
79
|
currentSortProperty.value = newSortProperty;
|
|
81
80
|
currentSortDirection.value = newSortDirection || "ASC"; // Default to ASC if no direction provided
|
|
82
81
|
}
|
|
82
|
+
console.log(`[useTableSort] New sort state: ${currentSortProperty.value}:${currentSortDirection.value}`);
|
|
83
83
|
} else {
|
|
84
|
-
|
|
84
|
+
console.warn("[useTableSort] Could not determine valid sort property from sortParam:", sortParam);
|
|
85
85
|
}
|
|
86
86
|
};
|
|
87
87
|
|
|
@@ -160,9 +160,6 @@ import moment from "moment";
|
|
|
160
160
|
import { isImage, getFileThumbnail, readableSize } from "./../../../../utilities/assets";
|
|
161
161
|
import * as _ from "lodash-es";
|
|
162
162
|
import { IParentCallArgs, useBladeNavigation } from "../../../../components";
|
|
163
|
-
import { createLogger } from "../../../../../core/utilities";
|
|
164
|
-
|
|
165
|
-
const logger = createLogger("assets-manager");
|
|
166
163
|
|
|
167
164
|
export interface Props {
|
|
168
165
|
expanded?: boolean;
|
|
@@ -320,7 +317,7 @@ async function onDrop(event: DragEvent) {
|
|
|
320
317
|
try {
|
|
321
318
|
await upload(fileList);
|
|
322
319
|
} catch (error) {
|
|
323
|
-
|
|
320
|
+
console.error(error);
|
|
324
321
|
throw error;
|
|
325
322
|
}
|
|
326
323
|
|
|
@@ -365,7 +362,7 @@ async function upload(files: FileList) {
|
|
|
365
362
|
try {
|
|
366
363
|
defaultAssets.value = await props.options.assetsUploadHandler(modifiedFileList.files);
|
|
367
364
|
} catch (error) {
|
|
368
|
-
|
|
365
|
+
console.error(error);
|
|
369
366
|
throw error;
|
|
370
367
|
}
|
|
371
368
|
}
|
|
@@ -379,7 +376,7 @@ async function inputUpload(event: Event) {
|
|
|
379
376
|
try {
|
|
380
377
|
await upload(fileList);
|
|
381
378
|
} catch (error) {
|
|
382
|
-
|
|
379
|
+
console.error(error);
|
|
383
380
|
throw error;
|
|
384
381
|
}
|
|
385
382
|
|
|
@@ -183,9 +183,6 @@ import { useI18n } from "vue-i18n";
|
|
|
183
183
|
import { default as ExternalProviders } from "./../../../../../shared/components/sign-in/external-providers.vue";
|
|
184
184
|
import { useExternalProvider } from "./../../../../../shared/components/sign-in/useExternalProvider";
|
|
185
185
|
import { ExtensionSlot, useExtensionSlot } from '../../../../../core/plugins/extension-points';
|
|
186
|
-
import { createLogger } from "../../../../../core/utilities";
|
|
187
|
-
|
|
188
|
-
const logger = createLogger("login-page");
|
|
189
186
|
|
|
190
187
|
type ForgotPasswordFunc = (args: { loginOrEmail: string }) => Promise<void>;
|
|
191
188
|
|
|
@@ -308,7 +305,7 @@ const togglePassRequest = () => {
|
|
|
308
305
|
}
|
|
309
306
|
};
|
|
310
307
|
|
|
311
|
-
|
|
308
|
+
console.debug("Init login-page");
|
|
312
309
|
</script>
|
|
313
310
|
|
|
314
311
|
<style lang="scss">
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
import { createLogger } from "../../core/utilities";
|
|
2
|
-
|
|
3
|
-
const logger = createLogger("color-utils");
|
|
4
|
-
|
|
5
1
|
/**
|
|
6
2
|
* Convert CSS color name to hex code using Canvas API
|
|
7
3
|
* @param colorName - CSS color name (e.g., "red", "blue", "lime")
|
|
@@ -31,11 +27,22 @@ export function convertColorNameToHex(colorName: string): string | null {
|
|
|
31
27
|
|
|
32
28
|
return ctx.fillStyle; // Returns hex format
|
|
33
29
|
} catch (error) {
|
|
34
|
-
|
|
30
|
+
console.warn("Error converting color name to hex:", error);
|
|
35
31
|
return null;
|
|
36
32
|
}
|
|
37
33
|
}
|
|
38
34
|
|
|
35
|
+
/**
|
|
36
|
+
* Convert hex code to human-readable color name
|
|
37
|
+
* @param hex - Hex color code (e.g., "#ff0000", "ff0000")
|
|
38
|
+
* @returns Always returns null - don't auto-fill color names
|
|
39
|
+
*/
|
|
40
|
+
export function convertHexToColorName(hex: string): string | null {
|
|
41
|
+
// Always return null - don't auto-fill
|
|
42
|
+
// User should enter custom color name manually
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
|
|
39
46
|
/**
|
|
40
47
|
* Check if a string is a valid hex color
|
|
41
48
|
* @param value - String to check
|