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
@@ -58,7 +58,7 @@ import Grid from '@mui/material/Grid'
58
58
  // ** Icons Imports
59
59
  // ** Store Imports
60
60
  // ** Custom Components Imports
61
- import {useCallback, useContext, useEffect, useMemo, useRef, useState} from 'react'
61
+ import {createContext, useCallback, useContext, useEffect, useMemo, useRef, useState} from 'react'
62
62
 
63
63
  // Global styles for flashing effect
64
64
  if (typeof document !== 'undefined') {
@@ -79,15 +79,15 @@ if (typeof document !== 'undefined') {
79
79
 
80
80
  import {Endpoints, Services} from 'src/services/Endpoints'
81
81
  import {
82
- Autocomplete, Checkbox,
82
+ Autocomplete, Button, Checkbox,
83
83
  CircularProgress,
84
- Dialog,
84
+ Dialog, Divider,
85
85
  FormControl, FormControlLabel,
86
86
  IconButton,
87
87
  MenuItem,
88
88
  Select,
89
89
  TextField,
90
- Tooltip,
90
+ Tooltip, Typography,
91
91
  Chip,
92
92
  Stack,
93
93
  Popper,
@@ -136,6 +136,7 @@ import {
136
136
  restoreUpdateRefFromOriginal
137
137
  } from './updateRefHelpers'
138
138
  import {processColumnDefinitions, processColumnsConfig} from './convertStringFunctions'
139
+ import { AG_COMPONENTS } from 'views/builder/viewer/renderers/dataGridComponents'
139
140
 
140
141
  // ** Utils Import
141
142
 
@@ -148,6 +149,122 @@ const defaultFinalRequest = {
148
149
  filter: {},
149
150
  params: {}
150
151
  }
152
+
153
+ // ── Templates tool panel ──────────────────────────────────────────────────────
154
+ // Defined outside SGrid so the reference is stable (no remounts on parent renders).
155
+ // State flows in via React Context (AG Grid v33 renders custom components in the
156
+ // same React tree, so context is fully supported).
157
+ const TemplateStateContext = createContext(null)
158
+
159
+ function SettingsSection({ title, children }) {
160
+ return (
161
+ <Box style={{ display: 'block', width: '100%' }}>
162
+ <Box sx={{
163
+ px: 2, py: 0.75,
164
+ bgcolor: 'grey.100',
165
+ borderTop: '1px solid', borderBottom: '1px solid', borderColor: 'divider',
166
+ }}>
167
+ <Typography sx={{ fontSize: '0.6875rem', fontWeight: 700, textTransform: 'uppercase', letterSpacing: 0.8, color: 'text.secondary' }}>
168
+ {title}
169
+ </Typography>
170
+ </Box>
171
+ <Box sx={{ p: 2, boxSizing: 'border-box', width: '100%' }}>
172
+ {children}
173
+ </Box>
174
+ </Box>
175
+ )
176
+ }
177
+
178
+ function TemplatesToolPanel() {
179
+ const ctx = useContext(TemplateStateContext)
180
+ if (!ctx) return null
181
+ const {
182
+ templates, selectedTemplate, setSelectedTemplate,
183
+ handleGetTemplates, handleSaveTemplate,
184
+ handleToggleDialogs, setIsTemplateEditing,
185
+ builderData,
186
+ } = ctx
187
+
188
+ return (
189
+ <Box style={{ display: 'flex', flexDirection: 'column', height: '100%', width: 250 }}>
190
+ {/* Panel header */}
191
+ <Box sx={{
192
+ px: 2, py: 1.5,
193
+ borderBottom: '1px solid', borderColor: 'divider',
194
+ bgcolor: 'background.paper',
195
+ position: 'sticky', top: 0, zIndex: 1,
196
+ }}>
197
+ <Typography variant='subtitle2' sx={{ fontWeight: 700, color: 'text.primary' }}>
198
+ Settings
199
+ </Typography>
200
+ </Box>
201
+
202
+ {/* Template section */}
203
+ <SettingsSection title='Template'>
204
+ {builderData?.id == null ? (
205
+ <Typography variant='caption' sx={{ color: 'text.disabled' }}>No report loaded</Typography>
206
+ ) : (
207
+ <Box sx={{ display: 'flex', flexDirection: 'column', gap: 2, width: '100%' }}>
208
+ <Autocomplete
209
+ size='small'
210
+ value={selectedTemplate}
211
+ options={templates}
212
+ onChange={(_, value) => setSelectedTemplate(value)}
213
+ getOptionLabel={option => option.name}
214
+ renderInput={params => (
215
+ <TextField
216
+ label='Active Template'
217
+ {...params}
218
+ onMouseDown={handleGetTemplates}
219
+ />
220
+ )}
221
+ />
222
+
223
+ <Box sx={{ display: 'flex', flexDirection: 'column', gap: 1, width: '100%' }}>
224
+ <Button
225
+ size='small'
226
+ variant='outlined'
227
+ startIcon={<Save fontSize='small' />}
228
+ disabled={selectedTemplate == null}
229
+ onClick={handleSaveTemplate}
230
+ fullWidth
231
+ sx={{ justifyContent: 'flex-start' }}
232
+ >
233
+ Save
234
+ </Button>
235
+
236
+ <Button
237
+ size='small'
238
+ variant='outlined'
239
+ startIcon={<SaveAs fontSize='small' />}
240
+ onClick={() => { setIsTemplateEditing(false); handleToggleDialogs('addTemplate') }}
241
+ fullWidth
242
+ sx={{ justifyContent: 'flex-start' }}
243
+ >
244
+ Save As New
245
+ </Button>
246
+
247
+ <Button
248
+ size='small'
249
+ variant='outlined'
250
+ startIcon={<Edit fontSize='small' />}
251
+ disabled={selectedTemplate == null}
252
+ onClick={() => { setIsTemplateEditing(true); handleToggleDialogs('addTemplate') }}
253
+ fullWidth
254
+ sx={{ justifyContent: 'flex-start' }}
255
+ >
256
+ Edit
257
+ </Button>
258
+ </Box>
259
+ </Box>
260
+ )}
261
+ </SettingsSection>
262
+ </Box>
263
+ )
264
+ }
265
+
266
+ // ─────────────────────────────────────────────────────────────────────────────
267
+
151
268
  const SGrid = props => {
152
269
  // ** State
153
270
  const appContext = useContext(SystemContext);
@@ -182,7 +299,16 @@ const SGrid = props => {
182
299
  columnsConfig,
183
300
  dataAsObject = false,
184
301
  isRerender = false,
185
- updateRef
302
+ updateRef,
303
+ // nodeId — builder schema node ID for this ReportViewer (set by ReportViewerRenderer)
304
+ // reportRefs — shared registry { [nodeId]: updateRef } for all reports on the page
305
+ nodeId,
306
+ reportRefs,
307
+ // Viewer state — passed through to column string functions via convertStringFunctions ctx
308
+ data: viewerData,
309
+ dataRef: viewerDataRef,
310
+ openDialog,
311
+ closeDialog,
186
312
  } = props
187
313
  const groupEndPoint = ReportBuilderEndpoints.Post.GenericGet;
188
314
  const streamEndPoint = ReportBuilderEndpoints.Post.GenericGet;
@@ -696,7 +822,7 @@ const SGrid = props => {
696
822
  const propertyType = col.propertyType ?? col.field?.propertyType;
697
823
  const propPath = col.headerName ?? col.path;
698
824
  const fieldName = col.headerName ?? col.path.replace(/\./g, '_');
699
- const processedColumnsConfig = processColumnsConfig(columnsConfig ?? []);
825
+ const processedColumnsConfig = processColumnsConfig(columnsConfig ?? [], { reportRefs, nodeName: nodeId, data: viewerData, dataRef: viewerDataRef, setData, openDialog, closeDialog });
700
826
  const externalColConfig = processedColumnsConfig.find(x => x.field === fieldName)?.config ?? {}
701
827
  const headerName = col.title ?? col.headerName ?? col.path;
702
828
  const hasRouting = routingSettings.some(r => r.fieldName === fieldName);
@@ -959,7 +1085,7 @@ const SGrid = props => {
959
1085
  }))
960
1086
  setSelectParams(localSelectParams);
961
1087
  if (extraCols != null) {
962
- const processedExtraCols = processColumnDefinitions(extraCols);
1088
+ const processedExtraCols = processColumnDefinitions(extraCols, { reportRefs, nodeName: nodeId, data: viewerData, dataRef: viewerDataRef, setData, openDialog, closeDialog });
963
1089
  localColDefs = [...processedExtraCols, ...localColDefs];
964
1090
  }
965
1091
  localColDefs = [...localColDefs, ...defaultCols];
@@ -1010,7 +1136,7 @@ const SGrid = props => {
1010
1136
  tableCols = processColumns(tableCols)
1011
1137
  let localColDefs = [...tableCols, ...defaultCols]
1012
1138
  if (extraCols != null) {
1013
- const processedExtraCols = processColumnDefinitions(extraCols);
1139
+ const processedExtraCols = processColumnDefinitions(extraCols, { reportRefs, nodeName: nodeId, data: viewerData, dataRef: viewerDataRef, setData, openDialog, closeDialog });
1014
1140
  localColDefs = [...processedExtraCols, ...localColDefs]
1015
1141
  }
1016
1142
  const localSelectTFilter = response.data.map(x => ({
@@ -1125,7 +1251,7 @@ const SGrid = props => {
1125
1251
  id: targetPageId ? null : (builderId ?? null)
1126
1252
  };
1127
1253
 
1128
- const base = '/reportBuilder/reportViewer';
1254
+ const base = '/builders/report/viewer';
1129
1255
  let url = base;
1130
1256
  if (targetPageId) {
1131
1257
  url += `?pageId=${encodeURIComponent(targetPageId)}`;
@@ -1301,26 +1427,35 @@ const SGrid = props => {
1301
1427
  }
1302
1428
  }
1303
1429
 
1304
- const sideBarConfig = useMemo(() => ({
1305
- toolPanels: [
1306
- {
1307
- id: 'columns',
1308
- labelDefault: 'Columns',
1309
- labelKey: 'columns',
1310
- iconKey: 'columns',
1311
- toolPanel: 'agColumnsToolPanel',
1312
- toolPanelParams: {
1313
- suppressRowGroups: groupBy != null,
1314
- suppressValues: groupBy != null,
1430
+ const sideBarConfig = useMemo(
1431
+ () => ({
1432
+ toolPanels: [
1433
+ {
1434
+ id: 'columns',
1435
+ labelDefault: 'Columns',
1436
+ labelKey: 'columns',
1437
+ iconKey: 'columns',
1438
+ toolPanel: 'agColumnsToolPanel',
1439
+ toolPanelParams: {
1440
+ suppressRowGroups: groupBy != null,
1441
+ suppressValues: groupBy != null
1442
+ },
1443
+ minWidth: 225
1315
1444
  },
1316
- minWidth: 225,
1317
- },
1318
-
1319
- ],
1320
- position: 'left',
1321
- // ← optionally open this panel by default on init
1322
- defaultToolPanel: 'columns',
1323
- }), [groupBy]); // only re-create if groupBy changes
1445
+ {
1446
+ id: 'templates',
1447
+ labelDefault: 'Templates',
1448
+ labelKey: 'templates',
1449
+ iconKey: 'menu',
1450
+ toolPanel: 'templatesToolPanel',
1451
+ minWidth: 250,
1452
+ }
1453
+ ],
1454
+ position: 'right',
1455
+ defaultToolPanel: '' // closed by default
1456
+ }),
1457
+ [groupBy]
1458
+ ) // only re-create if groupBy changes
1324
1459
  const handleGetAggregationObject = (agg) => {
1325
1460
 
1326
1461
  const matchedCol = builderData.selectedFields.find(col => {
@@ -2323,33 +2458,6 @@ const SGrid = props => {
2323
2458
  sx={{backgroundColor: '#fafafb', justifyContent: 'space-between'}} padding={2}
2324
2459
  size={{ xs: 12 }}>
2325
2460
  <Box sx={{display: 'flex'}}>
2326
- {(builderData?.id != null && minimized !== true) &&
2327
- <Box sx={{minWidth: '250px'}}>
2328
-
2329
- <FormControl fullWidth>
2330
- <Autocomplete
2331
- size={'small'}
2332
- value={selectedTemplate}
2333
- fullWidth
2334
- options={templates}
2335
- onChange={(e, value) => {
2336
- setSelectedTemplate(value)
2337
- }}
2338
-
2339
- getOptionLabel={option => option.name}
2340
- renderInput={params => (
2341
- <TextField
2342
- label='شكل النموذج'
2343
- {...params}
2344
- onMouseDown={() => {
2345
- handleGetTemplates()
2346
- }}
2347
- />
2348
- )}
2349
- />
2350
- </FormControl>
2351
- </Box>
2352
- }
2353
2461
  <Box sx={{ml: '5px'}}>
2354
2462
  <Tooltip title='مؤقت' placement={'top'}>
2355
2463
  <Select variant={'outlined'} value={timerValue} onChange={(e) => setTimerValue(e.target.value)}
@@ -2523,43 +2631,6 @@ const SGrid = props => {
2523
2631
  </Tooltip>
2524
2632
  </Box>
2525
2633
  }
2526
- {
2527
- builderData?.id != null && minimized !== true && <>
2528
- <Box>
2529
- <Tooltip title='حفظ النموذج'>
2530
- <IconButton disabled={selectedTemplate == null} onClick={() => {
2531
- handleSaveTemplate()
2532
- }} color='primary'>
2533
- <Save/>
2534
- </IconButton>
2535
- </Tooltip>
2536
- </Box>
2537
- <Box>
2538
- <Tooltip title='حفظ بأسم'>
2539
- <IconButton onClick={() => {
2540
- setIsTemplateEditing(false)
2541
- handleToggleDialogs('addTemplate')
2542
- }} color='primary'>
2543
- <SaveAs/>
2544
- </IconButton>
2545
- </Tooltip>
2546
- </Box>
2547
-
2548
- <Box>
2549
- <Tooltip title='تعديل'>
2550
- <IconButton disabled={selectedTemplate == null}
2551
- onClick={() => {
2552
- setIsTemplateEditing(true)
2553
- handleToggleDialogs('addTemplate')
2554
- }}
2555
- color='primary'
2556
- >
2557
- <Edit/>
2558
- </IconButton>
2559
- </Tooltip>
2560
- </Box>
2561
- </>
2562
- }
2563
2634
  {<Box>
2564
2635
 
2565
2636
  <IconButton color={'primary'} onClick={() => handleToggleDialogs('CustomFilter')}>
@@ -2577,6 +2648,16 @@ const SGrid = props => {
2577
2648
 
2578
2649
  </Box>
2579
2650
  </Grid>
2651
+ <TemplateStateContext.Provider value={{
2652
+ templates,
2653
+ selectedTemplate,
2654
+ setSelectedTemplate,
2655
+ handleGetTemplates,
2656
+ handleSaveTemplate,
2657
+ handleToggleDialogs,
2658
+ setIsTemplateEditing,
2659
+ builderData,
2660
+ }}>
2580
2661
  <div style={{width: "100%", height: minimized === true ? "0px" : height ?? "70vh", direction: 'ltr'}}>
2581
2662
  <AgGridReact
2582
2663
 
@@ -2596,8 +2677,20 @@ const SGrid = props => {
2596
2677
  tRouting,
2597
2678
  builderId: builderData?.id,
2598
2679
  updateRef: updateRef,
2599
- settings: builderModel?.settings
2600
- }} // pass routing, builder id, updateRef and settings
2680
+ settings: builderModel?.settings,
2681
+ // Node identity available inside all column functions as params.context.nodeId / nodeName
2682
+ nodeId: nodeId ?? null,
2683
+ nodeName: nodeId ?? null, // alias for convenience
2684
+ // Shared registry — access any report's ref: params.context.reportRefs.current['nodeId']
2685
+ reportRefs: reportRefs ?? null,
2686
+ // Returns the latest viewer state snapshot — used by MultiSelectEditor to commit values
2687
+ getViewerContext: () => ({
2688
+ data: viewerData,
2689
+ setData: setData ?? (() => {}),
2690
+ dataRef: viewerDataRef,
2691
+ reportRefs: reportRefs ?? null,
2692
+ }),
2693
+ }} // pass routing, builder id, updateRef, node identity and reportRefs
2601
2694
  gridOptions={{
2602
2695
  enableRangeSelection: true,
2603
2696
  enableCharts: true,
@@ -2729,14 +2822,21 @@ const SGrid = props => {
2729
2822
  }}
2730
2823
 
2731
2824
  components={{
2825
+ ...AG_COMPONENTS,
2732
2826
  routingCell: RoutingCell,
2733
2827
  imageCell: ImageCell,
2734
2828
  customStatusBar: CustomStatusBar,
2735
- // agColumnsToolPanel: CustomColumnsToolPanel
2736
-
2829
+ templatesToolPanel: TemplatesToolPanel,
2737
2830
  }}
2738
2831
 
2739
2832
 
2833
+ onCellValueChanged={params => {
2834
+ // Guard: skip undefined phantom reverts produced by MultiSelectEditor's stopEditing(true) cancel path
2835
+ if (params.newValue === undefined && params.colDef?.cellEditor === 'MultiSelectEditor') {
2836
+ return
2837
+ }
2838
+ }}
2839
+
2740
2840
  onSortChanged={params => {
2741
2841
  const sm = params.columns;
2742
2842
  if (sm.length == 1 && sm.some(s => s.colId === 'IZ_groupCount')) {
@@ -2745,6 +2845,7 @@ const SGrid = props => {
2745
2845
  }}
2746
2846
  />
2747
2847
  </div>
2848
+ </TemplateStateContext.Provider>
2748
2849
  <Dialog
2749
2850
  fullWidth
2750
2851
  open={openDialogs?.addTemplate && builderData?.id != null}
@@ -2778,7 +2879,7 @@ const SGrid = props => {
2778
2879
  className={builderData?.reportSource?.fullName}
2779
2880
  LocalFilter={false}
2780
2881
 
2781
- isViewer={router.pathname.includes('reportViewer')}
2882
+ isViewer={router.pathname.includes('report/viewer')}
2782
2883
  selectTFilter={selectTFilter}
2783
2884
  selectParamsMeta={builderData?.selectionParams || []}
2784
2885
  selectParamsValues={selectParams}
@@ -13,7 +13,8 @@ import {
13
13
  TextField,
14
14
  Typography
15
15
  } from '@mui/material'
16
- import {ArrowLeft, Close, DeleteOutline, FilterPlus} from 'mdi-material-ui'
16
+ import {ArrowLeft, Close, FilterPlus} from 'mdi-material-ui'
17
+ import {DeleteOutlined} from '@mui/icons-material'
17
18
  import Autocomplete from '@mui/material/Autocomplete'
18
19
  import {Endpoints, Services} from 'src/services/Endpoints'
19
20
 
@@ -231,7 +232,7 @@ export default function SearchFilterDialog({
231
232
  key={s.fullPath+idx}
232
233
  label={`${s.path}`}
233
234
  onDelete={()=> removeItem(idx)}
234
- deleteIcon={<DeleteOutline/>}
235
+ deleteIcon={<DeleteOutlined/>}
235
236
  variant='outlined'
236
237
  />
237
238
  ))}
@@ -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
 
13
13
  const AutocompleteEditor = React.memo(
14
14
  forwardRef((props, ref) => {
@@ -124,9 +124,7 @@ const AutocompleteEditor = React.memo(
124
124
  });
125
125
 
126
126
  return (
127
- <SettingsConsumer>
128
- {({settings}) => (
129
- <ThemeComponent settings={settings}>
127
+ <ThemeProvider theme={defaultTheme}>
130
128
  <Autocomplete
131
129
  multiple={!props.isSingle === true}
132
130
  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
  );