robobyte-front-builder 1.0.19 → 1.0.21
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/README.md +211 -0
- package/next.config.js +19 -48
- package/package.json +39 -85
- package/src/context/BuilderContext.jsx +134 -6
- package/src/context/SystemContext.js +2 -2
- package/src/hooks/useGlobalStore.js +36 -0
- package/src/hooks/useTimerEngine.js +54 -0
- package/src/lib/index.js +11 -3
- package/src/lib/layouts/BlankLayout.jsx +13 -0
- package/src/lib/providers/RoboByteFrontBuilderProvider.jsx +61 -7
- package/src/lib/themes/builderTheme.js +41 -0
- package/src/pages/_app.js +32 -134
- package/src/pages/api/ai.js +87 -0
- package/src/pages/builders/report/index.js +1 -0
- package/src/pages/builders/report/list/index.js +1 -0
- package/src/pages/builders/report/viewer/index.js +1 -0
- package/src/pages/index.js +88 -37
- package/src/pages/printBuilder/index.jsx +263 -0
- package/src/pages/printBuilder/layouts/index.jsx +298 -0
- package/src/pages/reportModule/reportBuilder/index.js +8 -6
- package/src/pages/reportModule/reportBuilder/reportViewer/index.js +33 -22
- package/src/pages/reportModule/reportBuilder/reports/index.js +3 -5
- package/src/pages/reportModule/reportBuilder/reportsPermissions/index.js +2 -3
- package/src/pages/viewBuilder/index.jsx +117 -32
- package/src/pages/viewBuilder/views/index.js +3 -3
- package/src/pages/viewer/[id]/index.js +2 -1
- package/src/services/DeleteService.js +31 -60
- package/src/services/Endpoints/PrintLayoutEndpoints.js +42 -0
- package/src/services/Endpoints.js +2 -0
- package/src/services/GetService.js +33 -54
- package/src/services/PatchService.js +38 -65
- package/src/services/PostService.js +37 -63
- package/src/services/UpdateService.js +39 -65
- package/src/services/builderHelper/actionExecutor.js +141 -25
- package/src/services/builderHelper/builderHelper.js +92 -0
- package/src/services/builderHelper/colorSchema.js +95 -0
- package/src/services/builderHelper/iconResolver.js +50 -0
- package/src/services/builderHelper/jsExecutor.js +212 -46
- package/src/services/builderHelper/nodeFactory.js +32 -15
- package/src/services/builderHelper/numberFormat.js +123 -0
- package/src/services/builderHelper/resolveProps.js +73 -4
- package/src/services/builderHelper/thresholdEngine.js +77 -0
- package/src/services/builderHelper/tree.js +31 -0
- package/src/services/components/agGridAutoComplete.js +5 -9
- package/src/services/config.js +9 -1
- package/src/services/globalStore.js +80 -0
- package/src/services/helper/multiSelectEditor.js +5 -9
- package/src/services/helper/multiSelectEditorByBuilder.js +5 -9
- package/src/services/reportData/fetchReportData.js +69 -28
- package/src/services/routerRef.js +35 -0
- package/src/views/ConfirmDialog.js +2 -2
- package/src/views/builder/JSEditor.js +105 -107
- package/src/views/builder/inspector/Inspector.jsx +6 -9
- package/src/views/builder/inspector/Tabs/ComponentActionsTab.jsx +7 -13
- package/src/views/builder/inspector/Tabs/MainTab.jsx +143 -25
- package/src/views/builder/inspector/Tabs/RulesTab.jsx +9 -24
- package/src/views/builder/inspector/Tabs/StyleTab.jsx +9 -24
- package/src/views/builder/inspector/definitions/autocomplete/main.js +4 -6
- package/src/views/builder/inspector/definitions/banner/actions.js +7 -0
- package/src/views/builder/inspector/definitions/banner/main.js +22 -0
- package/src/views/builder/inspector/definitions/banner/rules.js +1 -0
- package/src/views/builder/inspector/definitions/banner/style.js +1 -0
- package/src/views/builder/inspector/definitions/breadcrumb/main.js +43 -6
- package/src/views/builder/inspector/definitions/button/main.js +11 -12
- package/src/views/builder/inspector/definitions/button/style.js +18 -30
- package/src/views/builder/inspector/definitions/checkbox/actions.js +3 -1
- package/src/views/builder/inspector/definitions/checkbox/main.js +4 -6
- package/src/views/builder/inspector/definitions/common/main.js +13 -2
- package/src/views/builder/inspector/definitions/dataGrid/main.js +23 -0
- package/src/views/builder/inspector/definitions/dataTableViewer/main.js +46 -0
- package/src/views/builder/inspector/definitions/datepicker/actions.js +3 -1
- package/src/views/builder/inspector/definitions/datepicker/main.js +6 -14
- package/src/views/builder/inspector/definitions/dialog/main.js +36 -0
- package/src/views/builder/inspector/definitions/dropdown/main.js +5 -8
- package/src/views/builder/inspector/definitions/excelUpload/actions.js +23 -0
- package/src/views/builder/inspector/definitions/excelUpload/main.js +17 -0
- package/src/views/builder/inspector/definitions/excelUpload/rules.js +1 -0
- package/src/views/builder/inspector/definitions/excelUpload/style.js +45 -0
- package/src/views/builder/inspector/definitions/header/main.js +10 -1
- package/src/views/builder/inspector/definitions/index.js +106 -19
- package/src/views/builder/inspector/definitions/input/actions.js +4 -1
- package/src/views/builder/inspector/definitions/input/main.js +20 -11
- package/src/views/builder/inspector/definitions/kpi/avatarGroup.js +22 -0
- package/src/views/builder/inspector/definitions/kpi/badge.js +17 -0
- package/src/views/builder/inspector/definitions/kpi/bulletChart.js +47 -0
- package/src/views/builder/inspector/definitions/kpi/chart.js +55 -0
- package/src/views/builder/inspector/definitions/kpi/colorScale.js +60 -0
- package/src/views/builder/inspector/definitions/kpi/comparisonBars.js +41 -0
- package/src/views/builder/inspector/definitions/kpi/countdown.js +46 -0
- package/src/views/builder/inspector/definitions/kpi/donut.js +51 -0
- package/src/views/builder/inspector/definitions/kpi/funnel.js +25 -0
- package/src/views/builder/inspector/definitions/kpi/gauge.js +39 -0
- package/src/views/builder/inspector/definitions/kpi/heatmapGrid.js +96 -0
- package/src/views/builder/inspector/definitions/kpi/iconBox.js +20 -0
- package/src/views/builder/inspector/definitions/kpi/metric.js +45 -0
- package/src/views/builder/inspector/definitions/kpi/rating.js +27 -0
- package/src/views/builder/inspector/definitions/kpi/statusDot.js +18 -0
- package/src/views/builder/inspector/definitions/kpi/stepStage.js +65 -0
- package/src/views/builder/inspector/definitions/kpi/tagList.js +32 -0
- package/src/views/builder/inspector/definitions/kpi/timeline.js +80 -0
- package/src/views/builder/inspector/definitions/kpi/trend.js +20 -0
- package/src/views/builder/inspector/definitions/label/main.js +10 -1
- package/src/views/builder/inspector/definitions/layout/main.js +27 -3
- package/src/views/builder/inspector/definitions/number/main.js +6 -14
- package/src/views/builder/inspector/definitions/pageNumber/main.js +21 -0
- package/src/views/builder/inspector/definitions/popover/main.js +71 -0
- package/src/views/builder/inspector/definitions/radio/main.js +5 -8
- package/src/views/builder/inspector/definitions/repeater/main.js +31 -0
- package/src/views/builder/inspector/definitions/reportViewer/main.js +15 -1
- package/src/views/builder/inspector/definitions/richtext/main.js +5 -8
- package/src/views/builder/inspector/definitions/signature/main.js +4 -1
- package/src/views/builder/inspector/definitions/tag/main.js +5 -8
- package/src/views/builder/inspector/definitions/textarea/actions.js +4 -1
- package/src/views/builder/inspector/definitions/textarea/main.js +5 -7
- package/src/views/builder/inspector/definitions/time/main.js +5 -8
- package/src/views/builder/inspector/definitions/toggle/main.js +5 -19
- package/src/views/builder/inspector/definitions/treeView/main.js +61 -0
- package/src/views/builder/inspector/definitions/viewRenderer/main.js +53 -0
- package/src/views/builder/inspector/definitions/wizard/main.js +68 -0
- package/src/views/builder/inspector/definitions/wizard-step/main.js +25 -0
- package/src/views/builder/inspector/fields/ActionsConfigEditor.jsx +426 -0
- package/src/views/builder/inspector/fields/ColorSchemaField.jsx +140 -0
- package/src/views/builder/inspector/fields/ColumnFunctionEditor.jsx +238 -0
- package/src/views/builder/inspector/fields/ColumnMappingEditor.jsx +105 -0
- package/src/views/builder/inspector/fields/ColumnsConfigEditor.jsx +506 -0
- package/src/views/builder/inspector/fields/DonutRingsEditorField.jsx +337 -0
- package/src/views/builder/inspector/fields/ExtraColsEditor.jsx +618 -0
- package/src/views/builder/inspector/fields/FunctionHelpPopover.jsx +295 -0
- package/src/views/builder/inspector/fields/IconEditor.jsx +64 -0
- package/src/views/builder/inspector/fields/KpiActionField.jsx +223 -0
- package/src/views/builder/inspector/fields/MarkersEditorField.jsx +173 -0
- package/src/views/builder/inspector/fields/SelectEditor.jsx +9 -5
- package/src/views/builder/inspector/fields/SeriesEditorField.jsx +363 -0
- package/src/views/builder/inspector/fields/TableColumnsEditor.jsx +104 -0
- package/src/views/builder/inspector/fields/ThresholdsEditor.jsx +247 -0
- package/src/views/builder/inspector/fields/ValueFunctionsRefPanel.jsx +217 -0
- package/src/views/builder/inspector/fields/columnEditorShared.jsx +217 -0
- package/src/views/builder/sidebar/Sidebar.jsx +4 -2
- package/src/views/builder/sidebar/SidebarTabs.jsx +28 -17
- package/src/views/builder/sidebar/tabs/ActionsTab.jsx +7 -3
- package/src/views/builder/sidebar/tabs/AiTab/AiPreviewDialog.jsx +193 -0
- package/src/views/builder/sidebar/tabs/AiTab/aiProvider.js +49 -0
- package/src/views/builder/sidebar/tabs/AiTab/index.jsx +409 -0
- package/src/views/builder/sidebar/tabs/AiTab/schemaTransformer.js +102 -0
- package/src/views/builder/sidebar/tabs/AiTab/schemaValidator.js +64 -0
- package/src/views/builder/sidebar/tabs/AiTab/systemPrompt.js +1151 -0
- package/src/views/builder/sidebar/tabs/Components/ComponentsTab.jsx +31 -31
- package/src/views/builder/sidebar/tabs/Components/componentCatalog.js +43 -21
- package/src/views/builder/sidebar/tabs/Components/printComponentCatalog.js +81 -0
- package/src/views/builder/sidebar/tabs/TimersTab.jsx +338 -0
- package/src/views/builder/sidebar/tabs/TreeTab.jsx +13 -4
- package/src/views/builder/sidebar/tabs/ViewTab.jsx +1 -1
- package/src/views/builder/viewer/AdornedLabel.jsx +82 -0
- package/src/views/builder/viewer/ComponentRenderer.jsx +98 -24
- package/src/views/builder/viewer/DialogsZone.jsx +259 -0
- package/src/views/builder/viewer/FieldLabel.jsx +106 -0
- package/src/views/builder/viewer/PrintDialog.jsx +481 -0
- package/src/views/builder/viewer/ProductionViewer.jsx +80 -5
- package/src/views/builder/viewer/Viewer.jsx +106 -8
- package/src/views/builder/viewer/ViewerComponentWrapper.jsx +61 -4
- package/src/views/builder/viewer/ViewerToolbar.jsx +273 -59
- package/src/views/builder/viewer/renderers/AutoCompleteRenderer.jsx +26 -22
- package/src/views/builder/viewer/renderers/AvatarGroupRenderer.jsx +112 -0
- package/src/views/builder/viewer/renderers/BadgeRenderer.jsx +79 -0
- package/src/views/builder/viewer/renderers/BannerRenderer.jsx +62 -0
- package/src/views/builder/viewer/renderers/BreadcrumbRenderer.jsx +203 -15
- package/src/views/builder/viewer/renderers/BulletChartRenderer.jsx +147 -0
- package/src/views/builder/viewer/renderers/ButtonRenderer.jsx +98 -39
- package/src/views/builder/viewer/renderers/CardRenderer.jsx +1 -1
- package/src/views/builder/viewer/renderers/ChartRenderer.jsx +388 -0
- package/src/views/builder/viewer/renderers/CheckboxRenderer.jsx +17 -9
- package/src/views/builder/viewer/renderers/ColorScaleRenderer.jsx +300 -0
- package/src/views/builder/viewer/renderers/ComparisonBarsRenderer.jsx +133 -0
- package/src/views/builder/viewer/renderers/ContainerRenderer.jsx +3 -1
- package/src/views/builder/viewer/renderers/CountdownRenderer.jsx +249 -0
- package/src/views/builder/viewer/renderers/DataGridRenderer.jsx +380 -0
- package/src/views/builder/viewer/renderers/DataTableViewerRenderer.jsx +240 -0
- package/src/views/builder/viewer/renderers/DatePickerRenderer.jsx +25 -24
- package/src/views/builder/viewer/renderers/DialogRenderer.jsx +327 -0
- package/src/views/builder/viewer/renderers/DividerRenderer.jsx +1 -1
- package/src/views/builder/viewer/renderers/DonutRenderer.jsx +294 -0
- package/src/views/builder/viewer/renderers/DropdownRenderer.jsx +36 -44
- package/src/views/builder/viewer/renderers/ExcelUploadRenderer.jsx +639 -0
- package/src/views/builder/viewer/renderers/FunnelRenderer.jsx +93 -0
- package/src/views/builder/viewer/renderers/GaugeRenderer.jsx +159 -0
- package/src/views/builder/viewer/renderers/HeaderRenderer.jsx +31 -9
- package/src/views/builder/viewer/renderers/HeatmapGridRenderer.jsx +432 -0
- package/src/views/builder/viewer/renderers/IconBoxRenderer.jsx +59 -0
- package/src/views/builder/viewer/renderers/ImageRenderer.jsx +1 -1
- package/src/views/builder/viewer/renderers/InputRenderer.jsx +75 -18
- package/src/views/builder/viewer/renderers/LabelRenderer.jsx +35 -9
- package/src/views/builder/viewer/renderers/LayoutCellRenderer.jsx +102 -40
- package/src/views/builder/viewer/renderers/LayoutContextMenu.jsx +8 -8
- package/src/views/builder/viewer/renderers/LayoutRenderer.jsx +48 -6
- package/src/views/builder/viewer/renderers/LinkRenderer.jsx +1 -1
- package/src/views/builder/viewer/renderers/MenuRenderer.jsx +2 -2
- package/src/views/builder/viewer/renderers/MetricRenderer.jsx +80 -0
- package/src/views/builder/viewer/renderers/NumberFormatRenderer.jsx +21 -30
- package/src/views/builder/viewer/renderers/PageNumberRenderer.jsx +76 -0
- package/src/views/builder/viewer/renderers/PopoverRenderer.jsx +350 -0
- package/src/views/builder/viewer/renderers/ProgressCircleRenderer.jsx +1 -1
- package/src/views/builder/viewer/renderers/ProgressLineRenderer.jsx +1 -1
- package/src/views/builder/viewer/renderers/RadioGroupRenderer.jsx +28 -39
- package/src/views/builder/viewer/renderers/RatingRenderer.jsx +80 -0
- package/src/views/builder/viewer/renderers/RepeaterRenderer.jsx +297 -38
- package/src/views/builder/viewer/renderers/ReportViewerRenderer.jsx +219 -5
- package/src/views/builder/viewer/renderers/RichTextRenderer.jsx +60 -66
- package/src/views/builder/viewer/renderers/RowActionsCell.jsx +308 -0
- package/src/views/builder/viewer/renderers/SignatureRenderer.jsx +33 -62
- package/src/views/builder/viewer/renderers/StatusDotRenderer.jsx +75 -0
- package/src/views/builder/viewer/renderers/StepStageRenderer.jsx +348 -0
- package/src/views/builder/viewer/renderers/TagListRenderer.jsx +115 -0
- package/src/views/builder/viewer/renderers/TagPickerRenderer.jsx +31 -45
- package/src/views/builder/viewer/renderers/TextAreaRenderer.jsx +25 -18
- package/src/views/builder/viewer/renderers/TextRenderer.jsx +7 -1
- package/src/views/builder/viewer/renderers/TimePickerRenderer.jsx +25 -24
- package/src/views/builder/viewer/renderers/TimelineRenderer.jsx +525 -0
- package/src/views/builder/viewer/renderers/ToggleRenderer.jsx +21 -27
- package/src/views/builder/viewer/renderers/TreeViewRenderer.jsx +832 -0
- package/src/views/builder/viewer/renderers/TrendRenderer.jsx +66 -0
- package/src/views/builder/viewer/renderers/ViewRendererRenderer.jsx +315 -0
- package/src/views/builder/viewer/renderers/WizardRenderer.jsx +380 -64
- package/src/views/builder/viewer/renderers/WizardStepRenderer.jsx +21 -12
- package/src/views/builder/viewer/renderers/dataGridComponents.jsx +824 -0
- package/src/views/customFilter/CustomFilterDialog.js +1023 -660
- package/src/views/customFilter/FixedFilterDialog.js +649 -0
- package/src/views/customFilter/SearchFilterDialog.js +248 -0
- package/src/views/genericTable/BuilderExpressionParams.js +3 -3
- package/src/views/genericTable/ColumnConfiguratorDialog.js +33 -24
- package/src/views/genericTable/FixedFilterDialog.js +3 -2
- package/src/views/genericTable/FormattingSettingsDialog.js +8 -3
- package/src/views/genericTable/SGrid.js +198 -97
- package/src/views/genericTable/SearchFilterDialog.js +3 -2
- package/src/views/genericTable/cellEditors/autocompleteEditor.js +5 -9
- package/src/views/genericTable/convertStringFunctions.js +274 -138
- package/src/views/genericTable/statusBar/rowCountStatusBar.js +3 -1
- package/src/views/genericTable/updateRefHelpers.js +9 -6
- package/src/views/printBuilder/PrintBuilderViewer.jsx +607 -0
- package/src/views/printBuilder/PrintPreviewCanvas.jsx +157 -0
- package/src/views/rolePermissions/UpdateReportPermissionDialog.js +3 -2
- package/src/@core/components/auth/AclGuard.js +0 -55
- package/src/@core/components/auth/AuthGuard.js +0 -40
- package/src/@core/components/auth/GuestGuard.js +0 -30
- package/src/@core/components/custom-inputs/Horizontal.jsx +0 -143
- package/src/@core/components/custom-inputs/Image.jsx +0 -78
- package/src/@core/components/custom-inputs/Vertical.jsx +0 -113
- package/src/@core/components/customizer/index.jsx +0 -470
- package/src/@core/components/customizer/styles.module.css +0 -169
- package/src/@core/components/mui/Avatar.jsx +0 -41
- package/src/@core/components/mui/Badge.jsx +0 -20
- package/src/@core/components/mui/IconButton.jsx +0 -74
- package/src/@core/components/mui/TabList.jsx +0 -60
- package/src/@core/components/option-menu/index.jsx +0 -137
- package/src/@core/components/scroll-to-top/index.jsx +0 -43
- package/src/@core/components/spinner/index.js +0 -26
- package/src/@core/components/window-wrapper/index.js +0 -27
- package/src/@core/contexts/settingsContext.jsx +0 -98
- package/src/@core/hooks/useBgColor.js +0 -63
- package/src/@core/hooks/useImageVariant.js +0 -27
- package/src/@core/hooks/useLayoutInit.js +0 -37
- package/src/@core/hooks/useObjectCookie.js +0 -18
- package/src/@core/hooks/useSettings.jsx +0 -15
- package/src/@core/layouts/BlankLayout.js +0 -37
- package/src/@core/layouts/BlankLayoutWithAppBar.js +0 -51
- package/src/@core/layouts/HorizontalLayout.jsx +0 -151
- package/src/@core/layouts/Layout.js +0 -39
- package/src/@core/layouts/VerticalLayout.jsx +0 -124
- package/src/@core/layouts/components/blank-layout-with-appBar/index.js +0 -115
- package/src/@core/layouts/components/horizontal/app-bar-content/index.js +0 -67
- package/src/@core/layouts/components/horizontal/navigation/HorizontalNavGroup.js +0 -352
- package/src/@core/layouts/components/horizontal/navigation/HorizontalNavItems.js +0 -21
- package/src/@core/layouts/components/horizontal/navigation/HorizontalNavLink.js +0 -195
- package/src/@core/layouts/components/horizontal/navigation/index.js +0 -31
- package/src/@core/layouts/components/shared-components/LanguageDropdown.js +0 -96
- package/src/@core/layouts/components/shared-components/ModeToggler.js +0 -32
- package/src/@core/layouts/components/shared-components/NotificationDropdown.js +0 -226
- package/src/@core/layouts/components/shared-components/UserDropdown.js +0 -177
- package/src/@core/layouts/components/shared-components/footer/FooterContent.js +0 -46
- package/src/@core/layouts/components/shared-components/footer/index.js +0 -61
- package/src/@core/layouts/components/vertical/appBar/index.js +0 -74
- package/src/@core/layouts/components/vertical/navigation/Drawer.js +0 -122
- package/src/@core/layouts/components/vertical/navigation/VerticalNavGroup.js +0 -435
- package/src/@core/layouts/components/vertical/navigation/VerticalNavHeader.js +0 -180
- package/src/@core/layouts/components/vertical/navigation/VerticalNavItems.js +0 -26
- package/src/@core/layouts/components/vertical/navigation/VerticalNavLink.js +0 -258
- package/src/@core/layouts/components/vertical/navigation/VerticalNavSectionTitle.js +0 -102
- package/src/@core/layouts/components/vertical/navigation/index.js +0 -169
- package/src/@core/layouts/utils.js +0 -69
- package/src/@core/styles/Table.module.css +0 -93
- package/src/@core/styles/horizontal/menuItemStyles.js +0 -100
- package/src/@core/styles/horizontal/menuRootStyles.js +0 -19
- package/src/@core/styles/libs/fullcalendar/index.js +0 -461
- package/src/@core/styles/libs/keen-slider/index.js +0 -111
- package/src/@core/styles/libs/react-apexcharts/index.js +0 -107
- package/src/@core/styles/libs/react-cleave/index.js +0 -33
- package/src/@core/styles/libs/react-credit-cards/index.js +0 -11
- package/src/@core/styles/libs/react-datepicker/index.js +0 -388
- package/src/@core/styles/libs/react-draft-wysiwyg/index.js +0 -144
- package/src/@core/styles/libs/react-dropzone/index.js +0 -76
- package/src/@core/styles/libs/react-hot-toast/index.js +0 -37
- package/src/@core/styles/libs/recharts/index.js +0 -47
- package/src/@core/styles/stepper.js +0 -103
- package/src/@core/styles/vertical/menuItemStyles.js +0 -138
- package/src/@core/styles/vertical/menuSectionStyles.js +0 -54
- package/src/@core/styles/vertical/navigationCustomStyles.js +0 -62
- package/src/@core/svg/ContentCompact.jsx +0 -17
- package/src/@core/svg/ContentWide.jsx +0 -17
- package/src/@core/svg/DirectionLtr.jsx +0 -93
- package/src/@core/svg/DirectionRtl.jsx +0 -93
- package/src/@core/svg/LayoutCollapsed.jsx +0 -59
- package/src/@core/svg/LayoutHorizontal.jsx +0 -42
- package/src/@core/svg/LayoutVertical.jsx +0 -59
- package/src/@core/svg/Logo.jsx +0 -76
- package/src/@core/svg/SkinBordered.jsx +0 -54
- package/src/@core/svg/SkinDefault.jsx +0 -59
- package/src/@core/tailwind/plugin.js +0 -78
- package/src/@core/theme/ThemeComponent.js +0 -63
- package/src/@core/theme/ThemeOptions.js +0 -71
- package/src/@core/theme/breakpoints/index.js +0 -11
- package/src/@core/theme/colorSchemes.js +0 -326
- package/src/@core/theme/customShadows.js +0 -11
- package/src/@core/theme/globalStyles.js +0 -81
- package/src/@core/theme/index.js +0 -42
- package/src/@core/theme/overrides/accordion.js +0 -51
- package/src/@core/theme/overrides/accordion.jsx +0 -85
- package/src/@core/theme/overrides/alerts.js +0 -110
- package/src/@core/theme/overrides/alerts.jsx +0 -180
- package/src/@core/theme/overrides/autocomplete.js +0 -14
- package/src/@core/theme/overrides/autocomplete.jsx +0 -68
- package/src/@core/theme/overrides/avatar.js +0 -38
- package/src/@core/theme/overrides/avatars.js +0 -27
- package/src/@core/theme/overrides/backdrop.js +0 -22
- package/src/@core/theme/overrides/badges.js +0 -16
- package/src/@core/theme/overrides/breadcrumbs.js +0 -11
- package/src/@core/theme/overrides/button-group.js +0 -84
- package/src/@core/theme/overrides/button.js +0 -93
- package/src/@core/theme/overrides/buttonGroup.js +0 -9
- package/src/@core/theme/overrides/card.js +0 -83
- package/src/@core/theme/overrides/checkbox.jsx +0 -95
- package/src/@core/theme/overrides/chip.js +0 -72
- package/src/@core/theme/overrides/dataGrid.js +0 -114
- package/src/@core/theme/overrides/dateTimePicker.js +0 -65
- package/src/@core/theme/overrides/dialog.js +0 -120
- package/src/@core/theme/overrides/divider.js +0 -13
- package/src/@core/theme/overrides/drawer.js +0 -20
- package/src/@core/theme/overrides/fab.js +0 -13
- package/src/@core/theme/overrides/form-control-label.js +0 -19
- package/src/@core/theme/overrides/icon-button.js +0 -145
- package/src/@core/theme/overrides/index.js +0 -103
- package/src/@core/theme/overrides/input.js +0 -72
- package/src/@core/theme/overrides/link.js +0 -9
- package/src/@core/theme/overrides/list.js +0 -44
- package/src/@core/theme/overrides/menu.js +0 -25
- package/src/@core/theme/overrides/pagination.js +0 -41
- package/src/@core/theme/overrides/paper.js +0 -9
- package/src/@core/theme/overrides/popover.js +0 -16
- package/src/@core/theme/overrides/progress.js +0 -38
- package/src/@core/theme/overrides/radio.jsx +0 -80
- package/src/@core/theme/overrides/rating.js +0 -16
- package/src/@core/theme/overrides/rating.jsx +0 -32
- package/src/@core/theme/overrides/select.js +0 -19
- package/src/@core/theme/overrides/select.jsx +0 -52
- package/src/@core/theme/overrides/slider.js +0 -97
- package/src/@core/theme/overrides/snackbar.js +0 -19
- package/src/@core/theme/overrides/switch.js +0 -73
- package/src/@core/theme/overrides/switches.js +0 -25
- package/src/@core/theme/overrides/table-pagination.js +0 -39
- package/src/@core/theme/overrides/table.js +0 -81
- package/src/@core/theme/overrides/tabs.js +0 -30
- package/src/@core/theme/overrides/timeline.js +0 -80
- package/src/@core/theme/overrides/toggle-button.js +0 -33
- package/src/@core/theme/overrides/toggleButton.js +0 -16
- package/src/@core/theme/overrides/tooltip.js +0 -21
- package/src/@core/theme/overrides/typography.js +0 -13
- package/src/@core/theme/palette/index.js +0 -107
- package/src/@core/theme/shadows/index.js +0 -61
- package/src/@core/theme/shadows.js +0 -12
- package/src/@core/theme/spacing/index.js +0 -3
- package/src/@core/theme/spacing.js +0 -5
- package/src/@core/theme/typography/index.js +0 -65
- package/src/@core/theme/typography.js +0 -84
- package/src/@core/utils/create-emotion-cache.js +0 -5
- package/src/@core/utils/hex-to-rgba.js +0 -11
- package/src/@core/utils/serverHelpers.js +0 -45
- package/src/@menu/components/RouterLink.jsx +0 -18
- package/src/@menu/components/horizontal-menu/HorizontalNav.jsx +0 -88
- package/src/@menu/components/horizontal-menu/Menu.jsx +0 -83
- package/src/@menu/components/horizontal-menu/MenuButton.jsx +0 -100
- package/src/@menu/components/horizontal-menu/MenuItem.jsx +0 -183
- package/src/@menu/components/horizontal-menu/SubMenu.jsx +0 -418
- package/src/@menu/components/horizontal-menu/SubMenuContent.jsx +0 -41
- package/src/@menu/components/horizontal-menu/VerticalNavInHorizontal.jsx +0 -20
- package/src/@menu/components/vertical-menu/Menu.jsx +0 -161
- package/src/@menu/components/vertical-menu/MenuButton.jsx +0 -95
- package/src/@menu/components/vertical-menu/MenuItem.jsx +0 -180
- package/src/@menu/components/vertical-menu/MenuSection.jsx +0 -124
- package/src/@menu/components/vertical-menu/NavCollapseIcons.jsx +0 -70
- package/src/@menu/components/vertical-menu/NavHeader.jsx +0 -39
- package/src/@menu/components/vertical-menu/SubMenu.jsx +0 -420
- package/src/@menu/components/vertical-menu/SubMenuContent.jsx +0 -101
- package/src/@menu/components/vertical-menu/VerticalNav.jsx +0 -216
- package/src/@menu/contexts/horizontalNavContext.jsx +0 -29
- package/src/@menu/contexts/verticalNavContext.jsx +0 -65
- package/src/@menu/defaultConfigs.js +0 -12
- package/src/@menu/hooks/useHorizontalMenu.jsx +0 -19
- package/src/@menu/hooks/useHorizontalNav.jsx +0 -19
- package/src/@menu/hooks/useMediaQuery.jsx +0 -29
- package/src/@menu/hooks/useVerticalMenu.jsx +0 -19
- package/src/@menu/hooks/useVerticalNav.jsx +0 -19
- package/src/@menu/horizontal-menu/index.jsx +0 -8
- package/src/@menu/styles/StyledBackdrop.jsx +0 -15
- package/src/@menu/styles/StyledMenuIcon.jsx +0 -12
- package/src/@menu/styles/StyledMenuLabel.jsx +0 -16
- package/src/@menu/styles/StyledMenuPrefix.jsx +0 -10
- package/src/@menu/styles/StyledMenuSectionLabel.jsx +0 -21
- package/src/@menu/styles/StyledMenuSuffix.jsx +0 -10
- package/src/@menu/styles/StyledSubMenuContent.jsx +0 -43
- package/src/@menu/styles/horizontal/StyledHorizontalMenu.jsx +0 -13
- package/src/@menu/styles/horizontal/StyledHorizontalMenuItem.jsx +0 -26
- package/src/@menu/styles/horizontal/StyledHorizontalNav.jsx +0 -11
- package/src/@menu/styles/horizontal/StyledHorizontalNavExpandIcon.jsx +0 -33
- package/src/@menu/styles/horizontal/StyledHorizontalSubMenuContent.jsx +0 -18
- package/src/@menu/styles/horizontal/StyledHorizontalSubMenuContentWrapper.jsx +0 -10
- package/src/@menu/styles/horizontal/horizontalUl.module.css +0 -15
- package/src/@menu/styles/styles.module.css +0 -5
- package/src/@menu/styles/vertical/StyledVerticalMenu.jsx +0 -16
- package/src/@menu/styles/vertical/StyledVerticalMenuItem.jsx +0 -28
- package/src/@menu/styles/vertical/StyledVerticalMenuSection.jsx +0 -23
- package/src/@menu/styles/vertical/StyledVerticalNav.jsx +0 -67
- package/src/@menu/styles/vertical/StyledVerticalNavBgColorContainer.jsx +0 -15
- package/src/@menu/styles/vertical/StyledVerticalNavContainer.jsx +0 -23
- package/src/@menu/styles/vertical/StyledVerticalNavExpandIcon.jsx +0 -25
- package/src/@menu/styles/vertical/verticalNavBgImage.module.css +0 -10
- package/src/@menu/svg/ChevronRight.jsx +0 -9
- package/src/@menu/svg/Close.jsx +0 -12
- package/src/@menu/svg/RadioCircle.jsx +0 -12
- package/src/@menu/svg/RadioCircleMarked.jsx +0 -13
- package/src/@menu/utils/menuClasses.js +0 -44
- package/src/@menu/utils/menuUtils.jsx +0 -145
- package/src/@menu/vertical-menu/index.jsx +0 -11
- package/src/configs/acl.js +0 -115
- package/src/configs/auth.js +0 -5
- package/src/configs/aws-exports.js +0 -30
- package/src/configs/firebase.js +0 -25
- package/src/configs/i18n.js +0 -34
- package/src/configs/primaryColorConfig.js +0 -35
- package/src/configs/themeConfig.js +0 -44
- package/src/layouts/UserLayout.js +0 -94
- package/src/layouts/UserThemeOptions.js +0 -191
- package/src/layouts/components/Direction.js +0 -30
- package/src/layouts/components/HtmlTooltip.js +0 -15
- package/src/layouts/components/Translations.js +0 -11
- package/src/layouts/components/UserDropdown.js +0 -217
- package/src/layouts/components/UserIcon.js +0 -40
- package/src/layouts/components/acl/Can.js +0 -6
- package/src/layouts/components/acl/CanViewNavGroup.js +0 -36
- package/src/layouts/components/acl/CanViewNavLink.js +0 -17
- package/src/layouts/components/acl/CanViewNavSectionTitle.js +0 -17
- package/src/layouts/components/horizontal/AppBarContent.js +0 -39
- package/src/layouts/components/horizontal/ServerSideNavItems.js +0 -44
- package/src/layouts/components/mui/StepperComps.js +0 -55
- package/src/layouts/components/vertical/AppBarContent.js +0 -35
- package/src/layouts/components/vertical/ServerSideNavItems.js +0 -44
- package/src/libs/ApexCharts.jsx +0 -5
- package/src/libs/ReactPlayer.jsx +0 -5
- package/src/libs/Recharts.jsx +0 -4
- package/src/libs/auth.js +0 -124
- package/src/libs/styles/AppFullCalendar.js +0 -505
- package/src/libs/styles/AppKeenSlider.js +0 -116
- package/src/libs/styles/AppReactApexCharts.jsx +0 -110
- package/src/libs/styles/AppReactDatepicker.jsx +0 -470
- package/src/libs/styles/AppReactDropzone.js +0 -76
- package/src/libs/styles/AppReactToastify.jsx +0 -108
- package/src/libs/styles/AppRecharts.js +0 -55
- package/src/libs/styles/inputOtp.module.css +0 -39
- package/src/libs/styles/tiptapEditor.css +0 -72
- package/src/navigation/horizontal/index.js +0 -246
- package/src/navigation/vertical/index.js +0 -253
- package/src/pages/401.js +0 -70
- package/src/pages/404.js +0 -67
- package/src/pages/500.js +0 -68
- package/src/pages/[slug].js +0 -115
- package/src/pages/_document.js +0 -72
- package/src/pages/api/navigation/regenerate-registry.js +0 -116
- package/src/pages/api/navigation/save.js +0 -218
- package/src/pages/authModule/acl/index.js +0 -48
- package/src/pages/authModule/forgot-password/index.js +0 -228
- package/src/pages/authModule/permissions/rolePermissions/[id]/rolePermissionsUser/index.js +0 -392
- package/src/pages/authModule/permissions/rolePermissions/index.js +0 -343
- package/src/pages/authModule/permissions/systemPermissions/index.js +0 -354
- package/src/pages/authModule/privacy/index.js +0 -721
- package/src/pages/authModule/users/index.js +0 -210
- package/src/pages/login/index.js +0 -328
- package/src/pages/mainHome/index.js +0 -181
- package/src/views/builder/inspector/definitions/cell/main.js +0 -4
- package/src/views/builder/inspector/definitions/column/main.js +0 -9
- package/src/views/builder/inspector/definitions/column-group/main.js +0 -18
- package/src/views/builder/inspector/definitions/header-cell/main.js +0 -5
- package/src/views/builder/inspector/definitions/table/main.js +0 -9
- package/src/views/builder/viewer/renderers/CellRenderer.jsx +0 -71
- package/src/views/builder/viewer/renderers/ColumnGroupRenderer.jsx +0 -96
- package/src/views/builder/viewer/renderers/ColumnRenderer.jsx +0 -71
- package/src/views/builder/viewer/renderers/HeaderCellRenderer.jsx +0 -78
- package/src/views/builder/viewer/renderers/TabRenderer.jsx +0 -82
- package/src/views/builder/viewer/renderers/TableRenderer.jsx +0 -92
- package/src/views/pages/auth/FooterIllustrationsV2.js +0 -40
- package/src/views/pages/misc/FooterIllustrations.js +0 -47
- package/src/views/pages/misc/muiTable/CustomPagination.js +0 -34
- package/src/views/pages/users/UserManageDialog.js +0 -283
- package/src/views/pages/users/UserViewPage.js +0 -199
- package/src/views/users/AddUserNameDialog.js +0 -162
- package/src/views/users/ContactManage.js +0 -449
- package/src/views/users/ResetPasswordDialog.js +0 -242
|
@@ -1,253 +0,0 @@
|
|
|
1
|
-
// ** Icon imports
|
|
2
|
-
import { HomeOutline, Account } from 'mdi-material-ui'
|
|
3
|
-
import { useRouter } from 'next/router'
|
|
4
|
-
import { useContext } from 'react'
|
|
5
|
-
import * as Icons from 'mdi-material-ui'
|
|
6
|
-
import { SystemContext } from 'context/SystemContext'
|
|
7
|
-
import { useNavigationExtensionContext } from 'src/lib/navigation/NavigationExtensionContext'
|
|
8
|
-
import mergeNavExtensions from 'src/lib/navigation/mergeNavExtensions'
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Get path for a navigation item (uses registry for dynamic items)
|
|
12
|
-
*/
|
|
13
|
-
const getItemPath = (item, registry = {}) => {
|
|
14
|
-
// Explicit path takes priority
|
|
15
|
-
if (item.path) return item.path
|
|
16
|
-
|
|
17
|
-
// For dynamic items, check registry for slug or path
|
|
18
|
-
if (item.viewId && registry[item.viewId]) {
|
|
19
|
-
const view = registry[item.viewId]
|
|
20
|
-
|
|
21
|
-
// Use slug for friendly route if available
|
|
22
|
-
if (view.slug) return `/${view.slug}`
|
|
23
|
-
|
|
24
|
-
// Use custom path if available
|
|
25
|
-
if (view.path) return view.path
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
// Fallback to viewer route
|
|
29
|
-
if (item.viewId) return `/viewer/${item.viewId}`
|
|
30
|
-
|
|
31
|
-
return null
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Find module node that matches current path (like static startsWith logic)
|
|
36
|
-
* This replaces: if (currentPath.startsWith('/userManagement/')) return UserManagementNavItem
|
|
37
|
-
*
|
|
38
|
-
* Strategy:
|
|
39
|
-
* 1. Find node where path matches exactly OR currentPath.startsWith(node.path + '/')
|
|
40
|
-
* 2. Uses registry to resolve viewIds to paths (slugs)
|
|
41
|
-
* 3. If current node is a leaf, return its parent (to show siblings)
|
|
42
|
-
* 4. If current node has children, return current node (to show its children)
|
|
43
|
-
*/
|
|
44
|
-
const findModuleForPath = (items, path, registry = {}) => {
|
|
45
|
-
if (!items || !Array.isArray(items)) return null
|
|
46
|
-
|
|
47
|
-
// Helper to find node with parent context
|
|
48
|
-
const findNodeWithParent = (items, matcher, parent = null) => {
|
|
49
|
-
for (const item of items) {
|
|
50
|
-
// Check if this node matches
|
|
51
|
-
if (matcher(item)) {
|
|
52
|
-
return { node: item, parent }
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
// Recursively check children
|
|
56
|
-
if (item.children && Array.isArray(item.children)) {
|
|
57
|
-
const found = findNodeWithParent(item.children, matcher, item)
|
|
58
|
-
if (found) return found
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
return null
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
// Matcher function: path matches exactly OR currentPath starts with node.path + '/'
|
|
65
|
-
// Also checks registry for slug-based paths
|
|
66
|
-
const pathMatcher = item => {
|
|
67
|
-
const itemPath = getItemPath(item, registry)
|
|
68
|
-
if (!itemPath) return false
|
|
69
|
-
|
|
70
|
-
// Exact match
|
|
71
|
-
if (itemPath === path) return true
|
|
72
|
-
|
|
73
|
-
// Starts with match (like static: currentPath.startsWith('/userManagement/'))
|
|
74
|
-
if (path.startsWith(itemPath + '/')) return true
|
|
75
|
-
|
|
76
|
-
return false
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
// First, try to find by path (including registry-resolved paths)
|
|
80
|
-
let result = findNodeWithParent(items, pathMatcher)
|
|
81
|
-
|
|
82
|
-
// If no path match, try by viewId (for /viewer/[id] routes)
|
|
83
|
-
if (!result && path.startsWith('/viewer/')) {
|
|
84
|
-
const viewIdMatch = path.match(/\/viewer\/(\d+)/)
|
|
85
|
-
if (viewIdMatch) {
|
|
86
|
-
const viewId = Number(viewIdMatch[1])
|
|
87
|
-
result = findNodeWithParent(items, item => item.viewId === viewId)
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
// Also try matching by slug from registry
|
|
92
|
-
if (!result) {
|
|
93
|
-
// Check if current path matches any slug in registry
|
|
94
|
-
const matchingView = Object.values(registry).find(view => {
|
|
95
|
-
if (view.slug && path === `/${view.slug}`) return true
|
|
96
|
-
if (view.path && (path === view.path || path.startsWith(view.path + '/'))) return true
|
|
97
|
-
return false
|
|
98
|
-
})
|
|
99
|
-
|
|
100
|
-
if (matchingView) {
|
|
101
|
-
result = findNodeWithParent(items, item => item.viewId === matchingView.id)
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
if (!result) return null
|
|
106
|
-
|
|
107
|
-
const { node, parent } = result
|
|
108
|
-
|
|
109
|
-
// Decision: What to show?
|
|
110
|
-
// - If current node has children → show its children
|
|
111
|
-
// - If current node is a leaf → show parent's children (siblings)
|
|
112
|
-
if (node.children && Array.isArray(node.children) && node.children.length > 0) {
|
|
113
|
-
return node // Show this node's children
|
|
114
|
-
} else if (parent && parent.children && Array.isArray(parent.children)) {
|
|
115
|
-
return parent // Show parent's children (siblings)
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
return node
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
/**
|
|
122
|
-
* Convert icon string to component
|
|
123
|
-
*/
|
|
124
|
-
const getIconComponent = iconName => {
|
|
125
|
-
if (!iconName) return HomeOutline
|
|
126
|
-
if (Icons[iconName]) {
|
|
127
|
-
return Icons[iconName]
|
|
128
|
-
}
|
|
129
|
-
return HomeOutline // Default fallback
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
/**
|
|
133
|
-
* Convert navigation items to format expected by menu system
|
|
134
|
-
* Handles icon conversion and structure normalization
|
|
135
|
-
* This matches the static navigation format exactly
|
|
136
|
-
*/
|
|
137
|
-
const normalizeNavItems = (items, registry = {}) => {
|
|
138
|
-
if (!items || !Array.isArray(items)) return []
|
|
139
|
-
|
|
140
|
-
return items.map(item => {
|
|
141
|
-
const navItem = {
|
|
142
|
-
title: item.title || '',
|
|
143
|
-
icon: item.icon ? getIconComponent(item.icon) : HomeOutline
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
// Determine path: explicit path takes priority, then registry, then viewer route
|
|
147
|
-
if (item.path) {
|
|
148
|
-
// Explicit path provided - use it (works for both static and dynamic with explicit paths)
|
|
149
|
-
navItem.path = item.path
|
|
150
|
-
} else {
|
|
151
|
-
// No explicit path - resolve from registry or use viewer route
|
|
152
|
-
const itemPath = getItemPath(item, registry)
|
|
153
|
-
if (itemPath) {
|
|
154
|
-
navItem.path = itemPath
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
// Include viewId if it exists (for dynamic items)
|
|
159
|
-
if (item.viewId) {
|
|
160
|
-
navItem.viewId = item.viewId
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
// Include type if it exists
|
|
164
|
-
if (item.type) {
|
|
165
|
-
navItem.type = item.type
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
// Handle external URLs
|
|
169
|
-
if (item.externalUrl) {
|
|
170
|
-
navItem.path = item.externalUrl
|
|
171
|
-
navItem.openInNewTab = item.openInNewTab || true
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
// Add action/subject if they exist (for permissions)
|
|
175
|
-
if (item.action) {
|
|
176
|
-
navItem.action = item.action
|
|
177
|
-
}
|
|
178
|
-
if (item.subject) {
|
|
179
|
-
navItem.subject = item.subject
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
// Add children if they exist (preserve structure, don't flatten)
|
|
183
|
-
if (item.children && Array.isArray(item.children) && item.children.length > 0) {
|
|
184
|
-
navItem.children = normalizeNavItems(item.children, registry)
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
return navItem
|
|
188
|
-
})
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
const Navigation = () => {
|
|
192
|
-
const router = useRouter()
|
|
193
|
-
const currentPath = router.pathname
|
|
194
|
-
const systemContext = useContext(SystemContext)
|
|
195
|
-
|
|
196
|
-
// Extension items injected by the host application
|
|
197
|
-
const { extensionItems } = useNavigationExtensionContext()
|
|
198
|
-
|
|
199
|
-
// Use registry from system context
|
|
200
|
-
const effectiveRegistry = systemContext.nav?.registry || {}
|
|
201
|
-
|
|
202
|
-
// Get navigation data from system context
|
|
203
|
-
const navigationConfig = systemContext.nav?.config || null
|
|
204
|
-
|
|
205
|
-
// Extract items from config (handle mainHome root)
|
|
206
|
-
let navigationData = navigationConfig?.items || []
|
|
207
|
-
|
|
208
|
-
// Unwrap mainHome root if it exists
|
|
209
|
-
// Navigation structure: { items: [{ title: "mainHome", children: [...actual nav items...] }] }
|
|
210
|
-
// We need to extract the children from mainHome root
|
|
211
|
-
if (navigationData.length > 0 && navigationData[0].title === 'mainHome' && navigationData[0].children) {
|
|
212
|
-
navigationData = navigationData[0].children
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
// Merge in any items registered by the host application via NavigationExtensionProvider
|
|
216
|
-
if (extensionItems && extensionItems.length > 0) {
|
|
217
|
-
navigationData = mergeNavExtensions(navigationData, extensionItems)
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
// If no navigation data, return empty array
|
|
221
|
-
if (!navigationData || navigationData.length === 0) {
|
|
222
|
-
return []
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
// Special case: mainHome page should not render navigation
|
|
226
|
-
if (currentPath === '/mainHome' || currentPath === '/mainHome/') {
|
|
227
|
-
return []
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
// Get actual path (router.pathname is '/viewer/[id]' for dynamic routes)
|
|
231
|
-
// Use router.asPath to get the actual URL path
|
|
232
|
-
let actualPath = router.asPath?.split('?')[0] || currentPath
|
|
233
|
-
|
|
234
|
-
// Remove trailing slash for consistent matching (except for root '/')
|
|
235
|
-
if (actualPath !== '/' && actualPath.endsWith('/')) {
|
|
236
|
-
actualPath = actualPath.slice(0, -1)
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
// Find the module node (like static: if (currentPath.startsWith('/userManagement/')) return UserManagementNavItem)
|
|
240
|
-
const moduleNode = findModuleForPath(navigationData, actualPath, effectiveRegistry)
|
|
241
|
-
|
|
242
|
-
if (!moduleNode || !moduleNode.children || !Array.isArray(moduleNode.children) || moduleNode.children.length === 0) {
|
|
243
|
-
// No matching module or no children to show
|
|
244
|
-
return []
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
// Normalize children for menu (like static version - direct children only, no flattening)
|
|
248
|
-
const navItems = normalizeNavItems(moduleNode.children, effectiveRegistry)
|
|
249
|
-
|
|
250
|
-
return navItems
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
export default Navigation
|
package/src/pages/401.js
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
// ** Next Import
|
|
2
|
-
import Link from 'next/link'
|
|
3
|
-
|
|
4
|
-
// ** MUI Components
|
|
5
|
-
import Button from '@mui/material/Button'
|
|
6
|
-
import { styled } from '@mui/material/styles'
|
|
7
|
-
import Typography from '@mui/material/Typography'
|
|
8
|
-
import Box from '@mui/material/Box'
|
|
9
|
-
|
|
10
|
-
// ** Layout Import
|
|
11
|
-
import BlankLayout from 'src/@core/layouts/BlankLayout'
|
|
12
|
-
|
|
13
|
-
// ** Demo Imports
|
|
14
|
-
import FooterIllustrations from 'src/views/pages/misc/FooterIllustrations'
|
|
15
|
-
import Router from 'next/router'
|
|
16
|
-
// ** Styled Components
|
|
17
|
-
const BoxWrapper = styled(Box)(({ theme }) => ({
|
|
18
|
-
[theme.breakpoints.down('md')]: {
|
|
19
|
-
width: '90vw'
|
|
20
|
-
}
|
|
21
|
-
}))
|
|
22
|
-
|
|
23
|
-
const BackToHome = () => {
|
|
24
|
-
Router.push('/mainHome')
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
const Img = styled('img')(({ theme }) => ({
|
|
32
|
-
marginTop: theme.spacing(15),
|
|
33
|
-
marginBottom: theme.spacing(15),
|
|
34
|
-
[theme.breakpoints.down('lg')]: {
|
|
35
|
-
height: 450,
|
|
36
|
-
marginTop: theme.spacing(10),
|
|
37
|
-
marginBottom: theme.spacing(10)
|
|
38
|
-
},
|
|
39
|
-
[theme.breakpoints.down('md')]: {
|
|
40
|
-
height: 400
|
|
41
|
-
}
|
|
42
|
-
}))
|
|
43
|
-
|
|
44
|
-
const Error401 = () => {
|
|
45
|
-
return (
|
|
46
|
-
<Box className='content-center'>
|
|
47
|
-
<Box sx={{ p: 5, display: 'flex', flexDirection: 'column', alignItems: 'center', textAlign: 'center' }}>
|
|
48
|
-
<BoxWrapper>
|
|
49
|
-
<Typography variant='h1' sx={{ mb: 2.5 }}>
|
|
50
|
-
401
|
|
51
|
-
</Typography>
|
|
52
|
-
<Typography variant='h5' sx={{ mb: 2.5, fontSize: '1.5rem !important' }}>
|
|
53
|
-
You are not authorized! 🔐
|
|
54
|
-
</Typography>
|
|
55
|
-
<Typography variant='body2'>You don′t have permission to access this page. Go Home!</Typography>
|
|
56
|
-
</BoxWrapper>
|
|
57
|
-
<Img alt='error-illustration' src='/images/pages/401.png' />
|
|
58
|
-
<Link passHref href='/'>
|
|
59
|
-
<Button onClick={BackToHome} component='a' variant='contained' sx={{ px: 5.5 }}>
|
|
60
|
-
Back to Home
|
|
61
|
-
</Button>
|
|
62
|
-
</Link>
|
|
63
|
-
</Box>
|
|
64
|
-
<FooterIllustrations image='/images/pages/misc-401-object.png' />
|
|
65
|
-
</Box>
|
|
66
|
-
)
|
|
67
|
-
}
|
|
68
|
-
Error401.getLayout = page => <BlankLayout>{page}</BlankLayout>
|
|
69
|
-
|
|
70
|
-
export default Error401
|
package/src/pages/404.js
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
// ** Next Import
|
|
2
|
-
import Link from 'next/link'
|
|
3
|
-
|
|
4
|
-
// ** MUI Components
|
|
5
|
-
import Button from '@mui/material/Button'
|
|
6
|
-
import { styled } from '@mui/material/styles'
|
|
7
|
-
import Typography from '@mui/material/Typography'
|
|
8
|
-
import Box from '@mui/material/Box'
|
|
9
|
-
|
|
10
|
-
// ** Layout Import
|
|
11
|
-
import BlankLayout from 'src/@core/layouts/BlankLayout'
|
|
12
|
-
|
|
13
|
-
// ** Demo Imports
|
|
14
|
-
import FooterIllustrations from 'src/views/pages/misc/FooterIllustrations'
|
|
15
|
-
import Router from 'next/router'
|
|
16
|
-
// ** Styled Components
|
|
17
|
-
const BoxWrapper = styled(Box)(({ theme }) => ({
|
|
18
|
-
[theme.breakpoints.down('md')]: {
|
|
19
|
-
width: '90vw'
|
|
20
|
-
}
|
|
21
|
-
}))
|
|
22
|
-
|
|
23
|
-
const BackToHome = () => {
|
|
24
|
-
Router.push('/mainHome')
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
const Img = styled('img')(({ theme }) => ({
|
|
29
|
-
marginTop: theme.spacing(15),
|
|
30
|
-
marginBottom: theme.spacing(15),
|
|
31
|
-
[theme.breakpoints.down('lg')]: {
|
|
32
|
-
height: 450,
|
|
33
|
-
marginTop: theme.spacing(10),
|
|
34
|
-
marginBottom: theme.spacing(10)
|
|
35
|
-
},
|
|
36
|
-
[theme.breakpoints.down('md')]: {
|
|
37
|
-
height: 400
|
|
38
|
-
}
|
|
39
|
-
}))
|
|
40
|
-
|
|
41
|
-
const Error404 = () => {
|
|
42
|
-
return (
|
|
43
|
-
<Box className='content-center'>
|
|
44
|
-
<Box sx={{ p: 5, display: 'flex', flexDirection: 'column', alignItems: 'center', textAlign: 'center' }}>
|
|
45
|
-
<BoxWrapper>
|
|
46
|
-
<Typography variant='h1' sx={{ mb: 2.5 }}>
|
|
47
|
-
404
|
|
48
|
-
</Typography>
|
|
49
|
-
<Typography variant='h5' sx={{ mb: 2.5, letterSpacing: '0.18px', fontSize: '1.5rem !important' }}>
|
|
50
|
-
Page Not Found ⚠️
|
|
51
|
-
</Typography>
|
|
52
|
-
<Typography variant='body2'>We couldn′t find the page you are looking for.</Typography>
|
|
53
|
-
</BoxWrapper>
|
|
54
|
-
<Img alt='error-illustration' src='/images/pages/404.png' />
|
|
55
|
-
<Link passHref href='/mainHome'>
|
|
56
|
-
<Button onClick={BackToHome} component='a' variant='contained' sx={{ px: 5.5 }}>
|
|
57
|
-
Back to Home
|
|
58
|
-
</Button>
|
|
59
|
-
</Link>
|
|
60
|
-
</Box>
|
|
61
|
-
<FooterIllustrations image='/images/pages/misc-404-object.png' />
|
|
62
|
-
</Box>
|
|
63
|
-
)
|
|
64
|
-
}
|
|
65
|
-
Error404.getLayout = page => <BlankLayout>{page}</BlankLayout>
|
|
66
|
-
|
|
67
|
-
export default Error404
|
package/src/pages/500.js
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
// ** Next Import
|
|
2
|
-
import Link from 'next/link'
|
|
3
|
-
|
|
4
|
-
// ** MUI Components
|
|
5
|
-
import Button from '@mui/material/Button'
|
|
6
|
-
import { styled } from '@mui/material/styles'
|
|
7
|
-
import Typography from '@mui/material/Typography'
|
|
8
|
-
import Box from '@mui/material/Box'
|
|
9
|
-
|
|
10
|
-
// ** Layout Import
|
|
11
|
-
import BlankLayout from 'src/@core/layouts/BlankLayout'
|
|
12
|
-
|
|
13
|
-
// ** Demo Imports
|
|
14
|
-
import FooterIllustrations from 'src/views/pages/misc/FooterIllustrations'
|
|
15
|
-
import Router from 'next/router'
|
|
16
|
-
// ** Styled Components
|
|
17
|
-
const BoxWrapper = styled(Box)(({ theme }) => ({
|
|
18
|
-
[theme.breakpoints.down('md')]: {
|
|
19
|
-
width: '90vw'
|
|
20
|
-
}
|
|
21
|
-
}))
|
|
22
|
-
|
|
23
|
-
const BacktoHome = () => {
|
|
24
|
-
Router.push('/mainHome')
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
const Img = styled('img')(({ theme }) => ({
|
|
28
|
-
marginTop: theme.spacing(15),
|
|
29
|
-
marginBottom: theme.spacing(15),
|
|
30
|
-
[theme.breakpoints.down('lg')]: {
|
|
31
|
-
height: 450,
|
|
32
|
-
marginTop: theme.spacing(10),
|
|
33
|
-
marginBottom: theme.spacing(10)
|
|
34
|
-
},
|
|
35
|
-
[theme.breakpoints.down('md')]: {
|
|
36
|
-
height: 400
|
|
37
|
-
}
|
|
38
|
-
}))
|
|
39
|
-
|
|
40
|
-
const Error500 = () => {
|
|
41
|
-
return (
|
|
42
|
-
<Box className='content-center'>
|
|
43
|
-
<Box sx={{ p: 5, display: 'flex', flexDirection: 'column', alignItems: 'center', textAlign: 'center' }}>
|
|
44
|
-
<BoxWrapper>
|
|
45
|
-
<Typography variant='h1' sx={{ mb: 2.5 }}>
|
|
46
|
-
500
|
|
47
|
-
</Typography>
|
|
48
|
-
<Typography variant='h5' sx={{ mb: 2.5, fontSize: '1.5rem !important' }}>
|
|
49
|
-
Internal server error 👨🏻💻
|
|
50
|
-
</Typography>
|
|
51
|
-
<Typography variant='body2'>Oops, something went wrong!</Typography>
|
|
52
|
-
</BoxWrapper>
|
|
53
|
-
<Img alt='error-illustration' src='/images/pages/500.png' />
|
|
54
|
-
<Link passHref href='/'>
|
|
55
|
-
<Button
|
|
56
|
-
onClick={BacktoHome}
|
|
57
|
-
component='a' variant='contained' sx={{ px: 5.5 }}>
|
|
58
|
-
Back to Home
|
|
59
|
-
</Button>
|
|
60
|
-
</Link>
|
|
61
|
-
</Box>
|
|
62
|
-
<FooterIllustrations image='/images/pages/misc-500-object.png' />
|
|
63
|
-
</Box>
|
|
64
|
-
)
|
|
65
|
-
}
|
|
66
|
-
Error500.getLayout = page => <BlankLayout>{page}</BlankLayout>
|
|
67
|
-
|
|
68
|
-
export default Error500
|
package/src/pages/[slug].js
DELETED
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
import { useRouter } from 'next/router'
|
|
2
|
-
import { useEffect, useState, useMemo, useContext } from 'react'
|
|
3
|
-
import { Box, Typography, CircularProgress, Grid } from '@mui/material'
|
|
4
|
-
import { SystemContext } from 'context/SystemContext'
|
|
5
|
-
import { Endpoints, Services } from 'services/Endpoints'
|
|
6
|
-
import ProductionViewer from 'views/builder/viewer/ProductionViewer'
|
|
7
|
-
|
|
8
|
-
export default function SlugResolver() {
|
|
9
|
-
const router = useRouter()
|
|
10
|
-
const { slug } = router.query
|
|
11
|
-
const systemContext = useContext(SystemContext)
|
|
12
|
-
const viewRegistry = systemContext.nav?.registry || {}
|
|
13
|
-
|
|
14
|
-
const [schema, setSchema] = useState({})
|
|
15
|
-
const [viewMetaData, setViewMetaData] = useState({})
|
|
16
|
-
const [loading, setLoading] = useState(true)
|
|
17
|
-
const [error, setError] = useState(null)
|
|
18
|
-
|
|
19
|
-
// Find view by slug
|
|
20
|
-
const view = useMemo(() => {
|
|
21
|
-
if (!slug) return null
|
|
22
|
-
return Object.values(viewRegistry).find(
|
|
23
|
-
v => v.slug === slug
|
|
24
|
-
)
|
|
25
|
-
}, [slug, viewRegistry])
|
|
26
|
-
|
|
27
|
-
const handleGetView = async (viewId) => {
|
|
28
|
-
try {
|
|
29
|
-
setLoading(true)
|
|
30
|
-
setError(null)
|
|
31
|
-
|
|
32
|
-
const response = await Services.GetService(Endpoints.UiBuilder.Get.GetViewDetails, false, {
|
|
33
|
-
viewId: viewId
|
|
34
|
-
})
|
|
35
|
-
|
|
36
|
-
if (response && response.data) {
|
|
37
|
-
setSchema(JSON.parse(response.data.value))
|
|
38
|
-
setViewMetaData({
|
|
39
|
-
id: response.data.id,
|
|
40
|
-
title: response.data.title,
|
|
41
|
-
viewId: response.data.viewId,
|
|
42
|
-
groupId: response.data.groupId,
|
|
43
|
-
isNew: false
|
|
44
|
-
})
|
|
45
|
-
} else {
|
|
46
|
-
setError('View not found')
|
|
47
|
-
}
|
|
48
|
-
} catch (error) {
|
|
49
|
-
console.error('Error loading view:', error)
|
|
50
|
-
setError('Failed to load view')
|
|
51
|
-
} finally {
|
|
52
|
-
setLoading(false)
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
useEffect(() => {
|
|
57
|
-
if (view && view.id) {
|
|
58
|
-
handleGetView(view.id)
|
|
59
|
-
} else if (slug && !view) {
|
|
60
|
-
setLoading(false)
|
|
61
|
-
setError('Page not found')
|
|
62
|
-
}
|
|
63
|
-
}, [view, slug])
|
|
64
|
-
|
|
65
|
-
// No slug yet
|
|
66
|
-
if (!slug) {
|
|
67
|
-
return null
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
// Loading state
|
|
71
|
-
if (loading) {
|
|
72
|
-
return (
|
|
73
|
-
<Box sx={{ p: 6, textAlign: 'center', display: 'flex', justifyContent: 'center', alignItems: 'center', minHeight: '400px' }}>
|
|
74
|
-
<CircularProgress />
|
|
75
|
-
</Box>
|
|
76
|
-
)
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
// View not found in registry
|
|
80
|
-
if (!view) {
|
|
81
|
-
return (
|
|
82
|
-
<Box sx={{ p: 6, textAlign: 'center' }}>
|
|
83
|
-
<Typography variant="h4">Page not found</Typography>
|
|
84
|
-
<Typography variant="body2" color="text.secondary" sx={{ mt: 2 }}>
|
|
85
|
-
Unknown page: /{slug}
|
|
86
|
-
</Typography>
|
|
87
|
-
</Box>
|
|
88
|
-
)
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
// Error loading view data
|
|
92
|
-
if (error) {
|
|
93
|
-
return (
|
|
94
|
-
<Box sx={{ p: 6, textAlign: 'center' }}>
|
|
95
|
-
<Typography variant="h4">Coming soon 🚧</Typography>
|
|
96
|
-
<Typography variant="body2" sx={{ mt: 2 }}>
|
|
97
|
-
{view.name} has not been created yet.
|
|
98
|
-
</Typography>
|
|
99
|
-
<Typography variant="body2" color="text.secondary" sx={{ mt: 1 }}>
|
|
100
|
-
Friendly URL: /{slug}
|
|
101
|
-
</Typography>
|
|
102
|
-
</Box>
|
|
103
|
-
)
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
// Success - render the viewer
|
|
107
|
-
// This keeps the friendly URL (/{slug}) in the browser
|
|
108
|
-
return (
|
|
109
|
-
<Grid container>
|
|
110
|
-
<Grid item size={12}>
|
|
111
|
-
<ProductionViewer schema={schema} />
|
|
112
|
-
</Grid>
|
|
113
|
-
</Grid>
|
|
114
|
-
)
|
|
115
|
-
}
|
package/src/pages/_document.js
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
// ** React Import
|
|
2
|
-
import { Children } from 'react'
|
|
3
|
-
|
|
4
|
-
// ** Next Import
|
|
5
|
-
import Document, { Html, Head, Main, NextScript } from 'next/document'
|
|
6
|
-
|
|
7
|
-
// ** Emotion Imports
|
|
8
|
-
import createEmotionServer from '@emotion/server/create-instance'
|
|
9
|
-
|
|
10
|
-
// ** Utils Imports
|
|
11
|
-
import { createEmotionCache } from 'src/@core/utils/create-emotion-cache'
|
|
12
|
-
|
|
13
|
-
class CustomDocument extends Document {
|
|
14
|
-
render() {
|
|
15
|
-
return (
|
|
16
|
-
<Html lang='en'>
|
|
17
|
-
<Head>
|
|
18
|
-
<link rel='preconnect' href='https://fonts.googleapis.com' />
|
|
19
|
-
<link rel='preconnect' href='https://fonts.gstatic.com' />
|
|
20
|
-
<link
|
|
21
|
-
rel='stylesheet'
|
|
22
|
-
href='https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap'
|
|
23
|
-
/>
|
|
24
|
-
<link
|
|
25
|
-
rel='stylesheet'
|
|
26
|
-
href='https://fonts.googleapis.com/css2?family=Cairo:wght@300;400;500;600;700&display=swap'
|
|
27
|
-
/>
|
|
28
|
-
<link rel='apple-touch-icon' sizes='180x180' href='/images/apple-touch-icon.png' />
|
|
29
|
-
<link rel='shortcut icon' href='/images/favicon.png' />
|
|
30
|
-
</Head>
|
|
31
|
-
<body>
|
|
32
|
-
<Main />
|
|
33
|
-
<NextScript />
|
|
34
|
-
</body>
|
|
35
|
-
</Html>
|
|
36
|
-
)
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
CustomDocument.getInitialProps = async ctx => {
|
|
40
|
-
const originalRenderPage = ctx.renderPage
|
|
41
|
-
const cache = createEmotionCache()
|
|
42
|
-
const { extractCriticalToChunks } = createEmotionServer(cache)
|
|
43
|
-
ctx.renderPage = () =>
|
|
44
|
-
originalRenderPage({
|
|
45
|
-
enhanceApp: App => props =>
|
|
46
|
-
(
|
|
47
|
-
<App
|
|
48
|
-
{...props} // @ts-ignore
|
|
49
|
-
emotionCache={cache}
|
|
50
|
-
/>
|
|
51
|
-
)
|
|
52
|
-
})
|
|
53
|
-
const initialProps = await Document.getInitialProps(ctx)
|
|
54
|
-
const emotionStyles = extractCriticalToChunks(initialProps.html)
|
|
55
|
-
|
|
56
|
-
const emotionStyleTags = emotionStyles.styles.map(style => {
|
|
57
|
-
return (
|
|
58
|
-
<style
|
|
59
|
-
key={style.key}
|
|
60
|
-
dangerouslySetInnerHTML={{ __html: style.css }}
|
|
61
|
-
data-emotion={`${style.key} ${style.ids.join(' ')}`}
|
|
62
|
-
/>
|
|
63
|
-
)
|
|
64
|
-
})
|
|
65
|
-
|
|
66
|
-
return {
|
|
67
|
-
...initialProps,
|
|
68
|
-
styles: [...Children.toArray(initialProps.styles), ...emotionStyleTags]
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
export default CustomDocument
|