@wavemaker/react-runtime 11.14.3-rc.6401 → 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 +307 -266
  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
@@ -12,12 +12,14 @@ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
12
12
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
13
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
14
14
  var _lodash = require("lodash");
15
+ var _types = require("@wavemaker/react-runtime/components/data/types");
16
+ // import { DataSource } from "../../data/types";
15
17
  // Enhanced LocalDataProvider with React Native logic
16
18
  var LocalDataProvider = exports.LocalDataProvider = /*#__PURE__*/function () {
17
19
  function LocalDataProvider() {
18
20
  (0, _classCallCheck2["default"])(this, LocalDataProvider);
19
21
  }
20
- (0, _createClass2["default"])(LocalDataProvider, [{
22
+ return (0, _createClass2["default"])(LocalDataProvider, [{
21
23
  key: "createEmptyResult",
22
24
  value: function createEmptyResult() {
23
25
  return {
@@ -40,7 +42,12 @@ var LocalDataProvider = exports.LocalDataProvider = /*#__PURE__*/function () {
40
42
  var queryText = typeof config.query === "string" ? config.query : "";
41
43
  var searchKey = config.searchKey,
42
44
  _config$casesensitive = config.casesensitive,
43
- casesensitive = _config$casesensitive === void 0 ? false : _config$casesensitive;
45
+ casesensitive = _config$casesensitive === void 0 ? false : _config$casesensitive,
46
+ matchMode = config.matchMode,
47
+ groupby = config.groupby,
48
+ limit = config.limit,
49
+ orderby = config.orderby;
50
+ var isCaseSensitive = matchMode && !(0, _lodash.includes)(matchMode, "ignorecase") ? true : casesensitive;
44
51
  var filteredData = [];
45
52
  return new Promise(function (resolve) {
46
53
  // If searchkey is defined, then check for match string against each item in the dataset
@@ -70,11 +77,11 @@ var LocalDataProvider = exports.LocalDataProvider = /*#__PURE__*/function () {
70
77
  return keys.some(function (key) {
71
78
  var a = (0, _lodash.get)(item.dataObject || item, key);
72
79
  var b = queryText;
73
- if (!casesensitive) {
80
+ if (!isCaseSensitive) {
74
81
  a = (0, _lodash.toLower)(String(a));
75
82
  b = (0, _lodash.toLower)(String(b));
76
83
  }
77
- return _this.applyFilter(a, b);
84
+ return matchMode ? _this.applyMatchMode(String(a), String(b), matchMode) : _this.applyFilter(a, b);
78
85
  });
79
86
  });
80
87
  } else {
@@ -87,45 +94,71 @@ var LocalDataProvider = exports.LocalDataProvider = /*#__PURE__*/function () {
87
94
  filteredData = (0, _lodash.filter)(entries, function (entry) {
88
95
  var dataObj = entry.dataObject || entry;
89
96
  var a = (0, _lodash.isString)(dataObj) ? dataObj : (0, _lodash.values)(dataObj).join(" ");
90
- if (!casesensitive) {
97
+ if (!isCaseSensitive) {
91
98
  a = (0, _lodash.toLower)(String(a));
92
99
  queryText = (0, _lodash.toLower)(String(queryText));
93
100
  }
94
- return _this.applyFilter(a, queryText);
101
+ return matchMode ? _this.applyMatchMode(String(a), String(queryText), matchMode, groupby) : _this.applyFilter(a, queryText);
95
102
  });
96
103
  } else if ((0, _lodash.isObject)(entries[0])) {
97
104
  // Handle regular object array
98
105
  filteredData = (0, _lodash.filter)(entries, function (entry) {
99
106
  var dataObj = entry.dataObject || entry;
100
107
  var a = (0, _lodash.isString)(dataObj) ? dataObj : (0, _lodash.values)(dataObj).join(" ");
101
- if (!casesensitive) {
108
+ if (!isCaseSensitive) {
102
109
  a = (0, _lodash.toLower)(String(a));
103
110
  queryText = (0, _lodash.toLower)(String(queryText));
104
111
  }
105
- return _this.applyFilter(a, queryText);
112
+ return matchMode ? _this.applyMatchMode(String(a), String(queryText), matchMode) : _this.applyFilter(a, queryText);
106
113
  });
107
114
  } else {
108
115
  // Handle primitive values
109
116
  filteredData = (0, _lodash.filter)(entries, function (entry) {
110
117
  var entryValue = entry;
111
- if (!casesensitive) {
118
+ if (!isCaseSensitive) {
112
119
  entryValue = (0, _lodash.toLower)(String(entryValue));
113
120
  queryText = (0, _lodash.toLower)(String(queryText));
114
121
  }
115
- return _this.applyFilter(entryValue, queryText);
122
+ return matchMode ? _this.applyMatchMode(String(entryValue), String(queryText), matchMode) : _this.applyFilter(entryValue, queryText);
116
123
  });
117
124
  }
118
125
  } else {
119
126
  filteredData = (0, _lodash.filter)(entries, function (entry) {
120
127
  var entryValue = entry;
121
- if (!casesensitive) {
128
+ if (!isCaseSensitive) {
122
129
  entryValue = (0, _lodash.toLower)(String(entryValue));
123
130
  queryText = (0, _lodash.toLower)(String(queryText));
124
131
  }
125
- return _this.applyFilter(entryValue, queryText);
132
+ return matchMode ? _this.applyMatchMode(String(entryValue), String(queryText), matchMode) : _this.applyFilter(entryValue, queryText);
126
133
  });
127
134
  }
128
135
  }
136
+
137
+ // Apply orderby if provided
138
+ if (orderby && filteredData.length > 0) {
139
+ var _orderParts$, _orderParts$2;
140
+ var orderParts = (0, _lodash.split)(orderby, ":");
141
+ var orderField = (_orderParts$ = orderParts[0]) === null || _orderParts$ === void 0 ? void 0 : _orderParts$.trim();
142
+ var orderDirection = ((_orderParts$2 = orderParts[1]) === null || _orderParts$2 === void 0 ? void 0 : _orderParts$2.trim().toLowerCase()) || "asc";
143
+ if (orderField) {
144
+ filteredData = (0, _lodash.orderBy)(filteredData, function (item) {
145
+ // Handle normalized format with dataObject
146
+ var dataObj = item.dataObject || item;
147
+ var value = (0, _lodash.get)(dataObj, orderField);
148
+ // Handle numeric values for proper sorting
149
+ if ((0, _lodash.isNumber)(value)) {
150
+ return value;
151
+ }
152
+ // Convert to string for consistent sorting
153
+ return String(value || "").toLowerCase();
154
+ }, [orderDirection]);
155
+ }
156
+ }
157
+
158
+ // Apply limit if provided
159
+ if (limit && (0, _lodash.isNumber)(limit) && limit > 0) {
160
+ filteredData = filteredData.slice(0, limit);
161
+ }
129
162
  resolve({
130
163
  data: filteredData,
131
164
  hasMoreData: false,
@@ -192,9 +225,9 @@ var LocalDataProvider = exports.LocalDataProvider = /*#__PURE__*/function () {
192
225
  }
193
226
  }, {
194
227
  key: "applyMatchMode",
195
- value: function applyMatchMode(entry, queryText, matchMode) {
228
+ value: function applyMatchMode(entry, queryText, matchMode, groupby) {
196
229
  if (!queryText) return true;
197
- if (matchMode !== null && matchMode !== void 0 && matchMode.includes("start")) {
230
+ if (matchMode !== null && matchMode !== void 0 && matchMode.includes("start") && !(groupby && (0, _lodash.includes)(matchMode, "ignorecase"))) {
198
231
  return entry.startsWith(queryText);
199
232
  }
200
233
  if (matchMode !== null && matchMode !== void 0 && matchMode.includes("end")) {
@@ -203,23 +236,27 @@ var LocalDataProvider = exports.LocalDataProvider = /*#__PURE__*/function () {
203
236
  if (matchMode !== null && matchMode !== void 0 && matchMode.includes("exact")) {
204
237
  return entry === queryText;
205
238
  }
239
+ if (matchMode === "contains") {
240
+ return entry.toLowerCase().includes(queryText.toLowerCase());
241
+ }
206
242
  return entry.includes(queryText);
207
243
  }
208
244
  }]);
209
- return LocalDataProvider;
210
245
  }(); // Enhanced DataProvider with React Native logic
211
246
  var DataProvider = exports.DataProvider = /*#__PURE__*/function () {
212
247
  function DataProvider() {
213
248
  (0, _classCallCheck2["default"])(this, DataProvider);
214
249
  (0, _defineProperty2["default"])(this, "localDataProvider", new LocalDataProvider());
215
250
  }
216
- (0, _createClass2["default"])(DataProvider, [{
251
+ return (0, _createClass2["default"])(DataProvider, [{
217
252
  key: "init",
218
253
  value:
219
254
  // Check if the variable is of type service variable and whether update is required
220
255
  function init(component) {
221
- if (component !== null && component !== void 0 && component.isUpdateRequired) {
222
- return component === null || component === void 0 ? void 0 : component.isUpdateRequired();
256
+ var datasource = component === null || component === void 0 ? void 0 : component.datasource;
257
+ if (datasource) {
258
+ var _datasource$serviceIn, _datasource$serviceIn2;
259
+ return datasource.execute(_types.DataSource.Operation.IS_PAGEABLE) || ((_datasource$serviceIn = datasource === null || datasource === void 0 || (_datasource$serviceIn2 = datasource.serviceInfo) === null || _datasource$serviceIn2 === void 0 || (_datasource$serviceIn2 = _datasource$serviceIn2.parameters) === null || _datasource$serviceIn2 === void 0 ? void 0 : _datasource$serviceIn2.length) !== null && _datasource$serviceIn !== void 0 ? _datasource$serviceIn : 0) > 0;
223
260
  }
224
261
  return false;
225
262
  }
@@ -228,10 +265,10 @@ var DataProvider = exports.DataProvider = /*#__PURE__*/function () {
228
265
  }, {
229
266
  key: "invokeVariable",
230
267
  value: function () {
231
- var _invokeVariable = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(component, query) {
232
- var paramsObj;
233
- return _regenerator["default"].wrap(function _callee$(_context) {
234
- while (1) switch (_context.prev = _context.next) {
268
+ var _invokeVariable = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(component, query) {
269
+ var paramsObj, datasource, dataSource;
270
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
271
+ while (1) switch (_context2.prev = _context2.next) {
235
272
  case 0:
236
273
  paramsObj = null;
237
274
  if (component !== null && component !== void 0 && component.searchkey) {
@@ -242,26 +279,55 @@ var DataProvider = exports.DataProvider = /*#__PURE__*/function () {
242
279
  paramsObj[k] = query;
243
280
  });
244
281
  }
245
-
246
- // Use the onQuerySearch callback if available
247
- if (!(component !== null && component !== void 0 && component.onQuerySearch)) {
248
- _context.next = 4;
282
+ datasource = component === null || component === void 0 ? void 0 : component.datasource;
283
+ if (!datasource) {
284
+ _context2.next = 8;
249
285
  break;
250
286
  }
251
- return _context.abrupt("return", new Promise(function (resolve, reject) {
252
- component === null || component === void 0 || component.onQuerySearch(paramsObj, function (response) {
253
- return resolve(response);
254
- }, function (error) {
255
- return reject(error);
256
- });
257
- }));
258
- case 4:
259
- return _context.abrupt("return", Promise.resolve());
260
- case 5:
287
+ if (datasource.category === "wm.LiveVariable") {
288
+ // datasource.setFilter(paramsObj);
289
+ } else {
290
+ datasource.setInput(paramsObj);
291
+ }
292
+ dataSource = datasource;
293
+ if (component !== null && component !== void 0 && component.onBeforeservicecall) {
294
+ component.onBeforeservicecall(component, paramsObj);
295
+ }
296
+ return _context2.abrupt("return", new Promise(/*#__PURE__*/function () {
297
+ var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(resolve, reject) {
298
+ var result;
299
+ return _regenerator["default"].wrap(function _callee$(_context) {
300
+ while (1) switch (_context.prev = _context.next) {
301
+ case 0:
302
+ _context.prev = 0;
303
+ _context.next = 3;
304
+ return dataSource.execute(_types.DataSource.Operation.SEARCH_RECORDS, component);
305
+ case 3:
306
+ result = _context.sent;
307
+ resolve((result === null || result === void 0 ? void 0 : result.data) || []);
308
+ _context.next = 10;
309
+ break;
310
+ case 7:
311
+ _context.prev = 7;
312
+ _context.t0 = _context["catch"](0);
313
+ resolve([]);
314
+ case 10:
315
+ case "end":
316
+ return _context.stop();
317
+ }
318
+ }, _callee, null, [[0, 7]]);
319
+ }));
320
+ return function (_x3, _x4) {
321
+ return _ref.apply(this, arguments);
322
+ };
323
+ }()));
324
+ case 8:
325
+ return _context2.abrupt("return", Promise.resolve());
326
+ case 9:
261
327
  case "end":
262
- return _context.stop();
328
+ return _context2.stop();
263
329
  }
264
- }, _callee);
330
+ }, _callee2);
265
331
  }));
266
332
  function invokeVariable(_x, _x2) {
267
333
  return _invokeVariable.apply(this, arguments);
@@ -271,42 +337,42 @@ var DataProvider = exports.DataProvider = /*#__PURE__*/function () {
271
337
  }, {
272
338
  key: "filter",
273
339
  value: function () {
274
- var _filter2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(config) {
340
+ var _filter2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3(config) {
275
341
  var searchKey, keys, updateRequired, response, dataSet;
276
- return _regenerator["default"].wrap(function _callee2$(_context2) {
277
- while (1) switch (_context2.prev = _context2.next) {
342
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
343
+ while (1) switch (_context3.prev = _context3.next) {
278
344
  case 0:
279
345
  searchKey = config.searchKey; // If searchkey is provided, check if we need to make an API call
280
346
  if (!searchKey) {
281
- _context2.next = 22;
347
+ _context3.next = 22;
282
348
  break;
283
349
  }
284
350
  keys = (0, _lodash.split)(searchKey, ",");
285
351
  if (!(keys.length && config.component)) {
286
- _context2.next = 22;
352
+ _context3.next = 22;
287
353
  break;
288
354
  }
289
355
  // Check if update is required for service variables
290
356
  updateRequired = this.init(config.component);
291
357
  if (!updateRequired) {
292
- _context2.next = 22;
358
+ _context3.next = 22;
293
359
  break;
294
360
  }
295
- _context2.prev = 6;
296
- _context2.next = 9;
361
+ _context3.prev = 6;
362
+ _context3.next = 9;
297
363
  return this.invokeVariable(config.component, config.query || "");
298
364
  case 9:
299
- response = _context2.sent;
365
+ response = _context3.sent;
300
366
  if (!response) {
301
- _context2.next = 16;
367
+ _context3.next = 16;
302
368
  break;
303
369
  }
304
370
  dataSet = response.dataSet || response;
305
371
  if (!(0, _lodash.isEmpty)(dataSet)) {
306
- _context2.next = 14;
372
+ _context3.next = 14;
307
373
  break;
308
374
  }
309
- return _context2.abrupt("return", {
375
+ return _context3.abrupt("return", {
310
376
  data: [],
311
377
  hasMoreData: false,
312
378
  isLastPage: true
@@ -315,36 +381,35 @@ var DataProvider = exports.DataProvider = /*#__PURE__*/function () {
315
381
  if ((0, _lodash.isObject)(dataSet) && !(0, _lodash.isArray)(dataSet)) {
316
382
  dataSet = [dataSet];
317
383
  }
318
- return _context2.abrupt("return", {
384
+ return _context3.abrupt("return", {
319
385
  data: dataSet,
320
386
  hasMoreData: false,
321
387
  isLastPage: true
322
388
  });
323
389
  case 16:
324
- _context2.next = 22;
390
+ _context3.next = 22;
325
391
  break;
326
392
  case 18:
327
- _context2.prev = 18;
328
- _context2.t0 = _context2["catch"](6);
329
- console.error("API call failed:", _context2.t0);
330
- return _context2.abrupt("return", {
393
+ _context3.prev = 18;
394
+ _context3.t0 = _context3["catch"](6);
395
+ console.error("API call failed:", _context3.t0);
396
+ return _context3.abrupt("return", {
331
397
  data: [],
332
398
  hasMoreData: false,
333
399
  isLastPage: true
334
400
  });
335
401
  case 22:
336
- return _context2.abrupt("return", this.localDataProvider.filter(config));
402
+ return _context3.abrupt("return", this.localDataProvider.filter(config));
337
403
  case 23:
338
404
  case "end":
339
- return _context2.stop();
405
+ return _context3.stop();
340
406
  }
341
- }, _callee2, this, [[6, 18]]);
407
+ }, _callee3, this, [[6, 18]]);
342
408
  }));
343
- function filter(_x3) {
409
+ function filter(_x5) {
344
410
  return _filter2.apply(this, arguments);
345
411
  }
346
412
  return filter;
347
413
  }()
348
414
  }]);
349
- return DataProvider;
350
415
  }();
@@ -178,7 +178,8 @@ var WmSpinner = exports.WmSpinner = /*#__PURE__*/(0, _react.memo)(function (prop
178
178
  "aria-label": arialabel,
179
179
  role: "alert",
180
180
  "aria-live": "polite",
181
- "aria-busy": "true"
181
+ "aria-busy": "true",
182
+ hidden: props.hidden
182
183
  }, __jsx(_Box["default"], {
183
184
  className: "spinner-message"
184
185
  }, renderSpinnerContent(), shouldShowStaticCaption && __jsx(_Typography["default"], {
@@ -114,8 +114,9 @@ var WmTree = function WmTree(props) {
114
114
  }
115
115
  };
116
116
  if ((0, _isArray["default"])(newVal)) {
117
- return newVal.map(function (item, index) {
118
- return (0, _utils.processNode)(item, 0, undefined, newVal, index, name, processNodeOptions);
117
+ var ordered = orderby ? (0, _transformedDatasetUtils.getOrderedDataset)(newVal, orderby) : newVal;
118
+ return ordered.map(function (item, index) {
119
+ return (0, _utils.processNode)(item, 0, undefined, ordered, index, name, processNodeOptions);
119
120
  });
120
121
  } else if ((0, _isObject["default"])(newVal) && newVal !== null) {
121
122
  return [(0, _utils.processNode)(newVal, 0, undefined, [newVal], 0, name, processNodeOptions)];
@@ -123,7 +124,7 @@ var WmTree = function WmTree(props) {
123
124
  return getNodesFromString(newVal.trim());
124
125
  }
125
126
  return [];
126
- }, [getNodesFromString, levels, nodelabel, nodeicon, nodechildren, nodeid, name]);
127
+ }, [getNodesFromString, levels, nodelabel, nodeicon, nodechildren, nodeid, name, orderby]);
127
128
 
128
129
  // Get path to node (for event callbacks)
129
130
  var getPath = (0, _react.useCallback)(function (node) {
@@ -147,20 +148,20 @@ var WmTree = function WmTree(props) {
147
148
  });
148
149
 
149
150
  // Update the node in the tree
150
- var updateNodeInTree = function updateNodeInTree(nodes, targetNode) {
151
+ var _updateNodeInTree = function updateNodeInTree(nodes, targetNode) {
151
152
  return nodes.map(function (n) {
152
153
  var _n$children;
153
154
  if (n.nodeId === targetNode.nodeId) {
154
155
  return updatedNode;
155
156
  } else if ((_n$children = n.children) !== null && _n$children !== void 0 && _n$children.length) {
156
157
  return _objectSpread(_objectSpread({}, n), {}, {
157
- children: updateNodeInTree(n.children, targetNode)
158
+ children: _updateNodeInTree(n.children, targetNode)
158
159
  });
159
160
  }
160
161
  return n;
161
162
  });
162
163
  };
163
- var updatedNodes = updateNodeInTree(treeNodes, node);
164
+ var updatedNodes = _updateNodeInTree(treeNodes, node);
164
165
  setTreeNodes(updatedNodes);
165
166
  var path = getPath(node);
166
167
  if (updatedNode.open) {
@@ -200,7 +201,7 @@ var WmTree = function WmTree(props) {
200
201
  var newCheckedState = !node.checked;
201
202
 
202
203
  // Update the tree with cascading effect
203
- var updateCheckedState = function updateCheckedState(nodes, nodeId, checked) {
204
+ var _updateCheckedState = function updateCheckedState(nodes, nodeId, checked) {
204
205
  return nodes.map(function (node) {
205
206
  var _node$children3;
206
207
  if (node.nodeId === nodeId) {
@@ -212,7 +213,7 @@ var WmTree = function WmTree(props) {
212
213
 
213
214
  // Update all children recursively if any
214
215
  if ((_node$children2 = node.children) !== null && _node$children2 !== void 0 && _node$children2.length) {
215
- updatedNode.children = updateAllChildrenChecked(node.children, checked);
216
+ updatedNode.children = _updateAllChildrenChecked(node.children, checked);
216
217
  }
217
218
 
218
219
  // Also update the data object to maintain consistency
@@ -224,7 +225,7 @@ var WmTree = function WmTree(props) {
224
225
  return updatedNode;
225
226
  } else if ((_node$children3 = node.children) !== null && _node$children3 !== void 0 && _node$children3.length) {
226
227
  // Check if the target node is in the children
227
- var updatedChildren = updateCheckedState(node.children, nodeId, checked);
228
+ var updatedChildren = _updateCheckedState(node.children, nodeId, checked);
228
229
 
229
230
  // Check if all children are checked or unchecked to update parent accordingly
230
231
  var allChildrenChecked = updatedChildren.every(function (child) {
@@ -252,12 +253,12 @@ var WmTree = function WmTree(props) {
252
253
  };
253
254
 
254
255
  // Helper function to set all children to the same checked state
255
- var updateAllChildrenChecked = function updateAllChildrenChecked(nodes, checked) {
256
+ var _updateAllChildrenChecked = function updateAllChildrenChecked(nodes, checked) {
256
257
  return nodes.map(function (node) {
257
258
  var _node$children4;
258
259
  var updatedNode = _objectSpread(_objectSpread({}, node), {}, {
259
260
  checked: checked,
260
- children: (_node$children4 = node.children) !== null && _node$children4 !== void 0 && _node$children4.length ? updateAllChildrenChecked(node.children, checked) : node.children
261
+ children: (_node$children4 = node.children) !== null && _node$children4 !== void 0 && _node$children4.length ? _updateAllChildrenChecked(node.children, checked) : node.children
261
262
  });
262
263
 
263
264
  // Update the data object to maintain consistency
@@ -269,7 +270,7 @@ var WmTree = function WmTree(props) {
269
270
  return updatedNode;
270
271
  });
271
272
  };
272
- var updatedNodes = updateCheckedState(treeNodes, node.nodeId, newCheckedState);
273
+ var updatedNodes = _updateCheckedState(treeNodes, node.nodeId, newCheckedState);
273
274
  setTreeNodes(updatedNodes);
274
275
  if (onCheck) {
275
276
  onCheck(event, undefined, node.data, newCheckedState);
@@ -289,7 +290,7 @@ var WmTree = function WmTree(props) {
289
290
  setRadioSelectedNodeId(node.nodeId);
290
291
 
291
292
  // Update all nodes in the tree to set the correct radio state
292
- var updateRadioState = function updateRadioState(nodes, selectedNodeId) {
293
+ var _updateRadioState = function updateRadioState(nodes, selectedNodeId) {
293
294
  return nodes.map(function (node) {
294
295
  var _node$children5;
295
296
  var isChecked = node.nodeId === selectedNodeId;
@@ -308,12 +309,12 @@ var WmTree = function WmTree(props) {
308
309
 
309
310
  // Update children recursively if any
310
311
  if ((_node$children5 = node.children) !== null && _node$children5 !== void 0 && _node$children5.length) {
311
- updatedNode.children = updateRadioState(node.children, selectedNodeId);
312
+ updatedNode.children = _updateRadioState(node.children, selectedNodeId);
312
313
  }
313
314
  return updatedNode;
314
315
  });
315
316
  };
316
- var updatedNodes = updateRadioState(treeNodes, node.nodeId);
317
+ var updatedNodes = _updateRadioState(treeNodes, node.nodeId);
317
318
  setTreeNodes(updatedNodes);
318
319
  if (onCheck) {
319
320
  onCheck(event, undefined, node.data, true);
@@ -331,7 +332,7 @@ var WmTree = function WmTree(props) {
331
332
  selectNode(undefined, node);
332
333
  if (isRadioTree) {
333
334
  setRadioSelectedNodeId(node.nodeId);
334
- var updateRadioState = function updateRadioState(nodes, selectedNodeId) {
335
+ var _updateRadioState2 = function updateRadioState(nodes, selectedNodeId) {
335
336
  return nodes.map(function (node) {
336
337
  var _node$children6;
337
338
  var isChecked = node.nodeId === selectedNodeId;
@@ -344,12 +345,12 @@ var WmTree = function WmTree(props) {
344
345
  });
345
346
  }
346
347
  if ((_node$children6 = node.children) !== null && _node$children6 !== void 0 && _node$children6.length) {
347
- updatedNode.children = updateRadioState(node.children, selectedNodeId);
348
+ updatedNode.children = _updateRadioState2(node.children, selectedNodeId);
348
349
  }
349
350
  return updatedNode;
350
351
  });
351
352
  };
352
- var updatedNodes = updateRadioState(treeNodes, node.nodeId);
353
+ var updatedNodes = _updateRadioState2(treeNodes, node.nodeId);
353
354
  setTreeNodes(updatedNodes);
354
355
  }
355
356
  var currentNode = node.parent;
@@ -359,7 +360,7 @@ var WmTree = function WmTree(props) {
359
360
  currentNode = currentNode.parent;
360
361
  }
361
362
  if (nodesToExpand.length) {
362
- var updateNodeOpenState = function updateNodeOpenState(nodes, nodesToExpand) {
363
+ var _updateNodeOpenState = function updateNodeOpenState(nodes, nodesToExpand) {
363
364
  return nodes.map(function (node) {
364
365
  var _node$children7;
365
366
  if (nodesToExpand.some(function (n) {
@@ -367,17 +368,17 @@ var WmTree = function WmTree(props) {
367
368
  })) {
368
369
  return _objectSpread(_objectSpread({}, node), {}, {
369
370
  open: true,
370
- children: node.children ? updateNodeOpenState(node.children, nodesToExpand) : undefined
371
+ children: node.children ? _updateNodeOpenState(node.children, nodesToExpand) : undefined
371
372
  });
372
373
  } else if ((_node$children7 = node.children) !== null && _node$children7 !== void 0 && _node$children7.length) {
373
374
  return _objectSpread(_objectSpread({}, node), {}, {
374
- children: updateNodeOpenState(node.children, nodesToExpand)
375
+ children: _updateNodeOpenState(node.children, nodesToExpand)
375
376
  });
376
377
  }
377
378
  return node;
378
379
  });
379
380
  };
380
- var _updatedNodes = updateNodeOpenState(treeNodes, nodesToExpand);
381
+ var _updatedNodes = _updateNodeOpenState(treeNodes, nodesToExpand);
381
382
  setTreeNodes(_updatedNodes);
382
383
  }
383
384
  }
@@ -386,12 +387,12 @@ var WmTree = function WmTree(props) {
386
387
  setSelectedItem(null);
387
388
  if (isRadioTree) {
388
389
  setRadioSelectedNodeId(null);
389
- var clearCheckedState = function clearCheckedState(nodes) {
390
+ var _clearCheckedState = function clearCheckedState(nodes) {
390
391
  return nodes.map(function (node) {
391
392
  var _node$children8;
392
393
  var updatedNode = _objectSpread(_objectSpread({}, node), {}, {
393
394
  checked: false,
394
- children: (_node$children8 = node.children) !== null && _node$children8 !== void 0 && _node$children8.length ? clearCheckedState(node.children) : node.children
395
+ children: (_node$children8 = node.children) !== null && _node$children8 !== void 0 && _node$children8.length ? _clearCheckedState(node.children) : node.children
395
396
  });
396
397
  if (updatedNode.data) {
397
398
  updatedNode.data = _objectSpread(_objectSpread({}, updatedNode.data), {}, {
@@ -401,14 +402,12 @@ var WmTree = function WmTree(props) {
401
402
  return updatedNode;
402
403
  });
403
404
  };
404
- setTreeNodes(clearCheckedState(treeNodes));
405
+ setTreeNodes(_clearCheckedState(treeNodes));
405
406
  }
406
407
  }, [isRadioTree]);
407
-
408
- // Memoized sorted nodes to avoid re-sorting on every render
409
408
  var sortedTreeNodes = (0, _react.useMemo)(function () {
410
- return orderby ? (0, _transformedDatasetUtils.getOrderedDataset)(treeNodes, orderby) : treeNodes;
411
- }, [orderby, treeNodes]);
409
+ return treeNodes;
410
+ }, [treeNodes]);
412
411
 
413
412
  // Process dataset when it changes
414
413
  (0, _react.useEffect)(function () {
@@ -436,23 +435,23 @@ var WmTree = function WmTree(props) {
436
435
  var _targetNode$children;
437
436
  selectNode(undefined, targetNode);
438
437
  if ((_targetNode$children = targetNode.children) !== null && _targetNode$children !== void 0 && _targetNode$children.length) {
439
- var updateNodeOpenState = function updateNodeOpenState(nodes, targetNodeId) {
438
+ var _updateNodeOpenState2 = function updateNodeOpenState(nodes, targetNodeId) {
440
439
  return nodes.map(function (node) {
441
440
  var _node$children9;
442
441
  if (node.nodeId === targetNodeId) {
443
442
  return _objectSpread(_objectSpread({}, node), {}, {
444
443
  open: true,
445
- children: node.children ? updateNodeOpenState(node.children, targetNodeId) : undefined
444
+ children: node.children ? _updateNodeOpenState2(node.children, targetNodeId) : undefined
446
445
  });
447
446
  } else if ((_node$children9 = node.children) !== null && _node$children9 !== void 0 && _node$children9.length) {
448
447
  return _objectSpread(_objectSpread({}, node), {}, {
449
- children: updateNodeOpenState(node.children, targetNodeId)
448
+ children: _updateNodeOpenState2(node.children, targetNodeId)
450
449
  });
451
450
  }
452
451
  return node;
453
452
  });
454
453
  };
455
- var updatedNodes = updateNodeOpenState(treeNodes, targetNode.nodeId);
454
+ var updatedNodes = _updateNodeOpenState2(treeNodes, targetNode.nodeId);
456
455
  setTreeNodes(updatedNodes);
457
456
  }
458
457
  }
@@ -477,7 +476,8 @@ var WmTree = function WmTree(props) {
477
476
  width: width,
478
477
  height: height,
479
478
  textAlign: horizontalalign
480
- })
479
+ }),
480
+ hidden: props.hidden
481
481
  }, sortedTreeNodes.length > 0 ? sortedTreeNodes.map(function (node) {
482
482
  return __jsx(_TreeNodeComponent["default"], {
483
483
  key: node.nodeId,
@@ -35,7 +35,7 @@ var generateUniqueNodeId = exports.generateUniqueNodeId = function generateUniqu
35
35
  };
36
36
 
37
37
  // Process a single node and its children with depth tracking
38
- var processNode = exports.processNode = function processNode(item, depth, parent, rootDataset, nodeIndex, treeName, options) {
38
+ var _processNode = exports.processNode = function processNode(item, depth, parent, rootDataset, nodeIndex, treeName, options) {
39
39
  var levels = options.levels,
40
40
  nodelabel = options.nodelabel,
41
41
  nodeicon = options.nodeicon,
@@ -54,6 +54,9 @@ var processNode = exports.processNode = function processNode(item, depth, parent
54
54
  }
55
55
  // If not found on current item, fall back to default values (don't do global search)
56
56
  }
57
+ if (nodelabel) {
58
+ return nodelabel;
59
+ }
57
60
  return (_ref = (_ref2 = (_item$nodelabel = item[nodelabel]) !== null && _item$nodelabel !== void 0 ? _item$nodelabel : item.label) !== null && _ref2 !== void 0 ? _ref2 : item.name) !== null && _ref !== void 0 ? _ref : String(item);
58
61
  };
59
62
  var getIconValue = function getIconValue() {
@@ -66,6 +69,9 @@ var processNode = exports.processNode = function processNode(item, depth, parent
66
69
  }
67
70
  // If not found on current item, fall back to default values (don't do global search)
68
71
  }
72
+ if (nodeicon) {
73
+ return nodeicon;
74
+ }
69
75
  return (_item$nodeicon = item[nodeicon]) !== null && _item$nodeicon !== void 0 ? _item$nodeicon : item.icon;
70
76
  };
71
77
  var getNodeIdValue = function getNodeIdValue() {
@@ -127,12 +133,12 @@ var processNode = exports.processNode = function processNode(item, depth, parent
127
133
  };
128
134
  if ((0, _isArray["default"])(childrenData) && childrenData.length > 0) {
129
135
  node.children = childrenData.map(function (child, index) {
130
- return processNode(child, depth + 1, node, rootDataset, index, treeName, options);
136
+ return _processNode(child, depth + 1, node, rootDataset, index, treeName, options);
131
137
  });
132
138
  }
133
139
  return node;
134
140
  };
135
- var findNodeById = exports.findNodeById = function findNodeById(nodes, id) {
141
+ var _findNodeById = exports.findNodeById = function findNodeById(nodes, id) {
136
142
  var _iterator = _createForOfIteratorHelper(nodes),
137
143
  _step;
138
144
  try {
@@ -141,7 +147,7 @@ var findNodeById = exports.findNodeById = function findNodeById(nodes, id) {
141
147
  var node = _step.value;
142
148
  if (String(node.nodeId) === String(id)) return node;
143
149
  if ((_node$children = node.children) !== null && _node$children !== void 0 && _node$children.length) {
144
- var found = findNodeById(node.children, id);
150
+ var found = _findNodeById(node.children, id);
145
151
  if (found) return found;
146
152
  }
147
153
  }