@wavemaker/react-runtime 11.14.2-rc.6311 → 11.14.4-rc.647538
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.
- package/actions/navigation-action.js +3 -5
- package/actions/notification-action.js +3 -6
- package/components/basic/anchor/index.js +7 -6
- package/components/basic/label/index.js +2 -2
- package/components/basic/search/index.js +3 -7
- package/components/chart/components/barColumnChart/index.js +4 -2
- package/components/chart/components/pieDonutChart/index.js +1 -3
- package/components/chart/index.js +39 -72
- package/components/chart/utils.js +12 -23
- package/components/container/index.js +7 -6
- package/components/container/panel/components/panel-header/index.js +2 -3
- package/components/container/panel/index.js +9 -13
- package/components/container/tabs/index.js +0 -1
- package/components/container/tabs/tab-pane/index.js +3 -39
- package/components/container/wizard/index.js +57 -187
- package/components/container/wizard/utils.js +1 -1
- package/components/container/wizard/wizard-action/index.js +4 -9
- package/components/container/wizard/wizard-step/index.js +8 -21
- package/components/data/form/base-form/index.js +11 -51
- package/components/data/form/form-controller/withFormController.js +10 -7
- package/components/data/list/components/GroupedListItems.js +1 -5
- package/components/data/list/components/ListItemWithTemplate.js +1 -4
- package/components/data/list/hooks/useListEffects.js +14 -34
- package/components/data/list/hooks/useListEventHandlers.js +2 -18
- package/components/data/list/hooks/useListState.js +2 -15
- package/components/data/list/index.js +0 -1
- package/components/data/list/utils/list-helpers.js +5 -3
- package/components/data/list/utils/list-widget-methods.js +1 -1
- package/components/data/live-filter/index.js +5 -6
- package/components/data/live-form/index.js +14 -24
- package/components/data/table/components/TableBody.js +21 -5
- package/components/data/table/components/TableHeader.js +1 -5
- package/components/data/table/index.js +5 -21
- package/components/data/utils/field-data-utils.js +1 -1
- package/components/dialogs/index.js +16 -14
- package/components/input/currency/index.js +7 -11
- package/components/input/default/checkbox/index.js +3 -2
- package/components/input/default/checkboxset/index.js +22 -2
- package/components/input/default/radioset/index.js +4 -5
- package/components/input/epoch/datetime/index.js +2 -6
- package/components/input/epoch/time/index.js +1 -2
- package/components/input/number/index.js +2 -2
- package/components/input/text/util.js +0 -2
- package/components/input/textarea/index.js +24 -22
- package/components/layout/leftnav/index.js +1 -1
- package/components/navbar/nav/index.js +7 -97
- package/components/navbar/nav-item/index.js +2 -5
- package/components/navigation/menu/index.js +12 -73
- package/components/navigation/popover/index.js +0 -2
- package/components/page/error-boundary/index.js +0 -1
- package/components/prefab/container/index.js +3 -10
- package/context/LocalizationProvider.js +0 -1
- package/context/PrefabContext.js +13 -138
- package/context/WidgetProvider.js +2 -2
- package/core/constants/events.js +6 -12
- package/core/constants/index.js +11 -6
- package/core/formatter/number-formatters.js +1 -1
- package/core/proxy-service.js +36 -72
- package/core/util/utils.js +4 -23
- package/higherOrder/BaseApp.js +18 -60
- package/higherOrder/BasePage.js +77 -99
- package/higherOrder/BasePrefab.js +5 -13
- package/higherOrder/withBaseWrapper.js +3 -3
- package/hooks/useDataSourceSubscription.js +1 -1
- package/hooks/useHttp.js +13 -20
- package/mui-config/theme.js +0 -3
- package/package-lock.json +1115 -1013
- package/package.json +3 -3
- package/store/index.js +1 -5
- package/variables/service-variable.js +14 -17
- package/components/chart/hooks/useBarYAxisExtras.js +0 -52
- package/components/chart/hooks/useXAxisConfig.js +0 -98
- package/utils/lib-error-skipper.js +0 -196
|
@@ -14,6 +14,7 @@ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
|
14
14
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
15
15
|
var _reactHookForm = require("react-hook-form");
|
|
16
16
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
17
|
+
var _Box = _interopRequireDefault(require("@mui/material/Box"));
|
|
17
18
|
var _validationContrustor = require("@wavemaker/react-runtime/components/data/form/form-controller/validation-contrustor");
|
|
18
19
|
var _WidgetProvider = require("@wavemaker/react-runtime/context/WidgetProvider");
|
|
19
20
|
var _formContext = require("@wavemaker/react-runtime/components/data/form/form-context");
|
|
@@ -200,7 +201,7 @@ var withFormController = function withFormController(WrappedComponent) {
|
|
|
200
201
|
}
|
|
201
202
|
|
|
202
203
|
// If the incoming value is an object and we have a datafield, extract the value
|
|
203
|
-
if (valueToSet && (0, _typeof2["default"])(valueToSet) === "object" && !Array.isArray(valueToSet) && props.datafield
|
|
204
|
+
if (valueToSet && (0, _typeof2["default"])(valueToSet) === "object" && !Array.isArray(valueToSet) && props.datafield) {
|
|
204
205
|
valueToSet = valueToSet[props.datafield];
|
|
205
206
|
}
|
|
206
207
|
if (type === "number") {
|
|
@@ -266,9 +267,9 @@ var withFormController = function withFormController(WrappedComponent) {
|
|
|
266
267
|
hidden: contextFormRef === null || contextFormRef === void 0 ? void 0 : contextFormRef.isViewMode
|
|
267
268
|
})
|
|
268
269
|
});
|
|
269
|
-
return __jsx("
|
|
270
|
-
|
|
271
|
-
width: "
|
|
270
|
+
return __jsx(_Box["default"], {
|
|
271
|
+
sx: {
|
|
272
|
+
width: "inherit"
|
|
272
273
|
}
|
|
273
274
|
}, __jsx(WrappedComponent, (0, _extends2["default"])({}, controlledProps, {
|
|
274
275
|
dataset: props.dataset,
|
|
@@ -289,7 +290,8 @@ var withFormController = function withFormController(WrappedComponent) {
|
|
|
289
290
|
}
|
|
290
291
|
}
|
|
291
292
|
return value;
|
|
292
|
-
}()), hint && !shouldShowErrorMessage(validationType, fieldState, touched) && __jsx("
|
|
293
|
+
}()), hint && !shouldShowErrorMessage(validationType, fieldState, touched) && __jsx(_Box["default"], {
|
|
294
|
+
component: "p",
|
|
293
295
|
className: "help-block",
|
|
294
296
|
"aria-hidden": "true",
|
|
295
297
|
role: "alert",
|
|
@@ -298,12 +300,13 @@ var withFormController = function withFormController(WrappedComponent) {
|
|
|
298
300
|
textAlign: "start",
|
|
299
301
|
width: "100%"
|
|
300
302
|
}
|
|
301
|
-
}, hint), shouldShowErrorMessage(validationType, fieldState, touched) && __jsx("
|
|
303
|
+
}, hint), shouldShowErrorMessage(validationType, fieldState, touched) && __jsx(_Box["default"], {
|
|
304
|
+
component: "p",
|
|
302
305
|
className: "help-block text-danger",
|
|
303
306
|
"aria-hidden": "false",
|
|
304
307
|
role: "alert",
|
|
305
308
|
"aria-live": "assertive",
|
|
306
|
-
|
|
309
|
+
sx: {
|
|
307
310
|
textAlign: "start",
|
|
308
311
|
width: "100%"
|
|
309
312
|
}
|
|
@@ -50,10 +50,6 @@ var GroupedListItems = exports.GroupedListItems = function GroupedListItems(_ref
|
|
|
50
50
|
return __jsx(_react["default"].Fragment, null, groupsToRender.map(function (groupObj) {
|
|
51
51
|
var isGroupCollapsed = groupCollapsed[groupObj.key] || false;
|
|
52
52
|
var displayCount = groupObj.originalDataLength || groupObj.data.length;
|
|
53
|
-
// Build itemclass for grouped items: if function, wrap to append group class
|
|
54
|
-
var groupedItemClass = typeof itemclass === "function" ? function (it) {
|
|
55
|
-
return (0, _clsx["default"])(itemclass(it), "group-list-item");
|
|
56
|
-
} : (0, _clsx["default"])(itemclass, "group-list-item");
|
|
57
53
|
return __jsx("li", {
|
|
58
54
|
key: "group_".concat(groupObj.key),
|
|
59
55
|
className: "app-list-item-group clearfix"
|
|
@@ -84,7 +80,7 @@ var GroupedListItems = exports.GroupedListItems = function GroupedListItems(_ref
|
|
|
84
80
|
isFirst: isFirst,
|
|
85
81
|
isLast: isLast,
|
|
86
82
|
disableitem: disableitem,
|
|
87
|
-
itemclass:
|
|
83
|
+
itemclass: (0, _clsx["default"])(itemclass, "group-list-item"),
|
|
88
84
|
itemsPerRowClass: itemsPerRowClass,
|
|
89
85
|
name: "".concat(name, "_group_").concat(groupObj.key),
|
|
90
86
|
tabIndex: tabIndex,
|
|
@@ -36,14 +36,11 @@ var ListItemWithTemplate = exports.ListItemWithTemplate = function ListItemWithT
|
|
|
36
36
|
onItemMouseEnter = _ref.onItemMouseEnter,
|
|
37
37
|
onItemMouseLeave = _ref.onItemMouseLeave;
|
|
38
38
|
var templateContent = renderItem ? renderItem(item, globalIndex !== null && globalIndex !== void 0 ? globalIndex : index) : itemTemplate || __jsx(_mediaTemplate.MediaWmListtemplate, null);
|
|
39
|
-
|
|
40
|
-
// Resolve item class: support string or function callback
|
|
41
|
-
var resolvedItemClass = typeof itemclass === "function" ? itemclass(item) : itemclass;
|
|
42
39
|
return __jsx(_ListItem.WmListItem, {
|
|
43
40
|
key: itemId,
|
|
44
41
|
item: item,
|
|
45
42
|
disableItem: disableitem,
|
|
46
|
-
itemClass: (0, _clsx["default"])(
|
|
43
|
+
itemClass: (0, _clsx["default"])(itemclass, itemsPerRowClass),
|
|
47
44
|
index: globalIndex !== null && globalIndex !== void 0 ? globalIndex : index,
|
|
48
45
|
isFirst: isFirst,
|
|
49
46
|
isLast: isLast,
|
|
@@ -52,8 +52,7 @@ var useListEffects = exports.useListEffects = function useListEffects(props) {
|
|
|
52
52
|
var _useState = (0, _react.useState)(paginationState.currentPageSize),
|
|
53
53
|
lastPageSize = _useState[0],
|
|
54
54
|
setLastPageSize = _useState[1];
|
|
55
|
-
|
|
56
|
-
var rafRef2 = (0, _react.useRef)(null);
|
|
55
|
+
|
|
57
56
|
// Effect 1: Accumulate data for On-Demand navigation
|
|
58
57
|
(0, _react.useEffect)(function () {
|
|
59
58
|
if (navigation === _constants.LIST_NAVIGATION_TYPES.ON_DEMAND && datasource && safeDataset.length > 0) {
|
|
@@ -106,19 +105,11 @@ var useListEffects = exports.useListEffects = function useListEffects(props) {
|
|
|
106
105
|
getIndex: widgetMethods.getIndex,
|
|
107
106
|
clear: widgetMethods.clear,
|
|
108
107
|
getWidgets: widgetMethods.getWidgets,
|
|
109
|
-
showNavigation: showNavigation
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
}, []);
|
|
113
|
-
|
|
114
|
-
// Effect 3: Expose methods through widget instance
|
|
115
|
-
(0, _react.useEffect)(function () {
|
|
116
|
-
if (listener !== null && listener !== void 0 && listener.onChange) {
|
|
117
|
-
listener.onChange(name, {
|
|
108
|
+
showNavigation: showNavigation,
|
|
118
109
|
selecteditem: listState.selectedItems[0]
|
|
119
110
|
});
|
|
120
111
|
}
|
|
121
|
-
}, [listState.selectedItems]);
|
|
112
|
+
}, [widgetMethods.selectItem, widgetMethods.deselectItem, widgetMethods.getItem, widgetMethods.getIndex, widgetMethods.clear, widgetMethods.getWidgets, listState.selectedItems, listState.activeItems]);
|
|
122
113
|
|
|
123
114
|
// Effect 3b: Update selected item widgets for state restoration (not selectfirstitem)
|
|
124
115
|
var hasInitialWidgetUpdateRun = (0, _react.useRef)(false);
|
|
@@ -133,22 +124,18 @@ var useListEffects = exports.useListEffects = function useListEffects(props) {
|
|
|
133
124
|
hasInitialWidgetUpdateRun.current = true;
|
|
134
125
|
|
|
135
126
|
// Use double RAF to ensure DOM is fully updated
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
rafRef2.current = requestAnimationFrame(function () {
|
|
139
|
-
(0, _listHelpers.getSelectedItemWidgets)(null, listener, name);
|
|
140
|
-
});
|
|
127
|
+
requestAnimationFrame(function () {
|
|
128
|
+
(0, _listHelpers.getSelectedItemWidgets)(null, listener, name);
|
|
141
129
|
});
|
|
142
|
-
return function () {
|
|
143
|
-
if (rafRef1.current) {
|
|
144
|
-
cancelAnimationFrame(rafRef1.current);
|
|
145
|
-
}
|
|
146
|
-
if (rafRef2.current) {
|
|
147
|
-
cancelAnimationFrame(rafRef2.current);
|
|
148
|
-
}
|
|
149
|
-
};
|
|
150
130
|
}, [name, listState.selectedItems.length, initialRender, selectfirstitem]);
|
|
151
131
|
|
|
132
|
+
// Effect 4: Handle widgetInstance.selecteditem
|
|
133
|
+
(0, _react.useEffect)(function () {
|
|
134
|
+
if ((widgetInstance === null || widgetInstance === void 0 ? void 0 : widgetInstance.selecteditem) != undefined) {
|
|
135
|
+
widgetMethods.selectItem(widgetInstance.selecteditem);
|
|
136
|
+
}
|
|
137
|
+
}, [widgetInstance === null || widgetInstance === void 0 ? void 0 : widgetInstance.selecteditem]);
|
|
138
|
+
|
|
152
139
|
// Effect 5: Handle selectfirstitem with onSelect
|
|
153
140
|
(0, _react.useEffect)(function () {
|
|
154
141
|
if (selectfirstitem && widgetInstance && onSelect && listState.selectedItems.length > 0) {
|
|
@@ -284,15 +271,8 @@ var useListEffects = exports.useListEffects = function useListEffects(props) {
|
|
|
284
271
|
// Merge current state with existing state
|
|
285
272
|
var stateToSave = stateManager.mergeWithExisting(stateManager.currentState, existingState);
|
|
286
273
|
|
|
287
|
-
//
|
|
288
|
-
|
|
289
|
-
var stateToSaveStr = JSON.stringify(stateToSave);
|
|
290
|
-
var statesAreEqual = existingStateStr === stateToSaveStr;
|
|
291
|
-
|
|
292
|
-
// Save the state only if content has actually changed
|
|
293
|
-
if (!statesAreEqual) {
|
|
294
|
-
(0, _listHelpers.saveListState)(name, statehandler, stateToSave);
|
|
295
|
-
}
|
|
274
|
+
// Save the state
|
|
275
|
+
(0, _listHelpers.saveListState)(name, statehandler, stateToSave);
|
|
296
276
|
}
|
|
297
277
|
}, [listState.selectedItems, paginationState.currentPage, items, name, navigation, hasBeenReordered, statehandler]);
|
|
298
278
|
(0, _react.useEffect)(function () {
|
|
@@ -54,10 +54,6 @@ var useListEventHandlers = exports.useListEventHandlers = function useListEventH
|
|
|
54
54
|
setOnDemandCurrentPage = props.setOnDemandCurrentPage,
|
|
55
55
|
listener = props.listener,
|
|
56
56
|
name = props.name;
|
|
57
|
-
var selectedItemsRef = (0, _react.useRef)(selectedItems);
|
|
58
|
-
(0, _react.useEffect)(function () {
|
|
59
|
-
selectedItemsRef.current = selectedItems;
|
|
60
|
-
}, [selectedItems]);
|
|
61
57
|
|
|
62
58
|
// Helper function to call onSelect and mark as user-initiated
|
|
63
59
|
var callOnSelect = (0, _react.useCallback)(function (selectedItem) {
|
|
@@ -65,11 +61,6 @@ var useListEventHandlers = exports.useListEventHandlers = function useListEventH
|
|
|
65
61
|
if (userInitiatedSelectionRef) {
|
|
66
62
|
userInitiatedSelectionRef.current = true;
|
|
67
63
|
}
|
|
68
|
-
if (listener !== null && listener !== void 0 && listener.onChange) {
|
|
69
|
-
listener.onChange(name, {
|
|
70
|
-
selecteditem: multiselect ? selectedItemsRef.current : selectedItem
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
64
|
onSelect(widgetInstance, selectedItem);
|
|
74
65
|
}
|
|
75
66
|
}, [onSelect, widgetInstance, userInitiatedSelectionRef]);
|
|
@@ -96,7 +87,6 @@ var useListEventHandlers = exports.useListEventHandlers = function useListEventH
|
|
|
96
87
|
return;
|
|
97
88
|
}
|
|
98
89
|
var rangeItems = (0, _lodashEs.slice)(items, start, end + 1);
|
|
99
|
-
selectedItemsRef.current = rangeItems;
|
|
100
90
|
setSelectedItems(rangeItems);
|
|
101
91
|
setActiveItems(new Set(rangeItems));
|
|
102
92
|
// Only call onSelect if this is a new selection (not already active)
|
|
@@ -118,14 +108,12 @@ var useListEventHandlers = exports.useListEventHandlers = function useListEventH
|
|
|
118
108
|
var newSelectedItems = (0, _lodashEs.filter)(selectedItems, function (selectedItem) {
|
|
119
109
|
return selectedItem !== item;
|
|
120
110
|
});
|
|
121
|
-
selectedItemsRef.current = newSelectedItems;
|
|
122
111
|
setSelectedItems(newSelectedItems);
|
|
123
112
|
var newActiveItems = new Set(activeItems);
|
|
124
113
|
newActiveItems["delete"](item);
|
|
125
114
|
setActiveItems(newActiveItems);
|
|
126
115
|
} else {
|
|
127
116
|
var _newSelectedItems = [].concat((0, _toConsumableArray2["default"])(selectedItems), [item]);
|
|
128
|
-
selectedItemsRef.current = _newSelectedItems;
|
|
129
117
|
setSelectedItems(_newSelectedItems);
|
|
130
118
|
var _newActiveItems = new Set(activeItems);
|
|
131
119
|
_newActiveItems.add(item);
|
|
@@ -140,9 +128,7 @@ var useListEventHandlers = exports.useListEventHandlers = function useListEventH
|
|
|
140
128
|
// Normal click without Ctrl - select item without deselecting if already selected
|
|
141
129
|
if (!isItemSelected) {
|
|
142
130
|
// If clicking an unselected item, select only this item
|
|
143
|
-
|
|
144
|
-
selectedItemsRef.current = _newSelectedItems2;
|
|
145
|
-
setSelectedItems(_newSelectedItems2);
|
|
131
|
+
setSelectedItems([item]);
|
|
146
132
|
setActiveItems(new Set([item]));
|
|
147
133
|
setFirstSelectedItem(item);
|
|
148
134
|
// Only call onSelect if this is a new selection (not already active)
|
|
@@ -156,9 +142,7 @@ var useListEventHandlers = exports.useListEventHandlers = function useListEventH
|
|
|
156
142
|
// Single select mode - only select, don't deselect on normal click
|
|
157
143
|
if (!isItemSelected) {
|
|
158
144
|
// If clicking an unselected item, select it
|
|
159
|
-
|
|
160
|
-
selectedItemsRef.current = _newSelectedItems3;
|
|
161
|
-
setSelectedItems(_newSelectedItems3);
|
|
145
|
+
setSelectedItems([item]);
|
|
162
146
|
setActiveItems(new Set([item]));
|
|
163
147
|
setFirstSelectedItem(item);
|
|
164
148
|
// Only call onSelect if this is a new selection (not already active)
|
|
@@ -42,8 +42,6 @@ var useListState = exports.useListState = function useListState(dataset, pagesiz
|
|
|
42
42
|
isLoadingMore = _useState8[0],
|
|
43
43
|
setIsLoadingMore = _useState8[1];
|
|
44
44
|
var isInitialMount = (0, _react.useRef)(true);
|
|
45
|
-
var rafRef1 = (0, _react.useRef)(null);
|
|
46
|
-
var rafRef2 = (0, _react.useRef)(null);
|
|
47
45
|
(0, _react.useEffect)(function () {
|
|
48
46
|
// Ensure dataset is a valid array
|
|
49
47
|
var validDataset = Array.isArray(dataset) ? dataset : [];
|
|
@@ -73,23 +71,12 @@ var useListState = exports.useListState = function useListState(dataset, pagesiz
|
|
|
73
71
|
|
|
74
72
|
// Update selected item widgets after DOM is painted
|
|
75
73
|
if (listener !== null && listener !== void 0 && listener.onChange && name) {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
rafRef2.current = requestAnimationFrame(function () {
|
|
79
|
-
(0, _listHelpers.getSelectedItemWidgets)(null, listener, name);
|
|
80
|
-
});
|
|
74
|
+
requestAnimationFrame(function () {
|
|
75
|
+
(0, _listHelpers.getSelectedItemWidgets)(null, listener, name);
|
|
81
76
|
});
|
|
82
77
|
}
|
|
83
78
|
}
|
|
84
79
|
}
|
|
85
|
-
return function () {
|
|
86
|
-
if (rafRef1.current) {
|
|
87
|
-
cancelAnimationFrame(rafRef1.current);
|
|
88
|
-
}
|
|
89
|
-
if (rafRef2.current) {
|
|
90
|
-
cancelAnimationFrame(rafRef2.current);
|
|
91
|
-
}
|
|
92
|
-
};
|
|
93
80
|
}, [dataset, selectfirstitem, name]);
|
|
94
81
|
return {
|
|
95
82
|
selectedItems: selectedItems,
|
|
@@ -164,8 +164,10 @@ var getSelectedItemWidgets = exports.getSelectedItemWidgets = function getSelect
|
|
|
164
164
|
return result;
|
|
165
165
|
}, {});
|
|
166
166
|
if (listener) {
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
167
|
+
setTimeout(function () {
|
|
168
|
+
listener.onChange(name, {
|
|
169
|
+
selectedItemWidgets: currentItemWidgets
|
|
170
|
+
});
|
|
171
|
+
}, 0);
|
|
170
172
|
}
|
|
171
173
|
};
|
|
@@ -49,7 +49,7 @@ var useListWidgetMethods = exports.useListWidgetMethods = function useListWidget
|
|
|
49
49
|
onSelect(widgetInstance, item);
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
-
}, [listState.activeItems
|
|
52
|
+
}, [listState.activeItems]);
|
|
53
53
|
var deselectItem = (0, _react.useCallback)(function (val) {
|
|
54
54
|
var item = getItemByIndexOrModel(val);
|
|
55
55
|
if (!item) {
|
|
@@ -15,6 +15,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
15
15
|
var _lodashEs = require("lodash-es");
|
|
16
16
|
var _util = require("../../../core/util");
|
|
17
17
|
var _form = _interopRequireDefault(require("../form"));
|
|
18
|
+
var _withBaseWrapper = _interopRequireDefault(require("../../../higherOrder/withBaseWrapper"));
|
|
18
19
|
var _props = require("./props");
|
|
19
20
|
var _types = require("../types");
|
|
20
21
|
var _utils = require("../utils");
|
|
@@ -237,12 +238,10 @@ var WmLiveFilter = function WmLiveFilter(prop) {
|
|
|
237
238
|
}));
|
|
238
239
|
return _Livefilter.apply(this, arguments);
|
|
239
240
|
}
|
|
240
|
-
function onDataSourceChange(
|
|
241
|
+
function onDataSourceChange() {
|
|
241
242
|
if (isDataSourceUpdatedRef.current) return;
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
// let formFields = isArray(fields) ? fields : Object.values(fields || {});
|
|
245
|
-
|
|
243
|
+
var fields = (0, _lodashEs.get)(props.listener.Widgets[props.name], "formfields", []);
|
|
244
|
+
var formFields = (0, _lodashEs.isArray)(fields) ? fields : Object.values(fields || {});
|
|
246
245
|
if ((0, _lodashEs.get)(formFields, "length")) {
|
|
247
246
|
isDataSourceUpdatedRef.current = true;
|
|
248
247
|
}
|
|
@@ -277,4 +276,4 @@ var WmLiveFilter = function WmLiveFilter(prop) {
|
|
|
277
276
|
);
|
|
278
277
|
};
|
|
279
278
|
WmLiveFilter.displayName = "WmLiveFilter";
|
|
280
|
-
var _default = exports["default"] = WmLiveFilter;
|
|
279
|
+
var _default = exports["default"] = (0, _withBaseWrapper["default"])(WmLiveFilter);
|
|
@@ -1,56 +1,44 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
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 _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
12
11
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
12
|
var _props = require("./props");
|
|
14
13
|
var _form = _interopRequireDefault(require("../form"));
|
|
14
|
+
var _get = _interopRequireDefault(require("lodash-es/get"));
|
|
15
|
+
var _isArray = _interopRequireDefault(require("lodash-es/isArray"));
|
|
15
16
|
var _fieldDataUtils = require("../utils/field-data-utils");
|
|
16
17
|
var _replace = _interopRequireDefault(require("lodash-es/replace"));
|
|
17
|
-
var
|
|
18
|
-
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); }
|
|
18
|
+
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
19
|
var __jsx = _react["default"].createElement;
|
|
20
20
|
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
21
|
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; }
|
|
22
22
|
var WmLiveForm = function WmLiveForm(prop) {
|
|
23
|
+
var _props$listener;
|
|
23
24
|
var props = _objectSpread(_objectSpread({}, _props.DEFAULT_PROPS), prop);
|
|
24
25
|
var dynamicFieldsRef = (0, _react.useRef)([]);
|
|
25
26
|
var isDataSourceUpdatedRef = (0, _react.useRef)(false);
|
|
26
|
-
var dataSource = props.datasource;
|
|
27
|
-
function formSubmit(formData, success, error) {
|
|
28
|
-
var primaryKeys = dataSource.execute("getPrimaryKey");
|
|
29
|
-
var operationType = (0, _utils.findOperationType)(formData, primaryKeys);
|
|
27
|
+
var dataSource = (_props$listener = props.listener) === null || _props$listener === void 0 || (_props$listener = _props$listener.Variables) === null || _props$listener === void 0 ? void 0 : _props$listener[props.datasource];
|
|
28
|
+
function formSubmit(formData, success, error, operation) {
|
|
30
29
|
if (dynamicFieldsRef.current.length > 0) {
|
|
31
30
|
dynamicFieldsRef.current.forEach(function (field) {
|
|
32
31
|
var item = field.formKey;
|
|
33
32
|
formData[item] = field.dataset[formData[item] - 1];
|
|
34
33
|
});
|
|
35
34
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
operationType: operationType
|
|
39
|
-
}) : {
|
|
40
|
-
operationType: operationType
|
|
41
|
-
};
|
|
42
|
-
if (typeof success === "function") {
|
|
43
|
-
success(payload);
|
|
44
|
-
}
|
|
45
|
-
return payload;
|
|
46
|
-
};
|
|
47
|
-
if (operationType === "delete") {
|
|
48
|
-
props.formSubmit(formData, operationType, successWithOperationType, error);
|
|
35
|
+
if (operation === "delete") {
|
|
36
|
+
props.formSubmit(formData, operation, success, error);
|
|
49
37
|
return;
|
|
50
38
|
}
|
|
51
39
|
props.formSubmit({
|
|
52
40
|
inputFields: formData
|
|
53
|
-
},
|
|
41
|
+
}, operation, success, error);
|
|
54
42
|
}
|
|
55
43
|
function getRelatedTableData(formField) {
|
|
56
44
|
dataSource && dataSource.execute("getRelatedTableData", {
|
|
@@ -74,9 +62,11 @@ var WmLiveForm = function WmLiveForm(prop) {
|
|
|
74
62
|
});
|
|
75
63
|
});
|
|
76
64
|
}
|
|
77
|
-
function onDataSourceChange(
|
|
65
|
+
function onDataSourceChange() {
|
|
78
66
|
if (isDataSourceUpdatedRef.current) return;
|
|
79
|
-
|
|
67
|
+
var fields = (0, _get["default"])(props.listener.Widgets[props.name], "formfields", []);
|
|
68
|
+
var formFields = (0, _isArray["default"])(fields) ? fields : Object.values(fields || {});
|
|
69
|
+
if ((0, _get["default"])(formFields, "length")) {
|
|
80
70
|
isDataSourceUpdatedRef.current = true;
|
|
81
71
|
}
|
|
82
72
|
formFields.forEach(function (field) {
|
|
@@ -254,10 +254,26 @@ var TableBodyComponentBase = function TableBodyComponentBase(_ref4) {
|
|
|
254
254
|
className: "app-grid-content ".concat(_utils.TABLE_CSS_CLASSES.gridBody)
|
|
255
255
|
}, formposition === "top" && renderAddNewRow(), renderTableContent(), formposition === "bottom" && renderAddNewRow());
|
|
256
256
|
};
|
|
257
|
-
var TableBodyComponent = exports.TableBodyComponent = /*#__PURE__*/(0, _react.memo)(TableBodyComponentBase, function (
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
257
|
+
var TableBodyComponent = exports.TableBodyComponent = /*#__PURE__*/(0, _react.memo)(TableBodyComponentBase, function (prevProps, nextProps) {
|
|
258
|
+
// Since table key forces rebuilds on pagination, we can use simpler memoization
|
|
259
|
+
// Just prevent re-renders from function reference changes
|
|
260
|
+
|
|
261
|
+
// Allow re-render for these critical changes
|
|
262
|
+
if (prevProps.isLoading !== nextProps.isLoading) return false;
|
|
263
|
+
if (prevProps.rowClass !== nextProps.rowClass) return false;
|
|
264
|
+
if (prevProps.formposition !== nextProps.formposition) return false;
|
|
265
|
+
if (prevProps.nodatamessage !== nextProps.nodatamessage) return false;
|
|
266
|
+
|
|
267
|
+
// Check expandedRows
|
|
268
|
+
if (prevProps.expandedRows !== nextProps.expandedRows) {
|
|
269
|
+
var _prevProps$expandedRo, _nextProps$expandedRo;
|
|
270
|
+
var prevSize = ((_prevProps$expandedRo = prevProps.expandedRows) === null || _prevProps$expandedRo === void 0 ? void 0 : _prevProps$expandedRo.size) || 0;
|
|
271
|
+
var nextSize = ((_nextProps$expandedRo = nextProps.expandedRows) === null || _nextProps$expandedRo === void 0 ? void 0 : _nextProps$expandedRo.size) || 0;
|
|
272
|
+
if (prevSize !== nextSize) return false;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
// Block re-render only for function reference changes (prevents infinite loops)
|
|
276
|
+
// Table key handles pagination rebuilds, so we don't need complex row comparisons
|
|
277
|
+
return true; // Prevent re-render for function reference changes only
|
|
262
278
|
});
|
|
263
279
|
TableBodyComponent.displayName = "TableBodyComponent";
|
|
@@ -86,7 +86,6 @@ var TableHeaderComponent = exports.TableHeaderComponent = /*#__PURE__*/(0, _reac
|
|
|
86
86
|
key: headerGroup.id,
|
|
87
87
|
className: "".concat(_utils.TABLE_CSS_CLASSES.tableRow, " ").concat(rowClass)
|
|
88
88
|
}, headerGroup.headers.map(function (header, headerIndex) {
|
|
89
|
-
var _header$column$column;
|
|
90
89
|
var cells = [];
|
|
91
90
|
|
|
92
91
|
// Insert expansion header before this cell if it's at the calculated position
|
|
@@ -105,7 +104,7 @@ var TableHeaderComponent = exports.TableHeaderComponent = /*#__PURE__*/(0, _reac
|
|
|
105
104
|
// Add the regular header cell
|
|
106
105
|
cells.push(__jsx(_material.TableCell, {
|
|
107
106
|
key: header.id,
|
|
108
|
-
className:
|
|
107
|
+
className: _utils.TABLE_CSS_CLASSES.headerCell,
|
|
109
108
|
style: {
|
|
110
109
|
cursor: enablesort && header.column.getCanSort() ? "pointer" : "default",
|
|
111
110
|
userSelect: "none",
|
|
@@ -148,9 +147,6 @@ var TableHeaderComponent = exports.TableHeaderComponent = /*#__PURE__*/(0, _reac
|
|
|
148
147
|
// Compare props including the sorting state
|
|
149
148
|
var prevSorting = prevProps.sorting || [];
|
|
150
149
|
var nextSorting = nextProps.sorting || [];
|
|
151
|
-
if (prevProps.ColClassSignature !== nextProps.ColClassSignature) {
|
|
152
|
-
return false;
|
|
153
|
-
}
|
|
154
150
|
|
|
155
151
|
// Deep compare sorting arrays
|
|
156
152
|
var sortingEqual = prevSorting.length === nextSorting.length && prevSorting.every(function (prevSort, index) {
|
|
@@ -550,18 +550,6 @@ 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
|
-
|
|
565
553
|
// Use filter hook for filtering functionality
|
|
566
554
|
var _useTableFilter = (0, _hooks.useTableFilter)({
|
|
567
555
|
filterMode: filtermode,
|
|
@@ -746,12 +734,12 @@ var WmTableComponent = exports.WmTableComponent = /*#__PURE__*/(0, _react.memo)(
|
|
|
746
734
|
if (filtermode === "search") {
|
|
747
735
|
if (globalFilter || globalSearchColumn) {
|
|
748
736
|
// Find column type for the selected search column
|
|
749
|
-
var columnType = globalSearchColumn ? function (_col$
|
|
737
|
+
var columnType = globalSearchColumn ? function (_col$meta, _col$meta2) {
|
|
750
738
|
var col = (0, _lodashEs.find)(columnsForTable, function (c) {
|
|
751
739
|
var column = c;
|
|
752
740
|
return column.accessorKey === globalSearchColumn || column.id === globalSearchColumn;
|
|
753
741
|
});
|
|
754
|
-
return (col === null || col === void 0 || (_col$
|
|
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";
|
|
755
743
|
}() : "string";
|
|
756
744
|
return [{
|
|
757
745
|
field: globalSearchColumn || "",
|
|
@@ -771,12 +759,12 @@ var WmTableComponent = exports.WmTableComponent = /*#__PURE__*/(0, _react.memo)(
|
|
|
771
759
|
field = _ref5[0],
|
|
772
760
|
filter = _ref5[1];
|
|
773
761
|
// Find column type for each field
|
|
774
|
-
var columnType = function (_col$
|
|
762
|
+
var columnType = function (_col$meta3, _col$meta4) {
|
|
775
763
|
var col = (0, _lodashEs.find)(columnsForTable, function (c) {
|
|
776
764
|
var column = c;
|
|
777
765
|
return column.accessorKey === field || column.id === field;
|
|
778
766
|
});
|
|
779
|
-
return (col === null || col === void 0 || (_col$
|
|
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";
|
|
780
768
|
}();
|
|
781
769
|
return {
|
|
782
770
|
field: field,
|
|
@@ -1209,7 +1197,6 @@ var WmTableComponent = exports.WmTableComponent = /*#__PURE__*/(0, _react.memo)(
|
|
|
1209
1197
|
table: table,
|
|
1210
1198
|
enablesort: enablesort,
|
|
1211
1199
|
rowClass: rowClass,
|
|
1212
|
-
ColClassSignature: ColClassSignature,
|
|
1213
1200
|
sorting: sorting,
|
|
1214
1201
|
columnSizing: columnSizing,
|
|
1215
1202
|
rowSelection: rowSelection,
|
|
@@ -1235,10 +1222,7 @@ var WmTableComponent = exports.WmTableComponent = /*#__PURE__*/(0, _react.memo)(
|
|
|
1235
1222
|
rowExpansionConfig: rowExpansionConfig,
|
|
1236
1223
|
expandedRows: expandedRows,
|
|
1237
1224
|
toggleRowExpansion: toggleRowExpansion,
|
|
1238
|
-
isRowExpanded: isRowExpanded
|
|
1239
|
-
rowsVersion: tableData.length,
|
|
1240
|
-
ColClassSignature: ColClassSignature,
|
|
1241
|
-
tableData: tableData
|
|
1225
|
+
isRowExpanded: isRowExpanded
|
|
1242
1226
|
})))))), __jsx(_material.Box, {
|
|
1243
1227
|
className: "panel-footer clearfix"
|
|
1244
1228
|
}, 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
|
|
32
|
+
fieldColumn = formField.field || formField.key;
|
|
33
33
|
props.distinctField = fieldColumn;
|
|
34
34
|
props.aliasColumn = fieldColumn;
|
|
35
35
|
}
|
|
@@ -10,6 +10,7 @@ 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"));
|
|
13
14
|
var _Fade = _interopRequireDefault(require("@mui/material/Fade"));
|
|
14
15
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
15
16
|
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,6 +18,21 @@ var __jsx = _react["default"].createElement;
|
|
|
17
18
|
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; }
|
|
18
19
|
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; }
|
|
19
20
|
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
|
+
});
|
|
20
36
|
var FadeTransition = /*#__PURE__*/_react["default"].forwardRef(function FadeTransition(props, ref) {
|
|
21
37
|
return __jsx(_Fade["default"], (0, _extends2["default"])({
|
|
22
38
|
ref: ref
|
|
@@ -31,19 +47,6 @@ var FadeTransition = /*#__PURE__*/_react["default"].forwardRef(function FadeTran
|
|
|
31
47
|
}
|
|
32
48
|
}), props.children);
|
|
33
49
|
});
|
|
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
|
-
};
|
|
47
50
|
var WmDialog = exports.WmDialog = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
48
51
|
var children = props.children,
|
|
49
52
|
className = props.className,
|
|
@@ -69,7 +72,6 @@ var WmDialog = exports.WmDialog = /*#__PURE__*/(0, _react.memo)(function (props)
|
|
|
69
72
|
if (!open) {
|
|
70
73
|
return null;
|
|
71
74
|
}
|
|
72
|
-
useBodyScrollLock(open);
|
|
73
75
|
var sheetPositionStyles = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, props.sheetposition === "top" && {
|
|
74
76
|
position: "absolute",
|
|
75
77
|
top: 0
|