@solidxai/core-ui 0.1.12-beta.0 → 0.1.12-beta.2
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/dist/components/auth/AuthLayout.d.ts.map +1 -1
- package/dist/components/auth/AuthLayout.js +15 -19
- package/dist/components/auth/AuthLayout.js.map +1 -1
- package/dist/components/auth/AuthLayout.tsx +26 -20
- package/dist/components/auth/SolidLogin.d.ts.map +1 -1
- package/dist/components/auth/SolidLogin.js +6 -3
- package/dist/components/auth/SolidLogin.js.map +1 -1
- package/dist/components/auth/SolidLogin.tsx +16 -2
- package/dist/components/auth/SolidRegister.d.ts.map +1 -1
- package/dist/components/auth/SolidRegister.js +7 -4
- package/dist/components/auth/SolidRegister.js.map +1 -1
- package/dist/components/auth/SolidRegister.tsx +16 -2
- package/dist/components/common/BackButton.js +1 -1
- package/dist/components/common/BackButton.js.map +1 -1
- package/dist/components/common/BackButton.tsx +1 -1
- package/dist/components/common/CancelButton.js +1 -1
- package/dist/components/common/CancelButton.js.map +1 -1
- package/dist/components/common/CancelButton.tsx +1 -1
- package/dist/components/common/GeneralSettings.d.ts.map +1 -1
- package/dist/components/common/GeneralSettings.js +6 -33
- package/dist/components/common/GeneralSettings.js.map +1 -1
- package/dist/components/common/GeneralSettings.tsx +20 -57
- package/dist/components/common/SettingsComponent.d.ts.map +1 -1
- package/dist/components/common/SettingsComponent.js +1 -9
- package/dist/components/common/SettingsComponent.js.map +1 -1
- package/dist/components/common/SettingsComponent.tsx +1 -8
- package/dist/components/common/SolidBreadcrumb.js +1 -1
- package/dist/components/common/SolidBreadcrumb.js.map +1 -1
- package/dist/components/common/SolidBreadcrumb.tsx +2 -2
- package/dist/components/common/SolidFaviconProvider.d.ts.map +1 -1
- package/dist/components/common/SolidFaviconProvider.js +1 -8
- package/dist/components/common/SolidFaviconProvider.js.map +1 -1
- package/dist/components/common/SolidFaviconProvider.tsx +1 -7
- package/dist/components/common/SolidLoadingState.d.ts +10 -0
- package/dist/components/common/SolidLoadingState.d.ts.map +1 -0
- package/dist/components/common/SolidLoadingState.js +8 -0
- package/dist/components/common/SolidLoadingState.js.map +1 -0
- package/dist/components/common/SolidLoadingState.module.css +56 -0
- package/dist/components/common/SolidLoadingState.tsx +28 -0
- package/dist/components/core/card/CardItem.d.ts.map +1 -1
- package/dist/components/core/card/CardItem.js +3 -4
- package/dist/components/core/card/CardItem.js.map +1 -1
- package/dist/components/core/card/CardItem.tsx +3 -4
- package/dist/components/core/card/SolidCardView.d.ts.map +1 -1
- package/dist/components/core/card/SolidCardView.js +6 -1
- package/dist/components/core/card/SolidCardView.js.map +1 -1
- package/dist/components/core/card/SolidCardView.tsx +6 -1
- package/dist/components/core/card/SolidCardViewConfigure.d.ts.map +1 -1
- package/dist/components/core/card/SolidCardViewConfigure.js +4 -1
- package/dist/components/core/card/SolidCardViewConfigure.js.map +1 -1
- package/dist/components/core/card/SolidCardViewConfigure.tsx +4 -1
- package/dist/components/core/common/SolidCreateButton.d.ts.map +1 -1
- package/dist/components/core/common/SolidCreateButton.js +2 -13
- package/dist/components/core/common/SolidCreateButton.js.map +1 -1
- package/dist/components/core/common/SolidCreateButton.tsx +2 -15
- package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.js +34 -15
- package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.tsx +37 -17
- package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.js +15 -13
- package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.js.map +1 -1
- package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.tsx +4 -4
- package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.js +6 -5
- package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.js.map +1 -1
- package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.tsx +1 -1
- package/dist/components/core/form/SolidFormFooter.d.ts +2 -1
- package/dist/components/core/form/SolidFormFooter.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormFooter.js +48 -14
- package/dist/components/core/form/SolidFormFooter.js.map +1 -1
- package/dist/components/core/form/SolidFormFooter.tsx +50 -4
- package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormView.js +52 -50
- package/dist/components/core/form/SolidFormView.js.map +1 -1
- package/dist/components/core/form/SolidFormView.tsx +16 -9
- package/dist/components/core/json/SolidJsonEditor.css +195 -0
- package/dist/components/core/json/SolidJsonEditor.d.ts +19 -0
- package/dist/components/core/json/SolidJsonEditor.d.ts.map +1 -0
- package/dist/components/core/json/SolidJsonEditor.js +109 -0
- package/dist/components/core/json/SolidJsonEditor.js.map +1 -0
- package/dist/components/core/json/SolidJsonEditor.tsx +150 -0
- package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanCard.js +2 -10
- package/dist/components/core/kanban/KanbanCard.js.map +1 -1
- package/dist/components/core/kanban/KanbanCard.tsx +2 -10
- package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.js +11 -4
- package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.tsx +13 -5
- package/dist/components/core/list/SolidListView.d.ts +2 -0
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +195 -111
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +136 -39
- package/dist/components/core/list/SolidListViewConfigure.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewConfigure.js +2 -0
- package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
- package/dist/components/core/list/SolidListViewConfigure.tsx +2 -0
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js +16 -19
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx +16 -22
- package/dist/components/core/locales/SolidChatterLocaleTabView.d.ts.map +1 -1
- package/dist/components/core/locales/SolidChatterLocaleTabView.js +9 -8
- package/dist/components/core/locales/SolidChatterLocaleTabView.js.map +1 -1
- package/dist/components/core/locales/SolidChatterLocaleTabView.tsx +4 -1
- package/dist/components/core/locales/SolidLocale.d.ts.map +1 -1
- package/dist/components/core/locales/SolidLocale.js +1 -2
- package/dist/components/core/locales/SolidLocale.js.map +1 -1
- package/dist/components/core/locales/SolidLocale.tsx +1 -2
- package/dist/components/core/model/CreateModel.d.ts.map +1 -1
- package/dist/components/core/model/CreateModel.js +1 -1
- package/dist/components/core/model/CreateModel.js.map +1 -1
- package/dist/components/core/model/CreateModel.tsx +0 -1
- package/dist/components/core/model/ModelMetaData.d.ts.map +1 -1
- package/dist/components/core/model/ModelMetaData.js +1 -2
- package/dist/components/core/model/ModelMetaData.js.map +1 -1
- package/dist/components/core/model/ModelMetaData.tsx +1 -3
- package/dist/components/core/module/CreateModule.css +70 -2
- package/dist/components/core/module/CreateModule.d.ts.map +1 -1
- package/dist/components/core/module/CreateModule.js +2 -2
- package/dist/components/core/module/CreateModule.js.map +1 -1
- package/dist/components/core/module/CreateModule.tsx +13 -1
- package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
- package/dist/components/core/tree/SolidTreeView.js +47 -26
- package/dist/components/core/tree/SolidTreeView.js.map +1 -1
- package/dist/components/core/tree/SolidTreeView.tsx +55 -23
- package/dist/components/layout/AdminTopHeader.js +2 -3
- package/dist/components/layout/AdminTopHeader.js.map +1 -1
- package/dist/components/layout/AdminTopHeader.tsx +2 -2
- package/dist/components/layout/AppSidebar.d.ts.map +1 -1
- package/dist/components/layout/AppSidebar.js +5 -2
- package/dist/components/layout/AppSidebar.js.map +1 -1
- package/dist/components/layout/AppSidebar.tsx +7 -4
- package/dist/components/layout/navbar-two-menu.d.ts.map +1 -1
- package/dist/components/layout/navbar-two-menu.js +6 -4
- package/dist/components/layout/navbar-two-menu.js.map +1 -1
- package/dist/components/layout/navbar-two-menu.tsx +4 -2
- package/dist/components/shad-cn-ui/SolidTabs.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidTabs.js +1 -1
- package/dist/components/shad-cn-ui/SolidTabs.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidTabs.tsx +1 -0
- package/dist/constants/error-messages.d.ts +1 -0
- package/dist/constants/error-messages.d.ts.map +1 -1
- package/dist/constants/error-messages.js +1 -0
- package/dist/constants/error-messages.js.map +1 -1
- package/dist/constants/error-messages.ts +1 -0
- package/dist/helpers/assetUrl.d.ts +3 -0
- package/dist/helpers/assetUrl.d.ts.map +1 -0
- package/dist/helpers/assetUrl.js +22 -0
- package/dist/helpers/assetUrl.js.map +1 -0
- package/dist/helpers/assetUrl.ts +26 -0
- package/dist/helpers/modelViewPersistence.d.ts +5 -0
- package/dist/helpers/modelViewPersistence.d.ts.map +1 -0
- package/dist/helpers/modelViewPersistence.js +168 -0
- package/dist/helpers/modelViewPersistence.js.map +1 -0
- package/dist/helpers/modelViewPersistence.ts +201 -0
- package/dist/helpers/routePaths.d.ts +6 -0
- package/dist/helpers/routePaths.d.ts.map +1 -1
- package/dist/helpers/routePaths.js +13 -0
- package/dist/helpers/routePaths.js.map +1 -1
- package/dist/helpers/routePaths.ts +25 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/index.ts +14 -0
- package/dist/redux/api/datasourceIntrospectionApi.d.ts +203 -0
- package/dist/redux/api/datasourceIntrospectionApi.d.ts.map +1 -0
- package/dist/redux/api/datasourceIntrospectionApi.js +71 -0
- package/dist/redux/api/datasourceIntrospectionApi.js.map +1 -0
- package/dist/redux/api/datasourceIntrospectionApi.ts +261 -0
- package/dist/redux/api/datasourceManagementApi.d.ts +46 -0
- package/dist/redux/api/datasourceManagementApi.d.ts.map +1 -0
- package/dist/redux/api/datasourceManagementApi.js +35 -0
- package/dist/redux/api/datasourceManagementApi.js.map +1 -0
- package/dist/redux/api/datasourceManagementApi.ts +86 -0
- package/dist/redux/api/solidServiceApi.d.ts +10 -2
- package/dist/redux/api/solidServiceApi.d.ts.map +1 -1
- package/dist/redux/api/solidServiceApi.js +2 -4
- package/dist/redux/api/solidServiceApi.js.map +1 -1
- package/dist/redux/api/solidServiceApi.ts +4 -6
- package/dist/redux/store/StoreProvider.d.ts.map +1 -1
- package/dist/redux/store/StoreProvider.js +4 -2
- package/dist/redux/store/StoreProvider.js.map +1 -1
- package/dist/redux/store/StoreProvider.tsx +9 -1
- package/dist/redux/store/defaultStoreConfig.d.ts +28 -1
- package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
- package/dist/redux/store/defaultStoreConfig.js +4 -0
- package/dist/redux/store/defaultStoreConfig.js.map +1 -1
- package/dist/redux/store/defaultStoreConfig.ts +4 -0
- package/dist/resources/solid-custom.css +73 -16
- package/dist/routes/guards/AdminGuard.d.ts.map +1 -1
- package/dist/routes/guards/AdminGuard.js +2 -1
- package/dist/routes/guards/AdminGuard.js.map +1 -1
- package/dist/routes/guards/AdminGuard.tsx +7 -1
- package/dist/routes/guards/AuthGuard.d.ts.map +1 -1
- package/dist/routes/guards/AuthGuard.js +2 -1
- package/dist/routes/guards/AuthGuard.js.map +1 -1
- package/dist/routes/guards/AuthGuard.tsx +8 -2
- package/dist/routes/guards/GuestGuard.d.ts.map +1 -1
- package/dist/routes/guards/GuestGuard.js +2 -1
- package/dist/routes/guards/GuestGuard.js.map +1 -1
- package/dist/routes/guards/GuestGuard.tsx +8 -2
- package/dist/routes/pages/admin/core/CardPage.d.ts.map +1 -1
- package/dist/routes/pages/admin/core/CardPage.js +11 -0
- package/dist/routes/pages/admin/core/CardPage.js.map +1 -1
- package/dist/routes/pages/admin/core/CardPage.tsx +13 -0
- package/dist/routes/pages/admin/core/DashboardPage.d.ts.map +1 -1
- package/dist/routes/pages/admin/core/DashboardPage.js +7 -5
- package/dist/routes/pages/admin/core/DashboardPage.js.map +1 -1
- package/dist/routes/pages/admin/core/DashboardPage.module.css +18 -0
- package/dist/routes/pages/admin/core/DashboardPage.tsx +50 -32
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.css +828 -0
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.d.ts +3 -0
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.d.ts.map +1 -0
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js +947 -0
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js.map +1 -0
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.tsx +1719 -0
- package/dist/routes/pages/admin/core/DatasourcesPage.css +337 -0
- package/dist/routes/pages/admin/core/DatasourcesPage.d.ts +3 -0
- package/dist/routes/pages/admin/core/DatasourcesPage.d.ts.map +1 -0
- package/dist/routes/pages/admin/core/DatasourcesPage.js +221 -0
- package/dist/routes/pages/admin/core/DatasourcesPage.js.map +1 -0
- package/dist/routes/pages/admin/core/DatasourcesPage.tsx +540 -0
- package/dist/routes/pages/admin/core/KanbanPage.d.ts.map +1 -1
- package/dist/routes/pages/admin/core/KanbanPage.js +11 -0
- package/dist/routes/pages/admin/core/KanbanPage.js.map +1 -1
- package/dist/routes/pages/admin/core/KanbanPage.tsx +13 -0
- package/dist/routes/pages/admin/core/ListPage.d.ts.map +1 -1
- package/dist/routes/pages/admin/core/ListPage.js +25 -2
- package/dist/routes/pages/admin/core/ListPage.js.map +1 -1
- package/dist/routes/pages/admin/core/ListPage.tsx +29 -2
- package/dist/routes/pages/admin/core/TreePage.d.ts.map +1 -1
- package/dist/routes/pages/admin/core/TreePage.js +10 -2
- package/dist/routes/pages/admin/core/TreePage.js.map +1 -1
- package/dist/routes/pages/admin/core/TreePage.tsx +11 -2
- package/dist/routes/solidRoutes.d.ts.map +1 -1
- package/dist/routes/solidRoutes.js +5 -1
- package/dist/routes/solidRoutes.js.map +1 -1
- package/dist/routes/solidRoutes.tsx +4 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navbar-two-menu.js","sourceRoot":"","sources":["../../../src/components/layout/navbar-two-menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import Link from \"../common/Link\";\nimport { useState, useEffect } from \"react\";\nimport { useSearchParams } from \"../../hooks/useSearchParams\";\n\nconst NavbarTwoMenu = ({ menuItems }: any) => {\n const searchParams = useSearchParams();\n const [expandedKeys, setExpandedKeys] = useState<any>({});\n\n const activeId = searchParams.get(\"menuItemId\");\n const hasActiveChild = (items: any[]): boolean => {\n if (!activeId) return false;\n return items?.some((item) =>\n (item.id !== null && item.id === activeId) || hasActiveChild(item.items ?? [])\n );\n };\n const itemRenderer = (item: any, options: any) => {\n const isSelected = activeId !== null && item.id !== null && item.id === activeId;\n const isParentActive = activeId !== null && item.items?.length > 0 && hasActiveChild(item.items);\n return (\n <div key={item?.key} className={`flex items-center cursor-pointer menuHead px-4 ${isSelected || isParentActive ? \"p-highlight\" : \"\"}`} onClick={options.onClick} >\n <Link href={item?.url ? item?.url : \"#\"} className=\"w-full flex justify-between font-normal\">\n <div className=\"flex items-center\" style={{ gap: 10 }}>\n {item.icon && (\n // material-symbols-${item.iconVariant ?? 'outlined'}\n <span className=\"material-symbols-outlined\" style={{ fontSize: 18 }}>\n {item.icon}\n </span>\n )}\n <span>\n {item.label}\n </span>\n </div>\n {item?.items?.length > 0 &&\n <span className={`sidebar-chevrons ${expandedKeys[item.key] ? \"pi pi-angle-up\" : \"pi pi-angle-down\"}`} />\n }\n </Link>\n </div>\n )\n };\n\n const createMenuItems = (menuItems: any[]): any[] =>\n menuItems.map((mi) => {\n const menuItemId = new URLSearchParams(mi.path?.split(\"?\")[1]).get(\"menuItemId\");\n return {\n key: mi.key,\n id: menuItemId, // ← extracted from path\n label: mi.title,\n icon: mi.icon ?? \"\",\n // iconVariant: mi.iconVariant,\n template: itemRenderer,\n url: mi.path ?? null,\n items: mi.children ? createMenuItems(mi.children) : null,\n };\n })\n\n\n const items = createMenuItems(menuItems);\n\n // Auto-expand parents with active child when activeId changes\n useEffect(() => {\n const newExpandedKeys: any = {};\n const expandIfActive = (items: any[]) => {\n items?.forEach((item) => {\n if (item.items?.length && hasActiveChild(item.items)) {\n newExpandedKeys[item.key] = true;\n expandIfActive(item.items);\n }\n });\n };\n expandIfActive(createMenuItems(menuItems));\n setExpandedKeys((prev: any) => ({ ...prev, ...newExpandedKeys }));\n }, [activeId]);\n\n const toggleExpansion = (key: string) => {\n setExpandedKeys((prev: any) => ({ ...prev, [key]: !prev[key] }));\n };\n\n const renderMenuItems = (menuItems: any[]): React.ReactNode => {\n return (\n <ul className=\"solid-panel-menu-list\">\n {menuItems.map((item) => {\n const hasChildren = item.items && item.items.length > 0;\n const isExpanded = !!expandedKeys[item.key];\n const isSelected = activeId !== null && item.id !== null && item.id === activeId;\n const isParentActive = hasChildren && hasActiveChild(item.items);\n\n return (\n <li key={item.key}>\n <div className={`flex items-center cursor-pointer menuHead px-4 ${isSelected || isParentActive ? \"p-highlight\" : \"\"}`}>\n <Link href={item?.url ? item?.url : \"#\"} className=\"w-full flex justify-between font-normal\">\n <div className=\"flex items-center\" style={{ gap: 10 }}>\n {item.icon && (\n <span className=\"material-symbols-outlined\" style={{ fontSize: 18 }}>\n {item.icon}\n </span>\n )}\n <span>{item.label}</span>\n </div>\n </Link>\n {hasChildren && (\n <button\n type=\"button\"\n className=\"sidebar-chevrons-button\"\n onClick={() => toggleExpansion(item.key)}\n aria-label={`Toggle ${item.label} menu`}\n >\n <span className={`sidebar-chevrons ${isExpanded ? \"pi pi-angle-up\" : \"pi pi-angle-down\"}`} />\n </button>\n )}\n </div>\n {hasChildren && isExpanded && (\n <div className=\"solid-panel-menu-children pl-6\">\n {renderMenuItems(item.items)}\n </div>\n )}\n </li>\n );\n })}\n </ul>\n );\n };\n\n return <div className=\"solid-panel-menu\">{renderMenuItems(items)}</div>;\n};\n\nexport default NavbarTwoMenu;\n"]}
|
|
1
|
+
{"version":3,"file":"navbar-two-menu.js","sourceRoot":"","sources":["../../../src/components/layout/navbar-two-menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import Link from \"../common/Link\";\nimport { useState, useEffect } from \"react\";\nimport { useSearchParams } from \"../../hooks/useSearchParams\";\nimport { resolveRetainedModelViewRoute } from \"../../helpers/modelViewPersistence\";\n\nconst NavbarTwoMenu = ({ menuItems }: any) => {\n const searchParams = useSearchParams();\n const [expandedKeys, setExpandedKeys] = useState<any>({});\n\n const activeId = searchParams.get(\"menuItemId\");\n const hasActiveChild = (items: any[]): boolean => {\n if (!activeId) return false;\n return items?.some((item) =>\n (item.id !== null && item.id === activeId) || hasActiveChild(item.items ?? [])\n );\n };\n const itemRenderer = (item: any, options: any) => {\n const isSelected = activeId !== null && item.id !== null && item.id === activeId;\n const isParentActive = activeId !== null && item.items?.length > 0 && hasActiveChild(item.items);\n return (\n <div key={item?.key} className={`flex items-center cursor-pointer menuHead px-4 ${isSelected || isParentActive ? \"p-highlight\" : \"\"}`} onClick={options.onClick} >\n <Link href={item?.url ? item?.url : \"#\"} className=\"w-full flex justify-between font-normal\">\n <div className=\"flex items-center\" style={{ gap: 10 }}>\n {item.icon && (\n // material-symbols-${item.iconVariant ?? 'outlined'}\n <span className=\"material-symbols-outlined\" style={{ fontSize: 18 }}>\n {item.icon}\n </span>\n )}\n <span>\n {item.label}\n </span>\n </div>\n {item?.items?.length > 0 &&\n <span className={`sidebar-chevrons ${expandedKeys[item.key] ? \"pi pi-angle-up\" : \"pi pi-angle-down\"}`} />\n }\n </Link>\n </div>\n )\n };\n\n const createMenuItems = (menuItems: any[]): any[] =>\n menuItems.map((mi) => {\n const resolvedPath = mi.path ? resolveRetainedModelViewRoute(mi.path) : null;\n const menuItemId = new URLSearchParams(resolvedPath?.split(\"?\")[1]).get(\"menuItemId\");\n return {\n key: mi.key,\n id: menuItemId, // ← extracted from path\n label: mi.title,\n icon: mi.icon ?? \"\",\n // iconVariant: mi.iconVariant,\n template: itemRenderer,\n url: resolvedPath,\n items: mi.children ? createMenuItems(mi.children) : null,\n };\n })\n\n\n const items = createMenuItems(menuItems);\n\n // Auto-expand parents with active child when activeId changes\n useEffect(() => {\n const newExpandedKeys: any = {};\n const expandIfActive = (items: any[]) => {\n items?.forEach((item) => {\n if (item.items?.length && hasActiveChild(item.items)) {\n newExpandedKeys[item.key] = true;\n expandIfActive(item.items);\n }\n });\n };\n expandIfActive(createMenuItems(menuItems));\n setExpandedKeys((prev: any) => ({ ...prev, ...newExpandedKeys }));\n }, [activeId]);\n\n const toggleExpansion = (key: string) => {\n setExpandedKeys((prev: any) => ({ ...prev, [key]: !prev[key] }));\n };\n\n const renderMenuItems = (menuItems: any[]): React.ReactNode => {\n return (\n <ul className=\"solid-panel-menu-list\">\n {menuItems.map((item) => {\n const hasChildren = item.items && item.items.length > 0;\n const isExpanded = !!expandedKeys[item.key];\n const isSelected = activeId !== null && item.id !== null && item.id === activeId;\n const isParentActive = hasChildren && hasActiveChild(item.items);\n\n return (\n <li key={item.key}>\n <div className={`flex items-center cursor-pointer menuHead px-4 ${isSelected || isParentActive ? \"p-highlight\" : \"\"}`}>\n <Link href={item?.url ? item?.url : \"#\"} className=\"w-full flex justify-between font-normal\">\n <div className=\"flex items-center\" style={{ gap: 10 }}>\n {item.icon && (\n <span className=\"material-symbols-outlined\" style={{ fontSize: 18 }}>\n {item.icon}\n </span>\n )}\n <span>{item.label}</span>\n </div>\n </Link>\n {hasChildren && (\n <button\n type=\"button\"\n className=\"sidebar-chevrons-button\"\n onClick={() => toggleExpansion(item.key)}\n aria-label={`Toggle ${item.label} menu`}\n >\n <span className={`sidebar-chevrons ${isExpanded ? \"pi pi-angle-up\" : \"pi pi-angle-down\"}`} />\n </button>\n )}\n </div>\n {hasChildren && isExpanded && (\n <div className=\"solid-panel-menu-children pl-6\">\n {renderMenuItems(item.items)}\n </div>\n )}\n </li>\n );\n })}\n </ul>\n );\n };\n\n return <div className=\"solid-panel-menu\">{renderMenuItems(items)}</div>;\n};\n\nexport default NavbarTwoMenu;\n"]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import Link from "../common/Link";
|
|
2
2
|
import { useState, useEffect } from "react";
|
|
3
3
|
import { useSearchParams } from "../../hooks/useSearchParams";
|
|
4
|
+
import { resolveRetainedModelViewRoute } from "../../helpers/modelViewPersistence";
|
|
4
5
|
|
|
5
6
|
const NavbarTwoMenu = ({ menuItems }: any) => {
|
|
6
7
|
const searchParams = useSearchParams();
|
|
@@ -40,7 +41,8 @@ const NavbarTwoMenu = ({ menuItems }: any) => {
|
|
|
40
41
|
|
|
41
42
|
const createMenuItems = (menuItems: any[]): any[] =>
|
|
42
43
|
menuItems.map((mi) => {
|
|
43
|
-
const
|
|
44
|
+
const resolvedPath = mi.path ? resolveRetainedModelViewRoute(mi.path) : null;
|
|
45
|
+
const menuItemId = new URLSearchParams(resolvedPath?.split("?")[1]).get("menuItemId");
|
|
44
46
|
return {
|
|
45
47
|
key: mi.key,
|
|
46
48
|
id: menuItemId, // ← extracted from path
|
|
@@ -48,7 +50,7 @@ const NavbarTwoMenu = ({ menuItems }: any) => {
|
|
|
48
50
|
icon: mi.icon ?? "",
|
|
49
51
|
// iconVariant: mi.iconVariant,
|
|
50
52
|
template: itemRenderer,
|
|
51
|
-
url:
|
|
53
|
+
url: resolvedPath,
|
|
52
54
|
items: mi.children ? createMenuItems(mi.children) : null,
|
|
53
55
|
};
|
|
54
56
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidTabs.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidTabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,KAAK,aAAa,GAAG;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC1C,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB,CAAC;AAMF,wBAAgB,QAAQ,CAAC,MAAM,EAAE,aAAa,QAE7C;AAED,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,KAAK,EACL,aAAa,EACb,SAAS,EACT,aAAa,EACb,cAAc,EACd,WAAoB,EACpB,WAA0B,EAC1B,KAAK,GACN,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"SolidTabs.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidTabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,KAAK,aAAa,GAAG;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC1C,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB,CAAC;AAMF,wBAAgB,QAAQ,CAAC,MAAM,EAAE,aAAa,QAE7C;AAED,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,KAAK,EACL,aAAa,EACb,SAAS,EACT,aAAa,EACb,cAAc,EACd,WAAoB,EACpB,WAA0B,EAC1B,KAAK,GACN,EAAE,kBAAkB,2CAyFpB"}
|
|
@@ -19,7 +19,7 @@ export function SolidTabGroup(_a) {
|
|
|
19
19
|
return (_jsx("button", { type: "button", role: "tab", "aria-selected": isActive, "aria-controls": "solid-tab-panel-".concat(tab.value), id: "solid-tab-".concat(tab.value), className: cx("solid-notebook-tab-trigger", "solid-tabs-trigger", tab.hasError && "error", isActive && "active", isActive && "is-active"), onClick: function () { return onValueChange(tab.value); }, children: tab.label }, tab.value));
|
|
20
20
|
})), extra && _jsx("div", { children: extra })] }), tabs.map(function (tab) {
|
|
21
21
|
var isActive = tab.value === value;
|
|
22
|
-
return (_jsx("div", { role: "tabpanel", id: "solid-tab-panel-".concat(tab.value), "aria-labelledby": "solid-tab-".concat(tab.value), hidden: !isActive, className: cx("solid-notebook-content", "solid-tabs-panel", panelClassName), children: isActive ? tab.content : null }, tab.value));
|
|
22
|
+
return (_jsx("div", { role: "tabpanel", id: "solid-tab-panel-".concat(tab.value), "aria-labelledby": "solid-tab-".concat(tab.value), hidden: !isActive, className: cx("solid-notebook-content", "solid-tabs-panel", panelClassName), style: !isActive ? { display: "none" } : undefined, children: isActive ? tab.content : null }, tab.value));
|
|
23
23
|
})] }));
|
|
24
24
|
}
|
|
25
25
|
//# sourceMappingURL=SolidTabs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidTabs.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidTabs.tsx"],"names":[],"mappings":";AAqBA,SAAS,EAAE;IAAC,eAA2C;SAA3C,UAA2C,EAA3C,qBAA2C,EAA3C,IAA2C;QAA3C,0BAA2C;;IACrD,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,MAAqB;IAC5C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAUT;QATnB,IAAI,UAAA,EACJ,KAAK,WAAA,EACL,aAAa,mBAAA,EACb,SAAS,eAAA,EACT,aAAa,mBAAA,EACb,cAAc,oBAAA,EACd,mBAAoB,EAApB,WAAW,mBAAG,MAAM,KAAA,EACpB,mBAA0B,EAA1B,WAAW,mBAAG,YAAY,KAAA,EAC1B,KAAK,WAAA;IAEL,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CACX,gBAAgB,EAChB,YAAY,EACZ,sBAAe,WAAW,CAAE,EAC5B,WAAW,KAAK,UAAU,IAAI,sBAAsB,EACpD,SAAS,CACV,aAED,eACE,SAAS,EAAE,EAAE,CAAC,wBAAwB,EAAE,iBAAiB,EAAE,aAAa,CAAC,EACzE,IAAI,EAAC,SAAS,sBACI,WAAW,EAC7B,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,SAAS,aAEpG,KAAK,CAAC,CAAC,CAAC,CACP,cAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,YAC5B,IAAI,CAAC,GAAG,CAAC,UAAC,GAAG;4BACZ,IAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC;4BACrC,OAAO,CACL,iBAEE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,KAAK,mBACK,QAAQ,mBACR,0BAAmB,GAAG,CAAC,KAAK,CAAE,EAC7C,EAAE,EAAE,oBAAa,GAAG,CAAC,KAAK,CAAE,EAC5B,SAAS,EAAE,EAAE,CACX,4BAA4B,EAC5B,oBAAoB,EACpB,GAAG,CAAC,QAAQ,IAAI,OAAO,EACvB,QAAQ,IAAI,QAAQ,EACpB,QAAQ,IAAI,WAAW,CACxB,EACD,OAAO,EAAE,cAAM,OAAA,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAxB,CAAwB,YAEtC,GAAG,CAAC,KAAK,IAfL,GAAG,CAAC,KAAK,CAgBP,CACV,CAAC;wBACJ,CAAC,CAAC,GACE,CACP,CAAC,CAAC,CAAC,CACF,IAAI,CAAC,GAAG,CAAC,UAAC,GAAG;wBACX,IAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC;wBACrC,OAAO,CACL,iBAEE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,KAAK,mBACK,QAAQ,mBACR,0BAAmB,GAAG,CAAC,KAAK,CAAE,EAC7C,EAAE,EAAE,oBAAa,GAAG,CAAC,KAAK,CAAE,EAC5B,SAAS,EAAE,EAAE,CACX,4BAA4B,EAC5B,oBAAoB,EACpB,GAAG,CAAC,QAAQ,IAAI,OAAO,EACvB,QAAQ,IAAI,QAAQ,EACpB,QAAQ,IAAI,WAAW,CACxB,EACD,OAAO,EAAE,cAAM,OAAA,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAxB,CAAwB,YAEtC,GAAG,CAAC,KAAK,IAfL,GAAG,CAAC,KAAK,CAgBP,CACV,CAAC;oBACJ,CAAC,CAAC,CACH,EACA,KAAK,IAAI,wBAAM,KAAK,GAAO,IACxB,EAEL,IAAI,CAAC,GAAG,CAAC,UAAC,GAAG;gBACZ,IAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC;gBACrC,OAAO,CACL,cAEE,IAAI,EAAC,UAAU,EACf,EAAE,EAAE,0BAAmB,GAAG,CAAC,KAAK,CAAE,qBACjB,oBAAa,GAAG,CAAC,KAAK,CAAE,EACzC,MAAM,EAAE,CAAC,QAAQ,EACjB,SAAS,EAAE,EAAE,CAAC,wBAAwB,EAAE,kBAAkB,EAAE,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"SolidTabs.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidTabs.tsx"],"names":[],"mappings":";AAqBA,SAAS,EAAE;IAAC,eAA2C;SAA3C,UAA2C,EAA3C,qBAA2C,EAA3C,IAA2C;QAA3C,0BAA2C;;IACrD,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,MAAqB;IAC5C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAUT;QATnB,IAAI,UAAA,EACJ,KAAK,WAAA,EACL,aAAa,mBAAA,EACb,SAAS,eAAA,EACT,aAAa,mBAAA,EACb,cAAc,oBAAA,EACd,mBAAoB,EAApB,WAAW,mBAAG,MAAM,KAAA,EACpB,mBAA0B,EAA1B,WAAW,mBAAG,YAAY,KAAA,EAC1B,KAAK,WAAA;IAEL,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CACX,gBAAgB,EAChB,YAAY,EACZ,sBAAe,WAAW,CAAE,EAC5B,WAAW,KAAK,UAAU,IAAI,sBAAsB,EACpD,SAAS,CACV,aAED,eACE,SAAS,EAAE,EAAE,CAAC,wBAAwB,EAAE,iBAAiB,EAAE,aAAa,CAAC,EACzE,IAAI,EAAC,SAAS,sBACI,WAAW,EAC7B,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,SAAS,aAEpG,KAAK,CAAC,CAAC,CAAC,CACP,cAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,YAC5B,IAAI,CAAC,GAAG,CAAC,UAAC,GAAG;4BACZ,IAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC;4BACrC,OAAO,CACL,iBAEE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,KAAK,mBACK,QAAQ,mBACR,0BAAmB,GAAG,CAAC,KAAK,CAAE,EAC7C,EAAE,EAAE,oBAAa,GAAG,CAAC,KAAK,CAAE,EAC5B,SAAS,EAAE,EAAE,CACX,4BAA4B,EAC5B,oBAAoB,EACpB,GAAG,CAAC,QAAQ,IAAI,OAAO,EACvB,QAAQ,IAAI,QAAQ,EACpB,QAAQ,IAAI,WAAW,CACxB,EACD,OAAO,EAAE,cAAM,OAAA,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAxB,CAAwB,YAEtC,GAAG,CAAC,KAAK,IAfL,GAAG,CAAC,KAAK,CAgBP,CACV,CAAC;wBACJ,CAAC,CAAC,GACE,CACP,CAAC,CAAC,CAAC,CACF,IAAI,CAAC,GAAG,CAAC,UAAC,GAAG;wBACX,IAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC;wBACrC,OAAO,CACL,iBAEE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,KAAK,mBACK,QAAQ,mBACR,0BAAmB,GAAG,CAAC,KAAK,CAAE,EAC7C,EAAE,EAAE,oBAAa,GAAG,CAAC,KAAK,CAAE,EAC5B,SAAS,EAAE,EAAE,CACX,4BAA4B,EAC5B,oBAAoB,EACpB,GAAG,CAAC,QAAQ,IAAI,OAAO,EACvB,QAAQ,IAAI,QAAQ,EACpB,QAAQ,IAAI,WAAW,CACxB,EACD,OAAO,EAAE,cAAM,OAAA,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAxB,CAAwB,YAEtC,GAAG,CAAC,KAAK,IAfL,GAAG,CAAC,KAAK,CAgBP,CACV,CAAC;oBACJ,CAAC,CAAC,CACH,EACA,KAAK,IAAI,wBAAM,KAAK,GAAO,IACxB,EAEL,IAAI,CAAC,GAAG,CAAC,UAAC,GAAG;gBACZ,IAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC;gBACrC,OAAO,CACL,cAEE,IAAI,EAAC,UAAU,EACf,EAAE,EAAE,0BAAmB,GAAG,CAAC,KAAK,CAAE,qBACjB,oBAAa,GAAG,CAAC,KAAK,CAAE,EACzC,MAAM,EAAE,CAAC,QAAQ,EACjB,SAAS,EAAE,EAAE,CAAC,wBAAwB,EAAE,kBAAkB,EAAE,cAAc,CAAC,EAC3E,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,YAEjD,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IARzB,GAAG,CAAC,KAAK,CASV,CACP,CAAC;YACJ,CAAC,CAAC,IACE,CACP,CAAC;AACJ,CAAC","sourcesContent":["import React from \"react\";\n\ntype SolidTabProps = {\n value: string;\n label: React.ReactNode;\n content: React.ReactNode;\n hasError?: boolean;\n};\n\ntype SolidTabGroupProps = {\n tabs: SolidTabProps[];\n value: string;\n onValueChange: (value: string) => void;\n className?: string;\n listClassName?: string;\n panelClassName?: string;\n tabPosition?: \"left\" | \"center\" | \"right\";\n orientation?: \"horizontal\" | \"vertical\";\n extra?: React.ReactNode;\n};\n\nfunction cx(...parts: Array<string | false | undefined>) {\n return parts.filter(Boolean).join(\" \");\n}\n\nexport function SolidTab(_props: SolidTabProps) {\n return null;\n}\n\nexport function SolidTabGroup({\n tabs,\n value,\n onValueChange,\n className,\n listClassName,\n panelClassName,\n tabPosition = \"left\",\n orientation = \"horizontal\",\n extra,\n}: SolidTabGroupProps) {\n return (\n <div\n className={cx(\n \"solid-notebook\",\n \"solid-tabs\",\n `solid-tabs--${tabPosition}`,\n orientation === \"vertical\" && \"solid-tabs--vertical\",\n className,\n )}\n >\n <div\n className={cx(\"solid-notebook-tablist\", \"solid-tabs-list\", listClassName)}\n role=\"tablist\"\n aria-orientation={orientation}\n style={extra ? { display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\" } : undefined}\n >\n {extra ? (\n <div style={{ display: \"flex\" }}>\n {tabs.map((tab) => {\n const isActive = tab.value === value;\n return (\n <button\n key={tab.value}\n type=\"button\"\n role=\"tab\"\n aria-selected={isActive}\n aria-controls={`solid-tab-panel-${tab.value}`}\n id={`solid-tab-${tab.value}`}\n className={cx(\n \"solid-notebook-tab-trigger\",\n \"solid-tabs-trigger\",\n tab.hasError && \"error\",\n isActive && \"active\",\n isActive && \"is-active\",\n )}\n onClick={() => onValueChange(tab.value)}\n >\n {tab.label}\n </button>\n );\n })}\n </div>\n ) : (\n tabs.map((tab) => {\n const isActive = tab.value === value;\n return (\n <button\n key={tab.value}\n type=\"button\"\n role=\"tab\"\n aria-selected={isActive}\n aria-controls={`solid-tab-panel-${tab.value}`}\n id={`solid-tab-${tab.value}`}\n className={cx(\n \"solid-notebook-tab-trigger\",\n \"solid-tabs-trigger\",\n tab.hasError && \"error\",\n isActive && \"active\",\n isActive && \"is-active\",\n )}\n onClick={() => onValueChange(tab.value)}\n >\n {tab.label}\n </button>\n );\n })\n )}\n {extra && <div>{extra}</div>}\n </div>\n\n {tabs.map((tab) => {\n const isActive = tab.value === value;\n return (\n <div\n key={tab.value}\n role=\"tabpanel\"\n id={`solid-tab-panel-${tab.value}`}\n aria-labelledby={`solid-tab-${tab.value}`}\n hidden={!isActive}\n className={cx(\"solid-notebook-content\", \"solid-tabs-panel\", panelClassName)}\n style={!isActive ? { display: \"none\" } : undefined}\n >\n {isActive ? tab.content : null}\n </div>\n );\n })}\n </div>\n );\n}\n"]}
|
|
@@ -118,6 +118,7 @@ export function SolidTabGroup({
|
|
|
118
118
|
aria-labelledby={`solid-tab-${tab.value}`}
|
|
119
119
|
hidden={!isActive}
|
|
120
120
|
className={cx("solid-notebook-content", "solid-tabs-panel", panelClassName)}
|
|
121
|
+
style={!isActive ? { display: "none" } : undefined}
|
|
121
122
|
>
|
|
122
123
|
{isActive ? tab.content : null}
|
|
123
124
|
</div>
|
|
@@ -133,6 +133,7 @@ export declare const ERROR_MESSAGES: {
|
|
|
133
133
|
PARSED_FIELD: string;
|
|
134
134
|
CODE_GENERTAE_SUCCESSFULLY: string;
|
|
135
135
|
RESPONSE_GENERATE_CODE_HANDLER: string;
|
|
136
|
+
CODE_GENERATE_FAILED: string;
|
|
136
137
|
KANBAN_UPDATED: string;
|
|
137
138
|
TRY_AGAIN: string;
|
|
138
139
|
REMOVE_ROOT_NODE: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-messages.d.ts","sourceRoot":"","sources":["../../src/constants/error-messages.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;4BAyBD,MAAM;;;;;;;;+BAaH,MAAM;;;;;;;;;;;;;;;2CAkBM,MAAM;;;;;;;;;;0CAaP,MAAM,aAAa,MAAM;;;;;;mCAOhC,MAAM;;;;;;;;;;;;;;;;;;;;;;oCA8BL,MAAM,OAAO,GAAG;;;;sCAKd,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;mDAkCO,MAAM;;;;+CAKV,MAAM;;;;;;;;;;;8BAcvB,MAAM
|
|
1
|
+
{"version":3,"file":"error-messages.d.ts","sourceRoot":"","sources":["../../src/constants/error-messages.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;4BAyBD,MAAM;;;;;;;;+BAaH,MAAM;;;;;;;;;;;;;;;2CAkBM,MAAM;;;;;;;;;;0CAaP,MAAM,aAAa,MAAM;;;;;;mCAOhC,MAAM;;;;;;;;;;;;;;;;;;;;;;oCA8BL,MAAM,OAAO,GAAG;;;;sCAKd,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;mDAkCO,MAAM;;;;+CAKV,MAAM;;;;;;;;;;;8BAcvB,MAAM;;;;;;;;;;;;;gDAcY,MAAM;;;;4BAY1B,MAAM;kCACA,MAAM;2BACb,MAAM;+BACF,MAAM;gCACL,MAAM;8BACR,MAAM;+BACL,MAAM,UAAU,MAAM;8BAEvB,MAAM,QAAQ,MAAM;;;;gCAOlB,MAAM;gCAEN,MAAM;qCAID,MAAM,cAAc,MAAM;qCAE1B,MAAM,cAAc,MAAM;2BAIpC,MAAM;;;0BAMP,MAAM;uCACO,MAAM;iCAIZ,MAAM;;;+CAIQ,MAAM;kCAInB,MAAM;gCAER,MAAM;wCAEE,MAAM;;;;;;uBAYvB,MAAM;CAK1B,CAAC"}
|
|
@@ -166,6 +166,7 @@ export var ERROR_MESSAGES = {
|
|
|
166
166
|
PARSED_FIELD: 'Failed to parse fields:',
|
|
167
167
|
CODE_GENERTAE_SUCCESSFULLY: 'Code Generated Successfully',
|
|
168
168
|
RESPONSE_GENERATE_CODE_HANDLER: "response generate code handler",
|
|
169
|
+
CODE_GENERATE_FAILED: "Failed to generate code",
|
|
169
170
|
KANBAN_UPDATED: "Kanban View Updated!",
|
|
170
171
|
TRY_AGAIN: 'Please try again later',
|
|
171
172
|
REMOVE_ROOT_NODE: "Cannot remove the root node",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-messages.js","sourceRoot":"","sources":["../../src/constants/error-messages.ts"],"names":[],"mappings":"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","sourcesContent":["export const ERROR_MESSAGES = {\n\n /* ----------------------------- AUTHENTICATION ----------------------------- */\n NO_AUTH_TOKEN_FOUND: 'No auth token found',\n AUTHENICATION__FAILED: 'Authentication failed',\n INVALID_CREDENTIALS: 'Invalid Credentials',\n SESSION_EXPIRED: 'Session Expired. Please Login Again',\n FAILED_REFRESH_TOKEN: 'Failed to refresh access token: ',\n LOGIN_ERROR: 'Login Error',\n LOGIN_SUCCESS: 'Login Success',\n PLEASE_WAIT: \"Please wait\",\n SOMETHING_WRONG: 'Something Went Wrong !',\n LOGOUT_FAILED: 'Logout Failed !',\n LOGIN_SUCCESSFULLY: 'Login Successfully',\n\n /* -------------------------------- PASSWORD -------------------------------- */\n FAILED_TO_UPDATE_PASSWORD: 'Failed to update password',\n INVALID_PASSWORD_REGX: 'Invalid password regex in .env:',\n INCORRECT_CURRENT: \"Incorrect Current Password\",\n MUST_MATCH: \"Passwords must match\",\n FORCE_PASSWORD_CHANGE: \"Force Password Change Success\",\n PASSWORD_CHANGE: 'Password Change Successfully',\n\n /* ---------------------------------- OTP ----------------------------------- */\n INAVLID_OTP: \"Invalid OTP\",\n OPT_FORMAT: (formatted: string) =>\n `You can request a new OTP in ${formatted} second(s)`,\n\n /* ---------------------------- AUTH / DASHBOARD ----------------------------- */\n DASHBOARD_REDIRECTING: \"Redirecting to dashboard.\",\n\n /* ------------------------------- FILE ERRORS ------------------------------- */\n FILE_DOWNLOAD_FAILED: 'File download failed',\n FAILED_TO_DOWNLOAD: 'Failed to download',\n FAILED_TO_FETCH_FILE: 'Failed to fetch file',\n DOWNLOAD_FAILED: 'Download failed',\n FILE_LARGE: 'File too large',\n MAX_FILE_SIZE: 'Maximum file size is 2MB',\n FILE_TOO_LAREG: (fileSize: string) =>\n `File is too large. Max size is ${fileSize} KB.`,\n FILE_NOT_ACCEPT: 'File not accepted',\n FAILED_UPLOAD_FILE: 'Fail to upload file',\n MISSING_FILE: 'Missing File',\n ERROR_DELETING_FILE: 'Error deleting file:',\n FAILED_DELETED_IMAGE: 'Failed to delete image',\n PROFILE_PICTURE_REMOVE: \"Profile picture removed\",\n FILE_UPLOAD: 'File Uploaded',\n FILE_UPLOAD_SUCCESSFULLY: 'File Uploaded Successfully',\n\n /* ------------------------------- USER / ENTITY ------------------------------ */\n NO_ENTITY_SELECTED: 'No entity selected',\n FAILED_UPDATED_PROFILE: 'Failed to update profile',\n ENTITY_FAILED: 'Failed to create Entity:',\n ENTITY_DELETE: 'Entity deleted successfully',\n RECORD_DELETE: 'Records deleted successfully',\n MODEL_DELETE: 'Model Deleted',\n MODEL_DELETE_SUCCESSFULLY: (modelName: string) =>\n `Model ${modelName} has been deleted successfully`,\n DELETE_FAIELD: \"Delete Failed\",\n EMAIL_ALREADY_TAKEN: 'Email is already taken,',\n UPDATED: 'Updated',\n SETTING_UPDATED: 'Settings updated',\n USER_REGISTER: 'User Registered',\n NO_CHANGE: 'No Change',\n NO_SETTING_UPDATE: 'No settings were updated',\n UPDATING_USER: 'Error updating user view:',\n\n /* ---------------------------- RELATION & FILTER ---------------------------- */\n INVALID_FILTER_STRUCTURE: 'Invalid filter structure',\n INVALID_RELATION_TYPE: (relationType: string, fieldName: string) =>\n `Invalid relationType ${relationType} on field ${fieldName}`,\n INVALID_JSON_WHERECLAUSE: 'Invalid whereClause JSON:',\n FIXED_FILTER_NOT_APPLIED: 'Fixed filter not applied due to parsing issues or invalid data',\n SELECT_RELEVANT_FIELD: 'Please select relevant fields used in fixed filter',\n SKIPPING_EMPTY_FIXED_FILTER: 'Skipping invalid/empty fixed filter : ',\n FIELD_NOT_SELECT: 'Fields Not selected!',\n FIELD_NOT_IN_METADATA: (label: string) =>\n `${label} is not present in metadata`,\n SAVE_FILTER_UNDEFINED_NULL: 'Saved filter ID is undefined or null',\n\n /* -------------------------------- FORM / UI -------------------------------- */\n FAILED_UPDATE_FROM: \"Failed to update the form\",\n UPDATING_STEPPER: 'Error updating stepper : ',\n DYNAMIC_FUNCTION_ERROR: 'Error in DynamicFunctionComponent : ',\n ON_FORM_LOAD: 'Error in onFormLoad handler:',\n UNABLE_LOAD_DYNAMIC_MODULE: 'Unable to load dynamic module: ',\n LOADING_COMPONENT: 'Error loading component',\n FORM_LAYOUT_UPDATE: 'Form Layout Updated successfully!',\n LAYOUT: 'Layout',\n MARK_PUBLISH: 'Marked as publish !',\n MARK_UNPUBLISH: 'Marked as unpublish !',\n SAVED: 'Saved',\n FORM_UPDATE: 'Form Updated',\n FORM_UPDATE_SUCCESSFULLY: 'Form updated successfully!',\n FORM_SAVED: 'Form Saved',\n FORM_SAVED_SUCCESSFULLY: 'Form saved successfully!',\n PROFILE_SAVED: 'Profile Saved',\n PROFILE_SAVED_SUCCESSFULLY: 'Profile saved successfully!',\n NO_UPDATE_MADE: 'No updates were made',\n DASHBOARD_LAYOUT_UPDATE_SUCCESSFULLY: 'Dashboard Layout Updated successfully!',\n DASHBOARD_LAYOUT_UPDATE_FAILED: 'Failed to update dashboard layout!',\n\n\n\n\n /* ------------------------------ INTERACTIONS ------------------------------ */\n INTERATCTION_MESSGAE: (message: string, err: any) =>\n `Error handling interaction.message: ${message || String(err)}`,\n APPLY_FAILED: 'Apply Failed',\n APPLY_SUCCESS: 'Apply Successful',\n PREVIEW_INTERACTION: 'Preview clicked for interaction:',\n FAILED_APPLY_INTERACTION: (error: string) =>\n `Failed to apply interaction - ${error}`,\n\n /* --------------------------- PROCESS / BACKEND ---------------------------- */\n BACKEND_UNAVAILABLE: 'Backend Unavailable',\n SEEDER_NOT_TRIGGERED: 'Seeder not triggered. Could not reach backend',\n IS_SEEDER_ERROR: 'isSeederError',\n IS_SEEDER_SUCCESS: 'isSeederSuccess',\n SEEDER_ERROR: 'Seeder Error',\n SEEDER_NOT_RUN: 'Could not run seeder. Please try again',\n BACKEND_NOT_ALIVE: 'Backend is not alive, cannot run seeder',\n FAILED_TRIGGER_MCP_CLIENT_JOB: 'Failed to trigger MCP client job',\n\n /* --------------------------------- NETWORK --------------------------------- */\n API_ERROR: 'API error: ',\n ERROR_OCCURED: \"An error occurred\",\n FETCHING_MESSAGE: 'Error fetching messages:',\n FETCHING_USER: 'Error fetching users:',\n FETCHING_ITEMS: 'Error fetching items',\n LOAD_MORE_DATA: 'Failed to load more data:',\n NETWORK_ERROR: 'Network error occurred. Please try again',\n NETWORK_OR_SERVER_ERROR: 'Network or server error occurred',\n DELETE_ERROR: 'Delete error',\n FORBIDDEN_ERROR: 'You do not have permission to perform this action.',\n\n /* ----------------------------- IMPORT / EXPORT ----------------------------- */\n IMPORT_ERROR: 'Import Error',\n IMPORT_FILE_READ_FAILED: \"We couldn't read the uploaded file. Please verify the headers and sample data, then try again.\",\n IMPORT_NO_SAMPLE_VALUE: 'No sample value',\n IMPORT_UNSUPPORTED_SAMPLE_VALUE: 'Unsupported sample value',\n IMPORT_NO_MATCHED_COLUMNS: \"We couldn't match any columns from this file. Upload the correct template or map at least one column before importing.\",\n IMPORT_UNMAPPED_COLUMNS: 'Some file columns are still unmapped. Map them to a SolidX field or remove them before importing.',\n IMPORT_DUPLICATE_FIELD_MAPPING: 'Each SolidX field can only be mapped once. Update duplicate mappings before importing.',\n IMPORT_REQUIRED_FIELD_MAPPING_TITLE: 'Required fields are still unmapped',\n IMPORT_REQUIRED_FIELD_MAPPING_MESSAGE: (count: number) =>\n `${count} required field${count > 1 ? 's are' : ' is'} still unmapped. Map ${count > 1 ? 'them' : 'it'} before importing.`,\n IMPORT_TEMPLATE_MISMATCH_TITLE: 'Template mismatch detected',\n IMPORT_TEMPLATE_MISMATCH_MESSAGE: \"We couldn't auto-match any columns from this file. This usually means the uploaded file headers don't match the expected import template.\",\n IMPORT_MAPPING_INCOMPLETE_TITLE: 'Mapping still incomplete',\n IMPORT_MAPPING_INCOMPLETE_MESSAGE: (count: number) =>\n `${count} importable field${count > 1 ? 's are' : ' is'} still unmapped. Map ${count > 1 ? 'them' : 'it'} before importing.`,\n IMPORT_UNABLE_TO_READ_FILE: 'Unable to read import file',\n EXPORT_SUCCESSFULLY: 'File Exported Successfully',\n SEND_REPORT: 'Can you send me the report?',\n\n /* ----------------------------------- MISC ---------------------------------- */\n ERROR: 'Error',\n FAILED: 'Failed',\n IS_SUCCESS: 'Success',\n DELETED: 'Deleted',\n UPDATE_FAILED: 'Update failed',\n FAILED_CREATE_MENU: 'Failed to create menu',\n ORM_TYPE_REQUIRED: 'Orm Type is required!',\n ACTION_FUNCTION: (action: string) =>\n `Action function \"${action}\" not found.`,\n DUPLICATE_KEY: \"Duplicate Key\",\n ERROR_DECODING: 'Error decoding or parsing query string from local storage:',\n CREATE_MODEL: 'Failed to create Model',\n TEMPLATE_FAILED: 'Failed to create template',\n SELECT_FROMAT: 'Please Select Format',\n PARSED_FIELD: 'Failed to parse fields:',\n CODE_GENERTAE_SUCCESSFULLY: 'Code Generated Successfully',\n RESPONSE_GENERATE_CODE_HANDLER: \"response generate code handler\",\n KANBAN_UPDATED: \"Kanban View Updated!\",\n TRY_AGAIN: 'Please try again later',\n REMOVE_ROOT_NODE: \"Cannot remove the root node\",\n ATTEMPT_FETCH_MESSAGE_STATUS: (queryString: string) =>\n `Attempting to fetch mq message status with query string: ${queryString}`,\n FAILED_FETCH_MESSAGE: \"Failed to fetch MQ message status:\",\n FAILED_CREATE_INVOICE: \"Failed to create Invoice:\",\n\n /* ----------------------------------- CRUD ---------------------------------- */\n ADD_ATLEAST_ONE_FIELD: \"Please add at least one field\",\n\n\n /* ----------------------------------- Validation ---------------------------------- */\n\n // -------------------- REQUIRED / BASIC FIELD ERRORS --------------------\n FIELD_REUQIRED: (field: string) => `${field} is required`,\n FIELD_INAVLID_FORMAT: (field: string) => `Invalid ${field} format`,\n FIELD_INVALID: (field: string) => `Invalid ${field}`,\n ENTER_VALID_FIELD: (field: string) => `Please enter a valid ${field}.`,\n FIELD_INVALID_DATA: (field: string) => `${field} has invalid data.`,\n FIELD_MUST_MATCH: (field: string) => `${field}s must match.`,\n FIELD_ALREADY_USE: (field: string, field1: string) =>\n `${field} Already in use. Please choose a different ${field1}.`,\n FIELD_MUST_BE_AN: (field: string, type: string) =>\n `${field} must be an ${type}\"`,\n REQUIRED_REALTION: 'required-relation',\n VALIDATE_SELECTION: 'valid-selection',\n\n // -------------------- PASSWORD VALIDATION --------------------\n PASSWORD_DO_NOT_MEET: 'Password does not meet complexity requirements',\n PASSWORD_CHARACTER: (count: Number) =>\n `Password must be at least ${count} characters`,\n PASSWORD_CONTAIN: (contain: string, type = 'letter') =>\n `Password must contain at least one ${contain} ${type}`,\n\n // -------------------- LENGTH VALIDATION --------------------\n FIELD_MINIMUM_CHARACTER: (field: string, characters: Number) =>\n `${field} should be at-least ${characters} characters long.`,\n FIELD_MAXIMUM_CHARACTER: (field: string, characters: Number) =>\n `${field} should not be more than ${characters} characters long.`,\n\n // -------------------- OTP --------------------\n OTP_CHARACTER: (count: Number) =>\n `OTP must be a ${count}-digit number`,\n OPT_RESEND: 'OTP Resent Successfully',\n OPT_SEND: 'OTP Sent Successfully',\n\n // -------------------- UPDATE MESSAGES --------------------\n FIELD_UPDATE: (field: string) => `${field} Updated`,\n FIELD_UPDATE_SUCCESSFULLY: (field: string) =>\n `${field} Updated Successfully`,\n\n // -------------------- FILE / OBJECT VALIDATION --------------------\n MUST_BE_FILE_OBJECT: (field: string) =>\n `${field} must be a file, an object, or empty`,\n FILE_OBJECT: 'file-or-object',\n EMPTY_VALID_ARRAY: 'is-empty-or-valid-array',\n CONTAIN_EMPTY_ARRAY_OR_FILE_OBECT: (field: string) =>\n `${field} must be an empty array or contain only files/objects.`,\n\n // -------------------- SELECTION VALIDATION --------------------\n FIELD_MUST_HAVE_ITEM: (field: string) =>\n `${field} must have at least one item.`,\n SELECT_ATLEAST_ONE: (field: string) =>\n `You must select at least one ${field}.`,\n SELECT_VALID_FROM_DROPDOWN: (field: string) =>\n `Please select a valid ${field} from the dropdown.`,\n SELECT_ONE_OPERATION: 'Select at least one operation',\n\n // -------------------- JSON VALIDATION --------------------\n IS_VALID_JSON: 'is-valid-json',\n COMPUTED_FIELD_VALIDATE_JSON:\n 'Computed Field Value Provider Context Value must be valid JSON',\n\n // -------------------- OTHER RULES --------------------\n GREATER_THAN_MIN: 'greater-than-min',\n RELATION_CASCADE: 'Relation Cascade Value is required for one-to-one relationships',\n SNAKE_CASE: (name: string) =>\n `${name} name must be in snake_case (lowercase letters, numbers, and underscores only).`,\n\n\n\n};\n"]}
|
|
1
|
+
{"version":3,"file":"error-messages.js","sourceRoot":"","sources":["../../src/constants/error-messages.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,cAAc,GAAG;IAE5B,gFAAgF;IAChF,mBAAmB,EAAE,qBAAqB;IAC1C,qBAAqB,EAAE,uBAAuB;IAC9C,mBAAmB,EAAE,qBAAqB;IAC1C,eAAe,EAAE,qCAAqC;IACtD,oBAAoB,EAAE,kCAAkC;IACxD,WAAW,EAAE,aAAa;IAC1B,aAAa,EAAE,eAAe;IAC9B,WAAW,EAAE,aAAa;IAC1B,eAAe,EAAE,wBAAwB;IACzC,aAAa,EAAE,iBAAiB;IAChC,kBAAkB,EAAE,oBAAoB;IAExC,gFAAgF;IAChF,yBAAyB,EAAE,2BAA2B;IACtD,qBAAqB,EAAE,iCAAiC;IACxD,iBAAiB,EAAE,4BAA4B;IAC/C,UAAU,EAAE,sBAAsB;IAClC,qBAAqB,EAAE,+BAA+B;IACtD,eAAe,EAAE,8BAA8B;IAE/C,gFAAgF;IAChF,WAAW,EAAE,aAAa;IAC1B,UAAU,EAAE,UAAC,SAAiB;QAC5B,OAAA,uCAAgC,SAAS,eAAY;IAArD,CAAqD;IAEvD,iFAAiF;IACjF,qBAAqB,EAAE,2BAA2B;IAElD,iFAAiF;IACjF,oBAAoB,EAAE,sBAAsB;IAC5C,kBAAkB,EAAE,oBAAoB;IACxC,oBAAoB,EAAE,sBAAsB;IAC5C,eAAe,EAAE,iBAAiB;IAClC,UAAU,EAAE,gBAAgB;IAC5B,aAAa,EAAE,0BAA0B;IACzC,cAAc,EAAE,UAAC,QAAgB;QAC/B,OAAA,yCAAkC,QAAQ,SAAM;IAAhD,CAAgD;IAClD,eAAe,EAAE,mBAAmB;IACpC,kBAAkB,EAAE,qBAAqB;IACzC,YAAY,EAAE,cAAc;IAC5B,mBAAmB,EAAE,sBAAsB;IAC3C,oBAAoB,EAAE,wBAAwB;IAC9C,sBAAsB,EAAE,yBAAyB;IACjD,WAAW,EAAE,eAAe;IAC5B,wBAAwB,EAAE,4BAA4B;IAEtD,kFAAkF;IAClF,kBAAkB,EAAE,oBAAoB;IACxC,sBAAsB,EAAE,0BAA0B;IAClD,aAAa,EAAE,0BAA0B;IACzC,aAAa,EAAE,6BAA6B;IAC5C,aAAa,EAAE,8BAA8B;IAC7C,YAAY,EAAE,eAAe;IAC7B,yBAAyB,EAAE,UAAC,SAAiB;QAC3C,OAAA,gBAAS,SAAS,mCAAgC;IAAlD,CAAkD;IACpD,aAAa,EAAE,eAAe;IAC9B,mBAAmB,EAAE,yBAAyB;IAC9C,OAAO,EAAE,SAAS;IAClB,eAAe,EAAE,kBAAkB;IACnC,aAAa,EAAE,iBAAiB;IAChC,SAAS,EAAE,WAAW;IACtB,iBAAiB,EAAE,0BAA0B;IAC7C,aAAa,EAAE,2BAA2B;IAE1C,iFAAiF;IACjF,wBAAwB,EAAE,0BAA0B;IACpD,qBAAqB,EAAE,UAAC,YAAoB,EAAE,SAAiB;QAC7D,OAAA,+BAAwB,YAAY,uBAAa,SAAS,CAAE;IAA5D,CAA4D;IAC9D,wBAAwB,EAAE,2BAA2B;IACrD,wBAAwB,EAAE,gEAAgE;IAC1F,qBAAqB,EAAE,oDAAoD;IAC3E,2BAA2B,EAAE,wCAAwC;IACrE,gBAAgB,EAAE,sBAAsB;IACxC,qBAAqB,EAAE,UAAC,KAAa;QACnC,OAAA,UAAG,KAAK,gCAA6B;IAArC,CAAqC;IACvC,0BAA0B,EAAE,sCAAsC;IAElE,iFAAiF;IACjF,kBAAkB,EAAE,2BAA2B;IAC/C,gBAAgB,EAAE,2BAA2B;IAC7C,sBAAsB,EAAE,sCAAsC;IAC9D,YAAY,EAAE,8BAA8B;IAC5C,0BAA0B,EAAE,iCAAiC;IAC7D,iBAAiB,EAAE,yBAAyB;IAC5C,kBAAkB,EAAE,mCAAmC;IACvD,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,qBAAqB;IACnC,cAAc,EAAE,uBAAuB;IACvC,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,cAAc;IAC3B,wBAAwB,EAAE,4BAA4B;IACtD,UAAU,EAAE,YAAY;IACxB,uBAAuB,EAAE,0BAA0B;IACnD,aAAa,EAAE,eAAe;IAC9B,0BAA0B,EAAE,6BAA6B;IACzD,cAAc,EAAE,sBAAsB;IACtC,oCAAoC,EAAE,wCAAwC;IAC9E,8BAA8B,EAAE,oCAAoC;IAKpE,gFAAgF;IAChF,oBAAoB,EAAE,UAAC,OAAe,EAAE,GAAQ;QAC9C,OAAA,8CAAuC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAE;IAA/D,CAA+D;IACjE,YAAY,EAAE,cAAc;IAC5B,aAAa,EAAE,kBAAkB;IACjC,mBAAmB,EAAE,kCAAkC;IACvD,wBAAwB,EAAE,UAAC,KAAa;QACtC,OAAA,wCAAiC,KAAK,CAAE;IAAxC,CAAwC;IAE1C,gFAAgF;IAChF,mBAAmB,EAAE,qBAAqB;IAC1C,oBAAoB,EAAE,+CAA+C;IACrE,eAAe,EAAE,eAAe;IAChC,iBAAiB,EAAE,iBAAiB;IACpC,YAAY,EAAE,cAAc;IAC5B,cAAc,EAAE,wCAAwC;IACxD,iBAAiB,EAAE,yCAAyC;IAC5D,6BAA6B,EAAE,kCAAkC;IAEjE,iFAAiF;IACjF,SAAS,EAAE,aAAa;IACxB,aAAa,EAAE,mBAAmB;IAClC,gBAAgB,EAAE,0BAA0B;IAC5C,aAAa,EAAE,uBAAuB;IACtC,cAAc,EAAE,sBAAsB;IACtC,cAAc,EAAE,2BAA2B;IAC3C,aAAa,EAAE,0CAA0C;IACzD,uBAAuB,EAAE,kCAAkC;IAC3D,YAAY,EAAE,cAAc;IAC5B,eAAe,EAAE,oDAAoD;IAErE,iFAAiF;IACjF,YAAY,EAAE,cAAc;IAC5B,uBAAuB,EAAE,gGAAgG;IACzH,sBAAsB,EAAE,iBAAiB;IACzC,+BAA+B,EAAE,0BAA0B;IAC3D,yBAAyB,EAAE,wHAAwH;IACnJ,uBAAuB,EAAE,mGAAmG;IAC5H,8BAA8B,EAAE,wFAAwF;IACxH,mCAAmC,EAAE,oCAAoC;IACzE,qCAAqC,EAAE,UAAC,KAAa;QACnD,OAAA,UAAG,KAAK,4BAAkB,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,kCAAwB,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,uBAAoB;IAA1H,CAA0H;IAC5H,8BAA8B,EAAE,4BAA4B;IAC5D,gCAAgC,EAAE,2IAA2I;IAC7K,+BAA+B,EAAE,0BAA0B;IAC3D,iCAAiC,EAAE,UAAC,KAAa;QAC/C,OAAA,UAAG,KAAK,8BAAoB,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,kCAAwB,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,uBAAoB;IAA5H,CAA4H;IAC9H,0BAA0B,EAAE,4BAA4B;IACxD,mBAAmB,EAAE,4BAA4B;IACjD,WAAW,EAAE,6BAA6B;IAE1C,iFAAiF;IACjF,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,SAAS;IACrB,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,eAAe;IAC9B,kBAAkB,EAAE,uBAAuB;IAC3C,iBAAiB,EAAE,uBAAuB;IAC1C,eAAe,EAAE,UAAC,MAAc;QAC9B,OAAA,4BAAoB,MAAM,kBAAc;IAAxC,CAAwC;IAC1C,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,4DAA4D;IAC5E,YAAY,EAAE,wBAAwB;IACtC,eAAe,EAAE,2BAA2B;IAC5C,aAAa,EAAE,sBAAsB;IACrC,YAAY,EAAE,yBAAyB;IACvC,0BAA0B,EAAE,6BAA6B;IACzD,8BAA8B,EAAE,gCAAgC;IAChE,oBAAoB,EAAE,yBAAyB;IAC/C,cAAc,EAAE,sBAAsB;IACtC,SAAS,EAAE,wBAAwB;IACnC,gBAAgB,EAAE,6BAA6B;IAC/C,4BAA4B,EAAE,UAAC,WAAmB;QAChD,OAAA,mEAA4D,WAAW,CAAE;IAAzE,CAAyE;IAC3E,oBAAoB,EAAE,oCAAoC;IAC1D,qBAAqB,EAAE,2BAA2B;IAElD,iFAAiF;IACjF,qBAAqB,EAAE,+BAA+B;IAGtD,uFAAuF;IAEvF,0EAA0E;IAC1E,cAAc,EAAE,UAAC,KAAa,IAAK,OAAA,UAAG,KAAK,iBAAc,EAAtB,CAAsB;IACzD,oBAAoB,EAAE,UAAC,KAAa,IAAK,OAAA,kBAAW,KAAK,YAAS,EAAzB,CAAyB;IAClE,aAAa,EAAE,UAAC,KAAa,IAAK,OAAA,kBAAW,KAAK,CAAE,EAAlB,CAAkB;IACpD,iBAAiB,EAAE,UAAC,KAAa,IAAK,OAAA,+BAAwB,KAAK,MAAG,EAAhC,CAAgC;IACtE,kBAAkB,EAAE,UAAC,KAAa,IAAK,OAAA,UAAG,KAAK,wBAAqB,EAA7B,CAA6B;IACpE,gBAAgB,EAAE,UAAC,KAAa,IAAK,OAAA,UAAG,KAAK,kBAAe,EAAvB,CAAuB;IAC5D,iBAAiB,EAAE,UAAC,KAAa,EAAE,MAAc;QAC/C,OAAA,UAAG,KAAK,wDAA8C,MAAM,MAAG;IAA/D,CAA+D;IACjE,gBAAgB,EAAE,UAAC,KAAa,EAAE,IAAY;QAC5C,OAAA,UAAG,KAAK,yBAAe,IAAI,OAAG;IAA9B,CAA8B;IAChC,iBAAiB,EAAE,mBAAmB;IACtC,kBAAkB,EAAE,iBAAiB;IAErC,gEAAgE;IAChE,oBAAoB,EAAE,gDAAgD;IACtE,kBAAkB,EAAE,UAAC,KAAa;QAChC,OAAA,oCAA6B,KAAK,gBAAa;IAA/C,CAA+C;IACjD,gBAAgB,EAAE,UAAC,OAAe,EAAE,IAAe;QAAf,qBAAA,EAAA,eAAe;QACjD,OAAA,6CAAsC,OAAO,cAAI,IAAI,CAAE;IAAvD,CAAuD;IAEzD,8DAA8D;IAC9D,uBAAuB,EAAE,UAAC,KAAa,EAAE,UAAkB;QACzD,OAAA,UAAG,KAAK,iCAAuB,UAAU,sBAAmB;IAA5D,CAA4D;IAC9D,uBAAuB,EAAE,UAAC,KAAa,EAAE,UAAkB;QACzD,OAAA,UAAG,KAAK,sCAA4B,UAAU,sBAAmB;IAAjE,CAAiE;IAEnE,gDAAgD;IAChD,aAAa,EAAE,UAAC,KAAa;QAC3B,OAAA,wBAAiB,KAAK,kBAAe;IAArC,CAAqC;IACvC,UAAU,EAAE,yBAAyB;IACrC,QAAQ,EAAE,uBAAuB;IAEjC,4DAA4D;IAC5D,YAAY,EAAE,UAAC,KAAa,IAAK,OAAA,UAAG,KAAK,aAAU,EAAlB,CAAkB;IACnD,yBAAyB,EAAE,UAAC,KAAa;QACvC,OAAA,UAAG,KAAK,0BAAuB;IAA/B,CAA+B;IAEjC,qEAAqE;IACrE,mBAAmB,EAAE,UAAC,KAAa;QACjC,OAAA,UAAG,KAAK,0CAAuC;IAA/C,CAA+C;IACjD,WAAW,EAAE,gBAAgB;IAC7B,iBAAiB,EAAE,yBAAyB;IAC5C,iCAAiC,EAAE,UAAC,KAAa;QAC/C,OAAA,UAAG,KAAK,2DAAwD;IAAhE,CAAgE;IAElE,iEAAiE;IACjE,oBAAoB,EAAE,UAAC,KAAa;QAClC,OAAA,UAAG,KAAK,kCAA+B;IAAvC,CAAuC;IACzC,kBAAkB,EAAE,UAAC,KAAa;QAChC,OAAA,uCAAgC,KAAK,MAAG;IAAxC,CAAwC;IAC1C,0BAA0B,EAAE,UAAC,KAAa;QACxC,OAAA,gCAAyB,KAAK,wBAAqB;IAAnD,CAAmD;IACrD,oBAAoB,EAAE,+BAA+B;IAErD,4DAA4D;IAC5D,aAAa,EAAE,eAAe;IAC9B,4BAA4B,EAC1B,gEAAgE;IAElE,wDAAwD;IACxD,gBAAgB,EAAE,kBAAkB;IACpC,gBAAgB,EAAE,iEAAiE;IACnF,UAAU,EAAE,UAAC,IAAY;QACvB,OAAA,UAAG,IAAI,oFAAiF;IAAxF,CAAwF;CAI3F,CAAC","sourcesContent":["export const ERROR_MESSAGES = {\n\n /* ----------------------------- AUTHENTICATION ----------------------------- */\n NO_AUTH_TOKEN_FOUND: 'No auth token found',\n AUTHENICATION__FAILED: 'Authentication failed',\n INVALID_CREDENTIALS: 'Invalid Credentials',\n SESSION_EXPIRED: 'Session Expired. Please Login Again',\n FAILED_REFRESH_TOKEN: 'Failed to refresh access token: ',\n LOGIN_ERROR: 'Login Error',\n LOGIN_SUCCESS: 'Login Success',\n PLEASE_WAIT: \"Please wait\",\n SOMETHING_WRONG: 'Something Went Wrong !',\n LOGOUT_FAILED: 'Logout Failed !',\n LOGIN_SUCCESSFULLY: 'Login Successfully',\n\n /* -------------------------------- PASSWORD -------------------------------- */\n FAILED_TO_UPDATE_PASSWORD: 'Failed to update password',\n INVALID_PASSWORD_REGX: 'Invalid password regex in .env:',\n INCORRECT_CURRENT: \"Incorrect Current Password\",\n MUST_MATCH: \"Passwords must match\",\n FORCE_PASSWORD_CHANGE: \"Force Password Change Success\",\n PASSWORD_CHANGE: 'Password Change Successfully',\n\n /* ---------------------------------- OTP ----------------------------------- */\n INAVLID_OTP: \"Invalid OTP\",\n OPT_FORMAT: (formatted: string) =>\n `You can request a new OTP in ${formatted} second(s)`,\n\n /* ---------------------------- AUTH / DASHBOARD ----------------------------- */\n DASHBOARD_REDIRECTING: \"Redirecting to dashboard.\",\n\n /* ------------------------------- FILE ERRORS ------------------------------- */\n FILE_DOWNLOAD_FAILED: 'File download failed',\n FAILED_TO_DOWNLOAD: 'Failed to download',\n FAILED_TO_FETCH_FILE: 'Failed to fetch file',\n DOWNLOAD_FAILED: 'Download failed',\n FILE_LARGE: 'File too large',\n MAX_FILE_SIZE: 'Maximum file size is 2MB',\n FILE_TOO_LAREG: (fileSize: string) =>\n `File is too large. Max size is ${fileSize} KB.`,\n FILE_NOT_ACCEPT: 'File not accepted',\n FAILED_UPLOAD_FILE: 'Fail to upload file',\n MISSING_FILE: 'Missing File',\n ERROR_DELETING_FILE: 'Error deleting file:',\n FAILED_DELETED_IMAGE: 'Failed to delete image',\n PROFILE_PICTURE_REMOVE: \"Profile picture removed\",\n FILE_UPLOAD: 'File Uploaded',\n FILE_UPLOAD_SUCCESSFULLY: 'File Uploaded Successfully',\n\n /* ------------------------------- USER / ENTITY ------------------------------ */\n NO_ENTITY_SELECTED: 'No entity selected',\n FAILED_UPDATED_PROFILE: 'Failed to update profile',\n ENTITY_FAILED: 'Failed to create Entity:',\n ENTITY_DELETE: 'Entity deleted successfully',\n RECORD_DELETE: 'Records deleted successfully',\n MODEL_DELETE: 'Model Deleted',\n MODEL_DELETE_SUCCESSFULLY: (modelName: string) =>\n `Model ${modelName} has been deleted successfully`,\n DELETE_FAIELD: \"Delete Failed\",\n EMAIL_ALREADY_TAKEN: 'Email is already taken,',\n UPDATED: 'Updated',\n SETTING_UPDATED: 'Settings updated',\n USER_REGISTER: 'User Registered',\n NO_CHANGE: 'No Change',\n NO_SETTING_UPDATE: 'No settings were updated',\n UPDATING_USER: 'Error updating user view:',\n\n /* ---------------------------- RELATION & FILTER ---------------------------- */\n INVALID_FILTER_STRUCTURE: 'Invalid filter structure',\n INVALID_RELATION_TYPE: (relationType: string, fieldName: string) =>\n `Invalid relationType ${relationType} on field ${fieldName}`,\n INVALID_JSON_WHERECLAUSE: 'Invalid whereClause JSON:',\n FIXED_FILTER_NOT_APPLIED: 'Fixed filter not applied due to parsing issues or invalid data',\n SELECT_RELEVANT_FIELD: 'Please select relevant fields used in fixed filter',\n SKIPPING_EMPTY_FIXED_FILTER: 'Skipping invalid/empty fixed filter : ',\n FIELD_NOT_SELECT: 'Fields Not selected!',\n FIELD_NOT_IN_METADATA: (label: string) =>\n `${label} is not present in metadata`,\n SAVE_FILTER_UNDEFINED_NULL: 'Saved filter ID is undefined or null',\n\n /* -------------------------------- FORM / UI -------------------------------- */\n FAILED_UPDATE_FROM: \"Failed to update the form\",\n UPDATING_STEPPER: 'Error updating stepper : ',\n DYNAMIC_FUNCTION_ERROR: 'Error in DynamicFunctionComponent : ',\n ON_FORM_LOAD: 'Error in onFormLoad handler:',\n UNABLE_LOAD_DYNAMIC_MODULE: 'Unable to load dynamic module: ',\n LOADING_COMPONENT: 'Error loading component',\n FORM_LAYOUT_UPDATE: 'Form Layout Updated successfully!',\n LAYOUT: 'Layout',\n MARK_PUBLISH: 'Marked as publish !',\n MARK_UNPUBLISH: 'Marked as unpublish !',\n SAVED: 'Saved',\n FORM_UPDATE: 'Form Updated',\n FORM_UPDATE_SUCCESSFULLY: 'Form updated successfully!',\n FORM_SAVED: 'Form Saved',\n FORM_SAVED_SUCCESSFULLY: 'Form saved successfully!',\n PROFILE_SAVED: 'Profile Saved',\n PROFILE_SAVED_SUCCESSFULLY: 'Profile saved successfully!',\n NO_UPDATE_MADE: 'No updates were made',\n DASHBOARD_LAYOUT_UPDATE_SUCCESSFULLY: 'Dashboard Layout Updated successfully!',\n DASHBOARD_LAYOUT_UPDATE_FAILED: 'Failed to update dashboard layout!',\n\n\n\n\n /* ------------------------------ INTERACTIONS ------------------------------ */\n INTERATCTION_MESSGAE: (message: string, err: any) =>\n `Error handling interaction.message: ${message || String(err)}`,\n APPLY_FAILED: 'Apply Failed',\n APPLY_SUCCESS: 'Apply Successful',\n PREVIEW_INTERACTION: 'Preview clicked for interaction:',\n FAILED_APPLY_INTERACTION: (error: string) =>\n `Failed to apply interaction - ${error}`,\n\n /* --------------------------- PROCESS / BACKEND ---------------------------- */\n BACKEND_UNAVAILABLE: 'Backend Unavailable',\n SEEDER_NOT_TRIGGERED: 'Seeder not triggered. Could not reach backend',\n IS_SEEDER_ERROR: 'isSeederError',\n IS_SEEDER_SUCCESS: 'isSeederSuccess',\n SEEDER_ERROR: 'Seeder Error',\n SEEDER_NOT_RUN: 'Could not run seeder. Please try again',\n BACKEND_NOT_ALIVE: 'Backend is not alive, cannot run seeder',\n FAILED_TRIGGER_MCP_CLIENT_JOB: 'Failed to trigger MCP client job',\n\n /* --------------------------------- NETWORK --------------------------------- */\n API_ERROR: 'API error: ',\n ERROR_OCCURED: \"An error occurred\",\n FETCHING_MESSAGE: 'Error fetching messages:',\n FETCHING_USER: 'Error fetching users:',\n FETCHING_ITEMS: 'Error fetching items',\n LOAD_MORE_DATA: 'Failed to load more data:',\n NETWORK_ERROR: 'Network error occurred. Please try again',\n NETWORK_OR_SERVER_ERROR: 'Network or server error occurred',\n DELETE_ERROR: 'Delete error',\n FORBIDDEN_ERROR: 'You do not have permission to perform this action.',\n\n /* ----------------------------- IMPORT / EXPORT ----------------------------- */\n IMPORT_ERROR: 'Import Error',\n IMPORT_FILE_READ_FAILED: \"We couldn't read the uploaded file. Please verify the headers and sample data, then try again.\",\n IMPORT_NO_SAMPLE_VALUE: 'No sample value',\n IMPORT_UNSUPPORTED_SAMPLE_VALUE: 'Unsupported sample value',\n IMPORT_NO_MATCHED_COLUMNS: \"We couldn't match any columns from this file. Upload the correct template or map at least one column before importing.\",\n IMPORT_UNMAPPED_COLUMNS: 'Some file columns are still unmapped. Map them to a SolidX field or remove them before importing.',\n IMPORT_DUPLICATE_FIELD_MAPPING: 'Each SolidX field can only be mapped once. Update duplicate mappings before importing.',\n IMPORT_REQUIRED_FIELD_MAPPING_TITLE: 'Required fields are still unmapped',\n IMPORT_REQUIRED_FIELD_MAPPING_MESSAGE: (count: number) =>\n `${count} required field${count > 1 ? 's are' : ' is'} still unmapped. Map ${count > 1 ? 'them' : 'it'} before importing.`,\n IMPORT_TEMPLATE_MISMATCH_TITLE: 'Template mismatch detected',\n IMPORT_TEMPLATE_MISMATCH_MESSAGE: \"We couldn't auto-match any columns from this file. This usually means the uploaded file headers don't match the expected import template.\",\n IMPORT_MAPPING_INCOMPLETE_TITLE: 'Mapping still incomplete',\n IMPORT_MAPPING_INCOMPLETE_MESSAGE: (count: number) =>\n `${count} importable field${count > 1 ? 's are' : ' is'} still unmapped. Map ${count > 1 ? 'them' : 'it'} before importing.`,\n IMPORT_UNABLE_TO_READ_FILE: 'Unable to read import file',\n EXPORT_SUCCESSFULLY: 'File Exported Successfully',\n SEND_REPORT: 'Can you send me the report?',\n\n /* ----------------------------------- MISC ---------------------------------- */\n ERROR: 'Error',\n FAILED: 'Failed',\n IS_SUCCESS: 'Success',\n DELETED: 'Deleted',\n UPDATE_FAILED: 'Update failed',\n FAILED_CREATE_MENU: 'Failed to create menu',\n ORM_TYPE_REQUIRED: 'Orm Type is required!',\n ACTION_FUNCTION: (action: string) =>\n `Action function \"${action}\" not found.`,\n DUPLICATE_KEY: \"Duplicate Key\",\n ERROR_DECODING: 'Error decoding or parsing query string from local storage:',\n CREATE_MODEL: 'Failed to create Model',\n TEMPLATE_FAILED: 'Failed to create template',\n SELECT_FROMAT: 'Please Select Format',\n PARSED_FIELD: 'Failed to parse fields:',\n CODE_GENERTAE_SUCCESSFULLY: 'Code Generated Successfully',\n RESPONSE_GENERATE_CODE_HANDLER: \"response generate code handler\",\n CODE_GENERATE_FAILED: \"Failed to generate code\",\n KANBAN_UPDATED: \"Kanban View Updated!\",\n TRY_AGAIN: 'Please try again later',\n REMOVE_ROOT_NODE: \"Cannot remove the root node\",\n ATTEMPT_FETCH_MESSAGE_STATUS: (queryString: string) =>\n `Attempting to fetch mq message status with query string: ${queryString}`,\n FAILED_FETCH_MESSAGE: \"Failed to fetch MQ message status:\",\n FAILED_CREATE_INVOICE: \"Failed to create Invoice:\",\n\n /* ----------------------------------- CRUD ---------------------------------- */\n ADD_ATLEAST_ONE_FIELD: \"Please add at least one field\",\n\n\n /* ----------------------------------- Validation ---------------------------------- */\n\n // -------------------- REQUIRED / BASIC FIELD ERRORS --------------------\n FIELD_REUQIRED: (field: string) => `${field} is required`,\n FIELD_INAVLID_FORMAT: (field: string) => `Invalid ${field} format`,\n FIELD_INVALID: (field: string) => `Invalid ${field}`,\n ENTER_VALID_FIELD: (field: string) => `Please enter a valid ${field}.`,\n FIELD_INVALID_DATA: (field: string) => `${field} has invalid data.`,\n FIELD_MUST_MATCH: (field: string) => `${field}s must match.`,\n FIELD_ALREADY_USE: (field: string, field1: string) =>\n `${field} Already in use. Please choose a different ${field1}.`,\n FIELD_MUST_BE_AN: (field: string, type: string) =>\n `${field} must be an ${type}\"`,\n REQUIRED_REALTION: 'required-relation',\n VALIDATE_SELECTION: 'valid-selection',\n\n // -------------------- PASSWORD VALIDATION --------------------\n PASSWORD_DO_NOT_MEET: 'Password does not meet complexity requirements',\n PASSWORD_CHARACTER: (count: Number) =>\n `Password must be at least ${count} characters`,\n PASSWORD_CONTAIN: (contain: string, type = 'letter') =>\n `Password must contain at least one ${contain} ${type}`,\n\n // -------------------- LENGTH VALIDATION --------------------\n FIELD_MINIMUM_CHARACTER: (field: string, characters: Number) =>\n `${field} should be at-least ${characters} characters long.`,\n FIELD_MAXIMUM_CHARACTER: (field: string, characters: Number) =>\n `${field} should not be more than ${characters} characters long.`,\n\n // -------------------- OTP --------------------\n OTP_CHARACTER: (count: Number) =>\n `OTP must be a ${count}-digit number`,\n OPT_RESEND: 'OTP Resent Successfully',\n OPT_SEND: 'OTP Sent Successfully',\n\n // -------------------- UPDATE MESSAGES --------------------\n FIELD_UPDATE: (field: string) => `${field} Updated`,\n FIELD_UPDATE_SUCCESSFULLY: (field: string) =>\n `${field} Updated Successfully`,\n\n // -------------------- FILE / OBJECT VALIDATION --------------------\n MUST_BE_FILE_OBJECT: (field: string) =>\n `${field} must be a file, an object, or empty`,\n FILE_OBJECT: 'file-or-object',\n EMPTY_VALID_ARRAY: 'is-empty-or-valid-array',\n CONTAIN_EMPTY_ARRAY_OR_FILE_OBECT: (field: string) =>\n `${field} must be an empty array or contain only files/objects.`,\n\n // -------------------- SELECTION VALIDATION --------------------\n FIELD_MUST_HAVE_ITEM: (field: string) =>\n `${field} must have at least one item.`,\n SELECT_ATLEAST_ONE: (field: string) =>\n `You must select at least one ${field}.`,\n SELECT_VALID_FROM_DROPDOWN: (field: string) =>\n `Please select a valid ${field} from the dropdown.`,\n SELECT_ONE_OPERATION: 'Select at least one operation',\n\n // -------------------- JSON VALIDATION --------------------\n IS_VALID_JSON: 'is-valid-json',\n COMPUTED_FIELD_VALIDATE_JSON:\n 'Computed Field Value Provider Context Value must be valid JSON',\n\n // -------------------- OTHER RULES --------------------\n GREATER_THAN_MIN: 'greater-than-min',\n RELATION_CASCADE: 'Relation Cascade Value is required for one-to-one relationships',\n SNAKE_CASE: (name: string) =>\n `${name} name must be in snake_case (lowercase letters, numbers, and underscores only).`,\n\n\n\n};\n"]}
|
|
@@ -172,6 +172,7 @@ export const ERROR_MESSAGES = {
|
|
|
172
172
|
PARSED_FIELD: 'Failed to parse fields:',
|
|
173
173
|
CODE_GENERTAE_SUCCESSFULLY: 'Code Generated Successfully',
|
|
174
174
|
RESPONSE_GENERATE_CODE_HANDLER: "response generate code handler",
|
|
175
|
+
CODE_GENERATE_FAILED: "Failed to generate code",
|
|
175
176
|
KANBAN_UPDATED: "Kanban View Updated!",
|
|
176
177
|
TRY_AGAIN: 'Please try again later',
|
|
177
178
|
REMOVE_ROOT_NODE: "Cannot remove the root node",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assetUrl.d.ts","sourceRoot":"","sources":["../../src/helpers/assetUrl.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,iBAAiB,SAAU,MAAM,GAAG,IAAI,WAcpD,CAAC;AAEF,eAAO,MAAM,oBAAoB,SAAU,MAAM,GAAG,IAAI,uBAKvD,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { env } from "../adapters/env";
|
|
2
|
+
var encodeAssetUrl = function (src) { return src.replace(/ /g, "%20"); };
|
|
3
|
+
export var normalizeAssetUrl = function (src) {
|
|
4
|
+
if (!src)
|
|
5
|
+
return "";
|
|
6
|
+
var trimmedSrc = src.trim();
|
|
7
|
+
if (!trimmedSrc)
|
|
8
|
+
return "";
|
|
9
|
+
var resolvedSrc = trimmedSrc.startsWith("blob:") ||
|
|
10
|
+
trimmedSrc.startsWith("http") ||
|
|
11
|
+
trimmedSrc.startsWith("/")
|
|
12
|
+
? trimmedSrc
|
|
13
|
+
: "".concat(env("API_URL"), "/").concat(trimmedSrc);
|
|
14
|
+
return encodeAssetUrl(resolvedSrc);
|
|
15
|
+
};
|
|
16
|
+
export var toCssBackgroundImage = function (src) {
|
|
17
|
+
var normalizedSrc = normalizeAssetUrl(src);
|
|
18
|
+
if (!normalizedSrc)
|
|
19
|
+
return undefined;
|
|
20
|
+
return "url(\"".concat(normalizedSrc.replace(/"/g, '\\"'), "\")");
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=assetUrl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assetUrl.js","sourceRoot":"","sources":["../../src/helpers/assetUrl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAEtC,IAAM,cAAc,GAAG,UAAC,GAAW,IAAK,OAAA,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAxB,CAAwB,CAAC;AAEjE,MAAM,CAAC,IAAM,iBAAiB,GAAG,UAAC,GAAmB;IACnD,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IAEpB,IAAM,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAE3B,IAAM,WAAW,GACf,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC;QAC9B,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC;QAC7B,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC;QACxB,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,UAAG,GAAG,CAAC,SAAS,CAAC,cAAI,UAAU,CAAE,CAAC;IAExC,OAAO,cAAc,CAAC,WAAW,CAAC,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,oBAAoB,GAAG,UAAC,GAAmB;IACtD,IAAM,aAAa,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,CAAC,aAAa;QAAE,OAAO,SAAS,CAAC;IAErC,OAAO,gBAAQ,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,QAAI,CAAC;AACxD,CAAC,CAAC","sourcesContent":["import { env } from \"../adapters/env\";\n\nconst encodeAssetUrl = (src: string) => src.replace(/ /g, \"%20\");\n\nexport const normalizeAssetUrl = (src?: string | null) => {\n if (!src) return \"\";\n\n const trimmedSrc = src.trim();\n if (!trimmedSrc) return \"\";\n\n const resolvedSrc =\n trimmedSrc.startsWith(\"blob:\") ||\n trimmedSrc.startsWith(\"http\") ||\n trimmedSrc.startsWith(\"/\")\n ? trimmedSrc\n : `${env(\"API_URL\")}/${trimmedSrc}`;\n\n return encodeAssetUrl(resolvedSrc);\n};\n\nexport const toCssBackgroundImage = (src?: string | null) => {\n const normalizedSrc = normalizeAssetUrl(src);\n if (!normalizedSrc) return undefined;\n\n return `url(\"${normalizedSrc.replace(/\"/g, '\\\\\"')}\")`;\n};\n"]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { env } from "../adapters/env";
|
|
2
|
+
|
|
3
|
+
const encodeAssetUrl = (src: string) => src.replace(/ /g, "%20");
|
|
4
|
+
|
|
5
|
+
export const normalizeAssetUrl = (src?: string | null) => {
|
|
6
|
+
if (!src) return "";
|
|
7
|
+
|
|
8
|
+
const trimmedSrc = src.trim();
|
|
9
|
+
if (!trimmedSrc) return "";
|
|
10
|
+
|
|
11
|
+
const resolvedSrc =
|
|
12
|
+
trimmedSrc.startsWith("blob:") ||
|
|
13
|
+
trimmedSrc.startsWith("http") ||
|
|
14
|
+
trimmedSrc.startsWith("/")
|
|
15
|
+
? trimmedSrc
|
|
16
|
+
: `${env("API_URL")}/${trimmedSrc}`;
|
|
17
|
+
|
|
18
|
+
return encodeAssetUrl(resolvedSrc);
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export const toCssBackgroundImage = (src?: string | null) => {
|
|
22
|
+
const normalizedSrc = normalizeAssetUrl(src);
|
|
23
|
+
if (!normalizedSrc) return undefined;
|
|
24
|
+
|
|
25
|
+
return `url("${normalizedSrc.replace(/"/g, '\\"')}")`;
|
|
26
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const persistLastModelViewRoute: (target: string) => void;
|
|
2
|
+
export declare const getPersistedLastModelViewRoute: (target: string) => string | null;
|
|
3
|
+
export declare const resolveRetainedModelViewRoute: (target: string) => string;
|
|
4
|
+
export declare const storeCurrentModelViewContext: (target?: string) => void;
|
|
5
|
+
//# sourceMappingURL=modelViewPersistence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modelViewPersistence.d.ts","sourceRoot":"","sources":["../../src/helpers/modelViewPersistence.ts"],"names":[],"mappings":"AAuHA,eAAO,MAAM,yBAAyB,WAAY,MAAM,SAkBvD,CAAC;AAIF,eAAO,MAAM,8BAA8B,WAAY,MAAM,KAAG,MAAM,GAAG,IA0BxE,CAAC;AAIF,eAAO,MAAM,6BAA6B,WAAY,MAAM,KAAG,MAM9D,CAAC;AAIF,eAAO,MAAM,4BAA4B,YAAa,MAAM,SAmB3D,CAAC"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
var MODEL_VIEW_STORAGE_KEY = "solidx.model.last-view";
|
|
2
|
+
var MODEL_VIEW_ROUTE_REGEX = /^\/admin\/core\/([^/]+)\/([^/]+)\/(list|tree|kanban|card)$/;
|
|
3
|
+
var getRouteParsingBase = function () {
|
|
4
|
+
var _a;
|
|
5
|
+
if (typeof window !== "undefined" && ((_a = window.location) === null || _a === void 0 ? void 0 : _a.origin)) {
|
|
6
|
+
return window.location.origin;
|
|
7
|
+
}
|
|
8
|
+
};
|
|
9
|
+
// Normalize a list/tree/kanban/card URL into a shape we can store and compare.
|
|
10
|
+
// We keep the full query string because menu/action params are part of the return route.
|
|
11
|
+
var parseModelViewRoute = function (target) {
|
|
12
|
+
if (!target)
|
|
13
|
+
return null;
|
|
14
|
+
try {
|
|
15
|
+
var url = new URL(target, getRouteParsingBase());
|
|
16
|
+
var match = url.pathname.match(MODEL_VIEW_ROUTE_REGEX);
|
|
17
|
+
if (!match)
|
|
18
|
+
return null;
|
|
19
|
+
var moduleName = match[1], modelName = match[2], viewType = match[3];
|
|
20
|
+
var menuItemId = url.searchParams.get("menuItemId") || "";
|
|
21
|
+
var actionId = url.searchParams.get("actionId") || "";
|
|
22
|
+
return {
|
|
23
|
+
actionId: actionId,
|
|
24
|
+
fullPath: "".concat(url.pathname).concat(url.search),
|
|
25
|
+
menuItemId: menuItemId,
|
|
26
|
+
modelName: modelName,
|
|
27
|
+
moduleName: moduleName,
|
|
28
|
+
pathname: url.pathname,
|
|
29
|
+
viewType: viewType,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
var getScopedStorageKey = function (route) {
|
|
37
|
+
return "model:".concat(route.moduleName, ":").concat(route.modelName, ":menu:").concat(route.menuItemId, ":action:").concat(route.actionId);
|
|
38
|
+
};
|
|
39
|
+
var getMenuStorageKey = function (route) {
|
|
40
|
+
return "model:".concat(route.moduleName, ":").concat(route.modelName, ":menu:").concat(route.menuItemId);
|
|
41
|
+
};
|
|
42
|
+
var getModelStorageKey = function (route) {
|
|
43
|
+
return "model:".concat(route.moduleName, ":").concat(route.modelName);
|
|
44
|
+
};
|
|
45
|
+
// Older saved values may exist as plain strings from previous implementations.
|
|
46
|
+
// Convert everything into one consistent shape before comparing timestamps.
|
|
47
|
+
var normalizeStoredEntry = function (value) {
|
|
48
|
+
if (!value)
|
|
49
|
+
return null;
|
|
50
|
+
if (typeof value === "string") {
|
|
51
|
+
return {
|
|
52
|
+
path: value,
|
|
53
|
+
updatedAt: 0,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
if (typeof value.path !== "string" || !value.path) {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
return {
|
|
60
|
+
path: value.path,
|
|
61
|
+
updatedAt: Number(value.updatedAt) || 0,
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
var readStoredModelViews = function () {
|
|
65
|
+
if (typeof window === "undefined")
|
|
66
|
+
return {};
|
|
67
|
+
try {
|
|
68
|
+
var raw = window.localStorage.getItem(MODEL_VIEW_STORAGE_KEY);
|
|
69
|
+
if (!raw)
|
|
70
|
+
return {};
|
|
71
|
+
var parsed = JSON.parse(raw);
|
|
72
|
+
return parsed && typeof parsed === "object" ? parsed : {};
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
return {};
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
var writeStoredModelViews = function (next) {
|
|
79
|
+
if (typeof window === "undefined")
|
|
80
|
+
return;
|
|
81
|
+
try {
|
|
82
|
+
window.localStorage.setItem(MODEL_VIEW_STORAGE_KEY, JSON.stringify(next));
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
// Ignore storage write failures and keep navigation working.
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
// Save the current route at three scopes:
|
|
89
|
+
// 1. exact model + menu + action
|
|
90
|
+
// 2. model + menu
|
|
91
|
+
// 3. model
|
|
92
|
+
// This lets us reopen the most useful last-selected view even when the user
|
|
93
|
+
// returns through a slightly different sidebar/menu link.
|
|
94
|
+
export var persistLastModelViewRoute = function (target) {
|
|
95
|
+
if (typeof window === "undefined")
|
|
96
|
+
return;
|
|
97
|
+
var route = parseModelViewRoute(target);
|
|
98
|
+
if (!route)
|
|
99
|
+
return;
|
|
100
|
+
var next = readStoredModelViews();
|
|
101
|
+
var entry = {
|
|
102
|
+
path: route.fullPath,
|
|
103
|
+
updatedAt: Date.now(),
|
|
104
|
+
};
|
|
105
|
+
next[getScopedStorageKey(route)] = entry;
|
|
106
|
+
if (route.menuItemId) {
|
|
107
|
+
next[getMenuStorageKey(route)] = entry;
|
|
108
|
+
}
|
|
109
|
+
next[getModelStorageKey(route)] = entry;
|
|
110
|
+
writeStoredModelViews(next);
|
|
111
|
+
};
|
|
112
|
+
// Resolve the best saved route for the current model context.
|
|
113
|
+
// We prefer the newest entry and use scope priority as a tie-breaker.
|
|
114
|
+
export var getPersistedLastModelViewRoute = function (target) {
|
|
115
|
+
if (typeof window === "undefined")
|
|
116
|
+
return null;
|
|
117
|
+
var route = parseModelViewRoute(target);
|
|
118
|
+
if (!route)
|
|
119
|
+
return null;
|
|
120
|
+
var stored = readStoredModelViews();
|
|
121
|
+
var candidateKeys = [
|
|
122
|
+
Boolean(route.menuItemId || route.actionId) ? getScopedStorageKey(route) : null,
|
|
123
|
+
route.menuItemId ? getMenuStorageKey(route) : null,
|
|
124
|
+
getModelStorageKey(route),
|
|
125
|
+
].filter(Boolean);
|
|
126
|
+
var bestMatch = null;
|
|
127
|
+
for (var priority = 0; priority < candidateKeys.length; priority += 1) {
|
|
128
|
+
var key = candidateKeys[priority];
|
|
129
|
+
var entry = normalizeStoredEntry(stored[key]);
|
|
130
|
+
if (!entry)
|
|
131
|
+
continue;
|
|
132
|
+
if (!bestMatch || entry.updatedAt > bestMatch.entry.updatedAt || (entry.updatedAt === bestMatch.entry.updatedAt && priority < bestMatch.priority)) {
|
|
133
|
+
bestMatch = { entry: entry, priority: priority };
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return bestMatch ? bestMatch.entry.path : null;
|
|
137
|
+
};
|
|
138
|
+
// Sidebar and menu links often point to `/list` by default.
|
|
139
|
+
// If we have a retained non-list view for the same model context, reopen that instead.
|
|
140
|
+
export var resolveRetainedModelViewRoute = function (target) {
|
|
141
|
+
var route = parseModelViewRoute(target);
|
|
142
|
+
if (!route || route.viewType !== "list")
|
|
143
|
+
return target;
|
|
144
|
+
var storedRoute = getPersistedLastModelViewRoute(target);
|
|
145
|
+
return storedRoute || target;
|
|
146
|
+
};
|
|
147
|
+
// Keep short-lived "back to previous view" state in sessionStorage and also
|
|
148
|
+
// refresh the longer-lived localStorage route retention in one call.
|
|
149
|
+
export var storeCurrentModelViewContext = function (target) {
|
|
150
|
+
if (typeof window === "undefined")
|
|
151
|
+
return;
|
|
152
|
+
var fallbackTarget = "".concat(window.location.pathname).concat(window.location.search);
|
|
153
|
+
var nextTarget = target || fallbackTarget;
|
|
154
|
+
var route = parseModelViewRoute(nextTarget);
|
|
155
|
+
try {
|
|
156
|
+
if (route === null || route === void 0 ? void 0 : route.viewType) {
|
|
157
|
+
sessionStorage.setItem("fromView", route.viewType);
|
|
158
|
+
}
|
|
159
|
+
sessionStorage.setItem("fromViewUrl", (route === null || route === void 0 ? void 0 : route.fullPath) || nextTarget);
|
|
160
|
+
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
// Ignore storage failures so navigation can still continue.
|
|
163
|
+
}
|
|
164
|
+
if (route) {
|
|
165
|
+
persistLastModelViewRoute(route.fullPath);
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
//# sourceMappingURL=modelViewPersistence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modelViewPersistence.js","sourceRoot":"","sources":["../../src/helpers/modelViewPersistence.ts"],"names":[],"mappings":"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","sourcesContent":["const MODEL_VIEW_STORAGE_KEY = \"solidx.model.last-view\";\n\nconst MODEL_VIEW_ROUTE_REGEX =\n /^\\/admin\\/core\\/([^/]+)\\/([^/]+)\\/(list|tree|kanban|card)$/;\n\ntype ParsedModelViewRoute = {\n actionId: string;\n fullPath: string;\n menuItemId: string;\n modelName: string;\n moduleName: string;\n pathname: string;\n viewType: \"list\" | \"tree\" | \"kanban\" | \"card\";\n};\n\ntype StoredModelViewEntry = {\n path: string;\n updatedAt: number;\n};\n\ntype StoredModelViewMap = Record<string, StoredModelViewEntry | string>;\n\nconst getRouteParsingBase = () => {\n if (typeof window !== \"undefined\" && window.location?.origin) {\n return window.location.origin;\n }\n\n};\n\n// Normalize a list/tree/kanban/card URL into a shape we can store and compare.\n// We keep the full query string because menu/action params are part of the return route.\nconst parseModelViewRoute = (target: string): ParsedModelViewRoute | null => {\n if (!target) return null;\n\n try {\n const url = new URL(target, getRouteParsingBase());\n const match = url.pathname.match(MODEL_VIEW_ROUTE_REGEX);\n\n if (!match) return null;\n\n const [, moduleName, modelName, viewType] = match;\n const menuItemId = url.searchParams.get(\"menuItemId\") || \"\";\n const actionId = url.searchParams.get(\"actionId\") || \"\";\n\n return {\n actionId,\n fullPath: `${url.pathname}${url.search}`,\n menuItemId,\n modelName,\n moduleName,\n pathname: url.pathname,\n viewType: viewType as ParsedModelViewRoute[\"viewType\"],\n };\n } catch (error) {\n return null;\n }\n};\n\nconst getScopedStorageKey = (route: ParsedModelViewRoute) =>\n `model:${route.moduleName}:${route.modelName}:menu:${route.menuItemId}:action:${route.actionId}`;\n\nconst getMenuStorageKey = (route: ParsedModelViewRoute) =>\n `model:${route.moduleName}:${route.modelName}:menu:${route.menuItemId}`;\n\nconst getModelStorageKey = (route: ParsedModelViewRoute) =>\n `model:${route.moduleName}:${route.modelName}`;\n\n// Older saved values may exist as plain strings from previous implementations.\n// Convert everything into one consistent shape before comparing timestamps.\nconst normalizeStoredEntry = (value: StoredModelViewEntry | string | undefined | null): StoredModelViewEntry | null => {\n if (!value) return null;\n\n if (typeof value === \"string\") {\n return {\n path: value,\n updatedAt: 0,\n };\n }\n\n if (typeof value.path !== \"string\" || !value.path) {\n return null;\n }\n\n return {\n path: value.path,\n updatedAt: Number(value.updatedAt) || 0,\n };\n};\n\nconst readStoredModelViews = (): StoredModelViewMap => {\n if (typeof window === \"undefined\") return {};\n\n try {\n const raw = window.localStorage.getItem(MODEL_VIEW_STORAGE_KEY);\n if (!raw) return {};\n\n const parsed = JSON.parse(raw);\n return parsed && typeof parsed === \"object\" ? parsed : {};\n } catch (error) {\n return {};\n }\n};\n\nconst writeStoredModelViews = (next: StoredModelViewMap) => {\n if (typeof window === \"undefined\") return;\n\n try {\n window.localStorage.setItem(MODEL_VIEW_STORAGE_KEY, JSON.stringify(next));\n } catch (error) {\n // Ignore storage write failures and keep navigation working.\n }\n};\n\n// Save the current route at three scopes:\n// 1. exact model + menu + action\n// 2. model + menu\n// 3. model\n// This lets us reopen the most useful last-selected view even when the user\n// returns through a slightly different sidebar/menu link.\nexport const persistLastModelViewRoute = (target: string) => {\n if (typeof window === \"undefined\") return;\n\n const route = parseModelViewRoute(target);\n if (!route) return;\n\n const next = readStoredModelViews();\n const entry: StoredModelViewEntry = {\n path: route.fullPath,\n updatedAt: Date.now(),\n };\n\n next[getScopedStorageKey(route)] = entry;\n if (route.menuItemId) {\n next[getMenuStorageKey(route)] = entry;\n }\n next[getModelStorageKey(route)] = entry;\n writeStoredModelViews(next);\n};\n\n// Resolve the best saved route for the current model context.\n// We prefer the newest entry and use scope priority as a tie-breaker.\nexport const getPersistedLastModelViewRoute = (target: string): string | null => {\n if (typeof window === \"undefined\") return null;\n\n const route = parseModelViewRoute(target);\n if (!route) return null;\n\n const stored = readStoredModelViews();\n const candidateKeys = [\n Boolean(route.menuItemId || route.actionId) ? getScopedStorageKey(route) : null,\n route.menuItemId ? getMenuStorageKey(route) : null,\n getModelStorageKey(route),\n ].filter(Boolean) as string[];\n\n let bestMatch: { entry: StoredModelViewEntry; priority: number } | null = null;\n\n for (let priority = 0; priority < candidateKeys.length; priority += 1) {\n const key = candidateKeys[priority];\n const entry = normalizeStoredEntry(stored[key]);\n if (!entry) continue;\n\n if (!bestMatch || entry.updatedAt > bestMatch.entry.updatedAt || (entry.updatedAt === bestMatch.entry.updatedAt && priority < bestMatch.priority)) {\n bestMatch = { entry, priority };\n }\n }\n\n return bestMatch ? bestMatch.entry.path : null;\n};\n\n// Sidebar and menu links often point to `/list` by default.\n// If we have a retained non-list view for the same model context, reopen that instead.\nexport const resolveRetainedModelViewRoute = (target: string): string => {\n const route = parseModelViewRoute(target);\n if (!route || route.viewType !== \"list\") return target;\n\n const storedRoute = getPersistedLastModelViewRoute(target);\n return storedRoute || target;\n};\n\n// Keep short-lived \"back to previous view\" state in sessionStorage and also\n// refresh the longer-lived localStorage route retention in one call.\nexport const storeCurrentModelViewContext = (target?: string) => {\n if (typeof window === \"undefined\") return;\n\n const fallbackTarget = `${window.location.pathname}${window.location.search}`;\n const nextTarget = target || fallbackTarget;\n const route = parseModelViewRoute(nextTarget);\n\n try {\n if (route?.viewType) {\n sessionStorage.setItem(\"fromView\", route.viewType);\n }\n sessionStorage.setItem(\"fromViewUrl\", route?.fullPath || nextTarget);\n } catch (error) {\n // Ignore storage failures so navigation can still continue.\n }\n\n if (route) {\n persistLastModelViewRoute(route.fullPath);\n }\n};\n"]}
|