@solidxai/core-ui 0.1.12-beta.6 → 0.1.12-beta.8
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 +19 -17
- package/dist/components/auth/AuthLayout.js.map +1 -1
- package/dist/components/auth/AuthLayout.tsx +59 -34
- package/dist/components/common/BackendReconnectIndicator.d.ts +6 -0
- package/dist/components/common/BackendReconnectIndicator.d.ts.map +1 -0
- package/dist/components/common/BackendReconnectIndicator.js +25 -0
- package/dist/components/common/BackendReconnectIndicator.js.map +1 -0
- package/dist/components/common/BackendReconnectIndicator.tsx +45 -0
- package/dist/components/common/SettingsComponent.d.ts.map +1 -1
- package/dist/components/common/SettingsComponent.js +7 -3
- package/dist/components/common/SettingsComponent.js.map +1 -1
- package/dist/components/common/SettingsComponent.module.css +144 -12
- package/dist/components/common/SettingsComponent.tsx +22 -3
- package/dist/components/common/SolidAdmin.d.ts.map +1 -1
- package/dist/components/common/SolidAdmin.js +7 -2
- package/dist/components/common/SolidAdmin.js.map +1 -1
- package/dist/components/common/SolidAdmin.tsx +7 -2
- package/dist/components/common/SolidBreadcrumb.d.ts.map +1 -1
- package/dist/components/common/SolidBreadcrumb.js +1 -6
- package/dist/components/common/SolidBreadcrumb.js.map +1 -1
- package/dist/components/common/SolidBreadcrumb.tsx +1 -8
- package/dist/components/common/SolidMaterialSymbol.d.ts +10 -0
- package/dist/components/common/SolidMaterialSymbol.d.ts.map +1 -0
- package/dist/components/common/SolidMaterialSymbol.js +69 -0
- package/dist/components/common/SolidMaterialSymbol.js.map +1 -0
- package/dist/components/common/SolidMaterialSymbol.tsx +96 -0
- package/dist/components/common/SolidToastProvider.d.ts.map +1 -1
- package/dist/components/common/SolidToastProvider.js +14 -1
- package/dist/components/common/SolidToastProvider.js.map +1 -1
- package/dist/components/common/SolidToastProvider.tsx +19 -1
- package/dist/components/core/card/CardGrid.d.ts +1 -1
- package/dist/components/core/card/CardGrid.d.ts.map +1 -1
- package/dist/components/core/card/CardGrid.js +2 -2
- package/dist/components/core/card/CardGrid.js.map +1 -1
- package/dist/components/core/card/CardGrid.tsx +4 -0
- package/dist/components/core/card/CardItem.d.ts +2 -0
- package/dist/components/core/card/CardItem.d.ts.map +1 -1
- package/dist/components/core/card/CardItem.js +7 -2
- package/dist/components/core/card/CardItem.js.map +1 -1
- package/dist/components/core/card/CardItem.tsx +30 -8
- package/dist/components/core/card/SolidCardView.d.ts.map +1 -1
- package/dist/components/core/card/SolidCardView.js +87 -21
- package/dist/components/core/card/SolidCardView.js.map +1 -1
- package/dist/components/core/card/SolidCardView.tsx +96 -40
- package/dist/components/core/card/SolidCardViewConfigure.d.ts +1 -1
- package/dist/components/core/card/SolidCardViewConfigure.d.ts.map +1 -1
- package/dist/components/core/card/SolidCardViewConfigure.js +9 -7
- package/dist/components/core/card/SolidCardViewConfigure.js.map +1 -1
- package/dist/components/core/card/SolidCardViewConfigure.tsx +14 -1
- package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.module.css +3 -1
- package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.js +4 -3
- package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.tsx +15 -19
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.d.ts.map +1 -1
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js +43 -16
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js.map +1 -1
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.tsx +24 -2
- package/dist/components/core/form/SolidFormFooter.js +1 -1
- package/dist/components/core/form/SolidFormFooter.js.map +1 -1
- package/dist/components/core/form/SolidFormFooter.tsx +1 -1
- package/dist/components/core/form/SolidFormLayouts.js +1 -1
- package/dist/components/core/form/SolidFormLayouts.js.map +1 -1
- package/dist/components/core/form/SolidFormLayouts.tsx +2 -2
- package/dist/components/core/form/fields/SolidMediaMultipleField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidMediaMultipleField.js +120 -56
- package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
- package/dist/components/core/form/fields/SolidMediaMultipleField.tsx +63 -50
- package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidMediaSingleField.js +115 -37
- package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
- package/dist/components/core/form/fields/SolidMediaSingleField.tsx +36 -35
- package/dist/components/core/form/fields/SolidRichTextField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidRichTextField.js +67 -4
- package/dist/components/core/form/fields/SolidRichTextField.js.map +1 -1
- package/dist/components/core/form/fields/SolidRichTextField.tsx +89 -7
- package/dist/components/core/form/fields/mediaFieldUtils.d.ts +3 -0
- package/dist/components/core/form/fields/mediaFieldUtils.d.ts.map +1 -0
- package/dist/components/core/form/fields/mediaFieldUtils.js +30 -0
- package/dist/components/core/form/fields/mediaFieldUtils.js.map +1 -0
- package/dist/components/core/form/fields/mediaFieldUtils.ts +45 -0
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js +1 -1
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js.map +1 -1
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.tsx +3 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +22 -23
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +13 -7
- package/dist/components/core/form/fields/widgets/SolidIconEditWidget.d.ts.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js +16 -11
- package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidIconEditWidget.tsx +32 -18
- package/dist/components/core/form/fields/widgets/SolidIconViewWidget.d.ts.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidIconViewWidget.js +3 -1
- package/dist/components/core/form/fields/widgets/SolidIconViewWidget.js.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidIconViewWidget.tsx +11 -5
- package/dist/components/core/kanban/KanbanBoard.d.ts +1 -1
- package/dist/components/core/kanban/KanbanBoard.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanBoard.js +2 -2
- package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
- package/dist/components/core/kanban/KanbanBoard.tsx +3 -1
- package/dist/components/core/kanban/KanbanCard.d.ts +2 -0
- package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanCard.js +10 -5
- package/dist/components/core/kanban/KanbanCard.js.map +1 -1
- package/dist/components/core/kanban/KanbanCard.tsx +28 -12
- package/dist/components/core/kanban/KanbanColumn.d.ts +3 -1
- package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanColumn.js +2 -2
- package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
- package/dist/components/core/kanban/KanbanColumn.tsx +4 -2
- package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.js +154 -25
- package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.tsx +129 -16
- package/dist/components/core/kanban/SolidKanbanViewConfigure.d.ts +1 -1
- package/dist/components/core/kanban/SolidKanbanViewConfigure.d.ts.map +1 -1
- package/dist/components/core/kanban/SolidKanbanViewConfigure.js +13 -10
- package/dist/components/core/kanban/SolidKanbanViewConfigure.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanViewConfigure.tsx +18 -3
- package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
- package/dist/components/core/list/SolidDataTable.js +3 -2
- package/dist/components/core/list/SolidDataTable.js.map +1 -1
- package/dist/components/core/list/SolidDataTable.tsx +3 -2
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +16 -5
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +20 -8
- package/dist/components/core/list/SolidListViewColumn.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewColumn.js +1 -0
- package/dist/components/core/list/SolidListViewColumn.js.map +1 -1
- package/dist/components/core/list/SolidListViewColumn.tsx +1 -0
- package/dist/components/core/list/columns/SolidShortTextColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidShortTextColumn.js +7 -2
- package/dist/components/core/list/columns/SolidShortTextColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidShortTextColumn.tsx +7 -2
- package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.js +4 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.js.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.tsx +5 -2
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js +2 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx +2 -1
- package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.js +4 -1
- package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.js.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.tsx +5 -2
- package/dist/components/core/locales/SolidLocale.d.ts.map +1 -1
- package/dist/components/core/locales/SolidLocale.js +1 -1
- package/dist/components/core/locales/SolidLocale.js.map +1 -1
- package/dist/components/core/locales/SolidLocale.tsx +1 -0
- package/dist/components/core/model/CreateModel.css +26 -0
- package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
- package/dist/components/core/model/FieldMetaData.js +21 -3
- package/dist/components/core/model/FieldMetaData.js.map +1 -1
- package/dist/components/core/model/FieldMetaData.tsx +45 -4
- package/dist/components/core/model/FieldMetaDataForm.css +82 -0
- package/dist/components/core/model/FieldMetaDataForm.d.ts +1 -0
- package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
- package/dist/components/core/model/FieldMetaDataForm.js +246 -235
- package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
- package/dist/components/core/model/FieldMetaDataForm.tsx +46 -34
- package/dist/components/core/model/FieldSelector.js +1 -1
- package/dist/components/core/model/FieldSelector.js.map +1 -1
- package/dist/components/core/model/FieldSelector.tsx +1 -1
- package/dist/components/core/model/ModelMetaData.js +1 -1
- package/dist/components/core/model/ModelMetaData.js.map +1 -1
- package/dist/components/core/model/ModelMetaData.tsx +1 -1
- package/dist/components/core/module/CreateModule.css +55 -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 +3 -2
- package/dist/components/core/module/ModuleMetadataExplorer.css +27 -0
- package/dist/components/core/module/ModuleMetadataExplorer.d.ts.map +1 -1
- package/dist/components/core/module/ModuleMetadataExplorer.js +1 -1
- package/dist/components/core/module/ModuleMetadataExplorer.js.map +1 -1
- package/dist/components/core/module/ModuleMetadataExplorer.tsx +1 -0
- package/dist/components/core/tree/SolidTreeTable.d.ts +2 -1
- package/dist/components/core/tree/SolidTreeTable.d.ts.map +1 -1
- package/dist/components/core/tree/SolidTreeTable.js +2 -2
- package/dist/components/core/tree/SolidTreeTable.js.map +1 -1
- package/dist/components/core/tree/SolidTreeTable.tsx +3 -1
- package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
- package/dist/components/core/tree/SolidTreeView.js +44 -16
- package/dist/components/core/tree/SolidTreeView.js.map +1 -1
- package/dist/components/core/tree/SolidTreeView.tsx +55 -24
- package/dist/components/core/users/CreateUser.d.ts.map +1 -1
- package/dist/components/core/users/CreateUser.js +45 -32
- package/dist/components/core/users/CreateUser.js.map +1 -1
- package/dist/components/core/users/CreateUser.tsx +15 -4
- package/dist/components/layout/AdminHeaderActions.d.ts.map +1 -1
- package/dist/components/layout/AdminHeaderActions.js +10 -9
- package/dist/components/layout/AdminHeaderActions.js.map +1 -1
- package/dist/components/layout/AdminHeaderActions.tsx +2 -0
- package/dist/components/layout/AppSidebar.d.ts.map +1 -1
- package/dist/components/layout/AppSidebar.js +2 -1
- package/dist/components/layout/AppSidebar.js.map +1 -1
- package/dist/components/layout/AppSidebar.tsx +12 -5
- package/dist/components/layout/SolidMenuItemIcon.d.ts +9 -0
- package/dist/components/layout/SolidMenuItemIcon.d.ts.map +1 -0
- package/dist/components/layout/SolidMenuItemIcon.js +20 -0
- package/dist/components/layout/SolidMenuItemIcon.js.map +1 -0
- package/dist/components/layout/SolidMenuItemIcon.tsx +45 -0
- package/dist/components/layout/navbar-two-menu.d.ts.map +1 -1
- package/dist/components/layout/navbar-two-menu.js +6 -7
- package/dist/components/layout/navbar-two-menu.js.map +1 -1
- package/dist/components/layout/navbar-two-menu.tsx +4 -12
- package/dist/components/shad-cn-ui/SolidCodeEditor.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidCodeEditor.js +30 -2
- package/dist/components/shad-cn-ui/SolidCodeEditor.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidCodeEditor.tsx +38 -1
- package/dist/helpers/backendHealthMonitor.d.ts +39 -0
- package/dist/helpers/backendHealthMonitor.d.ts.map +1 -0
- package/dist/helpers/backendHealthMonitor.js +255 -0
- package/dist/helpers/backendHealthMonitor.js.map +1 -0
- package/dist/helpers/backendHealthMonitor.ts +177 -0
- package/dist/helpers/helpers.d.ts +1 -0
- package/dist/helpers/helpers.d.ts.map +1 -1
- package/dist/helpers/helpers.js +9 -0
- package/dist/helpers/helpers.js.map +1 -1
- package/dist/helpers/helpers.ts +11 -1
- package/dist/helpers/menuItemIcons.d.ts +34 -0
- package/dist/helpers/menuItemIcons.d.ts.map +1 -0
- package/dist/helpers/menuItemIcons.js +144 -0
- package/dist/helpers/menuItemIcons.js.map +1 -0
- package/dist/helpers/menuItemIcons.ts +191 -0
- package/dist/helpers/relationDisplay.d.ts +3 -0
- package/dist/helpers/relationDisplay.d.ts.map +1 -0
- package/dist/helpers/relationDisplay.js +92 -0
- package/dist/helpers/relationDisplay.js.map +1 -0
- package/dist/helpers/relationDisplay.ts +101 -0
- package/dist/helpers/settingsPayload.d.ts +1 -0
- package/dist/helpers/settingsPayload.d.ts.map +1 -1
- package/dist/helpers/settingsPayload.js.map +1 -1
- package/dist/helpers/settingsPayload.ts +1 -0
- package/dist/helpers/solidIcons.d.ts +2 -0
- package/dist/helpers/solidIcons.d.ts.map +1 -1
- package/dist/helpers/solidIcons.js +8 -0
- package/dist/helpers/solidIcons.js.map +1 -1
- package/dist/helpers/solidIcons.tsx +10 -1
- package/dist/helpers/waitForBackendAvailability.d.ts +1 -0
- package/dist/helpers/waitForBackendAvailability.d.ts.map +1 -1
- package/dist/helpers/waitForBackendAvailability.js +35 -22
- package/dist/helpers/waitForBackendAvailability.js.map +1 -1
- package/dist/helpers/waitForBackendAvailability.ts +18 -12
- package/dist/http/solidHttp.d.ts.map +1 -1
- package/dist/http/solidHttp.js +10 -4
- package/dist/http/solidHttp.js.map +1 -1
- package/dist/http/solidHttp.ts +9 -4
- package/dist/redux/api/datasourceIntrospectionApi.d.ts +4 -0
- package/dist/redux/api/datasourceIntrospectionApi.d.ts.map +1 -1
- package/dist/redux/api/datasourceIntrospectionApi.js.map +1 -1
- package/dist/redux/api/datasourceIntrospectionApi.ts +4 -0
- package/dist/redux/api/fetchBaseQuery.d.ts.map +1 -1
- package/dist/redux/api/fetchBaseQuery.js +9 -3
- package/dist/redux/api/fetchBaseQuery.js.map +1 -1
- package/dist/redux/api/fetchBaseQuery.tsx +9 -3
- package/dist/redux/store/StoreProvider.d.ts.map +1 -1
- package/dist/redux/store/StoreProvider.js +4 -3
- package/dist/redux/store/StoreProvider.js.map +1 -1
- package/dist/redux/store/StoreProvider.tsx +4 -3
- package/dist/redux/store/defaultStoreConfig.d.ts +5 -5
- package/dist/resources/globals.css +341 -49
- package/dist/resources/solid-custom.css +464 -11
- package/dist/resources/solid-responsive.css +31 -20
- package/dist/resources/solid-tailwind-generated.css +1 -1
- package/dist/routes/AppEventListener.d.ts.map +1 -1
- package/dist/routes/AppEventListener.js +23 -0
- package/dist/routes/AppEventListener.js.map +1 -1
- package/dist/routes/AppEventListener.tsx +29 -0
- package/dist/routes/pages/admin/core/DashboardPage.module.css +12 -0
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.css +306 -3
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.d.ts.map +1 -1
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js +745 -393
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js.map +1 -1
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.tsx +1074 -420
- package/dist/routes/pages/admin/core/DatasourcesPage.css +15 -0
- package/dist/routes/pages/admin/core/DatasourcesPage.d.ts.map +1 -1
- package/dist/routes/pages/admin/core/DatasourcesPage.js +7 -188
- package/dist/routes/pages/admin/core/DatasourcesPage.js.map +1 -1
- package/dist/routes/pages/admin/core/DatasourcesPage.tsx +3 -393
- package/package.json +1 -1
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
import { env } from "../../adapters/env";
|
|
2
|
-
import
|
|
2
|
+
import { useContext } from "react";
|
|
3
|
+
import SolidLogoDark from '../../resources/images/SolidXLogo-dark.svg'
|
|
4
|
+
import SolidLogoLight from '../../resources/images/SolidXLogo-light.svg'
|
|
3
5
|
import { ChatIcon } from "../layout/SolidAiStudioLayout";
|
|
6
|
+
import { LayoutContext } from "../layout/context/layoutcontext";
|
|
4
7
|
|
|
5
8
|
export const SolidAdmin = () => {
|
|
9
|
+
const layoutContext = useContext(LayoutContext);
|
|
6
10
|
const redirectUrl = env("NEXT_PUBLIC_LOGIN_REDIRECT_URL");
|
|
7
11
|
const hasRedirect = Boolean(redirectUrl);
|
|
8
12
|
const aiChatUrl = env("VITE_SOLIDX_AI_URL");
|
|
9
13
|
const canOpenChat = Boolean(aiChatUrl);
|
|
14
|
+
const solidLogo = layoutContext?.themeMode === "dark" ? SolidLogoLight : SolidLogoDark;
|
|
10
15
|
|
|
11
16
|
const handleChatLaunch = () => {
|
|
12
17
|
if (!aiChatUrl) return;
|
|
@@ -129,7 +134,7 @@ export const SolidAdmin = () => {
|
|
|
129
134
|
<div className="welcome-card-header">
|
|
130
135
|
<img
|
|
131
136
|
alt="solid logo"
|
|
132
|
-
src={
|
|
137
|
+
src={solidLogo}
|
|
133
138
|
className="mb-2 w-4rem flex-shrink-0"
|
|
134
139
|
style={{ opacity: 0.9 }}
|
|
135
140
|
/>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidBreadcrumb.d.ts","sourceRoot":"","sources":["../../../src/components/common/SolidBreadcrumb.tsx"],"names":[],"mappings":"AAaA,UAAU,KAAK;IACb,qBAAqB,CAAC,EAAE,GAAG,CAAC;IAC5B,iBAAiB,CAAC,EAAE,GAAG,CAAC;CACzB;
|
|
1
|
+
{"version":3,"file":"SolidBreadcrumb.d.ts","sourceRoot":"","sources":["../../../src/components/common/SolidBreadcrumb.tsx"],"names":[],"mappings":"AAaA,UAAU,KAAK;IACb,qBAAqB,CAAC,EAAE,GAAG,CAAC;IAC5B,iBAAiB,CAAC,EAAE,GAAG,CAAC;CACzB;AAOD,eAAO,MAAM,eAAe,UAAW,KAAK,4CAyG3C,CAAC"}
|
|
@@ -1,15 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { toTitleCase } from "../../helpers/helpers";
|
|
2
3
|
import { usePathname } from "../../hooks/usePathname";
|
|
3
4
|
import { useRouter } from "../../hooks/useRouter";
|
|
4
5
|
import { useSearchParams } from "../../hooks/useSearchParams";
|
|
5
6
|
import { useEffect, useState } from "react";
|
|
6
7
|
import { ChevronRight } from "lucide-react";
|
|
7
|
-
var toTitleCase = function (str) {
|
|
8
|
-
return str
|
|
9
|
-
.replace(/[-_]/g, " ")
|
|
10
|
-
.replace(/([a-z])([A-Z])/g, "$1 $2")
|
|
11
|
-
.replace(/\b\w/g, function (char) { return char.toUpperCase(); });
|
|
12
|
-
};
|
|
13
8
|
var truncateText = function (text, maxLength) {
|
|
14
9
|
if (maxLength === void 0) { maxLength = 15; }
|
|
15
10
|
if (text.length <= maxLength)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidBreadcrumb.js","sourceRoot":"","sources":["../../../src/components/common/SolidBreadcrumb.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"SolidBreadcrumb.js","sourceRoot":"","sources":["../../../src/components/common/SolidBreadcrumb.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { toTitleCase } from \"../../helpers/helpers\";\nimport { usePathname } from \"../../hooks/usePathname\";\nimport { useRouter } from \"../../hooks/useRouter\";\nimport { useSearchParams } from \"../../hooks/useSearchParams\";\nimport { useEffect, useState } from \"react\";\nimport { ChevronRight } from \"lucide-react\";\n\ninterface BreadcrumbItem {\n label: string;\n link?: string;\n}\n\ninterface Props {\n solidFormViewMetaData?: any;\n initialEntityData?: any;\n}\n\nconst truncateText = (text: string, maxLength: number = 15) => {\n if (text.length <= maxLength) return text;\n return `${text.substring(0, maxLength)}...`;\n};\n\nexport const SolidBreadcrumb = (props: Props) => {\n const { solidFormViewMetaData, initialEntityData } = props;\n\n const modelMetadata = solidFormViewMetaData?.data?.solidView?.model;\n const pathname = usePathname();\n const router = useRouter();\n const searchParams = useSearchParams();\n const segments = pathname.split(\"/\").filter(Boolean);\n\n let userKeyFieldValue: string | null = null;\n\n if (modelMetadata?.userKeyField) {\n const userKeyFieldName = modelMetadata.userKeyField.name;\n if (userKeyFieldName && initialEntityData?.[userKeyFieldName] !== undefined) {\n userKeyFieldValue = initialEntityData[userKeyFieldName];\n }\n }\n\n const queryUserKeyField = searchParams.get(\"userKeyField\");\n const isNewForm = pathname.endsWith(\"/new\");\n\n useEffect(() => {\n if (!isNewForm && userKeyFieldValue && !queryUserKeyField) {\n const params = new URLSearchParams(searchParams.toString());\n params.set(\"userKeyField\", userKeyFieldValue);\n const newUrl = `${pathname}?${params.toString()}`;\n router.push(newUrl);\n }\n }, [pathname, userKeyFieldValue, queryUserKeyField, isNewForm, router]);\n\n const [fromView, setFromView] = useState<\"list\" | \"kanban\" | \"card\" | \"tree\" | null>(null);\n\n useEffect(() => {\n if (typeof window !== \"undefined\") {\n const storedView = sessionStorage.getItem(\"fromView\");\n if (storedView === \"list\" || storedView === \"kanban\" || storedView === \"card\" || storedView === \"tree\") {\n setFromView(storedView);\n }\n }\n }, []);\n\n const breadcrumbItems: BreadcrumbItem[] = [];\n\n if (segments.length >= 4 && segments[0] === \"admin\" && segments[1] === \"core\") {\n const moduleName = segments[2];\n const modelName = segments[3];\n const modelDisplayName = modelMetadata?.displayName || toTitleCase(modelName);\n\n // Link to model list or kanban view based on stored view\n breadcrumbItems.push({\n label: modelDisplayName,\n link: `/admin/core/${moduleName}/${modelName}/${fromView || \"list\"}`,\n });\n\n breadcrumbItems.push({\n label: isNewForm\n ? `Add ${modelDisplayName} Details`\n : decodeURIComponent(queryUserKeyField || userKeyFieldValue || segments[segments.length - 1] || \"\"),\n });\n }\n\n return (\n <nav className=\"solid-breadcrumb\" aria-label=\"Breadcrumb\">\n <ol className=\"solid-breadcrumb-list\">\n {breadcrumbItems.map((item, index) => {\n const fullLabel = item.label;\n const truncatedLabel = truncateText(fullLabel, 10);\n const shouldTruncate = fullLabel.length > 10;\n const isLast = index === breadcrumbItems.length - 1;\n\n const handleClick = () => {\n if (!item.link) return;\n if (typeof window !== \"undefined\") {\n const storedFullUrl = sessionStorage.getItem(\"fromViewUrl\");\n if (storedFullUrl) {\n router.push(storedFullUrl);\n return;\n }\n }\n router.push(item.link);\n };\n\n return (\n <li key={`${item.label}-${index}`} className=\"solid-breadcrumb-item\">\n {item.link ? (\n <button\n type=\"button\"\n className=\"solid-breadcrumb-link\"\n onClick={handleClick}\n title={shouldTruncate ? fullLabel : undefined}\n >\n <span className={isLast ? \"font-bold\" : \"font-normal\"}>{truncatedLabel}</span>\n </button>\n ) : (\n <span className=\"solid-breadcrumb-current\" title={shouldTruncate ? fullLabel : undefined}>\n {truncatedLabel}\n </span>\n )}\n {!isLast ? <ChevronRight size={14} className=\"solid-breadcrumb-separator\" /> : null}\n </li>\n );\n })}\n </ol>\n </nav>\n );\n};\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
|
|
2
|
+
import { toTitleCase } from "../../helpers/helpers";
|
|
3
3
|
import { usePathname } from "../../hooks/usePathname";
|
|
4
4
|
import { useRouter } from "../../hooks/useRouter";
|
|
5
5
|
import { useSearchParams } from "../../hooks/useSearchParams";
|
|
@@ -16,13 +16,6 @@ interface Props {
|
|
|
16
16
|
initialEntityData?: any;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
const toTitleCase = (str: string) => {
|
|
20
|
-
return str
|
|
21
|
-
.replace(/[-_]/g, " ")
|
|
22
|
-
.replace(/([a-z])([A-Z])/g, "$1 $2")
|
|
23
|
-
.replace(/\b\w/g, (char) => char.toUpperCase());
|
|
24
|
-
};
|
|
25
|
-
|
|
26
19
|
const truncateText = (text: string, maxLength: number = 15) => {
|
|
27
20
|
if (text.length <= maxLength) return text;
|
|
28
21
|
return `${text.substring(0, maxLength)}...`;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
type SolidMaterialSymbolProps = React.HTMLAttributes<HTMLSpanElement> & {
|
|
3
|
+
name: string;
|
|
4
|
+
size?: number | string;
|
|
5
|
+
fallback?: React.ReactNode;
|
|
6
|
+
onSupportChange?: (supported: boolean) => void;
|
|
7
|
+
};
|
|
8
|
+
export declare const SolidMaterialSymbol: ({ name, size, className, style, fallback, onSupportChange, ...rest }: SolidMaterialSymbolProps) => import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=SolidMaterialSymbol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SolidMaterialSymbol.d.ts","sourceRoot":"","sources":["../../../src/components/common/SolidMaterialSymbol.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,KAAK,wBAAwB,GAAG,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC,GAAG;IACtE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CAChD,CAAC;AAsBF,eAAO,MAAM,mBAAmB,yEAQ7B,wBAAwB,4CA0D1B,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
13
|
+
var t = {};
|
|
14
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
15
|
+
t[p] = s[p];
|
|
16
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
17
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
18
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
19
|
+
t[p[i]] = s[p[i]];
|
|
20
|
+
}
|
|
21
|
+
return t;
|
|
22
|
+
};
|
|
23
|
+
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
24
|
+
import { useEffect, useRef, useState } from "react";
|
|
25
|
+
var MATERIAL_SYMBOL_WIDTH_MULTIPLIER = 2.25;
|
|
26
|
+
function cx() {
|
|
27
|
+
var parts = [];
|
|
28
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
29
|
+
parts[_i] = arguments[_i];
|
|
30
|
+
}
|
|
31
|
+
return parts.filter(Boolean).join(" ");
|
|
32
|
+
}
|
|
33
|
+
function getSizeInPixels(size, computedFontSize) {
|
|
34
|
+
if (typeof size === "number") {
|
|
35
|
+
return size;
|
|
36
|
+
}
|
|
37
|
+
var explicitSize = Number.parseFloat(size);
|
|
38
|
+
if (Number.isFinite(explicitSize)) {
|
|
39
|
+
return explicitSize;
|
|
40
|
+
}
|
|
41
|
+
var computedSize = Number.parseFloat(computedFontSize);
|
|
42
|
+
return Number.isFinite(computedSize) ? computedSize : 24;
|
|
43
|
+
}
|
|
44
|
+
export var SolidMaterialSymbol = function (_a) {
|
|
45
|
+
var name = _a.name, _b = _a.size, size = _b === void 0 ? 24 : _b, className = _a.className, style = _a.style, _c = _a.fallback, fallback = _c === void 0 ? null : _c, onSupportChange = _a.onSupportChange, rest = __rest(_a, ["name", "size", "className", "style", "fallback", "onSupportChange"]);
|
|
46
|
+
var symbolRef = useRef(null);
|
|
47
|
+
var _d = useState(null), isSupported = _d[0], setIsSupported = _d[1];
|
|
48
|
+
useEffect(function () {
|
|
49
|
+
var frameId = 0;
|
|
50
|
+
var measureSupport = function () {
|
|
51
|
+
var node = symbolRef.current;
|
|
52
|
+
if (!node)
|
|
53
|
+
return;
|
|
54
|
+
var computedStyle = window.getComputedStyle(node);
|
|
55
|
+
var sizePx = getSizeInPixels(size, computedStyle.fontSize);
|
|
56
|
+
var renderedWidth = Math.max(node.scrollWidth, node.getBoundingClientRect().width);
|
|
57
|
+
var supported = renderedWidth <= sizePx * MATERIAL_SYMBOL_WIDTH_MULTIPLIER;
|
|
58
|
+
setIsSupported(function (previousValue) { return previousValue === supported ? previousValue : supported; });
|
|
59
|
+
onSupportChange === null || onSupportChange === void 0 ? void 0 : onSupportChange(supported);
|
|
60
|
+
};
|
|
61
|
+
frameId = window.requestAnimationFrame(measureSupport);
|
|
62
|
+
return function () { return window.cancelAnimationFrame(frameId); };
|
|
63
|
+
}, [className, name, onSupportChange, size]);
|
|
64
|
+
if (isSupported === false) {
|
|
65
|
+
return _jsx(_Fragment, { children: fallback });
|
|
66
|
+
}
|
|
67
|
+
return (_jsx("span", __assign({}, rest, { ref: symbolRef, className: cx("material-symbols-outlined", className), style: __assign({ fontFamily: "\"Material Symbols Outlined\"", fontWeight: 400, fontStyle: "normal", fontSize: size, lineHeight: 1, letterSpacing: "normal", textTransform: "none", whiteSpace: "nowrap", wordWrap: "normal", direction: "ltr", display: "inline-flex", alignItems: "center", justifyContent: "center", overflow: "hidden", WebkitFontSmoothing: "antialiased", fontFeatureSettings: "\"liga\"", WebkitFontFeatureSettings: "\"liga\"", visibility: isSupported === null ? "hidden" : undefined }, style), children: name })));
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=SolidMaterialSymbol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SolidMaterialSymbol.js","sourceRoot":"","sources":["../../../src/components/common/SolidMaterialSymbol.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useEffect, useRef, useState } from \"react\";\n\ntype SolidMaterialSymbolProps = React.HTMLAttributes<HTMLSpanElement> & {\n name: string;\n size?: number | string;\n fallback?: React.ReactNode;\n onSupportChange?: (supported: boolean) => void;\n};\n\nconst MATERIAL_SYMBOL_WIDTH_MULTIPLIER = 2.25;\n\nfunction cx(...parts: Array<string | undefined | false>) {\n return parts.filter(Boolean).join(\" \");\n}\n\nfunction getSizeInPixels(size: number | string, computedFontSize: string): number {\n if (typeof size === \"number\") {\n return size;\n }\n\n const explicitSize = Number.parseFloat(size);\n if (Number.isFinite(explicitSize)) {\n return explicitSize;\n }\n\n const computedSize = Number.parseFloat(computedFontSize);\n return Number.isFinite(computedSize) ? computedSize : 24;\n}\n\nexport const SolidMaterialSymbol = ({\n name,\n size = 24,\n className,\n style,\n fallback = null,\n onSupportChange,\n ...rest\n}: SolidMaterialSymbolProps) => {\n const symbolRef = useRef<HTMLSpanElement | null>(null);\n const [isSupported, setIsSupported] = useState<boolean | null>(null);\n\n useEffect(() => {\n let frameId = 0;\n\n const measureSupport = () => {\n const node = symbolRef.current;\n if (!node) return;\n\n const computedStyle = window.getComputedStyle(node);\n const sizePx = getSizeInPixels(size, computedStyle.fontSize);\n const renderedWidth = Math.max(node.scrollWidth, node.getBoundingClientRect().width);\n const supported = renderedWidth <= sizePx * MATERIAL_SYMBOL_WIDTH_MULTIPLIER;\n\n setIsSupported((previousValue) => previousValue === supported ? previousValue : supported);\n onSupportChange?.(supported);\n };\n\n frameId = window.requestAnimationFrame(measureSupport);\n return () => window.cancelAnimationFrame(frameId);\n }, [className, name, onSupportChange, size]);\n\n if (isSupported === false) {\n return <>{fallback}</>;\n }\n\n return (\n <span\n {...rest}\n ref={symbolRef}\n className={cx(\"material-symbols-outlined\", className)}\n style={{\n fontFamily: \"\\\"Material Symbols Outlined\\\"\",\n fontWeight: 400,\n fontStyle: \"normal\",\n fontSize: size,\n lineHeight: 1,\n letterSpacing: \"normal\",\n textTransform: \"none\",\n whiteSpace: \"nowrap\",\n wordWrap: \"normal\",\n direction: \"ltr\",\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n overflow: \"hidden\",\n WebkitFontSmoothing: \"antialiased\",\n fontFeatureSettings: \"\\\"liga\\\"\",\n WebkitFontFeatureSettings: \"\\\"liga\\\"\",\n visibility: isSupported === null ? \"hidden\" : undefined,\n ...style,\n }}\n >\n {name}\n </span>\n );\n};\n"]}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import React, { useEffect, useRef, useState } from "react";
|
|
2
|
+
|
|
3
|
+
type SolidMaterialSymbolProps = React.HTMLAttributes<HTMLSpanElement> & {
|
|
4
|
+
name: string;
|
|
5
|
+
size?: number | string;
|
|
6
|
+
fallback?: React.ReactNode;
|
|
7
|
+
onSupportChange?: (supported: boolean) => void;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
const MATERIAL_SYMBOL_WIDTH_MULTIPLIER = 2.25;
|
|
11
|
+
|
|
12
|
+
function cx(...parts: Array<string | undefined | false>) {
|
|
13
|
+
return parts.filter(Boolean).join(" ");
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function getSizeInPixels(size: number | string, computedFontSize: string): number {
|
|
17
|
+
if (typeof size === "number") {
|
|
18
|
+
return size;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const explicitSize = Number.parseFloat(size);
|
|
22
|
+
if (Number.isFinite(explicitSize)) {
|
|
23
|
+
return explicitSize;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
const computedSize = Number.parseFloat(computedFontSize);
|
|
27
|
+
return Number.isFinite(computedSize) ? computedSize : 24;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export const SolidMaterialSymbol = ({
|
|
31
|
+
name,
|
|
32
|
+
size = 24,
|
|
33
|
+
className,
|
|
34
|
+
style,
|
|
35
|
+
fallback = null,
|
|
36
|
+
onSupportChange,
|
|
37
|
+
...rest
|
|
38
|
+
}: SolidMaterialSymbolProps) => {
|
|
39
|
+
const symbolRef = useRef<HTMLSpanElement | null>(null);
|
|
40
|
+
const [isSupported, setIsSupported] = useState<boolean | null>(null);
|
|
41
|
+
|
|
42
|
+
useEffect(() => {
|
|
43
|
+
let frameId = 0;
|
|
44
|
+
|
|
45
|
+
const measureSupport = () => {
|
|
46
|
+
const node = symbolRef.current;
|
|
47
|
+
if (!node) return;
|
|
48
|
+
|
|
49
|
+
const computedStyle = window.getComputedStyle(node);
|
|
50
|
+
const sizePx = getSizeInPixels(size, computedStyle.fontSize);
|
|
51
|
+
const renderedWidth = Math.max(node.scrollWidth, node.getBoundingClientRect().width);
|
|
52
|
+
const supported = renderedWidth <= sizePx * MATERIAL_SYMBOL_WIDTH_MULTIPLIER;
|
|
53
|
+
|
|
54
|
+
setIsSupported((previousValue) => previousValue === supported ? previousValue : supported);
|
|
55
|
+
onSupportChange?.(supported);
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
frameId = window.requestAnimationFrame(measureSupport);
|
|
59
|
+
return () => window.cancelAnimationFrame(frameId);
|
|
60
|
+
}, [className, name, onSupportChange, size]);
|
|
61
|
+
|
|
62
|
+
if (isSupported === false) {
|
|
63
|
+
return <>{fallback}</>;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
return (
|
|
67
|
+
<span
|
|
68
|
+
{...rest}
|
|
69
|
+
ref={symbolRef}
|
|
70
|
+
className={cx("material-symbols-outlined", className)}
|
|
71
|
+
style={{
|
|
72
|
+
fontFamily: "\"Material Symbols Outlined\"",
|
|
73
|
+
fontWeight: 400,
|
|
74
|
+
fontStyle: "normal",
|
|
75
|
+
fontSize: size,
|
|
76
|
+
lineHeight: 1,
|
|
77
|
+
letterSpacing: "normal",
|
|
78
|
+
textTransform: "none",
|
|
79
|
+
whiteSpace: "nowrap",
|
|
80
|
+
wordWrap: "normal",
|
|
81
|
+
direction: "ltr",
|
|
82
|
+
display: "inline-flex",
|
|
83
|
+
alignItems: "center",
|
|
84
|
+
justifyContent: "center",
|
|
85
|
+
overflow: "hidden",
|
|
86
|
+
WebkitFontSmoothing: "antialiased",
|
|
87
|
+
fontFeatureSettings: "\"liga\"",
|
|
88
|
+
WebkitFontFeatureSettings: "\"liga\"",
|
|
89
|
+
visibility: isSupported === null ? "hidden" : undefined,
|
|
90
|
+
...style,
|
|
91
|
+
}}
|
|
92
|
+
>
|
|
93
|
+
{name}
|
|
94
|
+
</span>
|
|
95
|
+
);
|
|
96
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidToastProvider.d.ts","sourceRoot":"","sources":["../../../src/components/common/SolidToastProvider.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SolidToastProvider.d.ts","sourceRoot":"","sources":["../../../src/components/common/SolidToastProvider.tsx"],"names":[],"mappings":"AAqBA,eAAO,MAAM,kBAAkB,sDAmC9B,CAAC"}
|
|
@@ -24,6 +24,12 @@ import { useDispatch, useSelector } from "react-redux";
|
|
|
24
24
|
import { clearToast } from "../../redux/features/toastSlice";
|
|
25
25
|
import { SolidToast } from "../shad-cn-ui";
|
|
26
26
|
var toastId = 0;
|
|
27
|
+
function isSameToastMessage(current, next) {
|
|
28
|
+
return (current.severity === next.severity &&
|
|
29
|
+
current.summary === next.summary &&
|
|
30
|
+
current.detail === next.detail &&
|
|
31
|
+
current.sticky === next.sticky);
|
|
32
|
+
}
|
|
27
33
|
export var SolidToastProvider = function () {
|
|
28
34
|
var dispatch = useDispatch();
|
|
29
35
|
var message = useSelector(function (state) { return state.toast.message; });
|
|
@@ -32,7 +38,14 @@ export var SolidToastProvider = function () {
|
|
|
32
38
|
if (!message)
|
|
33
39
|
return;
|
|
34
40
|
toastId += 1;
|
|
35
|
-
setQueue(function (current) {
|
|
41
|
+
setQueue(function (current) {
|
|
42
|
+
var lastToast = current[current.length - 1];
|
|
43
|
+
var nextToast = __assign({ id: toastId }, message);
|
|
44
|
+
if (lastToast && isSameToastMessage(lastToast, message)) {
|
|
45
|
+
return __spreadArray(__spreadArray([], current.slice(0, -1), true), [nextToast], false);
|
|
46
|
+
}
|
|
47
|
+
return __spreadArray(__spreadArray([], current, true), [nextToast], false);
|
|
48
|
+
});
|
|
36
49
|
dispatch(clearToast());
|
|
37
50
|
}, [dispatch, message]);
|
|
38
51
|
var handleClose = function (id) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidToastProvider.js","sourceRoot":"","sources":["../../../src/components/common/SolidToastProvider.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,OAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAgB,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAM3C,IAAI,OAAO,GAAG,CAAC,CAAC;AAEhB,MAAM,CAAC,IAAM,kBAAkB,GAAG;IAChC,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,IAAM,OAAO,GAAG,WAAW,CAAC,UAAC,KAAgB,IAAK,OAAA,KAAK,CAAC,KAAK,CAAC,OAAO,EAAnB,CAAmB,CAAC,CAAC;IACjE,IAAA,KAAoB,QAAQ,CAAe,EAAE,CAAC,EAA7C,KAAK,QAAA,EAAE,QAAQ,QAA8B,CAAC;IAErD,SAAS,CAAC;QACR,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,OAAO,IAAI,CAAC,CAAC;QACb,QAAQ,CAAC,UAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"SolidToastProvider.js","sourceRoot":"","sources":["../../../src/components/common/SolidToastProvider.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,OAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAgB,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAM3C,IAAI,OAAO,GAAG,CAAC,CAAC;AAEhB,SAAS,kBAAkB,CAAC,OAAqB,EAAE,IAAkB;IACnE,OAAO,CACL,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ;QAClC,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO;QAChC,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;QAC9B,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAC/B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,IAAM,kBAAkB,GAAG;IAChC,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,IAAM,OAAO,GAAG,WAAW,CAAC,UAAC,KAAgB,IAAK,OAAA,KAAK,CAAC,KAAK,CAAC,OAAO,EAAnB,CAAmB,CAAC,CAAC;IACjE,IAAA,KAAoB,QAAQ,CAAe,EAAE,CAAC,EAA7C,KAAK,QAAA,EAAE,QAAQ,QAA8B,CAAC;IAErD,SAAS,CAAC;QACR,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,OAAO,IAAI,CAAC,CAAC;QACb,QAAQ,CAAC,UAAC,OAAO;YACf,IAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC9C,IAAM,SAAS,cAAK,EAAE,EAAE,OAAO,IAAK,OAAO,CAAE,CAAC;YAE9C,IAAI,SAAS,IAAI,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE;gBACvD,uCAAW,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAE,SAAS,UAAE;aAC7C;YAED,uCAAW,OAAO,UAAE,SAAS,UAAE;QACjC,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACzB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAExB,IAAM,WAAW,GAAG,UAAC,EAAU;QAC7B,QAAQ,CAAC,UAAC,OAAO,IAAK,OAAA,OAAO,CAAC,MAAM,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,EAAE,KAAK,EAAE,EAAf,CAAe,CAAC,EAA1C,CAA0C,CAAC,CAAC;IACpE,CAAC,CAAC;IAEF,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAE/B,OAAO,CACL,cAAK,SAAS,EAAC,sBAAsB,eAAW,QAAQ,iBAAa,MAAM,YACxE,KAAK,CAAC,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,CACpB,KAAC,UAAU,eAAoB,KAAK,IAAE,OAAO,EAAE,WAAW,KAAzC,KAAK,CAAC,EAAE,CAAqC,CAC/D,EAFqB,CAErB,CAAC,GACE,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { RootState } from \"../../types/solid-core\";\nimport { clearToast, ToastMessage } from \"../../redux/features/toastSlice\";\nimport { SolidToast } from \"../shad-cn-ui\";\n\ntype QueueToast = ToastMessage & {\n id: number;\n};\n\nlet toastId = 0;\n\nfunction isSameToastMessage(current: ToastMessage, next: ToastMessage) {\n return (\n current.severity === next.severity &&\n current.summary === next.summary &&\n current.detail === next.detail &&\n current.sticky === next.sticky\n );\n}\n\nexport const SolidToastProvider = () => {\n const dispatch = useDispatch();\n const message = useSelector((state: RootState) => state.toast.message);\n const [queue, setQueue] = useState<QueueToast[]>([]);\n\n useEffect(() => {\n if (!message) return;\n\n toastId += 1;\n setQueue((current) => {\n const lastToast = current[current.length - 1];\n const nextToast = { id: toastId, ...message };\n\n if (lastToast && isSameToastMessage(lastToast, message)) {\n return [...current.slice(0, -1), nextToast];\n }\n\n return [...current, nextToast];\n });\n dispatch(clearToast());\n }, [dispatch, message]);\n\n const handleClose = (id: number) => {\n setQueue((current) => current.filter((toast) => toast.id !== id));\n };\n\n if (!queue.length) return null;\n\n return (\n <div className=\"solid-toast-viewport\" aria-live=\"polite\" aria-atomic=\"true\">\n {queue.map((toast) => (\n <SolidToast key={toast.id} {...toast} onClose={handleClose} />\n ))}\n </div>\n );\n};\n"]}
|
|
@@ -10,6 +10,15 @@ type QueueToast = ToastMessage & {
|
|
|
10
10
|
|
|
11
11
|
let toastId = 0;
|
|
12
12
|
|
|
13
|
+
function isSameToastMessage(current: ToastMessage, next: ToastMessage) {
|
|
14
|
+
return (
|
|
15
|
+
current.severity === next.severity &&
|
|
16
|
+
current.summary === next.summary &&
|
|
17
|
+
current.detail === next.detail &&
|
|
18
|
+
current.sticky === next.sticky
|
|
19
|
+
);
|
|
20
|
+
}
|
|
21
|
+
|
|
13
22
|
export const SolidToastProvider = () => {
|
|
14
23
|
const dispatch = useDispatch();
|
|
15
24
|
const message = useSelector((state: RootState) => state.toast.message);
|
|
@@ -19,7 +28,16 @@ export const SolidToastProvider = () => {
|
|
|
19
28
|
if (!message) return;
|
|
20
29
|
|
|
21
30
|
toastId += 1;
|
|
22
|
-
setQueue((current) =>
|
|
31
|
+
setQueue((current) => {
|
|
32
|
+
const lastToast = current[current.length - 1];
|
|
33
|
+
const nextToast = { id: toastId, ...message };
|
|
34
|
+
|
|
35
|
+
if (lastToast && isSameToastMessage(lastToast, message)) {
|
|
36
|
+
return [...current.slice(0, -1), nextToast];
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return [...current, nextToast];
|
|
40
|
+
});
|
|
23
41
|
dispatch(clearToast());
|
|
24
42
|
}, [dispatch, message]);
|
|
25
43
|
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export declare const CardGrid: ({ records, solidCardViewMetaData, editButtonUrl, setLightboxUrls, setOpenLightbox, }: any) => import("react/jsx-runtime").JSX.Element;
|
|
1
|
+
export declare const CardGrid: ({ records, solidCardViewMetaData, editButtonUrl, onRecover, setLightboxUrls, setOpenLightbox, showArchived, }: any) => import("react/jsx-runtime").JSX.Element;
|
|
2
2
|
export default CardGrid;
|
|
3
3
|
//# sourceMappingURL=CardGrid.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardGrid.d.ts","sourceRoot":"","sources":["../../../../src/components/core/card/CardGrid.tsx"],"names":[],"mappings":"AAiBA,eAAO,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"CardGrid.d.ts","sourceRoot":"","sources":["../../../../src/components/core/card/CardGrid.tsx"],"names":[],"mappings":"AAiBA,eAAO,MAAM,QAAQ,kHAQlB,GAAG,4CA2DL,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
|
@@ -20,7 +20,7 @@ var findCardNode = function (nodes) {
|
|
|
20
20
|
};
|
|
21
21
|
export var CardGrid = function (_a) {
|
|
22
22
|
var _b, _c, _d;
|
|
23
|
-
var records = _a.records, solidCardViewMetaData = _a.solidCardViewMetaData, editButtonUrl = _a.editButtonUrl, setLightboxUrls = _a.setLightboxUrls, setOpenLightbox = _a.setOpenLightbox;
|
|
23
|
+
var records = _a.records, solidCardViewMetaData = _a.solidCardViewMetaData, editButtonUrl = _a.editButtonUrl, onRecover = _a.onRecover, setLightboxUrls = _a.setLightboxUrls, setOpenLightbox = _a.setOpenLightbox, showArchived = _a.showArchived;
|
|
24
24
|
var cardNode = findCardNode(((_c = (_b = solidCardViewMetaData === null || solidCardViewMetaData === void 0 ? void 0 : solidCardViewMetaData.solidView) === null || _b === void 0 ? void 0 : _b.layout) === null || _c === void 0 ? void 0 : _c.children) || []);
|
|
25
25
|
var cardWidget = ((_d = cardNode === null || cardNode === void 0 ? void 0 : cardNode.attrs) === null || _d === void 0 ? void 0 : _d.cardWidget) || (cardNode === null || cardNode === void 0 ? void 0 : cardNode.cardWidget);
|
|
26
26
|
var DynamicCardWidget = cardWidget ? getExtensionComponent(cardWidget) : null;
|
|
@@ -36,7 +36,7 @@ export var CardGrid = function (_a) {
|
|
|
36
36
|
? "Register the widget in the extension registry or update the card metadata to point at a valid component."
|
|
37
37
|
: "Configure attrs.cardWidget on the card metadata so the grid can render each record." })] }) }));
|
|
38
38
|
}
|
|
39
|
-
return (_jsx("div", { className: "solid-card-view-grid", children: records.map(function (record) { return (_jsx(CardItem, { data: record, solidCardViewMetaData: solidCardViewMetaData, editButtonUrl: editButtonUrl, cardNode: cardNode, DynamicCardWidget: DynamicCardWidget, setLightboxUrls: setLightboxUrls, setOpenLightbox: setOpenLightbox }, record.id)); }) }));
|
|
39
|
+
return (_jsx("div", { className: "solid-card-view-grid", children: records.map(function (record) { return (_jsx(CardItem, { data: record, solidCardViewMetaData: solidCardViewMetaData, editButtonUrl: editButtonUrl, cardNode: cardNode, DynamicCardWidget: DynamicCardWidget, onRecover: onRecover, setLightboxUrls: setLightboxUrls, setOpenLightbox: setOpenLightbox, showArchived: showArchived }, record.id)); }) }));
|
|
40
40
|
};
|
|
41
41
|
export default CardGrid;
|
|
42
42
|
//# sourceMappingURL=CardGrid.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardGrid.js","sourceRoot":"","sources":["../../../../src/components/core/card/CardGrid.tsx"],"names":[],"mappings":";AAAA,cAAc;AACd,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE,IAAM,YAAY,GAAG,UAAC,KAAiB;IAAjB,sBAAA,EAAA,UAAiB;IACrC,KAAmB,UAAK,EAAL,eAAK,EAAL,mBAAK,EAAL,IAAK,EAAE;QAArB,IAAM,IAAI,cAAA;QACb,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QACtC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7D,IAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/C,IAAI,UAAU;gBAAE,OAAO,UAAU,CAAC;SACnC;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,QAAQ,GAAG,UAAC,
|
|
1
|
+
{"version":3,"file":"CardGrid.js","sourceRoot":"","sources":["../../../../src/components/core/card/CardGrid.tsx"],"names":[],"mappings":"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","sourcesContent":["// @ts-nocheck\nimport CardItem from \"./CardItem\";\nimport { getExtensionComponent } from \"../../../helpers/registry\";\n\nconst findCardNode = (nodes: any[] = []): any => {\n for (const node of nodes) {\n if (!node) continue;\n if (node.type === \"card\") return node;\n if (Array.isArray(node?.children) && node.children.length > 0) {\n const nestedCard = findCardNode(node.children);\n if (nestedCard) return nestedCard;\n }\n }\n\n return null;\n};\n\nexport const CardGrid = ({\n records,\n solidCardViewMetaData,\n editButtonUrl,\n onRecover,\n setLightboxUrls,\n setOpenLightbox,\n showArchived,\n}: any) => {\n const cardNode = findCardNode(solidCardViewMetaData?.solidView?.layout?.children || []);\n const cardWidget = cardNode?.attrs?.cardWidget || cardNode?.cardWidget;\n const DynamicCardWidget = cardWidget ? getExtensionComponent(cardWidget) : null;\n const cardConfigurationIssue = !cardWidget\n ? { type: \"missing_widget_reference\" }\n : !DynamicCardWidget\n ? { type: \"missing_widget\", cardWidget }\n : null;\n\n if (cardConfigurationIssue) {\n return (\n <div className=\"solid-kanban-config-placeholder-container\">\n <div className=\"solid-kanban-config-placeholder-panel\">\n <div className=\"solid-kanban-config-placeholder-badge\">CARD CONFIGURATION</div>\n <div className=\"solid-kanban-config-placeholder-title\">\n {cardConfigurationIssue.type === \"missing_widget\"\n ? \"Card widget could not be resolved\"\n : \"Card widget is not configured\"}\n </div>\n <div className=\"solid-kanban-config-placeholder-description\">\n {cardConfigurationIssue.type === \"missing_widget\" ? (\n <>\n This card view references <code>{cardConfigurationIssue.cardWidget}</code>, but no matching card widget is registered.\n </>\n ) : (\n <>\n This card view does not define a <code>cardWidget</code> on the card node.\n </>\n )}\n </div>\n <div className=\"solid-kanban-config-placeholder-hint\">\n {cardConfigurationIssue.type === \"missing_widget\"\n ? \"Register the widget in the extension registry or update the card metadata to point at a valid component.\"\n : \"Configure attrs.cardWidget on the card metadata so the grid can render each record.\"}\n </div>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"solid-card-view-grid\">\n {records.map((record: any) => (\n <CardItem\n key={record.id}\n data={record}\n solidCardViewMetaData={solidCardViewMetaData}\n editButtonUrl={editButtonUrl}\n cardNode={cardNode}\n DynamicCardWidget={DynamicCardWidget}\n onRecover={onRecover}\n setLightboxUrls={setLightboxUrls}\n setOpenLightbox={setOpenLightbox}\n showArchived={showArchived}\n />\n ))}\n </div>\n );\n};\n\nexport default CardGrid;\n"]}
|
|
@@ -19,8 +19,10 @@ export const CardGrid = ({
|
|
|
19
19
|
records,
|
|
20
20
|
solidCardViewMetaData,
|
|
21
21
|
editButtonUrl,
|
|
22
|
+
onRecover,
|
|
22
23
|
setLightboxUrls,
|
|
23
24
|
setOpenLightbox,
|
|
25
|
+
showArchived,
|
|
24
26
|
}: any) => {
|
|
25
27
|
const cardNode = findCardNode(solidCardViewMetaData?.solidView?.layout?.children || []);
|
|
26
28
|
const cardWidget = cardNode?.attrs?.cardWidget || cardNode?.cardWidget;
|
|
@@ -72,8 +74,10 @@ export const CardGrid = ({
|
|
|
72
74
|
editButtonUrl={editButtonUrl}
|
|
73
75
|
cardNode={cardNode}
|
|
74
76
|
DynamicCardWidget={DynamicCardWidget}
|
|
77
|
+
onRecover={onRecover}
|
|
75
78
|
setLightboxUrls={setLightboxUrls}
|
|
76
79
|
setOpenLightbox={setOpenLightbox}
|
|
80
|
+
showArchived={showArchived}
|
|
77
81
|
/>
|
|
78
82
|
))}
|
|
79
83
|
</div>
|
|
@@ -5,8 +5,10 @@ interface CardItemProps {
|
|
|
5
5
|
editButtonUrl?: string;
|
|
6
6
|
cardNode?: any;
|
|
7
7
|
DynamicCardWidget?: any;
|
|
8
|
+
onRecover?: (record: any) => void;
|
|
8
9
|
setLightboxUrls?: any;
|
|
9
10
|
setOpenLightbox?: any;
|
|
11
|
+
showArchived?: boolean;
|
|
10
12
|
}
|
|
11
13
|
declare const CardItem: React.FC<CardItemProps>;
|
|
12
14
|
export default CardItem;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardItem.d.ts","sourceRoot":"","sources":["../../../../src/components/core/card/CardItem.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,UAAU,aAAa;IACrB,IAAI,EAAE,GAAG,CAAC;IACV,qBAAqB,EAAE,GAAG,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,iBAAiB,CAAC,EAAE,GAAG,CAAC;IACxB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,eAAe,CAAC,EAAE,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"CardItem.d.ts","sourceRoot":"","sources":["../../../../src/components/core/card/CardItem.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,UAAU,aAAa;IACrB,IAAI,EAAE,GAAG,CAAC;IACV,qBAAqB,EAAE,GAAG,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,iBAAiB,CAAC,EAAE,GAAG,CAAC;IACxB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IAClC,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAqFrC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
|
@@ -4,17 +4,22 @@ import { storeCurrentModelViewContext } from "../../../helpers/modelViewPersiste
|
|
|
4
4
|
import { SolidDropdownMenu, SolidDropdownMenuContent, SolidDropdownMenuItem, SolidDropdownMenuTrigger, SolidIcon, } from "../../shad-cn-ui";
|
|
5
5
|
var CardItem = function (_a) {
|
|
6
6
|
var _b, _c;
|
|
7
|
-
var data = _a.data, solidCardViewMetaData = _a.solidCardViewMetaData, editButtonUrl = _a.editButtonUrl, cardNode = _a.cardNode, DynamicCardWidget = _a.DynamicCardWidget, setLightboxUrls = _a.setLightboxUrls, setOpenLightbox = _a.setOpenLightbox;
|
|
7
|
+
var data = _a.data, solidCardViewMetaData = _a.solidCardViewMetaData, editButtonUrl = _a.editButtonUrl, cardNode = _a.cardNode, DynamicCardWidget = _a.DynamicCardWidget, onRecover = _a.onRecover, setLightboxUrls = _a.setLightboxUrls, setOpenLightbox = _a.setOpenLightbox, showArchived = _a.showArchived;
|
|
8
8
|
var router = useRouter();
|
|
9
|
+
var isArchivedRecord = (data === null || data === void 0 ? void 0 : data.deletedAt) !== null && (data === null || data === void 0 ? void 0 : data.deletedAt) !== undefined;
|
|
9
10
|
var openRecord = function () {
|
|
11
|
+
if (isArchivedRecord)
|
|
12
|
+
return;
|
|
10
13
|
storeCurrentModelViewContext();
|
|
11
14
|
router.push("".concat(editButtonUrl, "/").concat(data === null || data === void 0 ? void 0 : data.id));
|
|
12
15
|
};
|
|
13
16
|
var openEdit = function () {
|
|
17
|
+
if (isArchivedRecord)
|
|
18
|
+
return;
|
|
14
19
|
storeCurrentModelViewContext();
|
|
15
20
|
router.push("".concat(editButtonUrl, "/").concat(data === null || data === void 0 ? void 0 : data.id));
|
|
16
21
|
};
|
|
17
|
-
return (_jsx("div", { className: "solid-card-view-item", children: _jsxs("div", { className: "solid-card-view-card solid-kanban-card", onClick: openRecord, children: [_jsx("div", { className: "solid-kanban-action", onClick: function (e) { return e.stopPropagation(); }, children: _jsxs(SolidDropdownMenu, { children: [_jsx(SolidDropdownMenuTrigger, { asChild: true, children: _jsx("button", { type: "button", className: "solid-header-cog-trigger solid-kanban-action-trigger", "aria-label": "Open card actions", children: _jsx(SolidIcon, { name: "si-ellipsis-v", "aria-hidden": true }) }) }),
|
|
22
|
+
return (_jsx("div", { className: "solid-card-view-item", children: _jsxs("div", { className: "solid-card-view-card solid-kanban-card".concat(isArchivedRecord ? " greyed-out-row" : ""), onClick: openRecord, style: { cursor: isArchivedRecord ? "default" : "pointer" }, children: [_jsx("div", { className: "solid-kanban-action", onClick: function (e) { return e.stopPropagation(); }, children: _jsxs(SolidDropdownMenu, { children: [_jsx(SolidDropdownMenuTrigger, { asChild: true, children: _jsx("button", { type: "button", className: "solid-header-cog-trigger solid-kanban-action-trigger", "aria-label": "Open card actions", children: _jsx(SolidIcon, { name: "si-ellipsis-v", "aria-hidden": true }) }) }), _jsxs(SolidDropdownMenuContent, { className: "solid-custom-overlay", align: "end", children: [!isArchivedRecord ? (_jsxs(SolidDropdownMenuItem, { className: "solid-header-dropdown-item", onSelect: openEdit, children: [_jsx(SolidIcon, { name: "si-pencil", className: "solid-header-action-button-icon", "aria-hidden": true }), _jsx("span", { className: "solid-header-action-button-label", children: "Edit" })] })) : null, showArchived && (data === null || data === void 0 ? void 0 : data.deletedAt) !== null && (data === null || data === void 0 ? void 0 : data.deletedAt) !== undefined && onRecover ? (_jsxs(SolidDropdownMenuItem, { className: "solid-header-dropdown-item", onSelect: function () { return onRecover(data); }, children: [_jsx(SolidIcon, { name: "si-refresh", className: "solid-header-action-button-icon", "aria-hidden": true }), _jsx("span", { className: "solid-header-action-button-label", children: "Recover" })] })) : null] })] }) }), DynamicCardWidget ? (_jsx(DynamicCardWidget, { rowData: data, solidKanbanViewMetaData: solidCardViewMetaData, solidView: solidCardViewMetaData === null || solidCardViewMetaData === void 0 ? void 0 : solidCardViewMetaData.solidView, solidFieldsMetadata: solidCardViewMetaData === null || solidCardViewMetaData === void 0 ? void 0 : solidCardViewMetaData.solidFieldsMetadata, card: cardNode, layoutAttrs: ((_c = (_b = solidCardViewMetaData === null || solidCardViewMetaData === void 0 ? void 0 : solidCardViewMetaData.solidView) === null || _b === void 0 ? void 0 : _b.layout) === null || _c === void 0 ? void 0 : _c.attrs) || {}, groupedView: false, editButtonUrl: editButtonUrl, setLightboxUrls: setLightboxUrls, setOpenLightbox: setOpenLightbox, openRecord: openRecord, openEdit: openEdit })) : null] }) }));
|
|
18
23
|
};
|
|
19
24
|
export default CardItem;
|
|
20
25
|
//# sourceMappingURL=CardItem.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardItem.js","sourceRoot":"","sources":["../../../../src/components/core/card/CardItem.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,wBAAwB,EACxB,SAAS,GACV,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"CardItem.js","sourceRoot":"","sources":["../../../../src/components/core/card/CardItem.tsx"],"names":[],"mappings":"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","sourcesContent":["// @ts-nocheck\nimport React from \"react\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { storeCurrentModelViewContext } from \"../../../helpers/modelViewPersistence\";\nimport {\n SolidDropdownMenu,\n SolidDropdownMenuContent,\n SolidDropdownMenuItem,\n SolidDropdownMenuTrigger,\n SolidIcon,\n} from \"../../shad-cn-ui\";\n\ninterface CardItemProps {\n data: any;\n solidCardViewMetaData: any;\n editButtonUrl?: string;\n cardNode?: any;\n DynamicCardWidget?: any;\n onRecover?: (record: any) => void;\n setLightboxUrls?: any;\n setOpenLightbox?: any;\n showArchived?: boolean;\n}\n\nconst CardItem: React.FC<CardItemProps> = ({\n data,\n solidCardViewMetaData,\n editButtonUrl,\n cardNode,\n DynamicCardWidget,\n onRecover,\n setLightboxUrls,\n setOpenLightbox,\n showArchived,\n}) => {\n const router = useRouter();\n const isArchivedRecord = data?.deletedAt !== null && data?.deletedAt !== undefined;\n\n const openRecord = () => {\n if (isArchivedRecord) return;\n storeCurrentModelViewContext();\n router.push(`${editButtonUrl}/${data?.id}`);\n };\n\n const openEdit = () => {\n if (isArchivedRecord) return;\n storeCurrentModelViewContext();\n router.push(`${editButtonUrl}/${data?.id}`);\n };\n\n return (\n <div className=\"solid-card-view-item\">\n <div\n className={`solid-card-view-card solid-kanban-card${isArchivedRecord ? \" greyed-out-row\" : \"\"}`}\n onClick={openRecord}\n style={{ cursor: isArchivedRecord ? \"default\" : \"pointer\" }}\n >\n <div className=\"solid-kanban-action\" onClick={(e) => e.stopPropagation()}>\n <SolidDropdownMenu>\n <SolidDropdownMenuTrigger asChild>\n <button\n type=\"button\"\n className=\"solid-header-cog-trigger solid-kanban-action-trigger\"\n aria-label=\"Open card actions\"\n >\n <SolidIcon name=\"si-ellipsis-v\" aria-hidden />\n </button>\n </SolidDropdownMenuTrigger>\n <SolidDropdownMenuContent className=\"solid-custom-overlay\" align=\"end\">\n {!isArchivedRecord ? (\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item\"\n onSelect={openEdit}\n >\n <SolidIcon name=\"si-pencil\" className=\"solid-header-action-button-icon\" aria-hidden />\n <span className=\"solid-header-action-button-label\">Edit</span>\n </SolidDropdownMenuItem>\n ) : null}\n {showArchived && data?.deletedAt !== null && data?.deletedAt !== undefined && onRecover ? (\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item\"\n onSelect={() => onRecover(data)}\n >\n <SolidIcon name=\"si-refresh\" className=\"solid-header-action-button-icon\" aria-hidden />\n <span className=\"solid-header-action-button-label\">Recover</span>\n </SolidDropdownMenuItem>\n ) : null}\n </SolidDropdownMenuContent>\n </SolidDropdownMenu>\n </div>\n {DynamicCardWidget ? (\n <DynamicCardWidget\n rowData={data}\n solidKanbanViewMetaData={solidCardViewMetaData}\n solidView={solidCardViewMetaData?.solidView}\n solidFieldsMetadata={solidCardViewMetaData?.solidFieldsMetadata}\n card={cardNode}\n layoutAttrs={solidCardViewMetaData?.solidView?.layout?.attrs || {}}\n groupedView={false}\n editButtonUrl={editButtonUrl}\n setLightboxUrls={setLightboxUrls}\n setOpenLightbox={setOpenLightbox}\n openRecord={openRecord}\n openEdit={openEdit}\n />\n ) : null}\n </div>\n </div>\n );\n};\n\nexport default CardItem;\n"]}
|