@wavemaker-ai/react-runtime 1.0.0-rc.312 → 1.0.0-rc.317

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 (593) hide show
  1. package/.npmignore +4 -0
  2. package/actions/base-action.js +12 -29
  3. package/actions/login-action.js +35 -52
  4. package/actions/logout-action.js +21 -38
  5. package/actions/navigation-action.d.ts +1 -0
  6. package/actions/navigation-action.js +275 -345
  7. package/actions/notification-action.js +121 -149
  8. package/actions/timer-action.js +95 -151
  9. package/actions/toast-provider.js +62 -76
  10. package/actions/toast.js +95 -91
  11. package/actions/toast.service.js +59 -79
  12. package/actions/types/index.js +6 -9
  13. package/components/advanced/carousel/index.js +358 -366
  14. package/components/advanced/carousel/props.js +0 -5
  15. package/components/advanced/carousel/template.js +102 -80
  16. package/components/advanced/login/index.js +227 -285
  17. package/components/advanced/login/props.js +0 -5
  18. package/components/advanced/marquee/index.js +169 -163
  19. package/components/advanced/marquee/props.js +0 -5
  20. package/components/auth/RoleAuthGuard.d.ts +6 -0
  21. package/components/auth/RoleAuthGuard.js +65 -0
  22. package/components/basic/anchor/index.js +207 -187
  23. package/components/basic/anchor/props.js +0 -5
  24. package/components/basic/audio/index.js +110 -72
  25. package/components/basic/audio/props.js +0 -5
  26. package/components/basic/html/index.js +163 -203
  27. package/components/basic/html/props.js +0 -5
  28. package/components/basic/html/utils.js +30 -28
  29. package/components/basic/icon/index.js +98 -84
  30. package/components/basic/icon/props.js +0 -5
  31. package/components/basic/iframe/iframe.utils.js +7 -16
  32. package/components/basic/iframe/index.js +97 -103
  33. package/components/basic/iframe/props.js +0 -5
  34. package/components/basic/label/index.js +156 -134
  35. package/components/basic/label/props.js +0 -5
  36. package/components/basic/message/index.js +129 -113
  37. package/components/basic/message/props.js +0 -5
  38. package/components/basic/picture/index.js +156 -127
  39. package/components/basic/picture/props.js +0 -5
  40. package/components/basic/progress-bar/index.js +240 -176
  41. package/components/basic/progress-bar/props.js +5 -31
  42. package/components/basic/progress-circle/index.js +166 -183
  43. package/components/basic/progress-circle/props.js +14 -34
  44. package/components/basic/richtexteditor/index.js +430 -396
  45. package/components/basic/richtexteditor/props.js +0 -5
  46. package/components/basic/search/index.js +813 -931
  47. package/components/basic/search/props.js +0 -5
  48. package/components/basic/search/providers.js +233 -380
  49. package/components/basic/spinner/index.js +210 -200
  50. package/components/basic/spinner/props.js +4 -22
  51. package/components/basic/tile/index.js +73 -81
  52. package/components/basic/tile/props.js +0 -5
  53. package/components/basic/tree/Components/TreeNodeComponent.d.ts +1 -1
  54. package/components/basic/tree/Components/TreeNodeComponent.js +244 -170
  55. package/components/basic/tree/hooks/useTreePartialNodeApi.js +143 -135
  56. package/components/basic/tree/hooks/useTreePersistedState.d.ts +3 -0
  57. package/components/basic/tree/hooks/useTreePersistedState.js +38 -0
  58. package/components/basic/tree/index.d.ts +1 -0
  59. package/components/basic/tree/index.js +453 -454
  60. package/components/basic/tree/props.d.ts +18 -1
  61. package/components/basic/tree/props.js +0 -5
  62. package/components/basic/tree/utils.d.ts +16 -1
  63. package/components/basic/tree/utils.js +240 -185
  64. package/components/basic/video/index.js +161 -107
  65. package/components/basic/video/props.js +0 -5
  66. package/components/chart/index.js +42 -50
  67. package/components/chart/props.js +31 -37
  68. package/components/chart/src/ChartRenderer.js +172 -154
  69. package/components/chart/src/chart.js +391 -213
  70. package/components/chart/src/chartStyles.generated.js +6 -14
  71. package/components/chart/src/chartUtils.js +228 -272
  72. package/components/chart/src/constants.d.ts +13 -0
  73. package/components/chart/src/constants.js +316 -90
  74. package/components/chart/src/d3Setup.js +11 -30
  75. package/components/chart/src/dataUtils.js +363 -447
  76. package/components/chart/src/formatUtils.js +47 -38
  77. package/components/chart/src/index.js +11 -19
  78. package/components/chart/src/nvd3Source.generated.js +5 -13
  79. package/components/chart/src/pieDonutResponsiveLayout.d.ts +5 -0
  80. package/components/chart/src/pieDonutResponsiveLayout.js +76 -96
  81. package/components/chart/src/types.js +0 -5
  82. package/components/common/AppSpinner.js +17 -33
  83. package/components/common/app-spinner.js +11 -22
  84. package/components/common/customTemplate/index.d.ts +3 -0
  85. package/components/common/customTemplate/index.js +6 -0
  86. package/components/common/customTemplate/props.d.ts +20 -0
  87. package/components/common/customTemplate/props.js +0 -0
  88. package/components/common/customTemplate/template.d.ts +3 -0
  89. package/components/common/customTemplate/template.js +27 -0
  90. package/components/common/customTemplate/useCustomTemplate.d.ts +8 -0
  91. package/components/common/customTemplate/useCustomTemplate.js +17 -0
  92. package/components/common/customTemplate/utils.d.ts +6 -0
  93. package/components/common/customTemplate/utils.js +12 -0
  94. package/components/common/index.js +4 -12
  95. package/components/constants.js +81 -77
  96. package/components/container/accordion/accordion-pane/index.js +105 -118
  97. package/components/container/accordion/accordion-pane/props.js +5 -21
  98. package/components/container/accordion/index.js +225 -243
  99. package/components/container/accordion/props.js +5 -16
  100. package/components/container/index.js +210 -155
  101. package/components/container/layout-grid/grid-column/index.js +69 -43
  102. package/components/container/layout-grid/grid-column/props.js +0 -5
  103. package/components/container/layout-grid/grid-row/index.js +12 -29
  104. package/components/container/layout-grid/grid-row/props.js +0 -5
  105. package/components/container/layout-grid/index.js +53 -38
  106. package/components/container/layout-grid/props.js +0 -5
  107. package/components/container/linear-layout/index.js +56 -60
  108. package/components/container/linear-layout/linear-layout-item/index.js +43 -47
  109. package/components/container/linear-layout/linear-layout-item/props.js +0 -5
  110. package/components/container/linear-layout/props.js +0 -5
  111. package/components/container/panel/components/panel-content/index.js +7 -16
  112. package/components/container/panel/components/panel-header/index.js +166 -146
  113. package/components/container/panel/components/panel-header/props.js +0 -5
  114. package/components/container/panel/hooks.js +76 -102
  115. package/components/container/panel/index.js +289 -252
  116. package/components/container/panel/props.js +0 -5
  117. package/components/container/props.js +0 -5
  118. package/components/container/repeat-template/index.js +65 -44
  119. package/components/container/repeat-template/props.js +0 -5
  120. package/components/container/tabs/index.js +517 -526
  121. package/components/container/tabs/props.js +5 -28
  122. package/components/container/tabs/tab-pane/index.js +105 -100
  123. package/components/container/tabs/tab-pane/props.js +0 -5
  124. package/components/container/tabs/utils.js +30 -35
  125. package/components/container/wizard/WizardContext.js +9 -11
  126. package/components/container/wizard/components/StepComponents.js +76 -99
  127. package/components/container/wizard/components/WizardStep.js +107 -85
  128. package/components/container/wizard/index.js +791 -921
  129. package/components/container/wizard/props.js +0 -5
  130. package/components/container/wizard/utils.js +97 -131
  131. package/components/container/wizard/wizard-action/index.js +41 -81
  132. package/components/container/wizard/wizard-step/index.js +140 -120
  133. package/components/data/card/card-actions/index.js +13 -31
  134. package/components/data/card/card-content/index.js +27 -36
  135. package/components/data/card/card-footer/index.js +13 -31
  136. package/components/data/card/index.js +192 -199
  137. package/components/data/card/props.js +0 -5
  138. package/components/data/form/base-form/constant.js +5 -8
  139. package/components/data/form/base-form/hooks/index.js +26 -77
  140. package/components/data/form/base-form/hooks/useFormDataSync.js +106 -212
  141. package/components/data/form/base-form/hooks/useFormOperations.js +109 -161
  142. package/components/data/form/base-form/hooks/useFormSubmission.js +220 -280
  143. package/components/data/form/base-form/hooks/useFormValidation.js +119 -168
  144. package/components/data/form/base-form/hooks/useParentFormRelationship.js +67 -103
  145. package/components/data/form/base-form/index.js +534 -647
  146. package/components/data/form/base-form/props.js +74 -151
  147. package/components/data/form/base-form/utils.js +210 -323
  148. package/components/data/form/dynamic-fields/constant.js +43 -53
  149. package/components/data/form/dynamic-fields/index.js +135 -144
  150. package/components/data/form/dynamic-fields/props.js +0 -5
  151. package/components/data/form/dynamic-fields/utils.js +99 -158
  152. package/components/data/form/form-action/index.js +107 -85
  153. package/components/data/form/form-body/index.js +52 -26
  154. package/components/data/form/form-context.js +43 -59
  155. package/components/data/form/form-controller/hooks/index.js +43 -57
  156. package/components/data/form/form-controller/props.js +5 -8
  157. package/components/data/form/form-controller/utils.js +54 -49
  158. package/components/data/form/form-controller/validation-contrustor.js +203 -426
  159. package/components/data/form/form-controller/withFormController.js +320 -274
  160. package/components/data/form/form-dynamic-section/index.js +47 -41
  161. package/components/data/form/form-dynamic-section/props.js +0 -5
  162. package/components/data/form/form-field/base-field.js +97 -109
  163. package/components/data/form/form-field/index.js +91 -82
  164. package/components/data/form/form-field/props.js +0 -5
  165. package/components/data/form/form-footer/index.js +52 -25
  166. package/components/data/form/form-header/index.js +61 -58
  167. package/components/data/form/index.js +95 -74
  168. package/components/data/form/props.js +0 -5
  169. package/components/data/list/components/GroupHeader.js +34 -33
  170. package/components/data/list/components/GroupedListItems.js +108 -104
  171. package/components/data/list/components/ListContainer.js +22 -27
  172. package/components/data/list/components/ListDND.js +193 -185
  173. package/components/data/list/components/ListHeader.js +32 -49
  174. package/components/data/list/components/ListItem.js +153 -146
  175. package/components/data/list/components/ListItemWithTemplate.js +87 -105
  176. package/components/data/list/components/ListItems.js +180 -194
  177. package/components/data/list/components/ListPagination.js +127 -153
  178. package/components/data/list/components/LoadMoreButton.js +25 -33
  179. package/components/data/list/components/NoDataMessage.js +9 -22
  180. package/components/data/list/components/StandardListItems.js +79 -85
  181. package/components/data/list/components/index.js +31 -119
  182. package/components/data/list/components/props.js +0 -5
  183. package/components/data/list/hooks/index.js +22 -75
  184. package/components/data/list/hooks/props.js +0 -5
  185. package/components/data/list/hooks/useCurrentPageItems.js +20 -38
  186. package/components/data/list/hooks/useGroupedData.js +19 -33
  187. package/components/data/list/hooks/useListData.js +17 -47
  188. package/components/data/list/hooks/useListEffects.js +168 -237
  189. package/components/data/list/hooks/useListEventHandlers.js +301 -285
  190. package/components/data/list/hooks/useListPagination.js +90 -136
  191. package/components/data/list/hooks/useListState.js +49 -91
  192. package/components/data/list/hooks/useListStateManager.js +104 -159
  193. package/components/data/list/hooks/usePaginatedGroupedData.js +74 -110
  194. package/components/data/list/index.d.ts +1 -0
  195. package/components/data/list/index.js +579 -621
  196. package/components/data/list/props.d.ts +4 -0
  197. package/components/data/list/props.js +0 -5
  198. package/components/data/list/templates/media-template.js +29 -50
  199. package/components/data/list/utils/constants.js +20 -32
  200. package/components/data/list/utils/list-helpers.d.ts +2 -1
  201. package/components/data/list/utils/list-helpers.js +71 -115
  202. package/components/data/list/utils/list-widget-methods.js +56 -76
  203. package/components/data/list/utils/widget-instance-utils.js +20 -57
  204. package/components/data/live-filter/index.js +219 -271
  205. package/components/data/live-filter/props.js +5 -12
  206. package/components/data/live-form/index.js +68 -91
  207. package/components/data/live-form/props.js +5 -12
  208. package/components/data/pagination/components/BasicPagination.js +124 -104
  209. package/components/data/pagination/components/ClassicPagination.js +167 -190
  210. package/components/data/pagination/components/InlinePagination.js +97 -98
  211. package/components/data/pagination/components/LoadingComponent.js +17 -30
  212. package/components/data/pagination/components/PageSizeSelector.js +176 -169
  213. package/components/data/pagination/components/PagerNavigation.js +84 -105
  214. package/components/data/pagination/components/TotalRecords.js +48 -47
  215. package/components/data/pagination/components/index.js +14 -47
  216. package/components/data/pagination/components/props.js +0 -5
  217. package/components/data/pagination/hooks/index.js +6 -19
  218. package/components/data/pagination/hooks/props.js +0 -5
  219. package/components/data/pagination/hooks/useNavigationSize.js +12 -21
  220. package/components/data/pagination/hooks/usePagination.js +701 -905
  221. package/components/data/pagination/index.js +336 -389
  222. package/components/data/table/components/AddNewRow.js +122 -154
  223. package/components/data/table/components/EditableCell.js +68 -75
  224. package/components/data/table/components/FieldValidationError.js +19 -20
  225. package/components/data/table/components/RowCells.js +97 -80
  226. package/components/data/table/components/RowExpansionButton.js +43 -39
  227. package/components/data/table/components/SummaryCell.js +54 -88
  228. package/components/data/table/components/SummaryRow.js +45 -52
  229. package/components/data/table/components/SummaryRowFooter.js +35 -42
  230. package/components/data/table/components/TableBody.js +222 -218
  231. package/components/data/table/components/TableDataRow.js +113 -106
  232. package/components/data/table/components/TableFilters.js +391 -390
  233. package/components/data/table/components/TableFooterActions.js +25 -32
  234. package/components/data/table/components/TableHeader.js +460 -435
  235. package/components/data/table/components/TablePanelHeading.js +157 -181
  236. package/components/data/table/components/index.js +27 -95
  237. package/components/data/table/hooks/index.js +21 -230
  238. package/components/data/table/hooks/use-edited-rows.js +59 -94
  239. package/components/data/table/hooks/useCellState.js +58 -83
  240. package/components/data/table/hooks/useCustomExpressionColumns.js +65 -86
  241. package/components/data/table/hooks/useDynamicColumns.js +59 -92
  242. package/components/data/table/hooks/useEditingState.js +30 -41
  243. package/components/data/table/hooks/useFormWidget.js +163 -172
  244. package/components/data/table/hooks/usePaginationState.js +67 -77
  245. package/components/data/table/hooks/usePanelStructure.js +47 -41
  246. package/components/data/table/hooks/useResponsiveColumns.js +14 -20
  247. package/components/data/table/hooks/useRowExpansion.js +131 -127
  248. package/components/data/table/hooks/useRowHandlers.js +56 -69
  249. package/components/data/table/hooks/useRowSelection.js +249 -329
  250. package/components/data/table/hooks/useServerSideSorting.js +109 -175
  251. package/components/data/table/hooks/useTableColumns.js +322 -331
  252. package/components/data/table/hooks/useTableData.js +111 -166
  253. package/components/data/table/hooks/useTableEdit.js +526 -564
  254. package/components/data/table/hooks/useTableEffects.js +60 -107
  255. package/components/data/table/hooks/useTableFilter.js +244 -237
  256. package/components/data/table/hooks/useTableInitialization.js +44 -76
  257. package/components/data/table/hooks/useTableState.js +39 -61
  258. package/components/data/table/hooks/useTableStateManager.js +295 -468
  259. package/components/data/table/index.js +1556 -1713
  260. package/components/data/table/live-table/index.js +157 -219
  261. package/components/data/table/props.js +0 -5
  262. package/components/data/table/table-action/index.js +97 -75
  263. package/components/data/table/table-column/index.js +48 -42
  264. package/components/data/table/table-group/index.js +7 -25
  265. package/components/data/table/table-row/index.js +63 -55
  266. package/components/data/table/table-row-action/index.js +102 -77
  267. package/components/data/table/utils/buildSelectionColumns.js +86 -137
  268. package/components/data/table/utils/columnBuilder.d.ts +1 -1
  269. package/components/data/table/utils/columnBuilder.js +121 -160
  270. package/components/data/table/utils/columnProxy.js +48 -66
  271. package/components/data/table/utils/columnWidthDistribution.js +40 -64
  272. package/components/data/table/utils/constants.js +92 -40
  273. package/components/data/table/utils/crud-handlers.js +292 -473
  274. package/components/data/table/utils/dynamic-columns.js +99 -144
  275. package/components/data/table/utils/groupHeaderUtils.js +36 -61
  276. package/components/data/table/utils/index.d.ts +17 -13
  277. package/components/data/table/utils/index.js +483 -639
  278. package/components/data/table/utils/renderDisplayCell.js +127 -169
  279. package/components/data/table/utils/script-page-size-broadcast.js +17 -29
  280. package/components/data/table/utils/selectionUtils.js +59 -113
  281. package/components/data/table/utils/table-helpers.js +38 -74
  282. package/components/data/table/utils/validation.js +35 -78
  283. package/components/data/table/utils/widgetMapping.d.ts +5 -0
  284. package/components/data/table/utils/widgetMapping.js +41 -0
  285. package/components/data/types.js +112 -112
  286. package/components/data/utils/field-data-utils.js +38 -42
  287. package/components/data/utils/filter-field-util.js +42 -44
  288. package/components/data/utils/index.js +112 -111
  289. package/components/dialogs/alert-dialog/index.js +83 -78
  290. package/components/dialogs/alert-dialog/props.js +0 -5
  291. package/components/dialogs/confirm-dialog/index.js +102 -92
  292. package/components/dialogs/confirm-dialog/props.js +0 -5
  293. package/components/dialogs/dialog/index.js +93 -69
  294. package/components/dialogs/dialog/props.js +0 -5
  295. package/components/dialogs/dialog-actions/index.js +12 -26
  296. package/components/dialogs/dialog-actions/props.js +0 -5
  297. package/components/dialogs/dialog-body/index.js +13 -30
  298. package/components/dialogs/dialog-body/props.js +0 -5
  299. package/components/dialogs/dialog-content/index.js +48 -41
  300. package/components/dialogs/dialog-content/props.js +0 -5
  301. package/components/dialogs/dialog-header/index.js +88 -101
  302. package/components/dialogs/dialog-header/props.js +0 -5
  303. package/components/dialogs/iframe-dialog/index.js +136 -128
  304. package/components/dialogs/iframe-dialog/props.js +0 -5
  305. package/components/dialogs/index.js +104 -101
  306. package/components/dialogs/login-dialog/index.js +285 -347
  307. package/components/dialogs/login-dialog/props.js +0 -5
  308. package/components/dialogs/page-dialog/index.js +95 -86
  309. package/components/dialogs/page-dialog/props.js +0 -5
  310. package/components/dialogs/props.js +0 -5
  311. package/components/dialogs/withDialogWrapper.js +110 -83
  312. package/components/form/button/index.js +296 -245
  313. package/components/form/button/props.js +0 -5
  314. package/components/form/button-group/index.js +80 -69
  315. package/components/form/button-group/props.js +0 -5
  316. package/components/input/calendar/index.js +409 -362
  317. package/components/input/calendar/props.js +0 -5
  318. package/components/input/calendar/utils.js +164 -172
  319. package/components/input/chips/SortableChip/index.js +109 -100
  320. package/components/input/chips/SortableChip/props.js +0 -5
  321. package/components/input/chips/index.js +663 -570
  322. package/components/input/chips/props.js +0 -5
  323. package/components/input/chips/utils.js +131 -122
  324. package/components/input/color-picker/index.js +536 -594
  325. package/components/input/color-picker/props.js +0 -5
  326. package/components/input/composite/index.js +71 -110
  327. package/components/input/composite/props.js +0 -5
  328. package/components/input/currency/index.js +277 -224
  329. package/components/input/currency/props.js +0 -5
  330. package/components/input/default/checkbox/index.js +329 -250
  331. package/components/input/default/checkbox/props.js +0 -5
  332. package/components/input/default/checkboxset/index.d.ts +2 -0
  333. package/components/input/default/checkboxset/index.js +529 -446
  334. package/components/input/default/checkboxset/props.d.ts +4 -0
  335. package/components/input/default/checkboxset/props.js +0 -5
  336. package/components/input/default/checkboxset/utils.js +15 -25
  337. package/components/input/default/radioset/index.d.ts +2 -0
  338. package/components/input/default/radioset/index.js +409 -350
  339. package/components/input/default/radioset/props.d.ts +6 -0
  340. package/components/input/default/radioset/props.js +0 -5
  341. package/components/input/default/switch/index.js +494 -458
  342. package/components/input/default/switch/prop.js +0 -5
  343. package/components/input/epoch/date/components/DatePickerPopover.js +242 -193
  344. package/components/input/epoch/date/index.js +638 -518
  345. package/components/input/epoch/date/props.js +0 -5
  346. package/components/input/epoch/date/styled.js +61 -70
  347. package/components/input/epoch/date/utils.js +67 -115
  348. package/components/input/epoch/datetime/index.js +758 -695
  349. package/components/input/epoch/datetime/props.js +0 -5
  350. package/components/input/epoch/datetime/utils.js +121 -186
  351. package/components/input/epoch/time/index.js +441 -415
  352. package/components/input/epoch/time/props.js +0 -5
  353. package/components/input/epoch/time/utils.js +101 -112
  354. package/components/input/fileupload/Utils.js +70 -97
  355. package/components/input/fileupload/components/ListItems.js +132 -130
  356. package/components/input/fileupload/components/MultiUpload.js +80 -77
  357. package/components/input/fileupload/components/SingleUpload.js +57 -57
  358. package/components/input/fileupload/index.js +253 -178
  359. package/components/input/fileupload/props.js +0 -5
  360. package/components/input/fileupload/useFileUpload.js +209 -258
  361. package/components/input/number/index.js +434 -393
  362. package/components/input/number/props.js +0 -5
  363. package/components/input/rating/index.js +401 -394
  364. package/components/input/rating/props.js +0 -5
  365. package/components/input/select/index.js +408 -463
  366. package/components/input/select/props.js +0 -5
  367. package/components/input/slider/index.js +339 -332
  368. package/components/input/slider/props.js +0 -5
  369. package/components/input/text/index.d.ts +3 -3
  370. package/components/input/text/index.js +438 -475
  371. package/components/input/text/props.d.ts +1 -1
  372. package/components/input/text/props.js +0 -5
  373. package/components/input/text/util.js +82 -222
  374. package/components/input/textarea/index.js +322 -358
  375. package/components/input/textarea/props.js +0 -5
  376. package/components/input/upload/index.js +135 -131
  377. package/components/input/upload/props.js +0 -5
  378. package/components/input/util/index.js +9 -11
  379. package/components/layout/footer/index.js +12 -35
  380. package/components/layout/footer/props.js +0 -5
  381. package/components/layout/header/index.js +12 -38
  382. package/components/layout/header/props.js +0 -5
  383. package/components/layout/leftnav/index.js +57 -44
  384. package/components/layout/leftnav/props.d.ts +9 -0
  385. package/components/layout/leftnav/props.js +0 -5
  386. package/components/layout/leftnav/utils/page-class-util.d.ts +9 -0
  387. package/components/layout/leftnav/utils/page-class-util.js +28 -0
  388. package/components/layout/rightnav/index.js +12 -36
  389. package/components/layout/rightnav/props.js +0 -5
  390. package/components/layout/topnav/index.js +24 -38
  391. package/components/layout/topnav/props.js +0 -5
  392. package/components/navbar/index.js +119 -98
  393. package/components/navbar/nav/index.js +236 -232
  394. package/components/navbar/nav/props.js +0 -5
  395. package/components/navbar/nav-item/index.js +74 -65
  396. package/components/navbar/nav-item/props.js +0 -5
  397. package/components/navigation/breadcrumb/index.js +38 -61
  398. package/components/navigation/breadcrumb/props.js +0 -5
  399. package/components/navigation/menu/components/ListItems.js +76 -67
  400. package/components/navigation/menu/constants.js +27 -42
  401. package/components/navigation/menu/hooks/useHoverState.hook.js +20 -47
  402. package/components/navigation/menu/hooks/useKeyboardMovements.hook.js +34 -28
  403. package/components/navigation/menu/hooks/useTransformedDataset.hook.js +21 -14
  404. package/components/navigation/menu/index.js +911 -846
  405. package/components/navigation/menu/props.js +0 -5
  406. package/components/navigation/menu/utils/action-task.js +6 -9
  407. package/components/navigation/menu/utils/role-filter.js +41 -56
  408. package/components/navigation/popover/index.js +192 -205
  409. package/components/navigation/popover/props.js +5 -8
  410. package/components/page/content/index.js +9 -31
  411. package/components/page/content/props.js +0 -5
  412. package/components/page/error-boundary/index.js +115 -105
  413. package/components/page/error-boundary/props.js +0 -5
  414. package/components/page/index.js +100 -102
  415. package/components/page/page-content/index.js +21 -30
  416. package/components/page/page-content/props.js +0 -5
  417. package/components/page/page-context.d.ts +4 -0
  418. package/components/page/page-context.js +5 -0
  419. package/components/page/partial/index.js +50 -45
  420. package/components/page/partial/props.js +0 -5
  421. package/components/page/partial-container/index.js +78 -107
  422. package/components/page/partial-container/props.d.ts +1 -1
  423. package/components/page/partial-container/props.js +0 -5
  424. package/components/page/props.js +0 -5
  425. package/components/page/toast-container/index.js +20 -41
  426. package/components/page/toast-container/props.js +0 -5
  427. package/components/prefab/container/index.js +60 -53
  428. package/components/prefab/container/props.js +0 -5
  429. package/components/prefab/index.js +76 -61
  430. package/components/prefab/props.js +0 -5
  431. package/context/AppContext.d.ts +1 -1
  432. package/context/AppContext.js +17 -18
  433. package/context/AppSpinnerProvider.js +19 -34
  434. package/context/LayoutProvider.js +54 -57
  435. package/context/LocalizationProvider.js +34 -49
  436. package/context/PrefabContext.js +68 -119
  437. package/context/WidgetProvider.js +160 -166
  438. package/core/app-config.js +0 -1
  439. package/core/app.service.js +200 -327
  440. package/core/appVariablesStore.js +10 -15
  441. package/core/appstore.js +37 -53
  442. package/core/constants/currency-constant.js +81 -83
  443. package/core/constants/events.js +34 -44
  444. package/core/constants/index.js +21 -31
  445. package/core/dialog.service.js +52 -72
  446. package/core/event-notifier.js +94 -131
  447. package/core/formatter/array-formatters.js +18 -32
  448. package/core/formatter/date-formatters.js +140 -204
  449. package/core/formatter/index.js +64 -117
  450. package/core/formatter/number-formatters.js +115 -159
  451. package/core/formatter/security-formatters.js +233 -283
  452. package/core/formatter/string-formatters.js +23 -45
  453. package/core/formatter/types.js +12 -18
  454. package/core/formatters.js +6 -24
  455. package/core/proxy-service.js +242 -306
  456. package/core/script-registry.js +87 -134
  457. package/core/security.service.js +8 -11
  458. package/core/util/compare.js +13 -25
  459. package/core/util/dom.js +32 -63
  460. package/core/util/index.js +92 -98
  461. package/core/util/safe-is-equal.js +42 -94
  462. package/core/util/security.js +114 -153
  463. package/core/util/utils.d.ts +4 -1
  464. package/core/util/utils.js +88 -159
  465. package/core/widget-observer.js +34 -61
  466. package/higherOrder/BaseApp.js +328 -502
  467. package/higherOrder/BaseAppProps.d.ts +1 -0
  468. package/higherOrder/BaseAppProps.js +0 -5
  469. package/higherOrder/BaseDateTime.js +277 -231
  470. package/higherOrder/BasePage.js +474 -740
  471. package/higherOrder/BasePartial.js +87 -114
  472. package/higherOrder/BasePrefab.js +190 -206
  473. package/higherOrder/DataNav.js +287 -302
  474. package/higherOrder/helper.js +62 -48
  475. package/higherOrder/props.js +0 -5
  476. package/higherOrder/withBaseWrapper.js +123 -168
  477. package/higherOrder/withStandalone.js +28 -26
  478. package/hooks/useAccess.js +113 -289
  479. package/hooks/useAppConfig.js +15 -40
  480. package/hooks/useAuth.js +256 -495
  481. package/hooks/useDataSourceSubscription.d.ts +3 -3
  482. package/hooks/useDataSourceSubscription.js +99 -109
  483. package/hooks/useDebounce.js +28 -56
  484. package/hooks/useDeviceVisibility.js +14 -23
  485. package/hooks/useHttp.d.ts +1 -0
  486. package/hooks/useHttp.js +314 -493
  487. package/libs/index.js +4 -13
  488. package/libs/prefab/index.js +6 -20
  489. package/mui-config/theme-provider.js +9 -17
  490. package/mui-config/theme.js +6 -9
  491. package/package-lock.json +816 -3207
  492. package/package.json +3 -19
  493. package/providers/AppProviders.js +21 -24
  494. package/runtime-dynamic/App.js +65 -93
  495. package/runtime-dynamic/app-initializer.js +193 -411
  496. package/runtime-dynamic/components/ErrorBoundary.js +59 -76
  497. package/runtime-dynamic/components/PageWrapper.js +23 -35
  498. package/runtime-dynamic/components/PrefabPreview.js +40 -69
  499. package/runtime-dynamic/components/partial-content.d.ts +2 -3
  500. package/runtime-dynamic/components/partial-content.js +66 -45
  501. package/runtime-dynamic/components/prefab-content.js +37 -30
  502. package/runtime-dynamic/components/use-dynamic-component.js +55 -157
  503. package/runtime-dynamic/factories/build-base-page-like-component.d.ts +1 -1
  504. package/runtime-dynamic/factories/build-base-page-like-component.js +44 -58
  505. package/runtime-dynamic/factories/dynamic-component.d.ts +9 -0
  506. package/runtime-dynamic/factories/dynamic-component.js +91 -0
  507. package/runtime-dynamic/factories/prefab-factory.d.ts +1 -1
  508. package/runtime-dynamic/factories/prefab-factory.js +60 -81
  509. package/runtime-dynamic/factories/startup-info.js +12 -25
  510. package/runtime-dynamic/factories/utils.d.ts +2 -10
  511. package/runtime-dynamic/factories/utils.js +47 -129
  512. package/runtime-dynamic/index.js +56 -191
  513. package/runtime-dynamic/main.js +42 -70
  514. package/runtime-dynamic/preview-mode.js +14 -29
  515. package/runtime-dynamic/preview-navigation.js +21 -30
  516. package/runtime-dynamic/preview-path.d.ts +5 -0
  517. package/runtime-dynamic/preview-path.js +13 -0
  518. package/runtime-dynamic/preview-resource-base.js +15 -31
  519. package/runtime-dynamic/registry/component-registry.js +269 -334
  520. package/runtime-dynamic/registry/custom-widget-registry.js +11 -15
  521. package/runtime-dynamic/registry/index.js +24 -63
  522. package/runtime-dynamic/registry/store.d.ts +1 -0
  523. package/runtime-dynamic/registry/store.js +18 -23
  524. package/runtime-dynamic/routes.js +53 -81
  525. package/runtime-dynamic/services/app-extension-provider.js +17 -44
  526. package/runtime-dynamic/services/autolayout-inject.d.ts +4 -0
  527. package/runtime-dynamic/services/autolayout-inject.js +27 -0
  528. package/runtime-dynamic/services/compile-render.d.ts +9 -0
  529. package/runtime-dynamic/services/compile-render.js +142 -0
  530. package/runtime-dynamic/services/component-ref-provider.d.ts +18 -3
  531. package/runtime-dynamic/services/component-ref-provider.js +52 -129
  532. package/runtime-dynamic/services/css-scoping.js +23 -28
  533. package/runtime-dynamic/services/fragment-url.js +37 -50
  534. package/runtime-dynamic/services/index.d.ts +2 -3
  535. package/runtime-dynamic/services/index.js +31 -152
  536. package/runtime-dynamic/services/markup-transpiler.d.ts +2 -2
  537. package/runtime-dynamic/services/markup-transpiler.js +39 -231
  538. package/runtime-dynamic/services/prefab-resources.js +40 -118
  539. package/runtime-dynamic/services/resource-manager.d.ts +2 -2
  540. package/runtime-dynamic/services/resource-manager.js +24 -65
  541. package/runtime-dynamic/services/script-executor.js +46 -63
  542. package/runtime-dynamic/services/variable-factory.js +141 -184
  543. package/runtime-dynamic/services/variable-registry.js +65 -115
  544. package/runtime-dynamic/services/variable-transpiler.js +73 -103
  545. package/runtime-dynamic/shims/next-image.js +79 -50
  546. package/runtime-dynamic/shims/next-link.js +58 -32
  547. package/runtime-dynamic/shims/next-navigation.js +17 -34
  548. package/runtime-dynamic/utils/index.js +15 -30
  549. package/store/bindActions/i18nActions.js +16 -18
  550. package/store/index.js +29 -35
  551. package/store/middleware/navigationMiddleware.js +25 -45
  552. package/store/middleware/pendingTabNavigationIntentMiddleware.js +20 -25
  553. package/store/slices/appConfigSlice.js +65 -94
  554. package/store/slices/authSlice.js +317 -471
  555. package/store/slices/i18nSlice.js +169 -168
  556. package/store/slices/navigationSlice.js +22 -20
  557. package/store/util/resolve-path.d.ts +1 -0
  558. package/store/util/resolve-path.js +7 -0
  559. package/store/viewport.service.js +150 -194
  560. package/types/index.js +10 -15
  561. package/utils/attr.js +191 -41
  562. package/utils/custom-expression/index.js +58 -151
  563. package/utils/custom-expression/parser.js +108 -182
  564. package/utils/dataset-util.js +113 -154
  565. package/utils/eval-expression.js +10 -19
  566. package/utils/form-state.util.js +60 -118
  567. package/utils/form-utils.js +49 -190
  568. package/utils/format-util.js +113 -184
  569. package/utils/layoutsize-util.js +11 -17
  570. package/utils/lib-error-skipper.js +54 -52
  571. package/utils/page-params-util.js +50 -40
  572. package/utils/pending-tab-navigation-intent.js +7 -17
  573. package/utils/resource-url.js +8 -19
  574. package/utils/state-persistance.d.ts +1 -1
  575. package/utils/state-persistance.js +136 -253
  576. package/utils/style-utils.js +24 -78
  577. package/utils/transformedDataset-utils.js +353 -381
  578. package/utils/widget-cleanup-util.js +42 -74
  579. package/utils/widgets.js +19 -31
  580. package/variables/base-variable.js +117 -166
  581. package/variables/constants.js +5 -8
  582. package/variables/crud-variable.js +150 -181
  583. package/variables/live-variable.d.ts +1 -1
  584. package/variables/live-variable.js +140 -174
  585. package/variables/metadata.service.js +74 -116
  586. package/variables/model-variable.js +68 -78
  587. package/variables/service-variable.js +171 -285
  588. package/wm-namespace.js +11 -14
  589. package/components/chart/src/css.d.js +0 -1
  590. package/runtime-dynamic/services/cache.d.ts +0 -29
  591. package/runtime-dynamic/services/cache.js +0 -57
  592. package/tsconfig.declaration.tsbuildinfo +0 -1
  593. package/types/global.d.js +0 -3
@@ -1,183 +1,144 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.useTrustAs = exports.useSafeUrl = exports.useSafeStyle = exports.useSafeResourceUrl = exports.useSafeHtml = exports.securityService = exports.isInsecureContentRequest = exports.SecurityService = exports.SecurityContext = void 0;
8
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
- var _dompurify = _interopRequireDefault(require("dompurify"));
12
- var _startsWith = _interopRequireDefault(require("lodash-es/startsWith"));
13
- var _react = require("react");
14
- var _SecurityService;
15
- /**
16
- * Security context types that can be trusted
17
- */
18
- var SecurityContext = exports.SecurityContext = /*#__PURE__*/function (SecurityContext) {
19
- SecurityContext["HTML"] = "HTML";
20
- SecurityContext["STYLE"] = "STYLE";
21
- SecurityContext["SCRIPT"] = "SCRIPT";
22
- SecurityContext["URL"] = "URL";
23
- SecurityContext["RESOURCE_URL"] = "RESOURCE_URL";
24
- return SecurityContext;
25
- }({});
26
- /**
27
- * Security service for sanitizing and trusting content
28
- */
29
- var SecurityService = exports.SecurityService = /*#__PURE__*/function () {
30
- function SecurityService() {
31
- (0, _classCallCheck2["default"])(this, SecurityService);
32
- } // Private constructor to enforce singleton
33
- return (0, _createClass2["default"])(SecurityService, [{
34
- key: "sanitizeHtml",
35
- value:
36
- /**
37
- * Sanitize HTML content
38
- */
39
- function sanitizeHtml(content) {
40
- if (!content) return "";
41
- return _dompurify["default"].sanitize(content, {
42
- USE_PROFILES: {
43
- html: true
44
- }
45
- });
46
- }
47
-
48
- /**
49
- * Sanitize style content
50
- */
51
- }, {
52
- key: "sanitizeStyle",
53
- value: function sanitizeStyle(content) {
54
- if (!content) return "";
55
- return _dompurify["default"].sanitize(content, {
56
- USE_PROFILES: {
57
- html: true
58
- },
59
- ALLOWED_TAGS: ["style"],
60
- ALLOWED_ATTR: ["type"]
61
- });
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
+ import DOMPurify from "dompurify";
5
+ import startsWith from "lodash-es/startsWith";
6
+ var SecurityContext = /* @__PURE__ */ ((SecurityContext2) => {
7
+ SecurityContext2["HTML"] = "HTML";
8
+ SecurityContext2["STYLE"] = "STYLE";
9
+ SecurityContext2["SCRIPT"] = "SCRIPT";
10
+ SecurityContext2["URL"] = "URL";
11
+ SecurityContext2["RESOURCE_URL"] = "RESOURCE_URL";
12
+ return SecurityContext2;
13
+ })(SecurityContext || {});
14
+ const _SecurityService = class _SecurityService {
15
+ constructor() {
16
+ }
17
+ static getInstance() {
18
+ if (!_SecurityService.instance) {
19
+ _SecurityService.instance = new _SecurityService();
62
20
  }
63
-
64
- /**
65
- * Sanitize script content
66
- */
67
- }, {
68
- key: "sanitizeScript",
69
- value: function sanitizeScript(content) {
70
- if (!content) return "";
71
- // Note: DOMPurify strips scripts by default for security
72
- // Only use this for trusted sources
73
- return content;
21
+ return _SecurityService.instance;
22
+ }
23
+ /**
24
+ * Sanitize HTML content
25
+ */
26
+ sanitizeHtml(content) {
27
+ if (!content) return "";
28
+ return DOMPurify.sanitize(content, {
29
+ USE_PROFILES: { html: true }
30
+ });
31
+ }
32
+ /**
33
+ * Sanitize style content
34
+ */
35
+ sanitizeStyle(content) {
36
+ if (!content) return "";
37
+ return DOMPurify.sanitize(content, {
38
+ USE_PROFILES: { html: true },
39
+ ALLOWED_TAGS: ["style"],
40
+ ALLOWED_ATTR: ["type"]
41
+ });
42
+ }
43
+ /**
44
+ * Sanitize script content
45
+ */
46
+ sanitizeScript(content) {
47
+ if (!content) return "";
48
+ return content;
49
+ }
50
+ /**
51
+ * Sanitize URL
52
+ */
53
+ sanitizeUrl(content) {
54
+ if (!content) return "";
55
+ const url = content.trim().toLowerCase();
56
+ if (url.startsWith("javascript:") || url.startsWith("data:") || url.startsWith("vbscript:")) {
57
+ return "";
74
58
  }
75
-
76
- /**
77
- * Sanitize URL
78
- */
79
- }, {
80
- key: "sanitizeUrl",
81
- value: function sanitizeUrl(content) {
82
- if (!content) return "";
83
- // Basic URL sanitization
84
- var url = content.trim().toLowerCase();
85
- if (url.startsWith("javascript:") || url.startsWith("data:") || url.startsWith("vbscript:")) {
59
+ return content;
60
+ }
61
+ /**
62
+ * Sanitize Resource URL
63
+ */
64
+ sanitizeResourceUrl(content) {
65
+ if (!content) return "";
66
+ const sanitizedUrl = this.sanitizeUrl(content);
67
+ return sanitizedUrl ? String(sanitizedUrl) : "";
68
+ }
69
+ /**
70
+ * Trust content based on security context
71
+ */
72
+ trustAs(content, context) {
73
+ if (!content) return "";
74
+ switch (context) {
75
+ case "HTML" /* HTML */:
76
+ return this.sanitizeHtml(content);
77
+ case "STYLE" /* STYLE */:
78
+ return this.sanitizeStyle(content);
79
+ case "SCRIPT" /* SCRIPT */:
80
+ return this.sanitizeScript(content);
81
+ case "URL" /* URL */:
82
+ return this.sanitizeUrl(content);
83
+ case "RESOURCE_URL" /* RESOURCE_URL */:
84
+ return this.sanitizeResourceUrl(content);
85
+ default:
86
86
  return "";
87
- }
88
- return content;
89
- }
90
-
91
- /**
92
- * Sanitize Resource URL
93
- */
94
- }, {
95
- key: "sanitizeResourceUrl",
96
- value: function sanitizeResourceUrl(content) {
97
- if (!content) return "";
98
- // First sanitize as a regular URL, then cast to resource URL
99
- var sanitizedUrl = this.sanitizeUrl(content);
100
- return sanitizedUrl ? String(sanitizedUrl) : "";
101
- }
102
-
103
- /**
104
- * Trust content based on security context
105
- */
106
- }, {
107
- key: "trustAs",
108
- value: function trustAs(content, context) {
109
- if (!content) return "";
110
- switch (context) {
111
- case SecurityContext.HTML:
112
- return this.sanitizeHtml(content);
113
- case SecurityContext.STYLE:
114
- return this.sanitizeStyle(content);
115
- case SecurityContext.SCRIPT:
116
- return this.sanitizeScript(content);
117
- case SecurityContext.URL:
118
- return this.sanitizeUrl(content);
119
- case SecurityContext.RESOURCE_URL:
120
- return this.sanitizeResourceUrl(content);
121
- default:
122
- return "";
123
- }
124
- }
125
- }], [{
126
- key: "getInstance",
127
- value: function getInstance() {
128
- if (!SecurityService.instance) {
129
- SecurityService.instance = new SecurityService();
130
- }
131
- return SecurityService.instance;
132
87
  }
133
- }]);
134
- }(); // Create hooks for easy use in React components
135
- _SecurityService = SecurityService;
136
- (0, _defineProperty2["default"])(SecurityService, "instance", void 0);
137
- var useTrustAs = exports.useTrustAs = function useTrustAs(content, context) {
138
- return (0, _react.useMemo)(function () {
88
+ }
89
+ };
90
+ __publicField(_SecurityService, "instance");
91
+ let SecurityService = _SecurityService;
92
+ import { useMemo } from "react";
93
+ const useTrustAs = (content, context) => {
94
+ return useMemo(() => {
139
95
  return SecurityService.getInstance().trustAs(content, context);
140
96
  }, [content, context]);
141
97
  };
142
- var useSafeHtml = exports.useSafeHtml = function useSafeHtml(content) {
143
- return (0, _react.useMemo)(function () {
98
+ const useSafeHtml = (content) => {
99
+ return useMemo(() => {
144
100
  return SecurityService.getInstance().sanitizeHtml(content);
145
101
  }, [content]);
146
102
  };
147
- var useSafeStyle = exports.useSafeStyle = function useSafeStyle(content) {
148
- return (0, _react.useMemo)(function () {
103
+ const useSafeStyle = (content) => {
104
+ return useMemo(() => {
149
105
  return SecurityService.getInstance().sanitizeStyle(content);
150
106
  }, [content]);
151
107
  };
152
- var useSafeUrl = exports.useSafeUrl = function useSafeUrl(content) {
153
- return (0, _react.useMemo)(function () {
108
+ const useSafeUrl = (content) => {
109
+ return useMemo(() => {
154
110
  return SecurityService.getInstance().sanitizeUrl(content);
155
111
  }, [content]);
156
112
  };
157
- var useSafeResourceUrl = exports.useSafeResourceUrl = function useSafeResourceUrl(content) {
158
- return (0, _react.useMemo)(function () {
113
+ const useSafeResourceUrl = (content) => {
114
+ return useMemo(() => {
159
115
  return SecurityService.getInstance().sanitizeResourceUrl(content);
160
116
  }, [content]);
161
117
  };
162
- var isInsecureContentRequest = exports.isInsecureContentRequest = function isInsecureContentRequest(url) {
163
- var REGEX_DATA_URL = /^\s*data:([a-z]+\/[a-z0-9-+.]+(;[a-z-]+=[a-z0-9-]+)?)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s]*)\s*$/i;
164
- var parser = document.createElement("a");
118
+ const isInsecureContentRequest = (url) => {
119
+ const REGEX_DATA_URL = /^\s*data:([a-z]+\/[a-z0-9-+.]+(;[a-z-]+=[a-z0-9-]+)?)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s]*)\s*$/i;
120
+ const parser = document.createElement("a");
165
121
  parser.href = url;
166
-
167
- // for relative urls IE returns the protocol as empty string
168
122
  if (parser.protocol === "") {
169
123
  return false;
170
124
  }
171
-
172
- // If the inputted source is a base64 url, do not throw insecure content error
173
125
  if (REGEX_DATA_URL.test(url)) {
174
126
  return false;
175
127
  }
176
- if ((0, _startsWith["default"])(location.href, "https://")) {
128
+ if (startsWith(location.href, "https://")) {
177
129
  return parser.protocol !== "https:" && parser.protocol !== "wss:";
178
130
  }
179
131
  return false;
180
132
  };
181
-
182
- // Export singleton instance
183
- var securityService = exports.securityService = SecurityService.getInstance();
133
+ const securityService = SecurityService.getInstance();
134
+ export {
135
+ SecurityContext,
136
+ SecurityService,
137
+ isInsecureContentRequest,
138
+ securityService,
139
+ useSafeHtml,
140
+ useSafeResourceUrl,
141
+ useSafeStyle,
142
+ useSafeUrl,
143
+ useTrustAs
144
+ };
@@ -15,6 +15,10 @@ export declare const getUrlParams: (link: string) => Record<string, string>;
15
15
  * @returns Route name (e.g., "/page")
16
16
  */
17
17
  export declare const getRouteNameFromLink: (link: string) => string;
18
+ /**
19
+ * Target page from a WaveMaker goToPage_* onClick handler (source or preview _optionalChain bundle).
20
+ */
21
+ export declare function getGoToPageNameFromClickHandler(onClick: unknown): string | null;
18
22
  /**
19
23
  * Opens a link in browser window
20
24
  * @param link - URL to open
@@ -35,4 +39,3 @@ export declare const getModesFromLocalStorage: () => Record<string, string>;
35
39
  export declare function setMode(modes: Record<string, string>, shouldPersist?: boolean): void;
36
40
  export declare function initAppModes(): void;
37
41
  export declare function teardownAppModes(): void;
38
- export declare const mergeProxies: (firstProxy: any, secondProxy: any) => any;
@@ -1,26 +1,9 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.getUrlParams = exports.getRouteNameFromLink = exports.getModesFromLocalStorage = exports.getItemLink = exports.getCurrentPath = exports.Utils = void 0;
8
- exports.hasOwnObjectProperty = hasOwnObjectProperty;
9
- exports.initAppModes = initAppModes;
10
- exports.openLink = exports.mergeProxies = exports.isJQueryError = exports.isInsecureContentRequest = void 0;
11
- exports.setMode = setMode;
12
- exports.teardownAppModes = teardownAppModes;
13
- exports.triggerItemAction = void 0;
14
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
- var _navigationMiddleware = require("@wavemaker-ai/react-runtime/store/middleware/navigationMiddleware");
16
- var _constants = require("../constants");
17
- var _navigation = require("next/navigation");
18
- var _isObject = _interopRequireDefault(require("lodash-es/isObject"));
19
- var _index = require("./index");
20
- function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
21
- function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
22
- function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
23
- var REGEX = {
1
+ import { getRouterInstance } from "../../store/middleware/navigationMiddleware";
2
+ import { hyperLinkMofify } from "../constants";
3
+ import { usePathname } from "next/navigation";
4
+ import isObject from "lodash-es/isObject";
5
+ import { MODE_CONSTANTS } from "./index";
6
+ const REGEX = {
24
7
  SNAKE_CASE: /[A-Z]/g,
25
8
  ANDROID: /Android/i,
26
9
  IPHONE: /iPhone/i,
@@ -53,27 +36,19 @@ var REGEX = {
53
36
  DATA_URL: /^\s*data:([a-z]+\/[a-z0-9-+.]+(;[a-z-]+=[a-z0-9-]+)?)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s]*)\s*$/i,
54
37
  ISO_DATE_FORMAT: /(\d{4}-\d{2}-\d{2})T(\d{2}:\d{2}:\d{2})(\.\d+)?([+-]\d{2}:?\d{2}|Z)$/
55
38
  };
56
-
57
- /**
58
- * this method checks if a given string starts with the given string
59
- */
60
- var stringStartsWith = function stringStartsWith(str, startsWith, ignoreCase) {
39
+ const stringStartsWith = (str, startsWith, ignoreCase) => {
61
40
  if (!str) {
62
41
  return false;
63
42
  }
64
- var regEx = new RegExp("^" + startsWith, ignoreCase ? "i" : "");
43
+ const regEx = new RegExp("^" + startsWith, ignoreCase ? "i" : "");
65
44
  return regEx.test(str);
66
45
  };
67
- var isInsecureContentRequest = exports.isInsecureContentRequest = function isInsecureContentRequest(url) {
68
- var parser = document.createElement("a");
46
+ const isInsecureContentRequest = (url) => {
47
+ const parser = document.createElement("a");
69
48
  parser.href = url;
70
-
71
- // for relative urls IE returns the protocol as empty string
72
49
  if (parser.protocol === "") {
73
50
  return false;
74
51
  }
75
-
76
- // If the inputted source is a base64 url, do not throw insecure content error
77
52
  if (REGEX.DATA_URL.test(url)) {
78
53
  return false;
79
54
  }
@@ -82,136 +57,91 @@ var isInsecureContentRequest = exports.isInsecureContentRequest = function isIns
82
57
  }
83
58
  return false;
84
59
  };
85
- var Utils = exports.Utils = {
86
- isInsecureContentRequest: isInsecureContentRequest
60
+ const Utils = {
61
+ isInsecureContentRequest
87
62
  };
88
- var isJQueryError = exports.isJQueryError = function isJQueryError(error) {
63
+ const isJQueryError = (error) => {
89
64
  if (!error.stack) return false;
90
- var UnSupportedFunctionality = ["jQuery", "$"];
91
-
92
- // Get the first line of stack that points to your code
93
- if (error.message && UnSupportedFunctionality.some(function (func) {
94
- return error.message.includes(func);
95
- })) {
65
+ const UnSupportedFunctionality = ["jQuery", "$"];
66
+ if (error.message && UnSupportedFunctionality.some((func) => error.message.includes(func))) {
96
67
  return true;
97
68
  }
98
- var stackLines = error.stack.split("\n");
99
- var _iterator = _createForOfIteratorHelper(stackLines),
100
- _step;
101
- try {
102
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
103
- var line = _step.value;
104
- // Skip internal/node_modules lines, look for your code
105
- if (!line.includes("node_modules") && !line.includes("internal")) {
106
- // Check if this line contains jQuery access
107
- if (line.toLowerCase().includes("jquery") || line.toLowerCase().includes("$")) {
108
- return true;
109
- }
69
+ const stackLines = error.stack.split("\n");
70
+ for (let line of stackLines) {
71
+ if (!line.includes("node_modules") && !line.includes("internal")) {
72
+ if (line.toLowerCase().includes("jquery") || line.toLowerCase().includes("$")) {
73
+ return true;
110
74
  }
111
75
  }
112
- } catch (err) {
113
- _iterator.e(err);
114
- } finally {
115
- _iterator.f();
116
76
  }
117
77
  return false;
118
78
  };
119
-
120
- /**
121
- * Extracts query parameters from a URL using URLSearchParams
122
- * @param link - URL string (e.g., "#/page?param1=value1&param2=value2")
123
- * @returns Object with query parameters (automatically URL-decoded)
124
- */
125
- var getUrlParams = exports.getUrlParams = function getUrlParams(link) {
126
- var params = {};
127
- var index = link.indexOf("?");
79
+ const getUrlParams = (link) => {
80
+ const params = {};
81
+ const index = link.indexOf("?");
128
82
  if (index !== -1) {
129
- var queryString = link.substring(index + 1);
130
- var searchParams = new URLSearchParams(queryString);
131
- searchParams.forEach(function (value, key) {
83
+ const queryString = link.substring(index + 1);
84
+ const searchParams = new URLSearchParams(queryString);
85
+ searchParams.forEach((value, key) => {
132
86
  params[key] = value;
133
87
  });
134
88
  }
135
89
  return params;
136
90
  };
137
-
138
- /**
139
- * Extracts route name from a link
140
- * @param link - URL string (e.g., "#/page?param=value")
141
- * @returns Route name (e.g., "/page")
142
- */
143
- var getRouteNameFromLink = exports.getRouteNameFromLink = function getRouteNameFromLink(link) {
91
+ const getRouteNameFromLink = (link) => {
144
92
  link = link.replace("#/", "/");
145
- var index = link.indexOf("?");
93
+ const index = link.indexOf("?");
146
94
  if (index !== -1) {
147
95
  link = link.substring(0, index);
148
96
  }
149
97
  return link;
150
98
  };
151
-
152
- /**
153
- * Opens a link in browser window
154
- * @param link - URL to open
155
- * @param target - Target attribute (_blank, _self, etc.)
156
- */
157
- var openLink = exports.openLink = function openLink(link) {
158
- var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "_self";
99
+ function getGoToPageNameFromClickHandler(onClick) {
100
+ var _a;
101
+ if (typeof onClick !== "function") {
102
+ return null;
103
+ }
104
+ const fnStr = onClick.toString();
105
+ if (!/invoke/.test(fnStr)) {
106
+ return null;
107
+ }
108
+ const match = /goToPage_([A-Za-z0-9_]+)/.exec(fnStr);
109
+ return (_a = match == null ? void 0 : match[1]) != null ? _a : null;
110
+ }
111
+ const openLink = (link, target = "_self") => {
159
112
  window.open(link, target);
160
113
  };
161
-
162
- /**
163
- * Triggers navigation action for menu item
164
- * Mimics Angular WaveMaker behavior:
165
- * 1. Executes item.action if present
166
- * 2. Then navigates to item.link if present
167
- */
168
- var triggerItemAction = exports.triggerItemAction = function triggerItemAction(item) {
169
- var router = (0, _navigationMiddleware.getRouterInstance)();
170
- var originalLink = item === null || item === void 0 ? void 0 : item.link;
171
- var linkTarget = item === null || item === void 0 ? void 0 : item.target;
114
+ const triggerItemAction = (item) => {
115
+ const router = getRouterInstance();
116
+ let originalLink = item == null ? void 0 : item.link;
117
+ const linkTarget = item == null ? void 0 : item.target;
172
118
  if (typeof originalLink === "function" || !originalLink || originalLink === "#" || originalLink === "javascript:void(0)") {
173
- return; // No navigation needed
119
+ return;
174
120
  }
175
-
176
- // Check if it's an internal navigation link (starts with # but not external)
177
- if (originalLink !== null && originalLink !== void 0 && originalLink.startsWith("#") && (!linkTarget || linkTarget === "_self")) {
178
- // Internal navigation - handle both "#/page" and "#page" formats
179
- var queryParams = getUrlParams(originalLink);
180
- var routeName = getRouteNameFromLink(originalLink);
181
- routeName = (0, _constants.hyperLinkMofify)(routeName);
121
+ if ((originalLink == null ? void 0 : originalLink.startsWith("#")) && (!linkTarget || linkTarget === "_self")) {
122
+ const queryParams = getUrlParams(originalLink);
123
+ let routeName = getRouteNameFromLink(originalLink);
124
+ routeName = hyperLinkMofify(routeName);
182
125
  if (Object.keys(queryParams).length > 0) {
183
- // Filter out undefined/null/empty values like Angular router does
184
- var queryString = Object.entries(queryParams).filter(function (_ref) {
185
- var _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
186
- _ = _ref2[0],
187
- value = _ref2[1];
188
- return value !== undefined && value !== null && value !== "";
189
- }).map(function (_ref3) {
190
- var _ref4 = (0, _slicedToArray2["default"])(_ref3, 2),
191
- key = _ref4[0],
192
- value = _ref4[1];
193
- return "".concat(key, "=").concat(encodeURIComponent(value));
194
- }).join("&");
126
+ const queryString = Object.entries(queryParams).filter(([_, value]) => value !== void 0 && value !== null && value !== "").map(([key, value]) => `${key}=${encodeURIComponent(value)}`).join("&");
195
127
  if (queryString) {
196
- router === null || router === void 0 || router.push("".concat(routeName, "?").concat(queryString));
128
+ router == null ? void 0 : router.push(`${routeName}?${queryString}`);
197
129
  } else {
198
- router === null || router === void 0 || router.push(routeName);
130
+ router == null ? void 0 : router.push(routeName);
199
131
  }
200
132
  } else {
201
- router === null || router === void 0 || router.push(routeName);
133
+ router == null ? void 0 : router.push(routeName);
202
134
  }
203
135
  } else if (linkTarget || originalLink) {
204
- // External link or link with different target
205
- // For external links, use as-is (don't apply hyperLinkMofify)
206
136
  openLink(originalLink, linkTarget || "");
207
137
  }
208
138
  };
209
- var getCurrentPath = exports.getCurrentPath = function getCurrentPath() {
210
- var path = (0, _navigation.usePathname)();
139
+ const getCurrentPath = () => {
140
+ const path = usePathname();
211
141
  return path;
212
142
  };
213
- var getItemLink = exports.getItemLink = function getItemLink(item, props) {
214
- var linkProperty = props.itemlink || "link";
143
+ const getItemLink = (item, props) => {
144
+ const linkProperty = props.itemlink || "link";
215
145
  if (typeof item[linkProperty] === "function") {
216
146
  return item[linkProperty]();
217
147
  } else {
@@ -221,30 +151,26 @@ var getItemLink = exports.getItemLink = function getItemLink(item, props) {
221
151
  function hasOwnObjectProperty(obj, prop) {
222
152
  return Object.prototype.hasOwnProperty.call(obj, prop);
223
153
  }
224
- var getModesFromLocalStorage = exports.getModesFromLocalStorage = function getModesFromLocalStorage() {
225
- var storedValue = localStorage.getItem("wm-app-modes") || "{}";
154
+ const getModesFromLocalStorage = () => {
155
+ let storedValue = localStorage.getItem("wm-app-modes") || "{}";
226
156
  try {
227
157
  storedValue = JSON.parse(storedValue);
228
158
  } catch (error) {
229
- console.error("Error parsing modes", error === null || error === void 0 ? void 0 : error.message);
159
+ console.error("Error parsing modes", error == null ? void 0 : error.message);
230
160
  storedValue = {};
231
161
  }
232
- return (0, _isObject["default"])(storedValue) ? storedValue : {};
162
+ return isObject(storedValue) ? storedValue : {};
233
163
  };
234
- function setMode(modes) {
235
- var shouldPersist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
236
- var htmlEl = document.getElementsByTagName("html")[0];
164
+ function setMode(modes, shouldPersist = false) {
165
+ const htmlEl = document.getElementsByTagName("html")[0];
237
166
  if (!htmlEl) return;
238
- if (!(0, _isObject["default"])(modes)) {
167
+ if (!isObject(modes)) {
239
168
  modes = {};
240
169
  }
241
- var modesArr = Object.entries(modes);
170
+ const modesArr = Object.entries(modes);
242
171
  if (!modesArr.length) return;
243
- modesArr.forEach(function (_ref5) {
244
- var _ref6 = (0, _slicedToArray2["default"])(_ref5, 2),
245
- modeKey = _ref6[0],
246
- modeValue = _ref6[1];
247
- var isDefault = modeValue === _index.MODE_CONSTANTS.LIGHT || modeValue === _index.MODE_CONSTANTS.DEFAULT;
172
+ modesArr.forEach(([modeKey, modeValue]) => {
173
+ const isDefault = modeValue === MODE_CONSTANTS.LIGHT || modeValue === MODE_CONSTANTS.DEFAULT;
248
174
  if (isDefault) {
249
175
  htmlEl.removeAttribute(modeKey);
250
176
  } else {
@@ -255,17 +181,14 @@ function setMode(modes) {
255
181
  localStorage.setItem("wm-app-modes", JSON.stringify(modes));
256
182
  }
257
183
  }
258
- var windowMessageListener = null;
184
+ let windowMessageListener = null;
259
185
  function initAppModes() {
260
186
  setMode(getModesFromLocalStorage());
261
187
  if (windowMessageListener) {
262
188
  window.removeEventListener("message", windowMessageListener);
263
189
  }
264
- windowMessageListener = function windowMessageListener(event) {
265
- var _ref7 = event.data || {},
266
- key = _ref7.key,
267
- modes = _ref7.modes,
268
- shouldPersist = _ref7.shouldPersist;
190
+ windowMessageListener = (event) => {
191
+ const { key, modes, shouldPersist } = event.data || {};
269
192
  if (key === "switch-mode" && modes) {
270
193
  setMode(modes, !shouldPersist);
271
194
  }
@@ -278,14 +201,20 @@ function teardownAppModes() {
278
201
  windowMessageListener = null;
279
202
  }
280
203
  }
281
- var mergeProxies = exports.mergeProxies = function mergeProxies(firstProxy, secondProxy) {
282
- return new Proxy(firstProxy, {
283
- get: function get(target, key) {
284
- return key in target ? target[key] : secondProxy[key];
285
- },
286
- set: function set(target, key, value) {
287
- target[key] = value; // delegates back to pageProxy.widgets
288
- return true;
289
- }
290
- });
291
- };
204
+ export {
205
+ Utils,
206
+ getCurrentPath,
207
+ getGoToPageNameFromClickHandler,
208
+ getItemLink,
209
+ getModesFromLocalStorage,
210
+ getRouteNameFromLink,
211
+ getUrlParams,
212
+ hasOwnObjectProperty,
213
+ initAppModes,
214
+ isInsecureContentRequest,
215
+ isJQueryError,
216
+ openLink,
217
+ setMode,
218
+ teardownAppModes,
219
+ triggerItemAction
220
+ };