robobyte-front-builder 1.0.19 → 1.0.23

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.
Files changed (520) hide show
  1. package/INTEGRATION.md +1586 -0
  2. package/README.md +928 -0
  3. package/RoboByteBuilder_User_Manual.docx +0 -0
  4. package/next.config.js +19 -48
  5. package/package.json +42 -86
  6. package/src/context/BuilderContext.jsx +191 -7
  7. package/src/context/SystemContext.js +2 -2
  8. package/src/hooks/useGlobalStore.js +36 -0
  9. package/src/hooks/useTimerEngine.js +54 -0
  10. package/src/lib/index.js +11 -3
  11. package/src/lib/layouts/BlankLayout.jsx +13 -0
  12. package/src/lib/providers/RoboByteFrontBuilderProvider.jsx +61 -7
  13. package/src/lib/themes/builderTheme.js +41 -0
  14. package/src/pages/_app.js +32 -134
  15. package/src/pages/api/ai.js +107 -0
  16. package/src/pages/builders/report/index.js +1 -0
  17. package/src/pages/builders/report/list/index.js +1 -0
  18. package/src/pages/builders/report/viewer/index.js +1 -0
  19. package/src/pages/index.js +88 -37
  20. package/src/pages/printBuilder/index.jsx +263 -0
  21. package/src/pages/printBuilder/layouts/index.jsx +298 -0
  22. package/src/pages/reportModule/reportBuilder/index.js +8 -6
  23. package/src/pages/reportModule/reportBuilder/reportViewer/index.js +92 -25
  24. package/src/pages/reportModule/reportBuilder/reports/index.js +3 -5
  25. package/src/pages/reportModule/reportBuilder/reportsPermissions/index.js +2 -3
  26. package/src/pages/viewBuilder/index.jsx +117 -32
  27. package/src/pages/viewBuilder/views/index.js +3 -3
  28. package/src/pages/viewer/[id]/index.js +2 -1
  29. package/src/services/DeleteService.js +31 -60
  30. package/src/services/Endpoints/PrintLayoutEndpoints.js +42 -0
  31. package/src/services/Endpoints/ReportBuilderEndpoints.js +7 -7
  32. package/src/services/Endpoints.js +2 -0
  33. package/src/services/GetService.js +33 -54
  34. package/src/services/PatchService.js +38 -65
  35. package/src/services/PostService.js +37 -63
  36. package/src/services/UpdateService.js +39 -65
  37. package/src/services/builderHelper/actionExecutor.js +141 -25
  38. package/src/services/builderHelper/builderHelper.js +92 -0
  39. package/src/services/builderHelper/colorSchema.js +95 -0
  40. package/src/services/builderHelper/iconResolver.js +50 -0
  41. package/src/services/builderHelper/jsExecutor.js +212 -46
  42. package/src/services/builderHelper/nodeFactory.js +32 -15
  43. package/src/services/builderHelper/numberFormat.js +123 -0
  44. package/src/services/builderHelper/resolveProps.js +73 -4
  45. package/src/services/builderHelper/thresholdEngine.js +77 -0
  46. package/src/services/builderHelper/tree.js +31 -0
  47. package/src/services/components/agGridAutoComplete.js +5 -9
  48. package/src/services/config.js +9 -1
  49. package/src/services/globalStore.js +80 -0
  50. package/src/services/helper/multiSelectEditor.js +5 -9
  51. package/src/services/helper/multiSelectEditorByBuilder.js +5 -9
  52. package/src/services/reportData/fetchReportData.js +69 -28
  53. package/src/services/routerRef.js +35 -0
  54. package/src/services/sessionLog.js +171 -0
  55. package/src/views/ConfirmDialog.js +2 -2
  56. package/src/views/builder/JSEditor.js +105 -107
  57. package/src/views/builder/SessionLogDialog.jsx +350 -0
  58. package/src/views/builder/UnsavedChangesGuard.jsx +103 -0
  59. package/src/views/builder/inspector/Inspector.jsx +6 -9
  60. package/src/views/builder/inspector/Tabs/ComponentActionsTab.jsx +7 -13
  61. package/src/views/builder/inspector/Tabs/MainTab.jsx +143 -25
  62. package/src/views/builder/inspector/Tabs/RulesTab.jsx +9 -24
  63. package/src/views/builder/inspector/Tabs/StyleTab.jsx +9 -24
  64. package/src/views/builder/inspector/definitions/autocomplete/main.js +4 -6
  65. package/src/views/builder/inspector/definitions/banner/actions.js +7 -0
  66. package/src/views/builder/inspector/definitions/banner/main.js +22 -0
  67. package/src/views/builder/inspector/definitions/banner/rules.js +1 -0
  68. package/src/views/builder/inspector/definitions/banner/style.js +1 -0
  69. package/src/views/builder/inspector/definitions/breadcrumb/main.js +43 -6
  70. package/src/views/builder/inspector/definitions/button/main.js +11 -12
  71. package/src/views/builder/inspector/definitions/button/style.js +18 -30
  72. package/src/views/builder/inspector/definitions/checkbox/actions.js +3 -1
  73. package/src/views/builder/inspector/definitions/checkbox/main.js +4 -6
  74. package/src/views/builder/inspector/definitions/common/main.js +13 -2
  75. package/src/views/builder/inspector/definitions/dataGrid/main.js +23 -0
  76. package/src/views/builder/inspector/definitions/dataTableViewer/main.js +46 -0
  77. package/src/views/builder/inspector/definitions/datepicker/actions.js +3 -1
  78. package/src/views/builder/inspector/definitions/datepicker/main.js +6 -14
  79. package/src/views/builder/inspector/definitions/dialog/main.js +36 -0
  80. package/src/views/builder/inspector/definitions/dropdown/main.js +5 -8
  81. package/src/views/builder/inspector/definitions/excelUpload/actions.js +23 -0
  82. package/src/views/builder/inspector/definitions/excelUpload/main.js +17 -0
  83. package/src/views/builder/inspector/definitions/excelUpload/rules.js +1 -0
  84. package/src/views/builder/inspector/definitions/excelUpload/style.js +45 -0
  85. package/src/views/builder/inspector/definitions/header/main.js +10 -1
  86. package/src/views/builder/inspector/definitions/index.js +106 -19
  87. package/src/views/builder/inspector/definitions/input/actions.js +4 -1
  88. package/src/views/builder/inspector/definitions/input/main.js +20 -11
  89. package/src/views/builder/inspector/definitions/kpi/avatarGroup.js +22 -0
  90. package/src/views/builder/inspector/definitions/kpi/badge.js +17 -0
  91. package/src/views/builder/inspector/definitions/kpi/bulletChart.js +47 -0
  92. package/src/views/builder/inspector/definitions/kpi/chart.js +55 -0
  93. package/src/views/builder/inspector/definitions/kpi/colorScale.js +60 -0
  94. package/src/views/builder/inspector/definitions/kpi/comparisonBars.js +41 -0
  95. package/src/views/builder/inspector/definitions/kpi/countdown.js +46 -0
  96. package/src/views/builder/inspector/definitions/kpi/donut.js +51 -0
  97. package/src/views/builder/inspector/definitions/kpi/funnel.js +25 -0
  98. package/src/views/builder/inspector/definitions/kpi/gauge.js +39 -0
  99. package/src/views/builder/inspector/definitions/kpi/heatmapGrid.js +96 -0
  100. package/src/views/builder/inspector/definitions/kpi/iconBox.js +20 -0
  101. package/src/views/builder/inspector/definitions/kpi/metric.js +45 -0
  102. package/src/views/builder/inspector/definitions/kpi/rating.js +27 -0
  103. package/src/views/builder/inspector/definitions/kpi/statusDot.js +18 -0
  104. package/src/views/builder/inspector/definitions/kpi/stepStage.js +65 -0
  105. package/src/views/builder/inspector/definitions/kpi/tagList.js +32 -0
  106. package/src/views/builder/inspector/definitions/kpi/timeline.js +80 -0
  107. package/src/views/builder/inspector/definitions/kpi/trend.js +20 -0
  108. package/src/views/builder/inspector/definitions/label/main.js +10 -1
  109. package/src/views/builder/inspector/definitions/layout/main.js +27 -3
  110. package/src/views/builder/inspector/definitions/number/main.js +6 -14
  111. package/src/views/builder/inspector/definitions/pageNumber/main.js +21 -0
  112. package/src/views/builder/inspector/definitions/popover/main.js +71 -0
  113. package/src/views/builder/inspector/definitions/radio/main.js +5 -8
  114. package/src/views/builder/inspector/definitions/repeater/main.js +31 -0
  115. package/src/views/builder/inspector/definitions/reportViewer/main.js +28 -1
  116. package/src/views/builder/inspector/definitions/richtext/main.js +5 -8
  117. package/src/views/builder/inspector/definitions/signature/main.js +4 -1
  118. package/src/views/builder/inspector/definitions/tag/main.js +5 -8
  119. package/src/views/builder/inspector/definitions/textarea/actions.js +4 -1
  120. package/src/views/builder/inspector/definitions/textarea/main.js +5 -7
  121. package/src/views/builder/inspector/definitions/time/main.js +5 -8
  122. package/src/views/builder/inspector/definitions/toggle/main.js +5 -19
  123. package/src/views/builder/inspector/definitions/treeView/main.js +61 -0
  124. package/src/views/builder/inspector/definitions/viewRenderer/main.js +53 -0
  125. package/src/views/builder/inspector/definitions/wizard/main.js +68 -0
  126. package/src/views/builder/inspector/definitions/wizard-step/main.js +25 -0
  127. package/src/views/builder/inspector/fields/ActionsConfigEditor.jsx +426 -0
  128. package/src/views/builder/inspector/fields/ColorSchemaField.jsx +140 -0
  129. package/src/views/builder/inspector/fields/ColumnFunctionEditor.jsx +238 -0
  130. package/src/views/builder/inspector/fields/ColumnMappingEditor.jsx +105 -0
  131. package/src/views/builder/inspector/fields/ColumnsConfigEditor.jsx +506 -0
  132. package/src/views/builder/inspector/fields/DonutRingsEditorField.jsx +337 -0
  133. package/src/views/builder/inspector/fields/ExtraColsEditor.jsx +618 -0
  134. package/src/views/builder/inspector/fields/FunctionHelpPopover.jsx +295 -0
  135. package/src/views/builder/inspector/fields/IconEditor.jsx +64 -0
  136. package/src/views/builder/inspector/fields/KpiActionField.jsx +223 -0
  137. package/src/views/builder/inspector/fields/MarkersEditorField.jsx +173 -0
  138. package/src/views/builder/inspector/fields/SelectEditor.jsx +9 -5
  139. package/src/views/builder/inspector/fields/SeriesEditorField.jsx +363 -0
  140. package/src/views/builder/inspector/fields/TableColumnsEditor.jsx +104 -0
  141. package/src/views/builder/inspector/fields/ThresholdsEditor.jsx +247 -0
  142. package/src/views/builder/inspector/fields/ValueFunctionsRefPanel.jsx +217 -0
  143. package/src/views/builder/inspector/fields/columnEditorShared.jsx +217 -0
  144. package/src/views/builder/sidebar/Sidebar.jsx +4 -2
  145. package/src/views/builder/sidebar/SidebarTabs.jsx +28 -17
  146. package/src/views/builder/sidebar/tabs/ActionsTab.jsx +7 -3
  147. package/src/views/builder/sidebar/tabs/AiTab/AiPreviewDialog.jsx +193 -0
  148. package/src/views/builder/sidebar/tabs/AiTab/aiProvider.js +53 -0
  149. package/src/views/builder/sidebar/tabs/AiTab/index.jsx +409 -0
  150. package/src/views/builder/sidebar/tabs/AiTab/schemaTransformer.js +167 -0
  151. package/src/views/builder/sidebar/tabs/AiTab/schemaValidator.js +64 -0
  152. package/src/views/builder/sidebar/tabs/AiTab/systemPrompt.js +1151 -0
  153. package/src/views/builder/sidebar/tabs/AiTab/trainingExport.js +131 -0
  154. package/src/views/builder/sidebar/tabs/Components/ComponentsTab.jsx +31 -31
  155. package/src/views/builder/sidebar/tabs/Components/componentCatalog.js +43 -21
  156. package/src/views/builder/sidebar/tabs/Components/printComponentCatalog.js +81 -0
  157. package/src/views/builder/sidebar/tabs/TimersTab.jsx +338 -0
  158. package/src/views/builder/sidebar/tabs/TreeTab.jsx +13 -4
  159. package/src/views/builder/sidebar/tabs/ViewTab.jsx +173 -13
  160. package/src/views/builder/viewer/AdornedLabel.jsx +82 -0
  161. package/src/views/builder/viewer/ComponentRenderer.jsx +98 -24
  162. package/src/views/builder/viewer/DialogsZone.jsx +259 -0
  163. package/src/views/builder/viewer/FieldLabel.jsx +106 -0
  164. package/src/views/builder/viewer/PrintDialog.jsx +481 -0
  165. package/src/views/builder/viewer/ProductionViewer.jsx +80 -5
  166. package/src/views/builder/viewer/Viewer.jsx +106 -8
  167. package/src/views/builder/viewer/ViewerComponentWrapper.jsx +70 -9
  168. package/src/views/builder/viewer/ViewerToolbar.jsx +285 -56
  169. package/src/views/builder/viewer/renderers/AutoCompleteRenderer.jsx +26 -22
  170. package/src/views/builder/viewer/renderers/AvatarGroupRenderer.jsx +112 -0
  171. package/src/views/builder/viewer/renderers/BadgeRenderer.jsx +79 -0
  172. package/src/views/builder/viewer/renderers/BannerRenderer.jsx +62 -0
  173. package/src/views/builder/viewer/renderers/BreadcrumbRenderer.jsx +203 -15
  174. package/src/views/builder/viewer/renderers/BulletChartRenderer.jsx +147 -0
  175. package/src/views/builder/viewer/renderers/ButtonRenderer.jsx +98 -39
  176. package/src/views/builder/viewer/renderers/CardRenderer.jsx +1 -1
  177. package/src/views/builder/viewer/renderers/ChartRenderer.jsx +388 -0
  178. package/src/views/builder/viewer/renderers/CheckboxRenderer.jsx +17 -9
  179. package/src/views/builder/viewer/renderers/ColorScaleRenderer.jsx +300 -0
  180. package/src/views/builder/viewer/renderers/ComparisonBarsRenderer.jsx +133 -0
  181. package/src/views/builder/viewer/renderers/ContainerRenderer.jsx +3 -1
  182. package/src/views/builder/viewer/renderers/CountdownRenderer.jsx +249 -0
  183. package/src/views/builder/viewer/renderers/DataGridRenderer.jsx +380 -0
  184. package/src/views/builder/viewer/renderers/DataTableViewerRenderer.jsx +240 -0
  185. package/src/views/builder/viewer/renderers/DatePickerRenderer.jsx +25 -24
  186. package/src/views/builder/viewer/renderers/DialogRenderer.jsx +327 -0
  187. package/src/views/builder/viewer/renderers/DividerRenderer.jsx +1 -1
  188. package/src/views/builder/viewer/renderers/DonutRenderer.jsx +294 -0
  189. package/src/views/builder/viewer/renderers/DropdownRenderer.jsx +36 -44
  190. package/src/views/builder/viewer/renderers/ExcelUploadRenderer.jsx +639 -0
  191. package/src/views/builder/viewer/renderers/FunnelRenderer.jsx +93 -0
  192. package/src/views/builder/viewer/renderers/GaugeRenderer.jsx +159 -0
  193. package/src/views/builder/viewer/renderers/HeaderRenderer.jsx +31 -9
  194. package/src/views/builder/viewer/renderers/HeatmapGridRenderer.jsx +432 -0
  195. package/src/views/builder/viewer/renderers/IconBoxRenderer.jsx +59 -0
  196. package/src/views/builder/viewer/renderers/ImageRenderer.jsx +1 -1
  197. package/src/views/builder/viewer/renderers/InputRenderer.jsx +75 -18
  198. package/src/views/builder/viewer/renderers/LabelRenderer.jsx +35 -9
  199. package/src/views/builder/viewer/renderers/LayoutCellRenderer.jsx +102 -40
  200. package/src/views/builder/viewer/renderers/LayoutContextMenu.jsx +8 -8
  201. package/src/views/builder/viewer/renderers/LayoutRenderer.jsx +48 -6
  202. package/src/views/builder/viewer/renderers/LinkRenderer.jsx +1 -1
  203. package/src/views/builder/viewer/renderers/MenuRenderer.jsx +2 -2
  204. package/src/views/builder/viewer/renderers/MetricRenderer.jsx +80 -0
  205. package/src/views/builder/viewer/renderers/NumberFormatRenderer.jsx +21 -30
  206. package/src/views/builder/viewer/renderers/PageNumberRenderer.jsx +76 -0
  207. package/src/views/builder/viewer/renderers/PopoverRenderer.jsx +350 -0
  208. package/src/views/builder/viewer/renderers/ProgressCircleRenderer.jsx +1 -1
  209. package/src/views/builder/viewer/renderers/ProgressLineRenderer.jsx +1 -1
  210. package/src/views/builder/viewer/renderers/RadioGroupRenderer.jsx +28 -39
  211. package/src/views/builder/viewer/renderers/RatingRenderer.jsx +80 -0
  212. package/src/views/builder/viewer/renderers/RepeaterRenderer.jsx +297 -38
  213. package/src/views/builder/viewer/renderers/ReportViewerRenderer.jsx +263 -5
  214. package/src/views/builder/viewer/renderers/RichTextRenderer.jsx +60 -66
  215. package/src/views/builder/viewer/renderers/RowActionsCell.jsx +308 -0
  216. package/src/views/builder/viewer/renderers/SignatureRenderer.jsx +33 -62
  217. package/src/views/builder/viewer/renderers/StatusDotRenderer.jsx +75 -0
  218. package/src/views/builder/viewer/renderers/StepStageRenderer.jsx +348 -0
  219. package/src/views/builder/viewer/renderers/TagListRenderer.jsx +115 -0
  220. package/src/views/builder/viewer/renderers/TagPickerRenderer.jsx +31 -45
  221. package/src/views/builder/viewer/renderers/TextAreaRenderer.jsx +25 -18
  222. package/src/views/builder/viewer/renderers/TextRenderer.jsx +7 -1
  223. package/src/views/builder/viewer/renderers/TimePickerRenderer.jsx +25 -24
  224. package/src/views/builder/viewer/renderers/TimelineRenderer.jsx +525 -0
  225. package/src/views/builder/viewer/renderers/ToggleRenderer.jsx +21 -27
  226. package/src/views/builder/viewer/renderers/TreeViewRenderer.jsx +832 -0
  227. package/src/views/builder/viewer/renderers/TrendRenderer.jsx +66 -0
  228. package/src/views/builder/viewer/renderers/ViewRendererRenderer.jsx +315 -0
  229. package/src/views/builder/viewer/renderers/WizardRenderer.jsx +380 -64
  230. package/src/views/builder/viewer/renderers/WizardStepRenderer.jsx +21 -12
  231. package/src/views/builder/viewer/renderers/dataGridComponents.jsx +824 -0
  232. package/src/views/customFilter/CustomFilterDialog.js +1023 -660
  233. package/src/views/customFilter/FixedFilterDialog.js +649 -0
  234. package/src/views/customFilter/SearchFilterDialog.js +248 -0
  235. package/src/views/genericTable/BuilderExpressionParams.js +3 -3
  236. package/src/views/genericTable/ColumnConfiguratorDialog.js +33 -24
  237. package/src/views/genericTable/FixedFilterDialog.js +3 -2
  238. package/src/views/genericTable/FormattingSettingsDialog.js +8 -3
  239. package/src/views/genericTable/SGrid.js +821 -448
  240. package/src/views/genericTable/SearchFilterDialog.js +3 -2
  241. package/src/views/genericTable/cellEditors/autocompleteEditor.js +5 -9
  242. package/src/views/genericTable/convertStringFunctions.js +274 -138
  243. package/src/views/genericTable/statusBar/rowCountStatusBar.js +3 -1
  244. package/src/views/genericTable/updateRefHelpers.js +9 -6
  245. package/src/views/printBuilder/PrintBuilderViewer.jsx +627 -0
  246. package/src/views/printBuilder/PrintPreviewCanvas.jsx +157 -0
  247. package/src/views/rolePermissions/UpdateReportPermissionDialog.js +3 -2
  248. package/src/@core/components/auth/AclGuard.js +0 -55
  249. package/src/@core/components/auth/AuthGuard.js +0 -40
  250. package/src/@core/components/auth/GuestGuard.js +0 -30
  251. package/src/@core/components/custom-inputs/Horizontal.jsx +0 -143
  252. package/src/@core/components/custom-inputs/Image.jsx +0 -78
  253. package/src/@core/components/custom-inputs/Vertical.jsx +0 -113
  254. package/src/@core/components/customizer/index.jsx +0 -470
  255. package/src/@core/components/customizer/styles.module.css +0 -169
  256. package/src/@core/components/mui/Avatar.jsx +0 -41
  257. package/src/@core/components/mui/Badge.jsx +0 -20
  258. package/src/@core/components/mui/IconButton.jsx +0 -74
  259. package/src/@core/components/mui/TabList.jsx +0 -60
  260. package/src/@core/components/option-menu/index.jsx +0 -137
  261. package/src/@core/components/scroll-to-top/index.jsx +0 -43
  262. package/src/@core/components/spinner/index.js +0 -26
  263. package/src/@core/components/window-wrapper/index.js +0 -27
  264. package/src/@core/contexts/settingsContext.jsx +0 -98
  265. package/src/@core/hooks/useBgColor.js +0 -63
  266. package/src/@core/hooks/useImageVariant.js +0 -27
  267. package/src/@core/hooks/useLayoutInit.js +0 -37
  268. package/src/@core/hooks/useObjectCookie.js +0 -18
  269. package/src/@core/hooks/useSettings.jsx +0 -15
  270. package/src/@core/layouts/BlankLayout.js +0 -37
  271. package/src/@core/layouts/BlankLayoutWithAppBar.js +0 -51
  272. package/src/@core/layouts/HorizontalLayout.jsx +0 -151
  273. package/src/@core/layouts/Layout.js +0 -39
  274. package/src/@core/layouts/VerticalLayout.jsx +0 -124
  275. package/src/@core/layouts/components/blank-layout-with-appBar/index.js +0 -115
  276. package/src/@core/layouts/components/horizontal/app-bar-content/index.js +0 -67
  277. package/src/@core/layouts/components/horizontal/navigation/HorizontalNavGroup.js +0 -352
  278. package/src/@core/layouts/components/horizontal/navigation/HorizontalNavItems.js +0 -21
  279. package/src/@core/layouts/components/horizontal/navigation/HorizontalNavLink.js +0 -195
  280. package/src/@core/layouts/components/horizontal/navigation/index.js +0 -31
  281. package/src/@core/layouts/components/shared-components/LanguageDropdown.js +0 -96
  282. package/src/@core/layouts/components/shared-components/ModeToggler.js +0 -32
  283. package/src/@core/layouts/components/shared-components/NotificationDropdown.js +0 -226
  284. package/src/@core/layouts/components/shared-components/UserDropdown.js +0 -177
  285. package/src/@core/layouts/components/shared-components/footer/FooterContent.js +0 -46
  286. package/src/@core/layouts/components/shared-components/footer/index.js +0 -61
  287. package/src/@core/layouts/components/vertical/appBar/index.js +0 -74
  288. package/src/@core/layouts/components/vertical/navigation/Drawer.js +0 -122
  289. package/src/@core/layouts/components/vertical/navigation/VerticalNavGroup.js +0 -435
  290. package/src/@core/layouts/components/vertical/navigation/VerticalNavHeader.js +0 -180
  291. package/src/@core/layouts/components/vertical/navigation/VerticalNavItems.js +0 -26
  292. package/src/@core/layouts/components/vertical/navigation/VerticalNavLink.js +0 -258
  293. package/src/@core/layouts/components/vertical/navigation/VerticalNavSectionTitle.js +0 -102
  294. package/src/@core/layouts/components/vertical/navigation/index.js +0 -169
  295. package/src/@core/layouts/utils.js +0 -69
  296. package/src/@core/styles/Table.module.css +0 -93
  297. package/src/@core/styles/horizontal/menuItemStyles.js +0 -100
  298. package/src/@core/styles/horizontal/menuRootStyles.js +0 -19
  299. package/src/@core/styles/libs/fullcalendar/index.js +0 -461
  300. package/src/@core/styles/libs/keen-slider/index.js +0 -111
  301. package/src/@core/styles/libs/react-apexcharts/index.js +0 -107
  302. package/src/@core/styles/libs/react-cleave/index.js +0 -33
  303. package/src/@core/styles/libs/react-credit-cards/index.js +0 -11
  304. package/src/@core/styles/libs/react-datepicker/index.js +0 -388
  305. package/src/@core/styles/libs/react-draft-wysiwyg/index.js +0 -144
  306. package/src/@core/styles/libs/react-dropzone/index.js +0 -76
  307. package/src/@core/styles/libs/react-hot-toast/index.js +0 -37
  308. package/src/@core/styles/libs/recharts/index.js +0 -47
  309. package/src/@core/styles/stepper.js +0 -103
  310. package/src/@core/styles/vertical/menuItemStyles.js +0 -138
  311. package/src/@core/styles/vertical/menuSectionStyles.js +0 -54
  312. package/src/@core/styles/vertical/navigationCustomStyles.js +0 -62
  313. package/src/@core/svg/ContentCompact.jsx +0 -17
  314. package/src/@core/svg/ContentWide.jsx +0 -17
  315. package/src/@core/svg/DirectionLtr.jsx +0 -93
  316. package/src/@core/svg/DirectionRtl.jsx +0 -93
  317. package/src/@core/svg/LayoutCollapsed.jsx +0 -59
  318. package/src/@core/svg/LayoutHorizontal.jsx +0 -42
  319. package/src/@core/svg/LayoutVertical.jsx +0 -59
  320. package/src/@core/svg/Logo.jsx +0 -76
  321. package/src/@core/svg/SkinBordered.jsx +0 -54
  322. package/src/@core/svg/SkinDefault.jsx +0 -59
  323. package/src/@core/tailwind/plugin.js +0 -78
  324. package/src/@core/theme/ThemeComponent.js +0 -63
  325. package/src/@core/theme/ThemeOptions.js +0 -71
  326. package/src/@core/theme/breakpoints/index.js +0 -11
  327. package/src/@core/theme/colorSchemes.js +0 -326
  328. package/src/@core/theme/customShadows.js +0 -11
  329. package/src/@core/theme/globalStyles.js +0 -81
  330. package/src/@core/theme/index.js +0 -42
  331. package/src/@core/theme/overrides/accordion.js +0 -51
  332. package/src/@core/theme/overrides/accordion.jsx +0 -85
  333. package/src/@core/theme/overrides/alerts.js +0 -110
  334. package/src/@core/theme/overrides/alerts.jsx +0 -180
  335. package/src/@core/theme/overrides/autocomplete.js +0 -14
  336. package/src/@core/theme/overrides/autocomplete.jsx +0 -68
  337. package/src/@core/theme/overrides/avatar.js +0 -38
  338. package/src/@core/theme/overrides/avatars.js +0 -27
  339. package/src/@core/theme/overrides/backdrop.js +0 -22
  340. package/src/@core/theme/overrides/badges.js +0 -16
  341. package/src/@core/theme/overrides/breadcrumbs.js +0 -11
  342. package/src/@core/theme/overrides/button-group.js +0 -84
  343. package/src/@core/theme/overrides/button.js +0 -93
  344. package/src/@core/theme/overrides/buttonGroup.js +0 -9
  345. package/src/@core/theme/overrides/card.js +0 -83
  346. package/src/@core/theme/overrides/checkbox.jsx +0 -95
  347. package/src/@core/theme/overrides/chip.js +0 -72
  348. package/src/@core/theme/overrides/dataGrid.js +0 -114
  349. package/src/@core/theme/overrides/dateTimePicker.js +0 -65
  350. package/src/@core/theme/overrides/dialog.js +0 -120
  351. package/src/@core/theme/overrides/divider.js +0 -13
  352. package/src/@core/theme/overrides/drawer.js +0 -20
  353. package/src/@core/theme/overrides/fab.js +0 -13
  354. package/src/@core/theme/overrides/form-control-label.js +0 -19
  355. package/src/@core/theme/overrides/icon-button.js +0 -145
  356. package/src/@core/theme/overrides/index.js +0 -103
  357. package/src/@core/theme/overrides/input.js +0 -72
  358. package/src/@core/theme/overrides/link.js +0 -9
  359. package/src/@core/theme/overrides/list.js +0 -44
  360. package/src/@core/theme/overrides/menu.js +0 -25
  361. package/src/@core/theme/overrides/pagination.js +0 -41
  362. package/src/@core/theme/overrides/paper.js +0 -9
  363. package/src/@core/theme/overrides/popover.js +0 -16
  364. package/src/@core/theme/overrides/progress.js +0 -38
  365. package/src/@core/theme/overrides/radio.jsx +0 -80
  366. package/src/@core/theme/overrides/rating.js +0 -16
  367. package/src/@core/theme/overrides/rating.jsx +0 -32
  368. package/src/@core/theme/overrides/select.js +0 -19
  369. package/src/@core/theme/overrides/select.jsx +0 -52
  370. package/src/@core/theme/overrides/slider.js +0 -97
  371. package/src/@core/theme/overrides/snackbar.js +0 -19
  372. package/src/@core/theme/overrides/switch.js +0 -73
  373. package/src/@core/theme/overrides/switches.js +0 -25
  374. package/src/@core/theme/overrides/table-pagination.js +0 -39
  375. package/src/@core/theme/overrides/table.js +0 -81
  376. package/src/@core/theme/overrides/tabs.js +0 -30
  377. package/src/@core/theme/overrides/timeline.js +0 -80
  378. package/src/@core/theme/overrides/toggle-button.js +0 -33
  379. package/src/@core/theme/overrides/toggleButton.js +0 -16
  380. package/src/@core/theme/overrides/tooltip.js +0 -21
  381. package/src/@core/theme/overrides/typography.js +0 -13
  382. package/src/@core/theme/palette/index.js +0 -107
  383. package/src/@core/theme/shadows/index.js +0 -61
  384. package/src/@core/theme/shadows.js +0 -12
  385. package/src/@core/theme/spacing/index.js +0 -3
  386. package/src/@core/theme/spacing.js +0 -5
  387. package/src/@core/theme/typography/index.js +0 -65
  388. package/src/@core/theme/typography.js +0 -84
  389. package/src/@core/utils/create-emotion-cache.js +0 -5
  390. package/src/@core/utils/hex-to-rgba.js +0 -11
  391. package/src/@core/utils/serverHelpers.js +0 -45
  392. package/src/@menu/components/RouterLink.jsx +0 -18
  393. package/src/@menu/components/horizontal-menu/HorizontalNav.jsx +0 -88
  394. package/src/@menu/components/horizontal-menu/Menu.jsx +0 -83
  395. package/src/@menu/components/horizontal-menu/MenuButton.jsx +0 -100
  396. package/src/@menu/components/horizontal-menu/MenuItem.jsx +0 -183
  397. package/src/@menu/components/horizontal-menu/SubMenu.jsx +0 -418
  398. package/src/@menu/components/horizontal-menu/SubMenuContent.jsx +0 -41
  399. package/src/@menu/components/horizontal-menu/VerticalNavInHorizontal.jsx +0 -20
  400. package/src/@menu/components/vertical-menu/Menu.jsx +0 -161
  401. package/src/@menu/components/vertical-menu/MenuButton.jsx +0 -95
  402. package/src/@menu/components/vertical-menu/MenuItem.jsx +0 -180
  403. package/src/@menu/components/vertical-menu/MenuSection.jsx +0 -124
  404. package/src/@menu/components/vertical-menu/NavCollapseIcons.jsx +0 -70
  405. package/src/@menu/components/vertical-menu/NavHeader.jsx +0 -39
  406. package/src/@menu/components/vertical-menu/SubMenu.jsx +0 -420
  407. package/src/@menu/components/vertical-menu/SubMenuContent.jsx +0 -101
  408. package/src/@menu/components/vertical-menu/VerticalNav.jsx +0 -216
  409. package/src/@menu/contexts/horizontalNavContext.jsx +0 -29
  410. package/src/@menu/contexts/verticalNavContext.jsx +0 -65
  411. package/src/@menu/defaultConfigs.js +0 -12
  412. package/src/@menu/hooks/useHorizontalMenu.jsx +0 -19
  413. package/src/@menu/hooks/useHorizontalNav.jsx +0 -19
  414. package/src/@menu/hooks/useMediaQuery.jsx +0 -29
  415. package/src/@menu/hooks/useVerticalMenu.jsx +0 -19
  416. package/src/@menu/hooks/useVerticalNav.jsx +0 -19
  417. package/src/@menu/horizontal-menu/index.jsx +0 -8
  418. package/src/@menu/styles/StyledBackdrop.jsx +0 -15
  419. package/src/@menu/styles/StyledMenuIcon.jsx +0 -12
  420. package/src/@menu/styles/StyledMenuLabel.jsx +0 -16
  421. package/src/@menu/styles/StyledMenuPrefix.jsx +0 -10
  422. package/src/@menu/styles/StyledMenuSectionLabel.jsx +0 -21
  423. package/src/@menu/styles/StyledMenuSuffix.jsx +0 -10
  424. package/src/@menu/styles/StyledSubMenuContent.jsx +0 -43
  425. package/src/@menu/styles/horizontal/StyledHorizontalMenu.jsx +0 -13
  426. package/src/@menu/styles/horizontal/StyledHorizontalMenuItem.jsx +0 -26
  427. package/src/@menu/styles/horizontal/StyledHorizontalNav.jsx +0 -11
  428. package/src/@menu/styles/horizontal/StyledHorizontalNavExpandIcon.jsx +0 -33
  429. package/src/@menu/styles/horizontal/StyledHorizontalSubMenuContent.jsx +0 -18
  430. package/src/@menu/styles/horizontal/StyledHorizontalSubMenuContentWrapper.jsx +0 -10
  431. package/src/@menu/styles/horizontal/horizontalUl.module.css +0 -15
  432. package/src/@menu/styles/styles.module.css +0 -5
  433. package/src/@menu/styles/vertical/StyledVerticalMenu.jsx +0 -16
  434. package/src/@menu/styles/vertical/StyledVerticalMenuItem.jsx +0 -28
  435. package/src/@menu/styles/vertical/StyledVerticalMenuSection.jsx +0 -23
  436. package/src/@menu/styles/vertical/StyledVerticalNav.jsx +0 -67
  437. package/src/@menu/styles/vertical/StyledVerticalNavBgColorContainer.jsx +0 -15
  438. package/src/@menu/styles/vertical/StyledVerticalNavContainer.jsx +0 -23
  439. package/src/@menu/styles/vertical/StyledVerticalNavExpandIcon.jsx +0 -25
  440. package/src/@menu/styles/vertical/verticalNavBgImage.module.css +0 -10
  441. package/src/@menu/svg/ChevronRight.jsx +0 -9
  442. package/src/@menu/svg/Close.jsx +0 -12
  443. package/src/@menu/svg/RadioCircle.jsx +0 -12
  444. package/src/@menu/svg/RadioCircleMarked.jsx +0 -13
  445. package/src/@menu/utils/menuClasses.js +0 -44
  446. package/src/@menu/utils/menuUtils.jsx +0 -145
  447. package/src/@menu/vertical-menu/index.jsx +0 -11
  448. package/src/configs/acl.js +0 -115
  449. package/src/configs/auth.js +0 -5
  450. package/src/configs/aws-exports.js +0 -30
  451. package/src/configs/firebase.js +0 -25
  452. package/src/configs/i18n.js +0 -34
  453. package/src/configs/primaryColorConfig.js +0 -35
  454. package/src/configs/themeConfig.js +0 -44
  455. package/src/layouts/UserLayout.js +0 -94
  456. package/src/layouts/UserThemeOptions.js +0 -191
  457. package/src/layouts/components/Direction.js +0 -30
  458. package/src/layouts/components/HtmlTooltip.js +0 -15
  459. package/src/layouts/components/Translations.js +0 -11
  460. package/src/layouts/components/UserDropdown.js +0 -217
  461. package/src/layouts/components/UserIcon.js +0 -40
  462. package/src/layouts/components/acl/Can.js +0 -6
  463. package/src/layouts/components/acl/CanViewNavGroup.js +0 -36
  464. package/src/layouts/components/acl/CanViewNavLink.js +0 -17
  465. package/src/layouts/components/acl/CanViewNavSectionTitle.js +0 -17
  466. package/src/layouts/components/horizontal/AppBarContent.js +0 -39
  467. package/src/layouts/components/horizontal/ServerSideNavItems.js +0 -44
  468. package/src/layouts/components/mui/StepperComps.js +0 -55
  469. package/src/layouts/components/vertical/AppBarContent.js +0 -35
  470. package/src/layouts/components/vertical/ServerSideNavItems.js +0 -44
  471. package/src/libs/ApexCharts.jsx +0 -5
  472. package/src/libs/ReactPlayer.jsx +0 -5
  473. package/src/libs/Recharts.jsx +0 -4
  474. package/src/libs/auth.js +0 -124
  475. package/src/libs/styles/AppFullCalendar.js +0 -505
  476. package/src/libs/styles/AppKeenSlider.js +0 -116
  477. package/src/libs/styles/AppReactApexCharts.jsx +0 -110
  478. package/src/libs/styles/AppReactDatepicker.jsx +0 -470
  479. package/src/libs/styles/AppReactDropzone.js +0 -76
  480. package/src/libs/styles/AppReactToastify.jsx +0 -108
  481. package/src/libs/styles/AppRecharts.js +0 -55
  482. package/src/libs/styles/inputOtp.module.css +0 -39
  483. package/src/libs/styles/tiptapEditor.css +0 -72
  484. package/src/navigation/horizontal/index.js +0 -246
  485. package/src/navigation/vertical/index.js +0 -253
  486. package/src/pages/401.js +0 -70
  487. package/src/pages/404.js +0 -67
  488. package/src/pages/500.js +0 -68
  489. package/src/pages/[slug].js +0 -115
  490. package/src/pages/_document.js +0 -72
  491. package/src/pages/api/navigation/regenerate-registry.js +0 -116
  492. package/src/pages/api/navigation/save.js +0 -218
  493. package/src/pages/authModule/acl/index.js +0 -48
  494. package/src/pages/authModule/forgot-password/index.js +0 -228
  495. package/src/pages/authModule/permissions/rolePermissions/[id]/rolePermissionsUser/index.js +0 -392
  496. package/src/pages/authModule/permissions/rolePermissions/index.js +0 -343
  497. package/src/pages/authModule/permissions/systemPermissions/index.js +0 -354
  498. package/src/pages/authModule/privacy/index.js +0 -721
  499. package/src/pages/authModule/users/index.js +0 -210
  500. package/src/pages/login/index.js +0 -328
  501. package/src/pages/mainHome/index.js +0 -181
  502. package/src/views/builder/inspector/definitions/cell/main.js +0 -4
  503. package/src/views/builder/inspector/definitions/column/main.js +0 -9
  504. package/src/views/builder/inspector/definitions/column-group/main.js +0 -18
  505. package/src/views/builder/inspector/definitions/header-cell/main.js +0 -5
  506. package/src/views/builder/inspector/definitions/table/main.js +0 -9
  507. package/src/views/builder/viewer/renderers/CellRenderer.jsx +0 -71
  508. package/src/views/builder/viewer/renderers/ColumnGroupRenderer.jsx +0 -96
  509. package/src/views/builder/viewer/renderers/ColumnRenderer.jsx +0 -71
  510. package/src/views/builder/viewer/renderers/HeaderCellRenderer.jsx +0 -78
  511. package/src/views/builder/viewer/renderers/TabRenderer.jsx +0 -82
  512. package/src/views/builder/viewer/renderers/TableRenderer.jsx +0 -92
  513. package/src/views/pages/auth/FooterIllustrationsV2.js +0 -40
  514. package/src/views/pages/misc/FooterIllustrations.js +0 -47
  515. package/src/views/pages/misc/muiTable/CustomPagination.js +0 -34
  516. package/src/views/pages/users/UserManageDialog.js +0 -283
  517. package/src/views/pages/users/UserViewPage.js +0 -199
  518. package/src/views/users/AddUserNameDialog.js +0 -162
  519. package/src/views/users/ContactManage.js +0 -449
  520. package/src/views/users/ResetPasswordDialog.js +0 -242
@@ -8,11 +8,11 @@ import CardHeader from "@mui/material/CardHeader";
8
8
  import Grid from "@mui/material/Grid";
9
9
  import {Plus} from "mdi-material-ui";
10
10
  import TAGGrid from "views/genericTable/TAGGrid";
11
- import {SettingsOutlined} from "@mui/icons-material";
11
+ import {SettingsOutlined, AssessmentOutlined} from "@mui/icons-material";
12
12
  import UpdateReportPermissionDialog from "views/rolePermissions/UpdateReportPermissionDialog";
13
13
  import {getReportSession} from 'src/services/helper/reportSessionHelper'
14
- import BlankLayout from "src/@core/layouts/BlankLayout";
15
- import ReportsCard from "src/pages/reportModule/reportBuilder/reportsPermissions";
14
+ import BlankLayout from '../../../../lib/layouts/BlankLayout';
15
+ import ReportsCard from "../reportsPermissions";
16
16
 
17
17
 
18
18
  // make sure you’ve globally included the Alpine theme once in _app.js or your main stylesheet:
@@ -40,7 +40,24 @@ const ReportViewer = (params) => {
40
40
  sessionId,
41
41
  globalParams,
42
42
  isRerender = false,
43
- updateRef
43
+ updateRef,
44
+ // Presentation — render above the toolbar. If title is omitted, the
45
+ // report's own name from builderMetadata.name is used.
46
+ title,
47
+ caption,
48
+ // Page-level toolbar buttons rendered after Filter / Refresh.
49
+ // Built by ReportViewerRenderer with bound onClick handlers.
50
+ viewerActions,
51
+ // nodeId / reportRefs are injected by the UI builder's ReportViewerRenderer.
52
+ // nodeId — the builder schema node ID for this ReportViewer instance
53
+ // reportRefs — the shared registry { [nodeId]: updateRef } for all reports on the page
54
+ nodeId,
55
+ reportRefs,
56
+ // Viewer state — threaded from ReportViewerRenderer for column function scope
57
+ data,
58
+ dataRef,
59
+ openDialog,
60
+ closeDialog,
44
61
  } = params ?? router.query
45
62
  const [isLoading, setIsLoading] = useState(false)
46
63
  const [builderModel, setBuilderModel] = useState(null)
@@ -162,9 +179,8 @@ const ReportViewer = (params) => {
162
179
  return (
163
180
  <Box
164
181
  sx={{
165
- display: 'flex',
182
+ display: 'block',
166
183
  width: '100%',
167
- p: minimized !== true ? 2 : 0,
168
184
  }}
169
185
  >
170
186
  {isLoading ? (
@@ -178,33 +194,72 @@ const ReportViewer = (params) => {
178
194
  <CircularProgress/>
179
195
  </Box>
180
196
  ) : !builderModel ? (
181
- <Box textAlign="center" mt={8}>
182
- <Typography variant="subtitle1" color="text.secondary">
197
+ // ── Empty state ─────────────────────────────────────────────────────
198
+ // Shown when no `id` / `pageId` has resolved yet. In the standalone
199
+ // /report/viewer page this is the persistent "pick a report" state;
200
+ // inside the builder it usually flashes for one render before the
201
+ // model loads.
202
+ <Box
203
+ sx={{
204
+ minHeight: minimized ? 'auto' : '60vh',
205
+ display: 'flex',
206
+ flexDirection: 'column',
207
+ alignItems: 'center',
208
+ justifyContent: 'center',
209
+ gap: 1.5,
210
+ p: 4,
211
+ color: 'text.secondary',
212
+ }}
213
+ >
214
+ <Box
215
+ sx={{
216
+ width: 72,
217
+ height: 72,
218
+ borderRadius: '50%',
219
+ display: 'flex',
220
+ alignItems: 'center',
221
+ justifyContent: 'center',
222
+ bgcolor: 'action.hover',
223
+ color: 'text.disabled',
224
+ mb: 0.5,
225
+ }}
226
+ >
227
+ <AssessmentOutlined sx={{ fontSize: 36 }} />
228
+ </Box>
229
+ <Typography variant='h6' sx={{ fontWeight: 600, color: 'text.primary', textAlign: 'center' }}>
183
230
  No report selected
184
231
  </Typography>
232
+ <Typography variant='body2' sx={{ color: 'text.secondary', textAlign: 'center', maxWidth: 380 }}>
233
+ Pick a report from the list, or pass a <code>pageId</code> / <code>id</code> to load one here.
234
+ </Typography>
185
235
  </Box>
186
236
  ) : (
187
237
  <>
188
- <Box display="flex" gap={1} flexDirection={'column'} sx={{
189
- width: '100%',
190
- backgroundColor: 'white', borderRadius: 2,
191
- boxShadow: minimized !== true && '0 4px 12px rgba(0,0,0,0.08)', // subtle custom shadow
192
- }}>
238
+ <Box display="flex" gap={1} flexDirection={'column'} sx={{ width: '100%' }}>
239
+ {/*
240
+ Studio header only shown on the standalone /report/viewer page
241
+ (noHeader is set by the builder when ReportViewer is embedded as
242
+ a component, which suppresses this row entirely). The title and
243
+ caption are now rendered inside SGrid's toolbar on the same row
244
+ as Filter / Refresh / viewer actions, so this header is just the
245
+ "go to studio" affordance for the standalone page.
246
+ */}
193
247
  {(minimized !== true && noHeader !== true) &&
194
248
  <Box display="flex" justifyContent={'space-between'} alignItems={'center'} gap={1} sx={{p: 2}}>
195
249
  <Typography variant="subtitle1" color="text.secondary">{builderMetadata?.name ?? ""}</Typography>
196
- {/*<Tooltip title={'Studio'}>*/}
197
- {/* <IconButton*/}
198
- {/* size={'small'}*/}
199
- {/* onClick={() => {*/}
200
- {/* router.push({pathname: '/reportModule/reportBuilder', query: {id: id ?? router.query?.id}})*/}
201
- {/* }}*/}
202
- {/* >*/}
203
- {/* <SettingsOutlined color={'primary'}/>*/}
204
- {/* </IconButton>*/}
205
- {/*</Tooltip>*/}
250
+ <Tooltip title={'Studio'}>
251
+ <IconButton
252
+ size={'small'}
253
+ onClick={() => {
254
+ router.push({pathname: '/builders/report', query: {id: id ?? router.query?.id}})
255
+ }}
256
+ >
257
+ <SettingsOutlined color={'primary'}/>
258
+ </IconButton>
259
+ </Tooltip>
206
260
  </Box>}
207
- <Box display={'flex'} alignItems="center" gap={1} width={'100%'}>
261
+
262
+ <Box sx={{width: '100%'}}>
208
263
  <SGrid
209
264
  key={`rv-${payloadVersion}`}
210
265
  minimized={minimized}
@@ -215,6 +270,12 @@ const ReportViewer = (params) => {
215
270
  setOutGridApi={setOutGridApi}
216
271
  externalTimer={externalTimer}
217
272
  actions={actions}
273
+ viewerActions={viewerActions}
274
+ // Toolbar left side. Fall back to the report's own name from
275
+ // builderMetadata so standalone-page views still get a sensible
276
+ // title without explicit configuration.
277
+ title={title ?? builderMetadata?.name}
278
+ caption={caption}
218
279
  reportTitle={builderMetadata?.name}
219
280
  filter={sessionPayload?.externalFilter ?? filter}
220
281
  columnsConfig={columnsConfig ?? []}
@@ -224,7 +285,13 @@ const ReportViewer = (params) => {
224
285
  isRerender={isRerender}
225
286
  // uniqueIdPath={'Id'}
226
287
  // noPurge={true}
227
- updateRef ={updateRef}
288
+ updateRef={updateRef}
289
+ nodeId={nodeId}
290
+ reportRefs={reportRefs}
291
+ data={data}
292
+ dataRef={dataRef}
293
+ openDialog={openDialog}
294
+ closeDialog={closeDialog}
228
295
  />
229
296
  </Box>
230
297
  </Box>
@@ -16,10 +16,8 @@ import ClearIcon from '@mui/icons-material/Clear'
16
16
  import {Endpoints, Services} from 'services/Endpoints'
17
17
  import PermissionsSubjects from 'src/configs/Permissions/PermissionsSubjects.json'
18
18
  import {EditOutlined, SettingsOutlined} from "@mui/icons-material";
19
- import DriverRequestStatus from "services/enums/DriverRequestStatusEnum";
20
19
  import Grid from "@mui/material/Grid";
21
20
  import ReportBuilderTypeEnum from "services/enums/ReportBuilderTypeEnum";
22
- import UpdateRangeProductPriceDialog from "views/productPrice/UpdateRangeProductPriceDialog";
23
21
  import handleChange from "services/helper/handleChange";
24
22
  import UpdateReportPermissionDialog from "views/rolePermissions/UpdateReportPermissionDialog";
25
23
 
@@ -107,7 +105,7 @@ const ReportsList = () => {
107
105
  ))}
108
106
  </Select>
109
107
  </FormControl>
110
- <Button variant="contained" sx={{ml:3}} onClick={() => router.push('/reportModule/reportBuilder')}>
108
+ <Button variant="contained" sx={{ml:3}} onClick={() => router.push('/builders/report')}>
111
109
  New
112
110
  </Button>
113
111
  </Box>
@@ -192,7 +190,7 @@ const ReportsList = () => {
192
190
  size="small"
193
191
  variant="outlined"
194
192
  onClick={() =>
195
- router.push({pathname: '/reportModule/reportBuilder/reportViewer', query: {id: report.id}})
193
+ router.push({pathname: '/builders/report/viewer', query: {id: report.id}})
196
194
  }
197
195
  sx={{flexGrow: 1}} // <-- takes all remaining space
198
196
  >
@@ -202,7 +200,7 @@ const ReportsList = () => {
202
200
  size="small"
203
201
  variant="outlined"
204
202
  onClick={() =>
205
- router.push({pathname: '/reportModule/reportBuilder', query: {id: report.id}})
203
+ router.push({pathname: '/builders/report', query: {id: report.id}})
206
204
  }
207
205
  >
208
206
  <EditOutlined color={'secondary'} fontSize="small"/>
@@ -13,11 +13,10 @@ import {CloudUploadOutline, Delete, DeleteCircle, DotsVerticalCircleOutline, Plu
13
13
  import {useEffect, useState, useContext, useMemo} from 'react'
14
14
  import handleChange from 'src/services/helper/handleChange'
15
15
  import {Avatar, Button, ButtonGroup, Card, CardContent, Checkbox, Dialog, IconButton, Popover} from '@mui/material'
16
- import ReportViewer from "src/pages/reportBuilder/reportViewer";
16
+ import ReportViewer from "../reportViewer";
17
17
  import PermissionsSubjects from "src/configs/Permissions/PermissionsSubjects.json";
18
18
  import {AuthContext} from "context/AuthContext";
19
- import CompanyDeliveryLayout from "src/layouts/CompanyDeliveryLayout";
20
- import BlankLayout from "src/@core/layouts/BlankLayout";
19
+ import BlankLayout from '../../../../lib/layouts/BlankLayout';
21
20
  // ** Utils Import
22
21
 
23
22
  // ** Actions Imports
@@ -1,17 +1,86 @@
1
- import { Box } from '@mui/material'
2
- import BlankLayout from 'src/@core/layouts/BlankLayout'
1
+ import { Box, IconButton, Tooltip } from '@mui/material'
2
+ import { ThemeProvider, CssBaseline } from '@mui/material'
3
+ import BlankLayout from '../../lib/layouts/BlankLayout'
3
4
  import Sidebar from 'views/builder/sidebar/Sidebar'
4
5
  import Viewer from 'views/builder/viewer/Viewer'
5
- import { BuilderProvider, useBuilder } from 'src/context/BuilderContext'
6
+ import { BuilderProvider, useBuilder } from 'context/BuilderContext'
6
7
  import Inspector from 'views/builder/inspector/Inspector'
7
8
  import { useRouter } from 'next/router'
8
9
  import { useEffect, useState } from 'react'
9
10
  import { Endpoints, Services } from 'services/Endpoints'
11
+ import { ChevronLeft, ChevronRight } from '@mui/icons-material'
12
+ import { createTheme } from '@mui/material/styles'
10
13
 
11
- function ViewBuilderContent() {
14
+ // ── Builder themes (inlined to avoid cross-package path resolution issues) ────
15
+ const _STORAGE_KEY = 'rbb:builderThemeMode'
16
+ const BUILDER_THEMES = {
17
+ dark: createTheme({
18
+ palette: {
19
+ mode: 'dark',
20
+ primary: { main: '#9c27b0' },
21
+ secondary: { main: '#f5a623' },
22
+ background: { default: '#141618', paper: '#1e2227' },
23
+ divider: '#3a3f45',
24
+ text: { primary: '#e8eaed', secondary: '#9aa0aa' },
25
+ },
26
+ }),
27
+ light: createTheme({
28
+ palette: {
29
+ mode: 'light',
30
+ primary: { main: '#9c27b0' },
31
+ secondary: { main: '#f5a623' },
32
+ background: { default: '#f0f2f5', paper: '#ffffff' },
33
+ divider: '#dde1e7',
34
+ },
35
+ }),
36
+ }
37
+ function getBuilderThemeMode() {
38
+ try { return localStorage.getItem(_STORAGE_KEY) === 'light' ? 'light' : 'dark' } catch { return 'dark' }
39
+ }
40
+ function saveBuilderThemeMode(mode) {
41
+ try { localStorage.setItem(_STORAGE_KEY, mode) } catch {}
42
+ }
43
+
44
+ const SIDEBAR_WIDTH = 300
45
+ const COLLAPSED_WIDTH = 32
46
+
47
+ function CollapseToggle({ collapsed, onClick, side }) {
48
+ const Icon = side === 'left'
49
+ ? (collapsed ? ChevronRight : ChevronLeft)
50
+ : (collapsed ? ChevronLeft : ChevronRight)
51
+ const label = collapsed ? 'Expand' : 'Collapse'
52
+ return (
53
+ <Tooltip title={label} placement={side === 'left' ? 'right' : 'left'}>
54
+ <IconButton
55
+ size='small'
56
+ onClick={onClick}
57
+ sx={{
58
+ position: 'absolute',
59
+ top: '50%',
60
+ transform: 'translateY(-50%)',
61
+ [side === 'left' ? 'right' : 'left']: -14,
62
+ zIndex: 10,
63
+ width: 28,
64
+ height: 28,
65
+ bgcolor: 'background.paper',
66
+ border: '1px solid',
67
+ borderColor: 'divider',
68
+ borderRadius: '50%',
69
+ '&:hover': { bgcolor: 'action.hover' },
70
+ }}
71
+ >
72
+ <Icon sx={{ fontSize: 16 }} />
73
+ </IconButton>
74
+ </Tooltip>
75
+ )
76
+ }
77
+
78
+ function ViewBuilderContent({ isDark, onToggleTheme }) {
12
79
  const router = useRouter()
13
80
  const { id } = router.query
14
- const { setSchema,setViewMetaData } = useBuilder()
81
+ const { loadSchema, setViewMetaData } = useBuilder()
82
+ const [leftCollapsed, setLeftCollapsed] = useState(false)
83
+ const [rightCollapsed, setRightCollapsed] = useState(false)
15
84
 
16
85
  const handleGetView = async id => {
17
86
  try {
@@ -19,7 +88,9 @@ function ViewBuilderContent() {
19
88
  id: id
20
89
  })
21
90
  if (response) {
22
- setSchema(JSON.parse(response.data.value))
91
+ const parsed = JSON.parse(response.data.value)
92
+ // Backfill dialogs array for schemas saved before the dialogs feature
93
+ loadSchema({ dialogs: [], ...parsed })
23
94
  setViewMetaData({
24
95
  id: response.data.id,
25
96
  title: response.data.title,
@@ -31,7 +102,6 @@ function ViewBuilderContent() {
31
102
  }
32
103
  } catch (error) {
33
104
  console.error(error)
34
- } finally {
35
105
  }
36
106
  }
37
107
 
@@ -40,54 +110,69 @@ function ViewBuilderContent() {
40
110
  }, [id])
41
111
 
42
112
  return (
43
- <Box
44
- sx={{
45
- height: '100vh',
46
- display: 'flex',
47
- overflow: 'hidden',
48
- }}
49
- >
113
+ <Box sx={{ height: '100vh', display: 'flex', overflow: 'hidden', bgcolor: 'background.default' }}>
114
+
50
115
  {/* LEFT SIDEBAR */}
51
116
  <Box
52
117
  sx={{
53
- width: 300,
54
- minWidth: 220,
55
- borderRight: '1px solid #3a3f45'
118
+ position: 'relative',
119
+ width: leftCollapsed ? COLLAPSED_WIDTH : SIDEBAR_WIDTH,
120
+ minWidth: leftCollapsed ? COLLAPSED_WIDTH : SIDEBAR_WIDTH,
121
+ borderRight: '1px solid',
122
+ borderColor: 'divider',
123
+ transition: 'width 0.2s ease, min-width 0.2s ease',
124
+ overflow: 'hidden',
56
125
  }}
57
126
  >
58
- <Sidebar />
127
+ <Box sx={{ width: SIDEBAR_WIDTH, height: '100%', opacity: leftCollapsed ? 0 : 1, transition: 'opacity 0.15s ease', pointerEvents: leftCollapsed ? 'none' : 'auto' }}>
128
+ <Sidebar />
129
+ </Box>
130
+ <CollapseToggle collapsed={leftCollapsed} onClick={() => setLeftCollapsed(v => !v)} side='left' />
59
131
  </Box>
60
132
 
61
133
  {/* CENTER VIEWER */}
62
- <Box
63
- sx={{
64
- flex: 1,
65
- overflow: 'auto'
66
- }}
67
- >
68
- <Viewer />
134
+ <Box sx={{ flex: 1, overflow: 'auto', bgcolor: 'background.default' }}>
135
+ <Viewer isDark={isDark} onToggleTheme={onToggleTheme} />
69
136
  </Box>
70
137
 
71
138
  {/* RIGHT INSPECTOR */}
72
139
  <Box
73
140
  sx={{
74
- width: 300,
75
- minWidth: 260,
76
- borderLeft: '1px solid #3a3f45',
141
+ position: 'relative',
142
+ width: rightCollapsed ? COLLAPSED_WIDTH : SIDEBAR_WIDTH,
143
+ minWidth: rightCollapsed ? COLLAPSED_WIDTH : SIDEBAR_WIDTH,
144
+ borderLeft: '1px solid',
145
+ borderColor: 'divider',
146
+ transition: 'width 0.2s ease, min-width 0.2s ease',
147
+ overflow: 'hidden',
77
148
  }}
78
149
  >
79
- <Inspector />
150
+ <Box sx={{ width: SIDEBAR_WIDTH, height: '100%', opacity: rightCollapsed ? 0 : 1, transition: 'opacity 0.15s ease', pointerEvents: rightCollapsed ? 'none' : 'auto' }}>
151
+ <Inspector />
152
+ </Box>
153
+ <CollapseToggle collapsed={rightCollapsed} onClick={() => setRightCollapsed(v => !v)} side='right' />
80
154
  </Box>
155
+
81
156
  </Box>
82
157
  )
83
158
  }
84
159
 
85
160
  export default function ViewBuilder() {
161
+ const [themeMode, setThemeMode] = useState(() => getBuilderThemeMode())
162
+
163
+ const toggleTheme = () => {
164
+ const next = themeMode === 'dark' ? 'light' : 'dark'
165
+ setThemeMode(next)
166
+ saveBuilderThemeMode(next)
167
+ }
86
168
 
87
169
  return (
88
- <BuilderProvider>
89
- <ViewBuilderContent />
90
- </BuilderProvider>
170
+ <ThemeProvider theme={BUILDER_THEMES[themeMode]}>
171
+ <CssBaseline />
172
+ <BuilderProvider>
173
+ <ViewBuilderContent isDark={themeMode === 'dark'} onToggleTheme={toggleTheme} />
174
+ </BuilderProvider>
175
+ </ThemeProvider>
91
176
  )
92
177
  }
93
178
 
@@ -59,7 +59,7 @@ const ViewsList = () => {
59
59
  </Grid>
60
60
  <Grid item size={4}>
61
61
  <Box sx={{ display: 'flex',justifyContent: 'flex-end' }}>
62
- <Button variant='contained' sx={{ ml: 3 }} onClick={() => router.push('/viewBuilder/')}>
62
+ <Button variant='contained' sx={{ ml: 3 }} onClick={() => router.push('/builders/ui')}>
63
63
  New
64
64
  </Button>
65
65
  </Box>
@@ -113,7 +113,7 @@ const ViewsList = () => {
113
113
  <Button
114
114
  size='small'
115
115
  variant='outlined'
116
- onClick={() => router.push({ pathname: '/viewBuilder/viewPage', query: { viewId: view.viewId } })}
116
+ onClick={() => router.push(`/viewer/${view.viewId}`)}
117
117
  sx={{ flexGrow: 1 }} // <-- takes all remaining space
118
118
  >
119
119
  Open
@@ -121,7 +121,7 @@ const ViewsList = () => {
121
121
  <IconButton
122
122
  size='small'
123
123
  variant='outlined'
124
- onClick={() => router.push({ pathname: '/viewBuilder', query: { id: view.id } })}
124
+ onClick={() => router.push({ pathname: '/builders/ui', query: { id: view.id } })}
125
125
  >
126
126
  <EditOutlined color={'secondary'} fontSize='small' />
127
127
  </IconButton>
@@ -26,7 +26,8 @@ export default function ViewPage() {
26
26
  })
27
27
 
28
28
  if (response && response.data) {
29
- setSchema(JSON.parse(response.data.value))
29
+ const parsed = JSON.parse(response.data.value)
30
+ setSchema({ dialogs: [], ...parsed })
30
31
  setViewMetaData({
31
32
  id: response.data.id,
32
33
  title: response.data.title,
@@ -4,71 +4,42 @@ import { resolveURL, getAccessToken } from './config'
4
4
  import toast from 'react-hot-toast'
5
5
 
6
6
  export default async function DeleteService(endpoint, showToast, data, params) {
7
- const accessToken = getAccessToken()
8
- let response = { status: 'Error', message: '' }
9
- let result = null
10
- let currentParams = {
11
- ...params,
12
- ...(endpoint.DataType == DataTypes.Params ? { ...data } : {})
13
- }
14
-
15
- if (!data) return
16
- const url = resolveURL(endpoint)
7
+ try {
8
+ const accessToken = getAccessToken()
9
+ const url = resolveURL(endpoint)
17
10
 
18
- const axiosConfig = {
19
- method: 'delete',
20
- headers: {
21
- Authorization: `Bearer ${accessToken}`,
22
- 'Content-Type': endpoint.ContentType
23
- },
24
- params: {
25
- ...currentParams
11
+ const currentParams = {
12
+ ...params,
13
+ ...(endpoint.DataType === DataTypes.Params ? { ...data } : {})
26
14
  }
27
- }
28
-
29
- try {
30
- await Axios.delete(url, axiosConfig)
31
- .then(r => {
32
- result = r.data
33
- response = {
34
- status: 'Success',
35
- message: r.data.message ? r.data.message : 'تم الحفظ بنجاح'
36
- }
37
- })
38
- .catch(r => {
39
15
 
40
- if (r.response && r.response.status == 400) {
41
- response = {
42
- status: 'Error',
43
- message: typeof r.response.data == 'string' ? r.response.data : r.response.data.title
44
- // message: "حدث خطأ اثناء الحفظ",
45
- }
46
- } else if (r.response && (r.response.status == 401 || r.response.status == 403)) {
47
- response = {
48
- status: 'Error',
49
- message: 'غير مخول'
50
- }
51
- } else {
16
+ const r = await Axios.delete(url, {
17
+ headers: {
18
+ Authorization: `Bearer ${accessToken}`,
19
+ 'Content-Type': endpoint.ContentType
20
+ },
21
+ params: currentParams
22
+ })
52
23
 
53
- response = {
54
- status: 'Error',
55
- message: 'حدث خطأ في الاتصال مع الخادم'
56
- }
57
- }
58
- })
59
- } catch (error) {
60
- response = {
61
- status: 'Error',
62
- message: 'حدث خطأ في الخادم'
63
- }
64
- } finally {
65
24
  if (showToast) {
66
- if (response.status == 'Success') {
67
- toast.success(response.message)
68
- } else {
69
- toast.error(response.message)
70
- }
25
+ toast.success(r.data?.message || 'تم الحذف بنجاح')
71
26
  }
27
+ return r.data
28
+ } catch (err) {
29
+ console.log(err)
30
+ const message = resolveErrorMessage(err)
31
+ toast.error(message)
32
+ return null
72
33
  }
73
- return result
34
+ }
35
+
36
+ function resolveErrorMessage(err) {
37
+ const status = err?.response?.status
38
+ const data = err?.response?.data
39
+
40
+ if (status === 400) return typeof data === 'string' ? data : data?.title || 'طلب غير صحيح'
41
+ if (status === 401 || status === 403) return 'غير مخول'
42
+ if (status >= 500) return 'حدث خطأ في الخادم'
43
+ if (err?.message) return err.message
44
+ return 'حدث خطأ في الاتصال مع الخادم'
74
45
  }
@@ -0,0 +1,42 @@
1
+ import { ContentTypes, DataTypes } from '../ContentTypes'
2
+
3
+ export const PrintLayoutEndpoints = {
4
+ Post: {
5
+ Add: {
6
+ group: 'PrintLayout', name: 'Add',
7
+ URL: 'UiBuilderModule/PrintLayout',
8
+ ContentType: ContentTypes.Json,
9
+ DataType: DataTypes.Body
10
+ }
11
+ },
12
+ Put: {
13
+ Update: {
14
+ group: 'PrintLayout', name: 'Update',
15
+ URL: 'UiBuilderModule/PrintLayout',
16
+ ContentType: ContentTypes.Json,
17
+ DataType: DataTypes.Body
18
+ }
19
+ },
20
+ Get: {
21
+ GetAll: {
22
+ group: 'PrintLayout', name: 'GetAll',
23
+ URL: 'UiBuilderModule/PrintLayout/GetAll',
24
+ ContentType: ContentTypes.Json,
25
+ DataType: DataTypes.Params
26
+ },
27
+ GetById: {
28
+ group: 'PrintLayout', name: 'GetById',
29
+ URL: 'UiBuilderModule/PrintLayout/GetById',
30
+ ContentType: ContentTypes.Json,
31
+ DataType: DataTypes.Params
32
+ }
33
+ },
34
+ Delete: {
35
+ Delete: {
36
+ group: 'PrintLayout', name: 'Delete',
37
+ URL: 'UiBuilderModule/PrintLayout',
38
+ ContentType: ContentTypes.Json,
39
+ DataType: DataTypes.Params
40
+ }
41
+ }
42
+ }
@@ -4,43 +4,43 @@ export const ReportBuilderEndpoints = {
4
4
  Post: {
5
5
  GetModels: {
6
6
  group: 'ReportBuilder', name: 'GetModels',
7
- URL: 'ReportingModule/ReportBuilder/GetTypes',
7
+ URL: 'ReportBuilder/GetTypes',
8
8
  ContentType: ContentTypes.Json,
9
9
  DataType: DataTypes.Params
10
10
  },
11
11
  GetModelFields: {
12
12
  group: 'ReportBuilder', name: 'GetModelFields',
13
- URL: 'ReportingModule/ReportBuilder/GetModelFields',
13
+ URL: 'ReportBuilder/GetModelFields',
14
14
  ContentType: ContentTypes.Json,
15
15
  DataType: DataTypes.Params
16
16
  },
17
17
  GenericGet: {
18
18
  group: 'ReportBuilder', name: 'GenericGet',
19
- URL: 'ReportingModule/ReportBuilder/GenericGet',
19
+ URL: 'ReportBuilder/GenericGet',
20
20
  ContentType: ContentTypes.Json,
21
21
  DataType: DataTypes.Body
22
22
  },
23
23
  GetRawColumns: {
24
24
  group: 'ReportBuilder', name: 'GetRawColumns',
25
- URL: 'ReportingModule/ReportBuilder/GetRawColumns',
25
+ URL: 'ReportBuilder/GetRawColumns',
26
26
  ContentType: ContentTypes.Json,
27
27
  DataType: DataTypes.Body
28
28
  },
29
29
  GetAllReports: {
30
30
  group: 'ReportBuilder', name: 'GetAllReports',
31
- URL: 'ReportingModule/ReportBuilder/GetAllReports',
31
+ URL: 'ReportBuilder/GetAllReports',
32
32
  ContentType: ContentTypes.Json,
33
33
  DataType: DataTypes.Body
34
34
  },
35
35
  GetReportDetails: {
36
36
  group: 'ReportBuilder', name: 'GetReportDetails',
37
- URL: 'ReportingModule/ReportBuilder/GetReportDetails',
37
+ URL: 'ReportBuilder/GetReportDetails',
38
38
  ContentType: ContentTypes.Json,
39
39
  DataType: DataTypes.Body
40
40
  },
41
41
  AddUpdate: {
42
42
  group: 'ReportBuilder', name: 'AddUpdate',
43
- URL: 'ReportingModule/ReportBuilder/AddUpdate',
43
+ URL: 'ReportBuilder/AddUpdate',
44
44
  ContentType: ContentTypes.Json,
45
45
  DataType: DataTypes.Body
46
46
  },