@solidxai/core-ui 0.1.12-beta.5 → 0.1.12-beta.7
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 +5 -2
- package/dist/components/auth/AuthLayout.js.map +1 -1
- package/dist/components/auth/AuthLayout.tsx +6 -2
- package/dist/components/auth/SolidOTPVerify.d.ts +3 -0
- package/dist/components/auth/SolidOTPVerify.d.ts.map +1 -0
- package/dist/components/auth/SolidOTPVerify.js +67 -0
- package/dist/components/auth/SolidOTPVerify.js.map +1 -0
- package/dist/components/auth/SolidOTPVerify.tsx +133 -0
- package/dist/components/common/AuthBanner.d.ts +3 -0
- package/dist/components/common/AuthBanner.d.ts.map +1 -0
- package/dist/components/common/AuthBanner.js +15 -0
- package/dist/components/common/AuthBanner.js.map +1 -0
- package/dist/components/common/AuthBanner.tsx +41 -0
- package/dist/components/common/SingleSelectAutoCompleteField.d.ts +2 -0
- package/dist/components/common/SingleSelectAutoCompleteField.d.ts.map +1 -0
- package/dist/components/common/SingleSelectAutoCompleteField.js +92 -0
- package/dist/components/common/SingleSelectAutoCompleteField.js.map +1 -0
- package/dist/components/common/SingleSelectAutoCompleteField.tsx +73 -0
- package/dist/components/common/SolidExportStepper.d.ts +12 -0
- package/dist/components/common/SolidExportStepper.d.ts.map +1 -0
- package/dist/components/common/SolidExportStepper.js +30 -0
- package/dist/components/common/SolidExportStepper.js.map +1 -0
- package/dist/components/common/SolidExportStepper.tsx +135 -0
- 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/LoadDynamicJsxComponent.d.ts +2 -0
- package/dist/components/core/common/LoadDynamicJsxComponent.d.ts.map +1 -0
- package/dist/components/core/common/LoadDynamicJsxComponent.js +50 -0
- package/dist/components/core/common/LoadDynamicJsxComponent.js.map +1 -0
- package/dist/components/core/common/LoadDynamicJsxComponent.tsx +70 -0
- package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.d.ts +2 -0
- package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.d.ts.map +1 -0
- package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.js +16 -0
- package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.js.map +1 -0
- package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.tsx +29 -0
- package/dist/components/core/common/SolidGlobalSearchElement.js +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.tsx +1 -1
- package/dist/components/core/dashboard/DashboardFilter.d.ts +13 -0
- package/dist/components/core/dashboard/DashboardFilter.d.ts.map +1 -0
- package/dist/components/core/dashboard/DashboardFilter.js +299 -0
- package/dist/components/core/dashboard/DashboardFilter.js.map +1 -0
- package/dist/components/core/dashboard/DashboardFilter.tsx +348 -0
- package/dist/components/core/dashboard/PrimeDataTableWrapper.d.ts +3 -0
- package/dist/components/core/dashboard/PrimeDataTableWrapper.d.ts.map +1 -0
- package/dist/components/core/dashboard/PrimeDataTableWrapper.js +21 -0
- package/dist/components/core/dashboard/PrimeDataTableWrapper.js.map +1 -0
- package/dist/components/core/dashboard/PrimeDataTableWrapper.tsx +40 -0
- package/dist/components/core/dashboard/SolidDashboard.d.ts +28 -0
- package/dist/components/core/dashboard/SolidDashboard.d.ts.map +1 -0
- package/dist/components/core/dashboard/SolidDashboard.js +183 -0
- package/dist/components/core/dashboard/SolidDashboard.js.map +1 -0
- package/dist/components/core/dashboard/SolidDashboard.module.css +83 -0
- package/dist/components/core/dashboard/SolidDashboard.tsx +263 -0
- package/dist/components/core/dashboard/SolidDashboardBody.d.ts +24 -0
- package/dist/components/core/dashboard/SolidDashboardBody.d.ts.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardBody.js +162 -0
- package/dist/components/core/dashboard/SolidDashboardBody.js.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardBody.tsx +168 -0
- package/dist/components/core/dashboard/SolidDashboardFilterRequired.d.ts +2 -0
- package/dist/components/core/dashboard/SolidDashboardFilterRequired.d.ts.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardFilterRequired.js +11 -0
- package/dist/components/core/dashboard/SolidDashboardFilterRequired.js.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardFilterRequired.tsx +28 -0
- package/dist/components/core/dashboard/SolidDashboardHeader.d.ts +3 -0
- package/dist/components/core/dashboard/SolidDashboardHeader.d.ts.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardHeader.js +6 -0
- package/dist/components/core/dashboard/SolidDashboardHeader.js.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardHeader.tsx +10 -0
- package/dist/components/core/dashboard/SolidDashboardLoading.d.ts +2 -0
- package/dist/components/core/dashboard/SolidDashboardLoading.d.ts.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardLoading.js +10 -0
- package/dist/components/core/dashboard/SolidDashboardLoading.js.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardLoading.tsx +61 -0
- package/dist/components/core/dashboard/SolidDashboardNotAvailable.d.ts +3 -0
- package/dist/components/core/dashboard/SolidDashboardNotAvailable.d.ts.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardNotAvailable.js +12 -0
- package/dist/components/core/dashboard/SolidDashboardNotAvailable.js.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardNotAvailable.tsx +32 -0
- package/dist/components/core/dashboard/SolidDashboardRenderError.d.ts +2 -0
- package/dist/components/core/dashboard/SolidDashboardRenderError.d.ts.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardRenderError.js +11 -0
- package/dist/components/core/dashboard/SolidDashboardRenderError.js.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardRenderError.tsx +28 -0
- package/dist/components/core/dashboard/SolidDashboardVariable.d.ts +19 -0
- package/dist/components/core/dashboard/SolidDashboardVariable.d.ts.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardVariable.js +171 -0
- package/dist/components/core/dashboard/SolidDashboardVariable.js.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardVariable.tsx +259 -0
- package/dist/components/core/dashboard/SolidQuestionRenderer.d.ts +9 -0
- package/dist/components/core/dashboard/SolidQuestionRenderer.d.ts.map +1 -0
- package/dist/components/core/dashboard/SolidQuestionRenderer.js +42 -0
- package/dist/components/core/dashboard/SolidQuestionRenderer.js.map +1 -0
- package/dist/components/core/dashboard/SolidQuestionRenderer.tsx +99 -0
- package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.d.ts +9 -0
- package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.d.ts.map +1 -0
- package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.js +35 -0
- package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.js.map +1 -0
- package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.tsx +48 -0
- package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.d.ts +7 -0
- package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.d.ts.map +1 -0
- package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.js +22 -0
- package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.js.map +1 -0
- package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.tsx +51 -0
- package/dist/components/core/dashboard/chart-renderers/init-chartjs.d.ts +2 -0
- package/dist/components/core/dashboard/chart-renderers/init-chartjs.d.ts.map +1 -0
- package/dist/components/core/dashboard/chart-renderers/init-chartjs.js +4 -0
- package/dist/components/core/dashboard/chart-renderers/init-chartjs.js.map +1 -0
- package/dist/components/core/dashboard/chart-renderers/init-chartjs.ts +25 -0
- package/dist/components/core/dashboard/dashboard-utils.d.ts +2 -0
- package/dist/components/core/dashboard/dashboard-utils.d.ts.map +1 -0
- package/dist/components/core/dashboard/dashboard-utils.js +38 -0
- package/dist/components/core/dashboard/dashboard-utils.js.map +1 -0
- package/dist/components/core/dashboard/dashboard-utils.ts +39 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.d.ts +10 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.js +16 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.js.map +1 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.ts +19 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.d.ts +8 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.js +64 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.js.map +1 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.ts +30 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.d.ts +8 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.js +62 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.js.map +1 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.ts +29 -0
- package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.d.ts +4 -0
- package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.js +23 -0
- package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.js.map +1 -0
- package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.tsx +36 -0
- package/dist/components/core/form/SolidFormView.js +1 -1
- package/dist/components/core/form/SolidFormView.js.map +1 -1
- package/dist/components/core/form/SolidFormView.tsx +1 -1
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js +11 -1
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js.map +1 -1
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.tsx +26 -19
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +13 -5
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +16 -9
- package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.d.ts +3 -0
- package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.d.ts.map +1 -0
- package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.js +92 -0
- package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.js.map +1 -0
- package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.tsx +68 -0
- package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.d.ts +3 -0
- package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.d.ts.map +1 -0
- package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.js +111 -0
- package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.js.map +1 -0
- package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.tsx +122 -0
- 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/kanban/SolidKanbanViewFields.d.ts +12 -0
- package/dist/components/core/kanban/SolidKanbanViewFields.d.ts.map +1 -0
- package/dist/components/core/kanban/SolidKanbanViewFields.js +145 -0
- package/dist/components/core/kanban/SolidKanbanViewFields.js.map +1 -0
- package/dist/components/core/kanban/SolidKanbanViewFields.tsx +164 -0
- package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts +2 -0
- package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts.map +1 -0
- package/dist/components/core/kanban/SolidManyToOneFilterElement.js +87 -0
- package/dist/components/core/kanban/SolidManyToOneFilterElement.js.map +1 -0
- package/dist/components/core/kanban/SolidManyToOneFilterElement.tsx +59 -0
- package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.d.ts +2 -0
- package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.d.ts.map +1 -0
- package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.js +73 -0
- package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.js.map +1 -0
- package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.tsx +50 -0
- package/dist/components/core/kanban/SolidSelectionStaticFilterElement.d.ts +2 -0
- package/dist/components/core/kanban/SolidSelectionStaticFilterElement.d.ts.map +1 -0
- package/dist/components/core/kanban/SolidSelectionStaticFilterElement.js +20 -0
- package/dist/components/core/kanban/SolidSelectionStaticFilterElement.js.map +1 -0
- package/dist/components/core/kanban/SolidSelectionStaticFilterElement.tsx +32 -0
- package/dist/components/core/kanban/SolidVarInputsFilterElement.d.ts +12 -0
- package/dist/components/core/kanban/SolidVarInputsFilterElement.d.ts.map +1 -0
- package/dist/components/core/kanban/SolidVarInputsFilterElement.js +81 -0
- package/dist/components/core/kanban/SolidVarInputsFilterElement.js.map +1 -0
- package/dist/components/core/kanban/SolidVarInputsFilterElement.tsx +184 -0
- package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.js +7 -0
- package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.tsx +9 -0
- package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.js +8 -0
- package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.tsx +16 -0
- package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.js +21 -0
- package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.tsx +23 -0
- package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.js +8 -0
- package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.tsx +14 -0
- package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.js +8 -0
- package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.tsx +13 -0
- package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.js +7 -0
- package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.tsx +9 -0
- package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.js +8 -0
- package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.tsx +12 -0
- package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.js +7 -0
- package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.tsx +9 -0
- package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.js +8 -0
- package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.tsx +14 -0
- package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.js +16 -0
- package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.tsx +20 -0
- package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.js +7 -0
- package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.tsx +9 -0
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js +56 -0
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.tsx +140 -0
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js +42 -0
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.tsx +164 -0
- package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.js +11 -0
- package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.tsx +13 -0
- package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.js +7 -0
- package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.tsx +9 -0
- package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.js +8 -0
- package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.tsx +14 -0
- package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.js +8 -0
- package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.tsx +14 -0
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js +37 -0
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.tsx +121 -0
- package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.js +8 -0
- package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.tsx +12 -0
- package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.js +8 -0
- package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.tsx +13 -0
- package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.js +7 -0
- package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.tsx +16 -0
- package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
- package/dist/components/core/list/SolidDataTable.js +1 -1
- package/dist/components/core/list/SolidDataTable.js.map +1 -1
- package/dist/components/core/list/SolidDataTable.tsx +1 -0
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +6 -1
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +6 -1
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts +2 -0
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts.map +1 -0
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.js +39 -0
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.js.map +1 -0
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.tsx +40 -0
- package/dist/components/core/list/SolidVarInputsFilterElement.d.ts +12 -0
- package/dist/components/core/list/SolidVarInputsFilterElement.d.ts.map +1 -0
- package/dist/components/core/list/SolidVarInputsFilterElement.js +81 -0
- package/dist/components/core/list/SolidVarInputsFilterElement.js.map +1 -0
- package/dist/components/core/list/SolidVarInputsFilterElement.tsx +184 -0
- package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.d.ts +3 -0
- package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.d.ts.map +1 -0
- package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.js +87 -0
- package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.js.map +1 -0
- package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.tsx +70 -0
- package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.d.ts +3 -0
- package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.d.ts.map +1 -0
- package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.js +33 -0
- package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.js.map +1 -0
- package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.tsx +50 -0
- package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.d.ts +3 -0
- package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.d.ts.map +1 -0
- package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.js +158 -0
- package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.js.map +1 -0
- package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.tsx +185 -0
- package/dist/components/core/model/FieldMetaDataForm.d.ts +1 -1
- package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
- package/dist/components/core/model/FieldMetaDataForm.js +119 -102
- package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
- package/dist/components/core/model/FieldMetaDataForm.tsx +82 -39
- package/dist/components/core/model/FieldSelector.d.ts +5 -1
- package/dist/components/core/model/FieldSelector.d.ts.map +1 -1
- package/dist/components/core/model/FieldSelector.js +25 -6
- package/dist/components/core/model/FieldSelector.js.map +1 -1
- package/dist/components/core/model/FieldSelector.tsx +50 -5
- 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 +38 -15
- package/dist/components/core/tree/SolidTreeView.js.map +1 -1
- package/dist/components/core/tree/SolidTreeView.tsx +48 -23
- 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/DashboardHeader.d.ts +3 -0
- package/dist/components/layout/DashboardHeader.d.ts.map +1 -0
- package/dist/components/layout/DashboardHeader.js +20 -0
- package/dist/components/layout/DashboardHeader.js.map +1 -0
- package/dist/components/layout/DashboardHeader.tsx +94 -0
- package/dist/components/shad-cn-ui/SolidSelect.d.ts +2 -1
- package/dist/components/shad-cn-ui/SolidSelect.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidSelect.js +12 -4
- package/dist/components/shad-cn-ui/SolidSelect.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidSelect.tsx +13 -1
- package/dist/helpers/# no such endpoints exist, need to calle +3 -0
- package/dist/helpers/ToastContainer.d.ts +4 -0
- package/dist/helpers/ToastContainer.d.ts.map +1 -0
- package/dist/helpers/ToastContainer.js +49 -0
- package/dist/helpers/ToastContainer.js.map +1 -0
- package/dist/helpers/ToastContainer.tsx +94 -0
- package/dist/helpers/showToast.d.ts +5 -0
- package/dist/helpers/showToast.d.ts.map +1 -0
- package/dist/helpers/showToast.js +17 -0
- package/dist/helpers/showToast.js.map +1 -0
- package/dist/helpers/showToast.ts +13 -0
- package/dist/helpers/studioSandbox.d.ts +31 -0
- package/dist/helpers/studioSandbox.d.ts.map +1 -0
- package/dist/helpers/studioSandbox.js +104 -0
- package/dist/helpers/studioSandbox.js.map +1 -0
- package/dist/helpers/studioSandbox.ts +117 -0
- package/dist/nextAuth/authProviders.d.ts +4 -0
- package/dist/nextAuth/authProviders.d.ts.map +1 -0
- package/dist/nextAuth/authProviders.js +198 -0
- package/dist/nextAuth/authProviders.js.map +1 -0
- package/dist/nextAuth/authProviders.tsx +232 -0
- package/dist/nextAuth/handleLogout.d.ts +2 -0
- package/dist/nextAuth/handleLogout.d.ts.map +1 -0
- package/dist/nextAuth/handleLogout.js +36 -0
- package/dist/nextAuth/handleLogout.js.map +1 -0
- package/dist/nextAuth/handleLogout.tsx +39 -0
- package/dist/nextAuth/refreshAccessToken.d.ts +2 -0
- package/dist/nextAuth/refreshAccessToken.d.ts.map +1 -0
- package/dist/nextAuth/refreshAccessToken.js +24 -0
- package/dist/nextAuth/refreshAccessToken.js.map +1 -0
- package/dist/nextAuth/refreshAccessToken.tsx +28 -0
- package/dist/redux/api/dashboardApi.d.ts +23 -0
- package/dist/redux/api/dashboardApi.d.ts.map +1 -0
- package/dist/redux/api/dashboardApi.js +35 -0
- package/dist/redux/api/dashboardApi.js.map +1 -0
- package/dist/redux/api/dashboardApi.ts +56 -0
- package/dist/redux/api/dashboardLayoutApi.d.ts +24 -0
- package/dist/redux/api/dashboardLayoutApi.d.ts.map +1 -0
- package/dist/redux/api/dashboardLayoutApi.js +34 -0
- package/dist/redux/api/dashboardLayoutApi.js.map +1 -0
- package/dist/redux/api/dashboardLayoutApi.ts +55 -0
- package/dist/redux/api/dashboardQuestionApi.d.ts +5 -0
- package/dist/redux/api/dashboardQuestionApi.d.ts.map +1 -0
- package/dist/redux/api/dashboardQuestionApi.js +18 -0
- package/dist/redux/api/dashboardQuestionApi.js.map +1 -0
- package/dist/redux/api/dashboardQuestionApi.ts +17 -0
- package/dist/redux/api/datasourceIntrospectionApi.d.ts +1 -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 +1 -0
- package/dist/redux/features/settingsSlice.d.ts +20 -0
- package/dist/redux/features/settingsSlice.d.ts.map +1 -0
- package/dist/redux/features/settingsSlice.js +39 -0
- package/dist/redux/features/settingsSlice.js.map +1 -0
- package/dist/redux/features/settingsSlice.ts +60 -0
- package/dist/redux/store/defaultStoreConfig.d.ts +5 -5
- package/dist/resources/images/Footerbg.png +0 -0
- package/dist/resources/images/LoginBanner.png +0 -0
- package/dist/resources/images/dashboard/Ellipse 1.svg +10 -0
- package/dist/resources/images/dashboard/Rectangle 17.svg +10 -0
- package/dist/resources/images/dashboard/Rectangle 25.svg +11 -0
- package/dist/resources/images/dashboard/image 5.svg +9 -0
- package/dist/resources/images/loginhero.png +0 -0
- package/dist/resources/images/logo.png +0 -0
- package/dist/resources/images/radix-logo-white.png +0 -0
- package/dist/resources/images/radix-logo.png +0 -0
- package/dist/resources/images/signupBanner.png +0 -0
- package/dist/resources/shadcn-base.css +16 -70
- package/dist/resources/solid-custom.css +55 -0
- package/dist/resources/solid-responsive.css +4 -4
- package/dist/resources/solid-tailwind-generated.css +1 -1
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.css +12 -0
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.d.ts.map +1 -1
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js +160 -59
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js.map +1 -1
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.tsx +293 -41
- package/package.json +1 -1
- package/dist/helpers/modulePackageResumeState.d.ts +0 -6
- package/dist/helpers/modulePackageResumeState.d.ts.map +0 -1
- package/dist/helpers/modulePackageResumeState.js +0 -46
- package/dist/helpers/modulePackageResumeState.js.map +0 -1
- package/dist/helpers/modulePackageResumeState.ts +0 -57
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SolidDashboard.js","sourceRoot":"","sources":["../../../../src/components/core/dashboard/SolidDashboard.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAqB,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAE1F,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAClH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAA4B,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtE,OAAO,MAAM,MAAM,6BAA6B,CAAC;AACjD,OAAO,kBAAgC,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,uGAAuG;AACvG,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,0BAA0B,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,oCAAoC,EAAE,MAAM,uCAAuC,CAAC;AAE7F,MAAM,CAAN,IAAY,qBAIX;AAJD,WAAY,qBAAqB;IAC/B,sCAAa,CAAA;IACb,6DAAoC,CAAA;IACpC,+DAAsC,CAAA;AACxC,CAAC,EAJW,qBAAqB,KAArB,qBAAqB,QAIhC;AAED,IAAK,WAGJ;AAHD,WAAK,WAAW;IACd,0BAAW,CAAA;IACX,oCAAqB,CAAA;AACvB,CAAC,EAHI,WAAW,KAAX,WAAW,QAGf;AAeD,SAAS,mBAAmB,CAC1B,IAAuB,EACvB,qBAA0E,EAC1E,YAA6C;IAErC,IAAA,OAAO,GAAW,IAAI,QAAf,EAAE,IAAI,GAAK,IAAI,KAAT,CAAU;IAC/B,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACjC,gDAAgD;QAChD,IAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,uCAAuC;QAEzE,8BAA8B;QAC9B,qBAAqB,CAAC,aAAa,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;QAE9D,8BAA8B;QAC9B,YAAY,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;KAEtC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,UAAkB,EAAE,aAAsB;IAChE,IAAM,OAAO,GAAQ;QACnB,MAAM,EAAE;YACN,IAAI,EAAE;gBACJ,GAAG,EAAE,UAAU;aAChB;SACF;KACF,CAAC;IAEF,IAAI,aAAa,KAAK,SAAS,EAAE;QAC/B,OAAO,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;KACxC;IAED,IAAM,KAAK,GAAG;QACZ,OAAO,SAAA;QACP,QAAQ,EAAE,CAAC,oBAAoB,EAAE,WAAW,CAAC;KAC9C,CAAC;IACF,IAAM,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE;QACnC,gBAAgB,EAAE,IAAI;KACvB,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,qCAAqC;AACrC,mCAAmC;AACnC,MAAM;AACN,IAAI;AACJ,8IAA8I;AAC9I,MAAM;AACN,sCAAsC;AACtC,IAAI;AACJ,GAAG;AACH,SAAS,qBAAqB,CAAC,SAAgB,EAAE,kBAA6C,EAAE,OAAwB;IACtH,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;QAC1B,OAAO,KAAK,CAAC;KACd;IAED,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE;QACnC,OAAO,IAAI,CAAC;KACb;IAED,sEAAsE;IACtE,IAAM,oBAAoB,GAAG,kBAAkB,CAAC,KAAK,CAAC,UAAA,QAAQ;QAC5D,OAAA,OAAO,CAAC,IAAI,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,YAAY,KAAK,QAAQ,CAAC,YAAY,EAA7C,CAA6C,CAAC;IAArE,CAAqE,CACtE,CAAC;IAEF,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAOD,IAAM,cAAc,GAAG,UAAC,MAA+B;;IAC/C,IAAA,KAA6B,oBAAoB,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,EAAxG,IAAI,UAAA,EAAE,SAAS,eAAA,EAAE,KAAK,WAAkF,CAAA,CAAC,iDAAiD;IAClK,4HAA4H;IAC5H,gJAAgJ;IAChJ,sKAAsK;IACtK,oCAAoC;IACpC,8EAA8E;IAC9E,iBAAiB;IACjB,mBAAmB;IACnB,MAAM;IAEN,6EAA6E;IAC7E,6HAA6H;IAC7H,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/B,IAAM,aAAa,GAAG,WAAW,CAAC,UAAC,KAAU,YAAK,OAAA,MAAA,KAAK,CAAC,WAAW,0CAAE,aAAa,CAAA,EAAA,CAAC,CAAC;IAC9E,IAAA,KAAwB,QAAQ,CAAkB,EAAE,CAAC,EAApD,OAAO,QAAA,EAAE,UAAU,QAAiC,CAAC;IACtD,IAAA,KAA4B,QAAQ,CAAQ,EAAE,CAAC,EAA9C,SAAS,QAAA,EAAE,YAAY,QAAuB,CAAC;IAChD,IAAA,KAA8C,QAAQ,CAA4B,EAAE,CAAC,EAApF,kBAAkB,QAAA,EAAE,qBAAqB,QAA2C,CAAC;IACtF,IAAA,KAA0D,QAAQ,CAAC,KAAK,CAAC,EAAxE,wBAAwB,QAAA,EAAE,2BAA2B,QAAmB,CAAC;IAEzE,IAAA,qBAAqB,GAAI,oCAAoC,EAAE,GAA1C,CAA2C;IAEjE,IAAA,KAAwC,QAAQ,CAAa,EAAE,CAAC,EAA/D,eAAe,QAAA,EAAE,kBAAkB,QAA4B,CAAC;IAEvE,IAAM,yBAAyB,GAAG;;;;;;oBAEb,qBAAM,qBAAqB,CAAC;4BAC3C,WAAW,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAC,CAAC,EAAE,EAAE;4BAChC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC;yBACxC,CAAC,CAAC,MAAM,EAAE,EAAA;;oBAHL,QAAQ,GAAG,SAGN;oBACX,IAAI,QAAQ,CAAC,UAAU,KAAK,GAAG,EAAE;wBAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,oCAAoC,EAAE,CAAC,CAAC,CAAC;qBAC3I;;;;oBAED,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC;;;;;SAErI,CAAA;IAED,SAAS,CAAC;QACR,uDAAuD;QACvD,kEAAkE;QAClE,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;YACtB,4CAA4C;YAC5C,mBAAmB,CAAC,IAAI,EAAE,qBAAqB,EAAE,YAAY,CAAC,CAAC;SAChE;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;IAEtB,IAAM,kBAAkB,GAAG;QACzB,IAAI,aAAa,EAAE;YACjB,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,CAAG,aAAa;SAC1C;aAAM;YACL,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAK,YAAY;SACzC;IACH,CAAC,CAAC;IAIF,OAAO,CACL,cAAK,SAAS,EAAE,yBAAyB,YAEvC,eAAK,SAAS,EAAE,6BAAsB,MAAM,CAAC,gCAAgC,CAAE,aAC5E,SAAS,IAAI,KAAC,qBAAqB,KAAG,EACtC,KAAK,IAAI,KAAC,yBAAyB,KAAG,EACtC,CAAC,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAC5D,KAAC,0BAA0B,KAAG,CAC/B,EACA,CAAC,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAC1D,8BACE,eAAK,SAAS,EAAC,aAAa,EAAC,KAAK,EAAE,EAAE,YAAY,EAAE,sCAAsC,EAAE,aAC1F,eAAK,SAAS,EAAC,+BAA+B,aAC5C,cAAK,SAAS,EAAC,0CAA0C,EAAC,OAAO,EAAE,kBAAkB,YACnF,KAAC,SAAS,IAAC,IAAI,EAAC,aAAa,wBAAe,GACxC,EACN,aAAG,SAAS,EAAE,sEAA+D,MAAM,CAAC,mBAAmB,CAAE,aACtG,CAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAC,CAAC,CAAC,0CAAE,WAAW,EAAC,CAAC,CAAC,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAC,CAAC,CAAC,0CAAE,WAAW,CAAC,CAAC,CAAC,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAC,CAAC,CAAC,0CAAE,IAAI,EACtF,CAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAC,CAAC,CAAC,0CAAE,WAAW,KAAI,CAChC,MAAC,YAAY,eACX,KAAC,mBAAmB,IAAC,OAAO,kBAC1B,KAAC,SAAS,IAAC,IAAI,EAAC,gBAAgB,EAAC,SAAS,EAAC,0BAA0B,wBAAe,GAChE,EACtB,KAAC,mBAAmB,IAAC,IAAI,EAAC,OAAO,YAAE,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAC,CAAC,CAAC,0CAAE,WAAW,GAAuB,IAC1E,CAChB,IACC,IACA,EACL,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,CACtD,8BACE,eAAK,SAAS,EAAC,YAAY,aACzB,KAAC,WAAW,IACV,IAAI,EAAC,QAAQ,EACb,IAAI,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,cAAc,EAC/D,SAAS,EAAC,6BAA6B,EACvC,IAAI,EAAC,IAAI,EACT,OAAO,EAAC,WAAW,EACnB,OAAO,EAAE,cAAM,OAAA,2BAA2B,CAAC,IAAI,CAAC,EAAjC,CAAiC,GAChD,EAEF,KAAC,WAAW,IACV,IAAI,EAAC,QAAQ,EACb,IAAI,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,cAAc,EAC/D,KAAK,EAAE,QAAQ,EACf,SAAS,EAAC,uBAAuB,EACjC,IAAI,EAAC,IAAI,EACT,OAAO,EAAC,WAAW,EACnB,OAAO,EAAE,cAAM,OAAA,2BAA2B,CAAC,IAAI,CAAC,EAAjC,CAAiC,GAChD,EACD,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CACrB,KAAC,WAAW,IACV,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,IAAI,EACT,IAAI,EAAC,oBAAoB,EACzB,QAAQ,EAAC,WAAW,EACpB,SAAS,EAAC,oBAAoB,EAC9B,QAAQ,QACR,OAAO,EAAE,cAAQ,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GACtE,CACH,EACD,KAAC,WAAW,IACV,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,IAAI,EACT,IAAI,EAAC,YAAY,EACjB,QAAQ,EAAC,WAAW,EACpB,SAAS,EAAC,oBAAoB,EAC9B,QAAQ,QACR,OAAO,EAAE,cAAM,OAAA,yBAAyB,EAAE,EAA3B,CAA2B,GAAI,IAC5C,EACN,KAAC,eAAe,IACd,kBAAkB,EAAE,kBAAkB,EACtC,cAAc,EAAE,OAAO,EACvB,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,wBAAwB,EACjC,MAAM,EAAE,cAAM,OAAA,2BAA2B,CAAC,KAAK,CAAC,EAAlC,CAAkC,GAChD,IACD,CACJ,IACG,EACL,CAAC,qBAAqB,CAAC,SAAS,EAAE,kBAAkB,EAAE,OAAO,CAAC,IAAI,KAAC,4BAA4B,KAAG,EAClG,qBAAqB,CAAC,SAAS,EAAE,kBAAkB,EAAE,OAAO,CAAC,IAAI,KAAC,kBAAkB,IAAC,WAAW,EAAE,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAC,CAAC,CAAC,0CAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,kBAAkB,EAAE,kBAAkB,GAAI,IAC5O,CACJ,IACG,GACF,CACP,CAAC;AACJ,CAAC,CAAA;AAED,eAAe,cAAc,CAAC","sourcesContent":["import { DashboardResponse, useGetDashboardQuery } from '../../../redux/api/dashboardApi';\nimport { SqlExpression } from '../../../types/solid-core';\nimport { SolidButton, SolidIcon, SolidTooltip, SolidTooltipContent, SolidTooltipTrigger } from '../../shad-cn-ui';\nimport qs from 'qs';\nimport { Dispatch, SetStateAction, useEffect, useState } from 'react';\nimport styles from './SolidDashboard.module.css';\nimport SolidDashboardBody, { GridItem } from './SolidDashboardBody';\nimport { DashboardFilter } from './DashboardFilter';\n// import { SolidAiMainWrapper } from '../solid-ai/SolidAiMainWrapper'; // moved to SolidX Studio panel\nimport { SolidDashboardFilterRequired } from './SolidDashboardFilterRequired';\nimport { SolidDashboardLoading } from './SolidDashboardLoading';\nimport { SolidDashboardRenderError } from './SolidDashboardRenderError';\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { showNavbar, toggleNavbar } from \"../../../redux/features/navbarSlice\";\nimport SolidDashboardNotAvailable from './SolidDashboardNotAvailable';\nimport { showToast } from '../../../redux/features/toastSlice';\nimport { ERROR_MESSAGES } from '../../../constants/error-messages';\nimport { useUpsertUserDashboardLayoutMutation } from '../../../redux/api/dashboardLayoutApi';\n\nexport enum DashboardVariableType {\n DATE = 'date',\n SELECTION_STATIC = 'selectionStatic',\n SELECTION_DYNAMIC = 'selectionDynamic',\n}\n\nenum SOURCE_TYPE {\n SQL = 'sql',\n PROVIDER = 'provider',\n}\n\nexport interface DashboardVariableRecord {\n id: number;\n variableName: string;\n variableType: DashboardVariableType;\n selectionStaticValues?: string;\n selectionDynamicSourceType?: SOURCE_TYPE;\n selectionDynamicProviderName?: string;\n selectionDynamicSQL?: string;\n isMultiSelect?: boolean;\n defaultValue?: string;\n defaultOperator?: string;\n}\n\nfunction handleDashboardData(\n data: DashboardResponse,\n setDashboardVariables: Dispatch<SetStateAction<DashboardVariableRecord[]>>,\n setQuestions: Dispatch<SetStateAction<any[]>>,\n) {\n const { records, meta } = data;\n if (records && records.length > 0) {\n // Set the layout options for the dashboard body\n const dashboardData = records[0]; // Assuming we want the first dashboard\n\n // Set the dashboard variables\n setDashboardVariables(dashboardData.dashboardVariables || []);\n\n // Set the dashboard questions\n setQuestions(dashboardData.questions)\n\n }\n}\n\nfunction getQueryParams(moduleName: string, dashboardName?: string) {\n const filters: any = {\n module: {\n name: {\n $eq: moduleName\n }\n }\n };\n\n if (dashboardName !== undefined) {\n filters.name = { $eqi: dashboardName };\n }\n\n const query = {\n filters,\n populate: ['dashboardVariables', 'questions']\n };\n const urlQuery = qs.stringify(query, {\n encodeValuesOnly: true,\n });\n return urlQuery;\n}\n\n// Render the dashboard body only if:\n// 1. There are dashboard questions\n// AND\n// (\n// 1. There are dashboard variables and all dashboard variable filter rules have been applied i.e (all dashboard variables have been selected)\n//. OR\n// 2. There are no dashboard variables\n// )\n// \nfunction isRenderDashboardBody(questions: any[], dashboardVariables: DashboardVariableRecord[], filters: SqlExpression[]) {\n if (questions.length === 0) {\n return false;\n }\n\n if (dashboardVariables.length === 0) {\n return true;\n }\n\n // Check if all dashboard variables have corresponding filters applied\n const allVariablesFiltered = dashboardVariables.every(variable =>\n filters.some(filter => filter.variableName === variable.variableName)\n );\n\n return allVariablesFiltered;\n}\n\ntype SolidDashboardViewProps = {\n moduleName: string;\n dashboardName?: string;\n};\n\nconst SolidDashboard = (params: SolidDashboardViewProps) => {\n const { data, isLoading, error } = useGetDashboardQuery(getQueryParams(params.moduleName, params.dashboardName)) // FIXME : error handling should be done properly\n // Define a state called layoutOption and pass it after destructing the widgetOptions and dashboardOptions from layoutOption\n // TODO [HP]: Shouldn't the type of this state variable be something different? Why are we muddling this with layout but calling it body props? \n // TODO [HP]: Body props should be clearly made up of Gridstack layout options, the questions that make up the body & the filter[] which is an array of SqlExpressions\n // TODO [HP]: This is fully CONFUSED\n // const [layoutOption, setLayoutOption] = useState<SolidDashboardBodyProps>({\n // filters: [],\n // questions: [],\n // });\n\n // TODO [HP]: replace dashboardVariableFilterRules with filters everywhere...\n // const [dashboardVariableFilterRules, setDashboardVariableFilterRules] = useState<ISolidDashboardVariableFilterRule[]>([]);\n const dispatch = useDispatch();\n\n const visibleNavbar = useSelector((state: any) => state.navbarState?.visibleNavbar);\n const [filters, setFilters] = useState<SqlExpression[]>([]);\n const [questions, setQuestions] = useState<any[]>([]);\n const [dashboardVariables, setDashboardVariables] = useState<DashboardVariableRecord[]>([]);\n const [isDashboardFilterVisible, setIsDashboardFilterVisible] = useState(false);\n\n const [upsertDashboardLayout] = useUpsertUserDashboardLayoutMutation();\n\n const [dashboardLayout, setDashboardLayout] = useState<GridItem[]>([]);\n\n const updateUserDashboardLayout = async () => {\n try {\n const response = await upsertDashboardLayout({\n dashboardId: data?.records[0].id,\n layout: JSON.stringify(dashboardLayout),\n }).unwrap();\n if (response.statusCode === 200) {\n dispatch(showToast({ severity: \"success\", summary: ERROR_MESSAGES.LAYOUT, detail: ERROR_MESSAGES.DASHBOARD_LAYOUT_UPDATE_SUCCESSFULLY }));\n }\n } catch (error) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.LAYOUT, detail: ERROR_MESSAGES.DASHBOARD_LAYOUT_UPDATE_FAILED }));\n }\n }\n\n useEffect(() => {\n // Invoke the dashboard api to fetch the dashboard data\n // console.log('Dashboard Data testing:', isLoading, data, error);\n if (!isLoading && data) {\n // Assuming data contains the layout options\n handleDashboardData(data, setDashboardVariables, setQuestions);\n }\n }, [isLoading, data]);\n\n const toggleBothSidebars = () => {\n if (visibleNavbar) {\n dispatch(toggleNavbar()); // close both\n } else {\n dispatch(showNavbar()); // open both\n }\n };\n\n\n\n return (\n <div className={`h-screen surface-0 flex`}>\n\n <div className={`h-full flex-grow-1 ${styles.SolidDashboardPageContentWrapper}`}>\n {isLoading && <SolidDashboardLoading />}\n {error && <SolidDashboardRenderError />}\n {!isLoading && !error && data && data.records.length === 0 && (\n <SolidDashboardNotAvailable />\n )}\n {!isLoading && !error && data && data.records.length > 0 && (\n <>\n <div className=\"page-header\" style={{ borderBottom: '1px solid var(--primary-light-color)' }}>\n <div className='flex align-items-center gap-2'>\n <div className=\"apps-icon block md:hidden cursor-pointer\" onClick={toggleBothSidebars}>\n <SolidIcon name=\"si-th-large\" aria-hidden />\n </div>\n <p className={`view-title solid-text-wrapper flex align-items-center gap-1 ${styles.SolidDashboardTitle}`}>\n {data?.records[0]?.displayName ? data?.records[0]?.displayName : data?.records[0]?.name}\n {data?.records[0]?.description && (\n <SolidTooltip>\n <SolidTooltipTrigger asChild>\n <SolidIcon name=\"si-info-circle\" className=\"solid-field-tooltip-icon\" aria-hidden />\n </SolidTooltipTrigger>\n <SolidTooltipContent side=\"right\">{data?.records[0]?.description}</SolidTooltipContent>\n </SolidTooltip>\n )}\n </p>\n </div>\n {dashboardVariables && dashboardVariables.length > 0 && (\n <>\n <div className='flex gap-2'>\n <SolidButton\n type=\"button\"\n icon={filters.length > 0 ? \"si si-filter-fill\" : \"si si-filter\"}\n className=\"lg:hidden solid-icon-button\"\n size='sm'\n variant='secondary'\n onClick={() => setIsDashboardFilterVisible(true)}\n />\n\n <SolidButton\n type=\"button\"\n icon={filters.length > 0 ? \"si si-filter-fill\" : \"si si-filter\"}\n label={\"Filter\"}\n className=\"hidden lg:inline-flex\"\n size='sm'\n variant='secondary'\n onClick={() => setIsDashboardFilterVisible(true)}\n />\n {filters.length > 0 && (\n <SolidButton\n type=\"button\"\n size=\"sm\"\n icon=\"si si-filter-slash\"\n severity=\"secondary\"\n className=\"solid-icon-button \"\n outlined\n onClick={() => { setFilters([]); setIsDashboardFilterVisible(false); }}\n />\n )}\n <SolidButton\n type=\"button\"\n size=\"sm\"\n icon=\"si si-save\"\n severity=\"secondary\"\n className=\"solid-icon-button \"\n outlined\n onClick={() => updateUserDashboardLayout()} />\n </div>\n <DashboardFilter\n dashboardVariables={dashboardVariables}\n initialFilters={filters}\n onApply={setFilters}\n visible={isDashboardFilterVisible}\n onHide={() => setIsDashboardFilterVisible(false)}\n />\n </>\n )}\n </div>\n {!isRenderDashboardBody(questions, dashboardVariables, filters) && <SolidDashboardFilterRequired />}\n {isRenderDashboardBody(questions, dashboardVariables, filters) && <SolidDashboardBody dashboardId={data?.records[0]?.id} questions={questions} filters={filters} dashboardLayout={dashboardLayout} setDashboardLayout={setDashboardLayout} />}\n </>\n )}\n </div>\n </div>\n );\n}\n\nexport default SolidDashboard;\n"]}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
.SolidDashboardTitle {
|
|
2
|
+
margin: 4.3px 0 !important
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.SolidDashboardContentWrapper {
|
|
6
|
+
background-color: var(--hightlight-bg-secondary);
|
|
7
|
+
height: calc(100vh - 64px) !important;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.SolidChartCardWrapper {
|
|
11
|
+
/* box-shadow: 0px 6px 15px 1px rgb(0 0 0 / 6%); */
|
|
12
|
+
border: 1px solid #e4e3e3;
|
|
13
|
+
border-radius: 12px;
|
|
14
|
+
background-color: var(--surface-card);
|
|
15
|
+
height: 100%;
|
|
16
|
+
display: flex;
|
|
17
|
+
flex-direction: column;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.SolidChartTitle {
|
|
21
|
+
color: var(--solid-dark-title);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.SolidDashboardDateRangeFilterWrapper {
|
|
25
|
+
border: 1px solid var(--gray-300);
|
|
26
|
+
border-radius: 6px;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.SolidDashboardDateRangeFilter input {
|
|
30
|
+
border: none !important;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
.SolidDashboardPageContentWrapper {
|
|
35
|
+
transition: width 0.3s ease;
|
|
36
|
+
min-width: 0;
|
|
37
|
+
border-right: 1px solid var(--primary-light-color);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.SolidXAIFloatingBtn {
|
|
41
|
+
position: absolute;
|
|
42
|
+
top: 50%;
|
|
43
|
+
right: -1px;
|
|
44
|
+
/* transform: translateY(-50%) rotate(-90deg); */
|
|
45
|
+
z-index: 1000;
|
|
46
|
+
font-size: 0.875rem;
|
|
47
|
+
background-color: #eff1f4;
|
|
48
|
+
color: var(--secondary-dark-color);
|
|
49
|
+
white-space: nowrap;
|
|
50
|
+
padding: 0.75rem 0.5rem;
|
|
51
|
+
border-radius: 4px 4px 4px 0;
|
|
52
|
+
border-top: 1px solid var(--primary-light-color);
|
|
53
|
+
border-right: 1px solid var(--primary-light-color);
|
|
54
|
+
border-bottom: 1px solid var(--primary-light-color);
|
|
55
|
+
border-left: none;
|
|
56
|
+
display: inline-block;
|
|
57
|
+
writing-mode: vertical-rl;
|
|
58
|
+
transform: rotate(180deg);
|
|
59
|
+
width: 30px;
|
|
60
|
+
transition: right 0.3s;
|
|
61
|
+
margin-top: -50px;
|
|
62
|
+
cursor: pointer;
|
|
63
|
+
box-shadow:
|
|
64
|
+
0 -4px 6px -4px rgba(0, 0, 0, 0.1),
|
|
65
|
+
4px 0 6px -4px rgba(0, 0, 0, 0.1),
|
|
66
|
+
0 4px 6px -4px rgba(0, 0, 0, 0.1);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.SolidXAIListPanel {
|
|
70
|
+
position: fixed !important;
|
|
71
|
+
top: 0;
|
|
72
|
+
right: -700px;
|
|
73
|
+
/* Hidden by default */
|
|
74
|
+
width: 700px;
|
|
75
|
+
height: 100vh;
|
|
76
|
+
transition: right 0.3s ease;
|
|
77
|
+
z-index: 999;
|
|
78
|
+
border-left: 1px solid var(--primary-light-color);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.SolidXAIListPanelOpen {
|
|
82
|
+
right: 0;
|
|
83
|
+
}
|
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
import { DashboardResponse, useGetDashboardQuery } from '../../../redux/api/dashboardApi';
|
|
2
|
+
import { SqlExpression } from '../../../types/solid-core';
|
|
3
|
+
import { SolidButton, SolidIcon, SolidTooltip, SolidTooltipContent, SolidTooltipTrigger } from '../../shad-cn-ui';
|
|
4
|
+
import qs from 'qs';
|
|
5
|
+
import { Dispatch, SetStateAction, useEffect, useState } from 'react';
|
|
6
|
+
import styles from './SolidDashboard.module.css';
|
|
7
|
+
import SolidDashboardBody, { GridItem } from './SolidDashboardBody';
|
|
8
|
+
import { DashboardFilter } from './DashboardFilter';
|
|
9
|
+
// import { SolidAiMainWrapper } from '../solid-ai/SolidAiMainWrapper'; // moved to SolidX Studio panel
|
|
10
|
+
import { SolidDashboardFilterRequired } from './SolidDashboardFilterRequired';
|
|
11
|
+
import { SolidDashboardLoading } from './SolidDashboardLoading';
|
|
12
|
+
import { SolidDashboardRenderError } from './SolidDashboardRenderError';
|
|
13
|
+
import { useDispatch, useSelector } from "react-redux";
|
|
14
|
+
import { showNavbar, toggleNavbar } from "../../../redux/features/navbarSlice";
|
|
15
|
+
import SolidDashboardNotAvailable from './SolidDashboardNotAvailable';
|
|
16
|
+
import { showToast } from '../../../redux/features/toastSlice';
|
|
17
|
+
import { ERROR_MESSAGES } from '../../../constants/error-messages';
|
|
18
|
+
import { useUpsertUserDashboardLayoutMutation } from '../../../redux/api/dashboardLayoutApi';
|
|
19
|
+
|
|
20
|
+
export enum DashboardVariableType {
|
|
21
|
+
DATE = 'date',
|
|
22
|
+
SELECTION_STATIC = 'selectionStatic',
|
|
23
|
+
SELECTION_DYNAMIC = 'selectionDynamic',
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
enum SOURCE_TYPE {
|
|
27
|
+
SQL = 'sql',
|
|
28
|
+
PROVIDER = 'provider',
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export interface DashboardVariableRecord {
|
|
32
|
+
id: number;
|
|
33
|
+
variableName: string;
|
|
34
|
+
variableType: DashboardVariableType;
|
|
35
|
+
selectionStaticValues?: string;
|
|
36
|
+
selectionDynamicSourceType?: SOURCE_TYPE;
|
|
37
|
+
selectionDynamicProviderName?: string;
|
|
38
|
+
selectionDynamicSQL?: string;
|
|
39
|
+
isMultiSelect?: boolean;
|
|
40
|
+
defaultValue?: string;
|
|
41
|
+
defaultOperator?: string;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function handleDashboardData(
|
|
45
|
+
data: DashboardResponse,
|
|
46
|
+
setDashboardVariables: Dispatch<SetStateAction<DashboardVariableRecord[]>>,
|
|
47
|
+
setQuestions: Dispatch<SetStateAction<any[]>>,
|
|
48
|
+
) {
|
|
49
|
+
const { records, meta } = data;
|
|
50
|
+
if (records && records.length > 0) {
|
|
51
|
+
// Set the layout options for the dashboard body
|
|
52
|
+
const dashboardData = records[0]; // Assuming we want the first dashboard
|
|
53
|
+
|
|
54
|
+
// Set the dashboard variables
|
|
55
|
+
setDashboardVariables(dashboardData.dashboardVariables || []);
|
|
56
|
+
|
|
57
|
+
// Set the dashboard questions
|
|
58
|
+
setQuestions(dashboardData.questions)
|
|
59
|
+
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function getQueryParams(moduleName: string, dashboardName?: string) {
|
|
64
|
+
const filters: any = {
|
|
65
|
+
module: {
|
|
66
|
+
name: {
|
|
67
|
+
$eq: moduleName
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
if (dashboardName !== undefined) {
|
|
73
|
+
filters.name = { $eqi: dashboardName };
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
const query = {
|
|
77
|
+
filters,
|
|
78
|
+
populate: ['dashboardVariables', 'questions']
|
|
79
|
+
};
|
|
80
|
+
const urlQuery = qs.stringify(query, {
|
|
81
|
+
encodeValuesOnly: true,
|
|
82
|
+
});
|
|
83
|
+
return urlQuery;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// Render the dashboard body only if:
|
|
87
|
+
// 1. There are dashboard questions
|
|
88
|
+
// AND
|
|
89
|
+
// (
|
|
90
|
+
// 1. There are dashboard variables and all dashboard variable filter rules have been applied i.e (all dashboard variables have been selected)
|
|
91
|
+
//. OR
|
|
92
|
+
// 2. There are no dashboard variables
|
|
93
|
+
// )
|
|
94
|
+
//
|
|
95
|
+
function isRenderDashboardBody(questions: any[], dashboardVariables: DashboardVariableRecord[], filters: SqlExpression[]) {
|
|
96
|
+
if (questions.length === 0) {
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
if (dashboardVariables.length === 0) {
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
// Check if all dashboard variables have corresponding filters applied
|
|
105
|
+
const allVariablesFiltered = dashboardVariables.every(variable =>
|
|
106
|
+
filters.some(filter => filter.variableName === variable.variableName)
|
|
107
|
+
);
|
|
108
|
+
|
|
109
|
+
return allVariablesFiltered;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
type SolidDashboardViewProps = {
|
|
113
|
+
moduleName: string;
|
|
114
|
+
dashboardName?: string;
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
const SolidDashboard = (params: SolidDashboardViewProps) => {
|
|
118
|
+
const { data, isLoading, error } = useGetDashboardQuery(getQueryParams(params.moduleName, params.dashboardName)) // FIXME : error handling should be done properly
|
|
119
|
+
// Define a state called layoutOption and pass it after destructing the widgetOptions and dashboardOptions from layoutOption
|
|
120
|
+
// TODO [HP]: Shouldn't the type of this state variable be something different? Why are we muddling this with layout but calling it body props?
|
|
121
|
+
// TODO [HP]: Body props should be clearly made up of Gridstack layout options, the questions that make up the body & the filter[] which is an array of SqlExpressions
|
|
122
|
+
// TODO [HP]: This is fully CONFUSED
|
|
123
|
+
// const [layoutOption, setLayoutOption] = useState<SolidDashboardBodyProps>({
|
|
124
|
+
// filters: [],
|
|
125
|
+
// questions: [],
|
|
126
|
+
// });
|
|
127
|
+
|
|
128
|
+
// TODO [HP]: replace dashboardVariableFilterRules with filters everywhere...
|
|
129
|
+
// const [dashboardVariableFilterRules, setDashboardVariableFilterRules] = useState<ISolidDashboardVariableFilterRule[]>([]);
|
|
130
|
+
const dispatch = useDispatch();
|
|
131
|
+
|
|
132
|
+
const visibleNavbar = useSelector((state: any) => state.navbarState?.visibleNavbar);
|
|
133
|
+
const [filters, setFilters] = useState<SqlExpression[]>([]);
|
|
134
|
+
const [questions, setQuestions] = useState<any[]>([]);
|
|
135
|
+
const [dashboardVariables, setDashboardVariables] = useState<DashboardVariableRecord[]>([]);
|
|
136
|
+
const [isDashboardFilterVisible, setIsDashboardFilterVisible] = useState(false);
|
|
137
|
+
|
|
138
|
+
const [upsertDashboardLayout] = useUpsertUserDashboardLayoutMutation();
|
|
139
|
+
|
|
140
|
+
const [dashboardLayout, setDashboardLayout] = useState<GridItem[]>([]);
|
|
141
|
+
|
|
142
|
+
const updateUserDashboardLayout = async () => {
|
|
143
|
+
try {
|
|
144
|
+
const response = await upsertDashboardLayout({
|
|
145
|
+
dashboardId: data?.records[0].id,
|
|
146
|
+
layout: JSON.stringify(dashboardLayout),
|
|
147
|
+
}).unwrap();
|
|
148
|
+
if (response.statusCode === 200) {
|
|
149
|
+
dispatch(showToast({ severity: "success", summary: ERROR_MESSAGES.LAYOUT, detail: ERROR_MESSAGES.DASHBOARD_LAYOUT_UPDATE_SUCCESSFULLY }));
|
|
150
|
+
}
|
|
151
|
+
} catch (error) {
|
|
152
|
+
dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.LAYOUT, detail: ERROR_MESSAGES.DASHBOARD_LAYOUT_UPDATE_FAILED }));
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
useEffect(() => {
|
|
157
|
+
// Invoke the dashboard api to fetch the dashboard data
|
|
158
|
+
// console.log('Dashboard Data testing:', isLoading, data, error);
|
|
159
|
+
if (!isLoading && data) {
|
|
160
|
+
// Assuming data contains the layout options
|
|
161
|
+
handleDashboardData(data, setDashboardVariables, setQuestions);
|
|
162
|
+
}
|
|
163
|
+
}, [isLoading, data]);
|
|
164
|
+
|
|
165
|
+
const toggleBothSidebars = () => {
|
|
166
|
+
if (visibleNavbar) {
|
|
167
|
+
dispatch(toggleNavbar()); // close both
|
|
168
|
+
} else {
|
|
169
|
+
dispatch(showNavbar()); // open both
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
return (
|
|
176
|
+
<div className={`h-screen surface-0 flex`}>
|
|
177
|
+
|
|
178
|
+
<div className={`h-full flex-grow-1 ${styles.SolidDashboardPageContentWrapper}`}>
|
|
179
|
+
{isLoading && <SolidDashboardLoading />}
|
|
180
|
+
{error && <SolidDashboardRenderError />}
|
|
181
|
+
{!isLoading && !error && data && data.records.length === 0 && (
|
|
182
|
+
<SolidDashboardNotAvailable />
|
|
183
|
+
)}
|
|
184
|
+
{!isLoading && !error && data && data.records.length > 0 && (
|
|
185
|
+
<>
|
|
186
|
+
<div className="page-header" style={{ borderBottom: '1px solid var(--primary-light-color)' }}>
|
|
187
|
+
<div className='flex align-items-center gap-2'>
|
|
188
|
+
<div className="apps-icon block md:hidden cursor-pointer" onClick={toggleBothSidebars}>
|
|
189
|
+
<SolidIcon name="si-th-large" aria-hidden />
|
|
190
|
+
</div>
|
|
191
|
+
<p className={`view-title solid-text-wrapper flex align-items-center gap-1 ${styles.SolidDashboardTitle}`}>
|
|
192
|
+
{data?.records[0]?.displayName ? data?.records[0]?.displayName : data?.records[0]?.name}
|
|
193
|
+
{data?.records[0]?.description && (
|
|
194
|
+
<SolidTooltip>
|
|
195
|
+
<SolidTooltipTrigger asChild>
|
|
196
|
+
<SolidIcon name="si-info-circle" className="solid-field-tooltip-icon" aria-hidden />
|
|
197
|
+
</SolidTooltipTrigger>
|
|
198
|
+
<SolidTooltipContent side="right">{data?.records[0]?.description}</SolidTooltipContent>
|
|
199
|
+
</SolidTooltip>
|
|
200
|
+
)}
|
|
201
|
+
</p>
|
|
202
|
+
</div>
|
|
203
|
+
{dashboardVariables && dashboardVariables.length > 0 && (
|
|
204
|
+
<>
|
|
205
|
+
<div className='flex gap-2'>
|
|
206
|
+
<SolidButton
|
|
207
|
+
type="button"
|
|
208
|
+
icon={filters.length > 0 ? "si si-filter-fill" : "si si-filter"}
|
|
209
|
+
className="lg:hidden solid-icon-button"
|
|
210
|
+
size='sm'
|
|
211
|
+
variant='secondary'
|
|
212
|
+
onClick={() => setIsDashboardFilterVisible(true)}
|
|
213
|
+
/>
|
|
214
|
+
|
|
215
|
+
<SolidButton
|
|
216
|
+
type="button"
|
|
217
|
+
icon={filters.length > 0 ? "si si-filter-fill" : "si si-filter"}
|
|
218
|
+
label={"Filter"}
|
|
219
|
+
className="hidden lg:inline-flex"
|
|
220
|
+
size='sm'
|
|
221
|
+
variant='secondary'
|
|
222
|
+
onClick={() => setIsDashboardFilterVisible(true)}
|
|
223
|
+
/>
|
|
224
|
+
{filters.length > 0 && (
|
|
225
|
+
<SolidButton
|
|
226
|
+
type="button"
|
|
227
|
+
size="sm"
|
|
228
|
+
icon="si si-filter-slash"
|
|
229
|
+
severity="secondary"
|
|
230
|
+
className="solid-icon-button "
|
|
231
|
+
outlined
|
|
232
|
+
onClick={() => { setFilters([]); setIsDashboardFilterVisible(false); }}
|
|
233
|
+
/>
|
|
234
|
+
)}
|
|
235
|
+
<SolidButton
|
|
236
|
+
type="button"
|
|
237
|
+
size="sm"
|
|
238
|
+
icon="si si-save"
|
|
239
|
+
severity="secondary"
|
|
240
|
+
className="solid-icon-button "
|
|
241
|
+
outlined
|
|
242
|
+
onClick={() => updateUserDashboardLayout()} />
|
|
243
|
+
</div>
|
|
244
|
+
<DashboardFilter
|
|
245
|
+
dashboardVariables={dashboardVariables}
|
|
246
|
+
initialFilters={filters}
|
|
247
|
+
onApply={setFilters}
|
|
248
|
+
visible={isDashboardFilterVisible}
|
|
249
|
+
onHide={() => setIsDashboardFilterVisible(false)}
|
|
250
|
+
/>
|
|
251
|
+
</>
|
|
252
|
+
)}
|
|
253
|
+
</div>
|
|
254
|
+
{!isRenderDashboardBody(questions, dashboardVariables, filters) && <SolidDashboardFilterRequired />}
|
|
255
|
+
{isRenderDashboardBody(questions, dashboardVariables, filters) && <SolidDashboardBody dashboardId={data?.records[0]?.id} questions={questions} filters={filters} dashboardLayout={dashboardLayout} setDashboardLayout={setDashboardLayout} />}
|
|
256
|
+
</>
|
|
257
|
+
)}
|
|
258
|
+
</div>
|
|
259
|
+
</div>
|
|
260
|
+
);
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
export default SolidDashboard;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import 'gridstack/dist/gridstack.min.css';
|
|
2
|
+
import { GridStackOptions, GridStackWidget } from 'gridstack';
|
|
3
|
+
import { SqlExpression } from '../../../types/solid-core';
|
|
4
|
+
import 'react-grid-layout/css/styles.css';
|
|
5
|
+
import 'react-resizable/css/styles.css';
|
|
6
|
+
export interface SolidDashboardBodyProps {
|
|
7
|
+
dashboardOptions?: GridStackOptions;
|
|
8
|
+
widgetOptions?: GridStackWidget[];
|
|
9
|
+
dashboardId: string;
|
|
10
|
+
questions: any[];
|
|
11
|
+
filters: SqlExpression[];
|
|
12
|
+
dashboardLayout: GridItem[];
|
|
13
|
+
setDashboardLayout: (dashboardLayout: GridItem[]) => void;
|
|
14
|
+
}
|
|
15
|
+
export type GridItem = {
|
|
16
|
+
i: string;
|
|
17
|
+
x: number;
|
|
18
|
+
y: number;
|
|
19
|
+
w: number;
|
|
20
|
+
h: number;
|
|
21
|
+
};
|
|
22
|
+
declare const SolidDashboardBody: ({ dashboardId, questions, filters, dashboardLayout, setDashboardLayout }: SolidDashboardBodyProps) => import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
export default SolidDashboardBody;
|
|
24
|
+
//# sourceMappingURL=SolidDashboardBody.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SolidDashboardBody.d.ts","sourceRoot":"","sources":["../../../../src/components/core/dashboard/SolidDashboardBody.tsx"],"names":[],"mappings":"AACA,OAAO,kCAAkC,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG9D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAI1D,OAAO,kCAAkC,CAAC;AAC1C,OAAO,gCAAgC,CAAC;AAMxC,MAAM,WAAW,uBAAuB;IACtC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,aAAa,CAAC,EAAE,eAAe,EAAE,CAAC;IAElC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,GAAG,EAAE,CAAC;IACjB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,eAAe,EAAE,QAAQ,EAAE,CAAC;IAC5B,kBAAkB,EAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC;CAC3D;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAqBF,QAAA,MAAM,kBAAkB,6EAAmF,uBAAuB,4CA+GjI,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,162 @@
|
|
|
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
13
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
14
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
15
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
16
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
17
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
18
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
22
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
23
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
24
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
25
|
+
function step(op) {
|
|
26
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
27
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
28
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
29
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
30
|
+
switch (op[0]) {
|
|
31
|
+
case 0: case 1: t = op; break;
|
|
32
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
33
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
34
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
35
|
+
default:
|
|
36
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
37
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
38
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
39
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
40
|
+
if (t[2]) _.ops.pop();
|
|
41
|
+
_.trys.pop(); continue;
|
|
42
|
+
}
|
|
43
|
+
op = body.call(thisArg, _);
|
|
44
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
45
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
49
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
50
|
+
if (ar || !(i in from)) {
|
|
51
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
52
|
+
ar[i] = from[i];
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
56
|
+
};
|
|
57
|
+
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
58
|
+
import 'gridstack/dist/gridstack.min.css';
|
|
59
|
+
import styles from './SolidDashboard.module.css';
|
|
60
|
+
import { SolidQuestionRenderer } from './SolidQuestionRenderer';
|
|
61
|
+
import ReactGridLayout, { useContainerWidth } from "react-grid-layout";
|
|
62
|
+
import { useEffect, useRef } from 'react';
|
|
63
|
+
import PrimeDataTableWrapper from './PrimeDataTableWrapper';
|
|
64
|
+
import 'react-grid-layout/css/styles.css';
|
|
65
|
+
import 'react-resizable/css/styles.css';
|
|
66
|
+
import { useLazyGetUserDashboardLayoutByDashboardIdQuery } from '../../../redux/api/dashboardLayoutApi';
|
|
67
|
+
import { ERROR_MESSAGES } from '../../../constants/error-messages';
|
|
68
|
+
import { useDispatch } from 'react-redux';
|
|
69
|
+
import { showToast } from '../../../redux/features/toastSlice';
|
|
70
|
+
var generateDefaultLayout = function (questions) {
|
|
71
|
+
return questions.map(function (q, index) {
|
|
72
|
+
var col = index % 3;
|
|
73
|
+
var row = Math.floor(index / 3);
|
|
74
|
+
return {
|
|
75
|
+
i: String(q.name),
|
|
76
|
+
x: col * 4,
|
|
77
|
+
y: row * 4,
|
|
78
|
+
w: 4,
|
|
79
|
+
h: 4,
|
|
80
|
+
};
|
|
81
|
+
});
|
|
82
|
+
};
|
|
83
|
+
var SolidDashboardBody = function (_a) {
|
|
84
|
+
var dashboardId = _a.dashboardId, questions = _a.questions, _b = _a.filters, filters = _b === void 0 ? [] : _b, dashboardLayout = _a.dashboardLayout, setDashboardLayout = _a.setDashboardLayout;
|
|
85
|
+
var dispatch = useDispatch();
|
|
86
|
+
var sortedQuestions = __spreadArray([], questions, true).map(function (q, index) { return (__assign(__assign({}, q), { defaultIndex: index + 1 })); })
|
|
87
|
+
.sort(function (a, b) { var _a, _b; return ((_a = a.sequenceNumber) !== null && _a !== void 0 ? _a : a.defaultIndex) - ((_b = b.sequenceNumber) !== null && _b !== void 0 ? _b : b.defaultIndex); });
|
|
88
|
+
var _c = useContainerWidth(), width = _c.width, containerRef = _c.containerRef, mounted = _c.mounted;
|
|
89
|
+
var isLayoutReady = useRef(false);
|
|
90
|
+
var _d = useLazyGetUserDashboardLayoutByDashboardIdQuery(), fetchUserLayout = _d[0], _e = _d[1], userLayoutData = _e.data, isSuccess = _e.isSuccess, isLoading = _e.isLoading;
|
|
91
|
+
useEffect(function () {
|
|
92
|
+
if (!dashboardId || questions.length === 0)
|
|
93
|
+
return;
|
|
94
|
+
var loadLayout = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
95
|
+
var response, raw, savedLayout_1, layout, error_1;
|
|
96
|
+
var _a;
|
|
97
|
+
return __generator(this, function (_b) {
|
|
98
|
+
switch (_b.label) {
|
|
99
|
+
case 0:
|
|
100
|
+
_b.trys.push([0, 2, , 3]);
|
|
101
|
+
return [4 /*yield*/, fetchUserLayout(dashboardId).unwrap()];
|
|
102
|
+
case 1:
|
|
103
|
+
response = _b.sent();
|
|
104
|
+
raw = (_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.layout;
|
|
105
|
+
savedLayout_1 = typeof raw === 'string' ? JSON.parse(raw) : raw;
|
|
106
|
+
layout = savedLayout_1
|
|
107
|
+
? sortedQuestions.map(function (q) {
|
|
108
|
+
var saved = savedLayout_1.find(function (s) { return s.i === String(q.name); });
|
|
109
|
+
return saved !== null && saved !== void 0 ? saved : generateDefaultLayout([q])[0];
|
|
110
|
+
})
|
|
111
|
+
: generateDefaultLayout(sortedQuestions);
|
|
112
|
+
setDashboardLayout(layout);
|
|
113
|
+
setTimeout(function () { isLayoutReady.current = true; }, 100);
|
|
114
|
+
return [3 /*break*/, 3];
|
|
115
|
+
case 2:
|
|
116
|
+
error_1 = _b.sent();
|
|
117
|
+
if (error_1.status === 403) {
|
|
118
|
+
dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.FORBIDDEN_ERROR, detail: ERROR_MESSAGES.FORBIDDEN_ERROR, sticky: true }));
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.SOMETHING_WRONG, detail: ERROR_MESSAGES.SOMETHING_WRONG }));
|
|
122
|
+
}
|
|
123
|
+
return [3 /*break*/, 3];
|
|
124
|
+
case 3: return [2 /*return*/];
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
}); };
|
|
128
|
+
loadLayout();
|
|
129
|
+
}, [questions, dashboardId]);
|
|
130
|
+
// useEffect(() => {
|
|
131
|
+
// if (questions.length === 0) return;
|
|
132
|
+
// const saved = getSavedLayout();
|
|
133
|
+
// setDashboardLayout(generateLayout(sortedQuestions, saved));
|
|
134
|
+
// // Delay the ready flag so onLayoutChange doesn't fire before we're set
|
|
135
|
+
// setTimeout(() => { isLayoutReady.current = true; }, 100);
|
|
136
|
+
// }, [questions]);
|
|
137
|
+
var handleLayoutChange = function (newLayout) {
|
|
138
|
+
if (!isLayoutReady.current)
|
|
139
|
+
return;
|
|
140
|
+
// v2 passes LayoutItem[] at runtime despite the type saying Layout
|
|
141
|
+
var layoutArray = newLayout;
|
|
142
|
+
var updated = layoutArray.map(function (item) { return ({
|
|
143
|
+
i: item.i,
|
|
144
|
+
x: item.x,
|
|
145
|
+
y: item.y,
|
|
146
|
+
w: item.w,
|
|
147
|
+
h: item.h,
|
|
148
|
+
}); });
|
|
149
|
+
setDashboardLayout(updated);
|
|
150
|
+
// saving is handled by the parent/caller
|
|
151
|
+
};
|
|
152
|
+
return (_jsx(_Fragment, { children: _jsx("div", { ref: containerRef, className: "p-4 ".concat(styles.SolidDashboardContentWrapper), style: { width: '100%', overflowY: 'auto', minHeight: 0 }, children: mounted && dashboardLayout.length > 0 && (_jsx(ReactGridLayout, { width: width, layout: dashboardLayout, gridConfig: {
|
|
153
|
+
cols: 12,
|
|
154
|
+
rowHeight: 120,
|
|
155
|
+
}, dragConfig: {
|
|
156
|
+
handle: ".drag-handle",
|
|
157
|
+
}, resizeConfig: {
|
|
158
|
+
enabled: true,
|
|
159
|
+
}, onLayoutChange: handleLayoutChange, children: sortedQuestions.map(function (question) { return (_jsx("div", { className: "drag-handle cursor-move rounded shadow p-2 overflow-hidden", style: { backgroundColor: 'transparent' }, children: question.visualisedAs === "prime-datatable" ? (_jsx(PrimeDataTableWrapper, { question: question, filters: filters })) : (_jsx(SolidQuestionRenderer, { question: question, filters: filters, isPreview: false })) }, String(question.name))); }) })) }) }));
|
|
160
|
+
};
|
|
161
|
+
export default SolidDashboardBody;
|
|
162
|
+
//# sourceMappingURL=SolidDashboardBody.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SolidDashboardBody.js","sourceRoot":"","sources":["../../../../src/components/core/dashboard/SolidDashboardBody.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,kCAAkC,CAAC;AAE1C,OAAO,MAAM,MAAM,6BAA6B,CAAA;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,eAAe,EAAE,EAAE,iBAAiB,EAAsB,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,SAAS,EAAE,MAAM,EAAY,MAAM,OAAO,CAAC;AACpD,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,kCAAkC,CAAC;AAC1C,OAAO,gCAAgC,CAAC;AACxC,OAAO,EAAE,+CAA+C,EAAE,MAAM,uCAAuC,CAAC;AACxG,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAyB/D,IAAM,qBAAqB,GAAG,UAAC,SAAgB;IAC7C,OAAO,SAAS,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,KAAK;QAC5B,IAAM,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC;QACtB,IAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAClC,OAAO;YACL,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;YACjB,CAAC,EAAE,GAAG,GAAG,CAAC;YACV,CAAC,EAAE,GAAG,GAAG,CAAC;YACV,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;SACL,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAGF,IAAM,kBAAkB,GAAG,UAAC,EAAsG;QAApG,WAAW,iBAAA,EAAE,SAAS,eAAA,EAAE,eAAY,EAAZ,OAAO,mBAAG,EAAE,KAAA,EAAE,eAAe,qBAAA,EAAE,kBAAkB,wBAAA;IACrG,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/B,IAAM,eAAe,GAAG,kBAAI,SAAS,QAClC,GAAG,CAAC,UAAC,CAAC,EAAE,KAAK,IAAK,OAAA,uBAAM,CAAC,KAAE,YAAY,EAAE,KAAK,GAAG,CAAC,IAAG,EAAnC,CAAmC,CAAC;SACtD,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,gBAAK,OAAA,CAAC,MAAA,CAAC,CAAC,cAAc,mCAAI,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,MAAA,CAAC,CAAC,cAAc,mCAAI,CAAC,CAAC,YAAY,CAAC,CAAA,EAAA,CAAC,CAAC;IAEzF,IAAA,KAAmC,iBAAiB,EAAE,EAApD,KAAK,WAAA,EAAE,YAAY,kBAAA,EAAE,OAAO,aAAwB,CAAC;IAC7D,IAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAE9B,IAAA,KACJ,+CAA+C,EAAE,EAD5C,eAAe,QAAA,EAAE,UAA8C,EAAtC,cAAc,UAAA,EAAE,SAAS,eAAA,EAAE,SAAS,eACjB,CAAC;IAEpD,SAAS,CAAC;QACR,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACnD,IAAM,UAAU,GAAG;;;;;;;wBAEE,qBAAM,eAAe,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,EAAA;;wBAAtD,QAAQ,GAAG,SAA2C;wBACtD,GAAG,GAAG,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,MAAM,CAAC;wBAC7B,gBAAc,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;wBAE9D,MAAM,GAAG,aAAW;4BACxB,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,UAAC,CAAC;gCACtB,IAAM,KAAK,GAAI,aAA0B,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAtB,CAAsB,CAAC,CAAC;gCAC5E,OAAO,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BAChD,CAAC,CAAC;4BACF,CAAC,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC;wBAE3C,kBAAkB,CAAC,MAAM,CAAC,CAAC;wBAC3B,UAAU,CAAC,cAAQ,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;;;;wBAEzD,IAAI,OAAK,CAAC,MAAM,KAAK,GAAG,EAAE;4BACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,eAAe,EAAE,MAAM,EAAE,cAAc,CAAC,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;yBAC3I;6BAAM;4BACL,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,eAAe,EAAE,MAAM,EAAE,cAAc,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;yBAC7H;;;;;aAEJ,CAAC;QAEF,UAAU,EAAE,CAAC;IACf,CAAC,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IAG7B,oBAAoB;IACpB,wCAAwC;IACxC,oCAAoC;IACpC,gEAAgE;IAChE,4EAA4E;IAC5E,8DAA8D;IAC9D,mBAAmB;IAGnB,IAAM,kBAAkB,GAAG,UAAC,SAAiB;QAC3C,IAAI,CAAC,aAAa,CAAC,OAAO;YAAE,OAAO;QAEnC,mEAAmE;QACnE,IAAM,WAAW,GAAG,SAAoC,CAAC;QAEzD,IAAM,OAAO,GAAe,WAAW,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,CAAC;YACnD,CAAC,EAAE,IAAI,CAAC,CAAC;YACT,CAAC,EAAE,IAAI,CAAC,CAAC;YACT,CAAC,EAAE,IAAI,CAAC,CAAC;YACT,CAAC,EAAE,IAAI,CAAC,CAAC;YACT,CAAC,EAAE,IAAI,CAAC,CAAC;SACV,CAAC,EANkD,CAMlD,CAAC,CAAC;QAEJ,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC5B,yCAAyC;IAC3C,CAAC,CAAC;IAEF,OAAO,CACL,4BACE,cACE,GAAG,EAAE,YAA+C,EACpD,SAAS,EAAE,cAAO,MAAM,CAAC,4BAA4B,CAAE,EACvD,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,YAGxD,OAAO,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,CACxC,KAAC,eAAe,IACd,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE;oBACV,IAAI,EAAE,EAAE;oBACR,SAAS,EAAE,GAAG;iBACf,EACD,UAAU,EAAE;oBACV,MAAM,EAAE,cAAc;iBACvB,EACD,YAAY,EAAE;oBACZ,OAAO,EAAE,IAAI;iBACd,EACD,cAAc,EAAE,kBAAkB,YAEjC,eAAe,CAAC,GAAG,CAAC,UAAC,QAAa,IAAK,OAAA,CACtC,cAAiC,SAAS,EAAC,4DAA4D,EAAC,KAAK,EAAE,EAAE,eAAe,EAAE,aAAa,EAAE,YAI9I,QAAQ,CAAC,YAAY,KAAK,iBAAiB,CAAC,CAAC,CAAC,CAC7C,KAAC,qBAAqB,IAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAI,CAChE,CAAC,CAAC,CAAC,CACF,KAAC,qBAAqB,IAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,GAAI,CAClF,IARO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CASzB,CACP,EAXuC,CAWvC,CAAC,GACc,CACnB,GACG,GACL,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,kBAAkB,CAAC","sourcesContent":["\nimport 'gridstack/dist/gridstack.min.css';\nimport { GridStackOptions, GridStackWidget } from 'gridstack';\nimport styles from './SolidDashboard.module.css'\nimport { SolidQuestionRenderer } from './SolidQuestionRenderer';\nimport { SqlExpression } from '../../../types/solid-core';\nimport ReactGridLayout, { useContainerWidth, Layout, LayoutItem } from \"react-grid-layout\";\nimport { useEffect, useRef, useState } from 'react';\nimport PrimeDataTableWrapper from './PrimeDataTableWrapper';\nimport 'react-grid-layout/css/styles.css';\nimport 'react-resizable/css/styles.css';\nimport { useLazyGetUserDashboardLayoutByDashboardIdQuery } from '../../../redux/api/dashboardLayoutApi';\nimport { ERROR_MESSAGES } from '../../../constants/error-messages';\nimport { useDispatch } from 'react-redux';\nimport { showToast } from '../../../redux/features/toastSlice';\n\nexport interface SolidDashboardBodyProps {\n dashboardOptions?: GridStackOptions;\n widgetOptions?: GridStackWidget[];\n // Replace `any` with a proper `Question` type when available\n dashboardId: string;\n questions: any[];\n filters: SqlExpression[];\n dashboardLayout: GridItem[];\n setDashboardLayout: (dashboardLayout: GridItem[]) => void;\n}\n\nexport type GridItem = {\n i: string;\n x: number;\n y: number;\n w: number;\n h: number;\n};\n\n// Layout is Layout[] at runtime in v2 — the type definition is misleading\ntype LayoutArray = LayoutItem[];\n\n\nconst generateDefaultLayout = (questions: any[]): GridItem[] => {\n return questions.map((q, index) => {\n const col = index % 3;\n const row = Math.floor(index / 3);\n return {\n i: String(q.name),\n x: col * 4, // 0, 4, 8 in a 12-col grid\n y: row * 4,\n w: 4,\n h: 4,\n };\n });\n};\n\n\nconst SolidDashboardBody = ({ dashboardId, questions, filters = [], dashboardLayout, setDashboardLayout }: SolidDashboardBodyProps) => {\n const dispatch = useDispatch();\n\n const sortedQuestions = [...questions]\n .map((q, index) => ({ ...q, defaultIndex: index + 1 }))\n .sort((a, b) => (a.sequenceNumber ?? a.defaultIndex) - (b.sequenceNumber ?? b.defaultIndex));\n\n const { width, containerRef, mounted } = useContainerWidth();\n const isLayoutReady = useRef(false);\n\n const [fetchUserLayout, { data: userLayoutData, isSuccess, isLoading }] =\n useLazyGetUserDashboardLayoutByDashboardIdQuery();\n\n useEffect(() => {\n if (!dashboardId || questions.length === 0) return;\n const loadLayout = async () => {\n try {\n const response = await fetchUserLayout(dashboardId).unwrap();\n const raw = response?.data?.layout;\n const savedLayout = typeof raw === 'string' ? JSON.parse(raw) : raw;\n\n const layout = savedLayout\n ? sortedQuestions.map((q) => {\n const saved = (savedLayout as GridItem[]).find(s => s.i === String(q.name));\n return saved ?? generateDefaultLayout([q])[0];\n })\n : generateDefaultLayout(sortedQuestions);\n\n setDashboardLayout(layout);\n setTimeout(() => { isLayoutReady.current = true; }, 100);\n } catch (error: any) {\n if (error.status === 403) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.FORBIDDEN_ERROR, detail: ERROR_MESSAGES.FORBIDDEN_ERROR, sticky: true }));\n } else {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.SOMETHING_WRONG, detail: ERROR_MESSAGES.SOMETHING_WRONG }));\n }\n }\n };\n\n loadLayout();\n }, [questions, dashboardId]);\n\n\n // useEffect(() => {\n // if (questions.length === 0) return;\n // const saved = getSavedLayout();\n // setDashboardLayout(generateLayout(sortedQuestions, saved));\n // // Delay the ready flag so onLayoutChange doesn't fire before we're set\n // setTimeout(() => { isLayoutReady.current = true; }, 100);\n // }, [questions]);\n\n\n const handleLayoutChange = (newLayout: Layout) => {\n if (!isLayoutReady.current) return;\n\n // v2 passes LayoutItem[] at runtime despite the type saying Layout\n const layoutArray = newLayout as unknown as LayoutItem[];\n\n const updated: GridItem[] = layoutArray.map(item => ({\n i: item.i,\n x: item.x,\n y: item.y,\n w: item.w,\n h: item.h,\n }));\n\n setDashboardLayout(updated);\n // saving is handled by the parent/caller\n };\n\n return (\n <>\n <div\n ref={containerRef as React.RefObject<HTMLDivElement>}\n className={`p-4 ${styles.SolidDashboardContentWrapper}`}\n style={{ width: '100%', overflowY: 'auto', minHeight: 0 }}\n\n >\n {mounted && dashboardLayout.length > 0 && (\n <ReactGridLayout\n width={width}\n layout={dashboardLayout}\n gridConfig={{\n cols: 12,\n rowHeight: 120,\n }}\n dragConfig={{\n handle: \".drag-handle\",\n }}\n resizeConfig={{\n enabled: true,\n }}\n onLayoutChange={handleLayoutChange}\n >\n {sortedQuestions.map((question: any) => (\n <div key={String(question.name)} className=\"drag-handle cursor-move rounded shadow p-2 overflow-hidden\" style={{ backgroundColor: 'transparent' }}>\n {/* <div className=\" mb-2 font-bold\">\n {question.name}\n </div> */}\n {question.visualisedAs === \"prime-datatable\" ? (\n <PrimeDataTableWrapper question={question} filters={filters} />\n ) : (\n <SolidQuestionRenderer question={question} filters={filters} isPreview={false} />\n )}\n </div>\n ))}\n </ReactGridLayout>\n )}\n </div>\n </>\n );\n};\n\nexport default SolidDashboardBody;\n"]}
|