drf-react-by-schema 0.8.7 → 0.8.9

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.
@@ -27,6 +27,7 @@ interface DataGridBySchemaEditableProps {
27
27
  onDataChange?: (p: any) => void;
28
28
  onEditModel?: (p: OnEditModelType) => void;
29
29
  isEditable?: boolean;
30
+ hasBulkSelect?: boolean;
30
31
  sx?: SxProps;
31
32
  isAutoHeight?: boolean;
32
33
  defaultValues?: Item;
@@ -73,7 +73,7 @@ const ConfirmDialog_1 = require("./DataGridBySchemaEditable/ConfirmDialog");
73
73
  const APIWrapperContext_1 = require("../context/APIWrapperContext");
74
74
  const stringMask = require('string-mask');
75
75
  const DataGridBySchemaEditable = (0, react_1.forwardRef)((_a, ref) => {
76
- var { schema, data, rowCount = 0, columns, model, fieldKey, labelKey = 'nome', index, name = Math.floor(Math.random() * 1000000).toString(), indexField = 'nome', addExistingModel, indexFieldMinWidth = 350, indexFieldBasePath = '', stateToLink = {}, minWidth = 80, modelParent, modelParentId, customColumnOperations, customLinkDestination, LinkComponent, onProcessRow, onDataChange, onEditModel, isEditable = false, sx = { mr: 2 }, isAutoHeight = false, defaultValues = {}, hideFooterPagination = false, setVisibleRows, paginationModel = undefined, setPaginationModel = undefined } = _a, other = __rest(_a, ["schema", "data", "rowCount", "columns", "model", "fieldKey", "labelKey", "index", "name", "indexField", "addExistingModel", "indexFieldMinWidth", "indexFieldBasePath", "stateToLink", "minWidth", "modelParent", "modelParentId", "customColumnOperations", "customLinkDestination", "LinkComponent", "onProcessRow", "onDataChange", "onEditModel", "isEditable", "sx", "isAutoHeight", "defaultValues", "hideFooterPagination", "setVisibleRows", "paginationModel", "setPaginationModel"]);
76
+ var { schema, data, rowCount = 0, columns, model, fieldKey, labelKey = 'nome', index, name = Math.floor(Math.random() * 1000000).toString(), indexField = 'nome', addExistingModel, indexFieldMinWidth = 350, indexFieldBasePath = '', stateToLink = {}, minWidth = 80, 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 } = _a, other = __rest(_a, ["schema", "data", "rowCount", "columns", "model", "fieldKey", "labelKey", "index", "name", "indexField", "addExistingModel", "indexFieldMinWidth", "indexFieldBasePath", "stateToLink", "minWidth", "modelParent", "modelParentId", "customColumnOperations", "customLinkDestination", "LinkComponent", "onProcessRow", "onDataChange", "onEditModel", "isEditable", "hasBulkSelect", "sx", "isAutoHeight", "defaultValues", "hideFooterPagination", "setVisibleRows", "paginationModel", "setPaginationModel"]);
77
77
  const { serverEndPoint } = (0, DRFReactBySchemaContext_1.useDRFReactBySchema)();
78
78
  const apiContext = react_1.default.useContext(APIWrapperContext_1.APIWrapperContext);
79
79
  const initialSnackBar = {
@@ -530,6 +530,8 @@ const DataGridBySchemaEditable = (0, react_1.forwardRef)((_a, ref) => {
530
530
  },
531
531
  }
532
532
  : undefined;
533
+ const checkboxSelection = hasBulkSelect ? true : undefined;
534
+ const disableRowSelectionOnClick = hasBulkSelect ? true : undefined;
533
535
  return (react_1.default.createElement(Box_1.default, { className: `dataGrid_${name}`, sx: { height: '100%' } },
534
536
  preparedColumns === null ? (react_1.default.createElement(Box_1.default, { sx: styles_1.Layout.loadingBox },
535
537
  react_1.default.createElement(CircularProgress_1.default, null))) : (react_1.default.createElement(x_data_grid_1.DataGrid, { rows: dataGrid.data, columns: preparedColumns, onStateChange: (state) => {
@@ -562,7 +564,7 @@ const DataGridBySchemaEditable = (0, react_1.forwardRef)((_a, ref) => {
562
564
  !Object.prototype.hasOwnProperty.call(optionsAC.current, indexField) ||
563
565
  (preparedColumns.find((col) => col.field === indexField) &&
564
566
  Object.prototype.hasOwnProperty.call(preparedColumns.find((col) => col.field === indexField), 'valueFormatter'))))));
565
- }, rowModesModel: rowModesModel, onRowEditStart: handleRowEditStart, onRowEditStop: handleRowEditStop, processRowUpdate: processRowUpdate, onProcessRowUpdateError: (e) => {
567
+ }, checkboxSelection: checkboxSelection, disableRowSelectionOnClick: disableRowSelectionOnClick, rowModesModel: rowModesModel, onRowEditStart: handleRowEditStart, onRowEditStop: handleRowEditStop, processRowUpdate: processRowUpdate, onProcessRowUpdateError: (e) => {
566
568
  setDataGridLoading(false);
567
569
  if (processingRow.current) {
568
570
  setRowModesModel(Object.assign(Object.assign({}, rowModesModel), { [processingRow.current]: {
@@ -8,6 +8,7 @@ interface GenericModelListProps {
8
8
  minWidthFields?: Record<string, number>;
9
9
  indexFieldBasePath: string;
10
10
  indexField: string;
11
+ hasBulkSelect?: boolean;
11
12
  customColumnOperations?: (column: GridEnrichedBySchemaColDef) => GridEnrichedBySchemaColDef;
12
13
  customLinkDestination?: (p: any) => string;
13
14
  sumRows?: SumRowsType;
@@ -18,6 +19,7 @@ interface GenericModelListProps {
18
19
  hasHeader: boolean;
19
20
  paginationMode: 'server' | 'client';
20
21
  defaultFilter?: GridFilterModel;
22
+ queryParams?: string[];
21
23
  }
22
- declare const GenericModelList: ({ columnFields, hiddenFields, minWidthFields, indexFieldBasePath, indexField, customColumnOperations, customLinkDestination, sumRows, isAutoHeight, model, forceReload, LinkComponent, hasHeader, paginationMode, defaultFilter, }: GenericModelListProps) => JSX.Element;
24
+ declare const GenericModelList: ({ columnFields, hiddenFields, minWidthFields, indexFieldBasePath, indexField, hasBulkSelect, customColumnOperations, customLinkDestination, sumRows, isAutoHeight, model, forceReload, LinkComponent, hasHeader, paginationMode, defaultFilter, queryParams, }: GenericModelListProps) => JSX.Element;
23
25
  export default GenericModelList;
@@ -48,7 +48,7 @@ const utils_1 = require("../utils");
48
48
  const api_1 = require("../api");
49
49
  const DRFReactBySchemaContext_1 = require("../context/DRFReactBySchemaContext");
50
50
  const APIWrapperContext_1 = require("../context/APIWrapperContext");
51
- const GenericModelList = ({ columnFields, hiddenFields = [], minWidthFields, indexFieldBasePath, indexField, customColumnOperations, customLinkDestination, sumRows, isAutoHeight = true, model, forceReload = false, LinkComponent = null, hasHeader = false, paginationMode = 'client', defaultFilter, }) => {
51
+ const GenericModelList = ({ columnFields, hiddenFields = [], minWidthFields, indexFieldBasePath, indexField, hasBulkSelect = false, customColumnOperations, customLinkDestination, sumRows, isAutoHeight = true, model, forceReload = false, LinkComponent = null, hasHeader = false, paginationMode = 'client', defaultFilter, queryParams, }) => {
52
52
  const context = react_1.default.useContext(DRFReactBySchemaContext_1.DRFReactBySchemaContext);
53
53
  const apiContext = react_1.default.useContext(APIWrapperContext_1.APIWrapperContext);
54
54
  if (!apiContext) {
@@ -82,6 +82,7 @@ const GenericModelList = ({ columnFields, hiddenFields = [], minWidthFields, ind
82
82
  columnFields,
83
83
  hiddenFields,
84
84
  isInBatches,
85
+ queryParams,
85
86
  };
86
87
  const loadedData = yield (0, api_1.getGenericModelList)(loadParams);
87
88
  if (loadedData && typeof loadedData !== 'boolean') {
@@ -111,6 +112,7 @@ const GenericModelList = ({ columnFields, hiddenFields = [], minWidthFields, ind
111
112
  hiddenFields,
112
113
  page,
113
114
  filter,
115
+ queryParams,
114
116
  sort,
115
117
  sumRows,
116
118
  };
@@ -129,7 +131,7 @@ const GenericModelList = ({ columnFields, hiddenFields = [], minWidthFields, ind
129
131
  }
130
132
  (0, react_1.useEffect)(() => {
131
133
  loadObjectList();
132
- }, [model, defaultFilter]);
134
+ }, [model, defaultFilter, queryParams]);
133
135
  (0, react_1.useEffect)(() => {
134
136
  if (paginationMode === 'server') {
135
137
  loadObjectList();
@@ -146,7 +148,7 @@ const GenericModelList = ({ columnFields, hiddenFields = [], minWidthFields, ind
146
148
  react_1.default.createElement(LinkComponent, { to: `novo` },
147
149
  react_1.default.createElement(Button_1.default, { variant: "contained", size: "medium", sx: { alignSelf: 'stretch' }, startIcon: react_1.default.createElement(AddCircleOutline_1.default, null) }, "Adicionar")))))),
148
150
  react_1.default.createElement(Box_1.default, { sx: styles_1.Layout.dataGridWithTabs },
149
- react_1.default.createElement(DataGridBySchemaEditable_1.default, { data: data.data, columns: data.columns, schema: data.schema || {}, model: model, indexField: indexField, indexFieldBasePath: indexFieldBasePath, isEditable: false, isAutoHeight: isAutoHeight, hideFooterPagination: hideFooterPagination, customColumnOperations: finalCustomColumnOperations, customLinkDestination: customLinkDestination, setVisibleRows: setVisibleRows, onDataChange: (newData) => {
151
+ react_1.default.createElement(DataGridBySchemaEditable_1.default, { data: data.data, columns: data.columns, schema: data.schema || {}, model: model, indexField: indexField, indexFieldBasePath: indexFieldBasePath, isEditable: false, hasBulkSelect: hasBulkSelect, isAutoHeight: isAutoHeight, hideFooterPagination: hideFooterPagination, customColumnOperations: finalCustomColumnOperations, customLinkDestination: customLinkDestination, setVisibleRows: setVisibleRows, onDataChange: (newData) => {
150
152
  setData(Object.assign(Object.assign({}, data), { data: newData }));
151
153
  }, LinkComponent: LinkComponent, paginationModel: paginationMode === 'server' ? paginationModel : undefined, setPaginationModel: paginationMode === 'server' ? setPaginationModel : undefined, rowCount: paginationMode === 'client'
152
154
  ? undefined
@@ -18,6 +18,7 @@ interface GenericRelatedModelListProps {
18
18
  sumRows?: SumRowsType;
19
19
  customColumnOperations?: (column: GridEnrichedBySchemaColDef) => GridEnrichedBySchemaColDef;
20
20
  isEditable?: boolean;
21
+ hasBulkSelect?: boolean;
21
22
  isAutoHeight?: boolean;
22
23
  isInBatches?: boolean;
23
24
  indexFieldBasePath?: string;
@@ -25,6 +26,7 @@ interface GenericRelatedModelListProps {
25
26
  LinkComponent?: React.ReactNode;
26
27
  paginationMode: 'server' | 'client';
27
28
  defaultFilter?: GridFilterModel;
29
+ queryParams?: string[];
28
30
  }
29
- export default function GenericRelatedModelList({ id, model, relatedModel, columnFields, creatableFields, hiddenFields, usuaria, minWidthFields, indexField, addExistingModel, label, onProcessRow, sumRows, customColumnOperations, isEditable, isAutoHeight, isInBatches, indexFieldBasePath, noCardWrapper, paginationMode, defaultFilter, }: GenericRelatedModelListProps): JSX.Element;
31
+ export default function GenericRelatedModelList({ id, model, relatedModel, columnFields, creatableFields, hiddenFields, usuaria, minWidthFields, indexField, addExistingModel, label, onProcessRow, sumRows, customColumnOperations, isEditable, hasBulkSelect, isAutoHeight, isInBatches, indexFieldBasePath, noCardWrapper, paginationMode, defaultFilter, queryParams, }: GenericRelatedModelListProps): JSX.Element;
30
32
  export {};
@@ -46,9 +46,9 @@ const APIWrapperContext_1 = require("../context/APIWrapperContext");
46
46
  const utils_1 = require("../utils");
47
47
  const api_1 = require("../api");
48
48
  const styles_1 = require("../styles");
49
- const ContentTable = ({ data, relatedModel, model, id, indexField, indexFieldBasePath, addExistingModel, isEditable, onEditModel, finalCustomColumnOperations, setVisibleRows, isAutoHeight, hideFooterPagination, onProcessRow, setData, sumRows, visibleRows, paginationMode = 'client', paginationModel, setPaginationModel, }) => (react_1.default.createElement(react_1.default.Fragment, null,
49
+ const ContentTable = ({ data, relatedModel, model, id, indexField, indexFieldBasePath, addExistingModel, isEditable, onEditModel, finalCustomColumnOperations, setVisibleRows, isAutoHeight, hideFooterPagination, onProcessRow, setData, sumRows, visibleRows, paginationMode = 'client', paginationModel, setPaginationModel, hasBulkSelect, }) => (react_1.default.createElement(react_1.default.Fragment, null,
50
50
  data.columns && (react_1.default.createElement(Box_1.default, { sx: styles_1.Layout.dataGridFixedHeight },
51
- react_1.default.createElement(DataGridBySchemaEditable_1.default, { data: data.data, columns: data.columns, schema: data.schema, model: relatedModel, modelParent: model, modelParentId: id, indexField: indexField, indexFieldBasePath: indexFieldBasePath, addExistingModel: addExistingModel, isEditable: isEditable, onEditModel: onEditModel, customColumnOperations: finalCustomColumnOperations, setVisibleRows: setVisibleRows, isAutoHeight: isAutoHeight, hideFooterPagination: hideFooterPagination, onProcessRow: onProcessRow, onDataChange: (newData) => {
51
+ react_1.default.createElement(DataGridBySchemaEditable_1.default, { data: data.data, columns: data.columns, schema: data.schema, model: relatedModel, modelParent: model, modelParentId: id, indexField: indexField, indexFieldBasePath: indexFieldBasePath, addExistingModel: addExistingModel, isEditable: isEditable, hasBulkSelect: hasBulkSelect, onEditModel: onEditModel, customColumnOperations: finalCustomColumnOperations, setVisibleRows: setVisibleRows, isAutoHeight: isAutoHeight, hideFooterPagination: hideFooterPagination, onProcessRow: onProcessRow, onDataChange: (newData) => {
52
52
  setData(Object.assign(Object.assign({}, data), { data: newData }));
53
53
  }, paginationModel: paginationMode === 'server' ? paginationModel : undefined, setPaginationModel: paginationMode === 'server' ? setPaginationModel : undefined, rowCount: paginationMode === 'client'
54
54
  ? undefined
@@ -56,7 +56,7 @@ const ContentTable = ({ data, relatedModel, model, id, indexField, indexFieldBas
56
56
  ? data.rowCount
57
57
  : 0 }))),
58
58
  react_1.default.createElement(DataTotals_1.default, { data: data.data, sumRows: sumRows, visibleRows: visibleRows })));
59
- function GenericRelatedModelList({ id, model, relatedModel, columnFields, creatableFields, hiddenFields, usuaria = null, minWidthFields, indexField, addExistingModel, label, onProcessRow, sumRows, customColumnOperations, isEditable = true, isAutoHeight = false, isInBatches = true, indexFieldBasePath, noCardWrapper = false, paginationMode = 'client', defaultFilter, }) {
59
+ function GenericRelatedModelList({ id, model, relatedModel, columnFields, creatableFields, hiddenFields, usuaria = null, minWidthFields, indexField, addExistingModel, label, onProcessRow, sumRows, customColumnOperations, isEditable = true, hasBulkSelect = false, isAutoHeight = false, isInBatches = true, indexFieldBasePath, noCardWrapper = false, paginationMode = 'client', defaultFilter, queryParams, }) {
60
60
  const [data, setData] = (0, react_1.useState)(false);
61
61
  const [visibleRows, setVisibleRows] = (0, react_1.useState)([]);
62
62
  const [hideFooterPagination, setHideFooterPagination] = (0, react_1.useState)(false);
@@ -86,6 +86,7 @@ function GenericRelatedModelList({ id, model, relatedModel, columnFields, creata
86
86
  hiddenFields,
87
87
  usuaria,
88
88
  isInBatches,
89
+ queryParams,
89
90
  serverEndPoint,
90
91
  };
91
92
  const loadedData = yield (0, api_1.getGenericModelList)(loadParams);
@@ -118,6 +119,7 @@ function GenericRelatedModelList({ id, model, relatedModel, columnFields, creata
118
119
  filter,
119
120
  sort,
120
121
  sumRows,
122
+ queryParams,
121
123
  serverEndPoint,
122
124
  };
123
125
  const paginatedData = yield (0, api_1.getGenericModelList)(loadPaginatedParams);
@@ -131,15 +133,15 @@ function GenericRelatedModelList({ id, model, relatedModel, columnFields, creata
131
133
  });
132
134
  (0, react_1.useEffect)(() => {
133
135
  loadObjectList();
134
- }, [model, defaultFilter]);
136
+ }, [model, defaultFilter, queryParams]);
135
137
  (0, react_1.useEffect)(() => {
136
138
  if (paginationMode === 'server') {
137
139
  loadObjectList();
138
140
  }
139
141
  }, [paginationModel]);
140
- 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, model: model, relatedModel: relatedModel, id: id, indexField: indexField || '', indexFieldBasePath: indexFieldBasePath, addExistingModel: addExistingModel, isEditable: isEditable, onEditModel: onEditModel, onDeleteRelatedModel: onDeleteRelatedModel, finalCustomColumnOperations: finalCustomColumnOperations, setVisibleRows: setVisibleRows, isAutoHeight: isAutoHeight, hideFooterPagination: hideFooterPagination, onProcessRow: onProcessRow, setData: setData, sumRows: sumRows, visibleRows: visibleRows, paginationMode: paginationMode, paginationModel: paginationModel, setPaginationModel: setPaginationModel })) : (react_1.default.createElement(Card_1.default, { sx: styles_1.Layout.formCard },
142
+ 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, model: model, relatedModel: relatedModel, id: id, indexField: indexField || '', indexFieldBasePath: indexFieldBasePath, addExistingModel: addExistingModel, isEditable: isEditable, hasBulkSelect: hasBulkSelect, onEditModel: onEditModel, onDeleteRelatedModel: onDeleteRelatedModel, finalCustomColumnOperations: finalCustomColumnOperations, setVisibleRows: setVisibleRows, isAutoHeight: isAutoHeight, hideFooterPagination: hideFooterPagination, onProcessRow: onProcessRow, setData: setData, sumRows: sumRows, visibleRows: visibleRows, paginationMode: paginationMode, paginationModel: paginationModel, setPaginationModel: setPaginationModel })) : (react_1.default.createElement(Card_1.default, { sx: styles_1.Layout.formCard },
141
143
  react_1.default.createElement(CardHeader_1.default, { title: label }),
142
144
  react_1.default.createElement(CardContent_1.default, null,
143
- react_1.default.createElement(ContentTable, { data: data, model: model, relatedModel: relatedModel, id: id, indexField: indexField || '', indexFieldBasePath: indexFieldBasePath, addExistingModel: addExistingModel, isEditable: isEditable, onEditModel: onEditModel, onDeleteRelatedModel: onDeleteRelatedModel, finalCustomColumnOperations: finalCustomColumnOperations, setVisibleRows: setVisibleRows, isAutoHeight: isAutoHeight, hideFooterPagination: hideFooterPagination, onProcessRow: onProcessRow, setData: setData, sumRows: sumRows, visibleRows: visibleRows, paginationMode: paginationMode, paginationModel: paginationModel, setPaginationModel: setPaginationModel }))))))));
145
+ react_1.default.createElement(ContentTable, { data: data, model: model, relatedModel: relatedModel, id: id, indexField: indexField || '', indexFieldBasePath: indexFieldBasePath, addExistingModel: addExistingModel, isEditable: isEditable, hasBulkSelect: hasBulkSelect, onEditModel: onEditModel, onDeleteRelatedModel: onDeleteRelatedModel, finalCustomColumnOperations: finalCustomColumnOperations, setVisibleRows: setVisibleRows, isAutoHeight: isAutoHeight, hideFooterPagination: hideFooterPagination, onProcessRow: onProcessRow, setData: setData, sumRows: sumRows, visibleRows: visibleRows, paginationMode: paginationMode, paginationModel: paginationModel, setPaginationModel: setPaginationModel }))))))));
144
146
  }
145
147
  exports.default = GenericRelatedModelList;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "drf-react-by-schema",
3
- "version": "0.8.7",
3
+ "version": "0.8.9",
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",