drf-react-by-schema 0.11.0 → 0.12.0

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.
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { Item, SchemaType, Id, GridEnrichedBySchemaColDef, PaginationModel } from '../utils';
2
+ import { Item, SchemaType, Id, GridEnrichedBySchemaColDef, PaginationModel, ActionType } from '../utils';
3
3
  import { SxProps } from '@mui/material';
4
4
  import { OnEditModelType } from '../context/APIWrapperContext';
5
5
  interface DataGridBySchemaEditableProps {
@@ -16,6 +16,7 @@ interface DataGridBySchemaEditableProps {
16
16
  addExistingModel?: string;
17
17
  indexFieldMinWidth?: number;
18
18
  indexFieldBasePath?: string;
19
+ indexFieldViewBasePath?: string;
19
20
  stateToLink?: object;
20
21
  minWidth?: number;
21
22
  modelParentId?: Id;
@@ -38,6 +39,8 @@ interface DataGridBySchemaEditableProps {
38
39
  hideFooterComponent?: boolean;
39
40
  hideToolbarComponent?: boolean;
40
41
  tableAutoHeight?: boolean;
42
+ actions?: Partial<ActionType>[];
43
+ optionsAC?: Record<string, Item[]>;
41
44
  }
42
45
  declare const DataGridBySchemaEditable: React.ForwardRefExoticComponent<DataGridBySchemaEditableProps & React.RefAttributes<unknown>>;
43
46
  export default DataGridBySchemaEditable;
@@ -52,6 +52,8 @@ const x_data_grid_1 = require("@mui/x-data-grid");
52
52
  const Box_1 = __importDefault(require("@mui/material/Box"));
53
53
  const CircularProgress_1 = __importDefault(require("@mui/material/CircularProgress"));
54
54
  const Edit_1 = __importDefault(require("@mui/icons-material/Edit"));
55
+ const Bolt_1 = __importDefault(require("@mui/icons-material/Bolt"));
56
+ const Visibility_1 = __importDefault(require("@mui/icons-material/Visibility"));
55
57
  const Clear_1 = __importDefault(require("@mui/icons-material/Clear"));
56
58
  const Check_1 = __importDefault(require("@mui/icons-material/Check"));
57
59
  const Undo_1 = __importDefault(require("@mui/icons-material/Undo"));
@@ -73,7 +75,7 @@ const ConfirmDialog_1 = require("./DataGridBySchemaEditable/ConfirmDialog");
73
75
  const APIWrapperContext_1 = require("../context/APIWrapperContext");
74
76
  const stringMask = require('string-mask');
75
77
  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, hasBulkSelect = false, sx = { mr: 2 }, isAutoHeight = false, defaultValues = {}, hideFooterPagination = false, setVisibleRows, paginationModel = undefined, setPaginationModel = undefined, hideFooterComponent, hideToolbarComponent, tableAutoHeight } = _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", "hideFooterComponent", "hideToolbarComponent", "tableAutoHeight"]);
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, 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", "modelParent", "modelParentId", "customColumnOperations", "customLinkDestination", "LinkComponent", "onProcessRow", "onDataChange", "onEditModel", "isEditable", "hasBulkSelect", "sx", "isAutoHeight", "defaultValues", "hideFooterPagination", "setVisibleRows", "paginationModel", "setPaginationModel", "hideFooterComponent", "hideToolbarComponent", "tableAutoHeight", "actions", "optionsAC"]);
77
79
  const { serverEndPoint } = (0, DRFReactBySchemaContext_1.useDRFReactBySchema)();
78
80
  const apiContext = (0, APIWrapperContext_1.useAPIWrapper)();
79
81
  const initialSnackBar = {
@@ -98,6 +100,10 @@ const DataGridBySchemaEditable = (0, react_1.forwardRef)((_a, ref) => {
98
100
  const updateOptionsAC = () => __awaiter(void 0, void 0, void 0, function* () {
99
101
  optionsAC.current = {};
100
102
  for (const col of columns) {
103
+ if (optionsACExternal && optionsACExternal[col.field]) {
104
+ optionsAC.current[col.field] = optionsACExternal[col.field];
105
+ continue;
106
+ }
101
107
  if (!schema[col.field]) {
102
108
  continue;
103
109
  }
@@ -149,10 +155,38 @@ const DataGridBySchemaEditable = (0, react_1.forwardRef)((_a, ref) => {
149
155
  react_1.default.createElement(x_data_grid_1.GridActionsCellItem, { key: `cancel_${id}`, icon: react_1.default.createElement(Undo_1.default, null), label: "Cancelar", onClick: handleCancelClick(id), color: "inherit", onResize: () => null, onResizeCapture: () => null, showInMenu: false }),
150
156
  ];
151
157
  }
152
- return [
153
- react_1.default.createElement(x_data_grid_1.GridActionsCellItem, { key: `edit_${id}`, icon: react_1.default.createElement(Edit_1.default, null), label: "Edit", onClick: handleEditClick(id), color: "inherit", onResize: () => null, onResizeCapture: () => null, showInMenu: false }),
154
- react_1.default.createElement(x_data_grid_1.GridActionsCellItem, { key: `remove_${id}`, icon: react_1.default.createElement(Clear_1.default, null), label: "Delete", onClick: handleDeleteClick(id), color: "error", onResize: () => null, onResizeCapture: () => null, showInMenu: false }),
155
- ];
158
+ const actionItems = [];
159
+ actions.map((action) => {
160
+ switch (action) {
161
+ case 'editInline':
162
+ actionItems.push(react_1.default.createElement(x_data_grid_1.GridActionsCellItem, { key: `editInline_${id}`, icon: actions.includes('edit') ? (react_1.default.createElement(Bolt_1.default, null)) : (react_1.default.createElement(Edit_1.default, null)), label: "Edit inline", onClick: handleEditInlineClick(id), color: "inherit", onResize: () => null, onResizeCapture: () => null, showInMenu: false }));
163
+ break;
164
+ case 'remove':
165
+ actionItems.push(react_1.default.createElement(x_data_grid_1.GridActionsCellItem, { key: `remove_${id}`, icon: react_1.default.createElement(Clear_1.default, null), label: "Delete", onClick: handleDeleteClick(id), color: "error", onResize: () => null, onResizeCapture: () => null, showInMenu: false }));
166
+ break;
167
+ case 'edit':
168
+ if (!LinkComponent) {
169
+ console.log('you must pass LinkComponent prop to navigate externally');
170
+ break;
171
+ }
172
+ actionItems.push(react_1.default.createElement(LinkComponent, { key: `edit_${id}`, to: `${indexFieldBasePath}${id}`, state: stateToLink },
173
+ react_1.default.createElement(x_data_grid_1.GridActionsCellItem, { icon: react_1.default.createElement(Edit_1.default, null), label: "Edit", color: "inherit", onResize: () => null, onResizeCapture: () => null, showInMenu: false })));
174
+ break;
175
+ case 'view':
176
+ if (!LinkComponent) {
177
+ console.log('you must pass LinkComponent prop to navigate externally');
178
+ break;
179
+ }
180
+ if (!indexFieldViewBasePath) {
181
+ console.log('For view action to work, you must supply indexFieldViewBasePath prop!');
182
+ break;
183
+ }
184
+ actionItems.push(react_1.default.createElement(LinkComponent, { key: `view_${id}`, to: `${indexFieldViewBasePath}${id}`, state: stateToLink },
185
+ react_1.default.createElement(x_data_grid_1.GridActionsCellItem, { icon: react_1.default.createElement(Visibility_1.default, null), label: "View", color: "inherit", onResize: () => null, onResizeCapture: () => null, showInMenu: false })));
186
+ break;
187
+ }
188
+ });
189
+ return actionItems;
156
190
  },
157
191
  });
158
192
  }
@@ -300,11 +334,14 @@ const DataGridBySchemaEditable = (0, react_1.forwardRef)((_a, ref) => {
300
334
  if (col.field === indexField) {
301
335
  column.flex = 1;
302
336
  column.renderCell = (params) => {
303
- if (LinkComponent && customLinkDestination) {
337
+ if (LinkComponent &&
338
+ customLinkDestination &&
339
+ !actions.includes('edit')) {
304
340
  return (react_1.default.createElement(LinkComponent, { to: `${customLinkDestination(params)}`, state: stateToLink }, params.formattedValue));
305
341
  }
306
342
  if (!LinkComponent ||
307
343
  !indexFieldBasePath ||
344
+ actions.includes('edit') ||
308
345
  (['field', 'nested object'].includes(schema[col.field].type) &&
309
346
  (!params.row[col.field] || !params.row[col.field].id))) {
310
347
  return react_1.default.createElement(react_1.default.Fragment, null, params.formattedValue);
@@ -359,7 +396,7 @@ const DataGridBySchemaEditable = (0, react_1.forwardRef)((_a, ref) => {
359
396
  const handleRowEditStop = (params, event) => {
360
397
  event.defaultMuiPrevented = true;
361
398
  };
362
- const handleEditClick = (id) => () => {
399
+ const handleEditInlineClick = (id) => () => {
363
400
  setRowModesModel(Object.assign(Object.assign({}, rowModesModel), { [id]: { mode: x_data_grid_1.GridRowModes.Edit } }));
364
401
  };
365
402
  const handleSaveClick = (id) => () => {
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { GridFilterModel } from '@mui/x-data-grid';
3
- import { GridEnrichedBySchemaColDef } from '../utils';
3
+ import { GridEnrichedBySchemaColDef, ActionType, Item } from '../utils';
4
4
  import { SumRowsType } from '../api';
5
5
  interface GenericModelListProps {
6
6
  model: string;
@@ -11,6 +11,7 @@ interface GenericModelListProps {
11
11
  minWidthFields?: Record<string, number>;
12
12
  indexField: string;
13
13
  indexFieldBasePath: string;
14
+ indexFieldViewBasePath?: string;
14
15
  addExistingModel?: string;
15
16
  onProcessRow?: (p: any) => void;
16
17
  customColumnOperations?: (column: GridEnrichedBySchemaColDef) => GridEnrichedBySchemaColDef;
@@ -28,6 +29,9 @@ interface GenericModelListProps {
28
29
  hideFooterComponent?: boolean;
29
30
  hideToolbarComponent?: boolean;
30
31
  tableAutoHeight?: boolean;
32
+ actions?: Partial<ActionType>[];
33
+ optionsAC?: Record<string, Item[]>;
34
+ disableScreenLoading?: boolean;
31
35
  }
32
- declare const GenericModelList: ({ model, columnFields, hiddenFields, creatableFields, disabledFields, minWidthFields, indexField, indexFieldBasePath, addExistingModel, onProcessRow, customColumnOperations, customLinkDestination, isEditable, hasBulkSelect, sumRows, isAutoHeight, forceReload, LinkComponent, hasHeader, paginationMode, defaultFilter, queryParams, hideFooterComponent, hideToolbarComponent, tableAutoHeight, }: GenericModelListProps) => JSX.Element;
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;
33
37
  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 = ({ model, columnFields, hiddenFields = [], creatableFields, disabledFields, minWidthFields, indexField, indexFieldBasePath, addExistingModel, onProcessRow, customColumnOperations, customLinkDestination, isEditable, hasBulkSelect = false, sumRows, isAutoHeight = true, forceReload = false, LinkComponent = null, hasHeader = false, paginationMode = 'client', defaultFilter, queryParams, hideFooterComponent, hideToolbarComponent, tableAutoHeight, }) => {
51
+ 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, }) => {
52
52
  const { serverEndPoint, isInBatches, firstBatchLength } = (0, DRFReactBySchemaContext_1.useDRFReactBySchema)();
53
53
  const { onEditModel, handleLoading } = (0, APIWrapperContext_1.useAPIWrapper)();
54
54
  const [data, setData] = (0, react_1.useState)(false);
@@ -67,7 +67,9 @@ const GenericModelList = ({ model, columnFields, hiddenFields = [], creatableFie
67
67
  return column;
68
68
  };
69
69
  const loadObjectList = () => __awaiter(void 0, void 0, void 0, function* () {
70
- handleLoading(true);
70
+ if (!disableScreenLoading) {
71
+ handleLoading(true);
72
+ }
71
73
  switch (paginationMode) {
72
74
  case 'client':
73
75
  const loadParams = {
@@ -146,7 +148,7 @@ const GenericModelList = ({ model, columnFields, hiddenFields = [], creatableFie
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: tableAutoHeight ? {} : 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, addExistingModel: addExistingModel, isEditable: isEditable, hasBulkSelect: hasBulkSelect, onEditModel: onEditModel, isAutoHeight: isAutoHeight, tableAutoHeight: tableAutoHeight, customColumnOperations: finalCustomColumnOperations, setVisibleRows: setVisibleRows, hideFooterPagination: hideFooterPagination, hideFooterComponent: hideFooterComponent, hideToolbarComponent: hideToolbarComponent, customLinkDestination: customLinkDestination, onProcessRow: onProcessRow, 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, 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) => {
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
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { GridFilterModel } from '@mui/x-data-grid';
3
- import { GridEnrichedBySchemaColDef, Id, Item } from '../utils';
3
+ import { ActionType, GridEnrichedBySchemaColDef, Id, Item } from '../utils';
4
4
  import { SumRowsType } from '../api';
5
5
  interface GenericRelatedModelListProps {
6
6
  model: string;
@@ -14,6 +14,7 @@ interface GenericRelatedModelListProps {
14
14
  minWidthFields?: Record<string, number>;
15
15
  indexField?: string;
16
16
  indexFieldBasePath?: string;
17
+ indexFieldViewBasePath?: string;
17
18
  addExistingModel?: string;
18
19
  label: string;
19
20
  onProcessRow?: (p: any) => void;
@@ -30,6 +31,8 @@ interface GenericRelatedModelListProps {
30
31
  hideFooterComponent?: boolean;
31
32
  hideToolbarComponent?: boolean;
32
33
  tableAutoHeight?: boolean;
34
+ actions?: Partial<ActionType>[];
35
+ optionsAC?: Record<string, Item[]>;
33
36
  }
34
- export default function GenericRelatedModelList({ model, id, relatedModel, columnFields, hiddenFields, creatableFields, disabledFields, usuaria, minWidthFields, indexField, indexFieldBasePath, addExistingModel, label, onProcessRow, customColumnOperations, isEditable, hasBulkSelect, sumRows, isAutoHeight, isInBatches, noCardWrapper, paginationMode, defaultFilter, queryParams, hideFooterComponent, hideToolbarComponent, tableAutoHeight, }: GenericRelatedModelListProps): JSX.Element;
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;
35
38
  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, hideFooterComponent, hideToolbarComponent, onProcessRow, setData, sumRows, visibleRows, paginationMode = 'client', paginationModel, setPaginationModel, hasBulkSelect, tableAutoHeight, }) => (react_1.default.createElement(react_1.default.Fragment, null,
49
+ const ContentTable = ({ data, relatedModel, model, 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,
50
50
  data.columns && (react_1.default.createElement(Box_1.default, { sx: tableAutoHeight ? {} : 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, hasBulkSelect: hasBulkSelect, onEditModel: onEditModel, isAutoHeight: isAutoHeight, tableAutoHeight: tableAutoHeight, customColumnOperations: finalCustomColumnOperations, setVisibleRows: setVisibleRows, hideFooterPagination: hideFooterPagination, hideFooterComponent: hideFooterComponent, hideToolbarComponent: hideToolbarComponent, 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, 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) => {
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({ model, id, relatedModel, columnFields, hiddenFields, creatableFields, disabledFields, usuaria = null, minWidthFields, indexField, indexFieldBasePath, addExistingModel, label, onProcessRow, customColumnOperations, isEditable = true, hasBulkSelect = false, sumRows, isAutoHeight = false, isInBatches = true, noCardWrapper = false, paginationMode = 'client', defaultFilter, queryParams, hideFooterComponent, hideToolbarComponent, tableAutoHeight, }) {
59
+ 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, }) {
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);
@@ -142,9 +142,9 @@ function GenericRelatedModelList({ model, id, relatedModel, columnFields, hidden
142
142
  loadObjectList();
143
143
  }
144
144
  }, [paginationModel]);
145
- 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, tableAutoHeight: tableAutoHeight, hideFooterPagination: hideFooterPagination, hideFooterComponent: hideFooterComponent, hideToolbarComponent: hideToolbarComponent, 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 },
145
+ 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, 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 },
146
146
  react_1.default.createElement(CardHeader_1.default, { title: label }),
147
147
  react_1.default.createElement(CardContent_1.default, null,
148
- 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, tableAutoHeight: tableAutoHeight, hideFooterPagination: hideFooterPagination, hideFooterComponent: hideFooterComponent, hideToolbarComponent: hideToolbarComponent, onProcessRow: onProcessRow, setData: setData, sumRows: sumRows, visibleRows: visibleRows, paginationMode: paginationMode, paginationModel: paginationModel, setPaginationModel: setPaginationModel }))))))));
148
+ react_1.default.createElement(ContentTable, { data: data, model: model, relatedModel: relatedModel, 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 }))))))));
149
149
  }
150
150
  exports.default = GenericRelatedModelList;
package/dist/utils.d.ts CHANGED
@@ -156,4 +156,5 @@ export declare function buildDateFormatBySchema(dateViews: string[] | null | und
156
156
  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
+ export type ActionType = 'editInline' | 'remove' | 'edit' | 'view';
159
160
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "drf-react-by-schema",
3
- "version": "0.11.0",
3
+ "version": "0.12.0",
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",