drf-react-by-schema 0.13.0 → 0.13.1
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/api.js +8 -7
- package/dist/components/DataGridBySchemaEditable/CustomToolbar.d.ts +8 -3
- package/dist/components/DataGridBySchemaEditable/CustomToolbar.js +23 -2
- package/dist/components/DataGridBySchemaEditable.d.ts +2 -1
- package/dist/components/DataGridBySchemaEditable.js +7 -2
- package/dist/components/GenericModelList.d.ts +3 -2
- package/dist/components/GenericModelList.js +2 -2
- package/dist/components/GenericRelatedModelList.d.ts +3 -2
- package/dist/components/GenericRelatedModelList.js +5 -5
- package/dist/utils.d.ts +5 -1
- package/package.json +1 -1
package/dist/api.js
CHANGED
|
@@ -300,13 +300,14 @@ const createOrUpdateData = ({ path, serverEndPoint, data, id, }) => __awaiter(vo
|
|
|
300
300
|
if (!responseCreate || Object.prototype.hasOwnProperty.call(responseCreate, 'errors')) {
|
|
301
301
|
return responseCreate;
|
|
302
302
|
}
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
303
|
+
return responseCreate.data.id;
|
|
304
|
+
// const responseUpdate = await updateData({
|
|
305
|
+
// path,
|
|
306
|
+
// serverEndPoint,
|
|
307
|
+
// data,
|
|
308
|
+
// id: responseCreate.data.id,
|
|
309
|
+
// });
|
|
310
|
+
// return responseUpdate;
|
|
310
311
|
});
|
|
311
312
|
exports.createOrUpdateData = createOrUpdateData;
|
|
312
313
|
const prepareDataBySchema = ({ data, schema }) => {
|
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import {
|
|
2
|
+
import { GridSelectionModel } from '@mui/x-data-grid';
|
|
3
|
+
import { GridEnrichedBySchemaColDef, OnSelectActions } from '../../utils';
|
|
3
4
|
type CustomToolbarProps = {
|
|
4
5
|
preparedColumns: GridEnrichedBySchemaColDef[];
|
|
5
6
|
setPreparedColumns: (p: null | GridEnrichedBySchemaColDef[]) => void;
|
|
7
|
+
onSelectActions?: OnSelectActions[];
|
|
8
|
+
selectionModel: GridSelectionModel;
|
|
6
9
|
};
|
|
7
10
|
/**
|
|
8
11
|
*
|
|
9
12
|
*
|
|
10
13
|
* @param {CustomToolbarProps} {
|
|
11
14
|
* preparedColumns,
|
|
12
|
-
* setPreparedColumns
|
|
15
|
+
* setPreparedColumns,
|
|
16
|
+
* onSelectActions,
|
|
17
|
+
* selectionModel,
|
|
13
18
|
* }
|
|
14
19
|
* @returns Custom Toolbar for the grid
|
|
15
20
|
*/
|
|
16
|
-
export declare const CustomToolbar: ({ preparedColumns, setPreparedColumns }: CustomToolbarProps) => JSX.Element;
|
|
21
|
+
export declare const CustomToolbar: ({ preparedColumns, setPreparedColumns, onSelectActions, selectionModel, }: CustomToolbarProps) => JSX.Element;
|
|
17
22
|
export {};
|
|
@@ -31,6 +31,7 @@ const react_1 = __importStar(require("react"));
|
|
|
31
31
|
const x_data_grid_1 = require("@mui/x-data-grid");
|
|
32
32
|
const Button_1 = __importDefault(require("@mui/material/Button"));
|
|
33
33
|
const Expand_1 = __importDefault(require("@mui/icons-material/Expand"));
|
|
34
|
+
const ArrowDropDown_1 = __importDefault(require("@mui/icons-material/ArrowDropDown"));
|
|
34
35
|
const Menu_1 = __importDefault(require("@mui/material/Menu"));
|
|
35
36
|
const MenuItem_1 = __importDefault(require("@mui/material/MenuItem"));
|
|
36
37
|
const utils_1 = require("./utils");
|
|
@@ -39,11 +40,13 @@ const utils_1 = require("./utils");
|
|
|
39
40
|
*
|
|
40
41
|
* @param {CustomToolbarProps} {
|
|
41
42
|
* preparedColumns,
|
|
42
|
-
* setPreparedColumns
|
|
43
|
+
* setPreparedColumns,
|
|
44
|
+
* onSelectActions,
|
|
45
|
+
* selectionModel,
|
|
43
46
|
* }
|
|
44
47
|
* @returns Custom Toolbar for the grid
|
|
45
48
|
*/
|
|
46
|
-
const CustomToolbar = ({ preparedColumns, setPreparedColumns }) => {
|
|
49
|
+
const CustomToolbar = ({ preparedColumns, setPreparedColumns, onSelectActions, selectionModel, }) => {
|
|
47
50
|
const apiRef = (0, x_data_grid_1.useGridApiContext)();
|
|
48
51
|
const [resizeMenuAnchorEl, setResizeMenuAnchorEl] = (0, react_1.useState)(null);
|
|
49
52
|
const isResizeMenuOpen = Boolean(resizeMenuAnchorEl);
|
|
@@ -53,8 +56,26 @@ const CustomToolbar = ({ preparedColumns, setPreparedColumns }) => {
|
|
|
53
56
|
const closeResizeMenu = () => {
|
|
54
57
|
setResizeMenuAnchorEl(null);
|
|
55
58
|
};
|
|
59
|
+
const [actionsMenuAnchorEl, setActionsMenuAnchorEl] = (0, react_1.useState)(null);
|
|
60
|
+
const isActionsMenuOpen = Boolean(actionsMenuAnchorEl);
|
|
61
|
+
const openActionsMenu = (event) => {
|
|
62
|
+
setActionsMenuAnchorEl(event.currentTarget);
|
|
63
|
+
};
|
|
64
|
+
const closeActionsMenu = () => {
|
|
65
|
+
setActionsMenuAnchorEl(null);
|
|
66
|
+
};
|
|
56
67
|
return (react_1.default.createElement(x_data_grid_1.GridToolbarContainer, { sx: { justifyContent: 'space-between' } },
|
|
57
68
|
react_1.default.createElement("div", { style: { display: 'flex', flexWrap: 'wrap' } },
|
|
69
|
+
onSelectActions && onSelectActions.length > 0 && selectionModel.length > 0 && (react_1.default.createElement(react_1.default.Fragment, null,
|
|
70
|
+
react_1.default.createElement(Button_1.default, { onClick: openActionsMenu, sx: { ml: '0px', fontSize: '13px', color: '#000' } },
|
|
71
|
+
react_1.default.createElement(ArrowDropDown_1.default, { sx: { mr: '6px' } }),
|
|
72
|
+
"A\u00E7\u00F5es (",
|
|
73
|
+
selectionModel.length,
|
|
74
|
+
")"),
|
|
75
|
+
react_1.default.createElement(Menu_1.default, { anchorEl: actionsMenuAnchorEl, open: isActionsMenuOpen, onClose: closeActionsMenu }, onSelectActions.map((selectAction, index) => (react_1.default.createElement(MenuItem_1.default, { key: `onSelectAction_${index}`, onClick: () => {
|
|
76
|
+
closeActionsMenu();
|
|
77
|
+
selectAction.action(selectionModel);
|
|
78
|
+
} }, selectAction.title)))))),
|
|
58
79
|
react_1.default.createElement(x_data_grid_1.GridToolbarColumnsButton, { sx: { ml: '10px', fontSize: '13px' } }),
|
|
59
80
|
react_1.default.createElement(x_data_grid_1.GridToolbarFilterButton, { sx: { ml: '10px', fontSize: '13px' } }),
|
|
60
81
|
react_1.default.createElement(x_data_grid_1.GridToolbarDensitySelector, { sx: { ml: '10px', fontSize: '13px' } }),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { Item, SchemaType, Id, GridEnrichedBySchemaColDef, PaginationModel, ActionType } from '../utils';
|
|
2
|
+
import { Item, SchemaType, Id, GridEnrichedBySchemaColDef, PaginationModel, ActionType, OnSelectActions } from '../utils';
|
|
3
3
|
import { SxProps } from '@mui/material';
|
|
4
4
|
import { OnEditModelType } from '../context/APIWrapperContext';
|
|
5
5
|
interface DataGridBySchemaEditableProps {
|
|
@@ -30,6 +30,7 @@ interface DataGridBySchemaEditableProps {
|
|
|
30
30
|
onEditModel?: (p: OnEditModelType) => void;
|
|
31
31
|
isEditable?: boolean;
|
|
32
32
|
hasBulkSelect?: boolean;
|
|
33
|
+
onSelectActions?: OnSelectActions[];
|
|
33
34
|
sx?: SxProps;
|
|
34
35
|
isAutoHeight?: boolean;
|
|
35
36
|
defaultValues?: Item;
|
|
@@ -75,7 +75,7 @@ const ConfirmDialog_1 = require("./DataGridBySchemaEditable/ConfirmDialog");
|
|
|
75
75
|
const APIWrapperContext_1 = require("../context/APIWrapperContext");
|
|
76
76
|
const stringMask = require('string-mask');
|
|
77
77
|
const DataGridBySchemaEditable = (0, react_1.forwardRef)((_a, ref) => {
|
|
78
|
-
var { schema, data, rowCount = 0, columns, model, fieldKey, labelKey = 'nome', index, name = Math.floor(Math.random() * 1000000).toString(), indexField = 'nome', addExistingModel, indexFieldMinWidth = 350, indexFieldBasePath = '', indexFieldViewBasePath, stateToLink = {}, minWidth = 80, loading, modelParent, modelParentId, customColumnOperations, customLinkDestination, LinkComponent, onProcessRow, onDataChange, onEditModel, isEditable = false, hasBulkSelect = false, sx = { mr: 2 }, isAutoHeight = false, defaultValues = {}, hideFooterPagination = false, setVisibleRows, paginationModel = undefined, setPaginationModel = undefined, hideFooterComponent, hideToolbarComponent, tableAutoHeight, actions = ['editInline', 'remove'], optionsAC: optionsACExternal } = _a, other = __rest(_a, ["schema", "data", "rowCount", "columns", "model", "fieldKey", "labelKey", "index", "name", "indexField", "addExistingModel", "indexFieldMinWidth", "indexFieldBasePath", "indexFieldViewBasePath", "stateToLink", "minWidth", "loading", "modelParent", "modelParentId", "customColumnOperations", "customLinkDestination", "LinkComponent", "onProcessRow", "onDataChange", "onEditModel", "isEditable", "hasBulkSelect", "sx", "isAutoHeight", "defaultValues", "hideFooterPagination", "setVisibleRows", "paginationModel", "setPaginationModel", "hideFooterComponent", "hideToolbarComponent", "tableAutoHeight", "actions", "optionsAC"]);
|
|
78
|
+
var { schema, data, rowCount = 0, columns, model, fieldKey, labelKey = 'nome', index, name = Math.floor(Math.random() * 1000000).toString(), indexField = 'nome', addExistingModel, indexFieldMinWidth = 350, indexFieldBasePath = '', indexFieldViewBasePath, stateToLink = {}, minWidth = 80, loading, modelParent, modelParentId, customColumnOperations, customLinkDestination, LinkComponent, onProcessRow, onDataChange, onEditModel, isEditable = false, hasBulkSelect = false, onSelectActions, sx = { mr: 2 }, isAutoHeight = false, defaultValues = {}, hideFooterPagination = false, setVisibleRows, paginationModel = undefined, setPaginationModel = undefined, hideFooterComponent, hideToolbarComponent, tableAutoHeight, actions = ['editInline', 'remove'], optionsAC: optionsACExternal } = _a, other = __rest(_a, ["schema", "data", "rowCount", "columns", "model", "fieldKey", "labelKey", "index", "name", "indexField", "addExistingModel", "indexFieldMinWidth", "indexFieldBasePath", "indexFieldViewBasePath", "stateToLink", "minWidth", "loading", "modelParent", "modelParentId", "customColumnOperations", "customLinkDestination", "LinkComponent", "onProcessRow", "onDataChange", "onEditModel", "isEditable", "hasBulkSelect", "onSelectActions", "sx", "isAutoHeight", "defaultValues", "hideFooterPagination", "setVisibleRows", "paginationModel", "setPaginationModel", "hideFooterComponent", "hideToolbarComponent", "tableAutoHeight", "actions", "optionsAC"]);
|
|
79
79
|
const { serverEndPoint } = (0, DRFReactBySchemaContext_1.useDRFReactBySchema)();
|
|
80
80
|
const apiContext = (0, APIWrapperContext_1.useAPIWrapper)();
|
|
81
81
|
const initialSnackBar = {
|
|
@@ -91,6 +91,7 @@ const DataGridBySchemaEditable = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
91
91
|
const [dataGridLoading, setDataGridLoading] = (0, react_1.useState)(false);
|
|
92
92
|
const [rowModesModel, setRowModesModel] = (0, react_1.useState)({});
|
|
93
93
|
const [dialogOpen, setDialogOpen] = (0, react_1.useState)(false);
|
|
94
|
+
const [selectionModel, setSelectionModel] = (0, react_1.useState)([]);
|
|
94
95
|
const optionsAC = (0, react_1.useRef)(null);
|
|
95
96
|
const emptyItem = (0, react_1.useRef)({});
|
|
96
97
|
const yupValidationSchema = (0, react_1.useRef)(null);
|
|
@@ -615,7 +616,9 @@ const DataGridBySchemaEditable = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
615
616
|
!Object.prototype.hasOwnProperty.call(optionsAC.current, indexField) ||
|
|
616
617
|
(preparedColumns.find((col) => col.field === indexField) &&
|
|
617
618
|
Object.prototype.hasOwnProperty.call(preparedColumns.find((col) => col.field === indexField), 'valueFormatter'))))));
|
|
618
|
-
}, checkboxSelection: checkboxSelection,
|
|
619
|
+
}, checkboxSelection: checkboxSelection, onSelectionModelChange: (newSelectionModel) => {
|
|
620
|
+
setSelectionModel(newSelectionModel);
|
|
621
|
+
}, disableRowSelectionOnClick: disableRowSelectionOnClick, rowModesModel: rowModesModel, onRowEditStart: handleRowEditStart, onRowEditStop: handleRowEditStop, processRowUpdate: processRowUpdate, onProcessRowUpdateError: (e) => {
|
|
619
622
|
setDataGridLoading(false);
|
|
620
623
|
if (processingRow.current) {
|
|
621
624
|
setRowModesModel(Object.assign(Object.assign({}, rowModesModel), { [processingRow.current]: {
|
|
@@ -642,6 +645,8 @@ const DataGridBySchemaEditable = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
642
645
|
console.log(e);
|
|
643
646
|
return [];
|
|
644
647
|
},
|
|
648
|
+
selectionModel,
|
|
649
|
+
onSelectActions,
|
|
645
650
|
},
|
|
646
651
|
footer: {
|
|
647
652
|
name,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { GridFilterModel } from '@mui/x-data-grid';
|
|
3
|
-
import { GridEnrichedBySchemaColDef, ActionType, Item } from '../utils';
|
|
3
|
+
import { GridEnrichedBySchemaColDef, ActionType, Item, OnSelectActions } from '../utils';
|
|
4
4
|
import { SumRowsType } from '../api';
|
|
5
5
|
interface GenericModelListProps {
|
|
6
6
|
model: string;
|
|
@@ -18,6 +18,7 @@ interface GenericModelListProps {
|
|
|
18
18
|
customLinkDestination?: (p: any) => string;
|
|
19
19
|
isEditable?: boolean;
|
|
20
20
|
hasBulkSelect?: boolean;
|
|
21
|
+
onSelectActions?: OnSelectActions[];
|
|
21
22
|
sumRows?: SumRowsType;
|
|
22
23
|
isAutoHeight?: boolean;
|
|
23
24
|
forceReload: boolean;
|
|
@@ -33,5 +34,5 @@ interface GenericModelListProps {
|
|
|
33
34
|
optionsAC?: Record<string, Item[]>;
|
|
34
35
|
disableScreenLoading?: boolean;
|
|
35
36
|
}
|
|
36
|
-
declare const GenericModelList: ({ model, columnFields, hiddenFields, creatableFields, disabledFields, minWidthFields, indexField, indexFieldBasePath, indexFieldViewBasePath, addExistingModel, onProcessRow, customColumnOperations, customLinkDestination, isEditable, hasBulkSelect, sumRows, isAutoHeight, forceReload, LinkComponent, hasHeader, paginationMode, defaultFilter, queryParams, hideFooterComponent, hideToolbarComponent, tableAutoHeight, actions, optionsAC, disableScreenLoading, }: GenericModelListProps) => JSX.Element;
|
|
37
|
+
declare const GenericModelList: ({ model, columnFields, hiddenFields, creatableFields, disabledFields, minWidthFields, indexField, indexFieldBasePath, indexFieldViewBasePath, addExistingModel, onProcessRow, customColumnOperations, customLinkDestination, isEditable, hasBulkSelect, onSelectActions, sumRows, isAutoHeight, forceReload, LinkComponent, hasHeader, paginationMode, defaultFilter, queryParams, hideFooterComponent, hideToolbarComponent, tableAutoHeight, actions, optionsAC, disableScreenLoading, }: GenericModelListProps) => JSX.Element;
|
|
37
38
|
export default GenericModelList;
|
|
@@ -50,7 +50,7 @@ const utils_1 = require("../utils");
|
|
|
50
50
|
const api_1 = require("../api");
|
|
51
51
|
const DRFReactBySchemaContext_1 = require("../context/DRFReactBySchemaContext");
|
|
52
52
|
const APIWrapperContext_1 = require("../context/APIWrapperContext");
|
|
53
|
-
const GenericModelList = ({ model, columnFields, hiddenFields = [], creatableFields, disabledFields, minWidthFields, indexField, indexFieldBasePath, indexFieldViewBasePath, addExistingModel, onProcessRow, customColumnOperations, customLinkDestination, isEditable, hasBulkSelect = false, sumRows, isAutoHeight = true, forceReload = false, LinkComponent = null, hasHeader = false, paginationMode = 'client', defaultFilter, queryParams, hideFooterComponent, hideToolbarComponent, tableAutoHeight, actions, optionsAC, disableScreenLoading, }) => {
|
|
53
|
+
const GenericModelList = ({ model, columnFields, hiddenFields = [], creatableFields, disabledFields, minWidthFields, indexField, indexFieldBasePath, indexFieldViewBasePath, addExistingModel, onProcessRow, customColumnOperations, customLinkDestination, isEditable, hasBulkSelect = false, onSelectActions, sumRows, isAutoHeight = true, forceReload = false, LinkComponent = null, hasHeader = false, paginationMode = 'client', defaultFilter, queryParams, hideFooterComponent, hideToolbarComponent, tableAutoHeight, actions, optionsAC, disableScreenLoading, }) => {
|
|
54
54
|
const { serverEndPoint, isInBatches, firstBatchLength } = (0, DRFReactBySchemaContext_1.useDRFReactBySchema)();
|
|
55
55
|
const { onEditModel } = (0, APIWrapperContext_1.useAPIWrapper)();
|
|
56
56
|
const [data, setData] = (0, react_1.useState)(false);
|
|
@@ -151,7 +151,7 @@ const GenericModelList = ({ model, columnFields, hiddenFields = [], creatableFie
|
|
|
151
151
|
react_1.default.createElement(LinkComponent, { to: `novo` },
|
|
152
152
|
react_1.default.createElement(Button_1.default, { variant: "contained", size: "medium", sx: { alignSelf: 'stretch' }, startIcon: react_1.default.createElement(AddCircleOutline_1.default, null) }, "Adicionar")))))),
|
|
153
153
|
react_1.default.createElement(Box_1.default, { sx: tableAutoHeight ? {} : styles_1.Layout.dataGridWithTabs },
|
|
154
|
-
react_1.default.createElement(DataGridBySchemaEditable_1.default, { data: data.data, columns: data.columns, schema: data.schema || {}, model: model, loading: loading, indexField: indexField, indexFieldBasePath: indexFieldBasePath, indexFieldViewBasePath: indexFieldViewBasePath, addExistingModel: addExistingModel, isEditable: isEditable, hasBulkSelect: hasBulkSelect, onEditModel: onEditModel, isAutoHeight: isAutoHeight, tableAutoHeight: tableAutoHeight, customColumnOperations: finalCustomColumnOperations, setVisibleRows: setVisibleRows, hideFooterPagination: hideFooterPagination, hideFooterComponent: hideFooterComponent, hideToolbarComponent: hideToolbarComponent, customLinkDestination: customLinkDestination, actions: actions, optionsAC: optionsAC, onProcessRow: onProcessRow, onDataChange: (newData) => {
|
|
154
|
+
react_1.default.createElement(DataGridBySchemaEditable_1.default, { data: data.data, columns: data.columns, schema: data.schema || {}, model: model, 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, customLinkDestination: customLinkDestination, actions: actions, optionsAC: optionsAC, onProcessRow: onProcessRow, onDataChange: (newData) => {
|
|
155
155
|
setData(Object.assign(Object.assign({}, data), { data: newData }));
|
|
156
156
|
}, LinkComponent: LinkComponent, paginationModel: paginationMode === 'server' ? paginationModel : undefined, setPaginationModel: paginationMode === 'server' ? setPaginationModel : undefined, rowCount: paginationMode === 'client'
|
|
157
157
|
? undefined
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { GridFilterModel } from '@mui/x-data-grid';
|
|
3
|
-
import { ActionType, GridEnrichedBySchemaColDef, Id, Item } from '../utils';
|
|
3
|
+
import { ActionType, GridEnrichedBySchemaColDef, Id, Item, OnSelectActions } from '../utils';
|
|
4
4
|
import { SumRowsType } from '../api';
|
|
5
5
|
interface GenericRelatedModelListProps {
|
|
6
6
|
model: string;
|
|
@@ -21,6 +21,7 @@ interface GenericRelatedModelListProps {
|
|
|
21
21
|
customColumnOperations?: (column: GridEnrichedBySchemaColDef) => GridEnrichedBySchemaColDef;
|
|
22
22
|
isEditable?: boolean;
|
|
23
23
|
hasBulkSelect?: boolean;
|
|
24
|
+
onSelectActions?: OnSelectActions[];
|
|
24
25
|
sumRows?: SumRowsType;
|
|
25
26
|
isAutoHeight?: boolean;
|
|
26
27
|
isInBatches?: boolean;
|
|
@@ -34,5 +35,5 @@ interface GenericRelatedModelListProps {
|
|
|
34
35
|
actions?: Partial<ActionType>[];
|
|
35
36
|
optionsAC?: Record<string, Item[]>;
|
|
36
37
|
}
|
|
37
|
-
export default function GenericRelatedModelList({ model, id, relatedModel, columnFields, hiddenFields, creatableFields, disabledFields, usuaria, minWidthFields, indexField, indexFieldBasePath, indexFieldViewBasePath, addExistingModel, label, onProcessRow, customColumnOperations, isEditable, hasBulkSelect, sumRows, isAutoHeight, isInBatches, noCardWrapper, paginationMode, defaultFilter, queryParams, hideFooterComponent, hideToolbarComponent, tableAutoHeight, actions, optionsAC, }: GenericRelatedModelListProps): JSX.Element;
|
|
38
|
+
export default function GenericRelatedModelList({ model, id, relatedModel, columnFields, hiddenFields, creatableFields, disabledFields, usuaria, minWidthFields, indexField, indexFieldBasePath, indexFieldViewBasePath, addExistingModel, label, onProcessRow, customColumnOperations, isEditable, hasBulkSelect, onSelectActions, sumRows, isAutoHeight, isInBatches, noCardWrapper, paginationMode, defaultFilter, queryParams, hideFooterComponent, hideToolbarComponent, tableAutoHeight, actions, optionsAC, }: GenericRelatedModelListProps): JSX.Element;
|
|
38
39
|
export {};
|
|
@@ -49,9 +49,9 @@ 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, setData, sumRows, visibleRows, paginationMode = 'client', paginationModel, setPaginationModel, hasBulkSelect, 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, setData, sumRows, visibleRows, paginationMode = 'client', paginationModel, setPaginationModel, hasBulkSelect, onSelectActions, tableAutoHeight, actions, optionsAC, }) => (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
|
-
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, onEditModel: onEditModel, isAutoHeight: isAutoHeight, tableAutoHeight: tableAutoHeight, customColumnOperations: finalCustomColumnOperations, setVisibleRows: setVisibleRows, hideFooterPagination: hideFooterPagination, hideFooterComponent: hideFooterComponent, hideToolbarComponent: hideToolbarComponent, actions: actions, optionsAC: optionsAC, onProcessRow: onProcessRow, onDataChange: (newData) => {
|
|
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: (newData) => {
|
|
55
55
|
setData(Object.assign(Object.assign({}, data), { data: newData }));
|
|
56
56
|
}, paginationModel: paginationMode === 'server' ? paginationModel : undefined, setPaginationModel: paginationMode === 'server' ? setPaginationModel : undefined, rowCount: paginationMode === 'client'
|
|
57
57
|
? undefined
|
|
@@ -60,7 +60,7 @@ const ContentTable = ({ data, relatedModel, model, loading, id, indexField, inde
|
|
|
60
60
|
: 0 }))) : (react_1.default.createElement(Backdrop_1.default, { invisible: true, sx: { color: '#fff', zIndex: (theme) => theme.zIndex.drawer + 1 }, open: loading },
|
|
61
61
|
react_1.default.createElement(CircularProgress_1.default, null))),
|
|
62
62
|
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 }))));
|
|
63
|
-
function GenericRelatedModelList({ model, id, relatedModel, columnFields, hiddenFields, creatableFields, disabledFields, usuaria = null, minWidthFields, indexField, indexFieldBasePath, indexFieldViewBasePath, addExistingModel, label, onProcessRow, customColumnOperations, isEditable = true, hasBulkSelect = false, sumRows, isAutoHeight = false, isInBatches = true, noCardWrapper = false, paginationMode = 'client', defaultFilter, queryParams, hideFooterComponent, hideToolbarComponent, tableAutoHeight, actions, optionsAC, }) {
|
|
63
|
+
function GenericRelatedModelList({ model, id, relatedModel, columnFields, hiddenFields, creatableFields, disabledFields, usuaria = null, minWidthFields, indexField, indexFieldBasePath, indexFieldViewBasePath, addExistingModel, label, onProcessRow, customColumnOperations, isEditable = true, hasBulkSelect = false, onSelectActions, sumRows, isAutoHeight = false, isInBatches = true, noCardWrapper = false, paginationMode = 'client', defaultFilter, queryParams, hideFooterComponent, hideToolbarComponent, tableAutoHeight, actions, optionsAC, }) {
|
|
64
64
|
const [data, setData] = (0, react_1.useState)(false);
|
|
65
65
|
const [visibleRows, setVisibleRows] = (0, react_1.useState)([]);
|
|
66
66
|
const [loading, setLoading] = (0, react_1.useState)(false);
|
|
@@ -150,9 +150,9 @@ function GenericRelatedModelList({ model, id, relatedModel, columnFields, hidden
|
|
|
150
150
|
loadObjectList();
|
|
151
151
|
}
|
|
152
152
|
}, [paginationModel]);
|
|
153
|
-
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, onEditModel: onEditModel, onDeleteRelatedModel: onDeleteRelatedModel, finalCustomColumnOperations: finalCustomColumnOperations, setVisibleRows: setVisibleRows, isAutoHeight: isAutoHeight, tableAutoHeight: tableAutoHeight, hideFooterPagination: hideFooterPagination, hideFooterComponent: hideFooterComponent, hideToolbarComponent: hideToolbarComponent, onProcessRow: onProcessRow, setData: setData, 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 },
|
|
153
|
+
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, setData: setData, 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 },
|
|
154
154
|
react_1.default.createElement(CardHeader_1.default, { title: label }),
|
|
155
155
|
react_1.default.createElement(CardContent_1.default, null,
|
|
156
|
-
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, onEditModel: onEditModel, onDeleteRelatedModel: onDeleteRelatedModel, finalCustomColumnOperations: finalCustomColumnOperations, setVisibleRows: setVisibleRows, isAutoHeight: isAutoHeight, tableAutoHeight: tableAutoHeight, hideFooterPagination: hideFooterPagination, hideFooterComponent: hideFooterComponent, hideToolbarComponent: hideToolbarComponent, onProcessRow: onProcessRow, setData: setData, sumRows: sumRows, visibleRows: visibleRows, paginationMode: paginationMode, paginationModel: paginationModel, setPaginationModel: setPaginationModel, actions: actions, optionsAC: optionsAC }))))))));
|
|
156
|
+
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, setData: setData, sumRows: sumRows, visibleRows: visibleRows, paginationMode: paginationMode, paginationModel: paginationModel, setPaginationModel: setPaginationModel, actions: actions, optionsAC: optionsAC }))))))));
|
|
157
157
|
}
|
|
158
158
|
exports.default = GenericRelatedModelList;
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { CalendarPickerView } from '@mui/x-date-pickers/CalendarPicker';
|
|
3
|
-
import { GridActionsColDef, GridColDef, GridFilterModel, GridSortModel } from '@mui/x-data-grid';
|
|
3
|
+
import { GridActionsColDef, GridColDef, GridFilterModel, GridSortModel, GridSelectionModel } from '@mui/x-data-grid';
|
|
4
4
|
import { Control, FieldValues, UseFormGetValues, UseFormSetValue } from 'react-hook-form';
|
|
5
5
|
import { AutocompleteRenderOptionState, SxProps } from '@mui/material';
|
|
6
6
|
import { OnEditModelType } from './context/APIWrapperContext';
|
|
@@ -157,4 +157,8 @@ export declare const slugToCamelCase: (str: string) => string;
|
|
|
157
157
|
export declare const slugify: (text: string) => string;
|
|
158
158
|
export declare function mergeFilterItems(defaultFilter: GridFilterModel | undefined, filter: GridFilterModel | undefined): any;
|
|
159
159
|
export type ActionType = 'editInline' | 'remove' | 'edit' | 'view';
|
|
160
|
+
export type OnSelectActions = {
|
|
161
|
+
title: string;
|
|
162
|
+
action: (p: GridSelectionModel) => void;
|
|
163
|
+
};
|
|
160
164
|
export {};
|
package/package.json
CHANGED