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

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 (571) 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.js +251 -346
  6. package/actions/notification-action.js +121 -149
  7. package/actions/timer-action.js +95 -151
  8. package/actions/toast-provider.js +62 -76
  9. package/actions/toast.js +95 -91
  10. package/actions/toast.service.js +59 -79
  11. package/actions/types/index.js +6 -9
  12. package/components/advanced/carousel/index.js +358 -366
  13. package/components/advanced/carousel/props.js +0 -5
  14. package/components/advanced/carousel/template.js +102 -80
  15. package/components/advanced/login/index.js +227 -285
  16. package/components/advanced/login/props.js +0 -5
  17. package/components/advanced/marquee/index.js +169 -163
  18. package/components/advanced/marquee/props.js +0 -5
  19. package/components/basic/anchor/index.js +207 -187
  20. package/components/basic/anchor/props.js +0 -5
  21. package/components/basic/audio/index.js +110 -72
  22. package/components/basic/audio/props.js +0 -5
  23. package/components/basic/html/index.js +163 -203
  24. package/components/basic/html/props.js +0 -5
  25. package/components/basic/html/utils.js +30 -28
  26. package/components/basic/icon/index.js +98 -84
  27. package/components/basic/icon/props.js +0 -5
  28. package/components/basic/iframe/iframe.utils.js +7 -16
  29. package/components/basic/iframe/index.js +97 -103
  30. package/components/basic/iframe/props.js +0 -5
  31. package/components/basic/label/index.js +156 -134
  32. package/components/basic/label/props.js +0 -5
  33. package/components/basic/message/index.js +129 -113
  34. package/components/basic/message/props.js +0 -5
  35. package/components/basic/picture/index.js +156 -127
  36. package/components/basic/picture/props.js +0 -5
  37. package/components/basic/progress-bar/index.js +240 -176
  38. package/components/basic/progress-bar/props.js +5 -31
  39. package/components/basic/progress-circle/index.js +166 -183
  40. package/components/basic/progress-circle/props.js +14 -34
  41. package/components/basic/richtexteditor/index.js +430 -396
  42. package/components/basic/richtexteditor/props.js +0 -5
  43. package/components/basic/search/index.js +812 -931
  44. package/components/basic/search/props.js +0 -5
  45. package/components/basic/search/providers.js +233 -380
  46. package/components/basic/spinner/index.js +210 -200
  47. package/components/basic/spinner/props.js +4 -22
  48. package/components/basic/tile/index.js +73 -81
  49. package/components/basic/tile/props.js +0 -5
  50. package/components/basic/tree/Components/TreeNodeComponent.js +238 -170
  51. package/components/basic/tree/hooks/useTreePartialNodeApi.js +143 -135
  52. package/components/basic/tree/index.js +378 -454
  53. package/components/basic/tree/props.js +0 -5
  54. package/components/basic/tree/utils.js +129 -185
  55. package/components/basic/video/index.js +161 -107
  56. package/components/basic/video/props.js +0 -5
  57. package/components/chart/index.js +42 -50
  58. package/components/chart/props.js +31 -37
  59. package/components/chart/src/ChartRenderer.js +172 -154
  60. package/components/chart/src/chart.js +391 -213
  61. package/components/chart/src/chartStyles.generated.js +6 -14
  62. package/components/chart/src/chartUtils.js +228 -272
  63. package/components/chart/src/constants.d.ts +13 -0
  64. package/components/chart/src/constants.js +316 -90
  65. package/components/chart/src/d3Setup.js +11 -30
  66. package/components/chart/src/dataUtils.js +362 -446
  67. package/components/chart/src/formatUtils.js +47 -38
  68. package/components/chart/src/index.js +11 -19
  69. package/components/chart/src/nvd3Source.generated.js +5 -13
  70. package/components/chart/src/pieDonutResponsiveLayout.d.ts +5 -0
  71. package/components/chart/src/pieDonutResponsiveLayout.js +76 -96
  72. package/components/chart/src/types.js +0 -5
  73. package/components/common/AppSpinner.js +17 -33
  74. package/components/common/app-spinner.js +11 -22
  75. package/components/common/customTemplate/index.d.ts +3 -0
  76. package/components/common/customTemplate/index.js +6 -0
  77. package/components/common/customTemplate/props.d.ts +20 -0
  78. package/components/common/customTemplate/props.js +0 -0
  79. package/components/common/customTemplate/template.d.ts +3 -0
  80. package/components/common/customTemplate/template.js +27 -0
  81. package/components/common/customTemplate/useCustomTemplate.d.ts +8 -0
  82. package/components/common/customTemplate/useCustomTemplate.js +17 -0
  83. package/components/common/customTemplate/utils.d.ts +6 -0
  84. package/components/common/customTemplate/utils.js +12 -0
  85. package/components/common/index.js +4 -12
  86. package/components/constants.js +81 -77
  87. package/components/container/accordion/accordion-pane/index.js +105 -118
  88. package/components/container/accordion/accordion-pane/props.js +5 -21
  89. package/components/container/accordion/index.js +225 -243
  90. package/components/container/accordion/props.js +5 -16
  91. package/components/container/index.js +210 -155
  92. package/components/container/layout-grid/grid-column/index.js +68 -43
  93. package/components/container/layout-grid/grid-column/props.js +0 -5
  94. package/components/container/layout-grid/grid-row/index.js +12 -29
  95. package/components/container/layout-grid/grid-row/props.js +0 -5
  96. package/components/container/layout-grid/index.js +53 -38
  97. package/components/container/layout-grid/props.js +0 -5
  98. package/components/container/linear-layout/index.js +56 -60
  99. package/components/container/linear-layout/linear-layout-item/index.js +43 -47
  100. package/components/container/linear-layout/linear-layout-item/props.js +0 -5
  101. package/components/container/linear-layout/props.js +0 -5
  102. package/components/container/panel/components/panel-content/index.js +7 -16
  103. package/components/container/panel/components/panel-header/index.js +166 -146
  104. package/components/container/panel/components/panel-header/props.js +0 -5
  105. package/components/container/panel/hooks.js +76 -102
  106. package/components/container/panel/index.js +289 -252
  107. package/components/container/panel/props.js +0 -5
  108. package/components/container/props.js +0 -5
  109. package/components/container/repeat-template/index.js +65 -44
  110. package/components/container/repeat-template/props.js +0 -5
  111. package/components/container/tabs/index.js +517 -526
  112. package/components/container/tabs/props.js +5 -28
  113. package/components/container/tabs/tab-pane/index.js +105 -100
  114. package/components/container/tabs/tab-pane/props.js +0 -5
  115. package/components/container/tabs/utils.js +30 -35
  116. package/components/container/wizard/WizardContext.js +9 -11
  117. package/components/container/wizard/components/StepComponents.js +76 -99
  118. package/components/container/wizard/components/WizardStep.js +107 -85
  119. package/components/container/wizard/index.js +791 -921
  120. package/components/container/wizard/props.js +0 -5
  121. package/components/container/wizard/utils.js +97 -131
  122. package/components/container/wizard/wizard-action/index.js +41 -81
  123. package/components/container/wizard/wizard-step/index.js +140 -120
  124. package/components/data/card/card-actions/index.js +13 -31
  125. package/components/data/card/card-content/index.js +27 -36
  126. package/components/data/card/card-footer/index.js +13 -31
  127. package/components/data/card/index.js +192 -199
  128. package/components/data/card/props.js +0 -5
  129. package/components/data/form/base-form/constant.js +5 -8
  130. package/components/data/form/base-form/hooks/index.js +26 -77
  131. package/components/data/form/base-form/hooks/useFormDataSync.js +106 -212
  132. package/components/data/form/base-form/hooks/useFormOperations.js +109 -161
  133. package/components/data/form/base-form/hooks/useFormSubmission.js +220 -280
  134. package/components/data/form/base-form/hooks/useFormValidation.js +119 -168
  135. package/components/data/form/base-form/hooks/useParentFormRelationship.js +67 -103
  136. package/components/data/form/base-form/index.js +531 -646
  137. package/components/data/form/base-form/props.js +74 -151
  138. package/components/data/form/base-form/utils.js +210 -323
  139. package/components/data/form/dynamic-fields/constant.js +43 -53
  140. package/components/data/form/dynamic-fields/index.js +135 -144
  141. package/components/data/form/dynamic-fields/props.js +0 -5
  142. package/components/data/form/dynamic-fields/utils.js +99 -158
  143. package/components/data/form/form-action/index.js +107 -85
  144. package/components/data/form/form-body/index.js +52 -26
  145. package/components/data/form/form-context.js +43 -59
  146. package/components/data/form/form-controller/hooks/index.js +43 -57
  147. package/components/data/form/form-controller/props.js +5 -8
  148. package/components/data/form/form-controller/utils.js +54 -49
  149. package/components/data/form/form-controller/validation-contrustor.js +203 -426
  150. package/components/data/form/form-controller/withFormController.js +319 -269
  151. package/components/data/form/form-dynamic-section/index.js +47 -41
  152. package/components/data/form/form-dynamic-section/props.js +0 -5
  153. package/components/data/form/form-field/base-field.js +97 -109
  154. package/components/data/form/form-field/index.js +91 -82
  155. package/components/data/form/form-field/props.js +0 -5
  156. package/components/data/form/form-footer/index.js +52 -25
  157. package/components/data/form/form-header/index.js +61 -58
  158. package/components/data/form/index.js +95 -74
  159. package/components/data/form/props.js +0 -5
  160. package/components/data/list/components/GroupHeader.js +34 -33
  161. package/components/data/list/components/GroupedListItems.js +108 -104
  162. package/components/data/list/components/ListContainer.js +22 -27
  163. package/components/data/list/components/ListDND.js +193 -185
  164. package/components/data/list/components/ListHeader.js +32 -49
  165. package/components/data/list/components/ListItem.js +153 -146
  166. package/components/data/list/components/ListItemWithTemplate.js +87 -105
  167. package/components/data/list/components/ListItems.js +180 -194
  168. package/components/data/list/components/ListPagination.js +127 -153
  169. package/components/data/list/components/LoadMoreButton.js +25 -33
  170. package/components/data/list/components/NoDataMessage.js +9 -22
  171. package/components/data/list/components/StandardListItems.js +79 -85
  172. package/components/data/list/components/index.js +31 -119
  173. package/components/data/list/components/props.js +0 -5
  174. package/components/data/list/hooks/index.js +22 -75
  175. package/components/data/list/hooks/props.js +0 -5
  176. package/components/data/list/hooks/useCurrentPageItems.js +20 -38
  177. package/components/data/list/hooks/useGroupedData.js +19 -33
  178. package/components/data/list/hooks/useListData.js +17 -47
  179. package/components/data/list/hooks/useListEffects.js +168 -237
  180. package/components/data/list/hooks/useListEventHandlers.js +301 -285
  181. package/components/data/list/hooks/useListPagination.js +90 -136
  182. package/components/data/list/hooks/useListState.js +49 -91
  183. package/components/data/list/hooks/useListStateManager.js +104 -159
  184. package/components/data/list/hooks/usePaginatedGroupedData.js +74 -110
  185. package/components/data/list/index.d.ts +1 -0
  186. package/components/data/list/index.js +579 -621
  187. package/components/data/list/props.d.ts +4 -0
  188. package/components/data/list/props.js +0 -5
  189. package/components/data/list/templates/media-template.js +29 -50
  190. package/components/data/list/utils/constants.js +20 -32
  191. package/components/data/list/utils/list-helpers.d.ts +2 -1
  192. package/components/data/list/utils/list-helpers.js +71 -115
  193. package/components/data/list/utils/list-widget-methods.js +56 -76
  194. package/components/data/list/utils/widget-instance-utils.js +20 -57
  195. package/components/data/live-filter/index.js +219 -271
  196. package/components/data/live-filter/props.js +5 -12
  197. package/components/data/live-form/index.js +68 -91
  198. package/components/data/live-form/props.js +5 -12
  199. package/components/data/pagination/components/BasicPagination.js +124 -104
  200. package/components/data/pagination/components/ClassicPagination.js +167 -190
  201. package/components/data/pagination/components/InlinePagination.js +97 -98
  202. package/components/data/pagination/components/LoadingComponent.js +17 -30
  203. package/components/data/pagination/components/PageSizeSelector.js +176 -169
  204. package/components/data/pagination/components/PagerNavigation.js +84 -105
  205. package/components/data/pagination/components/TotalRecords.js +48 -47
  206. package/components/data/pagination/components/index.js +14 -47
  207. package/components/data/pagination/components/props.js +0 -5
  208. package/components/data/pagination/hooks/index.js +6 -19
  209. package/components/data/pagination/hooks/props.js +0 -5
  210. package/components/data/pagination/hooks/useNavigationSize.js +12 -21
  211. package/components/data/pagination/hooks/usePagination.js +702 -905
  212. package/components/data/pagination/index.js +336 -389
  213. package/components/data/table/components/AddNewRow.js +122 -154
  214. package/components/data/table/components/EditableCell.js +68 -75
  215. package/components/data/table/components/FieldValidationError.js +19 -20
  216. package/components/data/table/components/RowCells.js +97 -80
  217. package/components/data/table/components/RowExpansionButton.js +43 -39
  218. package/components/data/table/components/SummaryCell.js +54 -88
  219. package/components/data/table/components/SummaryRow.js +45 -52
  220. package/components/data/table/components/SummaryRowFooter.js +35 -42
  221. package/components/data/table/components/TableBody.js +222 -218
  222. package/components/data/table/components/TableDataRow.js +113 -106
  223. package/components/data/table/components/TableFilters.js +391 -390
  224. package/components/data/table/components/TableFooterActions.js +25 -32
  225. package/components/data/table/components/TableHeader.js +460 -435
  226. package/components/data/table/components/TablePanelHeading.js +157 -181
  227. package/components/data/table/components/index.js +27 -95
  228. package/components/data/table/hooks/index.js +21 -230
  229. package/components/data/table/hooks/use-edited-rows.js +59 -94
  230. package/components/data/table/hooks/useCellState.js +58 -83
  231. package/components/data/table/hooks/useCustomExpressionColumns.js +65 -86
  232. package/components/data/table/hooks/useDynamicColumns.js +59 -92
  233. package/components/data/table/hooks/useEditingState.js +30 -41
  234. package/components/data/table/hooks/useFormWidget.js +163 -172
  235. package/components/data/table/hooks/usePaginationState.js +67 -77
  236. package/components/data/table/hooks/usePanelStructure.js +47 -41
  237. package/components/data/table/hooks/useResponsiveColumns.js +14 -20
  238. package/components/data/table/hooks/useRowExpansion.js +131 -127
  239. package/components/data/table/hooks/useRowHandlers.js +56 -69
  240. package/components/data/table/hooks/useRowSelection.js +249 -329
  241. package/components/data/table/hooks/useServerSideSorting.js +109 -175
  242. package/components/data/table/hooks/useTableColumns.js +322 -331
  243. package/components/data/table/hooks/useTableData.js +111 -166
  244. package/components/data/table/hooks/useTableEdit.js +526 -564
  245. package/components/data/table/hooks/useTableEffects.js +60 -107
  246. package/components/data/table/hooks/useTableFilter.js +244 -237
  247. package/components/data/table/hooks/useTableInitialization.js +44 -76
  248. package/components/data/table/hooks/useTableState.js +39 -61
  249. package/components/data/table/hooks/useTableStateManager.js +295 -468
  250. package/components/data/table/index.js +1553 -1713
  251. package/components/data/table/live-table/index.js +157 -219
  252. package/components/data/table/props.js +0 -5
  253. package/components/data/table/table-action/index.js +97 -75
  254. package/components/data/table/table-column/index.js +48 -42
  255. package/components/data/table/table-group/index.js +7 -25
  256. package/components/data/table/table-row/index.js +63 -55
  257. package/components/data/table/table-row-action/index.js +102 -77
  258. package/components/data/table/utils/buildSelectionColumns.js +86 -137
  259. package/components/data/table/utils/columnBuilder.js +116 -158
  260. package/components/data/table/utils/columnProxy.js +48 -66
  261. package/components/data/table/utils/columnWidthDistribution.js +40 -64
  262. package/components/data/table/utils/constants.js +92 -40
  263. package/components/data/table/utils/crud-handlers.js +292 -473
  264. package/components/data/table/utils/dynamic-columns.js +99 -144
  265. package/components/data/table/utils/groupHeaderUtils.js +36 -61
  266. package/components/data/table/utils/index.d.ts +8 -5
  267. package/components/data/table/utils/index.js +419 -639
  268. package/components/data/table/utils/renderDisplayCell.js +127 -169
  269. package/components/data/table/utils/script-page-size-broadcast.js +17 -29
  270. package/components/data/table/utils/selectionUtils.js +59 -113
  271. package/components/data/table/utils/table-helpers.js +38 -74
  272. package/components/data/table/utils/validation.js +35 -78
  273. package/components/data/table/utils/widgetMapping.d.ts +5 -0
  274. package/components/data/table/utils/widgetMapping.js +41 -0
  275. package/components/data/types.js +112 -112
  276. package/components/data/utils/field-data-utils.js +38 -42
  277. package/components/data/utils/filter-field-util.js +42 -44
  278. package/components/data/utils/index.js +112 -111
  279. package/components/dialogs/alert-dialog/index.js +83 -78
  280. package/components/dialogs/alert-dialog/props.js +0 -5
  281. package/components/dialogs/confirm-dialog/index.js +102 -92
  282. package/components/dialogs/confirm-dialog/props.js +0 -5
  283. package/components/dialogs/dialog/index.js +93 -69
  284. package/components/dialogs/dialog/props.js +0 -5
  285. package/components/dialogs/dialog-actions/index.js +12 -26
  286. package/components/dialogs/dialog-actions/props.js +0 -5
  287. package/components/dialogs/dialog-body/index.js +13 -30
  288. package/components/dialogs/dialog-body/props.js +0 -5
  289. package/components/dialogs/dialog-content/index.js +48 -41
  290. package/components/dialogs/dialog-content/props.js +0 -5
  291. package/components/dialogs/dialog-header/index.js +88 -101
  292. package/components/dialogs/dialog-header/props.js +0 -5
  293. package/components/dialogs/iframe-dialog/index.js +136 -128
  294. package/components/dialogs/iframe-dialog/props.js +0 -5
  295. package/components/dialogs/index.js +104 -101
  296. package/components/dialogs/login-dialog/index.js +285 -347
  297. package/components/dialogs/login-dialog/props.js +0 -5
  298. package/components/dialogs/page-dialog/index.js +95 -86
  299. package/components/dialogs/page-dialog/props.js +0 -5
  300. package/components/dialogs/props.js +0 -5
  301. package/components/dialogs/withDialogWrapper.js +110 -83
  302. package/components/form/button/index.js +296 -245
  303. package/components/form/button/props.js +0 -5
  304. package/components/form/button-group/index.js +80 -69
  305. package/components/form/button-group/props.js +0 -5
  306. package/components/input/calendar/index.js +409 -362
  307. package/components/input/calendar/props.js +0 -5
  308. package/components/input/calendar/utils.js +164 -172
  309. package/components/input/chips/SortableChip/index.js +109 -100
  310. package/components/input/chips/SortableChip/props.js +0 -5
  311. package/components/input/chips/index.js +663 -570
  312. package/components/input/chips/props.js +0 -5
  313. package/components/input/chips/utils.js +131 -122
  314. package/components/input/color-picker/index.js +536 -594
  315. package/components/input/color-picker/props.js +0 -5
  316. package/components/input/composite/index.js +71 -110
  317. package/components/input/composite/props.js +0 -5
  318. package/components/input/currency/index.js +277 -224
  319. package/components/input/currency/props.js +0 -5
  320. package/components/input/default/checkbox/index.js +329 -250
  321. package/components/input/default/checkbox/props.js +0 -5
  322. package/components/input/default/checkboxset/index.d.ts +2 -0
  323. package/components/input/default/checkboxset/index.js +529 -446
  324. package/components/input/default/checkboxset/props.d.ts +4 -0
  325. package/components/input/default/checkboxset/props.js +0 -5
  326. package/components/input/default/checkboxset/utils.js +15 -25
  327. package/components/input/default/radioset/index.d.ts +2 -0
  328. package/components/input/default/radioset/index.js +409 -350
  329. package/components/input/default/radioset/props.d.ts +6 -0
  330. package/components/input/default/radioset/props.js +0 -5
  331. package/components/input/default/switch/index.js +494 -458
  332. package/components/input/default/switch/prop.js +0 -5
  333. package/components/input/epoch/date/components/DatePickerPopover.js +242 -193
  334. package/components/input/epoch/date/index.js +638 -518
  335. package/components/input/epoch/date/props.js +0 -5
  336. package/components/input/epoch/date/styled.js +61 -70
  337. package/components/input/epoch/date/utils.js +67 -115
  338. package/components/input/epoch/datetime/index.js +758 -695
  339. package/components/input/epoch/datetime/props.js +0 -5
  340. package/components/input/epoch/datetime/utils.js +121 -186
  341. package/components/input/epoch/time/index.js +441 -415
  342. package/components/input/epoch/time/props.js +0 -5
  343. package/components/input/epoch/time/utils.js +101 -112
  344. package/components/input/fileupload/Utils.js +70 -97
  345. package/components/input/fileupload/components/ListItems.js +132 -130
  346. package/components/input/fileupload/components/MultiUpload.js +80 -77
  347. package/components/input/fileupload/components/SingleUpload.js +57 -57
  348. package/components/input/fileupload/index.js +253 -178
  349. package/components/input/fileupload/props.js +0 -5
  350. package/components/input/fileupload/useFileUpload.js +209 -258
  351. package/components/input/number/index.js +434 -393
  352. package/components/input/number/props.js +0 -5
  353. package/components/input/rating/index.js +401 -394
  354. package/components/input/rating/props.js +0 -5
  355. package/components/input/select/index.js +408 -463
  356. package/components/input/select/props.js +0 -5
  357. package/components/input/slider/index.js +339 -332
  358. package/components/input/slider/props.js +0 -5
  359. package/components/input/text/index.d.ts +3 -3
  360. package/components/input/text/index.js +438 -475
  361. package/components/input/text/props.d.ts +1 -1
  362. package/components/input/text/props.js +0 -5
  363. package/components/input/text/util.js +82 -222
  364. package/components/input/textarea/index.js +322 -358
  365. package/components/input/textarea/props.js +0 -5
  366. package/components/input/upload/index.js +135 -131
  367. package/components/input/upload/props.js +0 -5
  368. package/components/input/util/index.js +9 -11
  369. package/components/layout/footer/index.js +12 -35
  370. package/components/layout/footer/props.js +0 -5
  371. package/components/layout/header/index.js +12 -38
  372. package/components/layout/header/props.js +0 -5
  373. package/components/layout/leftnav/index.js +38 -44
  374. package/components/layout/leftnav/props.js +0 -5
  375. package/components/layout/rightnav/index.js +12 -36
  376. package/components/layout/rightnav/props.js +0 -5
  377. package/components/layout/topnav/index.js +24 -38
  378. package/components/layout/topnav/props.js +0 -5
  379. package/components/navbar/index.js +119 -98
  380. package/components/navbar/nav/index.js +236 -232
  381. package/components/navbar/nav/props.js +0 -5
  382. package/components/navbar/nav-item/index.js +74 -65
  383. package/components/navbar/nav-item/props.js +0 -5
  384. package/components/navigation/breadcrumb/index.js +38 -61
  385. package/components/navigation/breadcrumb/props.js +0 -5
  386. package/components/navigation/menu/components/ListItems.js +76 -67
  387. package/components/navigation/menu/constants.js +27 -42
  388. package/components/navigation/menu/hooks/useHoverState.hook.js +20 -47
  389. package/components/navigation/menu/hooks/useKeyboardMovements.hook.js +34 -28
  390. package/components/navigation/menu/hooks/useTransformedDataset.hook.js +21 -14
  391. package/components/navigation/menu/index.js +911 -846
  392. package/components/navigation/menu/props.js +0 -5
  393. package/components/navigation/menu/utils/action-task.js +6 -9
  394. package/components/navigation/menu/utils/role-filter.js +41 -56
  395. package/components/navigation/popover/index.js +191 -205
  396. package/components/navigation/popover/props.js +5 -8
  397. package/components/page/content/index.js +9 -31
  398. package/components/page/content/props.js +0 -5
  399. package/components/page/error-boundary/index.js +115 -105
  400. package/components/page/error-boundary/props.js +0 -5
  401. package/components/page/index.js +84 -102
  402. package/components/page/page-content/index.js +21 -30
  403. package/components/page/page-content/props.js +0 -5
  404. package/components/page/partial/index.js +50 -45
  405. package/components/page/partial/props.js +0 -5
  406. package/components/page/partial-container/index.js +81 -107
  407. package/components/page/partial-container/props.d.ts +1 -1
  408. package/components/page/partial-container/props.js +0 -5
  409. package/components/page/props.js +0 -5
  410. package/components/page/toast-container/index.js +20 -41
  411. package/components/page/toast-container/props.js +0 -5
  412. package/components/prefab/container/index.js +60 -53
  413. package/components/prefab/container/props.js +0 -5
  414. package/components/prefab/index.js +76 -61
  415. package/components/prefab/props.js +0 -5
  416. package/context/AppContext.d.ts +1 -1
  417. package/context/AppContext.js +17 -18
  418. package/context/AppSpinnerProvider.js +19 -34
  419. package/context/LayoutProvider.js +54 -57
  420. package/context/LocalizationProvider.js +34 -49
  421. package/context/PrefabContext.js +68 -119
  422. package/context/WidgetProvider.js +160 -166
  423. package/core/app-config.js +0 -1
  424. package/core/app.service.js +200 -327
  425. package/core/appVariablesStore.js +10 -15
  426. package/core/appstore.js +37 -53
  427. package/core/constants/currency-constant.js +81 -83
  428. package/core/constants/events.js +34 -44
  429. package/core/constants/index.js +21 -31
  430. package/core/dialog.service.js +52 -72
  431. package/core/event-notifier.js +94 -131
  432. package/core/formatter/array-formatters.js +18 -32
  433. package/core/formatter/date-formatters.js +140 -204
  434. package/core/formatter/index.js +64 -117
  435. package/core/formatter/number-formatters.js +115 -159
  436. package/core/formatter/security-formatters.js +233 -283
  437. package/core/formatter/string-formatters.js +23 -45
  438. package/core/formatter/types.js +12 -18
  439. package/core/formatters.js +6 -24
  440. package/core/proxy-service.js +242 -306
  441. package/core/script-registry.js +87 -134
  442. package/core/security.service.js +8 -11
  443. package/core/util/compare.js +13 -25
  444. package/core/util/dom.js +32 -63
  445. package/core/util/index.js +92 -98
  446. package/core/util/safe-is-equal.js +42 -94
  447. package/core/util/security.js +114 -153
  448. package/core/util/utils.d.ts +4 -1
  449. package/core/util/utils.js +88 -159
  450. package/core/widget-observer.js +34 -61
  451. package/higherOrder/BaseApp.js +327 -502
  452. package/higherOrder/BaseAppProps.js +0 -5
  453. package/higherOrder/BaseDateTime.js +277 -231
  454. package/higherOrder/BasePage.js +479 -735
  455. package/higherOrder/BasePartial.js +87 -114
  456. package/higherOrder/BasePrefab.js +190 -206
  457. package/higherOrder/DataNav.js +287 -302
  458. package/higherOrder/helper.js +62 -48
  459. package/higherOrder/props.js +0 -5
  460. package/higherOrder/withBaseWrapper.js +123 -168
  461. package/higherOrder/withStandalone.js +28 -26
  462. package/hooks/useAccess.js +113 -289
  463. package/hooks/useAppConfig.js +15 -40
  464. package/hooks/useAuth.js +256 -495
  465. package/hooks/useDataSourceSubscription.d.ts +3 -3
  466. package/hooks/useDataSourceSubscription.js +99 -109
  467. package/hooks/useDebounce.js +28 -56
  468. package/hooks/useDeviceVisibility.js +14 -23
  469. package/hooks/useHttp.d.ts +1 -0
  470. package/hooks/useHttp.js +318 -493
  471. package/libs/index.js +4 -13
  472. package/libs/prefab/index.js +6 -20
  473. package/mui-config/theme-provider.js +9 -17
  474. package/mui-config/theme.js +6 -9
  475. package/package-lock.json +815 -3206
  476. package/package.json +3 -19
  477. package/providers/AppProviders.js +21 -24
  478. package/runtime-dynamic/App.js +65 -93
  479. package/runtime-dynamic/app-initializer.js +193 -411
  480. package/runtime-dynamic/components/ErrorBoundary.js +59 -76
  481. package/runtime-dynamic/components/PageWrapper.js +23 -35
  482. package/runtime-dynamic/components/PrefabPreview.js +40 -69
  483. package/runtime-dynamic/components/partial-content.d.ts +2 -3
  484. package/runtime-dynamic/components/partial-content.js +66 -45
  485. package/runtime-dynamic/components/prefab-content.js +37 -30
  486. package/runtime-dynamic/components/use-dynamic-component.js +62 -150
  487. package/runtime-dynamic/factories/build-base-page-like-component.js +44 -58
  488. package/runtime-dynamic/factories/dynamic-component.d.ts +9 -0
  489. package/runtime-dynamic/factories/dynamic-component.js +83 -0
  490. package/runtime-dynamic/factories/prefab-factory.js +60 -81
  491. package/runtime-dynamic/factories/startup-info.js +12 -25
  492. package/runtime-dynamic/factories/utils.d.ts +1 -9
  493. package/runtime-dynamic/factories/utils.js +47 -129
  494. package/runtime-dynamic/index.js +56 -191
  495. package/runtime-dynamic/main.js +42 -70
  496. package/runtime-dynamic/preview-mode.js +14 -29
  497. package/runtime-dynamic/preview-navigation.js +21 -30
  498. package/runtime-dynamic/preview-path.d.ts +5 -0
  499. package/runtime-dynamic/preview-path.js +13 -0
  500. package/runtime-dynamic/preview-resource-base.js +15 -31
  501. package/runtime-dynamic/registry/component-registry.js +269 -334
  502. package/runtime-dynamic/registry/custom-widget-registry.js +11 -15
  503. package/runtime-dynamic/registry/index.js +24 -63
  504. package/runtime-dynamic/registry/store.d.ts +1 -0
  505. package/runtime-dynamic/registry/store.js +18 -23
  506. package/runtime-dynamic/routes.js +53 -81
  507. package/runtime-dynamic/services/app-extension-provider.js +17 -44
  508. package/runtime-dynamic/services/autolayout-inject.d.ts +4 -0
  509. package/runtime-dynamic/services/autolayout-inject.js +27 -0
  510. package/runtime-dynamic/services/cache.js +27 -33
  511. package/runtime-dynamic/services/compile-render.d.ts +9 -0
  512. package/runtime-dynamic/services/compile-render.js +142 -0
  513. package/runtime-dynamic/services/component-ref-provider.js +70 -124
  514. package/runtime-dynamic/services/css-scoping.js +23 -28
  515. package/runtime-dynamic/services/fragment-url.js +37 -50
  516. package/runtime-dynamic/services/index.js +48 -152
  517. package/runtime-dynamic/services/markup-transpiler.d.ts +2 -2
  518. package/runtime-dynamic/services/markup-transpiler.js +39 -231
  519. package/runtime-dynamic/services/prefab-resources.js +40 -118
  520. package/runtime-dynamic/services/resource-manager.d.ts +2 -1
  521. package/runtime-dynamic/services/resource-manager.js +32 -63
  522. package/runtime-dynamic/services/script-executor.js +50 -61
  523. package/runtime-dynamic/services/variable-factory.js +141 -184
  524. package/runtime-dynamic/services/variable-registry.js +69 -115
  525. package/runtime-dynamic/services/variable-transpiler.js +73 -103
  526. package/runtime-dynamic/shims/next-image.js +79 -50
  527. package/runtime-dynamic/shims/next-link.js +58 -32
  528. package/runtime-dynamic/shims/next-navigation.js +17 -34
  529. package/runtime-dynamic/utils/index.js +15 -30
  530. package/store/bindActions/i18nActions.js +16 -18
  531. package/store/index.js +29 -35
  532. package/store/middleware/navigationMiddleware.js +25 -45
  533. package/store/middleware/pendingTabNavigationIntentMiddleware.js +20 -25
  534. package/store/slices/appConfigSlice.js +65 -94
  535. package/store/slices/authSlice.js +317 -471
  536. package/store/slices/i18nSlice.js +169 -168
  537. package/store/slices/navigationSlice.js +22 -20
  538. package/store/util/resolve-path.d.ts +1 -0
  539. package/store/util/resolve-path.js +7 -0
  540. package/store/viewport.service.js +150 -194
  541. package/types/index.js +10 -15
  542. package/utils/attr.js +198 -41
  543. package/utils/custom-expression/index.js +55 -151
  544. package/utils/custom-expression/parser.js +106 -182
  545. package/utils/dataset-util.js +113 -154
  546. package/utils/eval-expression.js +10 -19
  547. package/utils/form-state.util.js +60 -118
  548. package/utils/form-utils.js +49 -190
  549. package/utils/format-util.js +113 -184
  550. package/utils/layoutsize-util.js +11 -17
  551. package/utils/lib-error-skipper.js +54 -52
  552. package/utils/page-params-util.js +50 -40
  553. package/utils/pending-tab-navigation-intent.js +7 -17
  554. package/utils/resource-url.js +8 -19
  555. package/utils/state-persistance.js +136 -253
  556. package/utils/style-utils.js +24 -78
  557. package/utils/transformedDataset-utils.js +353 -381
  558. package/utils/widget-cleanup-util.js +42 -74
  559. package/utils/widgets.js +19 -31
  560. package/variables/base-variable.js +117 -166
  561. package/variables/constants.js +5 -8
  562. package/variables/crud-variable.js +150 -181
  563. package/variables/live-variable.d.ts +1 -1
  564. package/variables/live-variable.js +140 -174
  565. package/variables/metadata.service.js +74 -116
  566. package/variables/model-variable.js +68 -78
  567. package/variables/service-variable.js +171 -285
  568. package/wm-namespace.js +11 -14
  569. package/components/chart/src/css.d.js +0 -1
  570. package/tsconfig.declaration.tsbuildinfo +0 -1
  571. package/types/global.d.js +0 -3
@@ -1,381 +1,286 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.__resetNavigationPageParamHistoryForTests = exports.__getPageQueryParamHistorySizeForTests = exports.NavigationAction = void 0;
8
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
14
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
15
- var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
16
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
- var _baseVariable = require("@wavemaker-ai/react-runtime/variables/base-variable");
18
- var _baseAction = require("./base-action");
19
- var _lodashEs = require("lodash-es");
20
- var _navigationMiddleware = require("@wavemaker-ai/react-runtime/store/middleware/navigationMiddleware");
21
- var _constants = require("../core/constants");
22
- var _store = require("@wavemaker-ai/react-runtime/store");
23
- var _navigationSlice = require("@wavemaker-ai/react-runtime/store/slices/navigationSlice");
24
- var _statePersistance = require("@wavemaker-ai/react-runtime/utils/state-persistance");
25
- 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; } } }; }
26
- 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; } }
27
- 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; }
28
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
29
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
30
- function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
31
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
32
- function _superPropGet(t, o, e, r) { var p = (0, _get2["default"])((0, _getPrototypeOf2["default"])(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
33
- var PAGE_QUERY_PARAM_HISTORY_LIMIT = 50;
34
- var pageQueryParamHistory = new Map();
35
-
36
- /**
37
- * Evicts oldest entries (FIFO by insertion order) when adding a new page key
38
- * so the map cannot grow without bound (e.g. dynamic routes like product/123).
39
- */
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
4
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __spreadValues = (a, b) => {
7
+ for (var prop in b || (b = {}))
8
+ if (__hasOwnProp.call(b, prop))
9
+ __defNormalProp(a, prop, b[prop]);
10
+ if (__getOwnPropSymbols)
11
+ for (var prop of __getOwnPropSymbols(b)) {
12
+ if (__propIsEnum.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ }
15
+ return a;
16
+ };
17
+ import { VariableEvents } from "../variables/base-variable";
18
+ import { BaseAction } from "./base-action";
19
+ import { merge } from "lodash-es";
20
+ import { getRouterInstance } from "../store/middleware/navigationMiddleware";
21
+ import { PREVIEW_ROUTING_BASEPATH, getActiveRoutingBasePath } from "../core/constants";
22
+ import { store } from "../store";
23
+ import {
24
+ setPendingAccordionExpansion,
25
+ setPendingTabSelection
26
+ } from "../store/slices/navigationSlice";
27
+ import {
28
+ markPageNavigationPending,
29
+ clearPageNavigationPending
30
+ } from "../utils/state-persistance";
31
+ const PAGE_QUERY_PARAM_HISTORY_LIMIT = 50;
32
+ const pageQueryParamHistory = /* @__PURE__ */ new Map();
40
33
  function removeOldestPageQueryParamHistoryIfNeeded(incomingPageName) {
41
34
  if (pageQueryParamHistory.has(incomingPageName)) {
42
35
  return;
43
36
  }
44
37
  while (pageQueryParamHistory.size >= PAGE_QUERY_PARAM_HISTORY_LIMIT) {
45
- var _pageQueryParamHistor = pageQueryParamHistory.keys().next(),
46
- firstKey = _pageQueryParamHistor.value;
47
- if (firstKey === undefined) {
38
+ const { value: firstKey } = pageQueryParamHistory.keys().next();
39
+ if (firstKey === void 0) {
48
40
  break;
49
41
  }
50
- pageQueryParamHistory["delete"](firstKey);
42
+ pageQueryParamHistory.delete(firstKey);
51
43
  }
52
44
  }
53
- var __resetNavigationPageParamHistoryForTests = exports.__resetNavigationPageParamHistoryForTests = function __resetNavigationPageParamHistoryForTests() {
45
+ const __resetNavigationPageParamHistoryForTests = () => {
54
46
  pageQueryParamHistory.clear();
55
47
  };
56
- var __getPageQueryParamHistorySizeForTests = exports.__getPageQueryParamHistorySizeForTests = function __getPageQueryParamHistorySizeForTests() {
57
- return pageQueryParamHistory.size;
58
- };
59
- var NavigationAction = exports.NavigationAction = /*#__PURE__*/function (_BaseAction) {
60
- function NavigationAction(config) {
61
- (0, _classCallCheck2["default"])(this, NavigationAction);
62
- return _callSuper(this, NavigationAction, [config]);
48
+ const __getPageQueryParamHistorySizeForTests = () => pageQueryParamHistory.size;
49
+ class NavigationAction extends BaseAction {
50
+ constructor(config) {
51
+ super(config);
63
52
  }
64
- (0, _inherits2["default"])(NavigationAction, _BaseAction);
65
- return (0, _createClass2["default"])(NavigationAction, [{
66
- key: "invoke",
67
- value: function invoke(params, onSuccess, onError) {
68
- var _params,
69
- _params2,
70
- _this = this;
71
- var config = this.config;
72
-
73
- // Mark page navigation as pending SYNCHRONOUSLY before any async operations.
74
- // This prevents URL state persistence (router.replace) from overwriting the navigation (router.push)
75
- // when click events bubble up to parent widgets (like List) that persist state.
76
- if (config.operation === "gotoPage" || config.operation === "goToPreviousPage") {
77
- (0, _statePersistance.markPageNavigationPending)();
78
- }
79
-
80
- // @ts-ignore
81
- params = (_params = params) !== null && _params !== void 0 && _params.data ? (0, _lodashEs.merge)(this.config.paramProvider(), this.dataBinding, (_params2 = params) === null || _params2 === void 0 ? void 0 : _params2.data) : (0, _lodashEs.merge)(this.config.paramProvider(), this.dataBinding, this.dataSet);
82
- this.notify(_baseVariable.VariableEvents.BEFORE_INVOKE, [this, this.dataSet]);
83
- return _superPropGet(NavigationAction, "invoke", this, 3)([params, onSuccess, onError]).then(function () {
84
- switch (config.operation) {
85
- case "goToPreviousPage":
86
- _this.handleGoToPreviousPage();
87
- break;
88
- case "gotoTab":
89
- _this.handleGotoTab(params || {});
90
- break;
91
- case "gotoAccordion":
92
- _this.handleGotoAccordion(params || {});
93
- break;
94
- case "gotoPage":
95
- _this.handleGotoPage(params || {});
96
- }
97
- }).then(function () {
98
- config.onSuccess && config.onSuccess(_this, _this.dataSet);
99
- _this.notify(_baseVariable.VariableEvents.SUCCESS, [_this, _this.dataSet]);
100
- }, function () {
101
- config.onError && config.onError(_this, null);
102
- _this.notify(_baseVariable.VariableEvents.ERROR, [_this, _this.dataSet]);
103
- // Clear the flag on error so future state persistence works
104
- (0, _statePersistance.clearPageNavigationPending)();
105
- }).then(function () {
106
- _this.notify(_baseVariable.VariableEvents.AFTER_INVOKE, [_this, _this.dataSet]);
107
- return _this;
108
- });
109
- }
110
- }, {
111
- key: "navigate",
112
- value: function navigate(params, onSuccess, onError) {
113
- return this.invoke(params, onSuccess, onError);
53
+ invoke(params, onSuccess, onError) {
54
+ const config = this.config;
55
+ if (config.operation === "gotoPage" || config.operation === "goToPreviousPage") {
56
+ markPageNavigationPending();
114
57
  }
115
- }, {
116
- key: "handleGoToPreviousPage",
117
- value: function handleGoToPreviousPage() {
118
- var router = (0, _navigationMiddleware.getRouterInstance)();
119
- try {
120
- if (router) {
121
- router.back();
122
- return;
123
- }
124
-
125
- // Fallback to window history if router.back() doesn't work
126
- if (typeof window !== "undefined") {
127
- window.history.length > 1 ? window.history.go(-1) : window.location.href = "/";
128
- return;
129
- }
130
- console.warn("Unable to navigate to previous page");
131
- } catch (error) {
132
- console.error("Error navigating to previous page:", error);
133
- if (typeof window !== "undefined") {
134
- window.location.href = "/";
135
- }
58
+ params = (params == null ? void 0 : params.data) ? merge(this.config.paramProvider(), this.dataBinding, params == null ? void 0 : params.data) : merge(this.config.paramProvider(), this.dataBinding, this.dataSet);
59
+ this.notify(VariableEvents.BEFORE_INVOKE, [this, this.dataSet]);
60
+ return super.invoke(params, onSuccess, onError).then(() => {
61
+ switch (config.operation) {
62
+ case "goToPreviousPage":
63
+ this.handleGoToPreviousPage();
64
+ break;
65
+ case "gotoTab":
66
+ this.handleGotoTab(params || {});
67
+ break;
68
+ case "gotoAccordion":
69
+ this.handleGotoAccordion(params || {});
70
+ break;
71
+ case "gotoPage":
72
+ this.handleGotoPage(params || {});
136
73
  }
137
- }
138
- }, {
139
- key: "handleGotoTab",
140
- value: function handleGotoTab(params) {
141
- var tabName = params === null || params === void 0 ? void 0 : params.tabName;
142
- var pageName = params === null || params === void 0 ? void 0 : params.pageName;
143
- if (!tabName) {
144
- console.warn("No tab name provided for navigation");
145
- return;
74
+ }).then(
75
+ () => {
76
+ config.onSuccess && config.onSuccess(this, this.dataSet);
77
+ this.notify(VariableEvents.SUCCESS, [this, this.dataSet]);
78
+ },
79
+ () => {
80
+ config.onError && config.onError(this, null);
81
+ this.notify(VariableEvents.ERROR, [this, this.dataSet]);
82
+ clearPageNavigationPending();
146
83
  }
147
-
148
- // Try to find the tab widget in the widget hierarchy
149
- var tabWidget = this.findTabWidget(tabName);
150
-
151
- // If tab found in current context hierarchy, select it directly
152
- // This handles same-page tab navigation (partial to page tab on same page)
153
- if (tabWidget !== null && tabWidget !== void 0 && tabWidget.select) {
154
- tabWidget.select();
84
+ ).then(() => {
85
+ this.notify(VariableEvents.AFTER_INVOKE, [this, this.dataSet]);
86
+ return this;
87
+ });
88
+ }
89
+ navigate(params, onSuccess, onError) {
90
+ return this.invoke(params, onSuccess, onError);
91
+ }
92
+ handleGoToPreviousPage() {
93
+ const router = getRouterInstance();
94
+ try {
95
+ if (router) {
96
+ router.back();
155
97
  return;
156
98
  }
157
-
158
- // If pageName is provided, navigate to that page first and then select the tab
159
- // This handles cross-page tab navigation
160
- if (pageName) {
161
- // Store the tab selection intent in Redux as fallback
162
- _store.store.dispatch((0, _navigationSlice.setPendingTabSelection)(tabName));
163
- // Navigate to the page with tabName in URL query params
164
- // The tabName will be included in URL params by handleGotoPage
165
- this.handleGotoPage(params);
99
+ if (typeof window !== "undefined") {
100
+ window.history.length > 1 ? window.history.go(-1) : window.location.href = "/";
166
101
  return;
167
102
  }
168
- console.warn("Unable to select tab: ".concat(tabName, ". Tab widget not found in context hierarchy and no pageName provided."));
169
- }
170
- }, {
171
- key: "findTabWidget",
172
- value: function findTabWidget(tabName) {
173
- var _context$Widgets;
174
- var context = this.config._context;
175
-
176
- // 1. Check in current context (works for tabs in same partial/page)
177
- if (context !== null && context !== void 0 && (_context$Widgets = context.Widgets) !== null && _context$Widgets !== void 0 && _context$Widgets[tabName]) {
178
- return context.Widgets[tabName];
103
+ console.warn("Unable to navigate to previous page");
104
+ } catch (error) {
105
+ console.error("Error navigating to previous page:", error);
106
+ if (typeof window !== "undefined") {
107
+ window.location.href = "/";
179
108
  }
180
- return null;
181
109
  }
182
- }, {
183
- key: "handleGotoAccordion",
184
- value: function handleGotoAccordion(params) {
185
- var _this$config$_context;
186
- var accordionName = params === null || params === void 0 ? void 0 : params.accordionName;
187
- var pageName = params === null || params === void 0 ? void 0 : params.pageName;
188
-
189
- // If on the same page, expand the accordion directly
190
- if (accordionName && (_this$config$_context = this.config._context) !== null && _this$config$_context !== void 0 && (_this$config$_context = _this$config$_context.Widgets[accordionName]) !== null && _this$config$_context !== void 0 && _this$config$_context.expand) {
191
- var _this$config$_context2;
192
- (_this$config$_context2 = this.config._context) === null || _this$config$_context2 === void 0 || (_this$config$_context2 = _this$config$_context2.Widgets[accordionName]) === null || _this$config$_context2 === void 0 || _this$config$_context2.expand();
193
- } else if (pageName && accordionName) {
194
- // If navigating to a different page, store accordion name in Redux and navigate
195
- // Store the accordion expansion intent in Redux to be executed after page load
196
- _store.store.dispatch((0, _navigationSlice.setPendingAccordionExpansion)(accordionName));
197
- // Navigate to the page
198
- this.handleGotoPage(params);
199
- } else {
200
- console.warn("Unable to expand accordion: ".concat(accordionName));
201
- }
110
+ }
111
+ handleGotoTab(params) {
112
+ const tabName = params == null ? void 0 : params.tabName;
113
+ const pageName = params == null ? void 0 : params.pageName;
114
+ if (!tabName) {
115
+ console.warn("No tab name provided for navigation");
116
+ return;
202
117
  }
203
-
204
- // normalizes a path to be relative to the app's base path, if applicable. This allows for correct comparison of paths even when the app is deployed with a base path.
205
- }, {
206
- key: "getAppRelativePath",
207
- value: function getAppRelativePath(path, basePath) {
208
- var normalized = path.replace(/\/$/, "") || "/";
209
- var idx = normalized.indexOf(basePath);
210
- return idx >= 0 ? normalized.slice(idx) : normalized;
118
+ const tabWidget = this.findTabWidget(tabName);
119
+ if (tabWidget == null ? void 0 : tabWidget.select) {
120
+ tabWidget.select();
121
+ return;
211
122
  }
212
- }, {
213
- key: "parseSearch",
214
- value: function parseSearch(search) {
215
- return Object.fromEntries(new URLSearchParams(search).entries());
123
+ if (pageName) {
124
+ store.dispatch(setPendingTabSelection(tabName));
125
+ this.handleGotoPage(params);
126
+ return;
216
127
  }
217
- }, {
218
- key: "normalizePageName",
219
- value: function normalizePageName(pageName) {
220
- return pageName.replace(/^\//, "");
128
+ console.warn(
129
+ `Unable to select tab: ${tabName}. Tab widget not found in context hierarchy and no pageName provided.`
130
+ );
131
+ }
132
+ findTabWidget(tabName) {
133
+ var _a;
134
+ const context = this.config._context;
135
+ if ((_a = context == null ? void 0 : context.Widgets) == null ? void 0 : _a[tabName]) {
136
+ return context.Widgets[tabName];
221
137
  }
222
- }, {
223
- key: "getCurrentPageInfo",
224
- value: function getCurrentPageInfo() {
225
- if (typeof window === "undefined") {
226
- return null;
227
- }
228
- var trimTrailingSlash = function trimTrailingSlash(path) {
229
- return path.replace(/\/$/, "") || "/";
230
- };
231
- var basePath = "/".concat((0, _constants.getActiveRoutingBasePath)());
232
- var currentPathname = this.getAppRelativePath(trimTrailingSlash(window.location.pathname), basePath);
233
- if (!currentPathname.startsWith(basePath)) {
234
- return null;
235
- }
236
- var pageName = currentPathname.slice(basePath.length).replace(/^\//, "");
237
- if (!pageName) {
238
- return null;
239
- }
240
- return {
241
- pageName: this.normalizePageName(pageName),
242
- queryParams: this.parseSearch(window.location.search || "")
243
- };
138
+ return null;
139
+ }
140
+ handleGotoAccordion(params) {
141
+ var _a, _b, _c, _d;
142
+ const accordionName = params == null ? void 0 : params.accordionName;
143
+ const pageName = params == null ? void 0 : params.pageName;
144
+ if (accordionName && ((_b = (_a = this.config._context) == null ? void 0 : _a.Widgets[accordionName]) == null ? void 0 : _b.expand)) {
145
+ (_d = (_c = this.config._context) == null ? void 0 : _c.Widgets[accordionName]) == null ? void 0 : _d.expand();
146
+ } else if (pageName && accordionName) {
147
+ store.dispatch(setPendingAccordionExpansion(accordionName));
148
+ this.handleGotoPage(params);
149
+ } else {
150
+ console.warn(`Unable to expand accordion: ${accordionName}`);
244
151
  }
245
- }, {
246
- key: "rememberPageQueryParams",
247
- value: function rememberPageQueryParams(pageName, queryParams) {
248
- var normalizedPageName = this.normalizePageName(pageName);
249
- if (!normalizedPageName) {
250
- return;
251
- }
252
- if (Object.keys(queryParams).length === 0) {
253
- pageQueryParamHistory["delete"](normalizedPageName);
254
- return;
255
- }
256
- removeOldestPageQueryParamHistoryIfNeeded(normalizedPageName);
257
- pageQueryParamHistory.set(normalizedPageName, _objectSpread({}, queryParams));
152
+ }
153
+ // normalizes a path to be relative to the app's base path, if applicable. This allows for correct comparison of paths even when the app is deployed with a base path.
154
+ getAppRelativePath(path, basePath) {
155
+ const normalized = path.replace(/\/$/, "") || "/";
156
+ const idx = normalized.indexOf(basePath);
157
+ return idx >= 0 ? normalized.slice(idx) : normalized;
158
+ }
159
+ parseSearch(search) {
160
+ return Object.fromEntries(new URLSearchParams(search).entries());
161
+ }
162
+ normalizePageName(pageName) {
163
+ return pageName.replace(/^\//, "");
164
+ }
165
+ getCurrentPageInfo() {
166
+ if (typeof window === "undefined") {
167
+ return null;
168
+ }
169
+ const trimTrailingSlash = (path) => path.replace(/\/$/, "") || "/";
170
+ const basePath = `/${getActiveRoutingBasePath()}`;
171
+ const currentPathname = this.getAppRelativePath(
172
+ trimTrailingSlash(window.location.pathname),
173
+ basePath
174
+ );
175
+ if (!currentPathname.startsWith(basePath)) {
176
+ return null;
177
+ }
178
+ const pageName = currentPathname.slice(basePath.length).replace(/^\//, "");
179
+ if (!pageName) {
180
+ return null;
181
+ }
182
+ return {
183
+ pageName: this.normalizePageName(pageName),
184
+ queryParams: this.parseSearch(window.location.search || "")
185
+ };
186
+ }
187
+ rememberPageQueryParams(pageName, queryParams) {
188
+ const normalizedPageName = this.normalizePageName(pageName);
189
+ if (!normalizedPageName) {
190
+ return;
258
191
  }
259
- }, {
260
- key: "resolveQueryParams",
261
- value: function resolveQueryParams(pageName, params) {
262
- var normalizedPageName = this.normalizePageName(pageName);
263
- var explicitQueryParams = Object.fromEntries(Object.entries(params || {}).filter(function (_ref) {
264
- var _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
265
- key = _ref2[0],
266
- value = _ref2[1];
267
- return key !== "pageName" && value !== undefined && value !== null && value !== "";
268
- }).map(function (_ref3) {
269
- var _ref4 = (0, _slicedToArray2["default"])(_ref3, 2),
270
- key = _ref4[0],
271
- value = _ref4[1];
272
- return [key, String(value)];
273
- }));
274
- var isPreview = (0, _constants.getActiveRoutingBasePath)() === _constants.PREVIEW_ROUTING_BASEPATH;
275
- var queryParams;
276
- if (isPreview) {
277
- // Preview: explicit > per-page history > current URL (e.g. wm_state) across navigations
278
- if (Object.keys(explicitQueryParams).length > 0) {
279
- queryParams = explicitQueryParams;
192
+ if (Object.keys(queryParams).length === 0) {
193
+ pageQueryParamHistory.delete(normalizedPageName);
194
+ return;
195
+ }
196
+ removeOldestPageQueryParamHistoryIfNeeded(normalizedPageName);
197
+ pageQueryParamHistory.set(normalizedPageName, __spreadValues({}, queryParams));
198
+ }
199
+ resolveQueryParams(pageName, params) {
200
+ var _a;
201
+ const normalizedPageName = this.normalizePageName(pageName);
202
+ const explicitQueryParams = Object.fromEntries(
203
+ Object.entries(params || {}).filter(
204
+ ([key, value]) => key !== "pageName" && value !== void 0 && value !== null && value !== ""
205
+ ).map(([key, value]) => [key, String(value)])
206
+ );
207
+ const isPreview = getActiveRoutingBasePath() === PREVIEW_ROUTING_BASEPATH;
208
+ let queryParams;
209
+ if (isPreview) {
210
+ if (Object.keys(explicitQueryParams).length > 0) {
211
+ queryParams = explicitQueryParams;
212
+ } else {
213
+ const historyParams = pageQueryParamHistory.get(normalizedPageName);
214
+ if (historyParams && Object.keys(historyParams).length > 0) {
215
+ queryParams = historyParams;
280
216
  } else {
281
- var historyParams = pageQueryParamHistory.get(normalizedPageName);
282
- if (historyParams && Object.keys(historyParams).length > 0) {
283
- queryParams = historyParams;
284
- } else {
285
- var currentPageInfo = this.getCurrentPageInfo();
286
- queryParams = currentPageInfo && Object.keys(currentPageInfo.queryParams).length > 0 ? currentPageInfo.queryParams : {};
287
- }
217
+ const currentPageInfo = this.getCurrentPageInfo();
218
+ queryParams = currentPageInfo && Object.keys(currentPageInfo.queryParams).length > 0 ? currentPageInfo.queryParams : {};
288
219
  }
289
- } else {
290
- var _pageQueryParamHistor2;
291
- // Production: explicit > per-page history only
292
- queryParams = Object.keys(explicitQueryParams).length > 0 ? explicitQueryParams : (_pageQueryParamHistor2 = pageQueryParamHistory.get(normalizedPageName)) !== null && _pageQueryParamHistor2 !== void 0 ? _pageQueryParamHistor2 : {};
293
220
  }
294
- this.rememberPageQueryParams(normalizedPageName, queryParams);
295
- return {
296
- pageName: normalizedPageName,
297
- queryParams: queryParams
298
- };
221
+ } else {
222
+ queryParams = Object.keys(explicitQueryParams).length > 0 ? explicitQueryParams : (_a = pageQueryParamHistory.get(normalizedPageName)) != null ? _a : {};
299
223
  }
300
-
301
- /**
302
- * Returns true if the current URL matches the target path and query params.
303
- * When true, we skip router.push.
304
- */
305
- }, {
306
- key: "isSamePageAsCurrent",
307
- value: function isSamePageAsCurrent(targetPath, targetSearch) {
308
- if (typeof window === "undefined") {
309
- return false;
310
- }
311
- var trimTrailingSlash = function trimTrailingSlash(p) {
312
- return p.replace(/\/$/, "") || "/";
313
- };
314
- var basePath = "/".concat((0, _constants.getActiveRoutingBasePath)());
315
- var rawCurrentPathname = trimTrailingSlash(window.location.pathname);
316
- var currentSearch = window.location.search || "";
317
- var rawTargetPathNorm = trimTrailingSlash(targetPath);
318
-
319
- // Normalize current path to app-relative
320
- var currentPathname = this.getAppRelativePath(rawCurrentPathname, basePath);
321
- var targetPathNorm = this.getAppRelativePath(rawTargetPathNorm, basePath);
322
- if (!targetPathNorm.startsWith(basePath) || !currentPathname.startsWith(basePath)) {
323
- return false;
324
- }
325
- if (targetPathNorm !== currentPathname) {
326
- return false;
224
+ this.rememberPageQueryParams(normalizedPageName, queryParams);
225
+ return { pageName: normalizedPageName, queryParams };
226
+ }
227
+ /**
228
+ * Returns true if the current URL matches the target path and query params.
229
+ * When true, we skip router.push.
230
+ */
231
+ isSamePageAsCurrent(targetPath, targetSearch) {
232
+ if (typeof window === "undefined") {
233
+ return false;
234
+ }
235
+ const trimTrailingSlash = (p) => p.replace(/\/$/, "") || "/";
236
+ const basePath = `/${getActiveRoutingBasePath()}`;
237
+ const rawCurrentPathname = trimTrailingSlash(window.location.pathname);
238
+ const currentSearch = window.location.search || "";
239
+ const rawTargetPathNorm = trimTrailingSlash(targetPath);
240
+ const currentPathname = this.getAppRelativePath(rawCurrentPathname, basePath);
241
+ const targetPathNorm = this.getAppRelativePath(rawTargetPathNorm, basePath);
242
+ if (!targetPathNorm.startsWith(basePath) || !currentPathname.startsWith(basePath)) {
243
+ return false;
244
+ }
245
+ if (targetPathNorm !== currentPathname) {
246
+ return false;
247
+ }
248
+ const targetParams = this.parseSearch(targetSearch);
249
+ const currentParams = this.parseSearch(currentSearch);
250
+ const keys = /* @__PURE__ */ new Set([...Object.keys(targetParams), ...Object.keys(currentParams)]);
251
+ for (const key of keys) {
252
+ if (targetParams[key] !== currentParams[key]) return false;
253
+ }
254
+ return true;
255
+ }
256
+ handleGotoPage(params) {
257
+ const router = getRouterInstance();
258
+ const pageName = params == null ? void 0 : params.pageName;
259
+ if (pageName) {
260
+ const currentPageInfo = this.getCurrentPageInfo();
261
+ if (currentPageInfo) {
262
+ this.rememberPageQueryParams(currentPageInfo.pageName, currentPageInfo.queryParams);
327
263
  }
328
-
329
- // Compare query params in an order-independent way
330
- var targetParams = this.parseSearch(targetSearch);
331
- var currentParams = this.parseSearch(currentSearch);
332
- var keys = new Set([].concat((0, _toConsumableArray2["default"])(Object.keys(targetParams)), (0, _toConsumableArray2["default"])(Object.keys(currentParams))));
333
- var _iterator = _createForOfIteratorHelper(keys),
334
- _step;
335
- try {
336
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
337
- var _key = _step.value;
338
- if (targetParams[_key] !== currentParams[_key]) return false;
339
- }
340
- } catch (err) {
341
- _iterator.e(err);
342
- } finally {
343
- _iterator.f();
264
+ const { pageName: cleanPageName, queryParams: effectiveQueryParams } = this.resolveQueryParams(pageName, params);
265
+ const queryString = new URLSearchParams(effectiveQueryParams).toString();
266
+ const fullPath = queryString ? `/${cleanPageName}?${queryString}` : `/${cleanPageName}`;
267
+ const targetPath = `/${getActiveRoutingBasePath()}${fullPath}`;
268
+ const targetPathname = targetPath.split("?")[0];
269
+ const targetSearch = queryString ? `?${queryString}` : "";
270
+ if (this.isSamePageAsCurrent(targetPathname, targetSearch)) {
271
+ clearPageNavigationPending();
272
+ return;
344
273
  }
345
- return true;
346
- }
347
- }, {
348
- key: "handleGotoPage",
349
- value: function handleGotoPage(params) {
350
- var router = (0, _navigationMiddleware.getRouterInstance)();
351
- var pageName = params === null || params === void 0 ? void 0 : params.pageName;
352
- if (pageName) {
353
- var currentPageInfo = this.getCurrentPageInfo();
354
- if (currentPageInfo) {
355
- this.rememberPageQueryParams(currentPageInfo.pageName, currentPageInfo.queryParams);
356
- }
357
- var _this$resolveQueryPar = this.resolveQueryParams(pageName, params),
358
- cleanPageName = _this$resolveQueryPar.pageName,
359
- effectiveQueryParams = _this$resolveQueryPar.queryParams;
360
- var queryString = new URLSearchParams(effectiveQueryParams).toString();
361
-
362
- // Construct full path with optional query string
363
- var fullPath = queryString ? "/".concat(cleanPageName, "?").concat(queryString) : "/".concat(cleanPageName);
364
- var targetPath = "/".concat((0, _constants.getActiveRoutingBasePath)()).concat(fullPath);
365
- var targetPathname = targetPath.split("?")[0];
366
- var targetSearch = queryString ? "?".concat(queryString) : "";
367
-
368
- // Same page: skip router.push so the route does not re-run .
369
- if (this.isSamePageAsCurrent(targetPathname, targetSearch)) {
370
- (0, _statePersistance.clearPageNavigationPending)();
371
- return;
372
- }
373
- if (router) {
374
- router.push(targetPath);
375
- }
376
- } else {
377
- console.warn("No page name provided for navigation");
274
+ if (router) {
275
+ router.push(targetPath);
378
276
  }
277
+ } else {
278
+ console.warn("No page name provided for navigation");
379
279
  }
380
- }]);
381
- }(_baseAction.BaseAction);
280
+ }
281
+ }
282
+ export {
283
+ NavigationAction,
284
+ __getPageQueryParamHistorySizeForTests,
285
+ __resetNavigationPageParamHistoryForTests
286
+ };