robobyte-front-builder 1.0.19 → 1.0.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (520) hide show
  1. package/INTEGRATION.md +1586 -0
  2. package/README.md +928 -0
  3. package/RoboByteBuilder_User_Manual.docx +0 -0
  4. package/next.config.js +19 -48
  5. package/package.json +42 -86
  6. package/src/context/BuilderContext.jsx +191 -7
  7. package/src/context/SystemContext.js +2 -2
  8. package/src/hooks/useGlobalStore.js +36 -0
  9. package/src/hooks/useTimerEngine.js +54 -0
  10. package/src/lib/index.js +11 -3
  11. package/src/lib/layouts/BlankLayout.jsx +13 -0
  12. package/src/lib/providers/RoboByteFrontBuilderProvider.jsx +61 -7
  13. package/src/lib/themes/builderTheme.js +41 -0
  14. package/src/pages/_app.js +32 -134
  15. package/src/pages/api/ai.js +107 -0
  16. package/src/pages/builders/report/index.js +1 -0
  17. package/src/pages/builders/report/list/index.js +1 -0
  18. package/src/pages/builders/report/viewer/index.js +1 -0
  19. package/src/pages/index.js +88 -37
  20. package/src/pages/printBuilder/index.jsx +263 -0
  21. package/src/pages/printBuilder/layouts/index.jsx +298 -0
  22. package/src/pages/reportModule/reportBuilder/index.js +8 -6
  23. package/src/pages/reportModule/reportBuilder/reportViewer/index.js +92 -25
  24. package/src/pages/reportModule/reportBuilder/reports/index.js +3 -5
  25. package/src/pages/reportModule/reportBuilder/reportsPermissions/index.js +2 -3
  26. package/src/pages/viewBuilder/index.jsx +117 -32
  27. package/src/pages/viewBuilder/views/index.js +3 -3
  28. package/src/pages/viewer/[id]/index.js +2 -1
  29. package/src/services/DeleteService.js +31 -60
  30. package/src/services/Endpoints/PrintLayoutEndpoints.js +42 -0
  31. package/src/services/Endpoints/ReportBuilderEndpoints.js +7 -7
  32. package/src/services/Endpoints.js +2 -0
  33. package/src/services/GetService.js +33 -54
  34. package/src/services/PatchService.js +38 -65
  35. package/src/services/PostService.js +37 -63
  36. package/src/services/UpdateService.js +39 -65
  37. package/src/services/builderHelper/actionExecutor.js +141 -25
  38. package/src/services/builderHelper/builderHelper.js +92 -0
  39. package/src/services/builderHelper/colorSchema.js +95 -0
  40. package/src/services/builderHelper/iconResolver.js +50 -0
  41. package/src/services/builderHelper/jsExecutor.js +212 -46
  42. package/src/services/builderHelper/nodeFactory.js +32 -15
  43. package/src/services/builderHelper/numberFormat.js +123 -0
  44. package/src/services/builderHelper/resolveProps.js +73 -4
  45. package/src/services/builderHelper/thresholdEngine.js +77 -0
  46. package/src/services/builderHelper/tree.js +31 -0
  47. package/src/services/components/agGridAutoComplete.js +5 -9
  48. package/src/services/config.js +9 -1
  49. package/src/services/globalStore.js +80 -0
  50. package/src/services/helper/multiSelectEditor.js +5 -9
  51. package/src/services/helper/multiSelectEditorByBuilder.js +5 -9
  52. package/src/services/reportData/fetchReportData.js +69 -28
  53. package/src/services/routerRef.js +35 -0
  54. package/src/services/sessionLog.js +171 -0
  55. package/src/views/ConfirmDialog.js +2 -2
  56. package/src/views/builder/JSEditor.js +105 -107
  57. package/src/views/builder/SessionLogDialog.jsx +350 -0
  58. package/src/views/builder/UnsavedChangesGuard.jsx +103 -0
  59. package/src/views/builder/inspector/Inspector.jsx +6 -9
  60. package/src/views/builder/inspector/Tabs/ComponentActionsTab.jsx +7 -13
  61. package/src/views/builder/inspector/Tabs/MainTab.jsx +143 -25
  62. package/src/views/builder/inspector/Tabs/RulesTab.jsx +9 -24
  63. package/src/views/builder/inspector/Tabs/StyleTab.jsx +9 -24
  64. package/src/views/builder/inspector/definitions/autocomplete/main.js +4 -6
  65. package/src/views/builder/inspector/definitions/banner/actions.js +7 -0
  66. package/src/views/builder/inspector/definitions/banner/main.js +22 -0
  67. package/src/views/builder/inspector/definitions/banner/rules.js +1 -0
  68. package/src/views/builder/inspector/definitions/banner/style.js +1 -0
  69. package/src/views/builder/inspector/definitions/breadcrumb/main.js +43 -6
  70. package/src/views/builder/inspector/definitions/button/main.js +11 -12
  71. package/src/views/builder/inspector/definitions/button/style.js +18 -30
  72. package/src/views/builder/inspector/definitions/checkbox/actions.js +3 -1
  73. package/src/views/builder/inspector/definitions/checkbox/main.js +4 -6
  74. package/src/views/builder/inspector/definitions/common/main.js +13 -2
  75. package/src/views/builder/inspector/definitions/dataGrid/main.js +23 -0
  76. package/src/views/builder/inspector/definitions/dataTableViewer/main.js +46 -0
  77. package/src/views/builder/inspector/definitions/datepicker/actions.js +3 -1
  78. package/src/views/builder/inspector/definitions/datepicker/main.js +6 -14
  79. package/src/views/builder/inspector/definitions/dialog/main.js +36 -0
  80. package/src/views/builder/inspector/definitions/dropdown/main.js +5 -8
  81. package/src/views/builder/inspector/definitions/excelUpload/actions.js +23 -0
  82. package/src/views/builder/inspector/definitions/excelUpload/main.js +17 -0
  83. package/src/views/builder/inspector/definitions/excelUpload/rules.js +1 -0
  84. package/src/views/builder/inspector/definitions/excelUpload/style.js +45 -0
  85. package/src/views/builder/inspector/definitions/header/main.js +10 -1
  86. package/src/views/builder/inspector/definitions/index.js +106 -19
  87. package/src/views/builder/inspector/definitions/input/actions.js +4 -1
  88. package/src/views/builder/inspector/definitions/input/main.js +20 -11
  89. package/src/views/builder/inspector/definitions/kpi/avatarGroup.js +22 -0
  90. package/src/views/builder/inspector/definitions/kpi/badge.js +17 -0
  91. package/src/views/builder/inspector/definitions/kpi/bulletChart.js +47 -0
  92. package/src/views/builder/inspector/definitions/kpi/chart.js +55 -0
  93. package/src/views/builder/inspector/definitions/kpi/colorScale.js +60 -0
  94. package/src/views/builder/inspector/definitions/kpi/comparisonBars.js +41 -0
  95. package/src/views/builder/inspector/definitions/kpi/countdown.js +46 -0
  96. package/src/views/builder/inspector/definitions/kpi/donut.js +51 -0
  97. package/src/views/builder/inspector/definitions/kpi/funnel.js +25 -0
  98. package/src/views/builder/inspector/definitions/kpi/gauge.js +39 -0
  99. package/src/views/builder/inspector/definitions/kpi/heatmapGrid.js +96 -0
  100. package/src/views/builder/inspector/definitions/kpi/iconBox.js +20 -0
  101. package/src/views/builder/inspector/definitions/kpi/metric.js +45 -0
  102. package/src/views/builder/inspector/definitions/kpi/rating.js +27 -0
  103. package/src/views/builder/inspector/definitions/kpi/statusDot.js +18 -0
  104. package/src/views/builder/inspector/definitions/kpi/stepStage.js +65 -0
  105. package/src/views/builder/inspector/definitions/kpi/tagList.js +32 -0
  106. package/src/views/builder/inspector/definitions/kpi/timeline.js +80 -0
  107. package/src/views/builder/inspector/definitions/kpi/trend.js +20 -0
  108. package/src/views/builder/inspector/definitions/label/main.js +10 -1
  109. package/src/views/builder/inspector/definitions/layout/main.js +27 -3
  110. package/src/views/builder/inspector/definitions/number/main.js +6 -14
  111. package/src/views/builder/inspector/definitions/pageNumber/main.js +21 -0
  112. package/src/views/builder/inspector/definitions/popover/main.js +71 -0
  113. package/src/views/builder/inspector/definitions/radio/main.js +5 -8
  114. package/src/views/builder/inspector/definitions/repeater/main.js +31 -0
  115. package/src/views/builder/inspector/definitions/reportViewer/main.js +28 -1
  116. package/src/views/builder/inspector/definitions/richtext/main.js +5 -8
  117. package/src/views/builder/inspector/definitions/signature/main.js +4 -1
  118. package/src/views/builder/inspector/definitions/tag/main.js +5 -8
  119. package/src/views/builder/inspector/definitions/textarea/actions.js +4 -1
  120. package/src/views/builder/inspector/definitions/textarea/main.js +5 -7
  121. package/src/views/builder/inspector/definitions/time/main.js +5 -8
  122. package/src/views/builder/inspector/definitions/toggle/main.js +5 -19
  123. package/src/views/builder/inspector/definitions/treeView/main.js +61 -0
  124. package/src/views/builder/inspector/definitions/viewRenderer/main.js +53 -0
  125. package/src/views/builder/inspector/definitions/wizard/main.js +68 -0
  126. package/src/views/builder/inspector/definitions/wizard-step/main.js +25 -0
  127. package/src/views/builder/inspector/fields/ActionsConfigEditor.jsx +426 -0
  128. package/src/views/builder/inspector/fields/ColorSchemaField.jsx +140 -0
  129. package/src/views/builder/inspector/fields/ColumnFunctionEditor.jsx +238 -0
  130. package/src/views/builder/inspector/fields/ColumnMappingEditor.jsx +105 -0
  131. package/src/views/builder/inspector/fields/ColumnsConfigEditor.jsx +506 -0
  132. package/src/views/builder/inspector/fields/DonutRingsEditorField.jsx +337 -0
  133. package/src/views/builder/inspector/fields/ExtraColsEditor.jsx +618 -0
  134. package/src/views/builder/inspector/fields/FunctionHelpPopover.jsx +295 -0
  135. package/src/views/builder/inspector/fields/IconEditor.jsx +64 -0
  136. package/src/views/builder/inspector/fields/KpiActionField.jsx +223 -0
  137. package/src/views/builder/inspector/fields/MarkersEditorField.jsx +173 -0
  138. package/src/views/builder/inspector/fields/SelectEditor.jsx +9 -5
  139. package/src/views/builder/inspector/fields/SeriesEditorField.jsx +363 -0
  140. package/src/views/builder/inspector/fields/TableColumnsEditor.jsx +104 -0
  141. package/src/views/builder/inspector/fields/ThresholdsEditor.jsx +247 -0
  142. package/src/views/builder/inspector/fields/ValueFunctionsRefPanel.jsx +217 -0
  143. package/src/views/builder/inspector/fields/columnEditorShared.jsx +217 -0
  144. package/src/views/builder/sidebar/Sidebar.jsx +4 -2
  145. package/src/views/builder/sidebar/SidebarTabs.jsx +28 -17
  146. package/src/views/builder/sidebar/tabs/ActionsTab.jsx +7 -3
  147. package/src/views/builder/sidebar/tabs/AiTab/AiPreviewDialog.jsx +193 -0
  148. package/src/views/builder/sidebar/tabs/AiTab/aiProvider.js +53 -0
  149. package/src/views/builder/sidebar/tabs/AiTab/index.jsx +409 -0
  150. package/src/views/builder/sidebar/tabs/AiTab/schemaTransformer.js +167 -0
  151. package/src/views/builder/sidebar/tabs/AiTab/schemaValidator.js +64 -0
  152. package/src/views/builder/sidebar/tabs/AiTab/systemPrompt.js +1151 -0
  153. package/src/views/builder/sidebar/tabs/AiTab/trainingExport.js +131 -0
  154. package/src/views/builder/sidebar/tabs/Components/ComponentsTab.jsx +31 -31
  155. package/src/views/builder/sidebar/tabs/Components/componentCatalog.js +43 -21
  156. package/src/views/builder/sidebar/tabs/Components/printComponentCatalog.js +81 -0
  157. package/src/views/builder/sidebar/tabs/TimersTab.jsx +338 -0
  158. package/src/views/builder/sidebar/tabs/TreeTab.jsx +13 -4
  159. package/src/views/builder/sidebar/tabs/ViewTab.jsx +173 -13
  160. package/src/views/builder/viewer/AdornedLabel.jsx +82 -0
  161. package/src/views/builder/viewer/ComponentRenderer.jsx +98 -24
  162. package/src/views/builder/viewer/DialogsZone.jsx +259 -0
  163. package/src/views/builder/viewer/FieldLabel.jsx +106 -0
  164. package/src/views/builder/viewer/PrintDialog.jsx +481 -0
  165. package/src/views/builder/viewer/ProductionViewer.jsx +80 -5
  166. package/src/views/builder/viewer/Viewer.jsx +106 -8
  167. package/src/views/builder/viewer/ViewerComponentWrapper.jsx +70 -9
  168. package/src/views/builder/viewer/ViewerToolbar.jsx +285 -56
  169. package/src/views/builder/viewer/renderers/AutoCompleteRenderer.jsx +26 -22
  170. package/src/views/builder/viewer/renderers/AvatarGroupRenderer.jsx +112 -0
  171. package/src/views/builder/viewer/renderers/BadgeRenderer.jsx +79 -0
  172. package/src/views/builder/viewer/renderers/BannerRenderer.jsx +62 -0
  173. package/src/views/builder/viewer/renderers/BreadcrumbRenderer.jsx +203 -15
  174. package/src/views/builder/viewer/renderers/BulletChartRenderer.jsx +147 -0
  175. package/src/views/builder/viewer/renderers/ButtonRenderer.jsx +98 -39
  176. package/src/views/builder/viewer/renderers/CardRenderer.jsx +1 -1
  177. package/src/views/builder/viewer/renderers/ChartRenderer.jsx +388 -0
  178. package/src/views/builder/viewer/renderers/CheckboxRenderer.jsx +17 -9
  179. package/src/views/builder/viewer/renderers/ColorScaleRenderer.jsx +300 -0
  180. package/src/views/builder/viewer/renderers/ComparisonBarsRenderer.jsx +133 -0
  181. package/src/views/builder/viewer/renderers/ContainerRenderer.jsx +3 -1
  182. package/src/views/builder/viewer/renderers/CountdownRenderer.jsx +249 -0
  183. package/src/views/builder/viewer/renderers/DataGridRenderer.jsx +380 -0
  184. package/src/views/builder/viewer/renderers/DataTableViewerRenderer.jsx +240 -0
  185. package/src/views/builder/viewer/renderers/DatePickerRenderer.jsx +25 -24
  186. package/src/views/builder/viewer/renderers/DialogRenderer.jsx +327 -0
  187. package/src/views/builder/viewer/renderers/DividerRenderer.jsx +1 -1
  188. package/src/views/builder/viewer/renderers/DonutRenderer.jsx +294 -0
  189. package/src/views/builder/viewer/renderers/DropdownRenderer.jsx +36 -44
  190. package/src/views/builder/viewer/renderers/ExcelUploadRenderer.jsx +639 -0
  191. package/src/views/builder/viewer/renderers/FunnelRenderer.jsx +93 -0
  192. package/src/views/builder/viewer/renderers/GaugeRenderer.jsx +159 -0
  193. package/src/views/builder/viewer/renderers/HeaderRenderer.jsx +31 -9
  194. package/src/views/builder/viewer/renderers/HeatmapGridRenderer.jsx +432 -0
  195. package/src/views/builder/viewer/renderers/IconBoxRenderer.jsx +59 -0
  196. package/src/views/builder/viewer/renderers/ImageRenderer.jsx +1 -1
  197. package/src/views/builder/viewer/renderers/InputRenderer.jsx +75 -18
  198. package/src/views/builder/viewer/renderers/LabelRenderer.jsx +35 -9
  199. package/src/views/builder/viewer/renderers/LayoutCellRenderer.jsx +102 -40
  200. package/src/views/builder/viewer/renderers/LayoutContextMenu.jsx +8 -8
  201. package/src/views/builder/viewer/renderers/LayoutRenderer.jsx +48 -6
  202. package/src/views/builder/viewer/renderers/LinkRenderer.jsx +1 -1
  203. package/src/views/builder/viewer/renderers/MenuRenderer.jsx +2 -2
  204. package/src/views/builder/viewer/renderers/MetricRenderer.jsx +80 -0
  205. package/src/views/builder/viewer/renderers/NumberFormatRenderer.jsx +21 -30
  206. package/src/views/builder/viewer/renderers/PageNumberRenderer.jsx +76 -0
  207. package/src/views/builder/viewer/renderers/PopoverRenderer.jsx +350 -0
  208. package/src/views/builder/viewer/renderers/ProgressCircleRenderer.jsx +1 -1
  209. package/src/views/builder/viewer/renderers/ProgressLineRenderer.jsx +1 -1
  210. package/src/views/builder/viewer/renderers/RadioGroupRenderer.jsx +28 -39
  211. package/src/views/builder/viewer/renderers/RatingRenderer.jsx +80 -0
  212. package/src/views/builder/viewer/renderers/RepeaterRenderer.jsx +297 -38
  213. package/src/views/builder/viewer/renderers/ReportViewerRenderer.jsx +263 -5
  214. package/src/views/builder/viewer/renderers/RichTextRenderer.jsx +60 -66
  215. package/src/views/builder/viewer/renderers/RowActionsCell.jsx +308 -0
  216. package/src/views/builder/viewer/renderers/SignatureRenderer.jsx +33 -62
  217. package/src/views/builder/viewer/renderers/StatusDotRenderer.jsx +75 -0
  218. package/src/views/builder/viewer/renderers/StepStageRenderer.jsx +348 -0
  219. package/src/views/builder/viewer/renderers/TagListRenderer.jsx +115 -0
  220. package/src/views/builder/viewer/renderers/TagPickerRenderer.jsx +31 -45
  221. package/src/views/builder/viewer/renderers/TextAreaRenderer.jsx +25 -18
  222. package/src/views/builder/viewer/renderers/TextRenderer.jsx +7 -1
  223. package/src/views/builder/viewer/renderers/TimePickerRenderer.jsx +25 -24
  224. package/src/views/builder/viewer/renderers/TimelineRenderer.jsx +525 -0
  225. package/src/views/builder/viewer/renderers/ToggleRenderer.jsx +21 -27
  226. package/src/views/builder/viewer/renderers/TreeViewRenderer.jsx +832 -0
  227. package/src/views/builder/viewer/renderers/TrendRenderer.jsx +66 -0
  228. package/src/views/builder/viewer/renderers/ViewRendererRenderer.jsx +315 -0
  229. package/src/views/builder/viewer/renderers/WizardRenderer.jsx +380 -64
  230. package/src/views/builder/viewer/renderers/WizardStepRenderer.jsx +21 -12
  231. package/src/views/builder/viewer/renderers/dataGridComponents.jsx +824 -0
  232. package/src/views/customFilter/CustomFilterDialog.js +1023 -660
  233. package/src/views/customFilter/FixedFilterDialog.js +649 -0
  234. package/src/views/customFilter/SearchFilterDialog.js +248 -0
  235. package/src/views/genericTable/BuilderExpressionParams.js +3 -3
  236. package/src/views/genericTable/ColumnConfiguratorDialog.js +33 -24
  237. package/src/views/genericTable/FixedFilterDialog.js +3 -2
  238. package/src/views/genericTable/FormattingSettingsDialog.js +8 -3
  239. package/src/views/genericTable/SGrid.js +821 -448
  240. package/src/views/genericTable/SearchFilterDialog.js +3 -2
  241. package/src/views/genericTable/cellEditors/autocompleteEditor.js +5 -9
  242. package/src/views/genericTable/convertStringFunctions.js +274 -138
  243. package/src/views/genericTable/statusBar/rowCountStatusBar.js +3 -1
  244. package/src/views/genericTable/updateRefHelpers.js +9 -6
  245. package/src/views/printBuilder/PrintBuilderViewer.jsx +627 -0
  246. package/src/views/printBuilder/PrintPreviewCanvas.jsx +157 -0
  247. package/src/views/rolePermissions/UpdateReportPermissionDialog.js +3 -2
  248. package/src/@core/components/auth/AclGuard.js +0 -55
  249. package/src/@core/components/auth/AuthGuard.js +0 -40
  250. package/src/@core/components/auth/GuestGuard.js +0 -30
  251. package/src/@core/components/custom-inputs/Horizontal.jsx +0 -143
  252. package/src/@core/components/custom-inputs/Image.jsx +0 -78
  253. package/src/@core/components/custom-inputs/Vertical.jsx +0 -113
  254. package/src/@core/components/customizer/index.jsx +0 -470
  255. package/src/@core/components/customizer/styles.module.css +0 -169
  256. package/src/@core/components/mui/Avatar.jsx +0 -41
  257. package/src/@core/components/mui/Badge.jsx +0 -20
  258. package/src/@core/components/mui/IconButton.jsx +0 -74
  259. package/src/@core/components/mui/TabList.jsx +0 -60
  260. package/src/@core/components/option-menu/index.jsx +0 -137
  261. package/src/@core/components/scroll-to-top/index.jsx +0 -43
  262. package/src/@core/components/spinner/index.js +0 -26
  263. package/src/@core/components/window-wrapper/index.js +0 -27
  264. package/src/@core/contexts/settingsContext.jsx +0 -98
  265. package/src/@core/hooks/useBgColor.js +0 -63
  266. package/src/@core/hooks/useImageVariant.js +0 -27
  267. package/src/@core/hooks/useLayoutInit.js +0 -37
  268. package/src/@core/hooks/useObjectCookie.js +0 -18
  269. package/src/@core/hooks/useSettings.jsx +0 -15
  270. package/src/@core/layouts/BlankLayout.js +0 -37
  271. package/src/@core/layouts/BlankLayoutWithAppBar.js +0 -51
  272. package/src/@core/layouts/HorizontalLayout.jsx +0 -151
  273. package/src/@core/layouts/Layout.js +0 -39
  274. package/src/@core/layouts/VerticalLayout.jsx +0 -124
  275. package/src/@core/layouts/components/blank-layout-with-appBar/index.js +0 -115
  276. package/src/@core/layouts/components/horizontal/app-bar-content/index.js +0 -67
  277. package/src/@core/layouts/components/horizontal/navigation/HorizontalNavGroup.js +0 -352
  278. package/src/@core/layouts/components/horizontal/navigation/HorizontalNavItems.js +0 -21
  279. package/src/@core/layouts/components/horizontal/navigation/HorizontalNavLink.js +0 -195
  280. package/src/@core/layouts/components/horizontal/navigation/index.js +0 -31
  281. package/src/@core/layouts/components/shared-components/LanguageDropdown.js +0 -96
  282. package/src/@core/layouts/components/shared-components/ModeToggler.js +0 -32
  283. package/src/@core/layouts/components/shared-components/NotificationDropdown.js +0 -226
  284. package/src/@core/layouts/components/shared-components/UserDropdown.js +0 -177
  285. package/src/@core/layouts/components/shared-components/footer/FooterContent.js +0 -46
  286. package/src/@core/layouts/components/shared-components/footer/index.js +0 -61
  287. package/src/@core/layouts/components/vertical/appBar/index.js +0 -74
  288. package/src/@core/layouts/components/vertical/navigation/Drawer.js +0 -122
  289. package/src/@core/layouts/components/vertical/navigation/VerticalNavGroup.js +0 -435
  290. package/src/@core/layouts/components/vertical/navigation/VerticalNavHeader.js +0 -180
  291. package/src/@core/layouts/components/vertical/navigation/VerticalNavItems.js +0 -26
  292. package/src/@core/layouts/components/vertical/navigation/VerticalNavLink.js +0 -258
  293. package/src/@core/layouts/components/vertical/navigation/VerticalNavSectionTitle.js +0 -102
  294. package/src/@core/layouts/components/vertical/navigation/index.js +0 -169
  295. package/src/@core/layouts/utils.js +0 -69
  296. package/src/@core/styles/Table.module.css +0 -93
  297. package/src/@core/styles/horizontal/menuItemStyles.js +0 -100
  298. package/src/@core/styles/horizontal/menuRootStyles.js +0 -19
  299. package/src/@core/styles/libs/fullcalendar/index.js +0 -461
  300. package/src/@core/styles/libs/keen-slider/index.js +0 -111
  301. package/src/@core/styles/libs/react-apexcharts/index.js +0 -107
  302. package/src/@core/styles/libs/react-cleave/index.js +0 -33
  303. package/src/@core/styles/libs/react-credit-cards/index.js +0 -11
  304. package/src/@core/styles/libs/react-datepicker/index.js +0 -388
  305. package/src/@core/styles/libs/react-draft-wysiwyg/index.js +0 -144
  306. package/src/@core/styles/libs/react-dropzone/index.js +0 -76
  307. package/src/@core/styles/libs/react-hot-toast/index.js +0 -37
  308. package/src/@core/styles/libs/recharts/index.js +0 -47
  309. package/src/@core/styles/stepper.js +0 -103
  310. package/src/@core/styles/vertical/menuItemStyles.js +0 -138
  311. package/src/@core/styles/vertical/menuSectionStyles.js +0 -54
  312. package/src/@core/styles/vertical/navigationCustomStyles.js +0 -62
  313. package/src/@core/svg/ContentCompact.jsx +0 -17
  314. package/src/@core/svg/ContentWide.jsx +0 -17
  315. package/src/@core/svg/DirectionLtr.jsx +0 -93
  316. package/src/@core/svg/DirectionRtl.jsx +0 -93
  317. package/src/@core/svg/LayoutCollapsed.jsx +0 -59
  318. package/src/@core/svg/LayoutHorizontal.jsx +0 -42
  319. package/src/@core/svg/LayoutVertical.jsx +0 -59
  320. package/src/@core/svg/Logo.jsx +0 -76
  321. package/src/@core/svg/SkinBordered.jsx +0 -54
  322. package/src/@core/svg/SkinDefault.jsx +0 -59
  323. package/src/@core/tailwind/plugin.js +0 -78
  324. package/src/@core/theme/ThemeComponent.js +0 -63
  325. package/src/@core/theme/ThemeOptions.js +0 -71
  326. package/src/@core/theme/breakpoints/index.js +0 -11
  327. package/src/@core/theme/colorSchemes.js +0 -326
  328. package/src/@core/theme/customShadows.js +0 -11
  329. package/src/@core/theme/globalStyles.js +0 -81
  330. package/src/@core/theme/index.js +0 -42
  331. package/src/@core/theme/overrides/accordion.js +0 -51
  332. package/src/@core/theme/overrides/accordion.jsx +0 -85
  333. package/src/@core/theme/overrides/alerts.js +0 -110
  334. package/src/@core/theme/overrides/alerts.jsx +0 -180
  335. package/src/@core/theme/overrides/autocomplete.js +0 -14
  336. package/src/@core/theme/overrides/autocomplete.jsx +0 -68
  337. package/src/@core/theme/overrides/avatar.js +0 -38
  338. package/src/@core/theme/overrides/avatars.js +0 -27
  339. package/src/@core/theme/overrides/backdrop.js +0 -22
  340. package/src/@core/theme/overrides/badges.js +0 -16
  341. package/src/@core/theme/overrides/breadcrumbs.js +0 -11
  342. package/src/@core/theme/overrides/button-group.js +0 -84
  343. package/src/@core/theme/overrides/button.js +0 -93
  344. package/src/@core/theme/overrides/buttonGroup.js +0 -9
  345. package/src/@core/theme/overrides/card.js +0 -83
  346. package/src/@core/theme/overrides/checkbox.jsx +0 -95
  347. package/src/@core/theme/overrides/chip.js +0 -72
  348. package/src/@core/theme/overrides/dataGrid.js +0 -114
  349. package/src/@core/theme/overrides/dateTimePicker.js +0 -65
  350. package/src/@core/theme/overrides/dialog.js +0 -120
  351. package/src/@core/theme/overrides/divider.js +0 -13
  352. package/src/@core/theme/overrides/drawer.js +0 -20
  353. package/src/@core/theme/overrides/fab.js +0 -13
  354. package/src/@core/theme/overrides/form-control-label.js +0 -19
  355. package/src/@core/theme/overrides/icon-button.js +0 -145
  356. package/src/@core/theme/overrides/index.js +0 -103
  357. package/src/@core/theme/overrides/input.js +0 -72
  358. package/src/@core/theme/overrides/link.js +0 -9
  359. package/src/@core/theme/overrides/list.js +0 -44
  360. package/src/@core/theme/overrides/menu.js +0 -25
  361. package/src/@core/theme/overrides/pagination.js +0 -41
  362. package/src/@core/theme/overrides/paper.js +0 -9
  363. package/src/@core/theme/overrides/popover.js +0 -16
  364. package/src/@core/theme/overrides/progress.js +0 -38
  365. package/src/@core/theme/overrides/radio.jsx +0 -80
  366. package/src/@core/theme/overrides/rating.js +0 -16
  367. package/src/@core/theme/overrides/rating.jsx +0 -32
  368. package/src/@core/theme/overrides/select.js +0 -19
  369. package/src/@core/theme/overrides/select.jsx +0 -52
  370. package/src/@core/theme/overrides/slider.js +0 -97
  371. package/src/@core/theme/overrides/snackbar.js +0 -19
  372. package/src/@core/theme/overrides/switch.js +0 -73
  373. package/src/@core/theme/overrides/switches.js +0 -25
  374. package/src/@core/theme/overrides/table-pagination.js +0 -39
  375. package/src/@core/theme/overrides/table.js +0 -81
  376. package/src/@core/theme/overrides/tabs.js +0 -30
  377. package/src/@core/theme/overrides/timeline.js +0 -80
  378. package/src/@core/theme/overrides/toggle-button.js +0 -33
  379. package/src/@core/theme/overrides/toggleButton.js +0 -16
  380. package/src/@core/theme/overrides/tooltip.js +0 -21
  381. package/src/@core/theme/overrides/typography.js +0 -13
  382. package/src/@core/theme/palette/index.js +0 -107
  383. package/src/@core/theme/shadows/index.js +0 -61
  384. package/src/@core/theme/shadows.js +0 -12
  385. package/src/@core/theme/spacing/index.js +0 -3
  386. package/src/@core/theme/spacing.js +0 -5
  387. package/src/@core/theme/typography/index.js +0 -65
  388. package/src/@core/theme/typography.js +0 -84
  389. package/src/@core/utils/create-emotion-cache.js +0 -5
  390. package/src/@core/utils/hex-to-rgba.js +0 -11
  391. package/src/@core/utils/serverHelpers.js +0 -45
  392. package/src/@menu/components/RouterLink.jsx +0 -18
  393. package/src/@menu/components/horizontal-menu/HorizontalNav.jsx +0 -88
  394. package/src/@menu/components/horizontal-menu/Menu.jsx +0 -83
  395. package/src/@menu/components/horizontal-menu/MenuButton.jsx +0 -100
  396. package/src/@menu/components/horizontal-menu/MenuItem.jsx +0 -183
  397. package/src/@menu/components/horizontal-menu/SubMenu.jsx +0 -418
  398. package/src/@menu/components/horizontal-menu/SubMenuContent.jsx +0 -41
  399. package/src/@menu/components/horizontal-menu/VerticalNavInHorizontal.jsx +0 -20
  400. package/src/@menu/components/vertical-menu/Menu.jsx +0 -161
  401. package/src/@menu/components/vertical-menu/MenuButton.jsx +0 -95
  402. package/src/@menu/components/vertical-menu/MenuItem.jsx +0 -180
  403. package/src/@menu/components/vertical-menu/MenuSection.jsx +0 -124
  404. package/src/@menu/components/vertical-menu/NavCollapseIcons.jsx +0 -70
  405. package/src/@menu/components/vertical-menu/NavHeader.jsx +0 -39
  406. package/src/@menu/components/vertical-menu/SubMenu.jsx +0 -420
  407. package/src/@menu/components/vertical-menu/SubMenuContent.jsx +0 -101
  408. package/src/@menu/components/vertical-menu/VerticalNav.jsx +0 -216
  409. package/src/@menu/contexts/horizontalNavContext.jsx +0 -29
  410. package/src/@menu/contexts/verticalNavContext.jsx +0 -65
  411. package/src/@menu/defaultConfigs.js +0 -12
  412. package/src/@menu/hooks/useHorizontalMenu.jsx +0 -19
  413. package/src/@menu/hooks/useHorizontalNav.jsx +0 -19
  414. package/src/@menu/hooks/useMediaQuery.jsx +0 -29
  415. package/src/@menu/hooks/useVerticalMenu.jsx +0 -19
  416. package/src/@menu/hooks/useVerticalNav.jsx +0 -19
  417. package/src/@menu/horizontal-menu/index.jsx +0 -8
  418. package/src/@menu/styles/StyledBackdrop.jsx +0 -15
  419. package/src/@menu/styles/StyledMenuIcon.jsx +0 -12
  420. package/src/@menu/styles/StyledMenuLabel.jsx +0 -16
  421. package/src/@menu/styles/StyledMenuPrefix.jsx +0 -10
  422. package/src/@menu/styles/StyledMenuSectionLabel.jsx +0 -21
  423. package/src/@menu/styles/StyledMenuSuffix.jsx +0 -10
  424. package/src/@menu/styles/StyledSubMenuContent.jsx +0 -43
  425. package/src/@menu/styles/horizontal/StyledHorizontalMenu.jsx +0 -13
  426. package/src/@menu/styles/horizontal/StyledHorizontalMenuItem.jsx +0 -26
  427. package/src/@menu/styles/horizontal/StyledHorizontalNav.jsx +0 -11
  428. package/src/@menu/styles/horizontal/StyledHorizontalNavExpandIcon.jsx +0 -33
  429. package/src/@menu/styles/horizontal/StyledHorizontalSubMenuContent.jsx +0 -18
  430. package/src/@menu/styles/horizontal/StyledHorizontalSubMenuContentWrapper.jsx +0 -10
  431. package/src/@menu/styles/horizontal/horizontalUl.module.css +0 -15
  432. package/src/@menu/styles/styles.module.css +0 -5
  433. package/src/@menu/styles/vertical/StyledVerticalMenu.jsx +0 -16
  434. package/src/@menu/styles/vertical/StyledVerticalMenuItem.jsx +0 -28
  435. package/src/@menu/styles/vertical/StyledVerticalMenuSection.jsx +0 -23
  436. package/src/@menu/styles/vertical/StyledVerticalNav.jsx +0 -67
  437. package/src/@menu/styles/vertical/StyledVerticalNavBgColorContainer.jsx +0 -15
  438. package/src/@menu/styles/vertical/StyledVerticalNavContainer.jsx +0 -23
  439. package/src/@menu/styles/vertical/StyledVerticalNavExpandIcon.jsx +0 -25
  440. package/src/@menu/styles/vertical/verticalNavBgImage.module.css +0 -10
  441. package/src/@menu/svg/ChevronRight.jsx +0 -9
  442. package/src/@menu/svg/Close.jsx +0 -12
  443. package/src/@menu/svg/RadioCircle.jsx +0 -12
  444. package/src/@menu/svg/RadioCircleMarked.jsx +0 -13
  445. package/src/@menu/utils/menuClasses.js +0 -44
  446. package/src/@menu/utils/menuUtils.jsx +0 -145
  447. package/src/@menu/vertical-menu/index.jsx +0 -11
  448. package/src/configs/acl.js +0 -115
  449. package/src/configs/auth.js +0 -5
  450. package/src/configs/aws-exports.js +0 -30
  451. package/src/configs/firebase.js +0 -25
  452. package/src/configs/i18n.js +0 -34
  453. package/src/configs/primaryColorConfig.js +0 -35
  454. package/src/configs/themeConfig.js +0 -44
  455. package/src/layouts/UserLayout.js +0 -94
  456. package/src/layouts/UserThemeOptions.js +0 -191
  457. package/src/layouts/components/Direction.js +0 -30
  458. package/src/layouts/components/HtmlTooltip.js +0 -15
  459. package/src/layouts/components/Translations.js +0 -11
  460. package/src/layouts/components/UserDropdown.js +0 -217
  461. package/src/layouts/components/UserIcon.js +0 -40
  462. package/src/layouts/components/acl/Can.js +0 -6
  463. package/src/layouts/components/acl/CanViewNavGroup.js +0 -36
  464. package/src/layouts/components/acl/CanViewNavLink.js +0 -17
  465. package/src/layouts/components/acl/CanViewNavSectionTitle.js +0 -17
  466. package/src/layouts/components/horizontal/AppBarContent.js +0 -39
  467. package/src/layouts/components/horizontal/ServerSideNavItems.js +0 -44
  468. package/src/layouts/components/mui/StepperComps.js +0 -55
  469. package/src/layouts/components/vertical/AppBarContent.js +0 -35
  470. package/src/layouts/components/vertical/ServerSideNavItems.js +0 -44
  471. package/src/libs/ApexCharts.jsx +0 -5
  472. package/src/libs/ReactPlayer.jsx +0 -5
  473. package/src/libs/Recharts.jsx +0 -4
  474. package/src/libs/auth.js +0 -124
  475. package/src/libs/styles/AppFullCalendar.js +0 -505
  476. package/src/libs/styles/AppKeenSlider.js +0 -116
  477. package/src/libs/styles/AppReactApexCharts.jsx +0 -110
  478. package/src/libs/styles/AppReactDatepicker.jsx +0 -470
  479. package/src/libs/styles/AppReactDropzone.js +0 -76
  480. package/src/libs/styles/AppReactToastify.jsx +0 -108
  481. package/src/libs/styles/AppRecharts.js +0 -55
  482. package/src/libs/styles/inputOtp.module.css +0 -39
  483. package/src/libs/styles/tiptapEditor.css +0 -72
  484. package/src/navigation/horizontal/index.js +0 -246
  485. package/src/navigation/vertical/index.js +0 -253
  486. package/src/pages/401.js +0 -70
  487. package/src/pages/404.js +0 -67
  488. package/src/pages/500.js +0 -68
  489. package/src/pages/[slug].js +0 -115
  490. package/src/pages/_document.js +0 -72
  491. package/src/pages/api/navigation/regenerate-registry.js +0 -116
  492. package/src/pages/api/navigation/save.js +0 -218
  493. package/src/pages/authModule/acl/index.js +0 -48
  494. package/src/pages/authModule/forgot-password/index.js +0 -228
  495. package/src/pages/authModule/permissions/rolePermissions/[id]/rolePermissionsUser/index.js +0 -392
  496. package/src/pages/authModule/permissions/rolePermissions/index.js +0 -343
  497. package/src/pages/authModule/permissions/systemPermissions/index.js +0 -354
  498. package/src/pages/authModule/privacy/index.js +0 -721
  499. package/src/pages/authModule/users/index.js +0 -210
  500. package/src/pages/login/index.js +0 -328
  501. package/src/pages/mainHome/index.js +0 -181
  502. package/src/views/builder/inspector/definitions/cell/main.js +0 -4
  503. package/src/views/builder/inspector/definitions/column/main.js +0 -9
  504. package/src/views/builder/inspector/definitions/column-group/main.js +0 -18
  505. package/src/views/builder/inspector/definitions/header-cell/main.js +0 -5
  506. package/src/views/builder/inspector/definitions/table/main.js +0 -9
  507. package/src/views/builder/viewer/renderers/CellRenderer.jsx +0 -71
  508. package/src/views/builder/viewer/renderers/ColumnGroupRenderer.jsx +0 -96
  509. package/src/views/builder/viewer/renderers/ColumnRenderer.jsx +0 -71
  510. package/src/views/builder/viewer/renderers/HeaderCellRenderer.jsx +0 -78
  511. package/src/views/builder/viewer/renderers/TabRenderer.jsx +0 -82
  512. package/src/views/builder/viewer/renderers/TableRenderer.jsx +0 -92
  513. package/src/views/pages/auth/FooterIllustrationsV2.js +0 -40
  514. package/src/views/pages/misc/FooterIllustrations.js +0 -47
  515. package/src/views/pages/misc/muiTable/CustomPagination.js +0 -34
  516. package/src/views/pages/users/UserManageDialog.js +0 -283
  517. package/src/views/pages/users/UserViewPage.js +0 -199
  518. package/src/views/users/AddUserNameDialog.js +0 -162
  519. package/src/views/users/ContactManage.js +0 -449
  520. package/src/views/users/ResetPasswordDialog.js +0 -242
Binary file
package/next.config.js CHANGED
@@ -1,33 +1,36 @@
1
1
  const path = require('path');
2
- const withTM = require('next-transpile-modules')([
3
- '@fullcalendar/common',
4
- '@fullcalendar/react',
5
- '@fullcalendar/daygrid',
6
- '@fullcalendar/list',
7
- '@fullcalendar/timegrid',
8
- '@mui/x-data-grid',
9
- '@mui/material',
10
- '@mui/utils',
11
- 'suneditor',
12
- 'suneditor-react',
13
- ]);
14
2
 
15
3
  /** @type {import('next').NextConfig} */
16
4
  const nextConfig = {
5
+ // Next.js 13+ has built-in transpilePackages — no need for next-transpile-modules
6
+ transpilePackages: [
7
+ '@mui/x-data-grid',
8
+ '@mui/material',
9
+ '@mui/utils',
10
+ 'suneditor',
11
+ 'suneditor-react',
12
+ ],
17
13
  trailingSlash: true,
18
14
  reactStrictMode: false,
19
15
  eslint: {
20
16
  ignoreDuringBuilds: true,
21
17
  },
22
18
  async rewrites() {
23
- // Dynamic rewrites for friendly URLs - handled by [slug].js
24
- // This allows /reports to internally route to /viewer/22
25
19
  return []
26
20
  },
27
21
  webpack: (config) => {
22
+ const src = path.resolve(__dirname, 'src');
23
+
24
+ // Resolve bare imports (pages/*, services/*, views/*, context/*, src/*)
25
+ // to the local src/ directory — same as the host app would do via
26
+ // NormalModuleReplacementPlugin, but simpler for standalone dev mode.
28
27
  config.resolve.alias = {
29
28
  ...config.resolve.alias,
30
- apexcharts: path.resolve(__dirname, './node_modules/apexcharts-clevision'),
29
+ pages: path.join(src, 'pages'),
30
+ services: path.join(src, 'services'),
31
+ views: path.join(src, 'views'),
32
+ context: path.join(src, 'context'),
33
+ src: src,
31
34
  };
32
35
 
33
36
  config.module.rules.push({
@@ -40,36 +43,4 @@ const nextConfig = {
40
43
  },
41
44
  };
42
45
 
43
- module.exports = withTM(nextConfig);
44
-
45
-
46
-
47
-
48
-
49
- // const path = require('path');
50
- // const withTM = require('next-transpile-modules')([
51
- // '@fullcalendar/common',
52
- // '@fullcalendar/react',
53
- // '@fullcalendar/daygrid',
54
- // '@fullcalendar/list',
55
- // '@fullcalendar/timegrid',
56
- // '@mui/x-data-grid',
57
- // ]);
58
-
59
- // /** @type {import('next').NextConfig} */
60
- // const nextConfig = {
61
- // trailingSlash: true,
62
- // reactStrictMode: false,
63
- // eslint: {
64
- // ignoreDuringBuilds: true,
65
- // },
66
- // webpack: config => {
67
- // config.resolve.alias = {
68
- // ...config.resolve.alias,
69
- // apexcharts: path.resolve(__dirname, './node_modules/apexcharts-clevision'),
70
- // };
71
- // return config;
72
- // },
73
- // };
74
-
75
- // module.exports = withTM(nextConfig);
46
+ module.exports = nextConfig;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "robobyte-front-builder",
3
- "version": "1.0.19",
3
+ "version": "1.0.23",
4
4
  "description": "RoboByte low-code UI builder, Report builder, and navigation extension system",
5
5
  "main": "src/lib/index.js",
6
6
  "files": [
@@ -8,7 +8,9 @@
8
8
  "public",
9
9
  "styles",
10
10
  "next.config.js",
11
- "jsconfig.json"
11
+ "jsconfig.json",
12
+ "INTEGRATION.md",
13
+ "RoboByteBuilder_User_Manual.docx"
12
14
  ],
13
15
  "exports": {
14
16
  ".": "./src/lib/index.js",
@@ -21,133 +23,87 @@
21
23
  "dev": "next dev",
22
24
  "build": "next build",
23
25
  "start": "next start",
24
- "export": "next export",
25
26
  "lint": "eslint --fix \"src/**/*.{js,jsx}\"",
26
27
  "format": "prettier --write \"src/**/*.{js,jsx}\"",
27
- "prepublishOnly": "echo 'Publishing @robobyte/front-builder — source-first package, no build step required'"
28
+ "prepublishOnly": "echo 'Publishing robobyte-front-builder — source-first package, no build step required'"
28
29
  },
29
30
  "peerDependencies": {
31
+ "@emotion/react": "^11",
32
+ "@emotion/styled": "^11",
33
+ "@mui/icons-material": "^7",
34
+ "@mui/lab": "^7",
35
+ "@mui/material": "^7",
36
+ "@mui/system": "^7",
37
+ "@mui/x-data-grid": "^7",
38
+ "@mui/x-date-pickers": "^7",
39
+ "@mui/x-internals": "^7",
40
+ "@mui/x-virtualizer": "^7",
41
+ "ag-grid-community": "^33",
42
+ "ag-grid-enterprise": "^33",
43
+ "ag-grid-react": "^33",
44
+ "next": ">=13",
30
45
  "react": ">=18",
31
46
  "react-dom": ">=18",
32
- "next": ">=13",
33
- "@mui/material": ">=7",
34
- "@mui/icons-material": ">=7",
35
- "@mui/lab": ">=7",
36
- "@mui/system": ">=7",
37
- "@mui/x-data-grid": ">=7",
38
- "@mui/x-date-pickers": ">=7",
39
- "@mui/x-tree-view": ">=7",
40
- "@emotion/cache": ">=11",
41
- "@emotion/react": ">=11",
42
- "@emotion/server": ">=11",
43
- "@emotion/styled": ">=11",
44
- "axios": ">=1"
47
+ "xlsx": ">=0.18",
48
+ "react-hot-toast": ">=2"
45
49
  },
46
50
  "dependencies": {
47
- "@auth0/auth0-react": "2.1.0",
48
- "@aws-amplify/auth": "5.3.6",
49
- "@aws-amplify/ui-react": "4.6.3",
50
- "@babel/eslint-parser": "7.21.8",
51
- "@casl/ability": "6.5.0",
52
- "@casl/react": "3.1.0",
53
- "@date-io/date-fns": "^2.16.0",
54
51
  "@dnd-kit/core": "^6.3.1",
55
52
  "@dnd-kit/sortable": "^10.0.0",
56
53
  "@dnd-kit/utilities": "^3.2.2",
57
- "@fullcalendar/common": "5.11.5",
58
- "@fullcalendar/core": "6.1.7",
59
- "@fullcalendar/daygrid": "6.1.7",
60
- "@fullcalendar/interaction": "6.1.7",
61
- "@fullcalendar/list": "6.1.7",
62
- "@fullcalendar/react": "6.1.7",
63
- "@fullcalendar/timegrid": "6.1.7",
64
54
  "@hookform/resolvers": "3.1.0",
65
- "@microsoft/signalr": "^8.0.0",
66
55
  "@monaco-editor/react": "^4.7.0",
67
- "@popperjs/core": "2.11.7",
68
56
  "@react-google-maps/api": "^2.19.2",
69
- "@reduxjs/toolkit": "1.9.5",
70
- "@unicef/material-ui-currency-textfield": "^0.8.6",
71
- "ag-grid-community": "^33.3.2",
72
- "ag-grid-enterprise": "^33.3.2",
73
- "ag-grid-react": "^33.3.2",
74
- "apexcharts-clevision": "3.28.5",
75
- "aws-amplify": "^5.3.13",
76
- "axios-mock-adapter": "1.21.4",
77
- "babel-eslint": "10.1.0",
78
- "chart.js": "4.3.0",
57
+ "axios": "^1.6.0",
79
58
  "classnames": "2.5.1",
80
- "cleave.js": "1.6.0",
81
- "clipboard-copy": "4.0.1",
82
- "clsx": "1.2.1",
83
- "date-fns": "^2.30.0",
84
59
  "dayjs": "^1.11.9",
85
60
  "draft-js": "0.11.7",
86
- "firebase": "9.22.0",
87
- "hls.js": "^1.0.3-0.canary.7275",
88
- "https": "^1.0.0",
89
- "i18next": "22.5.0",
90
- "i18next-browser-languagedetector": "7.0.1",
91
- "i18next-http-backend": "2.2.1",
92
- "jsonwebtoken": "9.0.0",
93
61
  "jspdf": "^3.0.3",
94
- "jspdf-autotable": "^5.0.2",
95
- "jwt-decode": "^4.0.0",
96
- "keen-slider": "6.8.5",
62
+ "jspdf-autotable": "^5.0.7",
97
63
  "list": "^2.0.19",
64
+ "lodash": "^4.17.21",
98
65
  "mdi-material-ui": "7.7.0",
99
66
  "moment": "^2.30.1",
100
67
  "moment-timezone": "^0.5.47",
101
- "notistack": "^3.0.2",
102
- "nprogress": "0.2.0",
103
68
  "numeral": "^2.0.6",
104
- "payment": "2.4.6",
105
- "prismjs": "1.29.0",
106
- "prop-types": "^15.8.1",
107
- "react-apexcharts": "1.4.0",
108
69
  "react-beautiful-dnd": "13.1.1",
109
- "react-chartjs-2": "5.2.0",
110
- "react-colorful": "^5.6.1",
111
- "react-credit-cards": "0.8.3",
112
70
  "react-datepicker": "4.11.0",
113
- "react-draft-wysiwyg": "1.15.0",
114
- "react-dropzone": "14.2.3",
115
71
  "react-hook-form": "7.43.9",
116
- "react-hot-toast": "2.4.1",
117
- "react-i18next": "12.3.1",
118
- "react-multi-date-picker": "^4.5.2",
119
72
  "react-number-format": "^5.4.0",
120
73
  "react-perfect-scrollbar": "1.5.8",
121
- "react-popper": "2.3.0",
122
- "react-quill": "^2.0.0",
123
- "react-redux": "8.0.5",
124
74
  "react-signature-canvas": "^1.1.0-alpha.2",
125
- "react-to-pdf": "0.0.14",
126
75
  "react-use": "^17.6.0",
127
- "react-viewer": "^3.2.2",
128
76
  "recharts": "2.6.2",
129
- "rsuite": "^5.60.1",
130
- "sass": "^1.77.8",
131
- "styled-components": "^6.1.10",
132
- "stylelint": "16.6.1",
133
- "stylis": "4.2.0",
134
- "stylis-plugin-rtl": "2.1.1",
135
77
  "suneditor": "^2.47.5",
136
78
  "suneditor-react": "^3.6.1",
137
- "sweetalert2": "^11.17.2",
138
- "swiper": "^11.2.5",
139
79
  "uuid": "^11.1.0",
80
+ "xlsx": "^0.18.5",
140
81
  "yup": "1.1.1"
141
82
  },
142
83
  "devDependencies": {
143
84
  "@babel/core": "^7.22.0",
85
+ "@emotion/react": "^11",
86
+ "@emotion/styled": "^11",
87
+ "@mui/icons-material": "^7",
88
+ "@mui/lab": "^7",
89
+ "@mui/material": "^7",
90
+ "@mui/system": "^7",
91
+ "@mui/x-data-grid": "^7",
92
+ "@mui/x-date-pickers": "^7",
93
+ "ag-charts-enterprise": "latest",
94
+ "ag-grid-community": "^33",
95
+ "ag-grid-enterprise": "^33",
96
+ "ag-grid-react": "^33",
144
97
  "eslint": "8.41.0",
145
98
  "eslint-config-next": "13.4.3",
146
99
  "eslint-config-prettier": "8.8.0",
147
100
  "eslint-import-resolver-alias": "1.1.2",
148
101
  "eslint-import-resolver-typescript": "3.5.5",
149
102
  "eslint-plugin-import": "2.27.5",
150
- "next-transpile-modules": "^10.0.0",
151
- "prettier": "2.8.8"
103
+ "next": "^13",
104
+ "next-transpile-modules": "^9",
105
+ "prettier": "2.8.8",
106
+ "react": "^18",
107
+ "react-dom": "^18"
152
108
  }
153
109
  }
@@ -1,7 +1,10 @@
1
- import { createContext, useContext, useEffect, useState } from 'react'
1
+ import { createContext, useCallback, useContext, useEffect, useReducer, useRef, useState } from 'react'
2
2
  import { executeActionsByEvent } from 'services/builderHelper/actionExecutor'
3
3
  import { findNode } from 'services/builderHelper'
4
4
  import { executeJSCode } from 'services/builderHelper/jsExecutor'
5
+ import UnsavedChangesGuard from 'views/builder/UnsavedChangesGuard'
6
+ import SessionLogDialog from 'views/builder/SessionLogDialog'
7
+ import { logSchema as logSchemaToStore } from 'services/sessionLog'
5
8
 
6
9
  const BuilderContext = createContext(null)
7
10
 
@@ -88,11 +91,89 @@ const initialSchema = {
88
91
  className: '',
89
92
  children: []
90
93
  },
91
- actions: []
94
+ dialogs: [],
95
+ actions: [],
96
+ timers: []
97
+ }
98
+
99
+ // ── History reducer (undo / redo) ─────────────────────────────────────────────
100
+ //
101
+ // State shape: { past: Schema[], present: Schema, future: Schema[] }
102
+ //
103
+ // SET — normal edit: discard redo stack, push present → past, apply new state
104
+ // UNDO — move one step back in history
105
+ // REDO — move one step forward in history
106
+ //
107
+ // History is capped at 100 entries per direction to bound memory usage.
108
+ //
109
+ const HISTORY_LIMIT = 100
110
+
111
+ function historyReducer(state, action) {
112
+ switch (action.type) {
113
+ case 'SET': {
114
+ const next = typeof action.payload === 'function'
115
+ ? action.payload(state.present)
116
+ : action.payload
117
+ if (next === state.present) return state
118
+ return {
119
+ past: [...state.past, state.present].slice(-HISTORY_LIMIT),
120
+ present: next,
121
+ future: []
122
+ }
123
+ }
124
+ case 'UNDO': {
125
+ if (state.past.length === 0) return state
126
+ const prev = state.past[state.past.length - 1]
127
+ return {
128
+ past: state.past.slice(0, -1),
129
+ present: prev,
130
+ future: [state.present, ...state.future].slice(0, HISTORY_LIMIT)
131
+ }
132
+ }
133
+ case 'REDO': {
134
+ if (state.future.length === 0) return state
135
+ const next = state.future[0]
136
+ return {
137
+ past: [...state.past, state.present].slice(-HISTORY_LIMIT),
138
+ present: next,
139
+ future: state.future.slice(1)
140
+ }
141
+ }
142
+ // LOAD — replace the schema without marking it as a user edit (e.g. fetched
143
+ // from server). Clears history so the freshly loaded state is the new baseline.
144
+ case 'LOAD': {
145
+ return { past: [], present: action.payload, future: [] }
146
+ }
147
+ // MARK_CLEAN — keep the present schema but reset history so isDirty becomes
148
+ // false. Used after a successful save.
149
+ case 'MARK_CLEAN': {
150
+ return { past: [], present: state.present, future: [] }
151
+ }
152
+ default:
153
+ return state
154
+ }
92
155
  }
93
156
 
94
157
  export function BuilderProvider({ children }) {
95
- const [schema, setSchema] = useState(initialSchema)
158
+ const [historyState, dispatch] = useReducer(historyReducer, {
159
+ past: [],
160
+ present: initialSchema,
161
+ future: []
162
+ })
163
+
164
+ // Convenience aliases — schema reads the present snapshot;
165
+ // setSchema dispatches a SET action (automatically tracked in history).
166
+ const schema = historyState.present
167
+ const setSchema = useCallback((updater) => dispatch({ type: 'SET', payload: updater }), [])
168
+ const loadSchema = useCallback((next) => dispatch({ type: 'LOAD', payload: next }), [])
169
+ const markClean = useCallback(() => dispatch({ type: 'MARK_CLEAN' }), [])
170
+ const undo = useCallback(() => dispatch({ type: 'UNDO' }), [])
171
+ const redo = useCallback(() => dispatch({ type: 'REDO' }), [])
172
+ const canUndo = historyState.past.length > 0
173
+ const canRedo = historyState.future.length > 0
174
+ // isDirty — present schema differs from the last loaded/saved baseline.
175
+ // Equivalent to canUndo because LOAD and MARK_CLEAN both reset past to [].
176
+ const isDirty = canUndo
96
177
  const [selectedId, setSelectedId] = useState(null)
97
178
  const [viewMetaData, setViewMetaData] = useState({
98
179
  id: null,
@@ -105,7 +186,7 @@ export function BuilderProvider({ children }) {
105
186
  })
106
187
 
107
188
  // ✅ NEW: editor mode
108
- const [mode, setMode] = useState('edit') // 'edit' | 'preview'
189
+ const [mode, setMode] = useState('edit') // 'edit' | 'preview' | 'print'
109
190
 
110
191
  // ✅ NEW: global data object for action results
111
192
  const [data, setData] = useState({})
@@ -116,6 +197,63 @@ export function BuilderProvider({ children }) {
116
197
  // ✅ NEW: validation errors
117
198
  const [validationErrors, setValidationErrors] = useState({})
118
199
  const [draggingNodeId, setDraggingNodeId] = useState(null)
200
+ const [clipboard, setClipboard] = useState(null) // copy/paste clipboard
201
+
202
+ // ── Session log dialog (training-data capture) ───────────────────────────
203
+ const [sessionLogOpen, setSessionLogOpen] = useState(false)
204
+ const openSessionLog = useCallback(() => setSessionLogOpen(true), [])
205
+ const closeSessionLog = useCallback(() => setSessionLogOpen(false), [])
206
+
207
+ /**
208
+ * Append a schema snapshot to the session log. Call this from save handlers
209
+ * so every successful save becomes a labelable training example.
210
+ * `prompt` is intentionally left empty — developers fill it in later via
211
+ * the Session Logs dialog.
212
+ */
213
+ const logSchema = useCallback(({ builder, trigger = 'save', title = '', viewMetaData = {}, schema: schemaArg }) => {
214
+ return logSchemaToStore({
215
+ builder,
216
+ trigger,
217
+ title,
218
+ viewMetaData,
219
+ schema: schemaArg ?? schema,
220
+ prompt: ''
221
+ })
222
+ // schema is captured at call time when omitted; keep deps minimal
223
+ // eslint-disable-next-line react-hooks/exhaustive-deps
224
+ }, [schema])
225
+
226
+ // ── Unified ref storage ────────────────────────────────────────────────────
227
+ // dataRef : mutable non-reactive store; read/write from any function
228
+ // without triggering re-renders. Access via dataRef.current.
229
+ // reportRefs : registry of { [nodeId]: updateRef } for every ReportViewer.
230
+ // Each report registers itself; access from JS functions via
231
+ // reportRefs['nodeId'].current (the updateRef array).
232
+ const dataRef = useRef({})
233
+ const reportRefs = useRef({})
234
+ const dialogRefs = useRef({})
235
+ const printDialogRef = useRef(null) // { open: (data?) => void, close: () => void }
236
+
237
+ const openDialog = useCallback((key, data) => {
238
+ const ref = dialogRefs.current[key]
239
+ if (ref) ref.open(data)
240
+ else console.warn(`[openDialog] No dialog registered with key "${key}"`)
241
+ }, [])
242
+
243
+ const closeDialog = useCallback((key) => {
244
+ const ref = dialogRefs.current[key]
245
+ if (ref) ref.close()
246
+ else console.warn(`[closeDialog] No dialog registered with key "${key}"`)
247
+ }, [])
248
+
249
+ const openPrintLayout = useCallback((data) => {
250
+ if (printDialogRef.current) printDialogRef.current.open(data)
251
+ else console.warn('[openPrintLayout] PrintDialog is not mounted')
252
+ }, [])
253
+
254
+ const closePrintLayout = useCallback(() => {
255
+ if (printDialogRef.current) printDialogRef.current.close()
256
+ }, [])
119
257
 
120
258
  useEffect(() => {
121
259
  console.log('BUILDER SCHEMA:', schema)
@@ -131,7 +269,10 @@ export function BuilderProvider({ children }) {
131
269
 
132
270
  // Execute onLoad actions with fresh context
133
271
  if (schema.actions && schema.actions.length > 0) {
134
- executeActionsByEvent(schema.actions, 'onLoad', { form: {}, data: {} }, setData).catch(err => {
272
+ executeActionsByEvent(schema.actions, 'onLoad', {
273
+ form: {}, data: {}, setData,
274
+ dataRef: dataRef.current, reportRefs: reportRefs.current,
275
+ }).catch(err => {
135
276
  console.error('onLoad actions error:', err)
136
277
  })
137
278
  }
@@ -154,7 +295,10 @@ export function BuilderProvider({ children }) {
154
295
 
155
296
  // If validation passes, execute onSubmit actions
156
297
  if (Object.keys(errors).length === 0) {
157
- await executeActionsByEvent(schema.actions, 'onSubmit', { form, data }, setData)
298
+ await executeActionsByEvent(schema.actions, 'onSubmit', {
299
+ form, data, setData,
300
+ dataRef: dataRef.current, reportRefs: reportRefs.current,
301
+ })
158
302
  return true
159
303
  }
160
304
  return false
@@ -171,6 +315,15 @@ export function BuilderProvider({ children }) {
171
315
  value={{
172
316
  schema,
173
317
  setSchema,
318
+ loadSchema,
319
+ markClean,
320
+ isDirty,
321
+
322
+ // ── Undo / redo ──────────────────────────────────────────────────────
323
+ undo,
324
+ redo,
325
+ canUndo,
326
+ canRedo,
174
327
 
175
328
  viewMetaData,
176
329
  setViewMetaData,
@@ -181,6 +334,12 @@ export function BuilderProvider({ children }) {
181
334
  draggingNodeId,
182
335
  setDraggingNodeId,
183
336
 
337
+ // ── Copy/paste clipboard ─────────────────────────────────────────────
338
+ // clipboard — the last copied node (plain object, not cloned yet)
339
+ // setClipboard — store a node reference for later paste
340
+ clipboard,
341
+ setClipboard,
342
+
184
343
  // ✅ mode API
185
344
  mode,
186
345
  setMode,
@@ -191,6 +350,20 @@ export function BuilderProvider({ children }) {
191
350
  data,
192
351
  setData,
193
352
 
353
+ // ── Unified ref storage ──────────────────────────────────────────────
354
+ // dataRef — mutable non-reactive store (useRef({})); mutate via dataRef.current
355
+ // reportRefs — registry of { [nodeId]: updateRef } for all ReportViewers
356
+ // dialogRefs — registry of { [key]: { open, close } } for all Dialogs
357
+ // printDialogRef — ref to the single PrintDialog { open, close }
358
+ dataRef,
359
+ reportRefs,
360
+ dialogRefs,
361
+ openDialog,
362
+ closeDialog,
363
+ printDialogRef,
364
+ openPrintLayout,
365
+ closePrintLayout,
366
+
194
367
  // ✅ form state and handlers
195
368
  form,
196
369
  setForm,
@@ -198,9 +371,20 @@ export function BuilderProvider({ children }) {
198
371
  validationErrors,
199
372
  setValidationErrors,
200
373
  submitForm,
201
- resetForm
374
+ resetForm,
375
+
376
+ // ── Session log (AI training-data capture) ───────────────────────────
377
+ // logSchema({ builder, trigger?, title?, viewMetaData?, schema? })
378
+ // appends an entry to localStorage. Schema defaults to the current
379
+ // builder schema if not provided.
380
+ // openSessionLog / closeSessionLog control the review dialog.
381
+ logSchema,
382
+ openSessionLog,
383
+ closeSessionLog
202
384
  }}
203
385
  >
386
+ <UnsavedChangesGuard isDirty={isDirty} />
387
+ <SessionLogDialog open={sessionLogOpen} onClose={closeSessionLog} />
204
388
  {children}
205
389
  </BuilderContext.Provider>
206
390
  )
@@ -7,7 +7,7 @@ import axios from 'axios'
7
7
 
8
8
  // ** Config
9
9
  import {Endpoints, Services} from 'services/Endpoints'
10
- import {getBaseURL} from 'services/config'
10
+ import {getBaseURL, getAccessToken} from 'services/config'
11
11
  import {useJsApiLoader} from '@react-google-maps/api'
12
12
  import {AuthContext} from './AuthContext'
13
13
  import handleChange from 'services/helper/handleChange'
@@ -44,7 +44,7 @@ const SystemProvider = ({children}) => {
44
44
  const auth = useContext(AuthContext)
45
45
  //
46
46
  useEffect(() => {
47
- if (localStorage.getItem('accessToken') != null) {
47
+ if (getAccessToken() != null) {
48
48
  handleGetNavigationSettings()
49
49
  console.log(navigation)
50
50
  }
@@ -0,0 +1,36 @@
1
+ import { useState, useEffect } from 'react'
2
+ import { getGlobalData, setGlobalData, subscribeGlobal } from '../services/globalStore'
3
+
4
+ /**
5
+ * React hook for consuming and updating the cross-route global store.
6
+ *
7
+ * Components that call this hook will re-render whenever any part of
8
+ * globalData changes (via setGlobalData from any Calculation, renderer,
9
+ * or component anywhere in the app).
10
+ *
11
+ * @returns {{ globalData: object, setGlobalData: (updater: object | Function) => void }}
12
+ *
13
+ * @example
14
+ * function MyComponent() {
15
+ * const { globalData, setGlobalData } = useGlobalStore()
16
+ *
17
+ * return (
18
+ * <div>
19
+ * Selected: {globalData.selectedUser?.name}
20
+ * <button onClick={() => setGlobalData({ selectedUser: null })}>Clear</button>
21
+ * </div>
22
+ * )
23
+ * }
24
+ */
25
+ export function useGlobalStore() {
26
+ const [state, setState] = useState(getGlobalData)
27
+
28
+ useEffect(() => {
29
+ // Sync with any changes that happened between render and effect
30
+ setState(getGlobalData())
31
+ // Subscribe for future updates
32
+ return subscribeGlobal(setState)
33
+ }, [])
34
+
35
+ return { globalData: state, setGlobalData }
36
+ }
@@ -0,0 +1,54 @@
1
+ import { useEffect, useRef } from 'react'
2
+ import { executeJSCode } from 'services/builderHelper/jsExecutor'
3
+
4
+ /**
5
+ * useTimerEngine
6
+ *
7
+ * Starts client-side timers (setInterval / setTimeout) for each enabled timer
8
+ * in the schema, executes their Calculation code via executeJSCode, and cleans
9
+ * up all handles when the component unmounts or the timer configuration changes.
10
+ *
11
+ * IMPORTANT — context is read through a ref, NOT a dep:
12
+ * The effect only re-registers when `timers` config changes, not on every
13
+ * render caused by data/form state updates. This prevents runaway re-mounts
14
+ * while still ensuring each tick uses the freshest data/setData values.
15
+ *
16
+ * @param {object[]} timers - schema.timers array
17
+ * @param {object} context - Execution context (data, setData, dataRef, …)
18
+ * Caller must update this object on every render.
19
+ */
20
+ export function useTimerEngine({ timers, context }) {
21
+ // Always hold a ref to the latest context so timer callbacks see fresh state
22
+ // without adding context to the effect dependency array.
23
+ const contextRef = useRef(context)
24
+ useEffect(() => { contextRef.current = context }) // sync every render
25
+
26
+ useEffect(() => {
27
+ const active = (timers ?? []).filter(t => t.enabled && t.code?.trim())
28
+ if (!active.length) return
29
+
30
+ const cleanups = []
31
+
32
+ for (const timer of active) {
33
+ // Enforce a 1 s minimum to avoid accidental tight loops
34
+ const ms = Math.max(Number(timer.interval) || 5000, 1000)
35
+
36
+ const run = () => {
37
+ executeJSCode(timer.code, contextRef.current).catch(err =>
38
+ console.error(`[Timer "${timer.name ?? timer.id}"]`, err)
39
+ )
40
+ }
41
+
42
+ if (timer.type === 'interval') {
43
+ if (timer.runOnLoad) run() // fire immediately if requested
44
+ const id = setInterval(run, ms)
45
+ cleanups.push(() => clearInterval(id))
46
+ } else if (timer.type === 'delay') {
47
+ const id = setTimeout(run, ms)
48
+ cleanups.push(() => clearTimeout(id))
49
+ }
50
+ }
51
+
52
+ return () => cleanups.forEach(fn => fn())
53
+ }, [timers]) // re-registers only when timer config (name/type/interval/code) changes
54
+ }