@wavemaker/react-runtime 11.14.2-rc.6311 → 12.0.0-next.28533

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 (244) 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 +32 -10
  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 +26 -9
  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 +1 -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/tabs/index.js +92 -14
  44. package/components/container/tabs/tab-pane/index.js +15 -8
  45. package/components/container/tabs/utils.js +51 -0
  46. package/components/container/wizard/components/StepComponents.js +2 -1
  47. package/components/container/wizard/components/WizardStep.js +2 -1
  48. package/components/container/wizard/index.js +64 -35
  49. package/components/container/wizard/utils.js +46 -1
  50. package/components/container/wizard/wizard-step/index.js +11 -1
  51. package/components/data/card/card-content/index.js +1 -1
  52. package/components/data/form/base-form/index.js +991 -180
  53. package/components/data/form/base-form/props.js +3 -1
  54. package/components/data/form/base-form/utils.js +159 -1
  55. package/components/data/form/dynamic-fields/constant.js +53 -0
  56. package/components/data/form/dynamic-fields/index.js +10 -45
  57. package/components/data/form/dynamic-fields/utils.js +37 -2
  58. package/components/data/form/form-action/index.js +5 -4
  59. package/components/data/form/form-context.js +5 -1
  60. package/components/data/form/form-controller/utils.js +84 -0
  61. package/components/data/form/form-controller/validation-contrustor.js +402 -189
  62. package/components/data/form/form-controller/withFormController.js +191 -52
  63. package/components/data/form/form-field/base-field.js +54 -33
  64. package/components/data/form/form-field/index.js +28 -5
  65. package/components/data/form/form-header/index.js +3 -4
  66. package/components/data/form/index.js +20 -1
  67. package/components/data/list/components/ListDND.js +2 -1
  68. package/components/data/list/components/ListItem.js +6 -2
  69. package/components/data/list/components/ListItemWithTemplate.js +46 -2
  70. package/components/data/list/components/ListItems.js +17 -26
  71. package/components/data/list/components/ListPagination.js +3 -3
  72. package/components/data/list/components/StandardListItems.js +3 -4
  73. package/components/data/list/hooks/useListEffects.js +55 -14
  74. package/components/data/list/hooks/useListEventHandlers.js +3 -1
  75. package/components/data/list/hooks/useListState.js +3 -1
  76. package/components/data/list/hooks/usePaginatedGroupedData.js +18 -5
  77. package/components/data/list/index.js +74 -55
  78. package/components/data/list/utils/list-helpers.js +73 -35
  79. package/components/data/list/utils/list-widget-methods.js +138 -95
  80. package/components/data/live-filter/index.js +26 -15
  81. package/components/data/live-form/index.js +23 -7
  82. package/components/data/live-form/props.js +1 -1
  83. package/components/data/pagination/components/BasicPagination.js +71 -16
  84. package/components/data/pagination/components/PageSizeSelector.js +8 -3
  85. package/components/data/pagination/components/TotalRecords.js +1 -5
  86. package/components/data/pagination/hooks/usePagination.js +349 -66
  87. package/components/data/pagination/index.js +137 -19
  88. package/components/data/table/components/AddNewRow.js +5 -1
  89. package/components/data/table/components/EditableCell.js +2 -2
  90. package/components/data/table/components/RowCells.js +64 -0
  91. package/components/data/table/components/RowExpansionButton.js +2 -2
  92. package/components/data/table/components/SummaryCell.js +111 -0
  93. package/components/data/table/components/SummaryRow.js +54 -0
  94. package/components/data/table/components/SummaryRowFooter.js +46 -0
  95. package/components/data/table/components/TableBody.js +61 -59
  96. package/components/data/table/components/TableDataRow.js +109 -0
  97. package/components/data/table/components/TableFilters.js +225 -121
  98. package/components/data/table/components/TableHeader.js +291 -23
  99. package/components/data/table/components/TablePanelHeading.js +139 -8
  100. package/components/data/table/components/index.js +22 -1
  101. package/components/data/table/hooks/use-edited-rows.js +141 -0
  102. package/components/data/table/hooks/useCellState.js +5 -12
  103. package/components/data/table/hooks/useFormWidget.js +58 -51
  104. package/components/data/table/hooks/usePaginationState.js +45 -24
  105. package/components/data/table/hooks/usePanelStructure.js +4 -4
  106. package/components/data/table/hooks/useRowHandlers.js +39 -5
  107. package/components/data/table/hooks/useRowSelection.js +244 -50
  108. package/components/data/table/hooks/useServerSideSorting.js +81 -37
  109. package/components/data/table/hooks/useTableColumns.js +211 -118
  110. package/components/data/table/hooks/useTableData.js +54 -9
  111. package/components/data/table/hooks/useTableEdit.js +272 -97
  112. package/components/data/table/hooks/useTableEffects.js +31 -13
  113. package/components/data/table/hooks/useTableFilter.js +1 -1
  114. package/components/data/table/hooks/useTableInitialization.js +23 -22
  115. package/components/data/table/hooks/useTableState.js +11 -5
  116. package/components/data/table/hooks/useTableStateManager.js +140 -65
  117. package/components/data/table/index.js +637 -274
  118. package/components/data/table/live-table/index.js +54 -22
  119. package/components/data/table/table-action/index.js +1 -1
  120. package/components/data/table/table-group/index.js +26 -0
  121. package/components/data/table/table-row-action/index.js +32 -18
  122. package/components/data/table/utils/buildSelectionColumns.js +12 -21
  123. package/components/data/table/utils/columnBuilder.js +29 -14
  124. package/components/data/table/utils/columnProxy.js +68 -1
  125. package/components/data/table/utils/constants.js +6 -2
  126. package/components/data/table/utils/crud-handlers.js +68 -63
  127. package/components/data/table/utils/groupHeaderUtils.js +102 -0
  128. package/components/data/table/utils/index.js +210 -21
  129. package/components/data/table/utils/renderDisplayCell.js +6 -6
  130. package/components/data/table/utils/selectionUtils.js +25 -26
  131. package/components/data/table/utils/validation.js +1 -0
  132. package/components/data/utils/filter-field-util.js +3 -3
  133. package/components/dialogs/alert-dialog/index.js +1 -1
  134. package/components/dialogs/confirm-dialog/index.js +1 -1
  135. package/components/dialogs/dialog/index.js +4 -1
  136. package/components/dialogs/dialog-content/index.js +3 -1
  137. package/components/dialogs/dialog-header/index.js +2 -2
  138. package/components/dialogs/iframe-dialog/index.js +11 -5
  139. package/components/dialogs/index.js +1 -1
  140. package/components/dialogs/login-dialog/index.js +1 -1
  141. package/components/dialogs/page-dialog/index.js +1 -1
  142. package/components/form/button/index.js +33 -7
  143. package/components/input/calendar/index.js +18 -6
  144. package/components/input/chips/index.js +99 -28
  145. package/components/input/chips/utils.js +34 -4
  146. package/components/input/color-picker/index.js +74 -25
  147. package/components/input/composite/index.js +3 -3
  148. package/components/input/currency/index.js +35 -49
  149. package/components/input/default/checkbox/index.js +23 -28
  150. package/components/input/default/checkboxset/index.js +38 -18
  151. package/components/input/default/checkboxset/utils.js +30 -0
  152. package/components/input/default/radioset/index.js +36 -39
  153. package/components/input/default/switch/index.js +30 -13
  154. package/components/input/epoch/date/index.js +130 -69
  155. package/components/input/epoch/date/utils.js +94 -1
  156. package/components/input/epoch/datetime/index.js +72 -22
  157. package/components/input/epoch/datetime/utils.js +49 -10
  158. package/components/input/epoch/time/index.js +68 -19
  159. package/components/input/epoch/time/utils.js +62 -14
  160. package/components/input/fileupload/Utils.js +12 -7
  161. package/components/input/fileupload/components/MultiUpload.js +2 -6
  162. package/components/input/fileupload/components/SingleUpload.js +3 -7
  163. package/components/input/fileupload/index.js +6 -10
  164. package/components/input/fileupload/useFileUpload.js +16 -5
  165. package/components/input/number/index.js +158 -43
  166. package/components/input/rating/index.js +90 -7
  167. package/components/input/select/index.js +147 -70
  168. package/components/input/slider/index.js +84 -26
  169. package/components/input/text/index.js +38 -18
  170. package/components/input/text/util.js +283 -130
  171. package/components/input/textarea/index.js +13 -10
  172. package/components/input/upload/index.js +124 -0
  173. package/components/input/upload/props.js +5 -0
  174. package/components/input/util/index.js +11 -0
  175. package/components/navbar/index.js +51 -3
  176. package/components/navbar/nav/index.js +46 -16
  177. package/components/navbar/nav-item/index.js +11 -5
  178. package/components/navigation/menu/components/ListItems.js +3 -0
  179. package/components/navigation/menu/constants.js +2 -1
  180. package/components/navigation/menu/hooks/useHoverState.hook.js +48 -0
  181. package/components/navigation/menu/hooks/useKeyboardMovements.hook.js +37 -0
  182. package/components/navigation/menu/hooks/useTransformedDataset.hook.js +15 -0
  183. package/components/navigation/menu/index.js +326 -188
  184. package/components/navigation/menu/utils/action-task.js +14 -0
  185. package/components/navigation/menu/utils/role-filter.js +76 -0
  186. package/components/navigation/popover/index.js +99 -26
  187. package/components/page/partial-container/index.js +34 -5
  188. package/components/prefab/index.js +2 -4
  189. package/context/PrefabContext.js +10 -6
  190. package/context/WidgetProvider.js +30 -31
  191. package/core/app.service.js +1 -1
  192. package/core/constants/events.js +57 -1
  193. package/core/dialog.service.js +1 -2
  194. package/core/event-notifier.js +1 -2
  195. package/core/formatter/array-formatters.js +33 -0
  196. package/core/formatter/date-formatters.js +2 -4
  197. package/core/formatter/index.js +2 -1
  198. package/core/formatter/number-formatters.js +5 -10
  199. package/core/formatter/security-formatters.js +2 -4
  200. package/core/formatter/string-formatters.js +3 -6
  201. package/core/proxy-service.js +84 -13
  202. package/core/script-registry.js +108 -48
  203. package/core/util/common.js +4 -4
  204. package/core/util/compare.js +30 -0
  205. package/core/util/dom.js +8 -8
  206. package/core/util/index.js +16 -6
  207. package/core/util/safe-is-equal.js +156 -0
  208. package/core/util/security.js +1 -2
  209. package/core/util/utils.js +16 -7
  210. package/higherOrder/BaseApp.js +108 -65
  211. package/higherOrder/BaseDateTime.js +31 -13
  212. package/higherOrder/BasePage.js +268 -144
  213. package/higherOrder/BasePartial.js +1 -1
  214. package/higherOrder/BasePrefab.js +33 -15
  215. package/higherOrder/DataNav.js +99 -16
  216. package/higherOrder/helper.js +5 -0
  217. package/higherOrder/withBaseWrapper.js +41 -28
  218. package/hooks/useAuth.js +11 -5
  219. package/hooks/useHttp.js +280 -94
  220. package/mui-config/theme-provider.js +1 -1
  221. package/mui-config/theme.js +1 -1
  222. package/package-lock.json +824 -724
  223. package/package.json +8 -8
  224. package/store/bindActions/i18nActions.js +18 -0
  225. package/store/index.js +3 -1
  226. package/store/slices/appConfigSlice.js +2 -2
  227. package/store/slices/authSlice.js +31 -28
  228. package/store/slices/i18nSlice.js +2 -2
  229. package/store/slices/navigationSlice.js +35 -0
  230. package/store/viewport.service.js +255 -0
  231. package/utils/attr.js +35 -0
  232. package/utils/dataset-util.js +1 -2
  233. package/utils/form-state.util.js +43 -12
  234. package/utils/form-utils.js +47 -2
  235. package/utils/format-util.js +28 -13
  236. package/utils/page-params-util.js +33 -1
  237. package/utils/state-persistance.js +72 -13
  238. package/utils/transformedDataset-utils.js +35 -24
  239. package/variables/base-variable.js +12 -14
  240. package/variables/crud-variable.js +225 -0
  241. package/variables/live-variable.js +56 -20
  242. package/variables/metadata.service.js +123 -0
  243. package/variables/model-variable.js +21 -15
  244. package/variables/service-variable.js +88 -83
@@ -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.getCheckboxsetDisplayValues = getCheckboxsetDisplayValues;
8
+ var _toString = _interopRequireDefault(require("lodash-es/toString"));
9
+ var _isEqual = _interopRequireDefault(require("lodash-es/isEqual"));
10
+ var _constants = require("@wavemaker/react-runtime/components/constants");
11
+ function getCheckboxsetDisplayValues() {
12
+ var items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
13
+ var selectedKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
14
+ var datafield = arguments.length > 2 ? arguments[2] : undefined;
15
+ var usekeys = arguments.length > 3 ? arguments[3] : undefined;
16
+ if (!Array.isArray(items) || !Array.isArray(selectedKeys)) {
17
+ return [];
18
+ }
19
+ var isAllFields = datafield === _constants.ALL_FIELDS;
20
+ return items.filter(function (item) {
21
+ return selectedKeys.some(function (k) {
22
+ if (isAllFields) {
23
+ return usekeys ? (0, _toString["default"])(k) === (0, _toString["default"])(item.key) : (0, _isEqual["default"])(k, item.value);
24
+ }
25
+ return (0, _toString["default"])(k) === (0, _toString["default"])(item.key);
26
+ });
27
+ }).map(function (item) {
28
+ return (item === null || item === void 0 ? void 0 : item.label) != null ? String(item.label) : "";
29
+ });
30
+ }
@@ -88,7 +88,7 @@ var WmRadioset = /*#__PURE__*/(0, _react.memo)(function (props) {
88
88
  tabindex = _props$tabindex === void 0 ? 0 : _props$tabindex,
89
89
  _props$usekeys = props.usekeys,
90
90
  usekeys = _props$usekeys === void 0 ? false : _props$usekeys,
91
- onClick = props.onClick,
91
+ _onClick = props.onClick,
92
92
  onChange = props.onChange,
93
93
  onMouseenter = props.onMouseenter,
94
94
  onMouseleave = props.onMouseleave,
@@ -98,6 +98,7 @@ var WmRadioset = /*#__PURE__*/(0, _react.memo)(function (props) {
98
98
  _props$selectedItems = props.selectedItems,
99
99
  selectedItems = _props$selectedItems === void 0 ? [] : _props$selectedItems,
100
100
  onblur = props.onblur,
101
+ onBlur = props.onBlur,
101
102
  validation = props.validation,
102
103
  groupedData = props.groupedData,
103
104
  externalHandleHeaderClick = props.handleHeaderClick,
@@ -129,13 +130,18 @@ var WmRadioset = /*#__PURE__*/(0, _react.memo)(function (props) {
129
130
  var itemsPerRowClass = (0, _react.useMemo)(function () {
130
131
  return (0, _listHelpers.getItemsPerRowClass)(itemsperrow);
131
132
  }, [itemsperrow]);
132
- var handleBlur = (0, _react.useCallback)(function () {
133
- if (onblur) onblur();
134
- }, [onblur]);
133
+ var handleBlur = (0, _react.useCallback)(function (e) {
134
+ if (onBlur) {
135
+ onBlur(e);
136
+ }
137
+ }, []);
135
138
  var transformedDataset = (0, _react.useMemo)(function () {
136
139
  if (!dataset) return [];
140
+ if (usekeys) {
141
+ return (0, _transformedDatasetUtils.transformDataWithKeys)(dataset);
142
+ }
137
143
  return (0, _transformedDatasetUtils.transformDataset)(dataset, datafield, displayfield, undefined, getDisplayExpression, orderby, groupby, dataPath);
138
- }, [dataset, datafield, displayfield, getDisplayExpression, orderby, groupby]);
144
+ }, [dataset, datafield, displayfield, getDisplayExpression, orderby, groupby, usekeys, dataPath]);
139
145
  (0, _react.useEffect)(function () {
140
146
  setIsLoading(true);
141
147
  setError(null);
@@ -194,58 +200,45 @@ var WmRadioset = /*#__PURE__*/(0, _react.memo)(function (props) {
194
200
  if (externalHandleHeaderClick && event) {
195
201
  externalHandleHeaderClick(key);
196
202
  }
203
+ if (_onClick) {
204
+ _onClick(event, listener === null || listener === void 0 ? void 0 : listener.Widgets[name]);
205
+ }
197
206
  }, [externalHandleHeaderClick]);
198
207
  var handleRadioChange = (0, _react.useCallback)(function (event) {
199
208
  var newSelectedKey = event.target.value;
209
+ // check if the selected key is readonly or disabled
210
+ if (disabled || readonly) return;
200
211
  setSelectedKey(newSelectedKey);
201
212
  var selectedItem = (0, _lodashEs.find)(localDatasetItems, function (item) {
202
213
  return (0, _lodashEs.toString)(item.key) === (0, _lodashEs.toString)(newSelectedKey);
203
214
  });
204
215
  if (selectedItem) {
205
- if (onChange) {
206
- onChange(event, props, selectedItem.value, selectedKey);
207
- }
208
216
  if (listener !== null && listener !== void 0 && listener.onChange) {
209
- listener.onChange(props.name, {
217
+ listener.onChange(props.fieldName || props.name, {
210
218
  datavalue: selectedItem.key,
211
219
  displayValue: selectedItem.label
212
220
  });
213
221
  }
214
- }
215
- }, [localDatasetItems, onChange, props]);
216
- var handleItemClick = (0, _react.useCallback)(function (item, event) {
217
- if (disabled || readonly) return;
218
- var newKey = (0, _lodashEs.toString)(item.key);
219
- setSelectedKey(newKey);
220
- if (item) {
221
- if (onClick) {
222
- onClick(event, props, item.value, selectedKey);
223
- }
224
222
  if (onChange) {
225
- onChange(event, props, item.value, selectedKey);
226
- }
227
- if (listener !== null && listener !== void 0 && listener.onChange) {
228
- listener.onChange(name, _objectSpread(_objectSpread({}, props), {}, {
229
- datavalue: newKey,
230
- displayValue: item.label
231
- }));
223
+ onChange(event, props, selectedItem.value, selectedKey);
232
224
  }
233
225
  }
234
- }, [disabled, readonly, onClick, onChange, props, name]);
226
+ }, [localDatasetItems, onChange, props]);
235
227
  var renderRadio = (0, _react.useCallback)(function (item, index) {
236
- var isChecked = (0, _lodashEs.toString)(selectedKey) === (0, _lodashEs.toString)(item.key);
228
+ var isChecked = (0, _lodashEs.toString)(selectedKey).toLowerCase() === (0, _lodashEs.toString)(item.key).toLowerCase();
237
229
  return __jsx(_ListItem["default"], {
238
230
  key: (0, _lodashEs.toString)(item.key) + index,
239
- className: (0, _clsx["default"])("radio app-radio", {
231
+ className: (0, _clsx["default"])("radio app-radio", itemsPerRowClass, listclass, itemclass, {
240
232
  active: isChecked
241
233
  }),
242
- onClick: function onClick(e) {
243
- return handleItemClick(item, e);
244
- },
245
234
  component: "li"
246
235
  }, __jsx(_Box["default"], {
247
236
  component: "label",
248
- className: "app-radioset-label ".concat(disabled || readonly ? "disabled" : "")
237
+ className: "app-radioset-label ".concat(disabled || readonly ? "disabled" : ""),
238
+ onClick: function onClick(e) {
239
+ e.stopPropagation();
240
+ _onClick && _onClick(e);
241
+ }
249
242
  }, __jsx(_input.Input, {
250
243
  "data-attr-index": index,
251
244
  type: "radio",
@@ -255,14 +248,16 @@ var WmRadioset = /*#__PURE__*/(0, _react.memo)(function (props) {
255
248
  tabIndex: tabindex,
256
249
  "aria-label": item.label,
257
250
  value: item.key,
251
+ id: "radioset_".concat(name || "unnamed", "_").concat(item.key),
258
252
  onChange: handleRadioChange,
259
253
  role: "radio",
260
254
  "aria-checked": isChecked
261
255
  }), __jsx(_Box["default"], {
262
256
  component: "span",
263
- className: "caption customTemplate"
257
+ className: "caption customTemplate",
258
+ htmlFor: "radioset_".concat(name || "unnamed", "_").concat(item.key)
264
259
  }, item.label)));
265
- }, [selectedKey, handleRadioChange, handleItemClick, disabled, readonly, name]);
260
+ }, [selectedKey, handleRadioChange, disabled, readonly, name]);
266
261
  var renderGroupHeader = (0, _react.useCallback)(function (group) {
267
262
  var _group$data;
268
263
  return __jsx(_ListItem["default"], {
@@ -303,7 +298,8 @@ var WmRadioset = /*#__PURE__*/(0, _react.memo)(function (props) {
303
298
  }
304
299
  if (!localDatasetItems || localDatasetItems.length === 0) {
305
300
  return __jsx(_Box["default"], {
306
- className: (0, _clsx["default"])(className, DEFAULT_CLASS, itemsPerRowClass, listclass, itemclass)
301
+ className: (0, _clsx["default"])(className, DEFAULT_CLASS, itemsPerRowClass, listclass, itemclass),
302
+ hidden: props.hidden
307
303
  }, __jsx(_Box["default"], {
308
304
  className: "empty-state"
309
305
  }, "No items to display"));
@@ -314,7 +310,8 @@ var WmRadioset = /*#__PURE__*/(0, _react.memo)(function (props) {
314
310
  onMouseLeave: props.onMouseLeave
315
311
  });
316
312
  return __jsx(_Box["default"], (0, _extends2["default"])({}, events, {
317
- className: (0, _clsx["default"])(className, DEFAULT_CLASS, itemsPerRowClass, listclass, itemclass),
313
+ hidden: props.hidden,
314
+ className: (0, _clsx["default"])(className, DEFAULT_CLASS),
318
315
  sx: _objectSpread(_objectSpread({}, styles), {}, {
319
316
  height: height,
320
317
  width: width
@@ -329,7 +326,7 @@ var WmRadioset = /*#__PURE__*/(0, _react.memo)(function (props) {
329
326
  className: (0, _clsx["default"])({
330
327
  "collapsible-radio-group": collapsible
331
328
  })
332
- }, groupby && groupedDataset.length > 0 ? __jsx(_Box["default"], {
329
+ }, groupby && groupedDataset.length > 0 && !usekeys ? __jsx(_Box["default"], {
333
330
  component: "ul",
334
331
  className: (0, _clsx["default"])(DEFAULT_CLASS)
335
332
  }, groupedDataset.map(function (group) {
@@ -368,7 +365,7 @@ var WmRadioset = /*#__PURE__*/(0, _react.memo)(function (props) {
368
365
  className: "readonly-wrapper"
369
366
  }));
370
367
  }, function (prev, current) {
371
- var keys = ["datavalue", "dataset", "show", "disabled", "readonly", "orderby", "groupby", "collapsible", "datasetItems"];
368
+ var keys = ["datavalue", "dataset", "show", "disabled", "readonly", "orderby", "groupby", "collapsible", "datasetItems", "hidden"];
372
369
  return keys.every(function (key) {
373
370
  if (key === "datasetItems") {
374
371
  return (0, _lodashEs.isEqual)(prev[key], current[key]);
@@ -16,7 +16,7 @@ var _Box = _interopRequireDefault(require("@mui/material/Box"));
16
16
  var _material = require("@mui/material");
17
17
  var _transformedDatasetUtils = require("@wavemaker/react-runtime/utils/transformedDataset-utils");
18
18
  var _withFormController = _interopRequireDefault(require("@wavemaker/react-runtime/components/data/form/form-controller/withFormController"));
19
- var _excluded = ["dataset", "datasetItems", "multiple", "disabled", "required", "name", "hint", "iconclass", "checkediconclass", "displayfield", "datafield", "value", "onChange", "onClick", "onMouseEnter", "onMouseLeave", "onBlur", "compareby", "toBeProcessedValue", "show", "tabindex", "arialabel", "className", "datavalue", "displayExpression", "orderby", "displayValue", "listener", "styles", "dataPath"];
19
+ var _excluded = ["dataset", "datasetItems", "multiple", "disabled", "required", "name", "hint", "iconclass", "checkediconclass", "displayfield", "datafield", "value", "onChange", "onClick", "onMouseEnter", "onMouseLeave", "onBlur", "compareby", "toBeProcessedValue", "show", "tabindex", "arialabel", "className", "datavalue", "displayExpression", "orderby", "displayValue", "listener", "styles", "dataPath", "hidden", "fieldName"];
20
20
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
21
21
  var __jsx = _react["default"].createElement;
22
22
  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; }
@@ -32,8 +32,7 @@ var defaultProps = {
32
32
  required: false,
33
33
  allowempty: true,
34
34
  acceptsArray: false,
35
- dataset: "yes, no, maybe",
36
- datavalue: "yes"
35
+ dataset: "yes, no, maybe"
37
36
  };
38
37
  var useSwitch = function useSwitch(props) {
39
38
  var _props$dataset = props.dataset,
@@ -56,8 +55,7 @@ var useSwitch = function useSwitch(props) {
56
55
  allowempty = _props$allowempty === void 0 ? defaultProps.allowempty : _props$allowempty,
57
56
  _props$acceptsArray = props.acceptsArray,
58
57
  acceptsArray = _props$acceptsArray === void 0 ? defaultProps.acceptsArray : _props$acceptsArray,
59
- _props$datavalue = props.datavalue,
60
- datavalue = _props$datavalue === void 0 ? defaultProps.datavalue : _props$datavalue,
58
+ datavalue = props.datavalue,
61
59
  listener = props.listener,
62
60
  displayfield = props.displayfield,
63
61
  orderby = props.orderby,
@@ -68,7 +66,9 @@ var useSwitch = function useSwitch(props) {
68
66
  // Consolidated dataset transformation - handles both initial value and updates
69
67
  var transformedDataset = (0, _react.useMemo)(function () {
70
68
  if (propDatasetItems !== null && propDatasetItems !== void 0 && propDatasetItems.length) return propDatasetItems;
71
- return (0, _transformedDatasetUtils.transformDataset)(dataset, datafield, displayfield, undefined, displayExpression, orderby, null, dataPath);
69
+ // Check if dataset is a function and call it to get the actual dataset value
70
+ var resolvedDataset = typeof dataset === "function" ? dataset() : dataset;
71
+ return (0, _transformedDatasetUtils.transformDataset)(resolvedDataset, datafield, displayfield, undefined, displayExpression, orderby, null, dataPath);
72
72
  }, [dataset, datafield, displayfield, displayExpression, orderby, propDatasetItems]);
73
73
  var _useState = (0, _react.useState)(transformedDataset),
74
74
  datasetItems = _useState[0],
@@ -158,6 +158,16 @@ var useSwitch = function useSwitch(props) {
158
158
  setSelectedItem(firstItem);
159
159
  setModelByKey(firstItem.key);
160
160
  setModelByValue(firstItem.value);
161
+ } else if ((datasetItems === null || datasetItems === void 0 ? void 0 : datasetItems.length) > 0 && datavalue === undefined && selectedItem) {
162
+ var _updatedItems2 = datasetItems.map(function (item) {
163
+ return _objectSpread(_objectSpread({}, item), {}, {
164
+ selected: false
165
+ });
166
+ });
167
+ setDatasetItems(_updatedItems2);
168
+ setSelectedItem(null);
169
+ setModelByKey(null);
170
+ setModelByValue(null);
161
171
  }
162
172
  }, [datasetItems, value, toBeProcessedValue, datavalue, selectedItem, isUserInteraction]);
163
173
  (0, _react.useEffect)(function () {
@@ -239,15 +249,15 @@ var useSwitch = function useSwitch(props) {
239
249
  return;
240
250
  }
241
251
  }
242
- var _updatedItems2 = (0, _toConsumableArray2["default"])(datasetItems);
243
- _updatedItems2.forEach(function (item) {
252
+ var _updatedItems3 = (0, _toConsumableArray2["default"])(datasetItems);
253
+ _updatedItems3.forEach(function (item) {
244
254
  return item.selected = false;
245
255
  });
246
- _updatedItems2[targetIndex].selected = true;
247
- var selectedOption = _updatedItems2[targetIndex];
256
+ _updatedItems3[targetIndex].selected = true;
257
+ var selectedOption = _updatedItems3[targetIndex];
248
258
 
249
259
  // Batch all state updates together to ensure they happen atomically
250
- setDatasetItems(_updatedItems2);
260
+ setDatasetItems(_updatedItems3);
251
261
  setSelectedItem(selectedOption);
252
262
  setModelByKey(selectedOption.key);
253
263
  setModelByValue(selectedOption.value);
@@ -391,6 +401,8 @@ var WmSwitch = /*#__PURE__*/(0, _react.memo)(function (_ref2) {
391
401
  listener = _ref2.listener,
392
402
  styles = _ref2.styles,
393
403
  dataPath = _ref2.dataPath,
404
+ hidden = _ref2.hidden,
405
+ fieldName = _ref2.fieldName,
394
406
  rest = (0, _objectWithoutProperties2["default"])(_ref2, _excluded);
395
407
  var _useSwitch = useSwitch({
396
408
  dataset: dataset,
@@ -412,7 +424,8 @@ var WmSwitch = /*#__PURE__*/(0, _react.memo)(function (_ref2) {
412
424
  displayExpression: displayExpression,
413
425
  orderby: orderby,
414
426
  listener: listener,
415
- dataPath: dataPath
427
+ dataPath: dataPath,
428
+ fieldName: fieldName
416
429
  }),
417
430
  datasetItems = _useSwitch.datasetItems,
418
431
  selectedItem = _useSwitch.selectedItem,
@@ -435,10 +448,14 @@ var WmSwitch = /*#__PURE__*/(0, _react.memo)(function (_ref2) {
435
448
  return hint;
436
449
  }, [hint, displayfield]);
437
450
  return __jsx(_Box["default"], {
451
+ hidden: hidden,
438
452
  className: DEFAULT_CLS,
439
453
  name: name,
440
454
  "aria-label": arialabel,
441
- datavalue: datavalue
455
+ datavalue: datavalue,
456
+ style: _objectSpread(_objectSpread({}, styles), {}, {
457
+ overflow: "auto"
458
+ })
442
459
  }, __jsx(_Box["default"], {
443
460
  ref: switchRef,
444
461
  role: "group",