drf-react-by-schema 0.16.3 → 0.16.5
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/SelectEditInputCell.d.ts +3 -2
- package/dist/components/DataGridBySchemaEditable/SelectEditInputCell.js +12 -1
- package/dist/components/DataGridBySchemaEditable.js +10 -10
- package/dist/components/GenericModelList.d.ts +1 -1
- package/dist/components/GenericRelatedModelList.d.ts +2 -1
- package/dist/components/GenericRelatedModelList.js +5 -5
- package/package.json +1 -1
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { SxProps } from '@mui/material';
|
|
3
3
|
import { FormFieldLayout, GenericValue, OptionsAC } from '../../utils';
|
|
4
4
|
import { GridEnrichedBySchemaColDef } from '../../utils';
|
|
5
|
-
import { OnEditModelType } from '../../context/APIWrapperContext';
|
|
5
|
+
import { DialogType, OnEditModelType } from '../../context/APIWrapperContext';
|
|
6
6
|
interface SelectEditInputCellProps {
|
|
7
7
|
field: string;
|
|
8
8
|
id: number | string;
|
|
@@ -15,6 +15,7 @@ interface SelectEditInputCellProps {
|
|
|
15
15
|
onEditModel?: (x: OnEditModelType) => void;
|
|
16
16
|
fieldsLayout?: FormFieldLayout[];
|
|
17
17
|
sx?: SxProps;
|
|
18
|
+
setDialog: (x: Partial<DialogType>) => void;
|
|
18
19
|
}
|
|
19
|
-
export declare function SelectEditInputCell({ field, id, value, column, type, optionsAC, isIndexField, multiple, onEditModel, fieldsLayout, sx, }: SelectEditInputCellProps): JSX.Element;
|
|
20
|
+
export declare function SelectEditInputCell({ field, id, value, column, type, optionsAC, isIndexField, multiple, onEditModel, fieldsLayout, sx, setDialog, }: SelectEditInputCellProps): JSX.Element;
|
|
20
21
|
export {};
|
|
@@ -43,8 +43,9 @@ const IconButton_1 = __importDefault(require("@mui/material/IconButton"));
|
|
|
43
43
|
const Edit_1 = __importDefault(require("@mui/icons-material/Edit"));
|
|
44
44
|
const Autocomplete_1 = __importStar(require("@mui/material/Autocomplete"));
|
|
45
45
|
const utils_1 = require("../../utils");
|
|
46
|
+
const DialogActions_1 = __importDefault(require("../DialogActions"));
|
|
46
47
|
const filter = (0, Autocomplete_1.createFilterOptions)();
|
|
47
|
-
function SelectEditInputCell({ field, id, value, column, type, optionsAC, isIndexField, multiple = false, onEditModel, fieldsLayout, sx = {}, }) {
|
|
48
|
+
function SelectEditInputCell({ field, id, value, column, type, optionsAC, isIndexField, multiple = false, onEditModel, fieldsLayout, sx = {}, setDialog, }) {
|
|
48
49
|
// TODO: allow edit option label, as in formautocomplete!
|
|
49
50
|
const apiRef = (0, x_data_grid_1.useGridApiContext)();
|
|
50
51
|
const handleChange = (newValue) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -119,6 +120,16 @@ function SelectEditInputCell({ field, id, value, column, type, optionsAC, isInde
|
|
|
119
120
|
handleChange(newValue);
|
|
120
121
|
}, fullWidth: true, renderInput: (params) => (react_1.default.createElement(react_1.default.Fragment, null, column.creatable ? (react_1.default.createElement(TextField_1.default, Object.assign({}, params, { margin: "normal", InputProps: Object.assign(Object.assign({}, params.InputProps), { endAdornment: (react_1.default.createElement(react_1.default.Fragment, null,
|
|
121
122
|
!multiple && onEditModel && value && (react_1.default.createElement(IconButton_1.default, { size: "small", onClick: () => {
|
|
123
|
+
if ((0, utils_1.isTmpId)(value.id)) {
|
|
124
|
+
setDialog({
|
|
125
|
+
open: true,
|
|
126
|
+
loading: false,
|
|
127
|
+
title: 'Linha sendo criada',
|
|
128
|
+
Body: 'Esta linha está sendo criado agora por você. Para editar suas propriedades, salve antes, e depois você poderá editar!',
|
|
129
|
+
Actions: (react_1.default.createElement(DialogActions_1.default, { setDialog: setDialog, btnCancel: "Entendi" })),
|
|
130
|
+
});
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
122
133
|
onEditModel({
|
|
123
134
|
model: field,
|
|
124
135
|
id: value[valueKey],
|
|
@@ -133,7 +133,7 @@ const DataGridBySchemaEditable = (0, react_1.forwardRef)(({ schema, data, rowCou
|
|
|
133
133
|
}
|
|
134
134
|
});
|
|
135
135
|
const initColumns = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
136
|
-
|
|
136
|
+
const actionCols = [];
|
|
137
137
|
if (isEditable) {
|
|
138
138
|
const handleSaveClick = (id) => () => {
|
|
139
139
|
if (id) {
|
|
@@ -157,7 +157,7 @@ const DataGridBySchemaEditable = (0, react_1.forwardRef)(({ schema, data, rowCou
|
|
|
157
157
|
setRowModesModel(Object.assign(Object.assign({}, rowModesModel), { [id]: { mode: x_data_grid_1.GridRowModes.Edit } }));
|
|
158
158
|
}
|
|
159
159
|
};
|
|
160
|
-
|
|
160
|
+
actionCols.push({
|
|
161
161
|
field: 'actions',
|
|
162
162
|
headerName: '',
|
|
163
163
|
type: 'actions',
|
|
@@ -209,7 +209,7 @@ const DataGridBySchemaEditable = (0, react_1.forwardRef)(({ schema, data, rowCou
|
|
|
209
209
|
},
|
|
210
210
|
});
|
|
211
211
|
}
|
|
212
|
-
cols = [...
|
|
212
|
+
const cols = [...actionCols, ...columns];
|
|
213
213
|
const colsPromises = cols.map((col) => __awaiter(void 0, void 0, void 0, function* () {
|
|
214
214
|
if (!schema[col.field]) {
|
|
215
215
|
return col;
|
|
@@ -264,7 +264,7 @@ const DataGridBySchemaEditable = (0, react_1.forwardRef)(({ schema, data, rowCou
|
|
|
264
264
|
column.renderEditCell = (params) => (react_1.default.createElement(SelectEditInputCell_1.SelectEditInputCell, Object.assign({}, params, { column: column, type: schema[col.field].type, optionsAC: optionsAC.current, isIndexField: isIndexField, onEditModel: onEditModel, fieldsLayout: customFieldFormLayouts &&
|
|
265
265
|
col.field in customFieldFormLayouts
|
|
266
266
|
? customFieldFormLayouts[col.field]
|
|
267
|
-
: undefined })));
|
|
267
|
+
: undefined, setDialog: apiContext.setDialog })));
|
|
268
268
|
break;
|
|
269
269
|
}
|
|
270
270
|
column.valueGetter = (params) => {
|
|
@@ -281,7 +281,7 @@ const DataGridBySchemaEditable = (0, react_1.forwardRef)(({ schema, data, rowCou
|
|
|
281
281
|
: params.value.map((val) => val.label).join(', ');
|
|
282
282
|
};
|
|
283
283
|
column.filterable = false;
|
|
284
|
-
column.renderEditCell = (params) => (react_1.default.createElement(SelectEditInputCell_1.SelectEditInputCell, Object.assign({}, params, { column: column, type: schema[col.field].type, optionsAC: optionsAC.current, isIndexField: isIndexField, multiple: schema[col.field].many || false })));
|
|
284
|
+
column.renderEditCell = (params) => (react_1.default.createElement(SelectEditInputCell_1.SelectEditInputCell, Object.assign({}, params, { column: column, type: schema[col.field].type, optionsAC: optionsAC.current, isIndexField: isIndexField, multiple: schema[col.field].many || false, setDialog: apiContext.setDialog })));
|
|
285
285
|
break;
|
|
286
286
|
}
|
|
287
287
|
column.valueGetter = (params) => {
|
|
@@ -300,7 +300,7 @@ const DataGridBySchemaEditable = (0, react_1.forwardRef)(({ schema, data, rowCou
|
|
|
300
300
|
column.sortComparator = (v1, v2, param1, param2) => {
|
|
301
301
|
return (0, x_data_grid_1.gridStringOrNumberComparator)(v1.display_name, v2.display_name, param1, param2);
|
|
302
302
|
};
|
|
303
|
-
column.renderEditCell = (params) => (react_1.default.createElement(SelectEditInputCell_1.SelectEditInputCell, Object.assign({}, params, { column: column, type: schema[col.field].type, optionsAC: optionsAC.current, isIndexField: isIndexField })));
|
|
303
|
+
column.renderEditCell = (params) => (react_1.default.createElement(SelectEditInputCell_1.SelectEditInputCell, Object.assign({}, params, { column: column, type: schema[col.field].type, optionsAC: optionsAC.current, isIndexField: isIndexField, setDialog: apiContext.setDialog })));
|
|
304
304
|
break;
|
|
305
305
|
}
|
|
306
306
|
column.valueGetter = (params) => {
|
|
@@ -382,7 +382,7 @@ const DataGridBySchemaEditable = (0, react_1.forwardRef)(({ schema, data, rowCou
|
|
|
382
382
|
if (!(0, utils_1.isTmpId)(params.id)) {
|
|
383
383
|
return react_1.default.createElement(x_data_grid_1.GridEditInputCell, Object.assign({}, params));
|
|
384
384
|
}
|
|
385
|
-
return (react_1.default.createElement(SelectEditInputCell_1.SelectEditInputCell, Object.assign({}, params, { column: column, type: schema[col.field].type, optionsAC: optionsAC.current, isIndexField: true })));
|
|
385
|
+
return (react_1.default.createElement(SelectEditInputCell_1.SelectEditInputCell, Object.assign({}, params, { column: column, type: schema[col.field].type, optionsAC: optionsAC.current, isIndexField: true, setDialog: apiContext.setDialog })));
|
|
386
386
|
};
|
|
387
387
|
}
|
|
388
388
|
}
|
|
@@ -407,8 +407,8 @@ const DataGridBySchemaEditable = (0, react_1.forwardRef)(({ schema, data, rowCou
|
|
|
407
407
|
// Finally!
|
|
408
408
|
return column;
|
|
409
409
|
}));
|
|
410
|
-
|
|
411
|
-
setPreparedColumns(
|
|
410
|
+
const finalCols = yield Promise.all(colsPromises);
|
|
411
|
+
setPreparedColumns(finalCols);
|
|
412
412
|
});
|
|
413
413
|
const handleAddItems = (numberOfRows = 1) => {
|
|
414
414
|
const newRows = [];
|
|
@@ -577,7 +577,7 @@ const DataGridBySchemaEditable = (0, react_1.forwardRef)(({ schema, data, rowCou
|
|
|
577
577
|
updateOptionsAC().then(() => {
|
|
578
578
|
initColumns();
|
|
579
579
|
});
|
|
580
|
-
}, [rowModesModel]);
|
|
580
|
+
}, [rowModesModel, columns]);
|
|
581
581
|
const processRowUpdate = (editedRow) => __awaiter(void 0, void 0, void 0, function* () {
|
|
582
582
|
if (!preparedColumns || !yupValidationSchema.current) {
|
|
583
583
|
return false;
|
|
@@ -23,7 +23,7 @@ interface GenericModelListProps {
|
|
|
23
23
|
onSelectActions?: OnSelectActions[];
|
|
24
24
|
sumRows?: SumRowsType;
|
|
25
25
|
isAutoHeight?: boolean;
|
|
26
|
-
forceReload
|
|
26
|
+
forceReload?: boolean;
|
|
27
27
|
LinkComponent?: any | null;
|
|
28
28
|
hasHeader: boolean;
|
|
29
29
|
paginationMode: 'server' | 'client';
|
|
@@ -35,6 +35,7 @@ interface GenericRelatedModelListProps {
|
|
|
35
35
|
tableAutoHeight?: boolean;
|
|
36
36
|
actions?: Partial<ActionType>[];
|
|
37
37
|
optionsAC?: OptionsAC;
|
|
38
|
+
LinkComponent?: any | null;
|
|
38
39
|
}
|
|
39
|
-
export default function GenericRelatedModelList({ model, id, relatedModel, columnFields, hiddenFields, creatableFields, disabledFields, usuaria, minWidthFields, indexField, indexFieldBasePath, indexFieldViewBasePath, addExistingModel, label, onProcessRow, reloadAfterRowUpdate, customColumnOperations, isEditable, hasBulkSelect, onSelectActions, sumRows, isAutoHeight, isInBatches, noCardWrapper, paginationMode, defaultFilter, queryParams, hideFooterComponent, hideToolbarComponent, tableAutoHeight, actions, optionsAC, }: GenericRelatedModelListProps): React.JSX.Element;
|
|
40
|
+
export default function GenericRelatedModelList({ model, id, relatedModel, columnFields, hiddenFields, creatableFields, disabledFields, usuaria, minWidthFields, indexField, indexFieldBasePath, indexFieldViewBasePath, addExistingModel, label, onProcessRow, reloadAfterRowUpdate, customColumnOperations, isEditable, hasBulkSelect, onSelectActions, sumRows, isAutoHeight, isInBatches, noCardWrapper, paginationMode, defaultFilter, queryParams, hideFooterComponent, hideToolbarComponent, tableAutoHeight, actions, optionsAC, LinkComponent, }: GenericRelatedModelListProps): React.JSX.Element;
|
|
40
41
|
export {};
|
|
@@ -49,16 +49,16 @@ const APIWrapperContext_1 = require("../context/APIWrapperContext");
|
|
|
49
49
|
const utils_1 = require("../utils");
|
|
50
50
|
const api_1 = require("../api");
|
|
51
51
|
const styles_1 = require("../styles");
|
|
52
|
-
const ContentTable = ({ data, relatedModel, model, loading, id, indexField, indexFieldBasePath, indexFieldViewBasePath, addExistingModel, isEditable, onEditModel, finalCustomColumnOperations, setVisibleRows, isAutoHeight, hideFooterPagination, hideFooterComponent, hideToolbarComponent, onProcessRow, onDataChange, sumRows, visibleRows, paginationMode = 'client', paginationModel, setPaginationModel, hasBulkSelect, onSelectActions, tableAutoHeight, actions, optionsAC, }) => (react_1.default.createElement(react_1.default.Fragment, null,
|
|
52
|
+
const ContentTable = ({ data, relatedModel, model, loading, id, indexField, indexFieldBasePath, indexFieldViewBasePath, addExistingModel, isEditable, onEditModel, finalCustomColumnOperations, setVisibleRows, isAutoHeight, hideFooterPagination, hideFooterComponent, hideToolbarComponent, onProcessRow, onDataChange, sumRows, visibleRows, paginationMode = 'client', paginationModel, setPaginationModel, hasBulkSelect, onSelectActions, tableAutoHeight, actions, optionsAC, LinkComponent, }) => (react_1.default.createElement(react_1.default.Fragment, null,
|
|
53
53
|
data.columns ? (react_1.default.createElement(Box_1.default, { sx: tableAutoHeight ? {} : styles_1.Layout.dataGridFixedHeight },
|
|
54
54
|
react_1.default.createElement(DataGridBySchemaEditable_1.default, { data: data.data, columns: data.columns, schema: data.schema, model: relatedModel, modelParent: model, modelParentId: id, loading: loading, indexField: indexField, indexFieldBasePath: indexFieldBasePath, indexFieldViewBasePath: indexFieldViewBasePath, addExistingModel: addExistingModel, isEditable: isEditable, hasBulkSelect: hasBulkSelect, onSelectActions: onSelectActions, onEditModel: onEditModel, isAutoHeight: isAutoHeight, tableAutoHeight: tableAutoHeight, customColumnOperations: finalCustomColumnOperations, setVisibleRows: setVisibleRows, hideFooterPagination: hideFooterPagination, hideFooterComponent: hideFooterComponent, hideToolbarComponent: hideToolbarComponent, actions: actions, optionsAC: optionsAC, onProcessRow: onProcessRow, onDataChange: onDataChange, paginationModel: paginationMode === 'server' ? paginationModel : undefined, setPaginationModel: paginationMode === 'server' ? setPaginationModel : undefined, rowCount: paginationMode === 'client'
|
|
55
55
|
? undefined
|
|
56
56
|
: typeof data.rowCount !== undefined
|
|
57
57
|
? data.rowCount
|
|
58
|
-
: 0 }))) : (react_1.default.createElement(Backdrop_1.default, { invisible: true, sx: { color: '#fff', zIndex: (theme) => theme.zIndex.drawer + 1 }, open: loading || false },
|
|
58
|
+
: 0, LinkComponent: LinkComponent }))) : (react_1.default.createElement(Backdrop_1.default, { invisible: true, sx: { color: '#fff', zIndex: (theme) => theme.zIndex.drawer + 1 }, open: loading || false },
|
|
59
59
|
react_1.default.createElement(CircularProgress_1.default, null))),
|
|
60
60
|
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 }))));
|
|
61
|
-
function GenericRelatedModelList({ model, id, relatedModel, columnFields, hiddenFields, creatableFields, disabledFields, usuaria = null, minWidthFields, indexField, indexFieldBasePath, indexFieldViewBasePath, addExistingModel, label, onProcessRow, reloadAfterRowUpdate, customColumnOperations, isEditable = true, hasBulkSelect = false, onSelectActions, sumRows, isAutoHeight = false, isInBatches = true, noCardWrapper = false, paginationMode = 'client', defaultFilter, queryParams, hideFooterComponent, hideToolbarComponent, tableAutoHeight, actions, optionsAC, }) {
|
|
61
|
+
function GenericRelatedModelList({ model, id, relatedModel, columnFields, hiddenFields, creatableFields, disabledFields, usuaria = null, minWidthFields, indexField, indexFieldBasePath, indexFieldViewBasePath, addExistingModel, label, onProcessRow, reloadAfterRowUpdate, customColumnOperations, isEditable = true, hasBulkSelect = false, onSelectActions, sumRows, isAutoHeight = false, isInBatches = true, noCardWrapper = false, paginationMode = 'client', defaultFilter, queryParams, hideFooterComponent, hideToolbarComponent, tableAutoHeight, actions, optionsAC, LinkComponent, }) {
|
|
62
62
|
const [data, setData] = (0, react_1.useState)(false);
|
|
63
63
|
const [visibleRows, setVisibleRows] = (0, react_1.useState)([]);
|
|
64
64
|
const [loading, setLoading] = (0, react_1.useState)(false);
|
|
@@ -158,9 +158,9 @@ function GenericRelatedModelList({ model, id, relatedModel, columnFields, hidden
|
|
|
158
158
|
loadObjectList();
|
|
159
159
|
}
|
|
160
160
|
}, [paginationModel]);
|
|
161
|
-
return (react_1.default.createElement(react_1.default.Fragment, null, typeof data !== 'boolean' && data.columns && (react_1.default.createElement(react_1.default.Fragment, null, noCardWrapper ? (react_1.default.createElement(ContentTable, { 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, isAutoHeight: isAutoHeight, tableAutoHeight: tableAutoHeight, hideFooterPagination: hideFooterPagination, hideFooterComponent: hideFooterComponent, hideToolbarComponent: hideToolbarComponent, onProcessRow: onProcessRow, onDataChange: onDataChange, sumRows: sumRows, visibleRows: visibleRows, paginationMode: paginationMode, paginationModel: paginationModel, setPaginationModel: setPaginationModel, actions: actions, optionsAC: optionsAC })) : (react_1.default.createElement(Card_1.default, { sx: styles_1.Layout.formCard },
|
|
161
|
+
return (react_1.default.createElement(react_1.default.Fragment, null, typeof data !== 'boolean' && data.columns && (react_1.default.createElement(react_1.default.Fragment, null, noCardWrapper ? (react_1.default.createElement(ContentTable, { 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, isAutoHeight: isAutoHeight, tableAutoHeight: tableAutoHeight, hideFooterPagination: hideFooterPagination, hideFooterComponent: hideFooterComponent, hideToolbarComponent: hideToolbarComponent, onProcessRow: onProcessRow, onDataChange: onDataChange, sumRows: sumRows, visibleRows: visibleRows, paginationMode: paginationMode, paginationModel: paginationModel, setPaginationModel: setPaginationModel, actions: actions, optionsAC: optionsAC, LinkComponent: LinkComponent })) : (react_1.default.createElement(Card_1.default, { sx: styles_1.Layout.formCard },
|
|
162
162
|
react_1.default.createElement(CardHeader_1.default, { title: label }),
|
|
163
163
|
react_1.default.createElement(CardContent_1.default, null,
|
|
164
|
-
react_1.default.createElement(ContentTable, { 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, isAutoHeight: isAutoHeight, tableAutoHeight: tableAutoHeight, hideFooterPagination: hideFooterPagination, hideFooterComponent: hideFooterComponent, hideToolbarComponent: hideToolbarComponent, onProcessRow: onProcessRow, onDataChange: onDataChange, sumRows: sumRows, visibleRows: visibleRows, paginationMode: paginationMode, paginationModel: paginationModel, setPaginationModel: setPaginationModel, actions: actions, optionsAC: optionsAC }))))))));
|
|
164
|
+
react_1.default.createElement(ContentTable, { 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, isAutoHeight: isAutoHeight, tableAutoHeight: tableAutoHeight, hideFooterPagination: hideFooterPagination, hideFooterComponent: hideFooterComponent, hideToolbarComponent: hideToolbarComponent, onProcessRow: onProcessRow, onDataChange: onDataChange, sumRows: sumRows, visibleRows: visibleRows, paginationMode: paginationMode, paginationModel: paginationModel, setPaginationModel: setPaginationModel, actions: actions, optionsAC: optionsAC, LinkComponent: LinkComponent }))))))));
|
|
165
165
|
}
|
|
166
166
|
exports.default = GenericRelatedModelList;
|
package/package.json
CHANGED