@wavemaker/react-runtime 11.14.1-rc.241 → 11.14.2-1.6423

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 (73) hide show
  1. package/actions/navigation-action.js +5 -3
  2. package/actions/notification-action.js +6 -3
  3. package/components/basic/anchor/index.js +6 -7
  4. package/components/basic/label/index.js +2 -2
  5. package/components/basic/search/index.js +7 -3
  6. package/components/chart/components/barColumnChart/index.js +2 -4
  7. package/components/chart/components/pieDonutChart/index.js +3 -1
  8. package/components/chart/hooks/useBarYAxisExtras.js +52 -0
  9. package/components/chart/hooks/useXAxisConfig.js +98 -0
  10. package/components/chart/index.js +72 -39
  11. package/components/chart/utils.js +23 -12
  12. package/components/container/index.js +6 -7
  13. package/components/container/panel/components/panel-header/index.js +3 -2
  14. package/components/container/panel/index.js +13 -9
  15. package/components/container/tabs/index.js +1 -0
  16. package/components/container/tabs/tab-pane/index.js +39 -3
  17. package/components/container/wizard/index.js +187 -57
  18. package/components/container/wizard/utils.js +1 -1
  19. package/components/container/wizard/wizard-action/index.js +9 -4
  20. package/components/container/wizard/wizard-step/index.js +21 -8
  21. package/components/data/form/base-form/index.js +51 -11
  22. package/components/data/form/form-controller/withFormController.js +7 -10
  23. package/components/data/list/components/GroupedListItems.js +5 -1
  24. package/components/data/list/components/ListItemWithTemplate.js +4 -1
  25. package/components/data/list/hooks/useListEffects.js +34 -14
  26. package/components/data/list/hooks/useListEventHandlers.js +18 -2
  27. package/components/data/list/hooks/useListState.js +15 -2
  28. package/components/data/list/index.js +1 -0
  29. package/components/data/list/utils/list-helpers.js +3 -5
  30. package/components/data/list/utils/list-widget-methods.js +1 -1
  31. package/components/data/live-filter/index.js +6 -5
  32. package/components/data/live-form/index.js +24 -14
  33. package/components/data/table/components/TableBody.js +5 -21
  34. package/components/data/table/components/TableHeader.js +5 -1
  35. package/components/data/table/index.js +21 -5
  36. package/components/data/utils/field-data-utils.js +1 -1
  37. package/components/dialogs/index.js +14 -16
  38. package/components/input/currency/index.js +11 -7
  39. package/components/input/default/checkbox/index.js +2 -3
  40. package/components/input/default/checkboxset/index.js +2 -22
  41. package/components/input/default/radioset/index.js +5 -4
  42. package/components/input/epoch/datetime/index.js +6 -2
  43. package/components/input/epoch/time/index.js +2 -1
  44. package/components/input/number/index.js +2 -2
  45. package/components/input/text/util.js +2 -0
  46. package/components/input/textarea/index.js +22 -24
  47. package/components/layout/leftnav/index.js +1 -1
  48. package/components/navbar/nav/index.js +97 -7
  49. package/components/navbar/nav-item/index.js +5 -2
  50. package/components/navigation/menu/index.js +73 -12
  51. package/components/navigation/popover/index.js +2 -0
  52. package/components/page/error-boundary/index.js +1 -0
  53. package/components/prefab/container/index.js +10 -3
  54. package/context/LocalizationProvider.js +1 -0
  55. package/context/PrefabContext.js +138 -13
  56. package/context/WidgetProvider.js +2 -2
  57. package/core/constants/events.js +12 -6
  58. package/core/constants/index.js +6 -11
  59. package/core/formatter/number-formatters.js +1 -1
  60. package/core/proxy-service.js +72 -36
  61. package/core/util/utils.js +23 -4
  62. package/higherOrder/BaseApp.js +60 -18
  63. package/higherOrder/BasePage.js +99 -77
  64. package/higherOrder/BasePrefab.js +13 -5
  65. package/higherOrder/withBaseWrapper.js +3 -3
  66. package/hooks/useDataSourceSubscription.js +1 -1
  67. package/hooks/useHttp.js +20 -13
  68. package/mui-config/theme.js +3 -0
  69. package/package-lock.json +781 -669
  70. package/package.json +3 -3
  71. package/store/index.js +5 -1
  72. package/utils/lib-error-skipper.js +196 -0
  73. package/variables/service-variable.js +17 -14
@@ -550,6 +550,18 @@ var WmTableComponent = exports.WmTableComponent = /*#__PURE__*/(0, _react.memo)(
550
550
  });
551
551
  }, [columns, columnOverrides, columnsVersion, editingRowId]);
552
552
 
553
+ // Compute class signature from columns meta.className to trigger header and body re-render on class updates
554
+ var ColClassSignature = (0, _react.useMemo)(function () {
555
+ try {
556
+ return (columnsForTable || []).map(function (col) {
557
+ var _col$meta;
558
+ return String((col === null || col === void 0 || (_col$meta = col.meta) === null || _col$meta === void 0 ? void 0 : _col$meta.className) || "");
559
+ }).join("|");
560
+ } catch (_unused) {
561
+ return "";
562
+ }
563
+ }, [columnsForTable]);
564
+
553
565
  // Use filter hook for filtering functionality
554
566
  var _useTableFilter = (0, _hooks.useTableFilter)({
555
567
  filterMode: filtermode,
@@ -734,12 +746,12 @@ var WmTableComponent = exports.WmTableComponent = /*#__PURE__*/(0, _react.memo)(
734
746
  if (filtermode === "search") {
735
747
  if (globalFilter || globalSearchColumn) {
736
748
  // Find column type for the selected search column
737
- var columnType = globalSearchColumn ? function (_col$meta, _col$meta2) {
749
+ var columnType = globalSearchColumn ? function (_col$meta2, _col$meta3) {
738
750
  var col = (0, _lodashEs.find)(columnsForTable, function (c) {
739
751
  var column = c;
740
752
  return column.accessorKey === globalSearchColumn || column.id === globalSearchColumn;
741
753
  });
742
- return (col === null || col === void 0 || (_col$meta = col.meta) === null || _col$meta === void 0 ? void 0 : _col$meta.type) || (col === null || col === void 0 || (_col$meta2 = col.meta) === null || _col$meta2 === void 0 ? void 0 : _col$meta2.editinputtype) || "string";
754
+ return (col === null || col === void 0 || (_col$meta2 = col.meta) === null || _col$meta2 === void 0 ? void 0 : _col$meta2.type) || (col === null || col === void 0 || (_col$meta3 = col.meta) === null || _col$meta3 === void 0 ? void 0 : _col$meta3.editinputtype) || "string";
743
755
  }() : "string";
744
756
  return [{
745
757
  field: globalSearchColumn || "",
@@ -759,12 +771,12 @@ var WmTableComponent = exports.WmTableComponent = /*#__PURE__*/(0, _react.memo)(
759
771
  field = _ref5[0],
760
772
  filter = _ref5[1];
761
773
  // Find column type for each field
762
- var columnType = function (_col$meta3, _col$meta4) {
774
+ var columnType = function (_col$meta4, _col$meta5) {
763
775
  var col = (0, _lodashEs.find)(columnsForTable, function (c) {
764
776
  var column = c;
765
777
  return column.accessorKey === field || column.id === field;
766
778
  });
767
- return (col === null || col === void 0 || (_col$meta3 = col.meta) === null || _col$meta3 === void 0 ? void 0 : _col$meta3.type) || (col === null || col === void 0 || (_col$meta4 = col.meta) === null || _col$meta4 === void 0 ? void 0 : _col$meta4.editinputtype) || "string";
779
+ return (col === null || col === void 0 || (_col$meta4 = col.meta) === null || _col$meta4 === void 0 ? void 0 : _col$meta4.type) || (col === null || col === void 0 || (_col$meta5 = col.meta) === null || _col$meta5 === void 0 ? void 0 : _col$meta5.editinputtype) || "string";
768
780
  }();
769
781
  return {
770
782
  field: field,
@@ -1197,6 +1209,7 @@ var WmTableComponent = exports.WmTableComponent = /*#__PURE__*/(0, _react.memo)(
1197
1209
  table: table,
1198
1210
  enablesort: enablesort,
1199
1211
  rowClass: rowClass,
1212
+ ColClassSignature: ColClassSignature,
1200
1213
  sorting: sorting,
1201
1214
  columnSizing: columnSizing,
1202
1215
  rowSelection: rowSelection,
@@ -1222,7 +1235,10 @@ var WmTableComponent = exports.WmTableComponent = /*#__PURE__*/(0, _react.memo)(
1222
1235
  rowExpansionConfig: rowExpansionConfig,
1223
1236
  expandedRows: expandedRows,
1224
1237
  toggleRowExpansion: toggleRowExpansion,
1225
- isRowExpanded: isRowExpanded
1238
+ isRowExpanded: isRowExpanded,
1239
+ rowsVersion: tableData.length,
1240
+ ColClassSignature: ColClassSignature,
1241
+ tableData: tableData
1226
1242
  })))))), __jsx(_material.Box, {
1227
1243
  className: "panel-footer clearfix"
1228
1244
  }, showPagination && __jsx(_material.Box, {
@@ -29,7 +29,7 @@ var getDistinctFieldProperties = exports.getDistinctFieldProperties = function g
29
29
  props.filterExpr = formField.filterexpressions ? (0, _lodashEs.isObject)(formField.filterexpressions) ? formField.filterexpressions : JSON.parse(formField.filterexpressions) : {};
30
30
  } else {
31
31
  props.tableName = dataSource.execute(_types.DataSource.Operation.GET_ENTITY_NAME);
32
- fieldColumn = formField.field || formField.key;
32
+ fieldColumn = formField["fieldcol"] || formField.key;
33
33
  props.distinctField = fieldColumn;
34
34
  props.aliasColumn = fieldColumn;
35
35
  }
@@ -10,7 +10,6 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
  var _react = _interopRequireWildcard(require("react"));
12
12
  var _Dialog = _interopRequireDefault(require("@mui/material/Dialog"));
13
- var _Slide = _interopRequireDefault(require("@mui/material/Slide"));
14
13
  var _Fade = _interopRequireDefault(require("@mui/material/Fade"));
15
14
  var _clsx = _interopRequireDefault(require("clsx"));
16
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); }
@@ -18,21 +17,6 @@ var __jsx = _react["default"].createElement;
18
17
  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; }
19
18
  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; }
20
19
  var DEFAULT_CLASS = "modal fade in";
21
- var Transition = /*#__PURE__*/_react["default"].forwardRef(function Transition(props, ref) {
22
- return __jsx(_Slide["default"], (0, _extends2["default"])({
23
- direction: "down",
24
- ref: ref
25
- }, props, {
26
- timeout: {
27
- enter: 500,
28
- exit: 400
29
- },
30
- easing: {
31
- enter: "cubic-bezier(0.4, 0, 0.2, 1)",
32
- exit: "cubic-bezier(0.4, 0, 0.2, 1)"
33
- }
34
- }));
35
- });
36
20
  var FadeTransition = /*#__PURE__*/_react["default"].forwardRef(function FadeTransition(props, ref) {
37
21
  return __jsx(_Fade["default"], (0, _extends2["default"])({
38
22
  ref: ref
@@ -47,6 +31,19 @@ var FadeTransition = /*#__PURE__*/_react["default"].forwardRef(function FadeTran
47
31
  }
48
32
  }), props.children);
49
33
  });
34
+
35
+ // Memoized body scroll management
36
+ var useBodyScrollLock = function useBodyScrollLock(lock) {
37
+ (0, _react.useEffect)(function () {
38
+ if (!lock || typeof document === "undefined") return;
39
+ var body = document.body;
40
+ var originalOverflow = body.style.overflow;
41
+ body.style.overflow = "hidden";
42
+ return function () {
43
+ body.style.overflow = originalOverflow;
44
+ };
45
+ }, [lock]);
46
+ };
50
47
  var WmDialog = exports.WmDialog = /*#__PURE__*/(0, _react.memo)(function (props) {
51
48
  var children = props.children,
52
49
  className = props.className,
@@ -72,6 +69,7 @@ var WmDialog = exports.WmDialog = /*#__PURE__*/(0, _react.memo)(function (props)
72
69
  if (!open) {
73
70
  return null;
74
71
  }
72
+ useBodyScrollLock(open);
75
73
  var sheetPositionStyles = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, props.sheetposition === "top" && {
76
74
  position: "absolute",
77
75
  top: 0
@@ -51,7 +51,8 @@ var WmCurrency = function WmCurrency(props) {
51
51
  inputmode = _props$inputmode === void 0 ? "natural" : _props$inputmode,
52
52
  _props$decimalplaces = props.decimalplaces,
53
53
  decimalplaces = _props$decimalplaces === void 0 ? 0 : _props$decimalplaces,
54
- updateon = props.updateon,
54
+ _props$updateon = props.updateon,
55
+ updateon = _props$updateon === void 0 ? "blur" : _props$updateon,
55
56
  _props$updatedelay = props.updatedelay,
56
57
  updatedelay = _props$updatedelay === void 0 ? "0" : _props$updatedelay,
57
58
  onChange = props.onChange,
@@ -100,7 +101,7 @@ var WmCurrency = function WmCurrency(props) {
100
101
  var debouncedUpdateValue = (0, _react.useCallback)(lodash.debounce(function (value) {
101
102
  var validation = validateValue(value);
102
103
  setShowError(!validation.isValid);
103
- if (validation.isValid && (onChange || listener !== null && listener !== void 0 && listener.onChange)) {
104
+ if (onChange || listener !== null && listener !== void 0 && listener.onChange) {
104
105
  (0, _formatUtil.handleValidatedValueUpdate)(value, name, inputEl.current, onChange, listener, prevDatavalue, setPrevDatavalue, props);
105
106
  }
106
107
  }, parseInt(updatedelay || "10"), {
@@ -219,7 +220,7 @@ var WmCurrency = function WmCurrency(props) {
219
220
  setPrevDatavalue(datavalue);
220
221
  }
221
222
  }, [initialDataValue]);
222
- var events = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, onClick ? {
223
+ var events = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, onClick ? {
223
224
  onClick: handleClick
224
225
  } : {}), onMouseEnter ? {
225
226
  onMouseEnter: handleMouseEnter
@@ -227,6 +228,12 @@ var WmCurrency = function WmCurrency(props) {
227
228
  onMouseLeave: handleMouseLeave
228
229
  } : {}), onFocus ? {
229
230
  onFocus: handleFocus
231
+ } : {}), onBlur ? {
232
+ onBlur: handleBlur
233
+ } : {}), onChange ? {
234
+ onChange: handleInputChange
235
+ } : {}), onKeyDown ? {
236
+ onKeyDown: handleKeyDown
230
237
  } : {});
231
238
  return __jsx(_material.Box, {
232
239
  component: "div",
@@ -254,10 +261,7 @@ var WmCurrency = function WmCurrency(props) {
254
261
  tabIndex: tabindex,
255
262
  accessKey: shortcutkey,
256
263
  style: styles,
257
- ref: inputEl,
258
- onChange: handleInputChange,
259
- onBlur: handleBlur,
260
- onKeyDown: handleKeyDown
264
+ ref: inputEl
261
265
  })));
262
266
  };
263
267
  var _default = exports["default"] = (0, _withBaseWrapper.withBaseWrapper)((0, _withFormController["default"])(/*#__PURE__*/_react["default"].memo(WmCurrency)));
@@ -55,7 +55,6 @@ var WmCheckbox = exports.WmCheckbox = /*#__PURE__*/(0, _react.memo)(function (pr
55
55
  rest = (0, _objectWithoutProperties2["default"])(props, _excluded);
56
56
  var checkboxRef = (0, _react.useRef)(null);
57
57
  var prevRefValue = (0, _react.useRef)(null);
58
- var isInitialized = (0, _react.useRef)(false);
59
58
 
60
59
  // Keep track of the actual value (not just boolean state)
61
60
  var _React$useState = _react["default"].useState(function () {
@@ -75,14 +74,13 @@ var WmCheckbox = exports.WmCheckbox = /*#__PURE__*/(0, _react.memo)(function (pr
75
74
 
76
75
  // Update actual value when datavalue prop changes
77
76
  (0, _react.useEffect)(function () {
78
- if (prevRefValue.current === datavalue || isInitialized.current) return;
77
+ if (prevRefValue.current === datavalue) return;
79
78
  if (datavalue === null || datavalue === undefined) {
80
79
  setActualValue(null);
81
80
  } else {
82
81
  var newValue = datavalue === checkedvalue ? checkedvalue : uncheckedvalue;
83
82
  setActualValue(newValue);
84
83
  prevRefValue.current = datavalue;
85
- isInitialized.current = true;
86
84
  var event = {
87
85
  target: {
88
86
  checked: newValue
@@ -97,6 +95,7 @@ var WmCheckbox = exports.WmCheckbox = /*#__PURE__*/(0, _react.memo)(function (pr
97
95
 
98
96
  // Update our internal state with the actual value
99
97
  setActualValue(newValue);
98
+ prevRefValue.current = newValue;
100
99
  if (listener !== null && listener !== void 0 && listener.onChange) {
101
100
  listener.onChange(props.fieldName || name, {
102
101
  datavalue: newValue // Pass the actual value, not boolean
@@ -9,7 +9,6 @@ exports["default"] = exports.WmCheckboxset = void 0;
9
9
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
12
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
12
  var _react = _interopRequireWildcard(require("react"));
14
13
  var _clsx = _interopRequireDefault(require("clsx"));
15
14
  var _Box = _interopRequireDefault(require("@mui/material/Box"));
@@ -23,6 +22,7 @@ var _constants = require("@wavemaker/react-runtime/components/constants");
23
22
  var _transformedDatasetUtils = require("@wavemaker/react-runtime/utils/transformedDataset-utils");
24
23
  var _input = require("@base-ui-components/react/input");
25
24
  var _withFormController = _interopRequireDefault(require("@wavemaker/react-runtime/components/data/form/form-controller/withFormController"));
25
+ var _listHelpers = require("@wavemaker/react-runtime/components/data/list/utils/list-helpers");
26
26
  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" != _typeof3(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); }
27
27
  var __jsx = _react["default"].createElement;
28
28
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -45,26 +45,6 @@ var normalizeDatavalue = function normalizeDatavalue(datavalue) {
45
45
  // Convert single value to array
46
46
  return [datavalue];
47
47
  };
48
-
49
- // Helper function to generate itemsPerRowClass
50
- var generateItemsPerRowClass = function generateItemsPerRowClass(itemsperrow) {
51
- if (!itemsperrow) {
52
- return "col-xs-12";
53
- }
54
- if (isNaN(parseInt(itemsperrow, 10))) {
55
- // Handle string of classes (e.g. "xs-1 sm-1 md-1 lg-1")
56
- return itemsperrow.split(" ").map(function (cls) {
57
- var _cls$split = cls.split("-"),
58
- _cls$split2 = (0, _slicedToArray2["default"])(_cls$split, 2),
59
- tier = _cls$split2[0],
60
- value = _cls$split2[1];
61
- return "col-".concat(tier, "-").concat(12 / parseInt(value, 10));
62
- }).join(" ");
63
- }
64
-
65
- // Handle single number value
66
- return "col-xs-".concat(12 / parseInt(itemsperrow, 10));
67
- };
68
48
  var WmCheckboxset = exports.WmCheckboxset = /*#__PURE__*/(0, _react.memo)(function (props) {
69
49
  var _props$disabled = props.disabled,
70
50
  disabled = _props$disabled === void 0 ? false : _props$disabled,
@@ -150,7 +130,7 @@ var WmCheckboxset = exports.WmCheckboxset = /*#__PURE__*/(0, _react.memo)(functi
150
130
 
151
131
  // Generate itemsPerRowClass
152
132
  var itemsPerRowClass = (0, _react.useMemo)(function () {
153
- return generateItemsPerRowClass(itemsperrow);
133
+ return (0, _listHelpers.getItemsPerRowClass)(itemsperrow);
154
134
  }, [itemsperrow]);
155
135
  var transformedDataset = (0, _react.useMemo)(function () {
156
136
  if (!dataset) return [];
@@ -22,6 +22,7 @@ var _transformedDatasetUtils = require("@wavemaker/react-runtime/utils/transform
22
22
  var _constants = require("@wavemaker/react-runtime/components/constants");
23
23
  var _withBaseWrapper = _interopRequireDefault(require("@wavemaker/react-runtime/higherOrder/withBaseWrapper"));
24
24
  var _withFormController = _interopRequireDefault(require("@wavemaker/react-runtime/components/data/form/form-controller/withFormController"));
25
+ var _listHelpers = require("@wavemaker/react-runtime/components/data/list/utils/list-helpers");
25
26
  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); }
26
27
  var __jsx = _react["default"].createElement;
27
28
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -125,7 +126,9 @@ var WmRadioset = /*#__PURE__*/(0, _react.memo)(function (props) {
125
126
  var _useState6 = (0, _react.useState)(null),
126
127
  error = _useState6[0],
127
128
  setError = _useState6[1];
128
- var itemsPerRowClass = "items-per-row-".concat(itemsperrow.replace(/\s+/g, "-"));
129
+ var itemsPerRowClass = (0, _react.useMemo)(function () {
130
+ return (0, _listHelpers.getItemsPerRowClass)(itemsperrow);
131
+ }, [itemsperrow]);
129
132
  var handleBlur = (0, _react.useCallback)(function () {
130
133
  if (onblur) onblur();
131
134
  }, [onblur]);
@@ -182,9 +185,7 @@ var WmRadioset = /*#__PURE__*/(0, _react.memo)(function (props) {
182
185
  }
183
186
  }, [groupby, localDatasetItems, collapsible, transformedDataset]);
184
187
  (0, _react.useEffect)(function () {
185
- if (datavalue !== undefined) {
186
- setSelectedKey(datavalue);
187
- }
188
+ setSelectedKey(datavalue);
188
189
  }, [datavalue]);
189
190
  var handleGroupClick = (0, _react.useCallback)(function (key, event) {
190
191
  setExpandedItems(function (prevState) {
@@ -14,8 +14,10 @@ var _TimePicker = require("@mui/x-date-pickers/TimePicker");
14
14
  var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
15
15
  var _clsx = _interopRequireDefault(require("clsx"));
16
16
  var _BaseDateTime = _interopRequireDefault(require("@wavemaker/react-runtime/higherOrder/BaseDateTime"));
17
+ var _withFormController = _interopRequireDefault(require("@wavemaker/react-runtime/components/data/form/form-controller/withFormController"));
17
18
  var _utils = require("./utils");
18
19
  var _styled = require("./styled");
20
+ var _store = require("@wavemaker/react-runtime/store");
19
21
  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
22
  var __jsx = _react["default"].createElement;
21
23
  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; }
@@ -31,7 +33,9 @@ var WmDateTime = exports.WmDateTime = function WmDateTime(props) {
31
33
  shortcutkey = props.shortcutkey,
32
34
  datavalue = props.datavalue,
33
35
  _props$datepattern = props.datepattern,
34
- datepattern = _props$datepattern === void 0 ? "MMM d, y h:mm:ss a" : _props$datepattern,
36
+ datepattern = _props$datepattern === void 0 ? (0, _store.useAppSelector)(function (state) {
37
+ return "".concat(state.i18n.dateFormat, " ").concat(state.i18n.timeFormat) || "MMM d, y h:mm:ss a";
38
+ }) : _props$datepattern,
35
39
  _props$hourstep = props.hourstep,
36
40
  hourstep = _props$hourstep === void 0 ? 1 : _props$hourstep,
37
41
  _props$minutestep = props.minutestep,
@@ -653,4 +657,4 @@ var WmDateTime = exports.WmDateTime = function WmDateTime(props) {
653
657
  }));
654
658
  };
655
659
  WmDateTime.displayName = "WmDateTime";
656
- var _default = exports["default"] = (0, _BaseDateTime["default"])(WmDateTime);
660
+ var _default = exports["default"] = (0, _BaseDateTime["default"])((0, _withFormController["default"])(WmDateTime));
@@ -12,6 +12,7 @@ var _xDatePickers = require("@mui/x-date-pickers");
12
12
  var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
13
13
  var _clsx = _interopRequireDefault(require("clsx"));
14
14
  var _BaseDateTime = _interopRequireDefault(require("@wavemaker/react-runtime/higherOrder/BaseDateTime"));
15
+ var _withFormController = _interopRequireDefault(require("@wavemaker/react-runtime/components/data/form/form-controller/withFormController"));
15
16
  var _utils = require("./utils");
16
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); }
17
18
  var __jsx = _react["default"].createElement;
@@ -409,4 +410,4 @@ var WmTime = function WmTime(props) {
409
410
  }));
410
411
  };
411
412
  WmTime.displayName = "WmTime";
412
- var _default = exports["default"] = (0, _BaseDateTime["default"])(WmTime);
413
+ var _default = exports["default"] = (0, _BaseDateTime["default"])((0, _withFormController["default"])(WmTime));
@@ -104,8 +104,8 @@ var WmNumber = /*#__PURE__*/(0, _react.memo)(function (props) {
104
104
  currentTarget: inputEl.current
105
105
  };
106
106
  listener === null || listener === void 0 || (_listener$onChange = listener.onChange) === null || _listener$onChange === void 0 || _listener$onChange.call(listener, props.fieldName || name, {
107
- datavalue: value == null ? "" : parseInt(value.toString()),
108
- value: value == null ? "" : parseInt(value.toString()),
107
+ datavalue: value == null ? "" : value,
108
+ value: value == null ? "" : value,
109
109
  displayValue: value == null ? "" : value.toString()
110
110
  }, value, prevDatavalue);
111
111
  if (onChange) {
@@ -7,6 +7,7 @@ exports.autoCapitalize = autoCapitalize;
7
7
  exports.removeDisplayFormat = exports.formatInput = void 0;
8
8
  var formatInput = exports.formatInput = function formatInput(value, format) {
9
9
  if (!format || !value) return value;
10
+ value = value.toString();
10
11
  var digitsOnly = value.replace(/\D/g, "");
11
12
  var formatDigits = format.replace(/[^9]/g, "");
12
13
  var maxDigits = formatDigits.length;
@@ -146,6 +147,7 @@ var formatInput = exports.formatInput = function formatInput(value, format) {
146
147
  */
147
148
  var removeDisplayFormat = exports.removeDisplayFormat = function removeDisplayFormat(value, format) {
148
149
  if (!format || !value) return value;
150
+ value = value.toString();
149
151
 
150
152
  // For alphanumeric formats (like AA-9999), keep both letters and numbers
151
153
  if (format.includes("A")) {
@@ -100,32 +100,30 @@ var WmTextarea = /*#__PURE__*/(0, _react.memo)(function (props) {
100
100
  };
101
101
  }, [required, regexp, maxchars]);
102
102
  var updateValue = (0, _react.useCallback)(function (newValue, validation) {
103
- if (validation.isValid) {
104
- isInternalUpdate.current = true;
105
- if (listener !== null && listener !== void 0 && listener.onChange) {
106
- listener.onChange(props.fieldName || name, {
107
- datavalue: newValue,
103
+ isInternalUpdate.current = true;
104
+ if (listener !== null && listener !== void 0 && listener.onChange) {
105
+ listener.onChange(props.fieldName || name, {
106
+ datavalue: newValue,
107
+ value: newValue,
108
+ charlength: newValue === null || newValue === void 0 ? void 0 : newValue.length
109
+ });
110
+ }
111
+ if (onChange) {
112
+ var syntheticEvent = {
113
+ target: {
108
114
  value: newValue,
109
- charlength: newValue === null || newValue === void 0 ? void 0 : newValue.length
110
- });
111
- }
112
- if (onChange) {
113
- var syntheticEvent = {
114
- target: {
115
- value: newValue,
116
- name: name
117
- },
118
- currentTarget: textareaRef.current
119
- };
120
- onChange(syntheticEvent, props, newValue, valueRef.current);
121
- }
122
-
123
- // We need this setTimeout to ensure external updates don't override
124
- // our internal update immediately
125
- setTimeout(function () {
126
- isInternalUpdate.current = false;
127
- }, 0);
115
+ name: name
116
+ },
117
+ currentTarget: textareaRef.current
118
+ };
119
+ onChange(syntheticEvent, props, newValue, valueRef.current);
128
120
  }
121
+
122
+ // We need this setTimeout to ensure external updates don't override
123
+ // our internal update immediately
124
+ setTimeout(function () {
125
+ isInternalUpdate.current = false;
126
+ }, 0);
129
127
  }, [onChange, listener === null || listener === void 0 ? void 0 : listener.onChange]);
130
128
 
131
129
  // Debounced update with stable reference
@@ -37,7 +37,7 @@ function WmLeftPanel(props) {
37
37
  id: id,
38
38
  component: "div",
39
39
  sx: styles,
40
- className: (0, _clsx["default"])(DEFAULT_CLASS, className, "col-sm-".concat(columnwidth, " app-nav-").concat(navtype))
40
+ className: (0, _clsx["default"])(DEFAULT_CLASS, className, "col-sm-".concat(columnwidth, " ").concat(navtype ? "app-nav-".concat(navtype) : "", " ").concat(navheight ? "app-nav-".concat(navheight) : ""))
41
41
  }, children);
42
42
  }
43
43
  WmLeftPanel.displayName = "WmLeftPanel";
@@ -14,7 +14,8 @@ var _navItem = require("@wavemaker/react-runtime/components/navbar/nav-item");
14
14
  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
- var _constants = require("../../../core/constants");
17
+ var _utils = require("@wavemaker/react-runtime/core/util/utils");
18
+ var _utils2 = require("../../../core/util/utils");
18
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); }
19
20
  var __jsx = _react["default"].createElement;
20
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; }
@@ -35,30 +36,117 @@ var WmNav = /*#__PURE__*/(0, _react.memo)(function (props) {
35
36
  name = props.name,
36
37
  styles = props.styles,
37
38
  id = props.id;
39
+ var path = (0, _utils2.getCurrentPath)();
40
+ var _useState = (0, _react.useState)(null),
41
+ activeNavItemIndex = _useState[0],
42
+ setActiveNavItemIndex = _useState[1];
43
+ var _useState2 = (0, _react.useState)(null),
44
+ hoveredNavItemIndex = _useState2[0],
45
+ setHoveredNavItemIndex = _useState2[1];
46
+ var activeNavItemIndexRef = (0, _react.useRef)(null);
47
+ var triggerActionClickForAnchor = function triggerActionClickForAnchor(e, item) {
48
+ e === null || e === void 0 || e.preventDefault();
49
+ (0, _utils.triggerItemAction)({
50
+ label: getItemLabel(item),
51
+ link: item[props.itemlink || "link"],
52
+ target: item[props.itemtarget]
53
+ });
54
+ };
55
+
56
+ // Helper function to get the label - handles both string and function
57
+ var getItemLabel = function getItemLabel(item) {
58
+ var itemlabel = props.itemlabel;
59
+ if (typeof itemlabel === "function") {
60
+ try {
61
+ return itemlabel(item);
62
+ } catch (error) {
63
+ console.warn("Error in itemlabel function:", error);
64
+ }
65
+ }
66
+
67
+ // If itemlabel is a string, use it as property name
68
+ if (typeof itemlabel === "string") {
69
+ return item[itemlabel];
70
+ }
71
+
72
+ // Fallback
73
+ return item["label"];
74
+ };
75
+
76
+ // Handler to activate nav item when menu detects active item or menu item is clicked
77
+ var handleNavItemActivate = (0, _react.useCallback)(function (navItemIndex) {
78
+ return function () {
79
+ activeNavItemIndexRef.current = navItemIndex;
80
+ setActiveNavItemIndex(navItemIndex);
81
+ };
82
+ }, []);
83
+
84
+ // Handler for nav item hover enter
85
+ var handleNavItemMouseEnter = (0, _react.useCallback)(function (index) {
86
+ return function (event) {
87
+ setHoveredNavItemIndex(index);
88
+ };
89
+ }, []);
90
+
91
+ // Handler for nav item hover leave
92
+ var handleNavItemMouseLeave = (0, _react.useCallback)(function (event) {
93
+ setHoveredNavItemIndex(null);
94
+ }, []);
95
+
96
+ // Check if nav item should be active - menu handles its own active detection
97
+ var isNavItemActive = (0, _react.useCallback)(function (item, index) {
98
+ var currentActiveIndex = activeNavItemIndexRef.current;
99
+ if (currentActiveIndex !== null && currentActiveIndex !== undefined) {
100
+ return currentActiveIndex === index;
101
+ }
102
+ var subActions = item["itemchildren"] || item["children"] || item["SubActions"];
103
+ var hasSubactions = Array.isArray(subActions) && subActions.length > 0;
104
+ if (hasSubactions) {
105
+ return false;
106
+ }
107
+ var itemLink = (0, _utils2.getItemLink)(item, props);
108
+ if (itemLink) {
109
+ var currentRoute = "#/".concat(path.split("/").filter(Boolean).pop() || "");
110
+ if (itemLink === currentRoute || path === itemLink.replace("#", "")) {
111
+ return true;
112
+ }
113
+ }
114
+ return false;
115
+ }, [activeNavItemIndex, path]);
38
116
  var renderNavItem = function renderNavItem() {
39
117
  if (props.dataset && props.dataset.length > 0) {
40
118
  return props.dataset.map(function (item, index) {
119
+ var label = getItemLabel(item);
120
+ var isActive = isNavItemActive(item, index);
41
121
  var subActions = item["itemchildren"] || item["children"] || item["SubActions"];
42
122
  var hasSubactions = Array.isArray(subActions) && subActions.length > 0;
43
123
  var childComponent = hasSubactions ? __jsx(_menu["default"], {
44
124
  name: "",
45
125
  itemlabel: props.itemlabel,
126
+ itemlink: props.itemlink,
127
+ itemicon: props.itemicon,
46
128
  listener: {},
47
129
  iconclass: item[props.itemicon],
48
- caption: item[props.itemlabel || "label"],
130
+ caption: label,
49
131
  dataset: subActions,
50
132
  type: "anchor",
51
- onSelect: props.onSelect
133
+ isFromNav: true,
134
+ onNavItemActivate: handleNavItemActivate(index),
135
+ onSelect: props.onSelect,
136
+ isNavFromMenu: true
52
137
  }) : __jsx(_anchor.WmAnchor, {
53
138
  name: "",
54
139
  listener: {},
55
- caption: item[props.itemlabel || "label"],
140
+ caption: label,
56
141
  iconclass: item[props.itemicon],
57
142
  iconposition: item[props.iconposition],
58
143
  iconheight: item[props.iconheight],
59
144
  iconwidth: item[props.iconwidth],
60
145
  iconmargin: item[props.iconmargin],
61
- hyperlink: (0, _constants.hyperLinkMofify)(item[props.itemlink || "link"]),
146
+ hyperlink: "#",
147
+ onClick: function onClick(e) {
148
+ return triggerActionClickForAnchor(e, item);
149
+ },
62
150
  target: item[props.itemtarget],
63
151
  action: item[props.itemaction],
64
152
  badgevalue: item[props.itembadge],
@@ -69,8 +157,10 @@ var WmNav = /*#__PURE__*/(0, _react.memo)(function (props) {
69
157
  key: index,
70
158
  name: "",
71
159
  listener: {},
72
- className: hasSubactions ? "nav-".concat(type) : undefined,
73
- hint: item[props.itemhint]
160
+ className: (0, _clsx["default"])(hasSubactions ? "nav-".concat(type) : "", isActive ? "active" : "", hoveredNavItemIndex === index ? "active" : ""),
161
+ hint: item[props.itemhint],
162
+ onMouseEnter: handleNavItemMouseEnter(index),
163
+ onMouseLeave: handleNavItemMouseLeave
74
164
  }, childComponent);
75
165
  });
76
166
  }
@@ -20,7 +20,8 @@ var WmNavItem = exports.WmNavItem = /*#__PURE__*/(0, _react.memo)(function (prop
20
20
  var className = props.className,
21
21
  styles = props.styles,
22
22
  id = props.id,
23
- name = props.name;
23
+ onMouseEnter = props.onMouseEnter,
24
+ onMouseLeave = props.onMouseLeave;
24
25
  return __jsx(_ListItem["default"], {
25
26
  name: name,
26
27
  id: id,
@@ -32,7 +33,9 @@ var WmNavItem = exports.WmNavItem = /*#__PURE__*/(0, _react.memo)(function (prop
32
33
  padding: "inherit"
33
34
  }),
34
35
  className: (0, _clsx["default"])(DEFAULT_CLASS, className),
35
- title: props.hint
36
+ title: props.hint,
37
+ onMouseEnter: onMouseEnter,
38
+ onMouseLeave: onMouseLeave
36
39
  }, props.children);
37
40
  }, function (prev, current) {
38
41
  var keys = ["className", "styles", "children"];