@wavemaker/react-runtime 11.14.2-rc.6311 → 12.0.0-next.28533
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/actions/base-action.js +5 -7
- package/actions/login-action.js +7 -8
- package/actions/logout-action.js +5 -7
- package/actions/navigation-action.js +32 -10
- package/actions/notification-action.js +22 -8
- package/actions/timer-action.js +13 -15
- package/actions/toast.js +4 -2
- package/actions/toast.service.js +1 -2
- package/components/advanced/carousel/index.js +1 -1
- package/components/advanced/carousel/template.js +1 -1
- package/components/basic/anchor/index.js +26 -9
- package/components/basic/html/index.js +115 -24
- package/components/basic/icon/index.js +2 -1
- package/components/basic/iframe/index.js +2 -1
- package/components/basic/label/index.js +12 -9
- package/components/basic/message/index.js +12 -3
- package/components/basic/picture/index.js +11 -4
- package/components/basic/progress-bar/index.js +1 -1
- package/components/basic/progress-circle/index.js +34 -28
- package/components/basic/progress-circle/props.js +10 -2
- package/components/basic/richtexteditor/index.js +95 -94
- package/components/basic/search/index.js +401 -156
- package/components/basic/search/providers.js +126 -61
- package/components/basic/spinner/index.js +2 -1
- package/components/basic/tree/index.js +34 -34
- package/components/basic/tree/utils.js +10 -4
- package/components/chart/components/barColumnChart/index.js +36 -33
- package/components/chart/components/bubbleChart/index.js +35 -25
- package/components/chart/components/chartLegend/utils.js +2 -1
- package/components/chart/components/cumulativeLineChart/index.js +30 -26
- package/components/chart/components/lineAreaChart/index.js +50 -32
- package/components/chart/components/pieDonutChart/index.js +13 -4
- package/components/chart/hooks/useXAxisConfig.js +15 -8
- package/components/chart/index.js +223 -53
- package/components/chart/utils.js +12 -1
- package/components/constants.js +5 -2
- package/components/container/accordion/accordion-pane/index.js +17 -12
- package/components/container/accordion/index.js +9 -4
- package/components/container/alignment-utils.js +56 -1
- package/components/container/index.js +49 -20
- package/components/container/panel/components/panel-header/index.js +3 -4
- package/components/container/panel/index.js +15 -10
- package/components/container/tabs/index.js +92 -14
- package/components/container/tabs/tab-pane/index.js +15 -8
- package/components/container/tabs/utils.js +51 -0
- package/components/container/wizard/components/StepComponents.js +2 -1
- package/components/container/wizard/components/WizardStep.js +2 -1
- package/components/container/wizard/index.js +64 -35
- package/components/container/wizard/utils.js +46 -1
- package/components/container/wizard/wizard-step/index.js +11 -1
- package/components/data/card/card-content/index.js +1 -1
- package/components/data/form/base-form/index.js +991 -180
- package/components/data/form/base-form/props.js +3 -1
- package/components/data/form/base-form/utils.js +159 -1
- package/components/data/form/dynamic-fields/constant.js +53 -0
- package/components/data/form/dynamic-fields/index.js +10 -45
- package/components/data/form/dynamic-fields/utils.js +37 -2
- package/components/data/form/form-action/index.js +5 -4
- package/components/data/form/form-context.js +5 -1
- package/components/data/form/form-controller/utils.js +84 -0
- package/components/data/form/form-controller/validation-contrustor.js +402 -189
- package/components/data/form/form-controller/withFormController.js +191 -52
- package/components/data/form/form-field/base-field.js +54 -33
- package/components/data/form/form-field/index.js +28 -5
- package/components/data/form/form-header/index.js +3 -4
- package/components/data/form/index.js +20 -1
- package/components/data/list/components/ListDND.js +2 -1
- package/components/data/list/components/ListItem.js +6 -2
- package/components/data/list/components/ListItemWithTemplate.js +46 -2
- package/components/data/list/components/ListItems.js +17 -26
- package/components/data/list/components/ListPagination.js +3 -3
- package/components/data/list/components/StandardListItems.js +3 -4
- package/components/data/list/hooks/useListEffects.js +55 -14
- package/components/data/list/hooks/useListEventHandlers.js +3 -1
- package/components/data/list/hooks/useListState.js +3 -1
- package/components/data/list/hooks/usePaginatedGroupedData.js +18 -5
- package/components/data/list/index.js +74 -55
- package/components/data/list/utils/list-helpers.js +73 -35
- package/components/data/list/utils/list-widget-methods.js +138 -95
- package/components/data/live-filter/index.js +26 -15
- package/components/data/live-form/index.js +23 -7
- package/components/data/live-form/props.js +1 -1
- package/components/data/pagination/components/BasicPagination.js +71 -16
- package/components/data/pagination/components/PageSizeSelector.js +8 -3
- package/components/data/pagination/components/TotalRecords.js +1 -5
- package/components/data/pagination/hooks/usePagination.js +349 -66
- package/components/data/pagination/index.js +137 -19
- package/components/data/table/components/AddNewRow.js +5 -1
- package/components/data/table/components/EditableCell.js +2 -2
- package/components/data/table/components/RowCells.js +64 -0
- package/components/data/table/components/RowExpansionButton.js +2 -2
- package/components/data/table/components/SummaryCell.js +111 -0
- package/components/data/table/components/SummaryRow.js +54 -0
- package/components/data/table/components/SummaryRowFooter.js +46 -0
- package/components/data/table/components/TableBody.js +61 -59
- package/components/data/table/components/TableDataRow.js +109 -0
- package/components/data/table/components/TableFilters.js +225 -121
- package/components/data/table/components/TableHeader.js +291 -23
- package/components/data/table/components/TablePanelHeading.js +139 -8
- package/components/data/table/components/index.js +22 -1
- package/components/data/table/hooks/use-edited-rows.js +141 -0
- package/components/data/table/hooks/useCellState.js +5 -12
- package/components/data/table/hooks/useFormWidget.js +58 -51
- package/components/data/table/hooks/usePaginationState.js +45 -24
- package/components/data/table/hooks/usePanelStructure.js +4 -4
- package/components/data/table/hooks/useRowHandlers.js +39 -5
- package/components/data/table/hooks/useRowSelection.js +244 -50
- package/components/data/table/hooks/useServerSideSorting.js +81 -37
- package/components/data/table/hooks/useTableColumns.js +211 -118
- package/components/data/table/hooks/useTableData.js +54 -9
- package/components/data/table/hooks/useTableEdit.js +272 -97
- package/components/data/table/hooks/useTableEffects.js +31 -13
- package/components/data/table/hooks/useTableFilter.js +1 -1
- package/components/data/table/hooks/useTableInitialization.js +23 -22
- package/components/data/table/hooks/useTableState.js +11 -5
- package/components/data/table/hooks/useTableStateManager.js +140 -65
- package/components/data/table/index.js +637 -274
- package/components/data/table/live-table/index.js +54 -22
- package/components/data/table/table-action/index.js +1 -1
- package/components/data/table/table-group/index.js +26 -0
- package/components/data/table/table-row-action/index.js +32 -18
- package/components/data/table/utils/buildSelectionColumns.js +12 -21
- package/components/data/table/utils/columnBuilder.js +29 -14
- package/components/data/table/utils/columnProxy.js +68 -1
- package/components/data/table/utils/constants.js +6 -2
- package/components/data/table/utils/crud-handlers.js +68 -63
- package/components/data/table/utils/groupHeaderUtils.js +102 -0
- package/components/data/table/utils/index.js +210 -21
- package/components/data/table/utils/renderDisplayCell.js +6 -6
- package/components/data/table/utils/selectionUtils.js +25 -26
- package/components/data/table/utils/validation.js +1 -0
- package/components/data/utils/filter-field-util.js +3 -3
- package/components/dialogs/alert-dialog/index.js +1 -1
- package/components/dialogs/confirm-dialog/index.js +1 -1
- package/components/dialogs/dialog/index.js +4 -1
- package/components/dialogs/dialog-content/index.js +3 -1
- package/components/dialogs/dialog-header/index.js +2 -2
- package/components/dialogs/iframe-dialog/index.js +11 -5
- package/components/dialogs/index.js +1 -1
- package/components/dialogs/login-dialog/index.js +1 -1
- package/components/dialogs/page-dialog/index.js +1 -1
- package/components/form/button/index.js +33 -7
- package/components/input/calendar/index.js +18 -6
- package/components/input/chips/index.js +99 -28
- package/components/input/chips/utils.js +34 -4
- package/components/input/color-picker/index.js +74 -25
- package/components/input/composite/index.js +3 -3
- package/components/input/currency/index.js +35 -49
- package/components/input/default/checkbox/index.js +23 -28
- package/components/input/default/checkboxset/index.js +38 -18
- package/components/input/default/checkboxset/utils.js +30 -0
- package/components/input/default/radioset/index.js +36 -39
- package/components/input/default/switch/index.js +30 -13
- package/components/input/epoch/date/index.js +130 -69
- package/components/input/epoch/date/utils.js +94 -1
- package/components/input/epoch/datetime/index.js +72 -22
- package/components/input/epoch/datetime/utils.js +49 -10
- package/components/input/epoch/time/index.js +68 -19
- package/components/input/epoch/time/utils.js +62 -14
- package/components/input/fileupload/Utils.js +12 -7
- package/components/input/fileupload/components/MultiUpload.js +2 -6
- package/components/input/fileupload/components/SingleUpload.js +3 -7
- package/components/input/fileupload/index.js +6 -10
- package/components/input/fileupload/useFileUpload.js +16 -5
- package/components/input/number/index.js +158 -43
- package/components/input/rating/index.js +90 -7
- package/components/input/select/index.js +147 -70
- package/components/input/slider/index.js +84 -26
- package/components/input/text/index.js +38 -18
- package/components/input/text/util.js +283 -130
- package/components/input/textarea/index.js +13 -10
- package/components/input/upload/index.js +124 -0
- package/components/input/upload/props.js +5 -0
- package/components/input/util/index.js +11 -0
- package/components/navbar/index.js +51 -3
- package/components/navbar/nav/index.js +46 -16
- package/components/navbar/nav-item/index.js +11 -5
- package/components/navigation/menu/components/ListItems.js +3 -0
- package/components/navigation/menu/constants.js +2 -1
- package/components/navigation/menu/hooks/useHoverState.hook.js +48 -0
- package/components/navigation/menu/hooks/useKeyboardMovements.hook.js +37 -0
- package/components/navigation/menu/hooks/useTransformedDataset.hook.js +15 -0
- package/components/navigation/menu/index.js +326 -188
- package/components/navigation/menu/utils/action-task.js +14 -0
- package/components/navigation/menu/utils/role-filter.js +76 -0
- package/components/navigation/popover/index.js +99 -26
- package/components/page/partial-container/index.js +34 -5
- package/components/prefab/index.js +2 -4
- package/context/PrefabContext.js +10 -6
- package/context/WidgetProvider.js +30 -31
- package/core/app.service.js +1 -1
- package/core/constants/events.js +57 -1
- package/core/dialog.service.js +1 -2
- package/core/event-notifier.js +1 -2
- package/core/formatter/array-formatters.js +33 -0
- package/core/formatter/date-formatters.js +2 -4
- package/core/formatter/index.js +2 -1
- package/core/formatter/number-formatters.js +5 -10
- package/core/formatter/security-formatters.js +2 -4
- package/core/formatter/string-formatters.js +3 -6
- package/core/proxy-service.js +84 -13
- package/core/script-registry.js +108 -48
- package/core/util/common.js +4 -4
- package/core/util/compare.js +30 -0
- package/core/util/dom.js +8 -8
- package/core/util/index.js +16 -6
- package/core/util/safe-is-equal.js +156 -0
- package/core/util/security.js +1 -2
- package/core/util/utils.js +16 -7
- package/higherOrder/BaseApp.js +108 -65
- package/higherOrder/BaseDateTime.js +31 -13
- package/higherOrder/BasePage.js +268 -144
- package/higherOrder/BasePartial.js +1 -1
- package/higherOrder/BasePrefab.js +33 -15
- package/higherOrder/DataNav.js +99 -16
- package/higherOrder/helper.js +5 -0
- package/higherOrder/withBaseWrapper.js +41 -28
- package/hooks/useAuth.js +11 -5
- package/hooks/useHttp.js +280 -94
- package/mui-config/theme-provider.js +1 -1
- package/mui-config/theme.js +1 -1
- package/package-lock.json +824 -724
- package/package.json +8 -8
- package/store/bindActions/i18nActions.js +18 -0
- package/store/index.js +3 -1
- package/store/slices/appConfigSlice.js +2 -2
- package/store/slices/authSlice.js +31 -28
- package/store/slices/i18nSlice.js +2 -2
- package/store/slices/navigationSlice.js +35 -0
- package/store/viewport.service.js +255 -0
- package/utils/attr.js +35 -0
- package/utils/dataset-util.js +1 -2
- package/utils/form-state.util.js +43 -12
- package/utils/form-utils.js +47 -2
- package/utils/format-util.js +28 -13
- package/utils/page-params-util.js +33 -1
- package/utils/state-persistance.js +72 -13
- package/utils/transformedDataset-utils.js +35 -24
- package/variables/base-variable.js +12 -14
- package/variables/crud-variable.js +225 -0
- package/variables/live-variable.js +56 -20
- package/variables/metadata.service.js +123 -0
- package/variables/model-variable.js +21 -15
- package/variables/service-variable.js +88 -83
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useUpdateEditedCell = exports.useEditedRowsContext = exports.useEditedRow = exports.EditedRowsProvider = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
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); }
|
|
10
|
+
var __jsx = _react["default"].createElement;
|
|
11
|
+
var EditedRowsContext = /*#__PURE__*/(0, _react.createContext)({
|
|
12
|
+
updateCell: function updateCell() {},
|
|
13
|
+
getEdits: function getEdits() {
|
|
14
|
+
return undefined;
|
|
15
|
+
},
|
|
16
|
+
getAllEdits: function getAllEdits() {
|
|
17
|
+
return {};
|
|
18
|
+
},
|
|
19
|
+
subscribe: function subscribe() {
|
|
20
|
+
return function () {};
|
|
21
|
+
},
|
|
22
|
+
subscribeToAll: function subscribeToAll() {
|
|
23
|
+
return function () {};
|
|
24
|
+
},
|
|
25
|
+
removeRowEdits: function removeRowEdits() {}
|
|
26
|
+
});
|
|
27
|
+
var EditedRowsProvider = exports.EditedRowsProvider = function EditedRowsProvider(_ref) {
|
|
28
|
+
var children = _ref.children;
|
|
29
|
+
// Store the actual edited data
|
|
30
|
+
var editedRowsRef = (0, _react.useRef)({});
|
|
31
|
+
|
|
32
|
+
// Registry of listeners: rowId -> Set of callbacks
|
|
33
|
+
var listenersRef = (0, _react.useRef)({});
|
|
34
|
+
|
|
35
|
+
// Global listeners for any change
|
|
36
|
+
var globalListenersRef = (0, _react.useRef)(new Set());
|
|
37
|
+
var updateCell = (0, _react.useCallback)(function (rowId, field, value) {
|
|
38
|
+
// 1. Update the data
|
|
39
|
+
if (!editedRowsRef.current[rowId]) {
|
|
40
|
+
editedRowsRef.current[rowId] = {};
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Check if value actually changed to avoid unnecessary notifies
|
|
44
|
+
if (editedRowsRef.current[rowId][field] === value) return;
|
|
45
|
+
editedRowsRef.current[rowId][field] = value;
|
|
46
|
+
|
|
47
|
+
// 2. Notify row listeners
|
|
48
|
+
if (listenersRef.current[rowId]) {
|
|
49
|
+
listenersRef.current[rowId].forEach(function (cb) {
|
|
50
|
+
return cb();
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// 3. Notify global listeners
|
|
55
|
+
if (globalListenersRef.current.size > 0) {
|
|
56
|
+
globalListenersRef.current.forEach(function (cb) {
|
|
57
|
+
return cb();
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}, []);
|
|
61
|
+
var getEdits = (0, _react.useCallback)(function (rowId) {
|
|
62
|
+
return editedRowsRef.current[rowId];
|
|
63
|
+
}, []);
|
|
64
|
+
var getAllEdits = (0, _react.useCallback)(function () {
|
|
65
|
+
return editedRowsRef.current;
|
|
66
|
+
}, []);
|
|
67
|
+
var removeRowEdits = (0, _react.useCallback)(function (rowId) {
|
|
68
|
+
if (editedRowsRef.current[rowId]) {
|
|
69
|
+
delete editedRowsRef.current[rowId];
|
|
70
|
+
// Notify listeners so they can update (e.g. revert to original)
|
|
71
|
+
if (listenersRef.current[rowId]) {
|
|
72
|
+
listenersRef.current[rowId].forEach(function (cb) {
|
|
73
|
+
return cb();
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
// Notify global listeners
|
|
77
|
+
if (globalListenersRef.current.size > 0) {
|
|
78
|
+
globalListenersRef.current.forEach(function (cb) {
|
|
79
|
+
return cb();
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}, []);
|
|
84
|
+
var subscribe = (0, _react.useCallback)(function (rowId, callback) {
|
|
85
|
+
if (!listenersRef.current[rowId]) {
|
|
86
|
+
listenersRef.current[rowId] = new Set();
|
|
87
|
+
}
|
|
88
|
+
listenersRef.current[rowId].add(callback);
|
|
89
|
+
|
|
90
|
+
// Unsubscribe function
|
|
91
|
+
return function () {
|
|
92
|
+
if (listenersRef.current[rowId]) {
|
|
93
|
+
listenersRef.current[rowId]["delete"](callback);
|
|
94
|
+
if (listenersRef.current[rowId].size === 0) {
|
|
95
|
+
delete listenersRef.current[rowId];
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
}, []);
|
|
100
|
+
var subscribeToAll = (0, _react.useCallback)(function (callback) {
|
|
101
|
+
globalListenersRef.current.add(callback);
|
|
102
|
+
return function () {
|
|
103
|
+
globalListenersRef.current["delete"](callback);
|
|
104
|
+
};
|
|
105
|
+
}, []);
|
|
106
|
+
return __jsx(EditedRowsContext.Provider, {
|
|
107
|
+
value: {
|
|
108
|
+
updateCell: updateCell,
|
|
109
|
+
getEdits: getEdits,
|
|
110
|
+
getAllEdits: getAllEdits,
|
|
111
|
+
subscribe: subscribe,
|
|
112
|
+
subscribeToAll: subscribeToAll,
|
|
113
|
+
removeRowEdits: removeRowEdits
|
|
114
|
+
}
|
|
115
|
+
}, children);
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
// Hook for components to subscribe to edits for a specific row
|
|
119
|
+
var useEditedRow = exports.useEditedRow = function useEditedRow(rowId) {
|
|
120
|
+
var context = (0, _react.useContext)(EditedRowsContext);
|
|
121
|
+
|
|
122
|
+
// Local state to force re-render when subscription fires
|
|
123
|
+
// We use a simple counter
|
|
124
|
+
var _useState = (0, _react.useState)(0),
|
|
125
|
+
setTick = _useState[1];
|
|
126
|
+
(0, _react.useEffect)(function () {
|
|
127
|
+
var unsubscribe = context.subscribe(rowId, function () {
|
|
128
|
+
setTick(function (t) {
|
|
129
|
+
return t + 1;
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
return unsubscribe;
|
|
133
|
+
}, [context, rowId]);
|
|
134
|
+
return context.getEdits(rowId);
|
|
135
|
+
};
|
|
136
|
+
var useEditedRowsContext = exports.useEditedRowsContext = function useEditedRowsContext() {
|
|
137
|
+
return (0, _react.useContext)(EditedRowsContext);
|
|
138
|
+
};
|
|
139
|
+
var useUpdateEditedCell = exports.useUpdateEditedCell = function useUpdateEditedCell() {
|
|
140
|
+
return (0, _react.useContext)(EditedRowsContext).updateCell;
|
|
141
|
+
};
|
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.useCellState = exports.setSelectedRowIds = exports.
|
|
7
|
+
exports.useCellState = exports.setSelectedRowIds = exports.setCellValue = exports.getSelectedRowIds = exports.getCellValue = void 0;
|
|
8
8
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
9
|
var _lodashEs = require("lodash-es");
|
|
10
10
|
var _react = require("react");
|
|
@@ -17,7 +17,6 @@ var useCellState = exports.useCellState = function useCellState(tableId) {
|
|
|
17
17
|
var stateRef = (0, _react.useRef)({
|
|
18
18
|
cells: {},
|
|
19
19
|
selection: {
|
|
20
|
-
selectedRowId: null,
|
|
21
20
|
selectedRowIds: []
|
|
22
21
|
}
|
|
23
22
|
});
|
|
@@ -66,7 +65,6 @@ var useCellState = exports.useCellState = function useCellState(tableId) {
|
|
|
66
65
|
stateRef.current = {
|
|
67
66
|
cells: {},
|
|
68
67
|
selection: {
|
|
69
|
-
selectedRowId: null,
|
|
70
68
|
selectedRowIds: []
|
|
71
69
|
}
|
|
72
70
|
};
|
|
@@ -101,16 +99,11 @@ var getCellValue = exports.getCellValue = function getCellValue(state, rowId, fi
|
|
|
101
99
|
var setCellValue = exports.setCellValue = function setCellValue(state, rowId, fieldName, value) {
|
|
102
100
|
state.setValue(["cells", rowId, fieldName], value);
|
|
103
101
|
};
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
return (_state$getValue = state.getValue("selection.selectedRowId", null)) !== null && _state$getValue !== void 0 ? _state$getValue : null;
|
|
107
|
-
};
|
|
108
|
-
var setSelectedRowId = exports.setSelectedRowId = function setSelectedRowId(state, rowId) {
|
|
109
|
-
state.setValue("selection.selectedRowId", rowId);
|
|
110
|
-
};
|
|
102
|
+
|
|
103
|
+
// Unified selection helpers - uses single selectedRowIds array for both radio and multiselect
|
|
111
104
|
var getSelectedRowIds = exports.getSelectedRowIds = function getSelectedRowIds(state) {
|
|
112
|
-
var _state$
|
|
113
|
-
return (_state$
|
|
105
|
+
var _state$getValue;
|
|
106
|
+
return (_state$getValue = state.getValue("selection.selectedRowIds", [])) !== null && _state$getValue !== void 0 ? _state$getValue : [];
|
|
114
107
|
};
|
|
115
108
|
var setSelectedRowIds = exports.setSelectedRowIds = function setSelectedRowIds(state, rowIds) {
|
|
116
109
|
state.setValue("selection.selectedRowIds", rowIds);
|
|
@@ -7,44 +7,64 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.useFormWidget = void 0;
|
|
9
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
12
|
var _utils = require("../utils");
|
|
12
|
-
var _text = _interopRequireDefault(require("
|
|
13
|
-
var _textarea = _interopRequireDefault(require("
|
|
14
|
-
var _number = _interopRequireDefault(require("
|
|
15
|
-
var _currency = _interopRequireDefault(require("
|
|
16
|
-
var _datetime = _interopRequireDefault(require("
|
|
17
|
-
var _time = _interopRequireDefault(require("
|
|
18
|
-
var _date = _interopRequireDefault(require("
|
|
19
|
-
var _select = _interopRequireDefault(require("
|
|
20
|
-
var _slider = _interopRequireDefault(require("
|
|
21
|
-
var _rating = _interopRequireDefault(require("
|
|
22
|
-
var _colorPicker = _interopRequireDefault(require("
|
|
23
|
-
var _fileupload = _interopRequireDefault(require("
|
|
24
|
-
var _chips = _interopRequireDefault(require("
|
|
25
|
-
var _richtexteditor = _interopRequireDefault(require("
|
|
26
|
-
var _search = _interopRequireDefault(require("
|
|
27
|
-
var _checkbox = _interopRequireDefault(require("
|
|
28
|
-
var _switch = _interopRequireDefault(require("
|
|
29
|
-
var _checkboxset = _interopRequireDefault(require("
|
|
30
|
-
var _radioset = _interopRequireDefault(require("
|
|
13
|
+
var _text = _interopRequireDefault(require("@wavemaker/react-runtime/components/input/text"));
|
|
14
|
+
var _textarea = _interopRequireDefault(require("@wavemaker/react-runtime/components/input/textarea"));
|
|
15
|
+
var _number = _interopRequireDefault(require("@wavemaker/react-runtime/components/input/number"));
|
|
16
|
+
var _currency = _interopRequireDefault(require("@wavemaker/react-runtime/components/input/currency"));
|
|
17
|
+
var _datetime = _interopRequireDefault(require("@wavemaker/react-runtime/components/input/epoch/datetime"));
|
|
18
|
+
var _time = _interopRequireDefault(require("@wavemaker/react-runtime/components/input/epoch/time"));
|
|
19
|
+
var _date = _interopRequireDefault(require("@wavemaker/react-runtime/components/input/epoch/date"));
|
|
20
|
+
var _select = _interopRequireDefault(require("@wavemaker/react-runtime/components/input/select"));
|
|
21
|
+
var _slider = _interopRequireDefault(require("@wavemaker/react-runtime/components/input/slider"));
|
|
22
|
+
var _rating = _interopRequireDefault(require("@wavemaker/react-runtime/components/input/rating"));
|
|
23
|
+
var _colorPicker = _interopRequireDefault(require("@wavemaker/react-runtime/components/input/color-picker"));
|
|
24
|
+
var _fileupload = _interopRequireDefault(require("@wavemaker/react-runtime/components/input/fileupload"));
|
|
25
|
+
var _chips = _interopRequireDefault(require("@wavemaker/react-runtime/components/input/chips"));
|
|
26
|
+
var _richtexteditor = _interopRequireDefault(require("@wavemaker/react-runtime/components/basic/richtexteditor"));
|
|
27
|
+
var _search = _interopRequireDefault(require("@wavemaker/react-runtime/components/basic/search"));
|
|
28
|
+
var _checkbox = _interopRequireDefault(require("@wavemaker/react-runtime/components/input/default/checkbox"));
|
|
29
|
+
var _switch = _interopRequireDefault(require("@wavemaker/react-runtime/components/input/default/switch"));
|
|
30
|
+
var _checkboxset = _interopRequireDefault(require("@wavemaker/react-runtime/components/input/default/checkboxset"));
|
|
31
|
+
var _radioset = _interopRequireDefault(require("@wavemaker/react-runtime/components/input/default/radioset"));
|
|
32
|
+
var _get = _interopRequireDefault(require("lodash-es/get"));
|
|
31
33
|
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); }
|
|
32
|
-
var __jsx = _react["default"].createElement;
|
|
34
|
+
var __jsx = _react["default"].createElement;
|
|
35
|
+
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; }
|
|
36
|
+
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; } // Import form widgets
|
|
37
|
+
function getDisabledValue(disabled, rowData) {
|
|
38
|
+
if (typeof disabled === "string") {
|
|
39
|
+
if (disabled.includes("rowData")) {
|
|
40
|
+
try {
|
|
41
|
+
return new Function("rowData", "return ".concat(disabled))(rowData);
|
|
42
|
+
} catch (error) {
|
|
43
|
+
console.warn("Failed to evaluate disabled expression:", disabled, error);
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return (0, _get["default"])(rowData, disabled);
|
|
48
|
+
}
|
|
49
|
+
return disabled;
|
|
50
|
+
}
|
|
33
51
|
var useFormWidget = exports.useFormWidget = function useFormWidget(_ref) {
|
|
34
52
|
var listener = _ref.listener;
|
|
35
53
|
// Function to render the appropriate form widget based on editWidgetType
|
|
36
54
|
var renderFormWidget = (0, _react.useCallback)(function (fieldName, widgetType, value, fieldChangeCallback, widgetProps) {
|
|
55
|
+
var _widgetProps$column2;
|
|
37
56
|
// Use defaultvalue if value is null/undefined and defaultvalue is provided
|
|
38
57
|
var effectiveValue = value !== undefined && value !== null ? value : (widgetProps === null || widgetProps === void 0 ? void 0 : widgetProps.defaultvalue) || "";
|
|
39
58
|
var sessionSuffix = widgetProps !== null && widgetProps !== void 0 && widgetProps.sessionKey ? "_".concat(widgetProps.sessionKey) : "";
|
|
40
59
|
var uniqueName = "edit_".concat(fieldName).concat(sessionSuffix);
|
|
41
|
-
var
|
|
60
|
+
var disabled = getDisabledValue(widgetProps === null || widgetProps === void 0 ? void 0 : widgetProps.disabled, widgetProps === null || widgetProps === void 0 ? void 0 : widgetProps.rowData);
|
|
61
|
+
var commonProps = _objectSpread({
|
|
42
62
|
key: uniqueName,
|
|
43
63
|
// Add key to force component recreation
|
|
44
64
|
name: uniqueName,
|
|
45
65
|
datavalue: effectiveValue,
|
|
46
66
|
required: (widgetProps === null || widgetProps === void 0 ? void 0 : widgetProps.required) || false,
|
|
47
|
-
disabled:
|
|
67
|
+
disabled: disabled,
|
|
48
68
|
placeholder: (widgetProps === null || widgetProps === void 0 ? void 0 : widgetProps.placeholder) || "Enter ".concat(fieldName),
|
|
49
69
|
onChange: function onChange(event, widget, newVal) {
|
|
50
70
|
var _widgetProps$column;
|
|
@@ -58,8 +78,10 @@ var useFormWidget = exports.useFormWidget = function useFormWidget(_ref) {
|
|
|
58
78
|
},
|
|
59
79
|
listener: listener,
|
|
60
80
|
rowData: widgetProps === null || widgetProps === void 0 ? void 0 : widgetProps.rowData,
|
|
61
|
-
column: widgetProps === null || widgetProps === void 0 ? void 0 : widgetProps.column
|
|
62
|
-
|
|
81
|
+
column: widgetProps === null || widgetProps === void 0 ? void 0 : widgetProps.column,
|
|
82
|
+
updateon: "blur",
|
|
83
|
+
regexp: (widgetProps === null || widgetProps === void 0 || (_widgetProps$column2 = widgetProps.column) === null || _widgetProps$column2 === void 0 ? void 0 : _widgetProps$column2.regexp) || ".*"
|
|
84
|
+
}, widgetProps === null || widgetProps === void 0 ? void 0 : widgetProps.column);
|
|
63
85
|
|
|
64
86
|
// Helper function to wrap event handlers with the correct parameters
|
|
65
87
|
var wrapEventHandler = function wrapEventHandler(handler) {
|
|
@@ -105,29 +127,22 @@ var useFormWidget = exports.useFormWidget = function useFormWidget(_ref) {
|
|
|
105
127
|
// Check if column has editinputtype property
|
|
106
128
|
var editInputType = (column === null || column === void 0 ? void 0 : column.editinputtype) || "text";
|
|
107
129
|
return __jsx(_text["default"], (0, _extends2["default"])({}, commonProps, {
|
|
108
|
-
type: editInputType
|
|
109
|
-
updateon: "keypress"
|
|
130
|
+
type: editInputType
|
|
110
131
|
}));
|
|
111
132
|
case "WmPassword":
|
|
112
133
|
return __jsx(_text["default"], (0, _extends2["default"])({}, commonProps, {
|
|
113
|
-
type: "password"
|
|
114
|
-
updateon: "keypress"
|
|
134
|
+
type: "password"
|
|
115
135
|
}));
|
|
116
136
|
case "WmTextarea":
|
|
117
|
-
return __jsx(_textarea["default"],
|
|
118
|
-
updateon: "keypress"
|
|
119
|
-
}));
|
|
137
|
+
return __jsx(_textarea["default"], commonProps);
|
|
120
138
|
case "WmCheckbox":
|
|
121
|
-
|
|
139
|
+
return __jsx(_checkbox["default"], commonProps);
|
|
140
|
+
case "WmToggle":
|
|
122
141
|
return __jsx(_checkbox["default"], (0, _extends2["default"])({}, commonProps, {
|
|
123
|
-
|
|
142
|
+
type: "toggle"
|
|
124
143
|
}));
|
|
125
|
-
case "WmToggle":
|
|
126
144
|
case "WmSwitch":
|
|
127
|
-
|
|
128
|
-
return __jsx(_switch["default"], (0, _extends2["default"])({}, commonProps, {
|
|
129
|
-
dataset: switchDataset
|
|
130
|
-
}));
|
|
145
|
+
return __jsx(_switch["default"], commonProps);
|
|
131
146
|
case "WmNumber":
|
|
132
147
|
return __jsx(_number["default"], commonProps);
|
|
133
148
|
case "WmCurrency":
|
|
@@ -138,17 +153,11 @@ var useFormWidget = exports.useFormWidget = function useFormWidget(_ref) {
|
|
|
138
153
|
case "WmRichtexteditor":
|
|
139
154
|
return __jsx(_richtexteditor["default"], commonProps);
|
|
140
155
|
case "WmSelect":
|
|
141
|
-
return __jsx(_select["default"],
|
|
142
|
-
dataset: []
|
|
143
|
-
}));
|
|
156
|
+
return __jsx(_select["default"], commonProps);
|
|
144
157
|
case "WmCheckboxset":
|
|
145
|
-
return __jsx(_checkboxset["default"],
|
|
146
|
-
dataset: []
|
|
147
|
-
}));
|
|
158
|
+
return __jsx(_checkboxset["default"], commonProps);
|
|
148
159
|
case "WmRadioset":
|
|
149
|
-
return __jsx(_radioset["default"],
|
|
150
|
-
dataset: []
|
|
151
|
-
}));
|
|
160
|
+
return __jsx(_radioset["default"], commonProps);
|
|
152
161
|
case "WmDate":
|
|
153
162
|
return __jsx(_date["default"], commonProps);
|
|
154
163
|
case "WmTime":
|
|
@@ -161,12 +170,10 @@ var useFormWidget = exports.useFormWidget = function useFormWidget(_ref) {
|
|
|
161
170
|
return __jsx(_rating["default"], commonProps);
|
|
162
171
|
case "WmAutocomplete":
|
|
163
172
|
return __jsx(_search["default"], (0, _extends2["default"])({}, commonProps, {
|
|
164
|
-
|
|
173
|
+
type: "autocomplete"
|
|
165
174
|
}));
|
|
166
175
|
case "WmChips":
|
|
167
|
-
return __jsx(_chips["default"],
|
|
168
|
-
dataset: []
|
|
169
|
-
}));
|
|
176
|
+
return __jsx(_chips["default"], commonProps);
|
|
170
177
|
case "WmColorpicker":
|
|
171
178
|
case "WmColorPicker":
|
|
172
179
|
return __jsx(_colorPicker["default"], commonProps);
|
|
@@ -1,59 +1,80 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
7
|
exports.usePaginationState = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
7
9
|
var _react = require("react");
|
|
10
|
+
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; }
|
|
11
|
+
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; }
|
|
8
12
|
/**
|
|
9
|
-
* Hook to manage pagination state and behavior
|
|
13
|
+
* Hook to manage pagination state and behavior for TanStack Table
|
|
14
|
+
* Provides controlled pagination state management
|
|
10
15
|
*/
|
|
11
16
|
var usePaginationState = exports.usePaginationState = function usePaginationState(_ref) {
|
|
12
|
-
var
|
|
17
|
+
var initialPage = _ref.initialPage,
|
|
18
|
+
initialPageSize = _ref.initialPageSize,
|
|
13
19
|
editmode = _ref.editmode,
|
|
14
20
|
internalDataset = _ref.internalDataset,
|
|
15
|
-
isAddingNewRow = _ref.isAddingNewRow,
|
|
16
|
-
cancelEditing = _ref.cancelEditing,
|
|
17
21
|
datasource = _ref.datasource,
|
|
18
22
|
isServerSidePagination = _ref.isServerSidePagination;
|
|
19
|
-
|
|
23
|
+
// Local state for pagination - needed for controlled TanStack Table pagination
|
|
24
|
+
var _useState = (0, _react.useState)({
|
|
25
|
+
pageIndex: initialPage - 1,
|
|
26
|
+
// Convert to 0-based index
|
|
27
|
+
pageSize: initialPageSize
|
|
28
|
+
}),
|
|
29
|
+
paginationState = _useState[0],
|
|
30
|
+
setPaginationState = _useState[1];
|
|
20
31
|
|
|
21
|
-
//
|
|
22
|
-
(0, _react.useEffect)(function () {
|
|
23
|
-
var currentPage = table.getState().pagination.pageIndex;
|
|
24
|
-
if (currentPage !== prevPageRef.current && isAddingNewRow) {
|
|
25
|
-
cancelEditing();
|
|
26
|
-
}
|
|
27
|
-
prevPageRef.current = currentPage;
|
|
28
|
-
}, [table, isAddingNewRow, cancelEditing]);
|
|
32
|
+
// Direct pagination handler - avoids redundant table.setPageIndex() call
|
|
29
33
|
var handlePaginationChange = (0, _react.useCallback)(function (event, widget, index) {
|
|
34
|
+
var newPageIndex = index - 1; // Convert to 0-based index
|
|
35
|
+
|
|
36
|
+
// Handle quickedit edge case - prevent navigation to empty pages
|
|
30
37
|
if (editmode === "quickedit" && !isServerSidePagination) {
|
|
31
|
-
var
|
|
32
|
-
var pageSize = table.getState().pagination.pageSize;
|
|
38
|
+
var pageSize = paginationState.pageSize;
|
|
33
39
|
var dataLength = internalDataset.length;
|
|
34
40
|
var startIdx = newPageIndex * pageSize;
|
|
35
|
-
|
|
36
|
-
// If this would be an empty page (no data on it), prevent navigation
|
|
37
41
|
if (startIdx >= dataLength && dataLength > 0) {
|
|
38
|
-
// Calculate the correct page to navigate to
|
|
39
42
|
var correctPage = Math.ceil(dataLength / pageSize);
|
|
40
43
|
if (correctPage > 0) {
|
|
41
|
-
|
|
44
|
+
setPaginationState(function (prev) {
|
|
45
|
+
return _objectSpread(_objectSpread({}, prev), {}, {
|
|
46
|
+
pageIndex: correctPage - 1
|
|
47
|
+
});
|
|
48
|
+
});
|
|
42
49
|
return;
|
|
43
50
|
}
|
|
44
51
|
}
|
|
45
52
|
}
|
|
46
|
-
|
|
47
|
-
|
|
53
|
+
|
|
54
|
+
// Directly update pagination state - no need for table.setPageIndex() roundtrip
|
|
55
|
+
setPaginationState(function (prev) {
|
|
56
|
+
return _objectSpread(_objectSpread({}, prev), {}, {
|
|
57
|
+
pageIndex: newPageIndex
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
}, [editmode, isServerSidePagination, internalDataset.length, paginationState.pageSize]);
|
|
61
|
+
|
|
62
|
+
// Page size change handler
|
|
48
63
|
var handlePageSizeChange = (0, _react.useCallback)(function (newPageSize) {
|
|
49
64
|
// Update datasource maxResults if datasource has paging capability
|
|
50
65
|
if (isServerSidePagination && datasource && datasource.maxResults !== undefined) {
|
|
51
66
|
datasource.maxResults = newPageSize;
|
|
52
67
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
68
|
+
|
|
69
|
+
// Directly update pagination state - pageSize and reset to first page
|
|
70
|
+
setPaginationState({
|
|
71
|
+
pageIndex: 0,
|
|
72
|
+
pageSize: newPageSize
|
|
73
|
+
});
|
|
74
|
+
}, [isServerSidePagination, datasource]);
|
|
56
75
|
return {
|
|
76
|
+
paginationState: paginationState,
|
|
77
|
+
setPaginationState: setPaginationState,
|
|
57
78
|
handlePaginationChange: handlePaginationChange,
|
|
58
79
|
handlePageSizeChange: handlePageSizeChange
|
|
59
80
|
};
|
|
@@ -10,8 +10,8 @@ var usePanelStructure = exports.usePanelStructure = function usePanelStructure(_
|
|
|
10
10
|
var title = _ref.title,
|
|
11
11
|
subheading = _ref.subheading,
|
|
12
12
|
iconclass = _ref.iconclass,
|
|
13
|
-
_ref$
|
|
14
|
-
|
|
13
|
+
_ref$exportformat = _ref.exportformat,
|
|
14
|
+
exportformat = _ref$exportformat === void 0 ? [] : _ref$exportformat,
|
|
15
15
|
headerActions = _ref.headerActions,
|
|
16
16
|
footerActions = _ref.footerActions,
|
|
17
17
|
shownavigation = _ref.shownavigation,
|
|
@@ -21,8 +21,8 @@ var usePanelStructure = exports.usePanelStructure = function usePanelStructure(_
|
|
|
21
21
|
allowpagesizechange = _ref.allowpagesizechange,
|
|
22
22
|
datasource = _ref.datasource;
|
|
23
23
|
var showPanelHeading = (0, _react.useMemo)(function () {
|
|
24
|
-
return (0, _utils.shouldShowPanelHeading)(title, subheading, iconclass,
|
|
25
|
-
}, [title, subheading, iconclass,
|
|
24
|
+
return (0, _utils.shouldShowPanelHeading)(title, subheading, iconclass, exportformat, headerActions);
|
|
25
|
+
}, [title, subheading, iconclass, exportformat, headerActions]);
|
|
26
26
|
var showPagination = (0, _react.useMemo)(function () {
|
|
27
27
|
return (0, _utils.shouldShowPagination)({
|
|
28
28
|
shownavigation: shownavigation,
|
|
@@ -15,13 +15,41 @@ var useRowHandlers = exports.useRowHandlers = function useRowHandlers(_ref) {
|
|
|
15
15
|
handleRowSelectionClick = _ref.handleRowSelectionClick,
|
|
16
16
|
handleTableEditRowClick = _ref.handleTableEditRowClick,
|
|
17
17
|
handleRowActiveClick = _ref.handleRowActiveClick,
|
|
18
|
-
onRowclick = _ref.onRowclick
|
|
18
|
+
onRowclick = _ref.onRowclick,
|
|
19
|
+
_ref$useRadioSelect = _ref.useRadioSelect,
|
|
20
|
+
useRadioSelect = _ref$useRadioSelect === void 0 ? false : _ref$useRadioSelect,
|
|
21
|
+
_ref$useMultiSelect = _ref.useMultiSelect,
|
|
22
|
+
useMultiSelect = _ref$useMultiSelect === void 0 ? false : _ref$useMultiSelect,
|
|
23
|
+
_ref$isrowselectable = _ref.isrowselectable,
|
|
24
|
+
isrowselectable = _ref$isrowselectable === void 0 ? false : _ref$isrowselectable,
|
|
25
|
+
listener = _ref.listener,
|
|
26
|
+
name = _ref.name;
|
|
19
27
|
var handleRowClick = (0, _react.useCallback)(function (event, rowData, rowId) {
|
|
20
|
-
//
|
|
21
|
-
var
|
|
28
|
+
// Determine if selection mode is enabled
|
|
29
|
+
var hasSelectionMode = useRadioSelect || useMultiSelect;
|
|
30
|
+
|
|
31
|
+
// Fire onRowclick FIRST - before any selection changes (matches Angular behavior)
|
|
22
32
|
if (onRowclick) {
|
|
23
|
-
|
|
33
|
+
var _listener$Widgets, _listener$Widgets2;
|
|
34
|
+
if (listener !== null && listener !== void 0 && (_listener$Widgets = listener.Widgets) !== null && _listener$Widgets !== void 0 && _listener$Widgets[name]) {
|
|
35
|
+
listener.Widgets[name].nativeElement = event.target;
|
|
36
|
+
}
|
|
37
|
+
onRowclick(event, listener === null || listener === void 0 || (_listener$Widgets2 = listener.Widgets) === null || _listener$Widgets2 === void 0 ? void 0 : _listener$Widgets2[name], (0, _utils.cleanRowData)(rowData));
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// Handle row selection based on isrowselectable setting
|
|
41
|
+
// When isrowselectable is false and selection mode is enabled,
|
|
42
|
+
// only allow selection through the radio/checkbox column (not row click)
|
|
43
|
+
var isSelectionHandled = false;
|
|
44
|
+
if (hasSelectionMode && isrowselectable) {
|
|
45
|
+
// Current behavior: clicking anywhere on row selects it
|
|
46
|
+
isSelectionHandled = handleRowSelectionClick(event, rowId, rowData);
|
|
47
|
+
} else if (!hasSelectionMode) {
|
|
48
|
+
// No selection mode enabled, just handle as normal (makes row active)
|
|
49
|
+
isSelectionHandled = handleRowSelectionClick(event, rowId, rowData);
|
|
24
50
|
}
|
|
51
|
+
// When hasSelectionMode && !isrowselectable, skip row selection from row click
|
|
52
|
+
// Selection will only happen through the radio/checkbox column click
|
|
25
53
|
|
|
26
54
|
// Handle table edit row click (works for both inline and quickedit)
|
|
27
55
|
handleTableEditRowClick(rowData, rowId);
|
|
@@ -30,8 +58,14 @@ var useRowHandlers = exports.useRowHandlers = function useRowHandlers(_ref) {
|
|
|
30
58
|
var isEditingOrAdding = editingRowId !== null || isAddingNewRow;
|
|
31
59
|
|
|
32
60
|
// Handle active row state
|
|
61
|
+
// When isrowselectable is false and selection mode is enabled,
|
|
62
|
+
// don't set the active class on row click - only through radio/checkbox column
|
|
63
|
+
if (hasSelectionMode && !isrowselectable) {
|
|
64
|
+
// Skip setting active row when isrowselectable is false with selection mode
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
33
67
|
handleRowActiveClick(rowId, isSelectionHandled, isEditingOrAdding);
|
|
34
|
-
}, [editingRowId, isAddingNewRow, handleRowSelectionClick, handleTableEditRowClick, handleRowActiveClick]);
|
|
68
|
+
}, [editingRowId, isAddingNewRow, handleRowSelectionClick, handleTableEditRowClick, handleRowActiveClick, onRowclick, useRadioSelect, useMultiSelect, isrowselectable, listener, name]);
|
|
35
69
|
return {
|
|
36
70
|
handleRowClick: handleRowClick
|
|
37
71
|
};
|