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
@@ -22,6 +22,7 @@ import { NavigatorEndpoints } from 'services/Endpoints/NavigatorEndpoints'
22
22
  import { ViewEndpoints } from './Endpoints/ViewEndpoints'
23
23
  import { UiBuilderEndpoints } from 'services/Endpoints/UiBuilderEndpoints'
24
24
  import { WidgetEndpoints } from 'services/Endpoints/WidgetEndpoints'
25
+ import { PrintLayoutEndpoints } from 'services/Endpoints/PrintLayoutEndpoints'
25
26
 
26
27
  // BaseURL and ApiURL are now sourced from the config singleton so that
27
28
  // host apps can override them via configureRoboByte() or the
@@ -47,6 +48,7 @@ export const Endpoints = {
47
48
  UiBuilder: { ...UiBuilderEndpoints },
48
49
  Navigator: { ...NavigatorEndpoints },
49
50
  Widget: { ...WidgetEndpoints },
51
+ PrintLayout: { ...PrintLayoutEndpoints },
50
52
  ViewPermission: { ...ViewPermissionEndpoints },
51
53
  ViewPermissionRole: { ...ViewPermissionRoleEndpoints },
52
54
  ViewPermissionRoleItems: { ...ViewPermissionRoleItemsEndpoints },
@@ -1,64 +1,43 @@
1
1
  import Axios from 'axios'
2
- import { DataTypes } from './ContentTypes'
3
2
  import { resolveURL, getAccessToken } from './config'
4
3
  import toast from 'react-hot-toast'
4
+
5
5
  export default async function GetService(endpoint, showToast, data, params) {
6
- const accessToken = getAccessToken()
7
- let response = { status: 'Error', message: '' }
8
- let result = null
9
- const url = resolveURL(endpoint)
6
+ try {
7
+ const accessToken = getAccessToken()
8
+ const url = resolveURL(endpoint)
9
+
10
+ const r = await Axios.get(url, {
11
+ headers: {
12
+ Authorization: `Bearer ${accessToken}`,
13
+ 'Content-Type': endpoint.ContentType,
14
+ },
15
+ params: {
16
+ ...params,
17
+ ...data,
18
+ },
19
+ })
10
20
 
11
- const axiosConfig = {
12
- method: 'post',
13
- headers: {
14
- Authorization: `Bearer ${accessToken}`,
15
- 'Content-Type': endpoint.ContentType
16
- },
17
- params: {
18
- ...data
21
+ if (showToast) {
22
+ toast.success(r.data?.message || 'تم التحميل بنجاح')
19
23
  }
24
+ return r.data
25
+
26
+ } catch (err) {
27
+ console.log(err)
28
+ const message = resolveErrorMessage(err)
29
+ toast.error(message)
30
+ return null
20
31
  }
32
+ }
21
33
 
22
- try {
23
- await Axios.get(url, axiosConfig)
24
- .then(r => {
25
- result = r.data
26
- response = {
27
- status: 'Success',
28
- message: r.data.message ? r.data.message : 'تم الحفظ بنجاح'
29
- }
30
- })
31
- .catch(r => {
34
+ function resolveErrorMessage(err) {
35
+ const status = err?.response?.status
36
+ const data = err?.response?.data
32
37
 
33
- if (r.response && r.response.status == 400) {
34
- response = {
35
- status: 'Error',
36
- message: typeof r.response.data == 'string' ? r.response.data : r.response.data.title
37
- // message: "حدث خطأ اثناء الحفظ",
38
- }
39
- } else if (r.response && (r.response.status == 401 || r.response.status == 403)) {
40
- response = {
41
- status: 'Error',
42
- message: 'غير مخول'
43
- }
44
- } else {
45
- response = {
46
- status: 'Error',
47
- message: 'حدث خطأ في تحميل البيانات'
48
- }
49
- }
50
- })
51
- } catch (error) {
52
- response = {
53
- status: 'Error',
54
- message: 'حدث خطأ في تحميل البيانات'
55
- }
56
- } finally {
57
- if (response.status == 'Success') {
58
- if (showToast) toast.success(response.message)
59
- } else {
60
- toast.error(response.message)
61
- }
62
- }
63
- return result
38
+ if (status === 400) return typeof data === 'string' ? data : data?.title || 'طلب غير صحيح'
39
+ if (status === 401 || status === 403) return 'غير مخول'
40
+ if (status >= 500) return 'حدث خطأ في الخادم'
41
+ if (err?.message) return err.message
42
+ return 'حدث خطأ في تحميل البيانات'
64
43
  }
@@ -4,77 +4,50 @@ import { resolveURL, getAccessToken } from './config'
4
4
  import toast from 'react-hot-toast'
5
5
 
6
6
  export default async function PatchService(endpoint, showToast, data, params) {
7
- const accessToken = getAccessToken()
8
- let response = { status: 'Error', message: '' }
9
- let result = null
10
- let currentParams = {
11
- ...params,
12
- ...(endpoint.DataType == DataTypes.Params ? { ...data } : {})
13
- }
14
7
 
15
- let currnetData =
16
- endpoint.DataType == DataTypes.Form
17
- ? data
18
- : {
19
- ...(endpoint.DataType == DataTypes.Body ? { ...data } : {})
20
- }
21
- if (!data) return
22
- const url = resolveURL(endpoint)
8
+ try {
9
+ const accessToken = getAccessToken()
10
+ const url = resolveURL(endpoint)
23
11
 
24
- const axiosConfig = {
25
- method: 'patch',
26
- headers: {
27
- Authorization: `Bearer ${accessToken}`,
28
- 'Content-Type': endpoint.ContentType
29
- },
30
- params: {
31
- ...currentParams
12
+ const currentParams = {
13
+ ...params,
14
+ ...(endpoint.DataType === DataTypes.Params ? { ...data } : {}),
32
15
  }
33
- }
34
-
35
- try {
36
- await Axios.patch(url, currnetData, axiosConfig)
37
- .then(r => {
38
- result = r.data
39
- response = {
40
- status: 'Success',
41
- message: r.data.message ? r.data.message : 'تم الحفظ بنجاح'
42
- }
43
- })
44
- .catch(r => {
16
+ const requestData =
17
+ endpoint.DataType === DataTypes.Form
18
+ ? data
19
+ : endpoint.DataType === DataTypes.Body
20
+ ? { ...data }
21
+ : {}
45
22
 
46
- if (r.response && r.response.status == 400) {
47
- response = {
48
- status: 'Error',
49
- message: typeof r.response.data == 'string' ? r.response.data : r.response.data.title
50
- // message: "حدث خطأ اثناء الحفظ",
51
- }
52
- } else if (r.response && (r.response.status == 401 || r.response.status == 403)) {
53
- response = {
54
- status: 'Error',
55
- message: 'غير مخول'
56
- }
57
- } else {
23
+ const r = await Axios.patch(url, requestData, {
24
+ headers: {
25
+ Authorization: `Bearer ${accessToken}`,
26
+ 'Content-Type': endpoint.ContentType,
27
+ },
28
+ params: currentParams,
29
+ })
58
30
 
59
- response = {
60
- status: 'Error',
61
- message: 'حدث خطأ في الاتصال مع الخادم'
62
- }
63
- }
64
- })
65
- } catch (error) {
66
- response = {
67
- status: 'Error',
68
- message: 'حدث خطأ في الخادم'
69
- }
70
- } finally {
71
31
  if (showToast) {
72
- if (response.status == 'Success') {
73
- toast.success(response.message)
74
- } else {
75
- toast.error(response.message)
76
- }
32
+ toast.success(r.data?.message || 'تم الحفظ بنجاح')
77
33
  }
34
+ return r.data
35
+
36
+ } catch (err) {
37
+ console.log(err)
38
+ const message = resolveErrorMessage(err)
39
+ toast.error(message)
40
+ return null
78
41
  }
79
- return result
42
+ }
43
+
44
+ function resolveErrorMessage(err) {
45
+ const status = err?.response?.status
46
+ const data = err?.response?.data
47
+
48
+ if (status === 400) return typeof data === 'string' ? data : data?.title || 'طلب غير صحيح'
49
+ if (status === 401 || status === 403) return 'غير مخول'
50
+ if (status >= 500) return 'حدث خطأ في الخادم'
51
+ if (err?.message) return err.message
52
+ return 'حدث خطأ في الاتصال مع الخادم'
80
53
  }
@@ -4,75 +4,49 @@ import { resolveURL, getAccessToken } from './config'
4
4
  import toast from 'react-hot-toast'
5
5
 
6
6
  export default async function PostService(endpoint, showToast, data, params) {
7
- const accessToken = getAccessToken()
8
7
 
9
8
 
10
- let response = { status: 'Error', message: '' }
11
- let result = null
12
- let currentParams = {
13
- ...params,
14
- ...(endpoint.DataType == DataTypes.Params ? { ...data } : {})
15
- }
16
- let currnetData = endpoint.DataType == DataTypes.Form || endpoint.DataType == DataTypes.Body ? data : {}
17
-
18
- if (!data) return
19
- const url = resolveURL(endpoint)
20
-
21
- const axiosConfig = {
22
- method: 'post',
23
- headers: {
24
- Authorization: `Bearer ${accessToken}`,
25
- 'Content-Type': endpoint.ContentType
26
- },
27
- params: {
28
- ...currentParams
29
- }
30
- }
31
-
32
9
  try {
33
- await Axios.post(url, currnetData, axiosConfig)
34
- .then(r => {
35
- result = r.data
36
- response = {
37
- status: 'Success',
38
- message: r.data.message ? r.data.message : 'تم الحفظ بنجاح'
39
- }
40
- })
41
- .catch(r => {
42
- if (r.response && r.response.status == 400) {
43
- response = {
44
- status: 'Error',
45
- message: typeof r.response.data == 'string' ? r.response.data : r.response.data.title
46
- // message: "حدث خطأ اثناء الحفظ",
47
- }
48
- } else if (r.response && (r.response.status == 401 || r.response.status == 403)) {
49
- response = {
50
- status: 'Error',
51
- message: 'غير مخول'
52
- }
53
- } else {
10
+ const accessToken = getAccessToken()
11
+ const url = resolveURL(endpoint)
54
12
 
55
- response = {
56
- status: 'Error',
57
- message: 'حدث خطأ في الاتصال مع الخادم'
58
- }
59
- }
60
- })
61
- } catch (error) {
62
- response = {
63
- status: 'Error',
64
- message: 'حدث خطأ في الخادم'
13
+ const currentParams = {
14
+ ...params,
15
+ ...(endpoint.DataType === DataTypes.Params ? { ...data } : {}),
65
16
  }
66
- } finally {
67
- if (response.status == 'Success') {
68
- if (showToast) {
69
- toast.success(response.message)
70
- }
71
- } else {
72
- toast.error(response.message)
73
- return false
17
+ const requestData =
18
+ endpoint.DataType === DataTypes.Form || endpoint.DataType === DataTypes.Body
19
+ ? data
20
+ : {}
21
+
22
+ const r = await Axios.post(url, requestData, {
23
+ headers: {
24
+ Authorization: `Bearer ${accessToken}`,
25
+ 'Content-Type': endpoint.ContentType,
26
+ },
27
+ params: currentParams,
28
+ })
29
+
30
+ if (showToast) {
31
+ toast.success(r.data?.message || 'تم الحفظ بنجاح')
74
32
  }
33
+ return r.data
34
+
35
+ } catch (err) {
36
+ console.log(err)
37
+ const message = resolveErrorMessage(err)
38
+ toast.error(message)
39
+ return null
75
40
  }
41
+ }
42
+
43
+ function resolveErrorMessage(err) {
44
+ const status = err?.response?.status
45
+ const data = err?.response?.data
76
46
 
77
- return result
47
+ if (status === 400) return typeof data === 'string' ? data : data?.title || 'طلب غير صحيح'
48
+ if (status === 401 || status === 403) return 'غير مخول'
49
+ if (status >= 500) return 'حدث خطأ في الخادم'
50
+ if (err?.message) return err.message
51
+ return 'حدث خطأ في الاتصال مع الخادم'
78
52
  }
@@ -4,76 +4,50 @@ import { resolveURL, getAccessToken } from './config'
4
4
  import toast from 'react-hot-toast'
5
5
 
6
6
  export default async function UpdateService(endpoint, showToast, data, params, urlExtra = '') {
7
- const accessToken = getAccessToken()
8
- let response = { status: 'Error', message: '' }
9
- let result = null
10
- let currentParams = {
11
- ...params,
12
- ...(endpoint.DataType == DataTypes.Params ? { ...data } : {})
13
- }
14
- let currnetData =
15
- endpoint.DataType == DataTypes.Form
16
- ? data
17
- : {
18
- ...(endpoint.DataType == DataTypes.Body ? { ...data } : {})
19
- }
20
- if (!data) return
21
- const url = resolveURL(endpoint) + urlExtra
22
-
23
- const axiosConfig = {
24
- method: 'put',
25
- headers: {
26
- Authorization: `Bearer ${accessToken}`,
27
- 'Content-Type': endpoint.ContentType
28
- },
29
- params: {
30
- ...currentParams
31
- }
32
- }
33
7
 
34
8
  try {
35
- await Axios.put(url, currnetData, axiosConfig)
36
- .then(r => {
37
- result = r.data
38
- response = {
39
- status: 'Success',
40
- message: r.data.message ? r.data.message : 'تم الحفظ بنجاح'
41
- }
42
- })
43
- .catch(r => {
44
-
45
- if (r.response && r.response.status == 400) {
46
- response = {
47
- status: 'Error',
48
- message: typeof r.response.data == 'string' ? r.response.data : r.response.data.title
49
- // message: "حدث خطأ اثناء الحفظ",
50
- }
51
- } else if (r.response && (r.response.status == 401 || r.response.status == 403)) {
52
- response = {
53
- status: 'Error',
54
- message: 'غير مخول'
55
- }
56
- } else {
9
+ const accessToken = getAccessToken()
10
+ const url = resolveURL(endpoint) + (urlExtra || '')
57
11
 
58
- response = {
59
- status: 'Error',
60
- message: 'حدث خطأ في الاتصال مع الخادم'
61
- }
62
- }
63
- })
64
- } catch (error) {
65
- response = {
66
- status: 'Error',
67
- message: 'حدث خطأ في الخادم'
12
+ const currentParams = {
13
+ ...params,
14
+ ...(endpoint.DataType === DataTypes.Params ? { ...data } : {}),
68
15
  }
69
- } finally {
16
+ const requestData =
17
+ endpoint.DataType === DataTypes.Form
18
+ ? data
19
+ : endpoint.DataType === DataTypes.Body
20
+ ? { ...data }
21
+ : {}
22
+
23
+ const r = await Axios.put(url, requestData, {
24
+ headers: {
25
+ Authorization: `Bearer ${accessToken}`,
26
+ 'Content-Type': endpoint.ContentType,
27
+ },
28
+ params: currentParams,
29
+ })
30
+
70
31
  if (showToast) {
71
- if (response.status == 'Success') {
72
- toast.success(response.message)
73
- } else {
74
- toast.error(response.message)
75
- }
32
+ toast.success(r.data?.message || 'تم الحفظ بنجاح')
76
33
  }
34
+ return r.data
35
+
36
+ } catch (err) {
37
+ console.log(err)
38
+ const message = resolveErrorMessage(err)
39
+ toast.error(message)
40
+ return null
77
41
  }
78
- return result
42
+ }
43
+
44
+ function resolveErrorMessage(err) {
45
+ const status = err?.response?.status
46
+ const data = err?.response?.data
47
+
48
+ if (status === 400) return typeof data === 'string' ? data : data?.title || 'طلب غير صحيح'
49
+ if (status === 401 || status === 403) return 'غير مخول'
50
+ if (status >= 500) return 'حدث خطأ في الخادم'
51
+ if (err?.message) return err.message
52
+ return 'حدث خطأ في الاتصال مع الخادم'
79
53
  }
@@ -1,10 +1,15 @@
1
1
  import { executeJSCode } from './jsExecutor'
2
2
 
3
3
  /**
4
- * Execute an action and set the result to the data object
5
- * @param {object} action - The action to execute
6
- * @param {object} context - The execution context (form, data)
7
- * @param {function} setData - Function to update the data object
4
+ * Execute an action and optionally set its result onto the data state.
5
+ *
6
+ * context shape:
7
+ * form, data, setData, dataRef, reportRefs
8
+ * (setData may also be provided as the legacy 3rd argument for backward compat)
9
+ *
10
+ * @param {object} action - The action to execute
11
+ * @param {object} context - Execution context
12
+ * @param {function} [setData] - Legacy: state setter; prefer context.setData
8
13
  */
9
14
  export async function executeAction(action, context, setData) {
10
15
  if (!action || !action.code) {
@@ -12,27 +17,47 @@ export async function executeAction(action, context, setData) {
12
17
  return
13
18
  }
14
19
 
20
+ // Resolve setData: prefer what's already in context, fall back to the explicit arg
21
+ const effectiveSetData = context.setData || setData || (() => {})
22
+
23
+ // Build the full context that jsExecutor expects
24
+ const fullContext = {
25
+ form: context.form ?? {},
26
+ data: context.data ?? {},
27
+ dataRef: context.dataRef ?? {},
28
+ reportRefs: context.reportRefs ?? {},
29
+ openDialog: context.openDialog ?? (() => {}),
30
+ closeDialog: context.closeDialog ?? (() => {}),
31
+ // Thread parent-page stores so Calculation can access `page.data` etc.
32
+ pageData: context.pageData,
33
+ pageSetData: context.pageSetData,
34
+ pageDataRef: context.pageDataRef,
35
+ pageReportRefs: context.pageReportRefs,
36
+ ...context,
37
+ setData: effectiveSetData,
38
+ }
39
+
15
40
  try {
16
- // Execute the action code using centralized executor
17
- const result = await executeJSCode(action.code, context)
41
+ const result = await executeJSCode(action.code, fullContext)
18
42
 
19
- // Parse target path and set the result
20
43
  if (action.targetPath) {
21
- setDataAtPath(setData, action.targetPath, result)
44
+ setDataAtPath(effectiveSetData, action.targetPath, result)
22
45
  }
46
+
47
+ return result
23
48
  } catch (e) {
24
49
  console.error(`Action execution error [${action.name}]:`, e)
25
50
  }
26
51
  }
27
52
 
28
53
  /**
29
- * Set value at a nested path in the data object
30
- * @param {function} setData - Function to update the data object
31
- * @param {string} path - Dot-notation path (e.g., 'data.d1' or 'd1')
32
- * @param {any} value - Value to set
54
+ * Set value at a nested path in the data object.
55
+ *
56
+ * @param {function} setData - State setter
57
+ * @param {string} path - Dot-notation path (e.g. 'data.d1' or 'd1')
58
+ * @param {any} value - Value to set
33
59
  */
34
60
  function setDataAtPath(setData, path, value) {
35
- // Remove 'data.' prefix if present
36
61
  const cleanPath = path.startsWith('data.') ? path.substring(5) : path
37
62
 
38
63
  setData(prev => {
@@ -40,34 +65,125 @@ function setDataAtPath(setData, path, value) {
40
65
  const keys = cleanPath.split('.')
41
66
  let current = newData
42
67
 
43
- // Navigate to the parent of the target key
44
68
  for (let i = 0; i < keys.length - 1; i++) {
45
- if (!current[keys[i]]) {
46
- current[keys[i]] = {}
47
- }
69
+ if (!current[keys[i]]) current[keys[i]] = {}
48
70
  current = current[keys[i]]
49
71
  }
50
72
 
51
- // Set the final value
52
73
  current[keys[keys.length - 1]] = value
53
-
54
74
  return newData
55
75
  })
56
76
  }
57
77
 
58
78
  /**
59
- * Execute all actions of a specific event type
60
- * @param {array} actions - All actions from schema
61
- * @param {string} eventType - Event type to filter (e.g., 'onLoad')
62
- * @param {object} context - Execution context (form, data)
63
- * @param {function} setData - Function to update the data object
79
+ * Execute all actions of a specific event type.
80
+ *
81
+ * @param {array} actions - All actions from schema
82
+ * @param {string} eventType - Event type to filter ('onLoad', 'onSubmit', …)
83
+ * @param {object} context - Execution context (see executeAction)
84
+ * @param {function} [setData] - Legacy 4th arg for backward compat
64
85
  */
65
86
  export async function executeActionsByEvent(actions, eventType, context, setData) {
66
87
  if (!actions || !Array.isArray(actions)) return
67
88
 
68
89
  const matchingActions = actions.filter(action => action.event === eventType)
69
90
 
91
+ let lastResult
70
92
  for (const action of matchingActions) {
71
- await executeAction(action, context, setData)
93
+ lastResult = await executeAction(action, context, setData)
94
+ }
95
+ return lastResult
96
+ }
97
+
98
+ /**
99
+ * Convenience helper for KPI / data-visualisation renderers.
100
+ *
101
+ * Reads `node.props.actions[eventName]` and executes the action,
102
+ * injecting `clickVars` into the Calculation's lexical scope so the
103
+ * user can reference them directly by name:
104
+ *
105
+ * async function Calculation(form, data, setData, ...) {
106
+ * // clickedItem, clickedValue, clickedLabel, clickedIndex, etc.
107
+ * setData(prev => ({ ...prev, selected: clickedItem }))
108
+ * openDialog('detail', { data: { row: clickedItem } })
109
+ * showToast('Clicked: ' + clickedLabel, 'info')
110
+ * }
111
+ *
112
+ * @param {object} node - Builder node (has node.props.actions)
113
+ * @param {object} viewerContext - Full viewerContext from the renderer
114
+ * @param {string} eventName - 'onDataClick' | 'onCellClick' | 'onItemClick' | etc.
115
+ * @param {object} [clickVars] - Click-specific variables to inject (clickedItem, clickedValue, …)
116
+ */
117
+ export async function runKpiAction(node, viewerContext, eventName, clickVars = {}) {
118
+ const action = node.props?.actions?.[eventName]
119
+ if (!action?.code) return
120
+
121
+ const {
122
+ form, data, setData, dataRef, reportRefs,
123
+ openDialog, closeDialog,
124
+ pageData, pageSetData, pageDataRef, pageReportRefs,
125
+ } = viewerContext ?? {}
126
+
127
+ const context = {
128
+ form: form ?? {},
129
+ data: data ?? {},
130
+ setData: setData ?? (() => {}),
131
+ dataRef: dataRef?.current ?? dataRef ?? {},
132
+ reportRefs: reportRefs ?? {},
133
+ openDialog: openDialog ?? (() => {}),
134
+ closeDialog: closeDialog ?? (() => {}),
135
+ pageData, pageSetData, pageDataRef, pageReportRefs,
136
+ extraVars: clickVars,
72
137
  }
138
+
139
+ return executeAction(action, context)
140
+ }
141
+
142
+ /**
143
+ * Convenience helper for field/input renderers.
144
+ *
145
+ * Reads the node's actions, builds the context from viewerContext, and fires
146
+ * all handlers registered for `eventName`.
147
+ *
148
+ * `newValue` is injected into the Calculation's lexical scope so action code
149
+ * can reference it directly without digging through form state:
150
+ *
151
+ * async function Calculation(form, data, setData, ...) {
152
+ * if (newValue === 'active') setData(prev => ({ ...prev, showExtra: true }))
153
+ * }
154
+ *
155
+ * @param {object} node - Builder node (has node.props.actions)
156
+ * @param {object} viewerContext - Full viewerContext from the renderer
157
+ * @param {string} eventName - 'onChange' | 'onBlur' | etc.
158
+ * @param {any} newValue - The new field value, available as `newValue` in action code
159
+ */
160
+ export async function runFieldAction(node, viewerContext, eventName, newValue) {
161
+ const propsActions = node.props?.actions ?? {}
162
+
163
+ const actions = Object.entries(propsActions)
164
+ .filter(([, v]) => v?.actionType === 'custom' && v?.code)
165
+ .map(([event, v]) => ({ event, code: v.code, name: event }))
166
+
167
+ if (!actions.length) return
168
+
169
+ const {
170
+ form, data, setData, dataRef, reportRefs,
171
+ openDialog, closeDialog,
172
+ pageData, pageSetData, pageDataRef, pageReportRefs,
173
+ } = viewerContext
174
+
175
+ const context = {
176
+ form,
177
+ data,
178
+ setData: setData ?? (() => {}),
179
+ dataRef: dataRef?.current ?? dataRef ?? {},
180
+ reportRefs: reportRefs ?? {},
181
+ openDialog: openDialog ?? (() => {}),
182
+ closeDialog: closeDialog ?? (() => {}),
183
+ pageData, pageSetData, pageDataRef, pageReportRefs,
184
+ // Inject newValue into the Calculation's lexical scope via extraVars
185
+ extraVars: { newValue },
186
+ }
187
+
188
+ return executeActionsByEvent(actions, eventName, context)
73
189
  }