@wavemaker/react-runtime 11.14.2-rc.6311 → 11.15.0-1.246

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 (245) hide show
  1. package/actions/base-action.js +5 -7
  2. package/actions/login-action.js +7 -8
  3. package/actions/logout-action.js +5 -7
  4. package/actions/navigation-action.js +73 -18
  5. package/actions/notification-action.js +22 -8
  6. package/actions/timer-action.js +13 -15
  7. package/actions/toast.js +4 -2
  8. package/actions/toast.service.js +1 -2
  9. package/components/advanced/carousel/index.js +1 -1
  10. package/components/advanced/carousel/template.js +1 -1
  11. package/components/basic/anchor/index.js +31 -11
  12. package/components/basic/html/index.js +115 -24
  13. package/components/basic/icon/index.js +2 -1
  14. package/components/basic/iframe/index.js +2 -1
  15. package/components/basic/label/index.js +12 -9
  16. package/components/basic/message/index.js +12 -3
  17. package/components/basic/picture/index.js +11 -4
  18. package/components/basic/progress-bar/index.js +4 -1
  19. package/components/basic/progress-circle/index.js +34 -28
  20. package/components/basic/progress-circle/props.js +10 -2
  21. package/components/basic/richtexteditor/index.js +95 -94
  22. package/components/basic/search/index.js +401 -156
  23. package/components/basic/search/providers.js +126 -61
  24. package/components/basic/spinner/index.js +2 -1
  25. package/components/basic/tree/index.js +34 -34
  26. package/components/basic/tree/utils.js +10 -4
  27. package/components/chart/components/barColumnChart/index.js +36 -33
  28. package/components/chart/components/bubbleChart/index.js +35 -25
  29. package/components/chart/components/chartLegend/utils.js +2 -1
  30. package/components/chart/components/cumulativeLineChart/index.js +30 -26
  31. package/components/chart/components/lineAreaChart/index.js +50 -32
  32. package/components/chart/components/pieDonutChart/index.js +13 -4
  33. package/components/chart/hooks/useXAxisConfig.js +15 -8
  34. package/components/chart/index.js +223 -53
  35. package/components/chart/utils.js +12 -1
  36. package/components/constants.js +5 -2
  37. package/components/container/accordion/accordion-pane/index.js +17 -12
  38. package/components/container/accordion/index.js +9 -4
  39. package/components/container/alignment-utils.js +56 -1
  40. package/components/container/index.js +49 -20
  41. package/components/container/panel/components/panel-header/index.js +3 -4
  42. package/components/container/panel/index.js +15 -10
  43. package/components/container/repeat-template/index.js +33 -0
  44. package/components/container/tabs/index.js +83 -14
  45. package/components/container/tabs/tab-pane/index.js +33 -10
  46. package/components/container/tabs/utils.js +51 -0
  47. package/components/container/wizard/components/StepComponents.js +2 -1
  48. package/components/container/wizard/components/WizardStep.js +2 -1
  49. package/components/container/wizard/index.js +64 -35
  50. package/components/container/wizard/utils.js +46 -1
  51. package/components/container/wizard/wizard-step/index.js +11 -1
  52. package/components/data/card/card-content/index.js +1 -1
  53. package/components/data/form/base-form/index.js +985 -183
  54. package/components/data/form/base-form/props.js +3 -1
  55. package/components/data/form/base-form/utils.js +159 -1
  56. package/components/data/form/dynamic-fields/constant.js +53 -0
  57. package/components/data/form/dynamic-fields/index.js +10 -45
  58. package/components/data/form/dynamic-fields/utils.js +37 -2
  59. package/components/data/form/form-action/index.js +5 -4
  60. package/components/data/form/form-context.js +5 -1
  61. package/components/data/form/form-controller/utils.js +84 -0
  62. package/components/data/form/form-controller/validation-contrustor.js +402 -189
  63. package/components/data/form/form-controller/withFormController.js +191 -52
  64. package/components/data/form/form-field/base-field.js +67 -45
  65. package/components/data/form/form-field/index.js +28 -5
  66. package/components/data/form/form-header/index.js +3 -4
  67. package/components/data/form/index.js +20 -1
  68. package/components/data/list/components/ListDND.js +2 -1
  69. package/components/data/list/components/ListItem.js +6 -2
  70. package/components/data/list/components/ListItemWithTemplate.js +46 -2
  71. package/components/data/list/components/ListItems.js +17 -26
  72. package/components/data/list/components/ListPagination.js +3 -3
  73. package/components/data/list/components/StandardListItems.js +3 -4
  74. package/components/data/list/hooks/useListEffects.js +55 -14
  75. package/components/data/list/hooks/useListEventHandlers.js +3 -1
  76. package/components/data/list/hooks/useListState.js +3 -1
  77. package/components/data/list/hooks/usePaginatedGroupedData.js +18 -5
  78. package/components/data/list/index.js +74 -55
  79. package/components/data/list/utils/list-helpers.js +73 -35
  80. package/components/data/list/utils/list-widget-methods.js +138 -95
  81. package/components/data/live-filter/index.js +26 -15
  82. package/components/data/live-form/index.js +51 -18
  83. package/components/data/live-form/props.js +1 -1
  84. package/components/data/pagination/components/BasicPagination.js +71 -16
  85. package/components/data/pagination/components/PageSizeSelector.js +8 -3
  86. package/components/data/pagination/components/TotalRecords.js +1 -5
  87. package/components/data/pagination/hooks/usePagination.js +349 -66
  88. package/components/data/pagination/index.js +137 -19
  89. package/components/data/table/components/AddNewRow.js +5 -1
  90. package/components/data/table/components/EditableCell.js +2 -2
  91. package/components/data/table/components/RowCells.js +64 -0
  92. package/components/data/table/components/RowExpansionButton.js +2 -2
  93. package/components/data/table/components/SummaryCell.js +111 -0
  94. package/components/data/table/components/SummaryRow.js +54 -0
  95. package/components/data/table/components/SummaryRowFooter.js +46 -0
  96. package/components/data/table/components/TableBody.js +61 -59
  97. package/components/data/table/components/TableDataRow.js +109 -0
  98. package/components/data/table/components/TableFilters.js +225 -121
  99. package/components/data/table/components/TableHeader.js +291 -23
  100. package/components/data/table/components/TablePanelHeading.js +139 -8
  101. package/components/data/table/components/index.js +22 -1
  102. package/components/data/table/hooks/use-edited-rows.js +141 -0
  103. package/components/data/table/hooks/useCellState.js +5 -12
  104. package/components/data/table/hooks/useFormWidget.js +58 -52
  105. package/components/data/table/hooks/usePaginationState.js +45 -24
  106. package/components/data/table/hooks/usePanelStructure.js +4 -4
  107. package/components/data/table/hooks/useRowHandlers.js +39 -5
  108. package/components/data/table/hooks/useRowSelection.js +244 -50
  109. package/components/data/table/hooks/useServerSideSorting.js +81 -37
  110. package/components/data/table/hooks/useTableColumns.js +211 -118
  111. package/components/data/table/hooks/useTableData.js +54 -9
  112. package/components/data/table/hooks/useTableEdit.js +272 -97
  113. package/components/data/table/hooks/useTableEffects.js +31 -13
  114. package/components/data/table/hooks/useTableFilter.js +1 -1
  115. package/components/data/table/hooks/useTableInitialization.js +23 -22
  116. package/components/data/table/hooks/useTableState.js +11 -5
  117. package/components/data/table/hooks/useTableStateManager.js +140 -65
  118. package/components/data/table/index.js +637 -274
  119. package/components/data/table/live-table/index.js +54 -22
  120. package/components/data/table/table-action/index.js +1 -1
  121. package/components/data/table/table-group/index.js +26 -0
  122. package/components/data/table/table-row-action/index.js +32 -18
  123. package/components/data/table/utils/buildSelectionColumns.js +12 -21
  124. package/components/data/table/utils/columnBuilder.js +29 -14
  125. package/components/data/table/utils/columnProxy.js +68 -1
  126. package/components/data/table/utils/constants.js +6 -2
  127. package/components/data/table/utils/crud-handlers.js +68 -63
  128. package/components/data/table/utils/groupHeaderUtils.js +102 -0
  129. package/components/data/table/utils/index.js +210 -21
  130. package/components/data/table/utils/renderDisplayCell.js +6 -6
  131. package/components/data/table/utils/selectionUtils.js +25 -26
  132. package/components/data/table/utils/validation.js +1 -0
  133. package/components/data/utils/filter-field-util.js +3 -3
  134. package/components/dialogs/alert-dialog/index.js +1 -1
  135. package/components/dialogs/confirm-dialog/index.js +1 -1
  136. package/components/dialogs/dialog/index.js +4 -1
  137. package/components/dialogs/dialog-content/index.js +3 -1
  138. package/components/dialogs/dialog-header/index.js +2 -2
  139. package/components/dialogs/iframe-dialog/index.js +11 -5
  140. package/components/dialogs/index.js +1 -1
  141. package/components/dialogs/login-dialog/index.js +1 -1
  142. package/components/dialogs/page-dialog/index.js +1 -1
  143. package/components/form/button/index.js +33 -7
  144. package/components/input/calendar/index.js +18 -6
  145. package/components/input/chips/index.js +99 -28
  146. package/components/input/chips/utils.js +34 -4
  147. package/components/input/color-picker/index.js +74 -25
  148. package/components/input/composite/index.js +3 -3
  149. package/components/input/currency/index.js +35 -49
  150. package/components/input/default/checkbox/index.js +23 -28
  151. package/components/input/default/checkboxset/index.js +38 -18
  152. package/components/input/default/checkboxset/utils.js +30 -0
  153. package/components/input/default/radioset/index.js +36 -39
  154. package/components/input/default/switch/index.js +30 -13
  155. package/components/input/epoch/date/index.js +130 -69
  156. package/components/input/epoch/date/utils.js +94 -1
  157. package/components/input/epoch/datetime/index.js +72 -22
  158. package/components/input/epoch/datetime/utils.js +49 -10
  159. package/components/input/epoch/time/index.js +68 -19
  160. package/components/input/epoch/time/utils.js +62 -14
  161. package/components/input/fileupload/Utils.js +12 -7
  162. package/components/input/fileupload/components/MultiUpload.js +2 -6
  163. package/components/input/fileupload/components/SingleUpload.js +3 -7
  164. package/components/input/fileupload/index.js +6 -10
  165. package/components/input/fileupload/useFileUpload.js +16 -5
  166. package/components/input/number/index.js +158 -43
  167. package/components/input/rating/index.js +90 -7
  168. package/components/input/select/index.js +209 -72
  169. package/components/input/slider/index.js +84 -26
  170. package/components/input/text/index.js +38 -18
  171. package/components/input/text/util.js +283 -130
  172. package/components/input/textarea/index.js +13 -10
  173. package/components/input/upload/index.js +124 -0
  174. package/components/input/upload/props.js +5 -0
  175. package/components/input/util/index.js +11 -0
  176. package/components/navbar/index.js +51 -3
  177. package/components/navbar/nav/index.js +46 -16
  178. package/components/navbar/nav-item/index.js +11 -5
  179. package/components/navigation/menu/components/ListItems.js +3 -0
  180. package/components/navigation/menu/constants.js +2 -1
  181. package/components/navigation/menu/hooks/useHoverState.hook.js +48 -0
  182. package/components/navigation/menu/hooks/useKeyboardMovements.hook.js +37 -0
  183. package/components/navigation/menu/hooks/useTransformedDataset.hook.js +15 -0
  184. package/components/navigation/menu/index.js +326 -188
  185. package/components/navigation/menu/utils/action-task.js +14 -0
  186. package/components/navigation/menu/utils/role-filter.js +76 -0
  187. package/components/navigation/popover/index.js +105 -32
  188. package/components/page/partial-container/index.js +34 -5
  189. package/components/prefab/index.js +2 -4
  190. package/context/PrefabContext.js +10 -6
  191. package/context/WidgetProvider.js +30 -31
  192. package/core/app.service.js +1 -1
  193. package/core/constants/events.js +57 -1
  194. package/core/dialog.service.js +1 -2
  195. package/core/event-notifier.js +1 -2
  196. package/core/formatter/array-formatters.js +33 -0
  197. package/core/formatter/date-formatters.js +2 -4
  198. package/core/formatter/index.js +2 -1
  199. package/core/formatter/number-formatters.js +5 -10
  200. package/core/formatter/security-formatters.js +2 -4
  201. package/core/formatter/string-formatters.js +3 -6
  202. package/core/proxy-service.js +85 -13
  203. package/core/script-registry.js +108 -48
  204. package/core/util/common.js +4 -4
  205. package/core/util/compare.js +30 -0
  206. package/core/util/dom.js +8 -8
  207. package/core/util/index.js +16 -6
  208. package/core/util/safe-is-equal.js +156 -0
  209. package/core/util/security.js +1 -2
  210. package/core/util/utils.js +16 -7
  211. package/higherOrder/BaseApp.js +108 -65
  212. package/higherOrder/BaseDateTime.js +31 -13
  213. package/higherOrder/BasePage.js +268 -144
  214. package/higherOrder/BasePartial.js +1 -1
  215. package/higherOrder/BasePrefab.js +33 -15
  216. package/higherOrder/DataNav.js +99 -16
  217. package/higherOrder/helper.js +41 -3
  218. package/higherOrder/withBaseWrapper.js +41 -28
  219. package/hooks/useAuth.js +11 -5
  220. package/hooks/useHttp.js +280 -94
  221. package/mui-config/theme-provider.js +1 -1
  222. package/mui-config/theme.js +1 -1
  223. package/package-lock.json +840 -740
  224. package/package.json +8 -8
  225. package/store/bindActions/i18nActions.js +18 -0
  226. package/store/index.js +3 -1
  227. package/store/slices/appConfigSlice.js +2 -2
  228. package/store/slices/authSlice.js +31 -28
  229. package/store/slices/i18nSlice.js +2 -2
  230. package/store/slices/navigationSlice.js +35 -0
  231. package/store/viewport.service.js +255 -0
  232. package/utils/attr.js +35 -0
  233. package/utils/dataset-util.js +1 -2
  234. package/utils/form-state.util.js +43 -12
  235. package/utils/form-utils.js +47 -2
  236. package/utils/format-util.js +28 -13
  237. package/utils/page-params-util.js +33 -1
  238. package/utils/state-persistance.js +72 -13
  239. package/utils/transformedDataset-utils.js +35 -24
  240. package/variables/base-variable.js +12 -14
  241. package/variables/crud-variable.js +225 -0
  242. package/variables/live-variable.js +56 -20
  243. package/variables/metadata.service.js +123 -0
  244. package/variables/model-variable.js +21 -15
  245. package/variables/service-variable.js +88 -83
@@ -1,63 +1,123 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
- exports.clearOverriddenProps = clearOverriddenProps;
7
- exports.getWidgetOverrides = getWidgetOverrides;
8
- exports.isPropOverridden = isPropOverridden;
9
- exports.isWidgetOverridden = isWidgetOverridden;
10
- exports.overriddenProps = void 0;
11
- exports.trackOverriddenProps = trackOverriddenProps;
12
- exports.widgetIdOverriddenProps = void 0;
13
- // Global registry to track overridden properties
14
- var overriddenProps = exports.overriddenProps = {};
15
-
16
- // New: Widget-ID specific overrides
17
- var widgetIdOverriddenProps = exports.widgetIdOverriddenProps = {};
7
+ exports.OverriddenPropsRegistry = void 0;
8
+ exports.createOverriddenPropsRegistry = createOverriddenPropsRegistry;
9
+ exports.withSuspendedTracking = withSuspendedTracking;
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
18
13
  var IGNORED_PROPERTIES = ["name", "activePane", "activePaneIndex", "activeTab"];
19
14
 
20
- // Add a property to the registry
21
- function trackOverriddenProps(widgetName, propName, value, widgetId) {
22
- if (IGNORED_PROPERTIES.includes(propName)) return;
15
+ // Per-page registry instance class
16
+ var OverriddenPropsRegistry = exports.OverriddenPropsRegistry = /*#__PURE__*/function () {
17
+ function OverriddenPropsRegistry() {
18
+ (0, _classCallCheck2["default"])(this, OverriddenPropsRegistry);
19
+ (0, _defineProperty2["default"])(this, "overriddenProps", {});
20
+ (0, _defineProperty2["default"])(this, "widgetIdOverriddenProps", {});
21
+ (0, _defineProperty2["default"])(this, "_trackingSuspended", false);
22
+ }
23
+ return (0, _createClass2["default"])(OverriddenPropsRegistry, [{
24
+ key: "suspendTracking",
25
+ value:
26
+ // Suspend tracking (used during internal state updates like updateWidgetState)
27
+ function suspendTracking() {
28
+ this._trackingSuspended = true;
29
+ }
23
30
 
24
- // If widget-id is provided, use widget-id specific tracking
25
- if (widgetId) {
26
- if (!widgetIdOverriddenProps[widgetName]) {
27
- widgetIdOverriddenProps[widgetName] = {};
31
+ // Resume tracking
32
+ }, {
33
+ key: "resumeTracking",
34
+ value: function resumeTracking() {
35
+ this._trackingSuspended = false;
28
36
  }
29
- if (!widgetIdOverriddenProps[widgetName][widgetId]) {
30
- widgetIdOverriddenProps[widgetName][widgetId] = {};
37
+
38
+ // Check if tracking is currently suspended
39
+ }, {
40
+ key: "isTrackingSuspended",
41
+ value: function isTrackingSuspended() {
42
+ return this._trackingSuspended;
31
43
  }
32
- widgetIdOverriddenProps[widgetName][widgetId][propName] = value;
33
- } else {
34
- // Fallback to global registry for backward compatibility
35
- if (!overriddenProps[widgetName]) {
36
- overriddenProps[widgetName] = {};
44
+
45
+ // Add a property to the registry
46
+ }, {
47
+ key: "trackOverriddenProps",
48
+ value: function trackOverriddenProps(widgetName, propName, value, widgetId) {
49
+ if (this._trackingSuspended) return;
50
+ if (IGNORED_PROPERTIES.includes(propName)) return;
51
+
52
+ // If widget-id is provided, use widget-id specific tracking
53
+ if (widgetId) {
54
+ if (!this.widgetIdOverriddenProps[widgetName]) {
55
+ this.widgetIdOverriddenProps[widgetName] = {};
56
+ }
57
+ if (!this.widgetIdOverriddenProps[widgetName][widgetId]) {
58
+ this.widgetIdOverriddenProps[widgetName][widgetId] = {};
59
+ }
60
+ this.widgetIdOverriddenProps[widgetName][widgetId][propName] = value;
61
+ } else {
62
+ // Fallback to global registry for backward compatibility
63
+ if (!this.overriddenProps[widgetName]) {
64
+ this.overriddenProps[widgetName] = {};
65
+ }
66
+ this.overriddenProps[widgetName][propName] = value;
67
+ }
37
68
  }
38
- overriddenProps[widgetName][propName] = value;
39
- }
40
- }
41
69
 
42
- // Check if a property has been script-modified
43
- function isPropOverridden(widgetName, propName, widgetId) {
44
- var _widgetIdOverriddenPr, _overriddenProps$widg, _overriddenProps$widg2;
45
- var overriddenItem = ((_widgetIdOverriddenPr = widgetIdOverriddenProps[widgetName]) === null || _widgetIdOverriddenPr === void 0 || (_widgetIdOverriddenPr = _widgetIdOverriddenPr[widgetId]) === null || _widgetIdOverriddenPr === void 0 ? void 0 : _widgetIdOverriddenPr[propName]) || (((_overriddenProps$widg = overriddenProps[widgetName]) === null || _overriddenProps$widg === void 0 ? void 0 : _overriddenProps$widg[propName]) != undefined ? (_overriddenProps$widg2 = overriddenProps[widgetName]) === null || _overriddenProps$widg2 === void 0 ? void 0 : _overriddenProps$widg2[propName] : false);
46
- return overriddenItem !== undefined;
47
- }
48
- function isWidgetOverridden(widgetName, widgetId) {
49
- var _widgetIdOverriddenPr2;
50
- var overriddenItem = ((_widgetIdOverriddenPr2 = widgetIdOverriddenProps[widgetName]) === null || _widgetIdOverriddenPr2 === void 0 ? void 0 : _widgetIdOverriddenPr2[widgetId]) || overriddenProps[widgetName];
51
- return overriddenItem !== undefined;
52
- }
70
+ // Check if a property has been script-modified
71
+ }, {
72
+ key: "isPropOverridden",
73
+ value: function isPropOverridden(widgetName, propName, widgetId) {
74
+ var _this$widgetIdOverrid, _this$overriddenProps, _this$overriddenProps2;
75
+ var overriddenItem = ((_this$widgetIdOverrid = this.widgetIdOverriddenProps[widgetName]) === null || _this$widgetIdOverrid === void 0 || (_this$widgetIdOverrid = _this$widgetIdOverrid[widgetId]) === null || _this$widgetIdOverrid === void 0 ? void 0 : _this$widgetIdOverrid[propName]) || (((_this$overriddenProps = this.overriddenProps[widgetName]) === null || _this$overriddenProps === void 0 ? void 0 : _this$overriddenProps[propName]) != undefined ? (_this$overriddenProps2 = this.overriddenProps[widgetName]) === null || _this$overriddenProps2 === void 0 ? void 0 : _this$overriddenProps2[propName] : false);
76
+ return overriddenItem !== undefined;
77
+ }
78
+ }, {
79
+ key: "isWidgetOverridden",
80
+ value: function isWidgetOverridden(widgetName, widgetId) {
81
+ var _this$widgetIdOverrid2;
82
+ var overriddenItem = ((_this$widgetIdOverrid2 = this.widgetIdOverriddenProps[widgetName]) === null || _this$widgetIdOverrid2 === void 0 ? void 0 : _this$widgetIdOverrid2[widgetId]) || this.overriddenProps[widgetName];
83
+ return overriddenItem !== undefined;
84
+ }
53
85
 
54
- // Get widget-id specific overrides
55
- function getWidgetOverrides(widgetName, widgetId) {
56
- var _widgetIdOverriddenPr3;
57
- var overriddenItem = ((_widgetIdOverriddenPr3 = widgetIdOverriddenProps[widgetName]) === null || _widgetIdOverriddenPr3 === void 0 ? void 0 : _widgetIdOverriddenPr3[widgetId]) || overriddenProps[widgetName];
58
- return overriddenItem || {};
86
+ // Get widget-id specific overrides
87
+ }, {
88
+ key: "getWidgetOverrides",
89
+ value: function getWidgetOverrides(widgetName, widgetId) {
90
+ var _this$widgetIdOverrid3;
91
+ var overriddenItem = ((_this$widgetIdOverrid3 = this.widgetIdOverriddenProps[widgetName]) === null || _this$widgetIdOverrid3 === void 0 ? void 0 : _this$widgetIdOverrid3[widgetId]) || this.overriddenProps[widgetName];
92
+ return overriddenItem || {};
93
+ }
94
+ }, {
95
+ key: "clear",
96
+ value: function clear() {
97
+ this.overriddenProps = {};
98
+ this.widgetIdOverriddenProps = {};
99
+ }
100
+ }, {
101
+ key: "destroy",
102
+ value: function destroy(widgetName) {
103
+ delete this.overriddenProps[widgetName];
104
+ delete this.widgetIdOverriddenProps[widgetName];
105
+ }
106
+ }]);
107
+ }(); // Factory function to create a new registry instance
108
+ function createOverriddenPropsRegistry() {
109
+ return new OverriddenPropsRegistry();
59
110
  }
60
- function clearOverriddenProps() {
61
- exports.overriddenProps = overriddenProps = {};
62
- exports.widgetIdOverriddenProps = widgetIdOverriddenProps = {};
111
+
112
+ /**
113
+ * Utility to execute a callback with tracking suspended.
114
+ * Ensures tracking is always resumed even if the callback throws.
115
+ */
116
+ function withSuspendedTracking(registry, callback) {
117
+ registry === null || registry === void 0 || registry.suspendTracking();
118
+ try {
119
+ return callback();
120
+ } finally {
121
+ registry === null || registry === void 0 || registry.resumeTracking();
122
+ }
63
123
  }
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.deepCopy = void 0;
8
8
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
9
9
  var _lodashEs = require("lodash-es");
10
- var _deepCopy = function _deepCopy(o1) {
10
+ var _deepCopy2 = function _deepCopy(o1) {
11
11
  for (var _len = arguments.length, o2 = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
12
12
  o2[_key - 1] = arguments[_key];
13
13
  }
@@ -16,9 +16,9 @@ var _deepCopy = function _deepCopy(o1) {
16
16
  Object.keys(o).forEach(function (k) {
17
17
  var v = o[k];
18
18
  if (v && !(0, _lodashEs.isString)(v) && !(0, _lodashEs.isArray)(v) && (0, _typeof2["default"])(v) === "object") {
19
- o1[k] = _deepCopy(o1[k] || {}, o[k]);
19
+ o1[k] = _deepCopy2(o1[k] || {}, o[k]);
20
20
  } else {
21
- o1[k] = _deepCopy(v);
21
+ o1[k] = _deepCopy2(v);
22
22
  }
23
23
  });
24
24
  }
@@ -29,5 +29,5 @@ var deepCopy = exports.deepCopy = function deepCopy() {
29
29
  for (var _len2 = arguments.length, objects = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
30
30
  objects[_key2] = arguments[_key2];
31
31
  }
32
- return _deepCopy.apply(void 0, [{}].concat(objects));
32
+ return _deepCopy2.apply(void 0, [{}].concat(objects));
33
33
  };
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = compare;
8
+ var _isEqual = _interopRequireDefault(require("lodash-es/isEqual"));
9
+ function compare(prev, next) {
10
+ // Handle null/undefined cases
11
+ if (prev === next) {
12
+ return true;
13
+ }
14
+ if (!prev || !next) {
15
+ return false;
16
+ }
17
+ var keys = Object.keys(next);
18
+ return keys.every(function (key) {
19
+ var prevValue = prev[key];
20
+ var nextValue = next[key];
21
+
22
+ // If prev doesn't have this key but next does, they're different
23
+ if (!(key in prev) && nextValue !== undefined) {
24
+ return false;
25
+ }
26
+
27
+ // Use isEqual for deep comparison
28
+ return (0, _isEqual["default"])(prevValue, nextValue);
29
+ });
30
+ }
package/core/util/dom.js CHANGED
@@ -48,19 +48,19 @@ var isDOMElement = exports.isDOMElement = function isDOMElement(obj) {
48
48
  };
49
49
 
50
50
  // Create empty wrapper for when elements are not found (like empty jQuery object)
51
- var createEmptyWrapper = function createEmptyWrapper() {
51
+ var _createEmptyWrapper = function createEmptyWrapper() {
52
52
  return {
53
53
  0: null,
54
54
  length: 0,
55
55
  // Empty wrapper methods that do nothing (jQuery-like behavior)
56
56
  find: function find() {
57
- return createEmptyWrapper();
57
+ return _createEmptyWrapper();
58
58
  },
59
59
  attr: function attr() {
60
- return createEmptyWrapper();
60
+ return _createEmptyWrapper();
61
61
  },
62
62
  removeAttr: function removeAttr() {
63
- return createEmptyWrapper();
63
+ return _createEmptyWrapper();
64
64
  },
65
65
  get: function get() {
66
66
  return null;
@@ -69,9 +69,9 @@ var createEmptyWrapper = function createEmptyWrapper() {
69
69
  };
70
70
 
71
71
  // Minimal wrapper with essential jQuery methods that are actually used
72
- var wrapWithNativeDOM = exports.wrapWithNativeDOM = function wrapWithNativeDOM(element) {
72
+ var _wrapWithNativeDOM = exports.wrapWithNativeDOM = function wrapWithNativeDOM(element) {
73
73
  if (!element || !isDOMElement(element)) {
74
- return createEmptyWrapper();
74
+ return _createEmptyWrapper();
75
75
  }
76
76
 
77
77
  // Create wrapper object with essential jQuery methods
@@ -82,7 +82,7 @@ var wrapWithNativeDOM = exports.wrapWithNativeDOM = function wrapWithNativeDOM(e
82
82
  // Essential jQuery methods using native DOM
83
83
  find: function find(selector) {
84
84
  var found = element.querySelector(selector);
85
- return found ? wrapWithNativeDOM(found) : createEmptyWrapper();
85
+ return found ? _wrapWithNativeDOM(found) : _createEmptyWrapper();
86
86
  },
87
87
  attr: function attr(name, value) {
88
88
  if (value === undefined) {
@@ -104,4 +104,4 @@ var wrapWithNativeDOM = exports.wrapWithNativeDOM = function wrapWithNativeDOM(e
104
104
  };
105
105
 
106
106
  // Backward compatibility alias
107
- var wrapWithJQuery = exports.wrapWithJQuery = wrapWithNativeDOM;
107
+ var wrapWithJQuery = exports.wrapWithJQuery = _wrapWithNativeDOM;
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.formatMessage = exports.deepCopy = exports.checkPublicAccess = exports._get = exports.VALIDATOR = exports.MONTHNAMES = exports.MATCH_MODES = void 0;
8
8
  exports.getCurrentMonth = getCurrentMonth;
9
- exports.isDefined = exports.getValidJSON = exports.getSessionStorageItem = void 0;
9
+ exports.isDefined = exports.getValidJSON = exports.getTimezone = exports.getSessionStorageItem = void 0;
10
10
  exports.reload = reload;
11
- exports.toNumber = exports.setSessionStorageItem = exports.replace = void 0;
11
+ exports.toNumber = exports.toBoolean = exports.setSessionStorageItem = exports.replace = void 0;
12
12
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
13
  var _get2 = _interopRequireDefault(require("lodash-es/get"));
14
14
  var _store = require("@wavemaker/react-runtime/store");
@@ -63,6 +63,13 @@ var getSessionStorageItem = exports.getSessionStorageItem = function getSessionS
63
63
  return item[key];
64
64
  }
65
65
  };
66
+ var getTimezone = exports.getTimezone = function getTimezone() {
67
+ var timezone = _store.store.getState().i18n.timezone;
68
+ if ((0, _typeof2["default"])(timezone) === "object" && timezone !== null && "timezone" in timezone) {
69
+ return timezone["timezone"];
70
+ }
71
+ return timezone || "UTC";
72
+ };
66
73
  var formatMessage = exports.formatMessage = function formatMessage(fragment, expression) {
67
74
  return (0, _get2["default"])(fragment, "appLocale.".concat(expression), expression);
68
75
  };
@@ -78,7 +85,7 @@ var toNumber = exports.toNumber = function toNumber(value) {
78
85
  return Number(value);
79
86
  };
80
87
  var _get = exports._get = _get2["default"];
81
- var _deepCopy = function _deepCopy(o1) {
88
+ var _deepCopy2 = function _deepCopy(o1) {
82
89
  for (var _len = arguments.length, o2 = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
83
90
  o2[_key - 1] = arguments[_key];
84
91
  }
@@ -87,9 +94,9 @@ var _deepCopy = function _deepCopy(o1) {
87
94
  Object.keys(o).forEach(function (k) {
88
95
  var v = o[k];
89
96
  if (v && !(0, _lodashEs.isString)(v) && !(0, _lodashEs.isArray)(v) && (0, _typeof2["default"])(v) === "object") {
90
- o1[k] = _deepCopy(o1[k] || {}, o[k]);
97
+ o1[k] = _deepCopy2(o1[k] || {}, o[k]);
91
98
  } else {
92
- o1[k] = _deepCopy(v);
99
+ o1[k] = _deepCopy2(v);
93
100
  }
94
101
  });
95
102
  }
@@ -100,7 +107,7 @@ var deepCopy = exports.deepCopy = function deepCopy() {
100
107
  for (var _len2 = arguments.length, objects = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
101
108
  objects[_key2] = arguments[_key2];
102
109
  }
103
- return _deepCopy.apply(void 0, [{}].concat(objects));
110
+ return _deepCopy2.apply(void 0, [{}].concat(objects));
104
111
  };
105
112
  var getValidJSON = exports.getValidJSON = function getValidJSON(content) {
106
113
  if (!content) {
@@ -116,6 +123,9 @@ var getValidJSON = exports.getValidJSON = function getValidJSON(content) {
116
123
  var isDefined = exports.isDefined = function isDefined(v) {
117
124
  return typeof v !== "undefined";
118
125
  };
126
+ var toBoolean = exports.toBoolean = function toBoolean(v) {
127
+ return v === true || v === "true";
128
+ };
119
129
  var replace = exports.replace = function replace(template, map, parseError) {
120
130
  var regEx = /\$\{([^\}]+)\}/g;
121
131
  if (!template) {
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.safeIsEqual = void 0;
8
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
11
+ 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; } } }; }
12
+ 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; } }
13
+ 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; }
14
+ var isObjectLike = function isObjectLike(value) {
15
+ return (0, _typeof2["default"])(value) === "object" && value !== null;
16
+ };
17
+ var getComparableKeys = function getComparableKeys(value, ignored) {
18
+ return Object.keys(value).filter(function (key) {
19
+ return !ignored.has(key);
20
+ });
21
+ };
22
+ var safeIsEqual = exports.safeIsEqual = function safeIsEqual(value1, value2) {
23
+ var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 5;
24
+ var ignoreKeys = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ["listener"];
25
+ var ignoredKeys = new Set(ignoreKeys);
26
+ var visited = new WeakMap();
27
+ var hasVisitedPair = function hasVisitedPair(a, b) {
28
+ var _visited$get, _visited$get2;
29
+ return !!((_visited$get = visited.get(a)) !== null && _visited$get !== void 0 && _visited$get.get(b)) || !!((_visited$get2 = visited.get(b)) !== null && _visited$get2 !== void 0 && _visited$get2.get(a));
30
+ };
31
+ var markVisitedPair = function markVisitedPair(a, b) {
32
+ if (!visited.has(a)) {
33
+ visited.set(a, new WeakMap());
34
+ }
35
+ if (!visited.has(b)) {
36
+ visited.set(b, new WeakMap());
37
+ }
38
+ visited.get(a).set(b, true);
39
+ visited.get(b).set(a, true);
40
+ };
41
+ var _compare = function compare(a, b, currentDepth) {
42
+ if (Object.is(a, b)) {
43
+ return true;
44
+ }
45
+ if (currentDepth <= 0) {
46
+ return false;
47
+ }
48
+ if (!isObjectLike(a) || !isObjectLike(b)) {
49
+ return false;
50
+ }
51
+ if (hasVisitedPair(a, b)) {
52
+ return true;
53
+ }
54
+ markVisitedPair(a, b);
55
+ var aIsArray = Array.isArray(a);
56
+ var bIsArray = Array.isArray(b);
57
+ if (aIsArray || bIsArray) {
58
+ if (!(aIsArray && bIsArray)) {
59
+ return false;
60
+ }
61
+ if (a.length !== b.length) {
62
+ return false;
63
+ }
64
+ for (var i = 0; i < a.length; i += 1) {
65
+ if (!_compare(a[i], b[i], currentDepth - 1)) {
66
+ return false;
67
+ }
68
+ }
69
+ return true;
70
+ }
71
+ if (a instanceof Date && b instanceof Date) {
72
+ return a.getTime() === b.getTime();
73
+ }
74
+ if (a instanceof RegExp && b instanceof RegExp) {
75
+ return a.source === b.source && a.flags === b.flags;
76
+ }
77
+ if (a instanceof Map && b instanceof Map) {
78
+ if (a.size !== b.size) {
79
+ return false;
80
+ }
81
+ var _iterator = _createForOfIteratorHelper(a.entries()),
82
+ _step;
83
+ try {
84
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
85
+ var _step$value = (0, _slicedToArray2["default"])(_step.value, 2),
86
+ key = _step$value[0],
87
+ val = _step$value[1];
88
+ if (!b.has(key)) {
89
+ return false;
90
+ }
91
+ if (!_compare(val, b.get(key), currentDepth - 1)) {
92
+ return false;
93
+ }
94
+ }
95
+ } catch (err) {
96
+ _iterator.e(err);
97
+ } finally {
98
+ _iterator.f();
99
+ }
100
+ return true;
101
+ }
102
+ if (a instanceof Set && b instanceof Set) {
103
+ if (a.size !== b.size) {
104
+ return false;
105
+ }
106
+ var _iterator2 = _createForOfIteratorHelper(a.values()),
107
+ _step2;
108
+ try {
109
+ var _loop = function _loop() {
110
+ var val = _step2.value;
111
+ if (!(0, _toConsumableArray2["default"])(b).some(function (item) {
112
+ return _compare(val, item, currentDepth - 1);
113
+ })) {
114
+ return {
115
+ v: false
116
+ };
117
+ }
118
+ },
119
+ _ret;
120
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
121
+ _ret = _loop();
122
+ if (_ret) return _ret.v;
123
+ }
124
+ } catch (err) {
125
+ _iterator2.e(err);
126
+ } finally {
127
+ _iterator2.f();
128
+ }
129
+ return true;
130
+ }
131
+ var keysA = getComparableKeys(a, ignoredKeys);
132
+ var keysB = getComparableKeys(b, ignoredKeys);
133
+ if (keysA.length !== keysB.length) {
134
+ return false;
135
+ }
136
+ var _iterator3 = _createForOfIteratorHelper(keysA),
137
+ _step3;
138
+ try {
139
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
140
+ var _key = _step3.value;
141
+ if (!Object.prototype.hasOwnProperty.call(b, _key)) {
142
+ return false;
143
+ }
144
+ if (!_compare(a[_key], b[_key], currentDepth - 1)) {
145
+ return false;
146
+ }
147
+ }
148
+ } catch (err) {
149
+ _iterator3.e(err);
150
+ } finally {
151
+ _iterator3.f();
152
+ }
153
+ return true;
154
+ };
155
+ return _compare(value1, value2, Math.max(0, depth));
156
+ };
@@ -30,7 +30,7 @@ var SecurityService = exports.SecurityService = /*#__PURE__*/function () {
30
30
  function SecurityService() {
31
31
  (0, _classCallCheck2["default"])(this, SecurityService);
32
32
  } // Private constructor to enforce singleton
33
- (0, _createClass2["default"])(SecurityService, [{
33
+ return (0, _createClass2["default"])(SecurityService, [{
34
34
  key: "sanitizeHtml",
35
35
  value:
36
36
  /**
@@ -131,7 +131,6 @@ var SecurityService = exports.SecurityService = /*#__PURE__*/function () {
131
131
  return SecurityService.instance;
132
132
  }
133
133
  }]);
134
- return SecurityService;
135
134
  }(); // Create hooks for easy use in React components
136
135
  _SecurityService = SecurityService;
137
136
  (0, _defineProperty2["default"])(SecurityService, "instance", void 0);
@@ -4,7 +4,9 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.triggerItemAction = exports.openLink = exports.isJQueryError = exports.isInsecureContentRequest = exports.getUrlParams = exports.getRouteNameFromLink = exports.getItemLink = exports.getCurrentPath = exports.Utils = void 0;
7
+ exports.getUrlParams = exports.getRouteNameFromLink = exports.getItemLink = exports.getCurrentPath = exports.Utils = void 0;
8
+ exports.hasOwnObjectProperty = hasOwnObjectProperty;
9
+ exports.triggerItemAction = exports.openLink = exports.isJQueryError = exports.isInsecureContentRequest = void 0;
8
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
11
  var _navigationMiddleware = require("@wavemaker/react-runtime/store/middleware/navigationMiddleware");
10
12
  var _constants = require("../constants");
@@ -161,12 +163,12 @@ var triggerItemAction = exports.triggerItemAction = function triggerItemAction(i
161
163
  var router = (0, _navigationMiddleware.getRouterInstance)();
162
164
  var originalLink = item === null || item === void 0 ? void 0 : item.link;
163
165
  var linkTarget = item === null || item === void 0 ? void 0 : item.target;
164
- if (!originalLink || originalLink === "#" || originalLink === "javascript:void(0)") {
166
+ if (typeof originalLink === "function" || !originalLink || originalLink === "#" || originalLink === "javascript:void(0)") {
165
167
  return; // No navigation needed
166
168
  }
167
169
 
168
170
  // Check if it's an internal navigation link (starts with # but not external)
169
- if (originalLink.startsWith("#") && (!linkTarget || linkTarget === "_self")) {
171
+ if (originalLink !== null && originalLink !== void 0 && originalLink.startsWith("#") && (!linkTarget || linkTarget === "_self")) {
170
172
  // Internal navigation - handle both "#/page" and "#page" formats
171
173
  var queryParams = getUrlParams(originalLink);
172
174
  var routeName = getRouteNameFromLink(originalLink);
@@ -192,10 +194,10 @@ var triggerItemAction = exports.triggerItemAction = function triggerItemAction(i
192
194
  } else {
193
195
  router === null || router === void 0 || router.push(routeName);
194
196
  }
195
- } else {
197
+ } else if (linkTarget || originalLink) {
196
198
  // External link or link with different target
197
199
  // For external links, use as-is (don't apply hyperLinkMofify)
198
- openLink(originalLink, linkTarget);
200
+ openLink(originalLink, linkTarget || "");
199
201
  }
200
202
  };
201
203
  var getCurrentPath = exports.getCurrentPath = function getCurrentPath() {
@@ -204,5 +206,12 @@ var getCurrentPath = exports.getCurrentPath = function getCurrentPath() {
204
206
  };
205
207
  var getItemLink = exports.getItemLink = function getItemLink(item, props) {
206
208
  var linkProperty = props.itemlink || "link";
207
- return item[linkProperty];
208
- };
209
+ if (typeof item[linkProperty] === "function") {
210
+ return item[linkProperty]();
211
+ } else {
212
+ return item[linkProperty];
213
+ }
214
+ };
215
+ function hasOwnObjectProperty(obj, prop) {
216
+ return Object.prototype.hasOwnProperty.call(obj, prop);
217
+ }