@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
@@ -16,6 +16,7 @@ var lodash = _interopRequireWildcard(require("lodash-es"));
16
16
  var _withBaseWrapper = require("@wavemaker/react-runtime/higherOrder/withBaseWrapper");
17
17
  var _withFormController = _interopRequireDefault(require("@wavemaker/react-runtime/components/data/form/form-controller/withFormController"));
18
18
  var _delay = _interopRequireDefault(require("lodash/delay"));
19
+ var _util = require("../util");
19
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); }
20
21
  var __jsx = _react["default"].createElement;
21
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; }
@@ -295,18 +296,22 @@ var WmTextarea = /*#__PURE__*/(0, _react.memo)(function (props) {
295
296
  } : {}), props.onClick ? {
296
297
  onClick: props.onClick
297
298
  } : {});
299
+ var value = (0, _util.sanitizeInputValue)(displayValue);
300
+ var isEditable = !readonly && !disabled;
298
301
  return __jsx(_react["default"].Fragment, null, __jsx(_TextField["default"], (0, _extends2["default"])({
302
+ hidden: props.hidden,
299
303
  multiline: true,
300
304
  variant: "standard",
301
305
  name: name,
302
306
  title: props.hint,
303
307
  id: id || name,
304
308
  placeholder: placeholder || "Place your text here",
305
- value: displayValue,
309
+ value: value,
306
310
  required: required,
307
311
  disabled: disabled,
308
312
  error: isDirty && error.show,
309
313
  className: (0, _clsx["default"])("app-input-wrapper", isTouched ? "ng-touched" : "ng-untouched", isDirty && "ng-invalid"),
314
+ style: styles,
310
315
  "aria-readonly": readonly,
311
316
  slotProps: {
312
317
  htmlInput: {
@@ -320,23 +325,21 @@ var WmTextarea = /*#__PURE__*/(0, _react.memo)(function (props) {
320
325
  ref: textareaRef,
321
326
  onKeyDown: handleKeyDown,
322
327
  onKeyUp: handleKeyUp,
323
- className: (0, _clsx["default"])(DEFAULT_CLASS, className, isTouched ? "ng-touched" : "ng-untouched", isDirty && "ng-invalid"),
324
- pattern: regexp,
325
- style: _objectSpread({
326
- height: "none",
327
- resize: "both",
328
- overflow: "auto"
329
- }, styles)
328
+ className: (0, _clsx["default"])(DEFAULT_CLASS, className, isTouched ? "ng-touched" : "ng-untouched", isDirty && "ng-invalid", isEditable ? "wm-textarea-editable" : ""),
329
+ pattern: regexp
330
330
  }
331
331
  },
332
332
  sx: {
333
- width: "100%"
333
+ width: "100%",
334
+ "& .MuiInputBase-input": _objectSpread({}, styles.height ? {
335
+ height: "".concat(styles.height, " !important")
336
+ } : {})
334
337
  }
335
338
  }, events)), maxchars && __jsx(_Box["default"], {
336
339
  className: "textarea-count"
337
340
  }, limitdisplaytext.replaceAll("undefined", "".concat((displayValue === null || displayValue === void 0 ? void 0 : displayValue.length) || 0))));
338
341
  }, function (prev, current) {
339
- var keys = ["datavalue", "disabled", "required", "readonly", "placeholder", "maxchars", "tabindex", "shortcutkey", "autofocus", "arialabel", "limitdisplaytext"];
342
+ var keys = ["datavalue", "disabled", "required", "readonly", "placeholder", "maxchars", "tabindex", "shortcutkey", "autofocus", "arialabel", "limitdisplaytext", "hidden"];
340
343
  return keys.every(function (key) {
341
344
  return prev[key] === current[key];
342
345
  });
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _link = _interopRequireDefault(require("next/link"));
12
+ var _withBaseWrapper = require("@wavemaker/react-runtime/higherOrder/withBaseWrapper");
13
+ var _withFormController = _interopRequireDefault(require("../../data/form/form-controller/withFormController"));
14
+ var _image = _interopRequireDefault(require("next/image"));
15
+ 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); }
16
+ var __jsx = _react["default"].createElement;
17
+ var WmUpload = /*#__PURE__*/(0, _react.memo)(function (props) {
18
+ var name = props.name,
19
+ formField = props.formField,
20
+ datavalue = props.datavalue,
21
+ _props$readonly = props.readonly,
22
+ readonly = _props$readonly === void 0 ? false : _props$readonly,
23
+ _props$required = props.required,
24
+ required = _props$required === void 0 ? false : _props$required,
25
+ type = props.type,
26
+ onChange = props.onChange,
27
+ className = props.className,
28
+ style = props.style,
29
+ onFocus = props.onFocus,
30
+ onBlur = props.onBlur,
31
+ _props$disabled = props.disabled,
32
+ disabled = _props$disabled === void 0 ? false : _props$disabled,
33
+ listener = props.listener;
34
+ var fileInputRef = (0, _react.useRef)(null);
35
+ var prevDatavalue = (0, _react.useRef)(datavalue);
36
+
37
+ // Check if we have existing file data
38
+ var isImage = (formField === null || formField === void 0 ? void 0 : formField.filetype) === "image";
39
+ var handleFileChange = function handleFileChange(event) {
40
+ var _event$target$files;
41
+ var file = ((_event$target$files = event.target.files) === null || _event$target$files === void 0 ? void 0 : _event$target$files[0]) || null;
42
+
43
+ // For blob type, we need to call listener.onChange to update the form data
44
+ // The form controller will handle the actual value from the event.target.value
45
+ if (type === "file") {
46
+ var _listener$onChange;
47
+ listener === null || listener === void 0 || (_listener$onChange = listener.onChange) === null || _listener$onChange === void 0 || _listener$onChange.call(listener, props.fieldName || props.name, {
48
+ datavalue: file
49
+ });
50
+ } else {
51
+ var _listener$onChange2;
52
+ // For blob type, pass the file name/path from the input value
53
+ listener === null || listener === void 0 || (_listener$onChange2 = listener.onChange) === null || _listener$onChange2 === void 0 || _listener$onChange2.call(listener, props.fieldName || props.name, {
54
+ datavalue: event.target.value
55
+ });
56
+ }
57
+ if (onChange) {
58
+ onChange(event, listener === null || listener === void 0 ? void 0 : listener.Widgets[name], type === "file" ? file : event.target.value, prevDatavalue.current);
59
+ }
60
+ prevDatavalue.current = file;
61
+ };
62
+ var handleFileFocus = function handleFileFocus(event) {
63
+ if (onFocus) {
64
+ onFocus(event, listener === null || listener === void 0 ? void 0 : listener.Widgets[name]);
65
+ }
66
+ };
67
+ var handleFileBlur = function handleFileBlur(event) {
68
+ if (onBlur) {
69
+ onBlur(event, listener === null || listener === void 0 ? void 0 : listener.Widgets[name]);
70
+ }
71
+ };
72
+
73
+ // Render existing file display
74
+ var renderExistingFile = (0, _react.useCallback)(function () {
75
+ var fileUrl = (formField === null || formField === void 0 ? void 0 : formField.href) || (formField === null || formField === void 0 ? void 0 : formField.datavalue);
76
+ if (!fileUrl || type !== "file") return null;
77
+ return __jsx("div", {
78
+ className: "existing-file-display"
79
+ }, isImage ? __jsx(_link["default"], {
80
+ className: "form-control-static",
81
+ href: fileUrl
82
+ }, __jsx(_image["default"], {
83
+ style: {
84
+ height: "2em"
85
+ },
86
+ className: "wi wi-file",
87
+ src: fileUrl,
88
+ alt: "Existing file"
89
+ })) : __jsx(_link["default"], {
90
+ className: "form-control-static",
91
+ href: fileUrl
92
+ }, __jsx("i", {
93
+ className: "wi wi-file"
94
+ })));
95
+ }, [formField === null || formField === void 0 ? void 0 : formField.href, formField === null || formField === void 0 ? void 0 : formField.datavalue, isImage, type]);
96
+ (0, _react.useEffect)(function () {
97
+ if (!datavalue) {
98
+ // clear field input value
99
+ fileInputRef.current && (fileInputRef.current.value = "");
100
+ }
101
+ }, [datavalue]);
102
+ return __jsx("div", {
103
+ className: className,
104
+ style: style
105
+ }, renderExistingFile(), __jsx("input", (0, _extends2["default"])({}, props, {
106
+ hidden: props.hidden,
107
+ ref: fileInputRef,
108
+ type: "file",
109
+ name: "".concat(name, "_formWidget"),
110
+ className: "app-blob-upload",
111
+ required: required,
112
+ readOnly: readonly,
113
+ disabled: disabled,
114
+ onChange: handleFileChange,
115
+ onFocus: handleFileFocus,
116
+ onBlur: handleFileBlur
117
+ })));
118
+ }, function (prev, current) {
119
+ var keys = ["name", "formField", "datavalue", "readonly", "required", "type", "onChange", "className", "style"];
120
+ return keys.every(function (key) {
121
+ return prev[key] === current[key];
122
+ });
123
+ });
124
+ var _default = exports["default"] = (0, _withBaseWrapper.withBaseWrapper)((0, _withFormController["default"])(WmUpload));
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.sanitizeInputValue = void 0;
8
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
9
+ var sanitizeInputValue = exports.sanitizeInputValue = function sanitizeInputValue(value) {
10
+ return value === null || value === undefined ? "" : (0, _typeof2["default"])(value) === "object" || Array.isArray(value) ? "" : String(value) === "[object Object]" || String(value).startsWith("[object ") ? "" : String(value);
11
+ };
@@ -8,23 +8,49 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports["default"] = void 0;
9
9
  var _react = _interopRequireWildcard(require("react"));
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
12
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
12
13
  var _clsx = _interopRequireDefault(require("clsx"));
13
14
  var _Box = _interopRequireDefault(require("@mui/material/Box"));
15
+ var _Link = _interopRequireDefault(require("@mui/material/Link"));
14
16
  var _withBaseWrapper = require("@wavemaker/react-runtime/higherOrder/withBaseWrapper");
15
- var _excluded = ["className", "children", "styles", "id"];
17
+ var _button = require("@wavemaker/react-runtime/components/form/button");
18
+ var _excluded = ["className", "children", "styles", "id", "title", "brandHref", "showToggle", "listener"];
16
19
  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); }
17
20
  var __jsx = _react["default"].createElement;
21
+ 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; }
22
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
18
23
  var DEFAULT_CLASS = "navbar navbar-default app-navbar";
19
24
  var WmNavbar = /*#__PURE__*/(0, _react.memo)(function (props) {
20
25
  var className = props.className,
21
26
  children = props.children,
22
27
  styles = props.styles,
23
28
  id = props.id,
29
+ title = props.title,
30
+ _props$brandHref = props.brandHref,
31
+ brandHref = _props$brandHref === void 0 ? "#" : _props$brandHref,
32
+ _props$showToggle = props.showToggle,
33
+ showToggle = _props$showToggle === void 0 ? true : _props$showToggle,
34
+ listener = props.listener,
24
35
  restProps = (0, _objectWithoutProperties2["default"])(props, _excluded);
36
+ var _useState = (0, _react.useState)(true),
37
+ isCollapsed = _useState[0],
38
+ setIsCollapsed = _useState[1];
39
+
40
+ // Process backgroundImage to ensure it has url() wrapper
41
+ var processedStyles = (0, _react.useMemo)(function () {
42
+ if (!styles) return styles;
43
+ if (styles !== null && styles !== void 0 && styles.backgroundImage) {
44
+ styles.backgroundImage = "".concat(styles.backgroundImage.includes("url(") ? styles.backgroundImage : "url(" + styles.backgroundImage + ")");
45
+ }
46
+ return _objectSpread({}, styles);
47
+ }, [styles]);
48
+ var handleToggle = function handleToggle() {
49
+ setIsCollapsed(!isCollapsed);
50
+ };
25
51
  return __jsx(_Box["default"], (0, _extends2["default"])({
26
52
  component: "nav",
27
- sx: styles,
53
+ style: processedStyles,
28
54
  className: (0, _clsx["default"])(DEFAULT_CLASS, className),
29
55
  id: id
30
56
  }, restProps), __jsx(_Box["default"], {
@@ -32,7 +58,29 @@ var WmNavbar = /*#__PURE__*/(0, _react.memo)(function (props) {
32
58
  className: "container-fluid"
33
59
  }, __jsx(_Box["default"], {
34
60
  component: "div",
35
- className: "collapse navbar-collapse"
61
+ className: "navbar-header"
62
+ }, showToggle && __jsx(_button.WmButton, {
63
+ name: "navbar-toggle",
64
+ type: "button",
65
+ className: (0, _clsx["default"])("btn-transparent navbar-toggle", {
66
+ collapsed: isCollapsed
67
+ }),
68
+ onClick: handleToggle,
69
+ arialabel: "Toggle navigation",
70
+ iconclass: "wi wi-more-vert",
71
+ listener: listener
72
+ }), title && __jsx(_Link["default"], {
73
+ className: "navbar-brand",
74
+ href: brandHref,
75
+ underline: "none"
76
+ }, __jsx("span", {
77
+ className: "title"
78
+ }, title))), __jsx(_Box["default"], {
79
+ component: "div",
80
+ className: (0, _clsx["default"])("navbar-collapse", {
81
+ collapse: isCollapsed,
82
+ "in": !isCollapsed
83
+ })
36
84
  }, children)));
37
85
  }, function () {
38
86
  return true;
@@ -15,7 +15,8 @@ var _anchor = require("@wavemaker/react-runtime/components/basic/anchor");
15
15
  var _withBaseWrapper = _interopRequireDefault(require("@wavemaker/react-runtime/higherOrder/withBaseWrapper"));
16
16
  var _menu = _interopRequireDefault(require("@wavemaker/react-runtime/components/navigation/menu"));
17
17
  var _utils = require("@wavemaker/react-runtime/core/util/utils");
18
- var _utils2 = require("../../../core/util/utils");
18
+ var _transformedDatasetUtils = require("@wavemaker/react-runtime/utils/transformedDataset-utils");
19
+ var _lodashEs = require("lodash-es");
19
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); }
20
21
  var __jsx = _react["default"].createElement;
21
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; }
@@ -27,7 +28,7 @@ var NavClassTypes = {
27
28
  };
28
29
  var DEFAULT_CLASS = "nav app-nav";
29
30
  var WmNav = /*#__PURE__*/(0, _react.memo)(function (props) {
30
- var _props$styles, _props$styles2;
31
+ var _props$styles, _props$styles2, _props$hidden;
31
32
  var layout = props.layout,
32
33
  _props$type = props.type,
33
34
  type = _props$type === void 0 ? "navbar" : _props$type,
@@ -35,8 +36,10 @@ var WmNav = /*#__PURE__*/(0, _react.memo)(function (props) {
35
36
  children = props.children,
36
37
  name = props.name,
37
38
  styles = props.styles,
38
- id = props.id;
39
- var path = (0, _utils2.getCurrentPath)();
39
+ id = props.id,
40
+ dataset = props.dataset,
41
+ orderby = props.orderby;
42
+ var path = (0, _utils.getCurrentPath)();
40
43
  var _useState = (0, _react.useState)(null),
41
44
  activeNavItemIndex = _useState[0],
42
45
  setActiveNavItemIndex = _useState[1];
@@ -44,6 +47,16 @@ var WmNav = /*#__PURE__*/(0, _react.memo)(function (props) {
44
47
  hoveredNavItemIndex = _useState2[0],
45
48
  setHoveredNavItemIndex = _useState2[1];
46
49
  var activeNavItemIndexRef = (0, _react.useRef)(null);
50
+
51
+ // Apply orderby to dataset
52
+ // Format: "field:direction" or "field1:direction1,field2:direction2"
53
+ // Example: "name:asc" or "priority:desc,name:asc"
54
+ var orderedDataset = (0, _react.useMemo)(function () {
55
+ if (!dataset || !Array.isArray(dataset)) {
56
+ return dataset;
57
+ }
58
+ return (0, _transformedDatasetUtils.getOrderedDataset)(dataset, orderby);
59
+ }, [dataset, orderby]);
47
60
  var triggerActionClickForAnchor = function triggerActionClickForAnchor(e, item) {
48
61
  e === null || e === void 0 || e.preventDefault();
49
62
  (0, _utils.triggerItemAction)({
@@ -68,6 +81,9 @@ var WmNav = /*#__PURE__*/(0, _react.memo)(function (props) {
68
81
  if (typeof itemlabel === "string") {
69
82
  return item[itemlabel];
70
83
  }
84
+ if (typeof item === "string") {
85
+ return item;
86
+ }
71
87
 
72
88
  // Fallback
73
89
  return item["label"];
@@ -104,28 +120,29 @@ var WmNav = /*#__PURE__*/(0, _react.memo)(function (props) {
104
120
  if (hasSubactions) {
105
121
  return false;
106
122
  }
107
- var itemLink = (0, _utils2.getItemLink)(item, props);
108
- if (itemLink) {
123
+ var itemLink = (0, _utils.getItemLink)(item, props);
124
+ if (itemLink && (0, _lodashEs.isString)(itemLink)) {
109
125
  var currentRoute = "#/".concat(path.split("/").filter(Boolean).pop() || "");
110
- if (itemLink === currentRoute || path === itemLink.replace("#", "")) {
126
+ if (itemLink === currentRoute || path === (itemLink === null || itemLink === void 0 ? void 0 : itemLink.replace("#", ""))) {
111
127
  return true;
112
128
  }
113
129
  }
114
130
  return false;
115
131
  }, [activeNavItemIndex, path]);
116
132
  var renderNavItem = function renderNavItem() {
117
- if (props.dataset && props.dataset.length > 0) {
118
- return props.dataset.map(function (item, index) {
133
+ if (orderedDataset && orderedDataset.length > 0) {
134
+ return orderedDataset.map(function (item, index) {
119
135
  var label = getItemLabel(item);
120
136
  var isActive = isNavItemActive(item, index);
121
137
  var subActions = item["itemchildren"] || item["children"] || item["SubActions"];
122
138
  var hasSubactions = Array.isArray(subActions) && subActions.length > 0;
123
139
  var childComponent = hasSubactions ? __jsx(_menu["default"], {
124
140
  name: "",
141
+ autoclose: props.autoclose,
125
142
  itemlabel: props.itemlabel,
126
143
  itemlink: props.itemlink,
127
144
  itemicon: props.itemicon,
128
- listener: {},
145
+ listener: props.listener,
129
146
  iconclass: item[props.itemicon],
130
147
  caption: label,
131
148
  dataset: subActions,
@@ -133,10 +150,11 @@ var WmNav = /*#__PURE__*/(0, _react.memo)(function (props) {
133
150
  isFromNav: true,
134
151
  onNavItemActivate: handleNavItemActivate(index),
135
152
  onSelect: props.onSelect,
136
- isNavFromMenu: true
153
+ isNavFromMenu: true,
154
+ showonhover: props.showonhover
137
155
  }) : __jsx(_anchor.WmAnchor, {
138
156
  name: "",
139
- listener: {},
157
+ listener: props.listener,
140
158
  caption: label,
141
159
  iconclass: item[props.itemicon],
142
160
  iconposition: item[props.iconposition],
@@ -166,9 +184,14 @@ var WmNav = /*#__PURE__*/(0, _react.memo)(function (props) {
166
184
  }
167
185
  return children;
168
186
  };
187
+ var _ref = styles || {},
188
+ backgroundImage = _ref.backgroundImage,
189
+ backgroundRepeat = _ref.backgroundRepeat,
190
+ backgroundPosition = _ref.backgroundPosition,
191
+ textAlign = _ref.textAlign;
169
192
  return __jsx(_List["default"], {
170
193
  disablePadding: true,
171
- sx: _objectSpread({
194
+ sx: {
172
195
  "&": {
173
196
  width: ((_props$styles = props.styles) === null || _props$styles === void 0 ? void 0 : _props$styles.width) || "auto",
174
197
  height: ((_props$styles2 = props.styles) === null || _props$styles2 === void 0 ? void 0 : _props$styles2.height) || "auto",
@@ -177,13 +200,20 @@ var WmNav = /*#__PURE__*/(0, _react.memo)(function (props) {
177
200
  " & .MuiListItem-root": {
178
201
  width: "auto"
179
202
  }
180
- }, styles),
203
+ },
204
+ style: _objectSpread(_objectSpread({}, styles), {}, {
205
+ backgroundImage: backgroundImage,
206
+ backgroundRepeat: backgroundRepeat,
207
+ backgroundPosition: backgroundPosition
208
+ }),
181
209
  role: "navigation",
182
210
  className: (0, _clsx["default"])(DEFAULT_CLASS, className, "nav-".concat(layout, " ").concat(NavClassTypes[type])),
183
- id: id
211
+ id: id,
212
+ name: props.name,
213
+ hidden: (_props$hidden = props.hidden) !== null && _props$hidden !== void 0 ? _props$hidden : false
184
214
  }, renderNavItem());
185
215
  }, function (prev, current) {
186
- var keys = ["layout", "type", "className", "styles", "children"];
216
+ var keys = ["layout", "type", "className", "styles", "children", "dataset", "orderby"];
187
217
  return keys.every(function (key) {
188
218
  return prev[key] === current[key];
189
219
  });
@@ -7,10 +7,13 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports["default"] = exports.WmNavItem = void 0;
9
9
  var _react = _interopRequireWildcard(require("react"));
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
11
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
13
  var _clsx = _interopRequireDefault(require("clsx"));
12
14
  var _ListItem = _interopRequireDefault(require("@mui/material/ListItem"));
13
15
  var _withBaseWrapper = require("@wavemaker/react-runtime/higherOrder/withBaseWrapper");
16
+ var _excluded = ["className", "styles", "id", "onMouseEnter", "onMouseLeave", "name"];
14
17
  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); }
15
18
  var __jsx = _react["default"].createElement;
16
19
  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; }
@@ -21,8 +24,10 @@ var WmNavItem = exports.WmNavItem = /*#__PURE__*/(0, _react.memo)(function (prop
21
24
  styles = props.styles,
22
25
  id = props.id,
23
26
  onMouseEnter = props.onMouseEnter,
24
- onMouseLeave = props.onMouseLeave;
25
- return __jsx(_ListItem["default"], {
27
+ onMouseLeave = props.onMouseLeave,
28
+ name = props.name,
29
+ rest = (0, _objectWithoutProperties2["default"])(props, _excluded);
30
+ return __jsx(_ListItem["default"], (0, _extends2["default"])({}, rest, {
26
31
  name: name,
27
32
  id: id,
28
33
  sx: _objectSpread(_objectSpread({
@@ -30,15 +35,16 @@ var WmNavItem = exports.WmNavItem = /*#__PURE__*/(0, _react.memo)(function (prop
30
35
  }, styles), {}, {
31
36
  width: "inherit",
32
37
  margin: "inherit",
33
- padding: "inherit"
38
+ padding: "inherit",
39
+ textAlign: styles !== null && styles !== void 0 && styles.textAlign ? "".concat(styles.textAlign, " !important") : "inherit"
34
40
  }),
35
41
  className: (0, _clsx["default"])(DEFAULT_CLASS, className),
36
42
  title: props.hint,
37
43
  onMouseEnter: onMouseEnter,
38
44
  onMouseLeave: onMouseLeave
39
- }, props.children);
45
+ }), props.children);
40
46
  }, function (prev, current) {
41
- var keys = ["className", "styles", "children"];
47
+ var keys = ["className", "styles", "children", "hidden"];
42
48
  return keys.every(function (key) {
43
49
  return prev[key] === current[key];
44
50
  });
@@ -32,6 +32,9 @@ var MenuList = exports.MenuList = /*#__PURE__*/(0, _react.memo)(function (_ref)
32
32
  onMouseEnter = _ref.onMouseEnter,
33
33
  onMouseLeave = _ref.onMouseLeave,
34
34
  onClick = _ref.onClick;
35
+ if (_react["default"].Children.count(children) === 0) {
36
+ return null;
37
+ }
35
38
  return __jsx(_material.List, {
36
39
  className: className,
37
40
  role: role,
@@ -47,7 +47,8 @@ var AUTO_CLOSE = exports.AUTO_CLOSE = {
47
47
  OUTSIDE_CLICK: "outsideClick",
48
48
  // Now matches exactly the string "outsideClick"
49
49
  ON_MOUSE_LEAVE: "onmouseleave",
50
- NEVER: "never"
50
+ NEVER: "never",
51
+ DISABLED: "disabled"
51
52
  };
52
53
 
53
54
  // Default dataset to use when none is provided
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useHoverState = void 0;
8
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
+ var _react = require("react");
10
+ /**
11
+ * Custom hook to manage menu hover state using path-based tracking.
12
+ *
13
+ * Uses string paths (e.g., "0", "0-0", "1-0") instead of node objects to avoid
14
+ * reference equality issues. Each menu item gets a unique, stable path identifier.
15
+ *
16
+ * The submenu stays open because:
17
+ * 1. Parent item has hover handlers
18
+ * 2. Submenu container ALSO has hover handlers for the SAME parent path
19
+ * 3. When mouse moves from parent to submenu, the submenu's onMouseEnter
20
+ * re-adds the parent path before the visual update completes
21
+ */
22
+ var useHoverState = exports.useHoverState = function useHoverState() {
23
+ // Track which menu paths are currently hovered using their string identifiers
24
+ var _useState = (0, _react.useState)(new Set()),
25
+ hoveredPaths = _useState[0],
26
+ setHoveredPaths = _useState[1];
27
+
28
+ // Add path to hover state when mouse enters a menu item or its submenu
29
+ var handlePathMouseEnter = (0, _react.useCallback)(function (path) {
30
+ setHoveredPaths(function (prev) {
31
+ return new Set([].concat((0, _toConsumableArray2["default"])(prev), [path]));
32
+ });
33
+ }, []);
34
+
35
+ // Remove path from hover state immediately when mouse leaves
36
+ var handlePathMouseLeave = (0, _react.useCallback)(function (path, _event) {
37
+ setHoveredPaths(function (prev) {
38
+ var newSet = new Set(prev);
39
+ newSet["delete"](path);
40
+ return newSet;
41
+ });
42
+ }, []);
43
+ return {
44
+ hoveredPaths: hoveredPaths,
45
+ handlePathMouseEnter: handlePathMouseEnter,
46
+ handlePathMouseLeave: handlePathMouseLeave
47
+ };
48
+ };
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useKeyboardMovements = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _react = require("react");
10
+ var _constants = require("../constants");
11
+ 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; }
12
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13
+ var useKeyboardMovements = exports.useKeyboardMovements = function useKeyboardMovements(menuposition) {
14
+ return (0, _react.useMemo)(function () {
15
+ switch (menuposition) {
16
+ case _constants.POSITION.UP_RIGHT:
17
+ return _objectSpread(_objectSpread({}, _constants.KEYBOARD_MOVEMENTS), {}, {
18
+ MOVE_UP: "DOWN-ARROW",
19
+ MOVE_DOWN: "UP-ARROW"
20
+ });
21
+ case _constants.POSITION.UP_LEFT:
22
+ return _objectSpread(_objectSpread({}, _constants.KEYBOARD_MOVEMENTS), {}, {
23
+ MOVE_UP: "DOWN-ARROW",
24
+ MOVE_DOWN: "UP-ARROW",
25
+ MOVE_LEFT: "RIGHT-ARROW",
26
+ MOVE_RIGHT: "LEFT-ARROW"
27
+ });
28
+ case _constants.POSITION.DOWN_LEFT:
29
+ return _objectSpread(_objectSpread({}, _constants.KEYBOARD_MOVEMENTS), {}, {
30
+ MOVE_LEFT: "RIGHT-ARROW",
31
+ MOVE_RIGHT: "LEFT-ARROW"
32
+ });
33
+ default:
34
+ return _constants.KEYBOARD_MOVEMENTS;
35
+ }
36
+ }, [menuposition]);
37
+ };
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useTransformedDataset = void 0;
7
+ var _react = require("react");
8
+ var _constants = require("../constants");
9
+ var _transformedDatasetUtils = require("@wavemaker/react-runtime/utils/transformedDataset-utils");
10
+ var useTransformedDataset = exports.useTransformedDataset = function useTransformedDataset(dataset, itemlabel, orderby, itemchildren, dataPath) {
11
+ return (0, _react.useMemo)(function () {
12
+ if (!dataset) return _constants.DEFAULT_DATASET;
13
+ return (0, _transformedDatasetUtils.transformDataset)(dataset, undefined, itemlabel, undefined, undefined, orderby, null, dataPath, itemchildren);
14
+ }, [dataset, itemlabel, orderby]);
15
+ };