drf-react-by-schema 0.19.17 → 0.19.19
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/dist/components/DataGridBySchemaEditable/CustomToolbar.d.ts.map +1 -1
- package/dist/components/DataGridBySchemaEditable/CustomToolbar.js +10 -3
- package/dist/components/DataGridBySchemaEditable/DataGridDesktop.d.ts +4 -3
- package/dist/components/DataGridBySchemaEditable/DataGridDesktop.d.ts.map +1 -1
- package/dist/components/DataGridBySchemaEditable/DataGridDesktop.js +30 -23
- package/dist/components/GenericModelList.d.ts +3 -2
- package/dist/components/GenericModelList.d.ts.map +1 -1
- package/dist/components/GenericModelList.js +5 -5
- package/dist/components/GenericRelatedModelList.d.ts +3 -2
- package/dist/components/GenericRelatedModelList.d.ts.map +1 -1
- package/dist/components/GenericRelatedModelList.js +1 -1
- package/dist/components/GenericRelatedModelListTable.d.ts +3 -2
- package/dist/components/GenericRelatedModelListTable.d.ts.map +1 -1
- package/dist/components/GenericRelatedModelListTable.js +2 -1
- package/dist/utils.d.ts +1 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +71 -3
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomToolbar.d.ts","sourceRoot":"","sources":["../../../src/components/DataGridBySchemaEditable/CustomToolbar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAexC,OAAO,EACL,cAAc,EACd,cAAc,EACd,0BAA0B,EAC1B,EAAE,EACF,IAAI,EACJ,eAAe,EAChB,MAAM,cAAc,CAAC;AAGtB,KAAK,kBAAkB,GAAG;IACxB,eAAe,EAAE,0BAA0B,EAAE,CAAC;IAC9C,kBAAkB,EAAE,CAAC,CAAC,EAAE,IAAI,GAAG,0BAA0B,EAAE,KAAK,IAAI,CAAC;IACrE,eAAe,CAAC,EAAE,eAAe,EAAE,CAAC;IACpC,cAAc,EAAE,IAAI,EAAE,CAAC;IACvB,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,IAAI,CAAC;IAClC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,yNAa3B,kBAAkB,
|
|
1
|
+
{"version":3,"file":"CustomToolbar.d.ts","sourceRoot":"","sources":["../../../src/components/DataGridBySchemaEditable/CustomToolbar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAexC,OAAO,EACL,cAAc,EACd,cAAc,EACd,0BAA0B,EAC1B,EAAE,EACF,IAAI,EACJ,eAAe,EAChB,MAAM,cAAc,CAAC;AAGtB,KAAK,kBAAkB,GAAG;IACxB,eAAe,EAAE,0BAA0B,EAAE,CAAC;IAC9C,kBAAkB,EAAE,CAAC,CAAC,EAAE,IAAI,GAAG,0BAA0B,EAAE,KAAK,IAAI,CAAC;IACrE,eAAe,CAAC,EAAE,eAAe,EAAE,CAAC;IACpC,cAAc,EAAE,IAAI,EAAE,CAAC;IACvB,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,IAAI,CAAC;IAClC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,yNAa3B,kBAAkB,sBA0GpB,CAAC"}
|
|
@@ -67,6 +67,9 @@ const CustomToolbar = ({ preparedColumns, setPreparedColumns, onSelectActions, s
|
|
|
67
67
|
const closeActionsMenu = () => {
|
|
68
68
|
setActionsMenuAnchorEl(null);
|
|
69
69
|
};
|
|
70
|
+
const DensitySelector = () => (
|
|
71
|
+
// @ts-expect-error - Ignore missing event handlers (they don't actually exist)
|
|
72
|
+
react_1.default.createElement(x_data_grid_1.GridToolbarDensitySelector, { sx: { ml: '10px', fontSize: '13px' }, placeholder: "" }));
|
|
70
73
|
return (react_1.default.createElement(x_data_grid_1.GridToolbarContainer, { sx: { justifyContent: 'space-between' } },
|
|
71
74
|
react_1.default.createElement("div", { style: { display: 'flex', flexWrap: 'wrap' } },
|
|
72
75
|
onSelectActions && onSelectActions.length > 0 && selectionModel.length > 0 && (react_1.default.createElement(react_1.default.Fragment, null,
|
|
@@ -90,10 +93,14 @@ const CustomToolbar = ({ preparedColumns, setPreparedColumns, onSelectActions, s
|
|
|
90
93
|
}
|
|
91
94
|
selectAction.action(selectionModel, bulkUpdateData);
|
|
92
95
|
} }, selectAction.title)))))),
|
|
93
|
-
!hideColumnsButton && (
|
|
94
|
-
|
|
96
|
+
!hideColumnsButton && (
|
|
97
|
+
// @ts-expect-error - Ignore missing event handlers (they don't actually exist)
|
|
98
|
+
react_1.default.createElement(x_data_grid_1.GridToolbarColumnsButton, { sx: { ml: '10px', fontSize: '13px' }, placeholder: "" })),
|
|
99
|
+
!hideFilterButton && (
|
|
100
|
+
// @ts-expect-error - Ignore missing event handlers (they don't actually exist)
|
|
101
|
+
react_1.default.createElement(x_data_grid_1.GridToolbarFilterButton, { sx: { ml: '10px', fontSize: '13px' }, placeholder: "" })),
|
|
95
102
|
!hideDensityButton && (react_1.default.createElement(react_1.default.Fragment, null,
|
|
96
|
-
react_1.default.createElement(
|
|
103
|
+
react_1.default.createElement(DensitySelector, null),
|
|
97
104
|
react_1.default.createElement(Button_1.default, { onClick: openResizeMenu, sx: { ml: '0px', fontSize: '13px' } },
|
|
98
105
|
react_1.default.createElement(Expand_1.default, { sx: { transform: 'rotate(90deg)', mr: '6px' } }),
|
|
99
106
|
"Ajustar"),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { JSX } from 'react';
|
|
2
2
|
import { GridRowId, GridRenderCellParams } from '@mui/x-data-grid';
|
|
3
3
|
import * as Yup from 'yup';
|
|
4
4
|
import { SxProps } from '@mui/material';
|
|
@@ -63,6 +63,7 @@ interface DataGridDesktopProps {
|
|
|
63
63
|
setSnackBar: React.Dispatch<React.SetStateAction<Item>>;
|
|
64
64
|
yupValidationSchema: Yup.AnySchema | null;
|
|
65
65
|
}
|
|
66
|
-
declare
|
|
67
|
-
|
|
66
|
+
declare function DataGridDesktop({ schema, dataGrid, setDataGrid, rowCount, columns, model, name, indexField, addExistingModel, indexFieldMinWidth, indexFieldBasePath, indexFieldViewBasePath, stateToLink, minWidth, loading, modelParent, modelParentId, customColumnOperations, customFieldFormLayouts, customLinkDestination, LinkComponent, onProcessRow, onDataChange, onEditModel, isEditable, hasBulkSelect, onSelectActions, isAutoHeight, hideFooterPagination, setVisibleRows, paginationModel, setPaginationModel, hideFooterComponent, hideToolbarComponent, tableAutoHeight, actions, customActions, hideColumnsButton, hideFilterButton, hideDensityButton, hideExportButton, hideQuickFilterBar, optionsAC: optionsACExternal, emptyItem, handleDeleteClick, setSnackBar, yupValidationSchema, }: DataGridDesktopProps): JSX.Element;
|
|
67
|
+
declare const _default: React.MemoExoticComponent<typeof DataGridDesktop>;
|
|
68
|
+
export default _default;
|
|
68
69
|
//# sourceMappingURL=DataGridDesktop.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataGridDesktop.d.ts","sourceRoot":"","sources":["../../../src/components/DataGridBySchemaEditable/DataGridDesktop.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"DataGridDesktop.d.ts","sourceRoot":"","sources":["../../../src/components/DataGridBySchemaEditable/DataGridDesktop.tsx"],"names":[],"mappings":"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"}
|
|
@@ -70,7 +70,7 @@ const GridPatternInput_1 = require("./GridPatternInput");
|
|
|
70
70
|
const BooleanInputCell_1 = require("./BooleanInputCell");
|
|
71
71
|
const FooterToolbar_1 = require("./FooterToolbar");
|
|
72
72
|
const APIWrapperContext_1 = require("../../context/APIWrapperContext");
|
|
73
|
-
|
|
73
|
+
function DataGridDesktop({ schema, dataGrid, setDataGrid, rowCount = 0, columns, model, name = Math.floor(Math.random() * 1000000).toString(), indexField = 'nome', addExistingModel, indexFieldMinWidth = 350, indexFieldBasePath = '', indexFieldViewBasePath, stateToLink = {}, minWidth = 80, loading, modelParent, modelParentId, customColumnOperations, customFieldFormLayouts, customLinkDestination, LinkComponent, onProcessRow, onDataChange, onEditModel, isEditable = false, hasBulkSelect = false, onSelectActions, isAutoHeight = false, hideFooterPagination = false, setVisibleRows, paginationModel = undefined, setPaginationModel = undefined, hideFooterComponent, hideToolbarComponent, tableAutoHeight, actions = ['editInline', 'remove'], customActions, hideColumnsButton, hideFilterButton, hideDensityButton, hideExportButton, hideQuickFilterBar, optionsAC: optionsACExternal, emptyItem, handleDeleteClick, setSnackBar, yupValidationSchema, }) {
|
|
74
74
|
const { serverEndPoint } = (0, DRFReactBySchemaContext_1.useDRFReactBySchema)();
|
|
75
75
|
const apiContext = (0, APIWrapperContext_1.useAPIWrapper)();
|
|
76
76
|
const [preparedColumns, setPreparedColumns] = (0, react_1.useState)(null);
|
|
@@ -84,7 +84,7 @@ const DataGridDesktop = (0, react_1.forwardRef)(({ schema, dataGrid, setDataGrid
|
|
|
84
84
|
if (!onEditModel) {
|
|
85
85
|
onEditModel = apiContext.onEditModel;
|
|
86
86
|
}
|
|
87
|
-
const updateOptionsAC = () => __awaiter(
|
|
87
|
+
const updateOptionsAC = () => __awaiter(this, void 0, void 0, function* () {
|
|
88
88
|
optionsAC.current = {};
|
|
89
89
|
for (const col of columns) {
|
|
90
90
|
if (optionsACExternal && col.field in optionsACExternal) {
|
|
@@ -126,7 +126,10 @@ const DataGridDesktop = (0, react_1.forwardRef)(({ schema, dataGrid, setDataGrid
|
|
|
126
126
|
}
|
|
127
127
|
}
|
|
128
128
|
});
|
|
129
|
-
const
|
|
129
|
+
const ActionElement = ({ Icon, label }) => (
|
|
130
|
+
// @ts-expect-error - Ignore missing event handlers (they don't actually exist)
|
|
131
|
+
react_1.default.createElement(x_data_grid_1.GridActionsCellItem, { icon: Icon, label: label, color: "inherit", showInMenu: false, placeholder: "" }));
|
|
132
|
+
const initColumns = () => __awaiter(this, void 0, void 0, function* () {
|
|
130
133
|
const actionCols = [];
|
|
131
134
|
if (isEditable) {
|
|
132
135
|
const handleSaveClick = (id) => () => {
|
|
@@ -163,18 +166,24 @@ const DataGridDesktop = (0, react_1.forwardRef)(({ schema, dataGrid, setDataGrid
|
|
|
163
166
|
const isInEditMode = ((_a = rowModesModel === null || rowModesModel === void 0 ? void 0 : rowModesModel[id]) === null || _a === void 0 ? void 0 : _a.mode) === x_data_grid_1.GridRowModes.Edit;
|
|
164
167
|
if (isInEditMode) {
|
|
165
168
|
return [
|
|
166
|
-
|
|
167
|
-
react_1.default.createElement(x_data_grid_1.GridActionsCellItem, { key: `
|
|
169
|
+
// @ts-expect-error - Ignore missing event handlers (they don't actually exist)
|
|
170
|
+
react_1.default.createElement(x_data_grid_1.GridActionsCellItem, { key: `save_${id}`, icon: react_1.default.createElement(Check_1.default, null), label: "Salvar", onClick: handleSaveClick(id), color: "success", showInMenu: false, placeholder: "" }),
|
|
171
|
+
// @ts-expect-error - Ignore missing event handlers (they don't actually exist)
|
|
172
|
+
react_1.default.createElement(x_data_grid_1.GridActionsCellItem, { key: `cancel_${id}`, icon: react_1.default.createElement(Undo_1.default, null), label: "Cancelar", onClick: handleCancelClick(id), color: "inherit", showInMenu: false, placeholder: "" }),
|
|
168
173
|
];
|
|
169
174
|
}
|
|
170
175
|
const actionItems = [];
|
|
171
176
|
actions.forEach((action) => {
|
|
172
177
|
switch (action) {
|
|
173
178
|
case 'editInline':
|
|
174
|
-
actionItems.push(
|
|
179
|
+
actionItems.push(
|
|
180
|
+
// @ts-expect-error - Ignore missing event handlers (they don't actually exist)
|
|
181
|
+
react_1.default.createElement(x_data_grid_1.GridActionsCellItem, { key: `editInline_${id}`, icon: actions.includes('edit') ? react_1.default.createElement(Bolt_1.default, null) : react_1.default.createElement(Edit_1.default, null), label: "Edit inline", onClick: handleEditInlineClick(id), color: "inherit", showInMenu: false, placeholder: "" }));
|
|
175
182
|
break;
|
|
176
183
|
case 'remove':
|
|
177
|
-
actionItems.push(
|
|
184
|
+
actionItems.push(
|
|
185
|
+
// @ts-expect-error - Ignore missing event handlers (they don't actually exist)
|
|
186
|
+
react_1.default.createElement(x_data_grid_1.GridActionsCellItem, { key: `remove_${id}`, icon: react_1.default.createElement(Clear_1.default, null), label: "Delete", onClick: handleDeleteClick(id), color: "error", showInMenu: false, placeholder: "" }));
|
|
178
187
|
break;
|
|
179
188
|
case 'edit':
|
|
180
189
|
if (!LinkComponent) {
|
|
@@ -182,7 +191,7 @@ const DataGridDesktop = (0, react_1.forwardRef)(({ schema, dataGrid, setDataGrid
|
|
|
182
191
|
break;
|
|
183
192
|
}
|
|
184
193
|
actionItems.push(react_1.default.createElement(LinkComponent, { key: `edit_${id}`, to: `${indexFieldBasePath}${id}`, state: stateToLink },
|
|
185
|
-
react_1.default.createElement(
|
|
194
|
+
react_1.default.createElement(ActionElement, { Icon: react_1.default.createElement(Edit_1.default, null), label: "Edit" })));
|
|
186
195
|
break;
|
|
187
196
|
case 'view':
|
|
188
197
|
if (!LinkComponent) {
|
|
@@ -194,7 +203,7 @@ const DataGridDesktop = (0, react_1.forwardRef)(({ schema, dataGrid, setDataGrid
|
|
|
194
203
|
break;
|
|
195
204
|
}
|
|
196
205
|
actionItems.push(react_1.default.createElement(LinkComponent, { key: `view_${id}`, to: `${indexFieldViewBasePath}${id}`, state: stateToLink },
|
|
197
|
-
react_1.default.createElement(
|
|
206
|
+
react_1.default.createElement(ActionElement, { Icon: react_1.default.createElement(Visibility_1.default, null), label: "View" })));
|
|
198
207
|
break;
|
|
199
208
|
}
|
|
200
209
|
});
|
|
@@ -202,7 +211,9 @@ const DataGridDesktop = (0, react_1.forwardRef)(({ schema, dataGrid, setDataGrid
|
|
|
202
211
|
// React.ReactElement<any, string | React.JSXElementConstructor<any>>
|
|
203
212
|
if (customActions) {
|
|
204
213
|
customActions.forEach((customAction) => {
|
|
205
|
-
actionItems.push(
|
|
214
|
+
actionItems.push(
|
|
215
|
+
// @ts-expect-error - Ignore missing event handlers (they don't actually exist)
|
|
216
|
+
react_1.default.createElement(x_data_grid_1.GridActionsCellItem, { key: `${customAction.key}_${id}`, icon: customAction.icon, label: customAction.label, onClick: () => customAction.handleClick(dataGrid.data.find((row) => row.id === id)), showInMenu: false, placeholder: "" }));
|
|
206
217
|
});
|
|
207
218
|
}
|
|
208
219
|
return actionItems;
|
|
@@ -210,7 +221,7 @@ const DataGridDesktop = (0, react_1.forwardRef)(({ schema, dataGrid, setDataGrid
|
|
|
210
221
|
});
|
|
211
222
|
}
|
|
212
223
|
const cols = [...actionCols, ...columns];
|
|
213
|
-
const colsPromises = cols.map((col) => __awaiter(
|
|
224
|
+
const colsPromises = cols.map((col) => __awaiter(this, void 0, void 0, function* () {
|
|
214
225
|
if (!schema[col.field]) {
|
|
215
226
|
return col;
|
|
216
227
|
}
|
|
@@ -445,7 +456,7 @@ const DataGridDesktop = (0, react_1.forwardRef)(({ schema, dataGrid, setDataGrid
|
|
|
445
456
|
}
|
|
446
457
|
}
|
|
447
458
|
};
|
|
448
|
-
const bulkUpdateData = (newData) => __awaiter(
|
|
459
|
+
const bulkUpdateData = (newData) => __awaiter(this, void 0, void 0, function* () {
|
|
449
460
|
const promises = [];
|
|
450
461
|
const ids = [];
|
|
451
462
|
newData.map((item) => {
|
|
@@ -482,7 +493,7 @@ const DataGridDesktop = (0, react_1.forwardRef)(({ schema, dataGrid, setDataGrid
|
|
|
482
493
|
};
|
|
483
494
|
});
|
|
484
495
|
});
|
|
485
|
-
const bulkDeleteData = (ids) => __awaiter(
|
|
496
|
+
const bulkDeleteData = (ids) => __awaiter(this, void 0, void 0, function* () {
|
|
486
497
|
const promises = [];
|
|
487
498
|
ids.map((id) => {
|
|
488
499
|
promises.push((0, api_1.deleteData)(model, serverEndPoint, id));
|
|
@@ -507,7 +518,7 @@ const DataGridDesktop = (0, react_1.forwardRef)(({ schema, dataGrid, setDataGrid
|
|
|
507
518
|
};
|
|
508
519
|
});
|
|
509
520
|
});
|
|
510
|
-
const bulkCreateData = (ids) => __awaiter(
|
|
521
|
+
const bulkCreateData = (ids) => __awaiter(this, void 0, void 0, function* () {
|
|
511
522
|
handleAddItems(ids.length);
|
|
512
523
|
setSelectionModel([]);
|
|
513
524
|
setSelectionModelIds([]);
|
|
@@ -522,16 +533,14 @@ const DataGridDesktop = (0, react_1.forwardRef)(({ schema, dataGrid, setDataGrid
|
|
|
522
533
|
initColumns();
|
|
523
534
|
});
|
|
524
535
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
525
|
-
}, [rowModesModel,
|
|
526
|
-
const processRowUpdate = (editedRow) => __awaiter(
|
|
536
|
+
}, [rowModesModel, columns]);
|
|
537
|
+
const processRowUpdate = (editedRow) => __awaiter(this, void 0, void 0, function* () {
|
|
527
538
|
if (!preparedColumns || !yupValidationSchema) {
|
|
528
539
|
return false;
|
|
529
540
|
}
|
|
530
|
-
console.log('processRowUpdate2');
|
|
531
541
|
setDataGridLoading(true);
|
|
532
542
|
const indexCol = preparedColumns.find((col) => col.field === indexField);
|
|
533
543
|
processingRow.current = editedRow.id;
|
|
534
|
-
console.log(`processRowUpdate: editedRow.id: ${editedRow.id}`);
|
|
535
544
|
yield yupValidationSchema.validate(editedRow);
|
|
536
545
|
const onlyAddExisting = indexField &&
|
|
537
546
|
(0, utils_1.isTmpId)(editedRow.id) &&
|
|
@@ -674,8 +683,7 @@ const DataGridDesktop = (0, react_1.forwardRef)(({ schema, dataGrid, setDataGrid
|
|
|
674
683
|
const hasValueFormatter = (indexColumn === null || indexColumn === void 0 ? void 0 : indexColumn.valueFormatter) !== undefined;
|
|
675
684
|
const isIndexFieldEditable = !optionsAC.current || !(indexField in optionsAC.current) || hasValueFormatter;
|
|
676
685
|
return (isRowInEditMode &&
|
|
677
|
-
(isPermanentRow ||
|
|
678
|
-
((0, utils_1.isTmpId)(params.row.id) && (isIndexField || isIndexFieldEditable))));
|
|
686
|
+
(isPermanentRow || ((0, utils_1.isTmpId)(params.row.id) && (isIndexField || isIndexFieldEditable))));
|
|
679
687
|
}, checkboxSelection: checkboxSelection, onSelectionModelChange: (newSelectionModel) => {
|
|
680
688
|
const selectedData = dataGrid.data.filter((item) => newSelectionModel.includes(item.id));
|
|
681
689
|
setSelectionModel(selectedData);
|
|
@@ -755,6 +763,5 @@ const DataGridDesktop = (0, react_1.forwardRef)(({ schema, dataGrid, setDataGrid
|
|
|
755
763
|
}
|
|
756
764
|
}
|
|
757
765
|
: undefined }))));
|
|
758
|
-
}
|
|
759
|
-
|
|
760
|
-
exports.default = DataGridDesktop;
|
|
766
|
+
}
|
|
767
|
+
exports.default = react_1.default.memo(DataGridDesktop, utils_1.shouldMemoUpdate);
|
|
@@ -40,6 +40,7 @@ interface GenericModelListProps {
|
|
|
40
40
|
extraValidators?: Item;
|
|
41
41
|
MobileListRenderItem?: MobileListRenderItemType;
|
|
42
42
|
}
|
|
43
|
-
declare
|
|
44
|
-
|
|
43
|
+
declare function GenericModelList({ model, columnFields, hiddenFields, creatableFields, disabledFields, minWidthFields, indexField, indexFieldBasePath, indexFieldViewBasePath, addExistingModel, onProcessRow, onDataChange, reloadAfterRowUpdate, customColumnOperations, customFieldFormLayouts, customLinkDestination, isEditable, hasBulkSelect, onSelectActions, sumRows, isAutoHeight, forceReload, LinkComponent, hasHeader, paginationMode, defaultFilter, queryParams, hideFooterComponent, hideToolbarComponent, tableAutoHeight, actions, customActions, optionsAC, defaultValues, disableScreenLoading, extraValidators, MobileListRenderItem, }: GenericModelListProps): React.JSX.Element;
|
|
44
|
+
declare const _default: React.MemoExoticComponent<typeof GenericModelList>;
|
|
45
|
+
export default _default;
|
|
45
46
|
//# sourceMappingURL=GenericModelList.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenericModelList.d.ts","sourceRoot":"","sources":["../../src/components/GenericModelList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAOnD,OAAO,EAAa,eAAe,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAMpF,OAAO,EACL,0BAA0B,EAG1B,UAAU,EACV,IAAI,EACJ,eAAe,EACf,SAAS,EACT,eAAe,EACf,YAAY,EAEZ,WAAW,EACX,iBAAiB,EACjB,wBAAwB,EACzB,MAAM,WAAW,CAAC;AAMnB,UAAU,qBAAqB;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,IAAI,CAAC;IACjC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IACnC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,sBAAsB,CAAC,EAAE,CACvB,MAAM,EAAE,0BAA0B,KAC/B,0BAA0B,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACtE,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;IAC3D,qBAAqB,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,KAAK,MAAM,CAAC;IAC5D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,eAAe,EAAE,CAAC;IACpC,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACzC,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACpC,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;IAChC,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,aAAa,CAAC,EAAE,IAAI,CAAC;IACrB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,eAAe,CAAC,EAAE,IAAI,CAAC;IAEvB,oBAAoB,CAAC,EAAE,wBAAwB,CAAC;CACjD;AAED,
|
|
1
|
+
{"version":3,"file":"GenericModelList.d.ts","sourceRoot":"","sources":["../../src/components/GenericModelList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAOnD,OAAO,EAAa,eAAe,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAMpF,OAAO,EACL,0BAA0B,EAG1B,UAAU,EACV,IAAI,EACJ,eAAe,EACf,SAAS,EACT,eAAe,EACf,YAAY,EAEZ,WAAW,EACX,iBAAiB,EACjB,wBAAwB,EACzB,MAAM,WAAW,CAAC;AAMnB,UAAU,qBAAqB;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,IAAI,CAAC;IACjC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IACnC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,sBAAsB,CAAC,EAAE,CACvB,MAAM,EAAE,0BAA0B,KAC/B,0BAA0B,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACtE,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;IAC3D,qBAAqB,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,KAAK,MAAM,CAAC;IAC5D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,eAAe,EAAE,CAAC;IACpC,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACzC,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACpC,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;IAChC,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,aAAa,CAAC,EAAE,IAAI,CAAC;IACrB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,eAAe,CAAC,EAAE,IAAI,CAAC;IAEvB,oBAAoB,CAAC,EAAE,wBAAwB,CAAC;CACjD;AAED,iBAAS,gBAAgB,CAAC,EACxB,KAAK,EACL,YAAY,EACZ,YAAiB,EACjB,eAAe,EACf,cAAc,EACd,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,UAAU,EACV,aAAqB,EACrB,eAAe,EACf,OAAO,EACP,YAAmB,EACnB,WAAmB,EACnB,aAAoB,EACpB,SAAiB,EACjB,cAAyB,EACzB,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,OAAO,EACP,aAAa,EACb,SAAS,EACT,aAAa,EACb,oBAAoB,EACpB,eAAe,EAEf,oBAAoB,GACrB,EAAE,qBAAqB,qBA0NvB;;AAED,wBAA8D"}
|
|
@@ -60,7 +60,7 @@ const utils_1 = require("../utils");
|
|
|
60
60
|
const api_1 = require("../api");
|
|
61
61
|
const DRFReactBySchemaContext_1 = require("../context/DRFReactBySchemaContext");
|
|
62
62
|
const APIWrapperContext_1 = require("../context/APIWrapperContext");
|
|
63
|
-
|
|
63
|
+
function GenericModelList({ model, columnFields, hiddenFields = [], creatableFields, disabledFields, minWidthFields, indexField, indexFieldBasePath, indexFieldViewBasePath, addExistingModel, onProcessRow, onDataChange, reloadAfterRowUpdate, customColumnOperations, customFieldFormLayouts, customLinkDestination, isEditable, hasBulkSelect = false, onSelectActions, sumRows, isAutoHeight = true, forceReload = false, LinkComponent = null, hasHeader = false, paginationMode = 'client', defaultFilter, queryParams, hideFooterComponent, hideToolbarComponent, tableAutoHeight, actions, customActions, optionsAC, defaultValues, disableScreenLoading, extraValidators, MobileListRenderItem, }) {
|
|
64
64
|
const { serverEndPoint, isInBatches, firstBatchLength } = (0, DRFReactBySchemaContext_1.useDRFReactBySchema)();
|
|
65
65
|
const { onEditModel } = (0, APIWrapperContext_1.useAPIWrapper)();
|
|
66
66
|
const [data, setData] = (0, react_1.useState)(false);
|
|
@@ -68,7 +68,7 @@ const GenericModelList = ({ model, columnFields, hiddenFields = [], creatableFie
|
|
|
68
68
|
const [visibleRows, setVisibleRows] = (0, react_1.useState)([]);
|
|
69
69
|
const [hideFooterPagination, setHideFooterPagination] = (0, react_1.useState)(false);
|
|
70
70
|
const [paginationModel, setPaginationModel] = (0, react_1.useState)(paginationMode === 'server' ? { page: 0, pageSize: 100 } : undefined);
|
|
71
|
-
const finalCustomColumnOperations = (column) => __awaiter(
|
|
71
|
+
const finalCustomColumnOperations = (column) => __awaiter(this, void 0, void 0, function* () {
|
|
72
72
|
if (minWidthFields) {
|
|
73
73
|
if (column.field in minWidthFields) {
|
|
74
74
|
column.minWidth = minWidthFields[column.field];
|
|
@@ -79,7 +79,7 @@ const GenericModelList = ({ model, columnFields, hiddenFields = [], creatableFie
|
|
|
79
79
|
}
|
|
80
80
|
return column;
|
|
81
81
|
});
|
|
82
|
-
const loadObjectList = () => __awaiter(
|
|
82
|
+
const loadObjectList = () => __awaiter(this, void 0, void 0, function* () {
|
|
83
83
|
if (!disableScreenLoading) {
|
|
84
84
|
setLoading(true);
|
|
85
85
|
}
|
|
@@ -182,5 +182,5 @@ const GenericModelList = ({ model, columnFields, hiddenFields = [], creatableFie
|
|
|
182
182
|
: 0, extraValidators: extraValidators, MobileListRenderItem: MobileListRenderItem })),
|
|
183
183
|
paginationMode === 'client' ? (react_1.default.createElement(DataTotals_1.default, { data: data.data, sumRows: sumRows, visibleRows: visibleRows })) : (react_1.default.createElement(DataTotalsServer_1.default, { sumRows: sumRows, totals: data.sumRowsTotals })))) : (react_1.default.createElement(Backdrop_1.default, { invisible: true, sx: { color: '#fff', zIndex: (theme) => theme.zIndex.drawer + 1 }, open: loading },
|
|
184
184
|
react_1.default.createElement(CircularProgress_1.default, null)))));
|
|
185
|
-
}
|
|
186
|
-
exports.default = GenericModelList;
|
|
185
|
+
}
|
|
186
|
+
exports.default = react_1.default.memo(GenericModelList, utils_1.shouldMemoUpdate);
|
|
@@ -40,6 +40,7 @@ interface GenericRelatedModelListProps {
|
|
|
40
40
|
extraValidators?: Item;
|
|
41
41
|
MobileListRenderItem?: MobileListRenderItemType;
|
|
42
42
|
}
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
declare function GenericRelatedModelList({ model, id, relatedModel, columnFields, hiddenFields, creatableFields, disabledFields, usuaria, minWidthFields, indexField, indexFieldBasePath, indexFieldViewBasePath, addExistingModel, label, onProcessRow, onDataChange, reloadAfterRowUpdate, customColumnOperations, isEditable, hasBulkSelect, onSelectActions, sumRows, isAutoHeight, isInBatches, noCardWrapper, paginationMode, defaultFilter, queryParams, hideFooterComponent, hideToolbarComponent, tableAutoHeight, actions, optionsAC, defaultValues, LinkComponent, extraValidators, MobileListRenderItem, }: GenericRelatedModelListProps): React.JSX.Element;
|
|
44
|
+
declare const _default: React.MemoExoticComponent<typeof GenericRelatedModelList>;
|
|
45
|
+
export default _default;
|
|
45
46
|
//# sourceMappingURL=GenericRelatedModelList.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenericRelatedModelList.d.ts","sourceRoot":"","sources":["../../src/components/GenericRelatedModelList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAInD,OAAO,EAAE,eAAe,EAAa,MAAM,kBAAkB,CAAC;AAG9D,OAAO,EACL,UAAU,
|
|
1
|
+
{"version":3,"file":"GenericRelatedModelList.d.ts","sourceRoot":"","sources":["../../src/components/GenericRelatedModelList.tsx"],"names":[],"mappings":"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"}
|
|
@@ -45,7 +45,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
45
45
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
46
46
|
};
|
|
47
47
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
|
-
exports.default = GenericRelatedModelList;
|
|
49
48
|
const react_1 = __importStar(require("react"));
|
|
50
49
|
const Card_1 = __importDefault(require("@mui/material/Card"));
|
|
51
50
|
const CardHeader_1 = __importDefault(require("@mui/material/CardHeader"));
|
|
@@ -165,3 +164,4 @@ function GenericRelatedModelList({ model, id, relatedModel, columnFields, hidden
|
|
|
165
164
|
react_1.default.createElement(CardContent_1.default, null,
|
|
166
165
|
react_1.default.createElement(GenericRelatedModelListTable_1.default, { data: data, relatedModel: relatedModel, model: model, loading: loading, id: id, indexField: indexField || '', indexFieldBasePath: indexFieldBasePath, indexFieldViewBasePath: indexFieldViewBasePath, addExistingModel: addExistingModel, isEditable: isEditable, hasBulkSelect: hasBulkSelect, onSelectActions: onSelectActions, onEditModel: onEditModel, onDeleteRelatedModel: onDeleteRelatedModel, finalCustomColumnOperations: finalCustomColumnOperations, setVisibleRows: setVisibleRows, visibleRows: visibleRows, isAutoHeight: isAutoHeight, tableAutoHeight: tableAutoHeight, hideFooterPagination: hideFooterPagination, hideFooterComponent: hideFooterComponent, hideToolbarComponent: hideToolbarComponent, onProcessRow: onProcessRow, onDataChange: onDataChangeLocal, sumRows: sumRows, paginationMode: paginationMode, paginationModel: paginationModel, setPaginationModel: setPaginationModel, actions: actions, optionsAC: optionsAC, defaultValues: defaultValues, LinkComponent: LinkComponent, extraValidators: extraValidators, MobileListRenderItem: MobileListRenderItem }))))))));
|
|
167
166
|
}
|
|
167
|
+
exports.default = react_1.default.memo(GenericRelatedModelList, utils_1.shouldMemoUpdate);
|
|
@@ -39,6 +39,7 @@ interface GenericRelatedModelListTableProps {
|
|
|
39
39
|
extraValidators?: Item;
|
|
40
40
|
MobileListRenderItem?: MobileListRenderItemType;
|
|
41
41
|
}
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
declare function GenericRelatedModelListTable({ data, relatedModel, model, loading, id, indexField, indexFieldBasePath, indexFieldViewBasePath, addExistingModel, isEditable, onEditModel, finalCustomColumnOperations, setVisibleRows, visibleRows, isAutoHeight, hideFooterPagination, hideFooterComponent, hideToolbarComponent, onProcessRow, onDataChange, sumRows, paginationMode, paginationModel, setPaginationModel, hasBulkSelect, onSelectActions, tableAutoHeight, actions, customActions, optionsAC, defaultValues, LinkComponent, extraValidators, MobileListRenderItem, }: GenericRelatedModelListTableProps): React.JSX.Element;
|
|
43
|
+
declare const _default: React.MemoExoticComponent<typeof GenericRelatedModelListTable>;
|
|
44
|
+
export default _default;
|
|
44
45
|
//# sourceMappingURL=GenericRelatedModelListTable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenericRelatedModelListTable.d.ts","sourceRoot":"","sources":["../../src/components/GenericRelatedModelListTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAK7C,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACzF,OAAO,EACL,UAAU,EACV,YAAY,EACZ,qBAAqB,EACrB,0BAA0B,EAC1B,EAAE,EACF,IAAI,EACJ,iBAAiB,EACjB,wBAAwB,EACxB,eAAe,EACf,SAAS,EACT,eAAe,EACf,WAAW,EACZ,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"GenericRelatedModelListTable.d.ts","sourceRoot":"","sources":["../../src/components/GenericRelatedModelListTable.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.default = GenericRelatedModelListTable;
|
|
7
6
|
const react_1 = __importDefault(require("react"));
|
|
8
7
|
const Box_1 = __importDefault(require("@mui/material/Box"));
|
|
9
8
|
const Backdrop_1 = __importDefault(require("@mui/material/Backdrop"));
|
|
@@ -12,6 +11,7 @@ const DataGridBySchemaEditable_1 = __importDefault(require("./DataGridBySchemaEd
|
|
|
12
11
|
const DataTotals_1 = __importDefault(require("./DataTotals"));
|
|
13
12
|
const DataTotalsServer_1 = __importDefault(require("./DataTotalsServer"));
|
|
14
13
|
const styles_1 = require("../styles");
|
|
14
|
+
const utils_1 = require("../utils");
|
|
15
15
|
function GenericRelatedModelListTable({ data, relatedModel, model, loading, id, indexField, indexFieldBasePath, indexFieldViewBasePath, addExistingModel, isEditable, onEditModel, finalCustomColumnOperations, setVisibleRows, visibleRows, isAutoHeight, hideFooterPagination, hideFooterComponent, hideToolbarComponent, onProcessRow, onDataChange, sumRows, paginationMode = 'client', paginationModel, setPaginationModel, hasBulkSelect, onSelectActions, tableAutoHeight, actions, customActions, optionsAC, defaultValues, LinkComponent, extraValidators, MobileListRenderItem, }) {
|
|
16
16
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
17
17
|
data.columns ? (react_1.default.createElement(Box_1.default, { sx: tableAutoHeight ? {} : styles_1.Layout.dataGridFixedHeight },
|
|
@@ -23,3 +23,4 @@ function GenericRelatedModelListTable({ data, relatedModel, model, loading, id,
|
|
|
23
23
|
react_1.default.createElement(CircularProgress_1.default, null))),
|
|
24
24
|
paginationMode === 'client' ? (react_1.default.createElement(DataTotals_1.default, { data: data.data, sumRows: sumRows, visibleRows: visibleRows })) : (react_1.default.createElement(DataTotalsServer_1.default, { sumRows: sumRows, totals: data.sumRowsTotals }))));
|
|
25
25
|
}
|
|
26
|
+
exports.default = react_1.default.memo(GenericRelatedModelListTable, utils_1.shouldMemoUpdate);
|
package/dist/utils.d.ts
CHANGED
|
@@ -35,4 +35,5 @@ export declare function initViewColumns({ schema, columns, customColumnOperation
|
|
|
35
35
|
columns: GridEnrichedBySchemaColDef[];
|
|
36
36
|
customColumnOperations?: (p: GridEnrichedBySchemaColDef) => GridEnrichedBySchemaColDef | Promise<GridEnrichedBySchemaColDef>;
|
|
37
37
|
}): Promise<any>;
|
|
38
|
+
export declare function shouldMemoUpdate<T extends object>(prevProps: Readonly<T>, nextProps: Readonly<T>): boolean;
|
|
38
39
|
//# sourceMappingURL=utils.d.ts.map
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,OAAO,EACL,MAAM,EACN,WAAW,EAEX,YAAY,EACZ,0BAA0B,EAC1B,IAAI,EACJ,UAAU,EACX,MAAM,UAAU,CAAC;AAElB,eAAO,MAAM,WAAW,EAAE,YAyBzB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,OAAO,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,8BASjF,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,kBAAkB;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,OAAO,EACL,MAAM,EACN,WAAW,EAEX,YAAY,EACZ,0BAA0B,EAC1B,IAAI,EACJ,UAAU,EACX,MAAM,UAAU,CAAC;AAElB,eAAO,MAAM,WAAW,EAAE,YAyBzB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,OAAO,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,8BASjF,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,kBAAkB;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,SA8ClF,CAAC;AAsDF,eAAO,MAAM,+BAA+B,GAAI,sDAM7C;IACD,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,CAAC,EAAE,IAAI,CAAC;CACxB,QAiEA,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,4CAKxB;IACD,MAAM,EAAE,IAAI,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;;;CAkBA,CAAC;AAEF,eAAO,MAAM,QAAQ,cAEpB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,IAAI,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,YAK7D,CAAC;AAEF,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,YAQtE;AAED,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,WAqB5C,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,mDA0B7E;AAED,eAAO,MAAM,eAAe,GAAI,KAAK,MAAM,EAAE,sBAAoB,WAWhE,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,MAAM,MAAM,GAAG,IAAI,WAa1C,CAAC;AAEF,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,eAAe,GAAG,SAAS,EAC1C,MAAM,EAAE,eAAe,GAAG,SAAS,OAyBpC;AAED,wBAAsB,eAAe,CAAC,EACpC,MAAM,EACN,OAAO,EACP,sBAAsB,GACvB,EAAE;IACD,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,0BAA0B,EAAE,CAAC;IACtC,sBAAsB,CAAC,EAAE,CACvB,CAAC,EAAE,0BAA0B,KAC1B,0BAA0B,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;CACvE,gBAqFA;AA0CD,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAC/C,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,EACtB,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,GACrB,OAAO,CAwCT"}
|
package/dist/utils.js
CHANGED
|
@@ -50,6 +50,7 @@ exports.reducer = reducer;
|
|
|
50
50
|
exports.buildDateFormatBySchema = buildDateFormatBySchema;
|
|
51
51
|
exports.mergeFilterItems = mergeFilterItems;
|
|
52
52
|
exports.initViewColumns = initViewColumns;
|
|
53
|
+
exports.shouldMemoUpdate = shouldMemoUpdate;
|
|
53
54
|
const dayjs_1 = __importDefault(require("dayjs"));
|
|
54
55
|
const Yup = __importStar(require("yup"));
|
|
55
56
|
const string_mask_1 = __importDefault(require("string-mask"));
|
|
@@ -131,7 +132,6 @@ const populateValues = ({ data, schema }) => {
|
|
|
131
132
|
}
|
|
132
133
|
values[key] = data[key];
|
|
133
134
|
}
|
|
134
|
-
// console.log(values);
|
|
135
135
|
return values;
|
|
136
136
|
};
|
|
137
137
|
exports.populateValues = populateValues;
|
|
@@ -194,7 +194,6 @@ const buildGenericYupValidationSchema = ({ data, schema, many = false, skipField
|
|
|
194
194
|
if (!data || !(key in data) || key === 'id' || skipFields.includes(key)) {
|
|
195
195
|
continue;
|
|
196
196
|
}
|
|
197
|
-
// console.log({ key, field, data: data[key] });
|
|
198
197
|
// OneToMany or ManyToMany:
|
|
199
198
|
if (field.type === 'field' && field.child) {
|
|
200
199
|
yupValidator[key] = (0, exports.buildGenericYupValidationSchema)({
|
|
@@ -240,7 +239,6 @@ const buildGenericYupValidationSchema = ({ data, schema, many = false, skipField
|
|
|
240
239
|
}
|
|
241
240
|
}
|
|
242
241
|
}
|
|
243
|
-
// console.log({ yupValidator });
|
|
244
242
|
return many ? Yup.array().of(Yup.object().shape(yupValidator)) : Yup.object().shape(yupValidator);
|
|
245
243
|
};
|
|
246
244
|
exports.buildGenericYupValidationSchema = buildGenericYupValidationSchema;
|
|
@@ -463,3 +461,73 @@ function initViewColumns(_a) {
|
|
|
463
461
|
return finalCols;
|
|
464
462
|
});
|
|
465
463
|
}
|
|
464
|
+
function deepEqual(a, b) {
|
|
465
|
+
if (!a && !b) {
|
|
466
|
+
return true;
|
|
467
|
+
}
|
|
468
|
+
if (a === b) {
|
|
469
|
+
return true;
|
|
470
|
+
}
|
|
471
|
+
if (typeof a === 'function' && typeof b === 'function') {
|
|
472
|
+
if (a.toString() !== b.toString()) {
|
|
473
|
+
return false;
|
|
474
|
+
}
|
|
475
|
+
return true;
|
|
476
|
+
}
|
|
477
|
+
if (a === null || b === null || typeof a !== 'object' || typeof b !== 'object') {
|
|
478
|
+
return false;
|
|
479
|
+
}
|
|
480
|
+
// Handle arrays
|
|
481
|
+
if (Array.isArray(a) && Array.isArray(b)) {
|
|
482
|
+
if (a.length !== b.length) {
|
|
483
|
+
return false;
|
|
484
|
+
}
|
|
485
|
+
return a.every((val, i) => deepEqual(val, b[i]));
|
|
486
|
+
}
|
|
487
|
+
// Handle objects
|
|
488
|
+
const keysA = Object.keys(a);
|
|
489
|
+
const keysB = Object.keys(b);
|
|
490
|
+
if (keysA.length !== keysB.length) {
|
|
491
|
+
return false;
|
|
492
|
+
}
|
|
493
|
+
return keysA.every((key) => {
|
|
494
|
+
const valA = a[key];
|
|
495
|
+
const valB = b[key];
|
|
496
|
+
return deepEqual(valA, valB);
|
|
497
|
+
});
|
|
498
|
+
}
|
|
499
|
+
function shouldMemoUpdate(prevProps, nextProps) {
|
|
500
|
+
const propKeys = new Set([...Object.keys(prevProps), ...Object.keys(nextProps)]);
|
|
501
|
+
for (const key of propKeys) {
|
|
502
|
+
if (typeof key === 'string' && key.startsWith('_'))
|
|
503
|
+
continue;
|
|
504
|
+
const prevVal = prevProps[key];
|
|
505
|
+
const nextVal = nextProps[key];
|
|
506
|
+
// Fast path for identical references
|
|
507
|
+
if (prevVal === nextVal)
|
|
508
|
+
continue;
|
|
509
|
+
// Handle null/undefined mismatches
|
|
510
|
+
if (prevVal == null || nextVal == null) {
|
|
511
|
+
return false;
|
|
512
|
+
}
|
|
513
|
+
// Special handling for functions
|
|
514
|
+
if (typeof prevVal === 'function' && typeof nextVal === 'function') {
|
|
515
|
+
if (prevVal.toString() !== nextVal.toString()) {
|
|
516
|
+
return false;
|
|
517
|
+
}
|
|
518
|
+
continue;
|
|
519
|
+
}
|
|
520
|
+
// Deep compare objects
|
|
521
|
+
if (typeof prevVal === 'object' && typeof nextVal === 'object') {
|
|
522
|
+
if (!deepEqual(prevVal, nextVal)) {
|
|
523
|
+
return false;
|
|
524
|
+
}
|
|
525
|
+
continue;
|
|
526
|
+
}
|
|
527
|
+
// Final comparison for primitives
|
|
528
|
+
if (prevVal !== nextVal) {
|
|
529
|
+
return false;
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
return true;
|
|
533
|
+
}
|
package/package.json
CHANGED