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.
Files changed (513) hide show
  1. package/README.md +211 -0
  2. package/next.config.js +19 -48
  3. package/package.json +39 -85
  4. package/src/context/BuilderContext.jsx +134 -6
  5. package/src/context/SystemContext.js +2 -2
  6. package/src/hooks/useGlobalStore.js +36 -0
  7. package/src/hooks/useTimerEngine.js +54 -0
  8. package/src/lib/index.js +11 -3
  9. package/src/lib/layouts/BlankLayout.jsx +13 -0
  10. package/src/lib/providers/RoboByteFrontBuilderProvider.jsx +61 -7
  11. package/src/lib/themes/builderTheme.js +41 -0
  12. package/src/pages/_app.js +32 -134
  13. package/src/pages/api/ai.js +87 -0
  14. package/src/pages/builders/report/index.js +1 -0
  15. package/src/pages/builders/report/list/index.js +1 -0
  16. package/src/pages/builders/report/viewer/index.js +1 -0
  17. package/src/pages/index.js +88 -37
  18. package/src/pages/printBuilder/index.jsx +263 -0
  19. package/src/pages/printBuilder/layouts/index.jsx +298 -0
  20. package/src/pages/reportModule/reportBuilder/index.js +8 -6
  21. package/src/pages/reportModule/reportBuilder/reportViewer/index.js +33 -22
  22. package/src/pages/reportModule/reportBuilder/reports/index.js +3 -5
  23. package/src/pages/reportModule/reportBuilder/reportsPermissions/index.js +2 -3
  24. package/src/pages/viewBuilder/index.jsx +117 -32
  25. package/src/pages/viewBuilder/views/index.js +3 -3
  26. package/src/pages/viewer/[id]/index.js +2 -1
  27. package/src/services/DeleteService.js +31 -60
  28. package/src/services/Endpoints/PrintLayoutEndpoints.js +42 -0
  29. package/src/services/Endpoints.js +2 -0
  30. package/src/services/GetService.js +33 -54
  31. package/src/services/PatchService.js +38 -65
  32. package/src/services/PostService.js +37 -63
  33. package/src/services/UpdateService.js +39 -65
  34. package/src/services/builderHelper/actionExecutor.js +141 -25
  35. package/src/services/builderHelper/builderHelper.js +92 -0
  36. package/src/services/builderHelper/colorSchema.js +95 -0
  37. package/src/services/builderHelper/iconResolver.js +50 -0
  38. package/src/services/builderHelper/jsExecutor.js +212 -46
  39. package/src/services/builderHelper/nodeFactory.js +32 -15
  40. package/src/services/builderHelper/numberFormat.js +123 -0
  41. package/src/services/builderHelper/resolveProps.js +73 -4
  42. package/src/services/builderHelper/thresholdEngine.js +77 -0
  43. package/src/services/builderHelper/tree.js +31 -0
  44. package/src/services/components/agGridAutoComplete.js +5 -9
  45. package/src/services/config.js +9 -1
  46. package/src/services/globalStore.js +80 -0
  47. package/src/services/helper/multiSelectEditor.js +5 -9
  48. package/src/services/helper/multiSelectEditorByBuilder.js +5 -9
  49. package/src/services/reportData/fetchReportData.js +69 -28
  50. package/src/services/routerRef.js +35 -0
  51. package/src/views/ConfirmDialog.js +2 -2
  52. package/src/views/builder/JSEditor.js +105 -107
  53. package/src/views/builder/inspector/Inspector.jsx +6 -9
  54. package/src/views/builder/inspector/Tabs/ComponentActionsTab.jsx +7 -13
  55. package/src/views/builder/inspector/Tabs/MainTab.jsx +143 -25
  56. package/src/views/builder/inspector/Tabs/RulesTab.jsx +9 -24
  57. package/src/views/builder/inspector/Tabs/StyleTab.jsx +9 -24
  58. package/src/views/builder/inspector/definitions/autocomplete/main.js +4 -6
  59. package/src/views/builder/inspector/definitions/banner/actions.js +7 -0
  60. package/src/views/builder/inspector/definitions/banner/main.js +22 -0
  61. package/src/views/builder/inspector/definitions/banner/rules.js +1 -0
  62. package/src/views/builder/inspector/definitions/banner/style.js +1 -0
  63. package/src/views/builder/inspector/definitions/breadcrumb/main.js +43 -6
  64. package/src/views/builder/inspector/definitions/button/main.js +11 -12
  65. package/src/views/builder/inspector/definitions/button/style.js +18 -30
  66. package/src/views/builder/inspector/definitions/checkbox/actions.js +3 -1
  67. package/src/views/builder/inspector/definitions/checkbox/main.js +4 -6
  68. package/src/views/builder/inspector/definitions/common/main.js +13 -2
  69. package/src/views/builder/inspector/definitions/dataGrid/main.js +23 -0
  70. package/src/views/builder/inspector/definitions/dataTableViewer/main.js +46 -0
  71. package/src/views/builder/inspector/definitions/datepicker/actions.js +3 -1
  72. package/src/views/builder/inspector/definitions/datepicker/main.js +6 -14
  73. package/src/views/builder/inspector/definitions/dialog/main.js +36 -0
  74. package/src/views/builder/inspector/definitions/dropdown/main.js +5 -8
  75. package/src/views/builder/inspector/definitions/excelUpload/actions.js +23 -0
  76. package/src/views/builder/inspector/definitions/excelUpload/main.js +17 -0
  77. package/src/views/builder/inspector/definitions/excelUpload/rules.js +1 -0
  78. package/src/views/builder/inspector/definitions/excelUpload/style.js +45 -0
  79. package/src/views/builder/inspector/definitions/header/main.js +10 -1
  80. package/src/views/builder/inspector/definitions/index.js +106 -19
  81. package/src/views/builder/inspector/definitions/input/actions.js +4 -1
  82. package/src/views/builder/inspector/definitions/input/main.js +20 -11
  83. package/src/views/builder/inspector/definitions/kpi/avatarGroup.js +22 -0
  84. package/src/views/builder/inspector/definitions/kpi/badge.js +17 -0
  85. package/src/views/builder/inspector/definitions/kpi/bulletChart.js +47 -0
  86. package/src/views/builder/inspector/definitions/kpi/chart.js +55 -0
  87. package/src/views/builder/inspector/definitions/kpi/colorScale.js +60 -0
  88. package/src/views/builder/inspector/definitions/kpi/comparisonBars.js +41 -0
  89. package/src/views/builder/inspector/definitions/kpi/countdown.js +46 -0
  90. package/src/views/builder/inspector/definitions/kpi/donut.js +51 -0
  91. package/src/views/builder/inspector/definitions/kpi/funnel.js +25 -0
  92. package/src/views/builder/inspector/definitions/kpi/gauge.js +39 -0
  93. package/src/views/builder/inspector/definitions/kpi/heatmapGrid.js +96 -0
  94. package/src/views/builder/inspector/definitions/kpi/iconBox.js +20 -0
  95. package/src/views/builder/inspector/definitions/kpi/metric.js +45 -0
  96. package/src/views/builder/inspector/definitions/kpi/rating.js +27 -0
  97. package/src/views/builder/inspector/definitions/kpi/statusDot.js +18 -0
  98. package/src/views/builder/inspector/definitions/kpi/stepStage.js +65 -0
  99. package/src/views/builder/inspector/definitions/kpi/tagList.js +32 -0
  100. package/src/views/builder/inspector/definitions/kpi/timeline.js +80 -0
  101. package/src/views/builder/inspector/definitions/kpi/trend.js +20 -0
  102. package/src/views/builder/inspector/definitions/label/main.js +10 -1
  103. package/src/views/builder/inspector/definitions/layout/main.js +27 -3
  104. package/src/views/builder/inspector/definitions/number/main.js +6 -14
  105. package/src/views/builder/inspector/definitions/pageNumber/main.js +21 -0
  106. package/src/views/builder/inspector/definitions/popover/main.js +71 -0
  107. package/src/views/builder/inspector/definitions/radio/main.js +5 -8
  108. package/src/views/builder/inspector/definitions/repeater/main.js +31 -0
  109. package/src/views/builder/inspector/definitions/reportViewer/main.js +15 -1
  110. package/src/views/builder/inspector/definitions/richtext/main.js +5 -8
  111. package/src/views/builder/inspector/definitions/signature/main.js +4 -1
  112. package/src/views/builder/inspector/definitions/tag/main.js +5 -8
  113. package/src/views/builder/inspector/definitions/textarea/actions.js +4 -1
  114. package/src/views/builder/inspector/definitions/textarea/main.js +5 -7
  115. package/src/views/builder/inspector/definitions/time/main.js +5 -8
  116. package/src/views/builder/inspector/definitions/toggle/main.js +5 -19
  117. package/src/views/builder/inspector/definitions/treeView/main.js +61 -0
  118. package/src/views/builder/inspector/definitions/viewRenderer/main.js +53 -0
  119. package/src/views/builder/inspector/definitions/wizard/main.js +68 -0
  120. package/src/views/builder/inspector/definitions/wizard-step/main.js +25 -0
  121. package/src/views/builder/inspector/fields/ActionsConfigEditor.jsx +426 -0
  122. package/src/views/builder/inspector/fields/ColorSchemaField.jsx +140 -0
  123. package/src/views/builder/inspector/fields/ColumnFunctionEditor.jsx +238 -0
  124. package/src/views/builder/inspector/fields/ColumnMappingEditor.jsx +105 -0
  125. package/src/views/builder/inspector/fields/ColumnsConfigEditor.jsx +506 -0
  126. package/src/views/builder/inspector/fields/DonutRingsEditorField.jsx +337 -0
  127. package/src/views/builder/inspector/fields/ExtraColsEditor.jsx +618 -0
  128. package/src/views/builder/inspector/fields/FunctionHelpPopover.jsx +295 -0
  129. package/src/views/builder/inspector/fields/IconEditor.jsx +64 -0
  130. package/src/views/builder/inspector/fields/KpiActionField.jsx +223 -0
  131. package/src/views/builder/inspector/fields/MarkersEditorField.jsx +173 -0
  132. package/src/views/builder/inspector/fields/SelectEditor.jsx +9 -5
  133. package/src/views/builder/inspector/fields/SeriesEditorField.jsx +363 -0
  134. package/src/views/builder/inspector/fields/TableColumnsEditor.jsx +104 -0
  135. package/src/views/builder/inspector/fields/ThresholdsEditor.jsx +247 -0
  136. package/src/views/builder/inspector/fields/ValueFunctionsRefPanel.jsx +217 -0
  137. package/src/views/builder/inspector/fields/columnEditorShared.jsx +217 -0
  138. package/src/views/builder/sidebar/Sidebar.jsx +4 -2
  139. package/src/views/builder/sidebar/SidebarTabs.jsx +28 -17
  140. package/src/views/builder/sidebar/tabs/ActionsTab.jsx +7 -3
  141. package/src/views/builder/sidebar/tabs/AiTab/AiPreviewDialog.jsx +193 -0
  142. package/src/views/builder/sidebar/tabs/AiTab/aiProvider.js +49 -0
  143. package/src/views/builder/sidebar/tabs/AiTab/index.jsx +409 -0
  144. package/src/views/builder/sidebar/tabs/AiTab/schemaTransformer.js +102 -0
  145. package/src/views/builder/sidebar/tabs/AiTab/schemaValidator.js +64 -0
  146. package/src/views/builder/sidebar/tabs/AiTab/systemPrompt.js +1151 -0
  147. package/src/views/builder/sidebar/tabs/Components/ComponentsTab.jsx +31 -31
  148. package/src/views/builder/sidebar/tabs/Components/componentCatalog.js +43 -21
  149. package/src/views/builder/sidebar/tabs/Components/printComponentCatalog.js +81 -0
  150. package/src/views/builder/sidebar/tabs/TimersTab.jsx +338 -0
  151. package/src/views/builder/sidebar/tabs/TreeTab.jsx +13 -4
  152. package/src/views/builder/sidebar/tabs/ViewTab.jsx +1 -1
  153. package/src/views/builder/viewer/AdornedLabel.jsx +82 -0
  154. package/src/views/builder/viewer/ComponentRenderer.jsx +98 -24
  155. package/src/views/builder/viewer/DialogsZone.jsx +259 -0
  156. package/src/views/builder/viewer/FieldLabel.jsx +106 -0
  157. package/src/views/builder/viewer/PrintDialog.jsx +481 -0
  158. package/src/views/builder/viewer/ProductionViewer.jsx +80 -5
  159. package/src/views/builder/viewer/Viewer.jsx +106 -8
  160. package/src/views/builder/viewer/ViewerComponentWrapper.jsx +61 -4
  161. package/src/views/builder/viewer/ViewerToolbar.jsx +273 -59
  162. package/src/views/builder/viewer/renderers/AutoCompleteRenderer.jsx +26 -22
  163. package/src/views/builder/viewer/renderers/AvatarGroupRenderer.jsx +112 -0
  164. package/src/views/builder/viewer/renderers/BadgeRenderer.jsx +79 -0
  165. package/src/views/builder/viewer/renderers/BannerRenderer.jsx +62 -0
  166. package/src/views/builder/viewer/renderers/BreadcrumbRenderer.jsx +203 -15
  167. package/src/views/builder/viewer/renderers/BulletChartRenderer.jsx +147 -0
  168. package/src/views/builder/viewer/renderers/ButtonRenderer.jsx +98 -39
  169. package/src/views/builder/viewer/renderers/CardRenderer.jsx +1 -1
  170. package/src/views/builder/viewer/renderers/ChartRenderer.jsx +388 -0
  171. package/src/views/builder/viewer/renderers/CheckboxRenderer.jsx +17 -9
  172. package/src/views/builder/viewer/renderers/ColorScaleRenderer.jsx +300 -0
  173. package/src/views/builder/viewer/renderers/ComparisonBarsRenderer.jsx +133 -0
  174. package/src/views/builder/viewer/renderers/ContainerRenderer.jsx +3 -1
  175. package/src/views/builder/viewer/renderers/CountdownRenderer.jsx +249 -0
  176. package/src/views/builder/viewer/renderers/DataGridRenderer.jsx +380 -0
  177. package/src/views/builder/viewer/renderers/DataTableViewerRenderer.jsx +240 -0
  178. package/src/views/builder/viewer/renderers/DatePickerRenderer.jsx +25 -24
  179. package/src/views/builder/viewer/renderers/DialogRenderer.jsx +327 -0
  180. package/src/views/builder/viewer/renderers/DividerRenderer.jsx +1 -1
  181. package/src/views/builder/viewer/renderers/DonutRenderer.jsx +294 -0
  182. package/src/views/builder/viewer/renderers/DropdownRenderer.jsx +36 -44
  183. package/src/views/builder/viewer/renderers/ExcelUploadRenderer.jsx +639 -0
  184. package/src/views/builder/viewer/renderers/FunnelRenderer.jsx +93 -0
  185. package/src/views/builder/viewer/renderers/GaugeRenderer.jsx +159 -0
  186. package/src/views/builder/viewer/renderers/HeaderRenderer.jsx +31 -9
  187. package/src/views/builder/viewer/renderers/HeatmapGridRenderer.jsx +432 -0
  188. package/src/views/builder/viewer/renderers/IconBoxRenderer.jsx +59 -0
  189. package/src/views/builder/viewer/renderers/ImageRenderer.jsx +1 -1
  190. package/src/views/builder/viewer/renderers/InputRenderer.jsx +75 -18
  191. package/src/views/builder/viewer/renderers/LabelRenderer.jsx +35 -9
  192. package/src/views/builder/viewer/renderers/LayoutCellRenderer.jsx +102 -40
  193. package/src/views/builder/viewer/renderers/LayoutContextMenu.jsx +8 -8
  194. package/src/views/builder/viewer/renderers/LayoutRenderer.jsx +48 -6
  195. package/src/views/builder/viewer/renderers/LinkRenderer.jsx +1 -1
  196. package/src/views/builder/viewer/renderers/MenuRenderer.jsx +2 -2
  197. package/src/views/builder/viewer/renderers/MetricRenderer.jsx +80 -0
  198. package/src/views/builder/viewer/renderers/NumberFormatRenderer.jsx +21 -30
  199. package/src/views/builder/viewer/renderers/PageNumberRenderer.jsx +76 -0
  200. package/src/views/builder/viewer/renderers/PopoverRenderer.jsx +350 -0
  201. package/src/views/builder/viewer/renderers/ProgressCircleRenderer.jsx +1 -1
  202. package/src/views/builder/viewer/renderers/ProgressLineRenderer.jsx +1 -1
  203. package/src/views/builder/viewer/renderers/RadioGroupRenderer.jsx +28 -39
  204. package/src/views/builder/viewer/renderers/RatingRenderer.jsx +80 -0
  205. package/src/views/builder/viewer/renderers/RepeaterRenderer.jsx +297 -38
  206. package/src/views/builder/viewer/renderers/ReportViewerRenderer.jsx +219 -5
  207. package/src/views/builder/viewer/renderers/RichTextRenderer.jsx +60 -66
  208. package/src/views/builder/viewer/renderers/RowActionsCell.jsx +308 -0
  209. package/src/views/builder/viewer/renderers/SignatureRenderer.jsx +33 -62
  210. package/src/views/builder/viewer/renderers/StatusDotRenderer.jsx +75 -0
  211. package/src/views/builder/viewer/renderers/StepStageRenderer.jsx +348 -0
  212. package/src/views/builder/viewer/renderers/TagListRenderer.jsx +115 -0
  213. package/src/views/builder/viewer/renderers/TagPickerRenderer.jsx +31 -45
  214. package/src/views/builder/viewer/renderers/TextAreaRenderer.jsx +25 -18
  215. package/src/views/builder/viewer/renderers/TextRenderer.jsx +7 -1
  216. package/src/views/builder/viewer/renderers/TimePickerRenderer.jsx +25 -24
  217. package/src/views/builder/viewer/renderers/TimelineRenderer.jsx +525 -0
  218. package/src/views/builder/viewer/renderers/ToggleRenderer.jsx +21 -27
  219. package/src/views/builder/viewer/renderers/TreeViewRenderer.jsx +832 -0
  220. package/src/views/builder/viewer/renderers/TrendRenderer.jsx +66 -0
  221. package/src/views/builder/viewer/renderers/ViewRendererRenderer.jsx +315 -0
  222. package/src/views/builder/viewer/renderers/WizardRenderer.jsx +380 -64
  223. package/src/views/builder/viewer/renderers/WizardStepRenderer.jsx +21 -12
  224. package/src/views/builder/viewer/renderers/dataGridComponents.jsx +824 -0
  225. package/src/views/customFilter/CustomFilterDialog.js +1023 -660
  226. package/src/views/customFilter/FixedFilterDialog.js +649 -0
  227. package/src/views/customFilter/SearchFilterDialog.js +248 -0
  228. package/src/views/genericTable/BuilderExpressionParams.js +3 -3
  229. package/src/views/genericTable/ColumnConfiguratorDialog.js +33 -24
  230. package/src/views/genericTable/FixedFilterDialog.js +3 -2
  231. package/src/views/genericTable/FormattingSettingsDialog.js +8 -3
  232. package/src/views/genericTable/SGrid.js +198 -97
  233. package/src/views/genericTable/SearchFilterDialog.js +3 -2
  234. package/src/views/genericTable/cellEditors/autocompleteEditor.js +5 -9
  235. package/src/views/genericTable/convertStringFunctions.js +274 -138
  236. package/src/views/genericTable/statusBar/rowCountStatusBar.js +3 -1
  237. package/src/views/genericTable/updateRefHelpers.js +9 -6
  238. package/src/views/printBuilder/PrintBuilderViewer.jsx +607 -0
  239. package/src/views/printBuilder/PrintPreviewCanvas.jsx +157 -0
  240. package/src/views/rolePermissions/UpdateReportPermissionDialog.js +3 -2
  241. package/src/@core/components/auth/AclGuard.js +0 -55
  242. package/src/@core/components/auth/AuthGuard.js +0 -40
  243. package/src/@core/components/auth/GuestGuard.js +0 -30
  244. package/src/@core/components/custom-inputs/Horizontal.jsx +0 -143
  245. package/src/@core/components/custom-inputs/Image.jsx +0 -78
  246. package/src/@core/components/custom-inputs/Vertical.jsx +0 -113
  247. package/src/@core/components/customizer/index.jsx +0 -470
  248. package/src/@core/components/customizer/styles.module.css +0 -169
  249. package/src/@core/components/mui/Avatar.jsx +0 -41
  250. package/src/@core/components/mui/Badge.jsx +0 -20
  251. package/src/@core/components/mui/IconButton.jsx +0 -74
  252. package/src/@core/components/mui/TabList.jsx +0 -60
  253. package/src/@core/components/option-menu/index.jsx +0 -137
  254. package/src/@core/components/scroll-to-top/index.jsx +0 -43
  255. package/src/@core/components/spinner/index.js +0 -26
  256. package/src/@core/components/window-wrapper/index.js +0 -27
  257. package/src/@core/contexts/settingsContext.jsx +0 -98
  258. package/src/@core/hooks/useBgColor.js +0 -63
  259. package/src/@core/hooks/useImageVariant.js +0 -27
  260. package/src/@core/hooks/useLayoutInit.js +0 -37
  261. package/src/@core/hooks/useObjectCookie.js +0 -18
  262. package/src/@core/hooks/useSettings.jsx +0 -15
  263. package/src/@core/layouts/BlankLayout.js +0 -37
  264. package/src/@core/layouts/BlankLayoutWithAppBar.js +0 -51
  265. package/src/@core/layouts/HorizontalLayout.jsx +0 -151
  266. package/src/@core/layouts/Layout.js +0 -39
  267. package/src/@core/layouts/VerticalLayout.jsx +0 -124
  268. package/src/@core/layouts/components/blank-layout-with-appBar/index.js +0 -115
  269. package/src/@core/layouts/components/horizontal/app-bar-content/index.js +0 -67
  270. package/src/@core/layouts/components/horizontal/navigation/HorizontalNavGroup.js +0 -352
  271. package/src/@core/layouts/components/horizontal/navigation/HorizontalNavItems.js +0 -21
  272. package/src/@core/layouts/components/horizontal/navigation/HorizontalNavLink.js +0 -195
  273. package/src/@core/layouts/components/horizontal/navigation/index.js +0 -31
  274. package/src/@core/layouts/components/shared-components/LanguageDropdown.js +0 -96
  275. package/src/@core/layouts/components/shared-components/ModeToggler.js +0 -32
  276. package/src/@core/layouts/components/shared-components/NotificationDropdown.js +0 -226
  277. package/src/@core/layouts/components/shared-components/UserDropdown.js +0 -177
  278. package/src/@core/layouts/components/shared-components/footer/FooterContent.js +0 -46
  279. package/src/@core/layouts/components/shared-components/footer/index.js +0 -61
  280. package/src/@core/layouts/components/vertical/appBar/index.js +0 -74
  281. package/src/@core/layouts/components/vertical/navigation/Drawer.js +0 -122
  282. package/src/@core/layouts/components/vertical/navigation/VerticalNavGroup.js +0 -435
  283. package/src/@core/layouts/components/vertical/navigation/VerticalNavHeader.js +0 -180
  284. package/src/@core/layouts/components/vertical/navigation/VerticalNavItems.js +0 -26
  285. package/src/@core/layouts/components/vertical/navigation/VerticalNavLink.js +0 -258
  286. package/src/@core/layouts/components/vertical/navigation/VerticalNavSectionTitle.js +0 -102
  287. package/src/@core/layouts/components/vertical/navigation/index.js +0 -169
  288. package/src/@core/layouts/utils.js +0 -69
  289. package/src/@core/styles/Table.module.css +0 -93
  290. package/src/@core/styles/horizontal/menuItemStyles.js +0 -100
  291. package/src/@core/styles/horizontal/menuRootStyles.js +0 -19
  292. package/src/@core/styles/libs/fullcalendar/index.js +0 -461
  293. package/src/@core/styles/libs/keen-slider/index.js +0 -111
  294. package/src/@core/styles/libs/react-apexcharts/index.js +0 -107
  295. package/src/@core/styles/libs/react-cleave/index.js +0 -33
  296. package/src/@core/styles/libs/react-credit-cards/index.js +0 -11
  297. package/src/@core/styles/libs/react-datepicker/index.js +0 -388
  298. package/src/@core/styles/libs/react-draft-wysiwyg/index.js +0 -144
  299. package/src/@core/styles/libs/react-dropzone/index.js +0 -76
  300. package/src/@core/styles/libs/react-hot-toast/index.js +0 -37
  301. package/src/@core/styles/libs/recharts/index.js +0 -47
  302. package/src/@core/styles/stepper.js +0 -103
  303. package/src/@core/styles/vertical/menuItemStyles.js +0 -138
  304. package/src/@core/styles/vertical/menuSectionStyles.js +0 -54
  305. package/src/@core/styles/vertical/navigationCustomStyles.js +0 -62
  306. package/src/@core/svg/ContentCompact.jsx +0 -17
  307. package/src/@core/svg/ContentWide.jsx +0 -17
  308. package/src/@core/svg/DirectionLtr.jsx +0 -93
  309. package/src/@core/svg/DirectionRtl.jsx +0 -93
  310. package/src/@core/svg/LayoutCollapsed.jsx +0 -59
  311. package/src/@core/svg/LayoutHorizontal.jsx +0 -42
  312. package/src/@core/svg/LayoutVertical.jsx +0 -59
  313. package/src/@core/svg/Logo.jsx +0 -76
  314. package/src/@core/svg/SkinBordered.jsx +0 -54
  315. package/src/@core/svg/SkinDefault.jsx +0 -59
  316. package/src/@core/tailwind/plugin.js +0 -78
  317. package/src/@core/theme/ThemeComponent.js +0 -63
  318. package/src/@core/theme/ThemeOptions.js +0 -71
  319. package/src/@core/theme/breakpoints/index.js +0 -11
  320. package/src/@core/theme/colorSchemes.js +0 -326
  321. package/src/@core/theme/customShadows.js +0 -11
  322. package/src/@core/theme/globalStyles.js +0 -81
  323. package/src/@core/theme/index.js +0 -42
  324. package/src/@core/theme/overrides/accordion.js +0 -51
  325. package/src/@core/theme/overrides/accordion.jsx +0 -85
  326. package/src/@core/theme/overrides/alerts.js +0 -110
  327. package/src/@core/theme/overrides/alerts.jsx +0 -180
  328. package/src/@core/theme/overrides/autocomplete.js +0 -14
  329. package/src/@core/theme/overrides/autocomplete.jsx +0 -68
  330. package/src/@core/theme/overrides/avatar.js +0 -38
  331. package/src/@core/theme/overrides/avatars.js +0 -27
  332. package/src/@core/theme/overrides/backdrop.js +0 -22
  333. package/src/@core/theme/overrides/badges.js +0 -16
  334. package/src/@core/theme/overrides/breadcrumbs.js +0 -11
  335. package/src/@core/theme/overrides/button-group.js +0 -84
  336. package/src/@core/theme/overrides/button.js +0 -93
  337. package/src/@core/theme/overrides/buttonGroup.js +0 -9
  338. package/src/@core/theme/overrides/card.js +0 -83
  339. package/src/@core/theme/overrides/checkbox.jsx +0 -95
  340. package/src/@core/theme/overrides/chip.js +0 -72
  341. package/src/@core/theme/overrides/dataGrid.js +0 -114
  342. package/src/@core/theme/overrides/dateTimePicker.js +0 -65
  343. package/src/@core/theme/overrides/dialog.js +0 -120
  344. package/src/@core/theme/overrides/divider.js +0 -13
  345. package/src/@core/theme/overrides/drawer.js +0 -20
  346. package/src/@core/theme/overrides/fab.js +0 -13
  347. package/src/@core/theme/overrides/form-control-label.js +0 -19
  348. package/src/@core/theme/overrides/icon-button.js +0 -145
  349. package/src/@core/theme/overrides/index.js +0 -103
  350. package/src/@core/theme/overrides/input.js +0 -72
  351. package/src/@core/theme/overrides/link.js +0 -9
  352. package/src/@core/theme/overrides/list.js +0 -44
  353. package/src/@core/theme/overrides/menu.js +0 -25
  354. package/src/@core/theme/overrides/pagination.js +0 -41
  355. package/src/@core/theme/overrides/paper.js +0 -9
  356. package/src/@core/theme/overrides/popover.js +0 -16
  357. package/src/@core/theme/overrides/progress.js +0 -38
  358. package/src/@core/theme/overrides/radio.jsx +0 -80
  359. package/src/@core/theme/overrides/rating.js +0 -16
  360. package/src/@core/theme/overrides/rating.jsx +0 -32
  361. package/src/@core/theme/overrides/select.js +0 -19
  362. package/src/@core/theme/overrides/select.jsx +0 -52
  363. package/src/@core/theme/overrides/slider.js +0 -97
  364. package/src/@core/theme/overrides/snackbar.js +0 -19
  365. package/src/@core/theme/overrides/switch.js +0 -73
  366. package/src/@core/theme/overrides/switches.js +0 -25
  367. package/src/@core/theme/overrides/table-pagination.js +0 -39
  368. package/src/@core/theme/overrides/table.js +0 -81
  369. package/src/@core/theme/overrides/tabs.js +0 -30
  370. package/src/@core/theme/overrides/timeline.js +0 -80
  371. package/src/@core/theme/overrides/toggle-button.js +0 -33
  372. package/src/@core/theme/overrides/toggleButton.js +0 -16
  373. package/src/@core/theme/overrides/tooltip.js +0 -21
  374. package/src/@core/theme/overrides/typography.js +0 -13
  375. package/src/@core/theme/palette/index.js +0 -107
  376. package/src/@core/theme/shadows/index.js +0 -61
  377. package/src/@core/theme/shadows.js +0 -12
  378. package/src/@core/theme/spacing/index.js +0 -3
  379. package/src/@core/theme/spacing.js +0 -5
  380. package/src/@core/theme/typography/index.js +0 -65
  381. package/src/@core/theme/typography.js +0 -84
  382. package/src/@core/utils/create-emotion-cache.js +0 -5
  383. package/src/@core/utils/hex-to-rgba.js +0 -11
  384. package/src/@core/utils/serverHelpers.js +0 -45
  385. package/src/@menu/components/RouterLink.jsx +0 -18
  386. package/src/@menu/components/horizontal-menu/HorizontalNav.jsx +0 -88
  387. package/src/@menu/components/horizontal-menu/Menu.jsx +0 -83
  388. package/src/@menu/components/horizontal-menu/MenuButton.jsx +0 -100
  389. package/src/@menu/components/horizontal-menu/MenuItem.jsx +0 -183
  390. package/src/@menu/components/horizontal-menu/SubMenu.jsx +0 -418
  391. package/src/@menu/components/horizontal-menu/SubMenuContent.jsx +0 -41
  392. package/src/@menu/components/horizontal-menu/VerticalNavInHorizontal.jsx +0 -20
  393. package/src/@menu/components/vertical-menu/Menu.jsx +0 -161
  394. package/src/@menu/components/vertical-menu/MenuButton.jsx +0 -95
  395. package/src/@menu/components/vertical-menu/MenuItem.jsx +0 -180
  396. package/src/@menu/components/vertical-menu/MenuSection.jsx +0 -124
  397. package/src/@menu/components/vertical-menu/NavCollapseIcons.jsx +0 -70
  398. package/src/@menu/components/vertical-menu/NavHeader.jsx +0 -39
  399. package/src/@menu/components/vertical-menu/SubMenu.jsx +0 -420
  400. package/src/@menu/components/vertical-menu/SubMenuContent.jsx +0 -101
  401. package/src/@menu/components/vertical-menu/VerticalNav.jsx +0 -216
  402. package/src/@menu/contexts/horizontalNavContext.jsx +0 -29
  403. package/src/@menu/contexts/verticalNavContext.jsx +0 -65
  404. package/src/@menu/defaultConfigs.js +0 -12
  405. package/src/@menu/hooks/useHorizontalMenu.jsx +0 -19
  406. package/src/@menu/hooks/useHorizontalNav.jsx +0 -19
  407. package/src/@menu/hooks/useMediaQuery.jsx +0 -29
  408. package/src/@menu/hooks/useVerticalMenu.jsx +0 -19
  409. package/src/@menu/hooks/useVerticalNav.jsx +0 -19
  410. package/src/@menu/horizontal-menu/index.jsx +0 -8
  411. package/src/@menu/styles/StyledBackdrop.jsx +0 -15
  412. package/src/@menu/styles/StyledMenuIcon.jsx +0 -12
  413. package/src/@menu/styles/StyledMenuLabel.jsx +0 -16
  414. package/src/@menu/styles/StyledMenuPrefix.jsx +0 -10
  415. package/src/@menu/styles/StyledMenuSectionLabel.jsx +0 -21
  416. package/src/@menu/styles/StyledMenuSuffix.jsx +0 -10
  417. package/src/@menu/styles/StyledSubMenuContent.jsx +0 -43
  418. package/src/@menu/styles/horizontal/StyledHorizontalMenu.jsx +0 -13
  419. package/src/@menu/styles/horizontal/StyledHorizontalMenuItem.jsx +0 -26
  420. package/src/@menu/styles/horizontal/StyledHorizontalNav.jsx +0 -11
  421. package/src/@menu/styles/horizontal/StyledHorizontalNavExpandIcon.jsx +0 -33
  422. package/src/@menu/styles/horizontal/StyledHorizontalSubMenuContent.jsx +0 -18
  423. package/src/@menu/styles/horizontal/StyledHorizontalSubMenuContentWrapper.jsx +0 -10
  424. package/src/@menu/styles/horizontal/horizontalUl.module.css +0 -15
  425. package/src/@menu/styles/styles.module.css +0 -5
  426. package/src/@menu/styles/vertical/StyledVerticalMenu.jsx +0 -16
  427. package/src/@menu/styles/vertical/StyledVerticalMenuItem.jsx +0 -28
  428. package/src/@menu/styles/vertical/StyledVerticalMenuSection.jsx +0 -23
  429. package/src/@menu/styles/vertical/StyledVerticalNav.jsx +0 -67
  430. package/src/@menu/styles/vertical/StyledVerticalNavBgColorContainer.jsx +0 -15
  431. package/src/@menu/styles/vertical/StyledVerticalNavContainer.jsx +0 -23
  432. package/src/@menu/styles/vertical/StyledVerticalNavExpandIcon.jsx +0 -25
  433. package/src/@menu/styles/vertical/verticalNavBgImage.module.css +0 -10
  434. package/src/@menu/svg/ChevronRight.jsx +0 -9
  435. package/src/@menu/svg/Close.jsx +0 -12
  436. package/src/@menu/svg/RadioCircle.jsx +0 -12
  437. package/src/@menu/svg/RadioCircleMarked.jsx +0 -13
  438. package/src/@menu/utils/menuClasses.js +0 -44
  439. package/src/@menu/utils/menuUtils.jsx +0 -145
  440. package/src/@menu/vertical-menu/index.jsx +0 -11
  441. package/src/configs/acl.js +0 -115
  442. package/src/configs/auth.js +0 -5
  443. package/src/configs/aws-exports.js +0 -30
  444. package/src/configs/firebase.js +0 -25
  445. package/src/configs/i18n.js +0 -34
  446. package/src/configs/primaryColorConfig.js +0 -35
  447. package/src/configs/themeConfig.js +0 -44
  448. package/src/layouts/UserLayout.js +0 -94
  449. package/src/layouts/UserThemeOptions.js +0 -191
  450. package/src/layouts/components/Direction.js +0 -30
  451. package/src/layouts/components/HtmlTooltip.js +0 -15
  452. package/src/layouts/components/Translations.js +0 -11
  453. package/src/layouts/components/UserDropdown.js +0 -217
  454. package/src/layouts/components/UserIcon.js +0 -40
  455. package/src/layouts/components/acl/Can.js +0 -6
  456. package/src/layouts/components/acl/CanViewNavGroup.js +0 -36
  457. package/src/layouts/components/acl/CanViewNavLink.js +0 -17
  458. package/src/layouts/components/acl/CanViewNavSectionTitle.js +0 -17
  459. package/src/layouts/components/horizontal/AppBarContent.js +0 -39
  460. package/src/layouts/components/horizontal/ServerSideNavItems.js +0 -44
  461. package/src/layouts/components/mui/StepperComps.js +0 -55
  462. package/src/layouts/components/vertical/AppBarContent.js +0 -35
  463. package/src/layouts/components/vertical/ServerSideNavItems.js +0 -44
  464. package/src/libs/ApexCharts.jsx +0 -5
  465. package/src/libs/ReactPlayer.jsx +0 -5
  466. package/src/libs/Recharts.jsx +0 -4
  467. package/src/libs/auth.js +0 -124
  468. package/src/libs/styles/AppFullCalendar.js +0 -505
  469. package/src/libs/styles/AppKeenSlider.js +0 -116
  470. package/src/libs/styles/AppReactApexCharts.jsx +0 -110
  471. package/src/libs/styles/AppReactDatepicker.jsx +0 -470
  472. package/src/libs/styles/AppReactDropzone.js +0 -76
  473. package/src/libs/styles/AppReactToastify.jsx +0 -108
  474. package/src/libs/styles/AppRecharts.js +0 -55
  475. package/src/libs/styles/inputOtp.module.css +0 -39
  476. package/src/libs/styles/tiptapEditor.css +0 -72
  477. package/src/navigation/horizontal/index.js +0 -246
  478. package/src/navigation/vertical/index.js +0 -253
  479. package/src/pages/401.js +0 -70
  480. package/src/pages/404.js +0 -67
  481. package/src/pages/500.js +0 -68
  482. package/src/pages/[slug].js +0 -115
  483. package/src/pages/_document.js +0 -72
  484. package/src/pages/api/navigation/regenerate-registry.js +0 -116
  485. package/src/pages/api/navigation/save.js +0 -218
  486. package/src/pages/authModule/acl/index.js +0 -48
  487. package/src/pages/authModule/forgot-password/index.js +0 -228
  488. package/src/pages/authModule/permissions/rolePermissions/[id]/rolePermissionsUser/index.js +0 -392
  489. package/src/pages/authModule/permissions/rolePermissions/index.js +0 -343
  490. package/src/pages/authModule/permissions/systemPermissions/index.js +0 -354
  491. package/src/pages/authModule/privacy/index.js +0 -721
  492. package/src/pages/authModule/users/index.js +0 -210
  493. package/src/pages/login/index.js +0 -328
  494. package/src/pages/mainHome/index.js +0 -181
  495. package/src/views/builder/inspector/definitions/cell/main.js +0 -4
  496. package/src/views/builder/inspector/definitions/column/main.js +0 -9
  497. package/src/views/builder/inspector/definitions/column-group/main.js +0 -18
  498. package/src/views/builder/inspector/definitions/header-cell/main.js +0 -5
  499. package/src/views/builder/inspector/definitions/table/main.js +0 -9
  500. package/src/views/builder/viewer/renderers/CellRenderer.jsx +0 -71
  501. package/src/views/builder/viewer/renderers/ColumnGroupRenderer.jsx +0 -96
  502. package/src/views/builder/viewer/renderers/ColumnRenderer.jsx +0 -71
  503. package/src/views/builder/viewer/renderers/HeaderCellRenderer.jsx +0 -78
  504. package/src/views/builder/viewer/renderers/TabRenderer.jsx +0 -82
  505. package/src/views/builder/viewer/renderers/TableRenderer.jsx +0 -92
  506. package/src/views/pages/auth/FooterIllustrationsV2.js +0 -40
  507. package/src/views/pages/misc/FooterIllustrations.js +0 -47
  508. package/src/views/pages/misc/muiTable/CustomPagination.js +0 -34
  509. package/src/views/pages/users/UserManageDialog.js +0 -283
  510. package/src/views/pages/users/UserViewPage.js +0 -199
  511. package/src/views/users/AddUserNameDialog.js +0 -162
  512. package/src/views/users/ContactManage.js +0 -449
  513. package/src/views/users/ResetPasswordDialog.js +0 -242
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Shared threshold evaluation engine.
3
+ *
4
+ * A threshold rule:
5
+ * { operator: '<' | '<=' | '>' | '>=' | '==' | '!=' | 'between',
6
+ * value: number,
7
+ * value2: number, // only used for 'between'
8
+ * color: string, // MUI palette key or CSS color
9
+ * label: string, // optional override label
10
+ * bg: string, // optional background override
11
+ * }
12
+ *
13
+ * evaluateThreshold returns the first matching rule (or null).
14
+ * resolveColor maps a MUI palette key to a CSS color.
15
+ */
16
+
17
+ const MUI_COLOR_MAP = {
18
+ // semantic
19
+ error: { color: '#d32f2f', bg: '#ffebee' },
20
+ warning: { color: '#e65100', bg: '#fff3e0' },
21
+ success: { color: '#2e7d32', bg: '#e8f5e9' },
22
+ info: { color: '#0277bd', bg: '#e1f5fe' },
23
+ primary: { color: '#1565c0', bg: '#e3f2fd' },
24
+ secondary:{ color: '#6a1b9a', bg: '#f3e5f5' },
25
+ // extras
26
+ purple: { color: '#7b1fa2', bg: '#f3e5f5' },
27
+ pink: { color: '#c2185b', bg: '#fce4ec' },
28
+ teal: { color: '#00695c', bg: '#e0f2f1' },
29
+ cyan: { color: '#00838f', bg: '#e0f7fa' },
30
+ orange: { color: '#e64a19', bg: '#fbe9e7' },
31
+ indigo: { color: '#283593', bg: '#e8eaf6' },
32
+ default: { color: 'inherit', bg: 'transparent' },
33
+ }
34
+
35
+ /** Resolve a color string: MUI key → { color, bg } or pass-through. */
36
+ export function resolveMuiColor(key) {
37
+ return MUI_COLOR_MAP[key] ?? { color: key ?? 'inherit', bg: 'transparent' }
38
+ }
39
+
40
+ /** Evaluate a value against a threshold list. Returns the first matching rule or null. */
41
+ export function evaluateThreshold(value, thresholds) {
42
+ if (!Array.isArray(thresholds) || !thresholds.length) return null
43
+ const v = Number(value)
44
+ for (const rule of thresholds) {
45
+ if (matches(v, rule)) return rule
46
+ }
47
+ return null
48
+ }
49
+
50
+ function matches(v, rule) {
51
+ const a = Number(rule.value)
52
+ const b = Number(rule.value2)
53
+ switch (rule.operator) {
54
+ case '<': return v < a
55
+ case '<=': return v <= a
56
+ case '>': return v > a
57
+ case '>=': return v >= a
58
+ case '==': return v === a
59
+ case '!=': return v !== a
60
+ case 'between': return v >= a && v <= b
61
+ default: return false
62
+ }
63
+ }
64
+
65
+ /**
66
+ * Convenience: returns { color, bg } for a value+thresholds pair.
67
+ * Falls back to { color: 'inherit', bg: 'transparent' }.
68
+ */
69
+ export function thresholdColors(value, thresholds) {
70
+ const rule = evaluateThreshold(value, thresholds)
71
+ if (!rule) return { color: 'inherit', bg: 'transparent' }
72
+ const base = resolveMuiColor(rule.color)
73
+ return {
74
+ color: rule.colorOverride ?? base.color,
75
+ bg: rule.bg ?? base.bg,
76
+ }
77
+ }
@@ -10,6 +10,37 @@ export function findNode(node, targetId) {
10
10
  return null
11
11
  }
12
12
 
13
+ /**
14
+ * Find a node anywhere in the schema — searches both root tree and dialogs array.
15
+ * Returns { node, location: 'root' | 'dialog', dialogId? }
16
+ */
17
+ export function findNodeAnywhere(schema, targetId) {
18
+ const inRoot = findNode(schema.root, targetId)
19
+ if (inRoot) return { node: inRoot, location: 'root' }
20
+
21
+ for (const dialog of schema.dialogs ?? []) {
22
+ const inDialog = findNode(dialog, targetId)
23
+ if (inDialog) return { node: inDialog, location: 'dialog', dialogId: dialog.id }
24
+ }
25
+
26
+ return { node: null, location: null }
27
+ }
28
+
29
+ /**
30
+ * Update a node anywhere in the schema — patches root tree or the matching dialog.
31
+ */
32
+ export function updateNodeAnywhere(schema, nodeId, patch, location, dialogId) {
33
+ if (location === 'dialog') {
34
+ return {
35
+ ...schema,
36
+ dialogs: (schema.dialogs ?? []).map(d =>
37
+ d.id === dialogId ? updateNodeInTree(d, nodeId, patch) : d
38
+ ),
39
+ }
40
+ }
41
+ return { ...schema, root: updateNodeInTree(schema.root, nodeId, patch) }
42
+ }
43
+
13
44
  export function removeFromTree(node, targetId) {
14
45
  if (!node.children) return node
15
46
 
@@ -9,10 +9,10 @@ import React, {
9
9
  import Autocomplete from '@mui/material/Autocomplete';
10
10
  import TextField from '@mui/material/TextField';
11
11
  import Chip from '@mui/material/Chip';
12
- import {SettingsConsumer} from 'src/@core/contexts/settingsContext';
13
- import ThemeComponent from 'src/@core/theme/ThemeComponent';
12
+ import { ThemeProvider, createTheme, lighten, styled } from '@mui/material/styles';
14
13
  import moment from 'moment';
15
- import {lighten, styled} from '@mui/material/styles';
14
+
15
+ const defaultTheme = createTheme();
16
16
  import izColors from 'src/configs/izColors.json';
17
17
 
18
18
  // Utility for nested value access
@@ -112,9 +112,7 @@ const AutocompleteEditor = (props, ref) => {
112
112
  };
113
113
 
114
114
  return (
115
- <SettingsConsumer>
116
- {({settings}) => (
117
- <ThemeComponent settings={settings}>
115
+ <ThemeProvider theme={defaultTheme}>
118
116
  <Autocomplete
119
117
  multiple={!isSingle}
120
118
  size="small"
@@ -163,9 +161,7 @@ const AutocompleteEditor = (props, ref) => {
163
161
  ))
164
162
  }
165
163
  />
166
- </ThemeComponent>
167
- )}
168
- </SettingsConsumer>
164
+ </ThemeProvider>
169
165
  );
170
166
  };
171
167
 
@@ -39,9 +39,17 @@ const _config = {
39
39
 
40
40
  // Default token reader — reads the key Mazajk (and most host apps) use.
41
41
  // Override via configureRoboByte({ getAccessToken }) or via the provider prop.
42
+ //
43
+ // Resolution order:
44
+ // 1. localStorage 'accessToken' (normal auth flow — takes priority)
45
+ // 2. NEXT_PUBLIC_DEV_ACCESS_TOKEN env var (dev convenience, .env.local only)
42
46
  getAccessToken: () => {
43
47
  if (typeof window === 'undefined') return null
44
- return localStorage.getItem('accessToken') ?? null
48
+ return (
49
+ localStorage.getItem('accessToken') ??
50
+ (process.env.NODE_ENV === 'development' ? process.env.NEXT_PUBLIC_DEV_ACCESS_TOKEN : null) ??
51
+ null
52
+ )
45
53
  },
46
54
 
47
55
  // Default user reader — parses the JSON object Mazajk stores in localStorage.
@@ -0,0 +1,80 @@
1
+ /**
2
+ * globalStore — cross-route reactive data store.
3
+ *
4
+ * Lives at module scope so it survives Next.js client-side navigations.
5
+ * Any page, dialog, renderer, or Calculation function can read and write it.
6
+ *
7
+ * ── In action code (Calculation functions) ───────────────────────────────────
8
+ *
9
+ * // Read current global state
10
+ * console.log(globalData.selectedUser)
11
+ *
12
+ * // Write (like setData but global — persists across route changes)
13
+ * setGlobalData(prev => ({ ...prev, selectedUser: clickedItem }))
14
+ * setGlobalData({ theme: 'dark', locale: 'en' }) // full replace also works
15
+ *
16
+ * // Then navigate — globalData.selectedUser is still there on the next page
17
+ * router.push('/user-detail')
18
+ *
19
+ * ── In React components ───────────────────────────────────────────────────────
20
+ *
21
+ * import { useGlobalStore } from 'src/hooks/useGlobalStore'
22
+ *
23
+ * function MyRenderer() {
24
+ * const { globalData, setGlobalData } = useGlobalStore()
25
+ * return <div>{globalData.selectedUser?.name}</div>
26
+ * }
27
+ */
28
+
29
+ // ── Internal state ────────────────────────────────────────────────────────────
30
+
31
+ let _state = {}
32
+ const _listeners = new Set()
33
+
34
+ // ── Public API ────────────────────────────────────────────────────────────────
35
+
36
+ /**
37
+ * Returns a snapshot of the current global state.
38
+ * This is synchronous and safe to call from anywhere, including jsExecutor.
39
+ * @returns {object}
40
+ */
41
+ export function getGlobalData() {
42
+ return _state
43
+ }
44
+
45
+ /**
46
+ * Updates the global state.
47
+ * Accepts either a plain object (shallow-merged) or an updater function
48
+ * that receives the previous state and returns the next state.
49
+ *
50
+ * All subscribed React components are notified synchronously so they
51
+ * re-render with the new values.
52
+ *
53
+ * @param {object | ((prev: object) => object)} updater
54
+ */
55
+ export function setGlobalData(updater) {
56
+ const next = typeof updater === 'function' ? updater(_state) : updater
57
+ _state = next && typeof next === 'object' ? { ..._state, ...next } : _state
58
+ _listeners.forEach(fn => fn(_state))
59
+ }
60
+
61
+ /**
62
+ * Subscribe to global state changes.
63
+ * Returns an unsubscribe function — call it in useEffect cleanup.
64
+ *
65
+ * @param {(state: object) => void} listener
66
+ * @returns {() => void} unsubscribe
67
+ */
68
+ export function subscribeGlobal(listener) {
69
+ _listeners.add(listener)
70
+ return () => _listeners.delete(listener)
71
+ }
72
+
73
+ /**
74
+ * Resets the global store to an empty object.
75
+ * Useful for logout / session reset.
76
+ */
77
+ export function resetGlobalData() {
78
+ _state = {}
79
+ _listeners.forEach(fn => fn(_state))
80
+ }
@@ -3,12 +3,12 @@ import Autocomplete from '@mui/material/Autocomplete';
3
3
  import TextField from '@mui/material/TextField';
4
4
  import Chip from '@mui/material/Chip';
5
5
  import { createRoot } from 'react-dom/client';
6
- import ThemeComponent from 'src/@core/theme/ThemeComponent';
6
+ import { ThemeProvider, createTheme, darken, lighten, styled } from "@mui/material/styles";
7
7
  import moment from 'moment';
8
8
  import Typography from "@mui/material/Typography";
9
- import { darken, lighten, styled } from "@mui/material/styles";
10
9
  import izColors from "src/configs/izColors.json"
11
- import { SettingsConsumer } from "src/@core/contexts/settingsContext";
10
+
11
+ const defaultTheme = createTheme();
12
12
  const AutocompleteEditor = React.memo(
13
13
  forwardRef((props, ref) => {
14
14
  // Initialize as an array for multi-selection.
@@ -122,9 +122,7 @@ const AutocompleteEditor = React.memo(
122
122
  });
123
123
 
124
124
  return (
125
- <SettingsConsumer>
126
- {({ settings }) => (
127
- <ThemeComponent settings={settings}>
125
+ <ThemeProvider theme={defaultTheme}>
128
126
  <Autocomplete
129
127
  multiple={!props.isSingle === true}
130
128
  size="small"
@@ -179,9 +177,7 @@ const AutocompleteEditor = React.memo(
179
177
  ))
180
178
  }
181
179
  />
182
- </ThemeComponent>
183
- )}
184
- </SettingsConsumer>
180
+ </ThemeProvider>
185
181
  );
186
182
  })
187
183
  );
@@ -3,13 +3,13 @@ import Autocomplete from '@mui/material/Autocomplete';
3
3
  import TextField from '@mui/material/TextField';
4
4
  import Chip from '@mui/material/Chip';
5
5
  import {createRoot} from 'react-dom/client';
6
- import {SettingsConsumer} from 'src/@core/context/settingsContext';
7
- import ThemeComponent from 'src/@core/theme/ThemeComponent';
6
+ import { ThemeProvider, createTheme, darken, lighten, styled } from "@mui/material/styles";
8
7
  import moment from 'moment';
9
8
  import Typography from "@mui/material/Typography";
10
- import {darken, lighten, styled} from "@mui/material/styles";
11
9
  import izColors from "src/configs/izColors.json"
12
10
 
11
+ const defaultTheme = createTheme();
12
+
13
13
  const AutocompleteEditor = React.memo(
14
14
  forwardRef((props, ref) => {
15
15
  // Initialize as an array for multi-selection.
@@ -128,9 +128,7 @@ const AutocompleteEditor = React.memo(
128
128
  });
129
129
 
130
130
  return (
131
- <SettingsConsumer>
132
- {({settings}) => (
133
- <ThemeComponent settings={settings}>
131
+ <ThemeProvider theme={defaultTheme}>
134
132
  <Autocomplete
135
133
  multiple={!props.isSingle === true}
136
134
  size="small"
@@ -198,9 +196,7 @@ const AutocompleteEditor = React.memo(
198
196
  ))
199
197
  }
200
198
  />
201
- </ThemeComponent>
202
- )}
203
- </SettingsConsumer>
199
+ </ThemeProvider>
204
200
  );
205
201
  })
206
202
  );
@@ -8,11 +8,11 @@
8
8
  // - isSingle (bool)
9
9
  // Optional extras: page (default 1), pageSize (default 50)
10
10
 
11
- import { Services } from 'src/services/Endpoints'
12
- import { Endpoints } from 'src/services/Endpoints'
13
- import { ReportBuilderEndpoints } from 'services/Endpoints/ReportBuilderEndpoints'
14
- import { FilterFormat } from 'services/helper/FilterFormat'
15
- import { Helper } from 'services/helper/helper'
11
+ import {Services} from 'src/services/Endpoints'
12
+ import {Endpoints} from 'src/services/Endpoints'
13
+ import {ReportBuilderEndpoints} from 'services/Endpoints/ReportBuilderEndpoints'
14
+ import {FilterFormat} from 'services/helper/FilterFormat'
15
+ import {Helper} from 'services/helper/helper'
16
16
 
17
17
  // In-memory cache for builder models by pageId (resets on refresh/new tab)
18
18
  const builderModelCache = new Map()
@@ -48,7 +48,7 @@ function toNestedByUnderscore(input) {
48
48
  typeof value === 'object' &&
49
49
  !Array.isArray(value)
50
50
  ) {
51
- ref[last] = { ...existing, ...value }
51
+ ref[last] = {...existing, ...value}
52
52
  } else {
53
53
  ref[last] = value
54
54
  }
@@ -63,7 +63,7 @@ function toNestedByUnderscore(input) {
63
63
  const k = Helper.toCamelCaseDotNet(parts[0])
64
64
  const existing = result[k]
65
65
  if (existing && typeof existing === 'object' && nestedVal && typeof nestedVal === 'object') {
66
- result[k] = { ...existing, ...nestedVal }
66
+ result[k] = {...existing, ...nestedVal}
67
67
  } else {
68
68
  result[k] = nestedVal
69
69
  }
@@ -96,16 +96,18 @@ function convertToNestedObject(flatObject, builderData) {
96
96
  }
97
97
 
98
98
  export async function fetchReportDataByPageId({
99
- pageId,
100
- filter = {},
101
- isDataOnly = false,
102
- dataAsObject = false,
103
- isPagination = true,
104
- isSingle = false,
105
- globalParams = null,
106
- page = 1,
107
- pageSize = 50
108
- }) {
99
+ pageId,
100
+ filter = {},
101
+ isDataOnly = false,
102
+ dataAsObject = false,
103
+ isPagination = true,
104
+ isSingle = false,
105
+ globalParams = null,
106
+ page = 1,
107
+ pageSize = 50,
108
+ authContext = null,
109
+ context = null
110
+ }) {
109
111
  try {
110
112
  const asObject = dataAsObject
111
113
 
@@ -117,45 +119,82 @@ export async function fetchReportDataByPageId({
117
119
  Endpoints.ReportBuilder.Post.GetReportDetails,
118
120
  false,
119
121
  {},
120
- { id: null, pageId }
122
+ {id: null, pageId}
121
123
  )
122
124
 
123
125
  const detailsData = detailsResp?.data
124
126
  if (!detailsData || !detailsData.value) {
125
- return { success: false, error: 'Report details not found' }
127
+ return {success: false, error: 'Report detailsOld not found'}
126
128
  }
127
129
 
128
- builderModel = { ...JSON.parse(detailsData.value), id: detailsData.id }
130
+ builderModel = {...JSON.parse(detailsData.value), id: detailsData.id}
129
131
  builderModelCache.set(cacheKey, builderModel)
130
132
  }
131
133
 
132
134
  if (globalParams != null && builderModel?.selectionParams != null) {
133
135
  builderModel.selectionParams = builderModel.selectionParams.map((param, idx) => {
134
136
  if (globalParams.hasOwnProperty(idx)) {
135
- return { ...param, value: globalParams[idx] }
137
+ return {...param, value: globalParams[idx]}
136
138
  }
137
139
  return param
138
140
  })
139
141
  }
140
142
 
141
143
  // 2) Prepare filters (no AG Grid specifics)
142
- let localFilter = filter ? { ...filter } : {}
144
+ let localFilter = filter ? {...filter} : {}
143
145
  let localTFilter = localFilter?.Tfilter ? [...localFilter.Tfilter] : []
144
146
  localTFilter = localFilter?.TFilter ? [...localTFilter, ...localFilter.TFilter] : [...localTFilter]
145
147
  const builderFilter = builderModel?.filter?.Tfilter ?? []
146
148
  localTFilter = (localTFilter || []).filter(x => x?.value !== null && x?.value !== undefined && x?.value !== '')
147
149
  localTFilter = [...localTFilter, ...builderFilter]
150
+
151
+ // Extract customFilterCode from filter or builderModel
152
+ const customFilterCode = filter?.customFilterCode || builderModel?.filter?.customFilterCode || ''
153
+
148
154
  delete localFilter.Tfilter
149
155
  delete localFilter.TFilter
150
156
  delete localFilter.LocalTfilter
151
157
  delete localFilter.localTfilter
152
158
  delete localFilter.fixedTFilter
153
159
  delete localFilter.fixedTfilter
160
+ delete localFilter.customFilterCode
154
161
 
155
162
  const formattedT = FilterFormat(localTFilter)
163
+
164
+ // Execute custom filter code if present
165
+ let customFilterResult = []
166
+ if (customFilterCode && customFilterCode.trim()) {
167
+ try {
168
+ const executeCode = new Function('authContext', 'context', 'filters', `
169
+ let customFilter = [];
170
+ try {
171
+ ${customFilterCode}
172
+ } catch (e) {
173
+ console.error('Inner error in customFilterCode:', e);
174
+ }
175
+ return customFilter;
176
+ `)
177
+ const result = executeCode(authContext, context, localTFilter)
178
+
179
+ if (result && Array.isArray(result)) {
180
+ customFilterResult = result
181
+ } else if (result && !Array.isArray(result)) {
182
+ console.error('Error: Custom filter must return an array')
183
+ }
184
+ } catch (error) {
185
+ console.error('Error executing custom filter code:', error)
186
+ }
187
+ }
188
+
189
+ // Merge custom filter results with formatted filters
190
+ const finalTFilter = [
191
+ ...(Array.isArray(formattedT) ? formattedT.filter(f => (f == null ? false : f.value !== null)) : []),
192
+ ...customFilterResult
193
+ ]
194
+
156
195
  let data = {
157
196
  ...localFilter,
158
- tFilter: Array.isArray(formattedT) ? formattedT.filter(f => (f == null ? false : f.value !== null)) : [],
197
+ tFilter: finalTFilter,
159
198
  selectFields: builderModel?.selectedFields || [],
160
199
  selectParams: builderModel?.selectionParams || [],
161
200
  rawSql: builderModel?.rawSql
@@ -167,8 +206,8 @@ export async function fetchReportDataByPageId({
167
206
  ? 'SqlPagination'
168
207
  : 'Pagination'
169
208
  : builderModel?.isRaw
170
- ? 'SqlNoPagination'
171
- : 'NoPagination'
209
+ ? 'SqlNoPagination'
210
+ : 'NoPagination'
172
211
 
173
212
  const response = await Services.PostService(ReportBuilderEndpoints.Post.GenericGet, false, data, {
174
213
  page: isSingle ? 1 : page,
@@ -183,7 +222,9 @@ export async function fetchReportDataByPageId({
183
222
  if (asObject) {
184
223
  rows = rows.map(r => toNestedByUnderscore(r))
185
224
  }
186
- if (isSingle) rows = rows[0]
225
+ if (isSingle)
226
+ rows = rows[0]
227
+
187
228
 
188
229
  if (isDataOnly) {
189
230
  return rows
@@ -198,12 +239,12 @@ export async function fetchReportDataByPageId({
198
239
  getType,
199
240
  filter: data,
200
241
  sourceModel: builderModel?.reportSource?.fullName,
201
- params: { page: isSingle ? 1 : page, pageSize: isSingle ? 1 : pageSize }
242
+ params: {page: isSingle ? 1 : page, pageSize: isSingle ? 1 : pageSize}
202
243
  }
203
244
  }
204
245
  } catch (error) {
205
246
  console.error('fetchReportDataByPageId error', error)
206
- return { success: false, error }
247
+ return {success: false, error}
207
248
  }
208
249
  }
209
250
 
@@ -0,0 +1,35 @@
1
+ /**
2
+ * routerRef — module-level Next.js router singleton.
3
+ *
4
+ * Why a singleton instead of a hook?
5
+ * jsExecutor.js runs user Calculation code outside of React's render cycle.
6
+ * It cannot call useRouter() directly. Instead, RouterSync (mounted inside
7
+ * RoboByteFrontBuilderProvider) keeps this reference in sync on every
8
+ * navigation, and jsExecutor imports getRouter() to inject it into every
9
+ * Calculation as the `router` bare-name variable.
10
+ *
11
+ * Usage in action code:
12
+ * router.push('/dashboard')
13
+ * router.replace({ pathname: '/report/[id]', query: { id: 42 } })
14
+ * router.back()
15
+ * console.log(router.pathname, router.query)
16
+ */
17
+
18
+ let _router = null
19
+
20
+ /**
21
+ * Called by RouterSync on every render so the ref is always current.
22
+ * @param {import('next/router').NextRouter} router
23
+ */
24
+ export function setRouter(router) {
25
+ _router = router
26
+ }
27
+
28
+ /**
29
+ * Returns the current Next.js router instance, or null if RouterSync has
30
+ * not mounted yet (e.g. SSR or very early render).
31
+ * @returns {import('next/router').NextRouter | null}
32
+ */
33
+ export function getRouter() {
34
+ return _router
35
+ }
@@ -18,7 +18,7 @@ import {
18
18
  } from '@mui/material'
19
19
  import Box from '@mui/material/Box'
20
20
  import { Close } from 'mdi-material-ui'
21
- import { Warning, DeleteOutline } from '@mui/icons-material'
21
+ import { Warning, DeleteOutlined } from '@mui/icons-material'
22
22
  import { useState } from 'react'
23
23
 
24
24
  const ConfirmDelete = props => {
@@ -111,7 +111,7 @@ const ConfirmDelete = props => {
111
111
  mt: 2,
112
112
  mb: 3
113
113
  }}>
114
- <DeleteOutline
114
+ <DeleteOutlined
115
115
  sx={{
116
116
  fontSize: 40,
117
117
  color: '#d32f2f',