robobyte-front-builder 1.0.17 → 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 (516) 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 +59 -1
  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 +723 -563
  21. package/src/pages/reportModule/reportBuilder/reportViewer/index.js +137 -71
  22. package/src/pages/reportModule/reportBuilder/reports/index.js +51 -13
  23. package/src/pages/reportModule/reportBuilder/reportsPermissions/index.js +126 -0
  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 +241 -0
  49. package/src/services/helper/reportSessionHelper.js +83 -0
  50. package/src/services/reportData/fetchReportData.js +69 -28
  51. package/src/services/routerRef.js +35 -0
  52. package/src/views/ConfirmDialog.js +2 -2
  53. package/src/views/builder/JSEditor.js +105 -107
  54. package/src/views/builder/inspector/Inspector.jsx +6 -9
  55. package/src/views/builder/inspector/Tabs/ComponentActionsTab.jsx +7 -13
  56. package/src/views/builder/inspector/Tabs/MainTab.jsx +143 -25
  57. package/src/views/builder/inspector/Tabs/RulesTab.jsx +9 -24
  58. package/src/views/builder/inspector/Tabs/StyleTab.jsx +9 -24
  59. package/src/views/builder/inspector/definitions/autocomplete/main.js +4 -6
  60. package/src/views/builder/inspector/definitions/banner/actions.js +7 -0
  61. package/src/views/builder/inspector/definitions/banner/main.js +22 -0
  62. package/src/views/builder/inspector/definitions/banner/rules.js +1 -0
  63. package/src/views/builder/inspector/definitions/banner/style.js +1 -0
  64. package/src/views/builder/inspector/definitions/breadcrumb/main.js +43 -6
  65. package/src/views/builder/inspector/definitions/button/main.js +11 -12
  66. package/src/views/builder/inspector/definitions/button/style.js +18 -30
  67. package/src/views/builder/inspector/definitions/checkbox/actions.js +3 -1
  68. package/src/views/builder/inspector/definitions/checkbox/main.js +4 -6
  69. package/src/views/builder/inspector/definitions/common/main.js +13 -2
  70. package/src/views/builder/inspector/definitions/dataGrid/main.js +23 -0
  71. package/src/views/builder/inspector/definitions/dataTableViewer/main.js +46 -0
  72. package/src/views/builder/inspector/definitions/datepicker/actions.js +3 -1
  73. package/src/views/builder/inspector/definitions/datepicker/main.js +6 -14
  74. package/src/views/builder/inspector/definitions/dialog/main.js +36 -0
  75. package/src/views/builder/inspector/definitions/dropdown/main.js +5 -8
  76. package/src/views/builder/inspector/definitions/excelUpload/actions.js +23 -0
  77. package/src/views/builder/inspector/definitions/excelUpload/main.js +17 -0
  78. package/src/views/builder/inspector/definitions/excelUpload/rules.js +1 -0
  79. package/src/views/builder/inspector/definitions/excelUpload/style.js +45 -0
  80. package/src/views/builder/inspector/definitions/header/main.js +10 -1
  81. package/src/views/builder/inspector/definitions/index.js +106 -19
  82. package/src/views/builder/inspector/definitions/input/actions.js +4 -1
  83. package/src/views/builder/inspector/definitions/input/main.js +20 -11
  84. package/src/views/builder/inspector/definitions/kpi/avatarGroup.js +22 -0
  85. package/src/views/builder/inspector/definitions/kpi/badge.js +17 -0
  86. package/src/views/builder/inspector/definitions/kpi/bulletChart.js +47 -0
  87. package/src/views/builder/inspector/definitions/kpi/chart.js +55 -0
  88. package/src/views/builder/inspector/definitions/kpi/colorScale.js +60 -0
  89. package/src/views/builder/inspector/definitions/kpi/comparisonBars.js +41 -0
  90. package/src/views/builder/inspector/definitions/kpi/countdown.js +46 -0
  91. package/src/views/builder/inspector/definitions/kpi/donut.js +51 -0
  92. package/src/views/builder/inspector/definitions/kpi/funnel.js +25 -0
  93. package/src/views/builder/inspector/definitions/kpi/gauge.js +39 -0
  94. package/src/views/builder/inspector/definitions/kpi/heatmapGrid.js +96 -0
  95. package/src/views/builder/inspector/definitions/kpi/iconBox.js +20 -0
  96. package/src/views/builder/inspector/definitions/kpi/metric.js +45 -0
  97. package/src/views/builder/inspector/definitions/kpi/rating.js +27 -0
  98. package/src/views/builder/inspector/definitions/kpi/statusDot.js +18 -0
  99. package/src/views/builder/inspector/definitions/kpi/stepStage.js +65 -0
  100. package/src/views/builder/inspector/definitions/kpi/tagList.js +32 -0
  101. package/src/views/builder/inspector/definitions/kpi/timeline.js +80 -0
  102. package/src/views/builder/inspector/definitions/kpi/trend.js +20 -0
  103. package/src/views/builder/inspector/definitions/label/main.js +10 -1
  104. package/src/views/builder/inspector/definitions/layout/main.js +27 -3
  105. package/src/views/builder/inspector/definitions/number/main.js +6 -14
  106. package/src/views/builder/inspector/definitions/pageNumber/main.js +21 -0
  107. package/src/views/builder/inspector/definitions/popover/main.js +71 -0
  108. package/src/views/builder/inspector/definitions/radio/main.js +5 -8
  109. package/src/views/builder/inspector/definitions/repeater/main.js +31 -0
  110. package/src/views/builder/inspector/definitions/reportViewer/main.js +15 -1
  111. package/src/views/builder/inspector/definitions/richtext/main.js +5 -8
  112. package/src/views/builder/inspector/definitions/signature/main.js +4 -1
  113. package/src/views/builder/inspector/definitions/tag/main.js +5 -8
  114. package/src/views/builder/inspector/definitions/textarea/actions.js +4 -1
  115. package/src/views/builder/inspector/definitions/textarea/main.js +5 -7
  116. package/src/views/builder/inspector/definitions/time/main.js +5 -8
  117. package/src/views/builder/inspector/definitions/toggle/main.js +5 -19
  118. package/src/views/builder/inspector/definitions/treeView/main.js +61 -0
  119. package/src/views/builder/inspector/definitions/viewRenderer/main.js +53 -0
  120. package/src/views/builder/inspector/definitions/wizard/main.js +68 -0
  121. package/src/views/builder/inspector/definitions/wizard-step/main.js +25 -0
  122. package/src/views/builder/inspector/fields/ActionsConfigEditor.jsx +426 -0
  123. package/src/views/builder/inspector/fields/ColorSchemaField.jsx +140 -0
  124. package/src/views/builder/inspector/fields/ColumnFunctionEditor.jsx +238 -0
  125. package/src/views/builder/inspector/fields/ColumnMappingEditor.jsx +105 -0
  126. package/src/views/builder/inspector/fields/ColumnsConfigEditor.jsx +506 -0
  127. package/src/views/builder/inspector/fields/DonutRingsEditorField.jsx +337 -0
  128. package/src/views/builder/inspector/fields/ExtraColsEditor.jsx +618 -0
  129. package/src/views/builder/inspector/fields/FunctionHelpPopover.jsx +295 -0
  130. package/src/views/builder/inspector/fields/IconEditor.jsx +64 -0
  131. package/src/views/builder/inspector/fields/KpiActionField.jsx +223 -0
  132. package/src/views/builder/inspector/fields/MarkersEditorField.jsx +173 -0
  133. package/src/views/builder/inspector/fields/SelectEditor.jsx +9 -5
  134. package/src/views/builder/inspector/fields/SeriesEditorField.jsx +363 -0
  135. package/src/views/builder/inspector/fields/TableColumnsEditor.jsx +104 -0
  136. package/src/views/builder/inspector/fields/ThresholdsEditor.jsx +247 -0
  137. package/src/views/builder/inspector/fields/ValueFunctionsRefPanel.jsx +217 -0
  138. package/src/views/builder/inspector/fields/columnEditorShared.jsx +217 -0
  139. package/src/views/builder/sidebar/Sidebar.jsx +4 -2
  140. package/src/views/builder/sidebar/SidebarTabs.jsx +28 -17
  141. package/src/views/builder/sidebar/tabs/ActionsTab.jsx +7 -3
  142. package/src/views/builder/sidebar/tabs/AiTab/AiPreviewDialog.jsx +193 -0
  143. package/src/views/builder/sidebar/tabs/AiTab/aiProvider.js +49 -0
  144. package/src/views/builder/sidebar/tabs/AiTab/index.jsx +409 -0
  145. package/src/views/builder/sidebar/tabs/AiTab/schemaTransformer.js +102 -0
  146. package/src/views/builder/sidebar/tabs/AiTab/schemaValidator.js +64 -0
  147. package/src/views/builder/sidebar/tabs/AiTab/systemPrompt.js +1151 -0
  148. package/src/views/builder/sidebar/tabs/Components/ComponentsTab.jsx +31 -31
  149. package/src/views/builder/sidebar/tabs/Components/componentCatalog.js +43 -21
  150. package/src/views/builder/sidebar/tabs/Components/printComponentCatalog.js +81 -0
  151. package/src/views/builder/sidebar/tabs/TimersTab.jsx +338 -0
  152. package/src/views/builder/sidebar/tabs/TreeTab.jsx +13 -4
  153. package/src/views/builder/sidebar/tabs/ViewTab.jsx +1 -1
  154. package/src/views/builder/viewer/AdornedLabel.jsx +82 -0
  155. package/src/views/builder/viewer/ComponentRenderer.jsx +98 -24
  156. package/src/views/builder/viewer/DialogsZone.jsx +259 -0
  157. package/src/views/builder/viewer/FieldLabel.jsx +106 -0
  158. package/src/views/builder/viewer/PrintDialog.jsx +481 -0
  159. package/src/views/builder/viewer/ProductionViewer.jsx +80 -5
  160. package/src/views/builder/viewer/Viewer.jsx +106 -8
  161. package/src/views/builder/viewer/ViewerComponentWrapper.jsx +61 -4
  162. package/src/views/builder/viewer/ViewerToolbar.jsx +273 -59
  163. package/src/views/builder/viewer/renderers/AutoCompleteRenderer.jsx +26 -22
  164. package/src/views/builder/viewer/renderers/AvatarGroupRenderer.jsx +112 -0
  165. package/src/views/builder/viewer/renderers/BadgeRenderer.jsx +79 -0
  166. package/src/views/builder/viewer/renderers/BannerRenderer.jsx +62 -0
  167. package/src/views/builder/viewer/renderers/BreadcrumbRenderer.jsx +203 -15
  168. package/src/views/builder/viewer/renderers/BulletChartRenderer.jsx +147 -0
  169. package/src/views/builder/viewer/renderers/ButtonRenderer.jsx +98 -39
  170. package/src/views/builder/viewer/renderers/CardRenderer.jsx +1 -1
  171. package/src/views/builder/viewer/renderers/ChartRenderer.jsx +388 -0
  172. package/src/views/builder/viewer/renderers/CheckboxRenderer.jsx +17 -9
  173. package/src/views/builder/viewer/renderers/ColorScaleRenderer.jsx +300 -0
  174. package/src/views/builder/viewer/renderers/ComparisonBarsRenderer.jsx +133 -0
  175. package/src/views/builder/viewer/renderers/ContainerRenderer.jsx +3 -1
  176. package/src/views/builder/viewer/renderers/CountdownRenderer.jsx +249 -0
  177. package/src/views/builder/viewer/renderers/DataGridRenderer.jsx +380 -0
  178. package/src/views/builder/viewer/renderers/DataTableViewerRenderer.jsx +240 -0
  179. package/src/views/builder/viewer/renderers/DatePickerRenderer.jsx +25 -24
  180. package/src/views/builder/viewer/renderers/DialogRenderer.jsx +327 -0
  181. package/src/views/builder/viewer/renderers/DividerRenderer.jsx +1 -1
  182. package/src/views/builder/viewer/renderers/DonutRenderer.jsx +294 -0
  183. package/src/views/builder/viewer/renderers/DropdownRenderer.jsx +36 -44
  184. package/src/views/builder/viewer/renderers/ExcelUploadRenderer.jsx +639 -0
  185. package/src/views/builder/viewer/renderers/FunnelRenderer.jsx +93 -0
  186. package/src/views/builder/viewer/renderers/GaugeRenderer.jsx +159 -0
  187. package/src/views/builder/viewer/renderers/HeaderRenderer.jsx +31 -9
  188. package/src/views/builder/viewer/renderers/HeatmapGridRenderer.jsx +432 -0
  189. package/src/views/builder/viewer/renderers/IconBoxRenderer.jsx +59 -0
  190. package/src/views/builder/viewer/renderers/ImageRenderer.jsx +1 -1
  191. package/src/views/builder/viewer/renderers/InputRenderer.jsx +75 -18
  192. package/src/views/builder/viewer/renderers/LabelRenderer.jsx +35 -9
  193. package/src/views/builder/viewer/renderers/LayoutCellRenderer.jsx +102 -40
  194. package/src/views/builder/viewer/renderers/LayoutContextMenu.jsx +8 -8
  195. package/src/views/builder/viewer/renderers/LayoutRenderer.jsx +48 -6
  196. package/src/views/builder/viewer/renderers/LinkRenderer.jsx +1 -1
  197. package/src/views/builder/viewer/renderers/MenuRenderer.jsx +2 -2
  198. package/src/views/builder/viewer/renderers/MetricRenderer.jsx +80 -0
  199. package/src/views/builder/viewer/renderers/NumberFormatRenderer.jsx +21 -30
  200. package/src/views/builder/viewer/renderers/PageNumberRenderer.jsx +76 -0
  201. package/src/views/builder/viewer/renderers/PopoverRenderer.jsx +350 -0
  202. package/src/views/builder/viewer/renderers/ProgressCircleRenderer.jsx +1 -1
  203. package/src/views/builder/viewer/renderers/ProgressLineRenderer.jsx +1 -1
  204. package/src/views/builder/viewer/renderers/RadioGroupRenderer.jsx +28 -39
  205. package/src/views/builder/viewer/renderers/RatingRenderer.jsx +80 -0
  206. package/src/views/builder/viewer/renderers/RepeaterRenderer.jsx +297 -38
  207. package/src/views/builder/viewer/renderers/ReportViewerRenderer.jsx +219 -5
  208. package/src/views/builder/viewer/renderers/RichTextRenderer.jsx +60 -66
  209. package/src/views/builder/viewer/renderers/RowActionsCell.jsx +308 -0
  210. package/src/views/builder/viewer/renderers/SignatureRenderer.jsx +33 -62
  211. package/src/views/builder/viewer/renderers/StatusDotRenderer.jsx +75 -0
  212. package/src/views/builder/viewer/renderers/StepStageRenderer.jsx +348 -0
  213. package/src/views/builder/viewer/renderers/TagListRenderer.jsx +115 -0
  214. package/src/views/builder/viewer/renderers/TagPickerRenderer.jsx +31 -45
  215. package/src/views/builder/viewer/renderers/TextAreaRenderer.jsx +25 -18
  216. package/src/views/builder/viewer/renderers/TextRenderer.jsx +7 -1
  217. package/src/views/builder/viewer/renderers/TimePickerRenderer.jsx +25 -24
  218. package/src/views/builder/viewer/renderers/TimelineRenderer.jsx +525 -0
  219. package/src/views/builder/viewer/renderers/ToggleRenderer.jsx +21 -27
  220. package/src/views/builder/viewer/renderers/TreeViewRenderer.jsx +832 -0
  221. package/src/views/builder/viewer/renderers/TrendRenderer.jsx +66 -0
  222. package/src/views/builder/viewer/renderers/ViewRendererRenderer.jsx +315 -0
  223. package/src/views/builder/viewer/renderers/WizardRenderer.jsx +380 -64
  224. package/src/views/builder/viewer/renderers/WizardStepRenderer.jsx +21 -12
  225. package/src/views/builder/viewer/renderers/dataGridComponents.jsx +824 -0
  226. package/src/views/customFilter/CustomFilterDialog.js +1023 -660
  227. package/src/views/customFilter/FixedFilterDialog.js +649 -0
  228. package/src/views/customFilter/SearchFilterDialog.js +248 -0
  229. package/src/views/genericTable/BuilderExpressionParams.js +3 -3
  230. package/src/views/genericTable/ColumnConfiguratorDialog.js +771 -0
  231. package/src/views/genericTable/FixedFilterDialog.js +3 -2
  232. package/src/views/genericTable/FormattingSettingsDialog.js +551 -0
  233. package/src/views/genericTable/ReportSettingsDialog.js +151 -0
  234. package/src/views/genericTable/SGrid.js +1061 -247
  235. package/src/views/genericTable/SearchFilterDialog.js +3 -2
  236. package/src/views/genericTable/TAGGrid.js +83 -69
  237. package/src/views/genericTable/cellEditors/autocompleteEditor.js +5 -9
  238. package/src/views/genericTable/convertStringFunctions.js +336 -0
  239. package/src/views/genericTable/statusBar/rowCountStatusBar.js +3 -1
  240. package/src/views/genericTable/updateRefHelpers.js +424 -0
  241. package/src/views/printBuilder/PrintBuilderViewer.jsx +607 -0
  242. package/src/views/printBuilder/PrintPreviewCanvas.jsx +157 -0
  243. package/src/views/rolePermissions/UpdateReportPermissionDialog.js +316 -0
  244. package/src/@core/components/auth/AclGuard.js +0 -55
  245. package/src/@core/components/auth/AuthGuard.js +0 -40
  246. package/src/@core/components/auth/GuestGuard.js +0 -30
  247. package/src/@core/components/custom-inputs/Horizontal.jsx +0 -143
  248. package/src/@core/components/custom-inputs/Image.jsx +0 -78
  249. package/src/@core/components/custom-inputs/Vertical.jsx +0 -113
  250. package/src/@core/components/customizer/index.jsx +0 -470
  251. package/src/@core/components/customizer/styles.module.css +0 -169
  252. package/src/@core/components/mui/Avatar.jsx +0 -41
  253. package/src/@core/components/mui/Badge.jsx +0 -20
  254. package/src/@core/components/mui/IconButton.jsx +0 -74
  255. package/src/@core/components/mui/TabList.jsx +0 -60
  256. package/src/@core/components/option-menu/index.jsx +0 -137
  257. package/src/@core/components/scroll-to-top/index.jsx +0 -43
  258. package/src/@core/components/spinner/index.js +0 -26
  259. package/src/@core/components/window-wrapper/index.js +0 -27
  260. package/src/@core/contexts/settingsContext.jsx +0 -98
  261. package/src/@core/hooks/useBgColor.js +0 -63
  262. package/src/@core/hooks/useImageVariant.js +0 -27
  263. package/src/@core/hooks/useLayoutInit.js +0 -37
  264. package/src/@core/hooks/useObjectCookie.js +0 -18
  265. package/src/@core/hooks/useSettings.jsx +0 -15
  266. package/src/@core/layouts/BlankLayout.js +0 -37
  267. package/src/@core/layouts/BlankLayoutWithAppBar.js +0 -51
  268. package/src/@core/layouts/HorizontalLayout.jsx +0 -151
  269. package/src/@core/layouts/Layout.js +0 -39
  270. package/src/@core/layouts/VerticalLayout.jsx +0 -124
  271. package/src/@core/layouts/components/blank-layout-with-appBar/index.js +0 -115
  272. package/src/@core/layouts/components/horizontal/app-bar-content/index.js +0 -67
  273. package/src/@core/layouts/components/horizontal/navigation/HorizontalNavGroup.js +0 -352
  274. package/src/@core/layouts/components/horizontal/navigation/HorizontalNavItems.js +0 -21
  275. package/src/@core/layouts/components/horizontal/navigation/HorizontalNavLink.js +0 -195
  276. package/src/@core/layouts/components/horizontal/navigation/index.js +0 -31
  277. package/src/@core/layouts/components/shared-components/LanguageDropdown.js +0 -96
  278. package/src/@core/layouts/components/shared-components/ModeToggler.js +0 -32
  279. package/src/@core/layouts/components/shared-components/NotificationDropdown.js +0 -226
  280. package/src/@core/layouts/components/shared-components/UserDropdown.js +0 -177
  281. package/src/@core/layouts/components/shared-components/footer/FooterContent.js +0 -46
  282. package/src/@core/layouts/components/shared-components/footer/index.js +0 -61
  283. package/src/@core/layouts/components/vertical/appBar/index.js +0 -74
  284. package/src/@core/layouts/components/vertical/navigation/Drawer.js +0 -122
  285. package/src/@core/layouts/components/vertical/navigation/VerticalNavGroup.js +0 -435
  286. package/src/@core/layouts/components/vertical/navigation/VerticalNavHeader.js +0 -180
  287. package/src/@core/layouts/components/vertical/navigation/VerticalNavItems.js +0 -26
  288. package/src/@core/layouts/components/vertical/navigation/VerticalNavLink.js +0 -258
  289. package/src/@core/layouts/components/vertical/navigation/VerticalNavSectionTitle.js +0 -102
  290. package/src/@core/layouts/components/vertical/navigation/index.js +0 -169
  291. package/src/@core/layouts/utils.js +0 -69
  292. package/src/@core/styles/Table.module.css +0 -93
  293. package/src/@core/styles/horizontal/menuItemStyles.js +0 -100
  294. package/src/@core/styles/horizontal/menuRootStyles.js +0 -19
  295. package/src/@core/styles/libs/fullcalendar/index.js +0 -461
  296. package/src/@core/styles/libs/keen-slider/index.js +0 -111
  297. package/src/@core/styles/libs/react-apexcharts/index.js +0 -107
  298. package/src/@core/styles/libs/react-cleave/index.js +0 -33
  299. package/src/@core/styles/libs/react-credit-cards/index.js +0 -11
  300. package/src/@core/styles/libs/react-datepicker/index.js +0 -388
  301. package/src/@core/styles/libs/react-draft-wysiwyg/index.js +0 -144
  302. package/src/@core/styles/libs/react-dropzone/index.js +0 -76
  303. package/src/@core/styles/libs/react-hot-toast/index.js +0 -37
  304. package/src/@core/styles/libs/recharts/index.js +0 -47
  305. package/src/@core/styles/stepper.js +0 -103
  306. package/src/@core/styles/vertical/menuItemStyles.js +0 -138
  307. package/src/@core/styles/vertical/menuSectionStyles.js +0 -54
  308. package/src/@core/styles/vertical/navigationCustomStyles.js +0 -62
  309. package/src/@core/svg/ContentCompact.jsx +0 -17
  310. package/src/@core/svg/ContentWide.jsx +0 -17
  311. package/src/@core/svg/DirectionLtr.jsx +0 -93
  312. package/src/@core/svg/DirectionRtl.jsx +0 -93
  313. package/src/@core/svg/LayoutCollapsed.jsx +0 -59
  314. package/src/@core/svg/LayoutHorizontal.jsx +0 -42
  315. package/src/@core/svg/LayoutVertical.jsx +0 -59
  316. package/src/@core/svg/Logo.jsx +0 -76
  317. package/src/@core/svg/SkinBordered.jsx +0 -54
  318. package/src/@core/svg/SkinDefault.jsx +0 -59
  319. package/src/@core/tailwind/plugin.js +0 -78
  320. package/src/@core/theme/ThemeComponent.js +0 -63
  321. package/src/@core/theme/ThemeOptions.js +0 -71
  322. package/src/@core/theme/breakpoints/index.js +0 -11
  323. package/src/@core/theme/colorSchemes.js +0 -326
  324. package/src/@core/theme/customShadows.js +0 -11
  325. package/src/@core/theme/globalStyles.js +0 -81
  326. package/src/@core/theme/index.js +0 -42
  327. package/src/@core/theme/overrides/accordion.js +0 -51
  328. package/src/@core/theme/overrides/accordion.jsx +0 -85
  329. package/src/@core/theme/overrides/alerts.js +0 -110
  330. package/src/@core/theme/overrides/alerts.jsx +0 -180
  331. package/src/@core/theme/overrides/autocomplete.js +0 -14
  332. package/src/@core/theme/overrides/autocomplete.jsx +0 -68
  333. package/src/@core/theme/overrides/avatar.js +0 -38
  334. package/src/@core/theme/overrides/avatars.js +0 -27
  335. package/src/@core/theme/overrides/backdrop.js +0 -22
  336. package/src/@core/theme/overrides/badges.js +0 -16
  337. package/src/@core/theme/overrides/breadcrumbs.js +0 -11
  338. package/src/@core/theme/overrides/button-group.js +0 -84
  339. package/src/@core/theme/overrides/button.js +0 -93
  340. package/src/@core/theme/overrides/buttonGroup.js +0 -9
  341. package/src/@core/theme/overrides/card.js +0 -83
  342. package/src/@core/theme/overrides/checkbox.jsx +0 -95
  343. package/src/@core/theme/overrides/chip.js +0 -72
  344. package/src/@core/theme/overrides/dataGrid.js +0 -114
  345. package/src/@core/theme/overrides/dateTimePicker.js +0 -65
  346. package/src/@core/theme/overrides/dialog.js +0 -120
  347. package/src/@core/theme/overrides/divider.js +0 -13
  348. package/src/@core/theme/overrides/drawer.js +0 -20
  349. package/src/@core/theme/overrides/fab.js +0 -13
  350. package/src/@core/theme/overrides/form-control-label.js +0 -19
  351. package/src/@core/theme/overrides/icon-button.js +0 -145
  352. package/src/@core/theme/overrides/index.js +0 -103
  353. package/src/@core/theme/overrides/input.js +0 -72
  354. package/src/@core/theme/overrides/link.js +0 -9
  355. package/src/@core/theme/overrides/list.js +0 -44
  356. package/src/@core/theme/overrides/menu.js +0 -25
  357. package/src/@core/theme/overrides/pagination.js +0 -41
  358. package/src/@core/theme/overrides/paper.js +0 -9
  359. package/src/@core/theme/overrides/popover.js +0 -16
  360. package/src/@core/theme/overrides/progress.js +0 -38
  361. package/src/@core/theme/overrides/radio.jsx +0 -80
  362. package/src/@core/theme/overrides/rating.js +0 -16
  363. package/src/@core/theme/overrides/rating.jsx +0 -32
  364. package/src/@core/theme/overrides/select.js +0 -19
  365. package/src/@core/theme/overrides/select.jsx +0 -52
  366. package/src/@core/theme/overrides/slider.js +0 -97
  367. package/src/@core/theme/overrides/snackbar.js +0 -19
  368. package/src/@core/theme/overrides/switch.js +0 -73
  369. package/src/@core/theme/overrides/switches.js +0 -25
  370. package/src/@core/theme/overrides/table-pagination.js +0 -39
  371. package/src/@core/theme/overrides/table.js +0 -81
  372. package/src/@core/theme/overrides/tabs.js +0 -30
  373. package/src/@core/theme/overrides/timeline.js +0 -80
  374. package/src/@core/theme/overrides/toggle-button.js +0 -33
  375. package/src/@core/theme/overrides/toggleButton.js +0 -16
  376. package/src/@core/theme/overrides/tooltip.js +0 -21
  377. package/src/@core/theme/overrides/typography.js +0 -13
  378. package/src/@core/theme/palette/index.js +0 -107
  379. package/src/@core/theme/shadows/index.js +0 -61
  380. package/src/@core/theme/shadows.js +0 -12
  381. package/src/@core/theme/spacing/index.js +0 -3
  382. package/src/@core/theme/spacing.js +0 -5
  383. package/src/@core/theme/typography/index.js +0 -65
  384. package/src/@core/theme/typography.js +0 -84
  385. package/src/@core/utils/create-emotion-cache.js +0 -5
  386. package/src/@core/utils/hex-to-rgba.js +0 -11
  387. package/src/@core/utils/serverHelpers.js +0 -45
  388. package/src/@menu/components/RouterLink.jsx +0 -18
  389. package/src/@menu/components/horizontal-menu/HorizontalNav.jsx +0 -88
  390. package/src/@menu/components/horizontal-menu/Menu.jsx +0 -83
  391. package/src/@menu/components/horizontal-menu/MenuButton.jsx +0 -100
  392. package/src/@menu/components/horizontal-menu/MenuItem.jsx +0 -183
  393. package/src/@menu/components/horizontal-menu/SubMenu.jsx +0 -418
  394. package/src/@menu/components/horizontal-menu/SubMenuContent.jsx +0 -41
  395. package/src/@menu/components/horizontal-menu/VerticalNavInHorizontal.jsx +0 -20
  396. package/src/@menu/components/vertical-menu/Menu.jsx +0 -161
  397. package/src/@menu/components/vertical-menu/MenuButton.jsx +0 -95
  398. package/src/@menu/components/vertical-menu/MenuItem.jsx +0 -180
  399. package/src/@menu/components/vertical-menu/MenuSection.jsx +0 -124
  400. package/src/@menu/components/vertical-menu/NavCollapseIcons.jsx +0 -70
  401. package/src/@menu/components/vertical-menu/NavHeader.jsx +0 -39
  402. package/src/@menu/components/vertical-menu/SubMenu.jsx +0 -420
  403. package/src/@menu/components/vertical-menu/SubMenuContent.jsx +0 -101
  404. package/src/@menu/components/vertical-menu/VerticalNav.jsx +0 -216
  405. package/src/@menu/contexts/horizontalNavContext.jsx +0 -29
  406. package/src/@menu/contexts/verticalNavContext.jsx +0 -65
  407. package/src/@menu/defaultConfigs.js +0 -12
  408. package/src/@menu/hooks/useHorizontalMenu.jsx +0 -19
  409. package/src/@menu/hooks/useHorizontalNav.jsx +0 -19
  410. package/src/@menu/hooks/useMediaQuery.jsx +0 -29
  411. package/src/@menu/hooks/useVerticalMenu.jsx +0 -19
  412. package/src/@menu/hooks/useVerticalNav.jsx +0 -19
  413. package/src/@menu/horizontal-menu/index.jsx +0 -8
  414. package/src/@menu/styles/StyledBackdrop.jsx +0 -15
  415. package/src/@menu/styles/StyledMenuIcon.jsx +0 -12
  416. package/src/@menu/styles/StyledMenuLabel.jsx +0 -16
  417. package/src/@menu/styles/StyledMenuPrefix.jsx +0 -10
  418. package/src/@menu/styles/StyledMenuSectionLabel.jsx +0 -21
  419. package/src/@menu/styles/StyledMenuSuffix.jsx +0 -10
  420. package/src/@menu/styles/StyledSubMenuContent.jsx +0 -43
  421. package/src/@menu/styles/horizontal/StyledHorizontalMenu.jsx +0 -13
  422. package/src/@menu/styles/horizontal/StyledHorizontalMenuItem.jsx +0 -26
  423. package/src/@menu/styles/horizontal/StyledHorizontalNav.jsx +0 -11
  424. package/src/@menu/styles/horizontal/StyledHorizontalNavExpandIcon.jsx +0 -33
  425. package/src/@menu/styles/horizontal/StyledHorizontalSubMenuContent.jsx +0 -18
  426. package/src/@menu/styles/horizontal/StyledHorizontalSubMenuContentWrapper.jsx +0 -10
  427. package/src/@menu/styles/horizontal/horizontalUl.module.css +0 -15
  428. package/src/@menu/styles/styles.module.css +0 -5
  429. package/src/@menu/styles/vertical/StyledVerticalMenu.jsx +0 -16
  430. package/src/@menu/styles/vertical/StyledVerticalMenuItem.jsx +0 -28
  431. package/src/@menu/styles/vertical/StyledVerticalMenuSection.jsx +0 -23
  432. package/src/@menu/styles/vertical/StyledVerticalNav.jsx +0 -67
  433. package/src/@menu/styles/vertical/StyledVerticalNavBgColorContainer.jsx +0 -15
  434. package/src/@menu/styles/vertical/StyledVerticalNavContainer.jsx +0 -23
  435. package/src/@menu/styles/vertical/StyledVerticalNavExpandIcon.jsx +0 -25
  436. package/src/@menu/styles/vertical/verticalNavBgImage.module.css +0 -10
  437. package/src/@menu/svg/ChevronRight.jsx +0 -9
  438. package/src/@menu/svg/Close.jsx +0 -12
  439. package/src/@menu/svg/RadioCircle.jsx +0 -12
  440. package/src/@menu/svg/RadioCircleMarked.jsx +0 -13
  441. package/src/@menu/utils/menuClasses.js +0 -44
  442. package/src/@menu/utils/menuUtils.jsx +0 -145
  443. package/src/@menu/vertical-menu/index.jsx +0 -11
  444. package/src/configs/acl.js +0 -115
  445. package/src/configs/auth.js +0 -5
  446. package/src/configs/aws-exports.js +0 -30
  447. package/src/configs/firebase.js +0 -25
  448. package/src/configs/i18n.js +0 -34
  449. package/src/configs/primaryColorConfig.js +0 -35
  450. package/src/configs/themeConfig.js +0 -44
  451. package/src/layouts/UserLayout.js +0 -94
  452. package/src/layouts/UserThemeOptions.js +0 -191
  453. package/src/layouts/components/Direction.js +0 -30
  454. package/src/layouts/components/HtmlTooltip.js +0 -15
  455. package/src/layouts/components/Translations.js +0 -11
  456. package/src/layouts/components/UserDropdown.js +0 -217
  457. package/src/layouts/components/UserIcon.js +0 -40
  458. package/src/layouts/components/acl/Can.js +0 -6
  459. package/src/layouts/components/acl/CanViewNavGroup.js +0 -36
  460. package/src/layouts/components/acl/CanViewNavLink.js +0 -17
  461. package/src/layouts/components/acl/CanViewNavSectionTitle.js +0 -17
  462. package/src/layouts/components/horizontal/AppBarContent.js +0 -39
  463. package/src/layouts/components/horizontal/ServerSideNavItems.js +0 -44
  464. package/src/layouts/components/mui/StepperComps.js +0 -55
  465. package/src/layouts/components/vertical/AppBarContent.js +0 -35
  466. package/src/layouts/components/vertical/ServerSideNavItems.js +0 -44
  467. package/src/libs/ApexCharts.jsx +0 -5
  468. package/src/libs/ReactPlayer.jsx +0 -5
  469. package/src/libs/Recharts.jsx +0 -4
  470. package/src/libs/auth.js +0 -124
  471. package/src/libs/styles/AppFullCalendar.js +0 -505
  472. package/src/libs/styles/AppKeenSlider.js +0 -116
  473. package/src/libs/styles/AppReactApexCharts.jsx +0 -110
  474. package/src/libs/styles/AppReactDatepicker.jsx +0 -470
  475. package/src/libs/styles/AppReactDropzone.js +0 -76
  476. package/src/libs/styles/AppReactToastify.jsx +0 -108
  477. package/src/libs/styles/AppRecharts.js +0 -55
  478. package/src/libs/styles/inputOtp.module.css +0 -39
  479. package/src/libs/styles/tiptapEditor.css +0 -72
  480. package/src/navigation/horizontal/index.js +0 -246
  481. package/src/navigation/vertical/index.js +0 -253
  482. package/src/pages/401.js +0 -70
  483. package/src/pages/404.js +0 -67
  484. package/src/pages/500.js +0 -68
  485. package/src/pages/[slug].js +0 -115
  486. package/src/pages/_document.js +0 -72
  487. package/src/pages/api/navigation/regenerate-registry.js +0 -116
  488. package/src/pages/api/navigation/save.js +0 -218
  489. package/src/pages/authModule/acl/index.js +0 -48
  490. package/src/pages/authModule/forgot-password/index.js +0 -228
  491. package/src/pages/authModule/permissions/rolePermissions/[id]/rolePermissionsUser/index.js +0 -392
  492. package/src/pages/authModule/permissions/rolePermissions/index.js +0 -343
  493. package/src/pages/authModule/permissions/systemPermissions/index.js +0 -354
  494. package/src/pages/authModule/privacy/index.js +0 -721
  495. package/src/pages/authModule/users/index.js +0 -210
  496. package/src/pages/login/index.js +0 -328
  497. package/src/pages/mainHome/index.js +0 -181
  498. package/src/views/builder/inspector/definitions/cell/main.js +0 -4
  499. package/src/views/builder/inspector/definitions/column/main.js +0 -9
  500. package/src/views/builder/inspector/definitions/column-group/main.js +0 -18
  501. package/src/views/builder/inspector/definitions/header-cell/main.js +0 -5
  502. package/src/views/builder/inspector/definitions/table/main.js +0 -9
  503. package/src/views/builder/viewer/renderers/CellRenderer.jsx +0 -71
  504. package/src/views/builder/viewer/renderers/ColumnGroupRenderer.jsx +0 -96
  505. package/src/views/builder/viewer/renderers/ColumnRenderer.jsx +0 -71
  506. package/src/views/builder/viewer/renderers/HeaderCellRenderer.jsx +0 -78
  507. package/src/views/builder/viewer/renderers/TabRenderer.jsx +0 -82
  508. package/src/views/builder/viewer/renderers/TableRenderer.jsx +0 -92
  509. package/src/views/pages/auth/FooterIllustrationsV2.js +0 -40
  510. package/src/views/pages/misc/FooterIllustrations.js +0 -47
  511. package/src/views/pages/misc/muiTable/CustomPagination.js +0 -34
  512. package/src/views/pages/users/UserManageDialog.js +0 -283
  513. package/src/views/pages/users/UserViewPage.js +0 -199
  514. package/src/views/users/AddUserNameDialog.js +0 -162
  515. package/src/views/users/ContactManage.js +0 -449
  516. package/src/views/users/ResetPasswordDialog.js +0 -242
@@ -0,0 +1,336 @@
1
+ /**
2
+ * Convert string-based functions to executable functions
3
+ * Used for extraCols and columnsConfig that come from JSON configuration.
4
+ *
5
+ * ─────────────────────────────────────────────────────────────────────────────
6
+ * INJECTED VARIABLES (available inside every column function)
7
+ * ─────────────────────────────────────────────────────────────────────────────
8
+ *
9
+ * rowData {object} — The current row's data object (params.data). Injected
10
+ * per-call into the second-argument scope so column functions
11
+ * can destructure it directly:
12
+ * (params, { rowData }) => rowData.Status === 'Active'
13
+ *
14
+ * nodeName {string} — The builder node ID of the ReportViewer that owns this
15
+ * table. Use it to target this table's ref from outside,
16
+ * or pass it to node-aware helpers below.
17
+ *
18
+ * reportRefs {object} — The live registry of all ReportViewer refs on the page.
19
+ * Shape: { [nodeId]: React.MutableRefObject<updateRow[]> }
20
+ * Access any table's ref: reportRefs.current['someNodeId']
21
+ *
22
+ * ─────────────────────────────────────────────────────────────────────────────
23
+ * HELPER FUNCTIONS (also injected — no imports needed)
24
+ * ─────────────────────────────────────────────────────────────────────────────
25
+ *
26
+ * All original helpers from updateRefHelpers are available:
27
+ * setUpdateRefValue, setUpdateRefRow, getUpdateRefValue, hasUpdateRefValue,
28
+ * removeUpdateRefByRowId, clearUpdateRefRow, clearAllUpdateRef,
29
+ * cloneUpdateRefToOriginal, restoreUpdateRefFromOriginal
30
+ *
31
+ * PLUS node-aware wrappers — these accept an optional last `node` argument:
32
+ * - If node is omitted → uses params.context.updateRef (direct, backward compat)
33
+ * - If node is a string → uses reportRefs.current[node] (targets another table)
34
+ * - Pass the special constant `THIS_NODE` to target THIS table by nodeName
35
+ *
36
+ * setRefValue(updateRef, rowData, rowUniqueId, fieldPath, newValue, node?)
37
+ * setRefRow(updateRef, rowData, rowUniqueId, updates, node?)
38
+ * getRefValue(updateRef, rowData, rowUniqueId, fieldPath, node?)
39
+ * hasRefValue(updateRef, rowData, rowUniqueId, fieldPath, node?)
40
+ * clearRefRow(updateRef, rowData, rowUniqueId, node?)
41
+ * clearAllRef(updateRef, node?)
42
+ *
43
+ * Convenience: resolve a ref without specifying updateRef at all
44
+ * getNodeRef(nodeId?) — returns the updateRef for nodeId (or nodeName if omitted)
45
+ *
46
+ * ─────────────────────────────────────────────────────────────────────────────
47
+ * USAGE EXAMPLES
48
+ * ─────────────────────────────────────────────────────────────────────────────
49
+ *
50
+ * // valueSetter — using rowData from the second-argument scope:
51
+ * (params, { rowData, setRefValue, getNodeRef }) => {
52
+ * const { newValue } = params
53
+ * rowData.IsPublic = newValue
54
+ * setRefValue(params.context.updateRef, rowData, 'Id', 'IsPublic', newValue)
55
+ * return true
56
+ * }
57
+ *
58
+ * // valueSetter — same table, using getNodeRef shortcut:
59
+ * (params, { rowData }) => {
60
+ * const { newValue } = params
61
+ * rowData.IsPublic = newValue
62
+ * setUpdateRefValue(getNodeRef(), rowData, 'Id', 'IsPublic', newValue)
63
+ * return true
64
+ * }
65
+ *
66
+ * // valueSetter — update a DIFFERENT table's ref by its builder node ID:
67
+ * (params) => {
68
+ * const { newValue, data, context } = params
69
+ * data.Amount = newValue
70
+ * setRefValue(context.updateRef, data, 'Id', 'Amount', newValue, 'report-node-abc')
71
+ * return true
72
+ * }
73
+ *
74
+ * // valueGetter — read from ref, fall back to raw data:
75
+ * (params) => {
76
+ * return getRefValue(params.context.updateRef, params.data, 'Id', 'IsPublic')
77
+ * ?? params.data?.IsPublic
78
+ * }
79
+ *
80
+ * // Directly access any report's ref (e.g. from a button action):
81
+ * const ref = reportRefs.current['some-node-id']
82
+ * const changes = ref?.current ?? []
83
+ *
84
+ * ─────────────────────────────────────────────────────────────────────────────
85
+ */
86
+
87
+ import {
88
+ setUpdateRefValue,
89
+ setUpdateRefRow,
90
+ getUpdateRefValue,
91
+ hasUpdateRefValue,
92
+ removeUpdateRefByRowId,
93
+ clearUpdateRefRow,
94
+ clearAllUpdateRef,
95
+ cloneUpdateRefToOriginal,
96
+ restoreUpdateRefFromOriginal,
97
+ } from './updateRefHelpers'
98
+ import fetchReportDataByPageId from 'services/reportData/fetchReportData'
99
+
100
+ // ─── Sentinel constant ────────────────────────────────────────────────────────
101
+ // Pass THIS_NODE as the `node` arg to target the current table's nodeName.
102
+ export const THIS_NODE = '__THIS__'
103
+
104
+ // ─── Helper factory ───────────────────────────────────────────────────────────
105
+
106
+ /**
107
+ * Resolve the effective updateRef for a given node identifier.
108
+ * - node === undefined/null → use the passed directRef (backward compat)
109
+ * - node === THIS_NODE → use reportRefs.current[nodeName]
110
+ * - node === string → use reportRefs.current[node]
111
+ *
112
+ * Exported so other execution contexts (e.g. RowActionsCell) can reuse it.
113
+ */
114
+ export function makeNodeAwareHelpers(reportRefs, nodeName) {
115
+ function resolveRef(directRef, node) {
116
+ if (!node) return directRef
117
+ const id = node === THIS_NODE ? nodeName : node
118
+ return (reportRefs?.current?.[id]) ?? directRef
119
+ }
120
+
121
+ return {
122
+ /** Resolve a ref without needing directRef — returns the updateRef for nodeId (or nodeName) */
123
+ getNodeRef: (nodeId) => {
124
+ const id = nodeId ?? nodeName
125
+ return reportRefs?.current?.[id] ?? null
126
+ },
127
+
128
+ setRefValue: (directRef, rowData, rowUniqueId, fieldPath, newValue, node) =>
129
+ setUpdateRefValue(resolveRef(directRef, node), rowData, rowUniqueId, fieldPath, newValue),
130
+
131
+ setRefRow: (directRef, rowData, rowUniqueId, updates, node) =>
132
+ setUpdateRefRow(resolveRef(directRef, node), rowData, rowUniqueId, updates),
133
+
134
+ getRefValue: (directRef, rowData, rowUniqueId, fieldPath, node) =>
135
+ getUpdateRefValue(resolveRef(directRef, node), rowData, rowUniqueId, fieldPath),
136
+
137
+ hasRefValue: (directRef, rowData, rowUniqueId, fieldPath, node) =>
138
+ hasUpdateRefValue(resolveRef(directRef, node), rowData, rowUniqueId, fieldPath),
139
+
140
+ clearRefRow: (directRef, rowData, rowUniqueId, node) =>
141
+ clearUpdateRefRow(resolveRef(directRef, node), rowData, rowUniqueId),
142
+
143
+ clearAllRef: (directRef, node) =>
144
+ clearAllUpdateRef(resolveRef(directRef, node)),
145
+ }
146
+ }
147
+
148
+ // ─── Core converter ───────────────────────────────────────────────────────────
149
+
150
+ /**
151
+ * Convert a string function to an executable function.
152
+ * Injects updateRef helpers + node-aware utilities into scope.
153
+ *
154
+ * @param {string} funcString - The function as a string
155
+ * @param {object} [ctx] - Optional context for node-aware helpers
156
+ * @param {object} [ctx.reportRefs] - The live reportRefs registry (useRef)
157
+ * @param {string} [ctx.nodeName] - The builder node ID for this table
158
+ * @returns {Function|string}
159
+ */
160
+ export const convertStringToFunction = (funcString, ctx = {}) => {
161
+ if (typeof funcString !== 'string' || !funcString.trim()) return funcString
162
+
163
+ const { reportRefs = null, nodeName = '', data = {}, dataRef = {}, setData = null, openDialog = null, closeDialog = null } = ctx
164
+ const nodeHelpers = makeNodeAwareHelpers(reportRefs, nodeName)
165
+
166
+ // ── Scope object ─────────────────────────────────────────────────────────────
167
+ // Passed explicitly as the second argument: (params, { data, setData, ... }) => {}
168
+ // Also injected into the lexical scope via new Function for backward compatibility
169
+ // with old single-argument functions that reference helpers directly by name.
170
+ const scope = {
171
+ // Viewer state
172
+ data,
173
+ setData: setData ?? (() => {}),
174
+ dataRef,
175
+ fetchReportData: fetchReportDataByPageId,
176
+ openDialog: openDialog ?? (() => {}),
177
+ closeDialog: closeDialog ?? (() => {}),
178
+ // Node-aware ref wrappers
179
+ setRefValue: nodeHelpers.setRefValue,
180
+ setRefRow: nodeHelpers.setRefRow,
181
+ getRefValue: nodeHelpers.getRefValue,
182
+ hasRefValue: nodeHelpers.hasRefValue,
183
+ clearRefRow: nodeHelpers.clearRefRow,
184
+ clearAllRef: nodeHelpers.clearAllRef,
185
+ getNodeRef: nodeHelpers.getNodeRef,
186
+ // Low-level ref helpers
187
+ setUpdateRefValue, setUpdateRefRow, getUpdateRefValue, hasUpdateRefValue,
188
+ removeUpdateRefByRowId, clearUpdateRefRow, clearAllUpdateRef,
189
+ cloneUpdateRefToOriginal, restoreUpdateRefFromOriginal,
190
+ // Context constants
191
+ reportRefs, nodeName, THIS_NODE,
192
+ }
193
+
194
+ const scopeNames = Object.keys(scope)
195
+ const scopeValues = Object.values(scope)
196
+
197
+ try {
198
+ const trimmed = funcString.trim()
199
+
200
+ // Strip leading block comments (/** ... */ or /* ... */) and line comments (// ...)
201
+ // so the pattern check below works even when the user writes JSDoc above the function.
202
+ const stripped = trimmed
203
+ .replace(/^(\s*(\/\*[\s\S]*?\*\/|\/\/[^\n]*)\s*)+/, '')
204
+ .trim()
205
+
206
+ let bodyTemplate
207
+
208
+ if (stripped.startsWith('(') && trimmed.includes('=>')) {
209
+ bodyTemplate = `"use strict"; const userFunc = ${trimmed}; return userFunc;`
210
+ } else if (stripped.startsWith('function') || stripped.startsWith('async function')) {
211
+ bodyTemplate = `"use strict"; const userFunc = ${trimmed}; return userFunc;`
212
+ } else if (stripped.startsWith('async (') || stripped.startsWith('async(')) {
213
+ bodyTemplate = `"use strict"; const userFunc = ${trimmed}; return userFunc;`
214
+ } else if (stripped.startsWith('return ')) {
215
+ bodyTemplate = `"use strict"; return function(params) { ${trimmed} };`
216
+ } else {
217
+ return funcString
218
+ }
219
+
220
+ // eslint-disable-next-line no-new-func
221
+ const userFunc = new Function(...scopeNames, bodyTemplate)(...scopeValues)
222
+
223
+ // Return an AG Grid-compatible 1-arg wrapper that passes `scope` as the
224
+ // explicit second argument — (params, { data, setData, rowData, ... }) => {}
225
+ // rowData is the current row's data object (agParams.data), injected per-call
226
+ // so column functions can destructure it directly without going through params.
227
+ return (agParams) => userFunc(agParams, { ...scope, rowData: agParams?.data })
228
+ } catch (e) {
229
+ console.error('Failed to convert string to function:', e)
230
+ console.error('Function string:', funcString)
231
+ return funcString
232
+ }
233
+ }
234
+
235
+ // ─── Column definition processors ────────────────────────────────────────────
236
+
237
+ const FUNCTION_PROPERTIES = [
238
+ 'valueSetter', 'valueGetter', 'valueFormatter', 'valueParser',
239
+ 'cellRenderer', 'cellEditor', 'cellClass', 'cellStyle', 'editable',
240
+ 'comparator', 'equals', 'keyCreator', 'filterValueGetter', 'filterParams',
241
+ 'cellEditorParams', 'cellRendererParams', 'headerValueGetter',
242
+ 'tooltipValueGetter', 'aggFunc', 'getQuickFilterText',
243
+ 'suppressKeyboardEvent', 'suppressPaste', 'cellClassRules',
244
+ ]
245
+
246
+ /**
247
+ * Process a single column definition — convert all string functions.
248
+ *
249
+ * @param {object} colDef
250
+ * @param {object} [ctx] - { reportRefs, nodeName }
251
+ * @returns {object}
252
+ */
253
+ export const processColumnDefinition = (colDef, ctx = {}) => {
254
+ if (!colDef || typeof colDef !== 'object') return colDef
255
+
256
+ const processed = { ...colDef }
257
+
258
+ FUNCTION_PROPERTIES.forEach(prop => {
259
+ if (prop in processed && typeof processed[prop] === 'string') {
260
+ const converted = convertStringToFunction(processed[prop], ctx)
261
+ if (converted !== processed[prop]) {
262
+ if (prop === 'valueSetter' || prop === 'valueGetter') {
263
+ console.log(`[processColumnDef] ✅ "${prop}" on field "${processed.field}" converted to function`)
264
+ }
265
+ processed[prop] = converted
266
+ } else {
267
+ if (prop === 'valueSetter' || prop === 'valueGetter') {
268
+ console.warn(`[processColumnDef] ⚠️ "${prop}" on field "${processed.field}" was NOT converted — string returned as-is:`, processed[prop])
269
+ }
270
+ }
271
+ }
272
+ })
273
+
274
+ // Special handling for cellEditorParams — can be a function string or plain JSON object.
275
+ if ('cellEditorParams' in processed && typeof processed.cellEditorParams === 'string') {
276
+ const converted = convertStringToFunction(processed.cellEditorParams, ctx)
277
+ if (converted !== processed.cellEditorParams) {
278
+ // Was recognised as a function string → use the converted function
279
+ console.log(`[processColumnDef] ✅ cellEditorParams on field "${processed.field}" converted to function`)
280
+ processed.cellEditorParams = converted
281
+ } else {
282
+ // Not a function — try JSON.parse so editors receive a plain object, not a string
283
+ try {
284
+ processed.cellEditorParams = JSON.parse(processed.cellEditorParams)
285
+ console.log(`[processColumnDef] ✅ cellEditorParams on field "${processed.field}" parsed as JSON object`)
286
+ } catch { /* leave as-is */ }
287
+ }
288
+ } else if ('cellEditorParams' in processed) {
289
+ console.log(`[processColumnDef] ℹ️ cellEditorParams on field "${processed.field}" is already type "${typeof processed.cellEditorParams}" — skipped conversion`)
290
+ }
291
+
292
+ // Ensure MultiSelectEditor always runs as a popup — required for AG Grid v33+.
293
+ // cellEditorPopup on the colDef is the authoritative way; isPopup() on the
294
+ // component instance alone is not reliable in modern AG Grid React.
295
+ if (processed.cellEditor === 'MultiSelectEditor') {
296
+ processed.cellEditorPopup = true
297
+ console.log(`[processColumnDef] ✅ cellEditorPopup=true injected for field "${processed.field}"`, {
298
+ cellEditorParamsType: typeof processed.cellEditorParams,
299
+ hasValueSetter: typeof processed.valueSetter === 'function',
300
+ hasValueGetter: typeof processed.valueGetter === 'function',
301
+ })
302
+ }
303
+
304
+ return processed
305
+ }
306
+
307
+ /**
308
+ * Process an array of column definitions.
309
+ *
310
+ * @param {Array} colDefs
311
+ * @param {object} [ctx] - { reportRefs, nodeName }
312
+ * @returns {Array}
313
+ */
314
+ export const processColumnDefinitions = (colDefs, ctx = {}) => {
315
+ if (!Array.isArray(colDefs)) return colDefs
316
+ return colDefs.map(colDef => processColumnDefinition(colDef, ctx))
317
+ }
318
+
319
+ /**
320
+ * Process columnsConfig array — [{ field, config }] format.
321
+ *
322
+ * @param {Array} columnsConfig
323
+ * @param {object} [ctx] - { reportRefs, nodeName }
324
+ * @returns {Array}
325
+ */
326
+ export const processColumnsConfig = (columnsConfig, ctx = {}) => {
327
+ if (!Array.isArray(columnsConfig)) return columnsConfig
328
+
329
+ return columnsConfig.map(item => {
330
+ if (!item || !item.config) return item
331
+ return {
332
+ ...item,
333
+ config: processColumnDefinition(item.config, ctx),
334
+ }
335
+ })
336
+ }
@@ -10,7 +10,9 @@ const CustomStatusBar = ({ api }) => {
10
10
 
11
11
  const updateStatus = () => {
12
12
  setTotalRows(api.getDisplayedRowCount());
13
- setSelectedRows(api.getSelectedRows().length);
13
+ // getSelectedRows() can return undefined when row selection is not configured
14
+ const selected = api.getSelectedRows?.() ?? []
15
+ setSelectedRows(Array.isArray(selected) ? selected.length : 0);
14
16
  };
15
17
 
16
18
  // Listen to row changes