@wavemaker/react-runtime 11.14.3-rc.6401 → 11.15.0-2.247
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 +73 -18
- 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 +31 -11
- 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 +4 -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/repeat-template/index.js +33 -0
- package/components/container/tabs/index.js +83 -14
- package/components/container/tabs/tab-pane/index.js +33 -10
- 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 +985 -183
- 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 +67 -45
- 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 +51 -18
- 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 -52
- 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 +209 -72
- 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 +105 -32
- 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 +85 -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 +41 -3
- 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 +423 -331
- 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
|
@@ -14,6 +14,7 @@ var _withBaseWrapper = _interopRequireDefault(require("../../../../higherOrder/w
|
|
|
14
14
|
var _dialog = _interopRequireDefault(require("../../../dialogs/dialog"));
|
|
15
15
|
var _dialogBody = require("@wavemaker/react-runtime/components/dialogs/dialog-body");
|
|
16
16
|
var _Box = _interopRequireDefault(require("@mui/material/Box"));
|
|
17
|
+
var _WidgetProvider = require("@wavemaker/react-runtime/context/WidgetProvider");
|
|
17
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); }
|
|
18
19
|
var __jsx = _react["default"].createElement;
|
|
19
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; }
|
|
@@ -28,6 +29,9 @@ var WmLiveTable = function WmLiveTable(props) {
|
|
|
28
29
|
var _useState3 = (0, _react.useState)(false),
|
|
29
30
|
isAddingNewRow = _useState3[0],
|
|
30
31
|
setIsAddingNewRow = _useState3[1];
|
|
32
|
+
var _useState4 = (0, _react.useState)(0),
|
|
33
|
+
formKey = _useState4[0],
|
|
34
|
+
setFormKey = _useState4[1]; // Key to force form re-creation
|
|
31
35
|
var isDialogLayout = props.formlayout === "dialog";
|
|
32
36
|
var _props$formlayout = props.formlayout,
|
|
33
37
|
formlayout = _props$formlayout === void 0 ? "form" : _props$formlayout,
|
|
@@ -60,6 +64,8 @@ var WmLiveTable = function WmLiveTable(props) {
|
|
|
60
64
|
}, [props.children]),
|
|
61
65
|
tableChild = _useMemo.tableChild,
|
|
62
66
|
formChild = _useMemo.formChild;
|
|
67
|
+
var tableWidget = (0, _WidgetProvider.useWidgetProxy)((tableChild === null || tableChild === void 0 ? void 0 : tableChild.props.name) || "");
|
|
68
|
+
var formWidget = (0, _WidgetProvider.useWidgetProxy)((formChild === null || formChild === void 0 ? void 0 : formChild.props.name) || "");
|
|
63
69
|
var handleOpenDialog = (0, _react.useCallback)(function () {
|
|
64
70
|
setIsDialogOpen(true);
|
|
65
71
|
}, []);
|
|
@@ -71,18 +77,16 @@ var WmLiveTable = function WmLiveTable(props) {
|
|
|
71
77
|
|
|
72
78
|
// Helper to get form widget - always get fresh value from listener
|
|
73
79
|
var getFormWidget = (0, _react.useCallback)(function () {
|
|
74
|
-
var _listener$Widgets;
|
|
75
80
|
// Always get fresh value from listener to ensure we have the latest registered methods
|
|
76
|
-
return
|
|
81
|
+
return formWidget;
|
|
77
82
|
}, [formChild === null || formChild === void 0 ? void 0 : formChild.props.name]);
|
|
78
83
|
var getTableWidget = (0, _react.useCallback)(function () {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
}, [tableChild === null || tableChild === void 0 ? void 0 : tableChild.props.name]);
|
|
84
|
+
return tableWidget;
|
|
85
|
+
}, [tableWidget]);
|
|
82
86
|
|
|
83
87
|
// Expose LiveTable methods through its own listener
|
|
84
88
|
(0, _react.useEffect)(function () {
|
|
85
|
-
if (!(listener !== null && listener !== void 0 && listener.onChange) || !(formChild !== null && formChild !== void 0 && formChild.props.name)) return;
|
|
89
|
+
if (!(listener !== null && listener !== void 0 && listener.onChange) || !(formChild !== null && formChild !== void 0 && formChild.props.name) || !tableWidget) return;
|
|
86
90
|
var liveTableContext = {
|
|
87
91
|
addNewRow: function addNewRow(event, widget, row) {
|
|
88
92
|
var formWidget = getFormWidget();
|
|
@@ -91,11 +95,35 @@ var WmLiveTable = function WmLiveTable(props) {
|
|
|
91
95
|
// Set flag to indicate we're adding a new row
|
|
92
96
|
setIsAddingNewRow(true);
|
|
93
97
|
if (isDialogLayout) {
|
|
94
|
-
|
|
98
|
+
var _listener$Widgets;
|
|
99
|
+
// Clear form data for new row and increment key to force form re-creation
|
|
95
100
|
setFormData({});
|
|
101
|
+
setFormKey(function (prev) {
|
|
102
|
+
return prev + 1;
|
|
103
|
+
}); // Force new form instance
|
|
104
|
+
// Clear the global widget registry to prevent stale form values
|
|
105
|
+
if (formChild !== null && formChild !== void 0 && formChild.props.name && listener !== null && listener !== void 0 && (_listener$Widgets = listener.Widgets) !== null && _listener$Widgets !== void 0 && _listener$Widgets[formChild.props.name]) {
|
|
106
|
+
listener.Widgets[formChild.props.name].formdata = {};
|
|
107
|
+
// Clear formfields to reset individual field values
|
|
108
|
+
if (listener.Widgets[formChild.props.name].formfields) {
|
|
109
|
+
Object.keys(listener.Widgets[formChild.props.name].formfields).forEach(function (key) {
|
|
110
|
+
var field = listener.Widgets[formChild.props.name].formfields[key];
|
|
111
|
+
if (field) {
|
|
112
|
+
field.datavalue = field.defaultvalue || "";
|
|
113
|
+
field.value = field.defaultvalue || "";
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
}
|
|
96
118
|
handleOpenDialog();
|
|
97
119
|
} else if (formlayout === "form") {
|
|
98
|
-
// For non-dialog mode,
|
|
120
|
+
// For non-dialog mode, clear form data by setting empty object
|
|
121
|
+
setFormData({});
|
|
122
|
+
// Also update the form widget's formdata in context
|
|
123
|
+
if (formWidget && formChild !== null && formChild !== void 0 && formChild.props.name && listener !== null && listener !== void 0 && listener.Widgets) {
|
|
124
|
+
listener.Widgets[formChild.props.name].formdata = {};
|
|
125
|
+
}
|
|
126
|
+
// Reset the form
|
|
99
127
|
formWidget === null || formWidget === void 0 || formWidget["new"]();
|
|
100
128
|
} else if (formlayout === "inline" || formlayout === "quickedit") {
|
|
101
129
|
tableWidget === null || tableWidget === void 0 || tableWidget.addNewRow();
|
|
@@ -111,8 +139,8 @@ var WmLiveTable = function WmLiveTable(props) {
|
|
|
111
139
|
setFormData(row);
|
|
112
140
|
handleOpenDialog();
|
|
113
141
|
} else if (formlayout === "form") {
|
|
114
|
-
var
|
|
115
|
-
|
|
142
|
+
var _formWidget = getFormWidget();
|
|
143
|
+
_formWidget === null || _formWidget === void 0 || _formWidget.edit(row);
|
|
116
144
|
} else if (formlayout === "inline" || formlayout === "quickedit") {
|
|
117
145
|
tableWidget === null || tableWidget === void 0 || tableWidget.editRow(event, widget, row);
|
|
118
146
|
}
|
|
@@ -129,7 +157,7 @@ var WmLiveTable = function WmLiveTable(props) {
|
|
|
129
157
|
// Create stable callbacks for form handlers
|
|
130
158
|
var handleFormSuccess = (0, _react.useCallback)(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
131
159
|
var _formChild$props, _formChild$props$onSu;
|
|
132
|
-
var
|
|
160
|
+
var _formWidget2$setShowV, _formWidget2, tableWidget;
|
|
133
161
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
134
162
|
while (1) switch (_context.prev = _context.next) {
|
|
135
163
|
case 0:
|
|
@@ -137,8 +165,8 @@ var WmLiveTable = function WmLiveTable(props) {
|
|
|
137
165
|
handleCloseDialog();
|
|
138
166
|
} else {
|
|
139
167
|
// Set form to view mode after successful submission
|
|
140
|
-
|
|
141
|
-
|
|
168
|
+
_formWidget2 = getFormWidget();
|
|
169
|
+
_formWidget2 === null || _formWidget2 === void 0 || (_formWidget2$setShowV = _formWidget2.setShowViewMode) === null || _formWidget2$setShowV === void 0 || _formWidget2$setShowV.call(_formWidget2, true);
|
|
142
170
|
}
|
|
143
171
|
tableWidget = getTableWidget();
|
|
144
172
|
if (!(tableWidget && tableWidget.datasource)) {
|
|
@@ -179,10 +207,10 @@ var WmLiveTable = function WmLiveTable(props) {
|
|
|
179
207
|
// Call original cancel if it exists
|
|
180
208
|
formChild === null || formChild === void 0 || (_formChild$props2 = formChild.props) === null || _formChild$props2 === void 0 || (_formChild$props2$can = _formChild$props2.cancel) === null || _formChild$props2$can === void 0 || _formChild$props2$can.call(_formChild$props2);
|
|
181
209
|
if (formlayout === "form") {
|
|
182
|
-
var
|
|
210
|
+
var _formWidget3$setShowV;
|
|
183
211
|
// Set form to view mode after successful submission
|
|
184
|
-
var
|
|
185
|
-
|
|
212
|
+
var _formWidget3 = getFormWidget();
|
|
213
|
+
_formWidget3 === null || _formWidget3 === void 0 || (_formWidget3$setShowV = _formWidget3.setShowViewMode) === null || _formWidget3$setShowV === void 0 || _formWidget3$setShowV.call(_formWidget3, true);
|
|
186
214
|
}
|
|
187
215
|
}, [handleCloseDialog, formChild === null || formChild === void 0 ? void 0 : formChild.props, formlayout, getFormWidget]);
|
|
188
216
|
|
|
@@ -193,17 +221,18 @@ var WmLiveTable = function WmLiveTable(props) {
|
|
|
193
221
|
isLayoutDialog: isDialogLayout,
|
|
194
222
|
onSuccess: handleFormSuccess,
|
|
195
223
|
cancel: handleFormCancel
|
|
196
|
-
},
|
|
224
|
+
}, formData !== null && {
|
|
197
225
|
formdata: formData
|
|
198
226
|
});
|
|
199
227
|
return /*#__PURE__*/(0, _react.cloneElement)(formChild, newProps);
|
|
200
|
-
}, [formChild, isDialogLayout, handleFormSuccess, handleFormCancel, formData]);
|
|
228
|
+
}, [formChild, isDialogLayout, handleFormSuccess, handleFormCancel, formData, formKey]);
|
|
201
229
|
var enhancedTableChild = (0, _react.useMemo)(function () {
|
|
202
230
|
if (!tableChild || ! /*#__PURE__*/(0, _react.isValidElement)(tableChild)) return tableChild;
|
|
203
231
|
return /*#__PURE__*/(0, _react.cloneElement)(tableChild, _objectSpread(_objectSpread({}, tableChild.props), {}, {
|
|
204
|
-
formName: formChild === null || formChild === void 0 ? void 0 : formChild.props.name
|
|
232
|
+
formName: formChild === null || formChild === void 0 ? void 0 : formChild.props.name,
|
|
233
|
+
hidden: props.hidden
|
|
205
234
|
}));
|
|
206
|
-
}, [tableChild]);
|
|
235
|
+
}, [tableChild, props.hidden]);
|
|
207
236
|
|
|
208
237
|
// Render based on formlayout
|
|
209
238
|
if (isDialogLayout) {
|
|
@@ -220,13 +249,16 @@ var WmLiveTable = function WmLiveTable(props) {
|
|
|
220
249
|
}, __jsx(_dialogBody.WmDialogBody, {
|
|
221
250
|
name: "popup-body",
|
|
222
251
|
listener: {}
|
|
223
|
-
},
|
|
252
|
+
}, __jsx("div", {
|
|
253
|
+
key: "form-wrapper-".concat(formKey)
|
|
254
|
+
}, enhancedFormChild))));
|
|
224
255
|
}
|
|
225
256
|
|
|
226
257
|
// Default: render as form
|
|
227
258
|
return __jsx(_Box["default"], {
|
|
228
259
|
component: "div",
|
|
229
|
-
className: "app-livegrid"
|
|
260
|
+
className: "app-livegrid",
|
|
261
|
+
hidden: props.hidden
|
|
230
262
|
}, enhancedTableChild, enhancedFormChild);
|
|
231
263
|
};
|
|
232
264
|
var _default = exports["default"] = (0, _withBaseWrapper["default"])(WmLiveTable);
|
|
@@ -9,7 +9,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
9
9
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
10
10
|
var _react = _interopRequireDefault(require("react"));
|
|
11
11
|
var _Button = _interopRequireDefault(require("@mui/material/Button"));
|
|
12
|
-
var _withBaseWrapper = _interopRequireDefault(require("
|
|
12
|
+
var _withBaseWrapper = _interopRequireDefault(require("@wavemaker/react-runtime/higherOrder/withBaseWrapper"));
|
|
13
13
|
var _excluded = ["widgetType", "displayName", "iconclass", "action", "position", "shortcutkey", "listener", "children", "variant", "color", "onClick"];
|
|
14
14
|
var __jsx = _react["default"].createElement;
|
|
15
15
|
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; }
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var __jsx = _react["default"].createElement;
|
|
10
|
+
/**
|
|
11
|
+
* WmTableGroup component for grouping table columns under a common header.
|
|
12
|
+
* Supports nested groups to create multi-level headers.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* <WmTableGroup name="personalInfo" caption="Personal Information">
|
|
16
|
+
* <WmTableColumn binding="firstName" caption="First Name" />
|
|
17
|
+
* <WmTableColumn binding="lastName" caption="Last Name" />
|
|
18
|
+
* </WmTableGroup>
|
|
19
|
+
*/
|
|
20
|
+
function WmTableGroup(_ref) {
|
|
21
|
+
var children = _ref.children;
|
|
22
|
+
// This component is just a marker component for defining table structure
|
|
23
|
+
// The actual rendering logic is handled by the table header component
|
|
24
|
+
return __jsx(_react["default"].Fragment, null, children);
|
|
25
|
+
}
|
|
26
|
+
var _default = exports["default"] = WmTableGroup;
|
|
@@ -5,16 +5,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports["default"] = exports.WmTableRowAction = void 0;
|
|
8
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
9
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
10
|
var _react = _interopRequireDefault(require("react"));
|
|
12
|
-
var _material = require("@mui/material");
|
|
13
11
|
var _anchor = require("@wavemaker/react-runtime/components/basic/anchor");
|
|
12
|
+
var _button = require("@wavemaker/react-runtime/components/form/button");
|
|
14
13
|
var _excluded = ["displayName", "title", "iconclass", "action", "row", "rowIndex", "listener", "children", "onClick", "widgettype", "show"];
|
|
15
14
|
var __jsx = _react["default"].createElement;
|
|
16
|
-
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; }
|
|
17
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
18
15
|
var WmTableRowActionComponent = function WmTableRowActionComponent(_ref) {
|
|
19
16
|
var displayName = _ref.displayName,
|
|
20
17
|
title = _ref.title,
|
|
@@ -29,11 +26,29 @@ var WmTableRowActionComponent = function WmTableRowActionComponent(_ref) {
|
|
|
29
26
|
_ref$show = _ref.show,
|
|
30
27
|
show = _ref$show === void 0 ? true : _ref$show,
|
|
31
28
|
props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
|
|
32
|
-
|
|
29
|
+
// Track if mousedown already triggered the action to prevent double-firing
|
|
30
|
+
var actionTriggeredRef = _react["default"].useRef(false);
|
|
31
|
+
|
|
32
|
+
// Use onMouseDown to trigger action BEFORE blur event fires
|
|
33
|
+
// This prevents the click from being lost when input has focus
|
|
34
|
+
var handleMouseDown = function handleMouseDown(event) {
|
|
33
35
|
event.preventDefault();
|
|
34
36
|
event.stopPropagation();
|
|
35
|
-
if (onClick) {
|
|
36
|
-
|
|
37
|
+
if (onClick && !actionTriggeredRef.current) {
|
|
38
|
+
actionTriggeredRef.current = true;
|
|
39
|
+
onClick(event, {}, row);
|
|
40
|
+
// Reset the flag after a short delay to allow subsequent clicks
|
|
41
|
+
setTimeout(function () {
|
|
42
|
+
actionTriggeredRef.current = false;
|
|
43
|
+
}, 100);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
var handleClick = function handleClick(event, widget, newVal, oldVal) {
|
|
47
|
+
event === null || event === void 0 || event.preventDefault();
|
|
48
|
+
event === null || event === void 0 || event.stopPropagation();
|
|
49
|
+
|
|
50
|
+
// Only trigger if mousedown didn't already trigger (fallback for edge cases)
|
|
51
|
+
if (onClick && !actionTriggeredRef.current) {
|
|
37
52
|
onClick(event, {}, row);
|
|
38
53
|
}
|
|
39
54
|
};
|
|
@@ -47,26 +62,25 @@ var WmTableRowActionComponent = function WmTableRowActionComponent(_ref) {
|
|
|
47
62
|
name: props.name || displayName,
|
|
48
63
|
listener: listener,
|
|
49
64
|
onClick: handleClick,
|
|
65
|
+
onMouseDown: handleMouseDown,
|
|
50
66
|
iconclass: iconclass,
|
|
51
67
|
show: show.toString(),
|
|
52
68
|
className: "wm-table-row-action ".concat(props.className || "")
|
|
53
69
|
}));
|
|
54
70
|
}
|
|
55
|
-
return __jsx(
|
|
71
|
+
return __jsx(_button.WmButton, {
|
|
56
72
|
variant: "text",
|
|
57
73
|
size: "small",
|
|
58
74
|
className: "wm-table-row-action ".concat(props.className || ""),
|
|
59
75
|
onClick: handleClick,
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
textTransform: "none"
|
|
69
|
-
})
|
|
76
|
+
onMouseDown: handleMouseDown,
|
|
77
|
+
title: title
|
|
78
|
+
// startIcon={iconclass ? <i className={iconclass} /> : undefined}
|
|
79
|
+
,
|
|
80
|
+
styles: props.styles,
|
|
81
|
+
name: props.name,
|
|
82
|
+
listener: props.listener,
|
|
83
|
+
iconclass: iconclass
|
|
70
84
|
}, displayName);
|
|
71
85
|
};
|
|
72
86
|
WmTableRowActionComponent.displayName = "WmTableRowAction";
|
|
@@ -8,12 +8,10 @@ exports.buildSelectionColumns = void 0;
|
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
var _material = require("@mui/material");
|
|
10
10
|
var _index = require("./index");
|
|
11
|
-
var _lodashEs = require("lodash-es");
|
|
12
11
|
var __jsx = _react["default"].createElement;
|
|
13
12
|
var buildSelectionColumns = exports.buildSelectionColumns = function buildSelectionColumns(_ref) {
|
|
14
13
|
var useRadioSelect = _ref.useRadioSelect,
|
|
15
14
|
useMultiSelect = _ref.useMultiSelect,
|
|
16
|
-
selectedRowId = _ref.selectedRowId,
|
|
17
15
|
selectedRowIds = _ref.selectedRowIds,
|
|
18
16
|
handleRadioSelection = _ref.handleRadioSelection,
|
|
19
17
|
handleMultiSelection = _ref.handleMultiSelection,
|
|
@@ -42,12 +40,10 @@ var buildSelectionColumns = exports.buildSelectionColumns = function buildSelect
|
|
|
42
40
|
});
|
|
43
41
|
},
|
|
44
42
|
cell: function cell(_ref2) {
|
|
45
|
-
var
|
|
46
|
-
var row = _ref2.row,
|
|
47
|
-
table = _ref2.table;
|
|
43
|
+
var row = _ref2.row;
|
|
48
44
|
var rowId = row.id;
|
|
49
|
-
//
|
|
50
|
-
var isSelected =
|
|
45
|
+
// Use TanStack Table's built-in selection state for reactive cell updates
|
|
46
|
+
var isSelected = row.getIsSelected();
|
|
51
47
|
return __jsx(_material.Box, {
|
|
52
48
|
sx: {
|
|
53
49
|
display: "flex",
|
|
@@ -89,14 +85,11 @@ var buildSelectionColumns = exports.buildSelectionColumns = function buildSelect
|
|
|
89
85
|
if (useMultiSelect) {
|
|
90
86
|
return {
|
|
91
87
|
id: "multiSelect",
|
|
92
|
-
header: function header(
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
var
|
|
96
|
-
var
|
|
97
|
-
var selectedCount = (0, _lodashEs.size)((0, _lodashEs.pickBy)(rowSelection));
|
|
98
|
-
var isAllSelected = selectedCount > 0 && selectedCount === currentData.length;
|
|
99
|
-
var isIndeterminate = selectedCount > 0 && selectedCount < currentData.length;
|
|
88
|
+
header: function header() {
|
|
89
|
+
// Use selectedRowIds and internalDataset directly for reliable state
|
|
90
|
+
var selectedCount = selectedRowIds.length;
|
|
91
|
+
var isAllSelected = selectedCount > 0 && selectedCount === internalDataset.length;
|
|
92
|
+
var isIndeterminate = selectedCount > 0 && selectedCount < internalDataset.length;
|
|
100
93
|
return __jsx(_material.Box, {
|
|
101
94
|
sx: {
|
|
102
95
|
display: "flex",
|
|
@@ -121,13 +114,11 @@ var buildSelectionColumns = exports.buildSelectionColumns = function buildSelect
|
|
|
121
114
|
className: "caption"
|
|
122
115
|
})));
|
|
123
116
|
},
|
|
124
|
-
cell: function cell(
|
|
125
|
-
var
|
|
126
|
-
var row = _ref4.row,
|
|
127
|
-
table = _ref4.table;
|
|
117
|
+
cell: function cell(_ref3) {
|
|
118
|
+
var row = _ref3.row;
|
|
128
119
|
var rowId = row.id;
|
|
129
|
-
//
|
|
130
|
-
var isSelected =
|
|
120
|
+
// Use TanStack Table's built-in selection state for reactive cell updates
|
|
121
|
+
var isSelected = row.getIsSelected();
|
|
131
122
|
return __jsx(_material.Box, {
|
|
132
123
|
sx: {
|
|
133
124
|
display: "flex",
|
|
@@ -20,9 +20,9 @@ var createRowIndexColumn = exports.createRowIndexColumn = function createRowInde
|
|
|
20
20
|
return {
|
|
21
21
|
id: "rowIndex",
|
|
22
22
|
header: "S. No.",
|
|
23
|
-
size:
|
|
24
|
-
minSize:
|
|
25
|
-
maxSize:
|
|
23
|
+
size: 70,
|
|
24
|
+
minSize: 70,
|
|
25
|
+
maxSize: 70,
|
|
26
26
|
enableResizing: false,
|
|
27
27
|
cell: function cell(_ref) {
|
|
28
28
|
var row = _ref.row,
|
|
@@ -68,7 +68,7 @@ var createDataColumn = exports.createDataColumn = function createDataColumn(wmCo
|
|
|
68
68
|
} else if ((_wmColumn$styles = wmColumn.styles) !== null && _wmColumn$styles !== void 0 && _wmColumn$styles.width) {
|
|
69
69
|
columnSize = (0, _.parseWidth)(wmColumn.styles.width);
|
|
70
70
|
}
|
|
71
|
-
return {
|
|
71
|
+
return _objectSpread(_objectSpread({
|
|
72
72
|
accessorKey: wmColumn.field,
|
|
73
73
|
// Use sortby field for sorting if provided, otherwise use the display field
|
|
74
74
|
// Supports nested properties like "department.store.employee"
|
|
@@ -77,12 +77,13 @@ var createDataColumn = exports.createDataColumn = function createDataColumn(wmCo
|
|
|
77
77
|
} : undefined,
|
|
78
78
|
header: wmColumn.caption,
|
|
79
79
|
size: columnSize,
|
|
80
|
-
minSize: 50
|
|
81
|
-
|
|
82
|
-
maxSize:
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
80
|
+
minSize: 50
|
|
81
|
+
}, columnSize ? {} : {
|
|
82
|
+
maxSize: 500
|
|
83
|
+
}), {}, {
|
|
84
|
+
// Only set maxSize for auto-sized columns
|
|
85
|
+
enableResizing: true,
|
|
86
|
+
// Enable resizing for all data columns
|
|
86
87
|
cell: function cell(_ref2) {
|
|
87
88
|
var row = _ref2.row;
|
|
88
89
|
return renderCell(wmColumn, row);
|
|
@@ -92,7 +93,8 @@ var createDataColumn = exports.createDataColumn = function createDataColumn(wmCo
|
|
|
92
93
|
meta: _objectSpread(_objectSpread({
|
|
93
94
|
textAlign: wmColumn.textalignment,
|
|
94
95
|
backgroundColor: wmColumn.backgroundcolor,
|
|
95
|
-
className: wmColumn.
|
|
96
|
+
className: wmColumn === null || wmColumn === void 0 ? void 0 : wmColumn.className,
|
|
97
|
+
colClass: wmColumn.colClass
|
|
96
98
|
}, wmColumn.styles), {}, {
|
|
97
99
|
// Include widget types for filter rendering
|
|
98
100
|
widgetType: wmColumn.widgetType,
|
|
@@ -100,9 +102,11 @@ var createDataColumn = exports.createDataColumn = function createDataColumn(wmCo
|
|
|
100
102
|
editinputtype: wmColumn.editinputtype,
|
|
101
103
|
// Include column type for filtering
|
|
102
104
|
type: wmColumn.type || wmColumn.columntype || "string",
|
|
103
|
-
searchable: wmColumn.searchable !== false
|
|
105
|
+
searchable: wmColumn.searchable !== false,
|
|
106
|
+
// Custom cell renderer for optimized rendering in MemoizedRowCells
|
|
107
|
+
renderCellContent: wmColumn === null || wmColumn === void 0 ? void 0 : wmColumn.renderCellContent
|
|
104
108
|
})
|
|
105
|
-
};
|
|
109
|
+
});
|
|
106
110
|
};
|
|
107
111
|
|
|
108
112
|
/**
|
|
@@ -119,7 +123,7 @@ var createDataColumns = exports.createDataColumns = function createDataColumns(w
|
|
|
119
123
|
};
|
|
120
124
|
|
|
121
125
|
/**
|
|
122
|
-
* Creates save/cancel action buttons for editing mode
|
|
126
|
+
* Creates save/cancel/delete action buttons for editing mode
|
|
123
127
|
*/
|
|
124
128
|
var createEditingActionButtons = exports.createEditingActionButtons = function createEditingActionButtons() {
|
|
125
129
|
return [{
|
|
@@ -144,6 +148,17 @@ var createEditingActionButtons = exports.createEditingActionButtons = function c
|
|
|
144
148
|
action: "cancel",
|
|
145
149
|
show: true,
|
|
146
150
|
widgettype: "button"
|
|
151
|
+
}, {
|
|
152
|
+
key: "delete-edit",
|
|
153
|
+
name: "delete-row",
|
|
154
|
+
className: "delete row-action-button btn app-button btn-transparent delete-row-button",
|
|
155
|
+
dataActionKey: "deleteRow",
|
|
156
|
+
displayName: "",
|
|
157
|
+
title: "Delete",
|
|
158
|
+
iconclass: "wi wi-trash",
|
|
159
|
+
action: "delete",
|
|
160
|
+
show: true,
|
|
161
|
+
widgettype: "button"
|
|
147
162
|
}];
|
|
148
163
|
};
|
|
149
164
|
|
|
@@ -1,10 +1,15 @@
|
|
|
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.createColumnsProxy = createColumnsProxy;
|
|
7
8
|
exports.keyMap = void 0;
|
|
9
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
11
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
12
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
8
13
|
var keyMap = exports.keyMap = {
|
|
9
14
|
caption: "header",
|
|
10
15
|
name: "accessorKey",
|
|
@@ -15,13 +20,36 @@ var keyMap = exports.keyMap = {
|
|
|
15
20
|
colClass: "meta.className",
|
|
16
21
|
style: "meta"
|
|
17
22
|
};
|
|
18
|
-
|
|
23
|
+
|
|
24
|
+
// Types for summary row data
|
|
25
|
+
|
|
26
|
+
// Interface for aggregate methods
|
|
27
|
+
|
|
28
|
+
// Interface for enhanced column with aggregate and summary methods
|
|
29
|
+
|
|
30
|
+
// Function to create aggregate methods for a column
|
|
31
|
+
|
|
32
|
+
function createColumnsProxy(wmTableColumns, applyOverride, setColumnsVersion, setSummaryRowDef) {
|
|
19
33
|
var proxy = {};
|
|
20
34
|
wmTableColumns.forEach(function (col, idx) {
|
|
21
35
|
var key = col.field;
|
|
22
36
|
if (key) {
|
|
37
|
+
// Get column's show property (default to true if not specified)
|
|
38
|
+
var columnShow = col.show !== undefined ? col.show : true;
|
|
39
|
+
|
|
40
|
+
// Create setSummaryRowData method
|
|
41
|
+
var setSummaryRowData = function setSummaryRowData(data) {
|
|
42
|
+
var newData = Array.isArray(data) ? data : [data];
|
|
43
|
+
invokeSummaryRowData(key, newData, setSummaryRowDef, columnShow);
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
// Create the proxy for this column
|
|
23
47
|
proxy[key] = new Proxy(col, {
|
|
24
48
|
get: function get(target, prop) {
|
|
49
|
+
// Return setSummaryRowData method
|
|
50
|
+
if (prop === "setSummaryRowData") {
|
|
51
|
+
return setSummaryRowData;
|
|
52
|
+
}
|
|
25
53
|
return target[prop];
|
|
26
54
|
},
|
|
27
55
|
set: function set(target, prop, value) {
|
|
@@ -45,4 +73,43 @@ function createColumnsProxy(wmTableColumns, applyOverride, setColumnsVersion) {
|
|
|
45
73
|
}
|
|
46
74
|
});
|
|
47
75
|
return proxy;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// Helper function to invoke summary row data with Promise handling
|
|
79
|
+
function invokeSummaryRowData(columnKey, data, setSummaryRowDef, show) {
|
|
80
|
+
if (!setSummaryRowDef) return;
|
|
81
|
+
data.forEach(function (item, index) {
|
|
82
|
+
// Handle Promise values directly
|
|
83
|
+
if (item instanceof Promise) {
|
|
84
|
+
item.then(function (resolvedValue) {
|
|
85
|
+
setSummaryRowDef(columnKey, resolvedValue, index, true, show);
|
|
86
|
+
})["catch"](function (error) {
|
|
87
|
+
console.error("Error resolving summary row data for column ".concat(columnKey, ":"), error);
|
|
88
|
+
setSummaryRowDef(columnKey, "", index, true, show);
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
// Handle objects with Promise values
|
|
92
|
+
else if (item && (0, _typeof2["default"])(item) === "object" && "value" in item) {
|
|
93
|
+
var itemObj = item;
|
|
94
|
+
if (itemObj.value instanceof Promise) {
|
|
95
|
+
itemObj.value.then(function (resolvedValue) {
|
|
96
|
+
setSummaryRowDef(columnKey, _objectSpread(_objectSpread({}, itemObj), {}, {
|
|
97
|
+
value: resolvedValue
|
|
98
|
+
}), index, true, show);
|
|
99
|
+
})["catch"](function (error) {
|
|
100
|
+
console.error("Error resolving summary row data for column ".concat(columnKey, ":"), error);
|
|
101
|
+
setSummaryRowDef(columnKey, _objectSpread(_objectSpread({}, itemObj), {}, {
|
|
102
|
+
value: ""
|
|
103
|
+
}), index, true, show);
|
|
104
|
+
});
|
|
105
|
+
} else {
|
|
106
|
+
// Object with non-Promise value
|
|
107
|
+
setSummaryRowDef(columnKey, item, index, false, show);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// Handle regular values (string, number, etc.)
|
|
111
|
+
else {
|
|
112
|
+
setSummaryRowDef(columnKey, item, index, false, show);
|
|
113
|
+
}
|
|
114
|
+
});
|
|
48
115
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.TABLE_MESSAGES = exports.TABLE_DATA_STATES = exports.TABLE_CSS_CLASSES = exports.INTERACTIVE_TAG_NAMES = exports.INTERACTIVE_ROLES = exports.INTERACTIVE_DATA_ROLES = exports.INTERACTIVE_CLASSES = exports.DYNAMIC_COLUMNS_CONFIG = void 0;
|
|
6
|
+
exports.UNSUPPORTED_STATE_PERSISTENCE_TYPES = exports.TABLE_MESSAGES = exports.TABLE_DATA_STATES = exports.TABLE_CSS_CLASSES = exports.INTERACTIVE_TAG_NAMES = exports.INTERACTIVE_ROLES = exports.INTERACTIVE_DATA_ROLES = exports.INTERACTIVE_CLASSES = exports.DYNAMIC_COLUMNS_CONFIG = void 0;
|
|
7
7
|
// CSS Class Names Constants
|
|
8
8
|
var TABLE_CSS_CLASSES = exports.TABLE_CSS_CLASSES = {
|
|
9
9
|
tableRow: "app-datagrid-row",
|
|
@@ -77,4 +77,8 @@ var DYNAMIC_COLUMNS_CONFIG = exports.DYNAMIC_COLUMNS_CONFIG = {
|
|
|
77
77
|
maxColumns: 10,
|
|
78
78
|
// Maximum number of columns to generate from data (matching Angular behavior)
|
|
79
79
|
sampleSize: 3 // Number of rows to sample for column detection
|
|
80
|
-
};
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
// Navigation types that don't support state persistence
|
|
83
|
+
// These navigation types accumulate data and don't maintain traditional pagination state
|
|
84
|
+
var UNSUPPORTED_STATE_PERSISTENCE_TYPES = exports.UNSUPPORTED_STATE_PERSISTENCE_TYPES = ["Scroll", "On-Demand", "Inline"];
|