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 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
- const responseUpdate = yield (0, exports.updateData)({
304
- path,
305
- serverEndPoint,
306
- data,
307
- id: responseCreate.data.id,
308
- });
309
- return responseUpdate;
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 { GridEnrichedBySchemaColDef } from '../../utils';
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, disableRowSelectionOnClick: disableRowSelectionOnClick, rowModesModel: rowModesModel, onRowEditStart: handleRowEditStart, onRowEditStop: handleRowEditStop, processRowUpdate: processRowUpdate, onProcessRowUpdateError: (e) => {
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "drf-react-by-schema",
3
- "version": "0.13.0",
3
+ "version": "0.13.1",
4
4
  "description": "Components and Tools for building a React App having Django Rest Framework (DRF) as server",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",