drf-react-by-schema 0.3.0 → 0.4.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.
Files changed (88) hide show
  1. package/dist/api.d.ts +83 -0
  2. package/dist/api.js +613 -0
  3. package/dist/components/DataGridBySchemaEditable/BooleanInputCell.d.ts +24 -0
  4. package/dist/components/DataGridBySchemaEditable/BooleanInputCell.js +42 -0
  5. package/dist/components/DataGridBySchemaEditable/ConfirmDialog.d.ts +8 -0
  6. package/dist/components/DataGridBySchemaEditable/ConfirmDialog.js +21 -0
  7. package/dist/components/DataGridBySchemaEditable/CustomToolbar.d.ts +17 -0
  8. package/dist/components/DataGridBySchemaEditable/CustomToolbar.js +77 -0
  9. package/dist/components/DataGridBySchemaEditable/FooterToolbar.d.ts +17 -0
  10. package/dist/components/DataGridBySchemaEditable/FooterToolbar.js +41 -0
  11. package/dist/components/DataGridBySchemaEditable/GridDecimalInput.d.ts +9 -0
  12. package/dist/components/DataGridBySchemaEditable/GridDecimalInput.js +32 -0
  13. package/dist/components/DataGridBySchemaEditable/GridPatternInput.d.ts +9 -0
  14. package/dist/components/DataGridBySchemaEditable/GridPatternInput.js +30 -0
  15. package/dist/components/DataGridBySchemaEditable/InputInterval.d.ts +4 -0
  16. package/dist/components/DataGridBySchemaEditable/InputInterval.js +105 -0
  17. package/dist/components/DataGridBySchemaEditable/SelectEditInputCell.d.ts +33 -0
  18. package/dist/components/DataGridBySchemaEditable/SelectEditInputCell.js +140 -0
  19. package/dist/components/DataGridBySchemaEditable/utils.d.ts +15 -0
  20. package/{src/components/DataGridBySchemaEditable/utils.ts → dist/components/DataGridBySchemaEditable/utils.js} +32 -50
  21. package/dist/components/DataGridBySchemaEditable.d.ts +34 -0
  22. package/dist/components/DataGridBySchemaEditable.js +565 -0
  23. package/dist/components/DataTotals.d.ts +15 -0
  24. package/dist/components/DataTotals.js +23 -0
  25. package/dist/components/DialogActions.d.ts +10 -0
  26. package/dist/components/DialogActions.js +17 -0
  27. package/dist/components/DialogJSONSchemaForm.d.ts +13 -0
  28. package/dist/components/DialogJSONSchemaForm.js +20 -0
  29. package/dist/components/FormButtons.d.ts +21 -0
  30. package/dist/components/FormButtons.js +43 -0
  31. package/dist/components/GenericModelList.d.ts +19 -0
  32. package/dist/components/GenericModelList.js +113 -0
  33. package/dist/components/GenericRelatedModelList.d.ts +25 -0
  34. package/dist/components/GenericRelatedModelList.js +111 -0
  35. package/dist/components/TextFieldBySchema.js +39 -0
  36. package/dist/context/APIWrapper.d.ts +12 -0
  37. package/dist/context/APIWrapper.js +341 -0
  38. package/{src/context/APIWrapperContext.tsx → dist/context/APIWrapperContext.d.ts} +22 -31
  39. package/dist/context/APIWrapperContext.js +15 -0
  40. package/{src/context/DRFReactBySchemaContext.tsx → dist/context/DRFReactBySchemaContext.d.ts} +4 -17
  41. package/dist/context/DRFReactBySchemaContext.js +19 -0
  42. package/dist/context/DRFReactBySchemaProvider.d.ts +13 -0
  43. package/dist/context/DRFReactBySchemaProvider.js +53 -0
  44. package/dist/context/Form.d.ts +21 -0
  45. package/dist/context/Form.js +99 -0
  46. package/dist/context/FormContext.d.ts +72 -0
  47. package/dist/context/FormContext.js +15 -0
  48. package/dist/context/Overlays.d.ts +4 -0
  49. package/dist/context/Overlays.js +87 -0
  50. package/dist/index.d.ts +12 -0
  51. package/dist/index.js +3 -1
  52. package/{src/styles/index.ts → dist/styles/index.d.ts} +0 -1
  53. package/dist/styles/index.js +28 -0
  54. package/dist/styles/layout.d.ts +107 -0
  55. package/dist/styles/layout.js +56 -0
  56. package/dist/styles/theme.d.ts +21 -0
  57. package/dist/styles/theme.js +139 -0
  58. package/dist/utils.d.ts +74 -0
  59. package/dist/utils.js +268 -0
  60. package/package.json +11 -2
  61. package/.eslintrc.js +0 -14
  62. package/.gitlab-ci.yml +0 -14
  63. package/src/api.ts +0 -727
  64. package/src/components/DataGridBySchemaEditable/ConfirmDialog.tsx +0 -41
  65. package/src/components/DataGridBySchemaEditable/CustomToolbar.tsx +0 -93
  66. package/src/components/DataGridBySchemaEditable/FooterToolbar.tsx +0 -77
  67. package/src/components/DataGridBySchemaEditable/GridDecimalInput.tsx +0 -41
  68. package/src/components/DataGridBySchemaEditable/GridPatternInput.tsx +0 -37
  69. package/src/components/DataGridBySchemaEditable/InputInterval.tsx +0 -194
  70. package/src/components/DataGridBySchemaEditable/SelectEditInputCell.tsx +0 -154
  71. package/src/components/DataGridBySchemaEditable.md +0 -50
  72. package/src/components/DataGridBySchemaEditable.tsx +0 -758
  73. package/src/components/DataTotals.tsx +0 -57
  74. package/src/components/DialogActions.tsx +0 -33
  75. package/src/components/DialogJSONSchemaForm.tsx +0 -40
  76. package/src/components/GenericModelList.tsx +0 -165
  77. package/src/components/GenericRelatedModelList.tsx +0 -168
  78. package/src/context/APIWrapper.tsx +0 -447
  79. package/src/context/DRFReactBySchemaProvider.md +0 -57
  80. package/src/context/DRFReactBySchemaProvider.tsx +0 -72
  81. package/src/context/Overlays.tsx +0 -94
  82. package/src/index.ts +0 -77
  83. package/src/styles/layout.ts +0 -104
  84. package/src/styles/theme.ts +0 -190
  85. package/src/utils.ts +0 -327
  86. package/styleguide.config.js +0 -13
  87. package/tsconfig.json +0 -104
  88. package/webpack.config.js +0 -24
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ const Button_1 = __importDefault(require("@mui/material/Button"));
8
+ const validator_ajv8_1 = __importDefault(require("@rjsf/validator-ajv8"));
9
+ const mui_1 = __importDefault(require("@rjsf/mui"));
10
+ ;
11
+ function DialogJSONSchemaForm({ jsonSchemaFormRef, schema, uiSchema, formData, onSubmit }) {
12
+ return (react_1.default.createElement(mui_1.default
13
+ // @ts-ignore
14
+ , {
15
+ // @ts-ignore
16
+ ref: jsonSchemaFormRef, schema: schema, uiSchema: uiSchema, validator: validator_ajv8_1.default, formData: formData, onSubmit: onSubmit },
17
+ react_1.default.createElement(Button_1.default, { type: "submit", sx: { display: 'none' } }, "Salvar")));
18
+ }
19
+ exports.default = DialogJSONSchemaForm;
20
+ ;
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import { Id } from '../utils';
3
+ interface FormButtonsProps {
4
+ model: string;
5
+ objId: Id;
6
+ title: string;
7
+ formDisabled: boolean;
8
+ cancelBtn?: (e: React.BaseSyntheticEvent) => any;
9
+ cancelBtnLabel?: string;
10
+ deleteBtnLabel?: string;
11
+ saveAndCreateNewBtnLabel?: string;
12
+ saveAndContinueBtnLabel?: string;
13
+ saveBtnLabel?: string;
14
+ onSuccess?: (e: React.BaseSyntheticEvent) => any;
15
+ bottom?: boolean;
16
+ borderBottom?: boolean;
17
+ saveAndContinue?: boolean;
18
+ sx?: any;
19
+ }
20
+ export default function FormButtons({ model, objId, title, formDisabled, cancelBtn, cancelBtnLabel, deleteBtnLabel, saveAndCreateNewBtnLabel, saveAndContinueBtnLabel, saveBtnLabel, onSuccess, bottom, borderBottom, saveAndContinue, sx }: FormButtonsProps): JSX.Element;
21
+ export {};
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ const Box_1 = __importDefault(require("@mui/material/Box"));
8
+ const Button_1 = __importDefault(require("@mui/material/Button"));
9
+ // import { SxProps } from '@mui/material';
10
+ const Typography_1 = __importDefault(require("@mui/material/Typography"));
11
+ const styles_1 = require("../styles");
12
+ const utils_1 = require("../utils");
13
+ const APIWrapperContext_1 = require("../context/APIWrapperContext");
14
+ function FormButtons({ model, objId, title, formDisabled, cancelBtn, cancelBtnLabel = 'Cancel', deleteBtnLabel = 'Delete', saveAndCreateNewBtnLabel = 'Save and Create New', saveAndContinueBtnLabel = 'Save and Continue', saveBtnLabel = 'Save', onSuccess, bottom = false, borderBottom = true, saveAndContinue = true, sx = {} }) {
15
+ const apiContext = react_1.default.useContext(APIWrapperContext_1.APIWrapperContext);
16
+ if (!apiContext) {
17
+ console.error('Error on drf-react-by-schema: there is no serverEndPoint configuration!');
18
+ return (react_1.default.createElement(react_1.default.Fragment, null));
19
+ }
20
+ const onDeleteModel = apiContext.onDeleteModel;
21
+ if (bottom && borderBottom && objId && objId !== 'novo' && sx !== null) {
22
+ sx.mb = 5;
23
+ sx.pb = 2;
24
+ sx.borderBottom = 'solid 1px #aaa';
25
+ }
26
+ return (react_1.default.createElement(Box_1.default, { sx: Object.assign(Object.assign({}, styles_1.Layout.flexRowGrow), sx) },
27
+ bottom
28
+ ? react_1.default.createElement(Button_1.default, { variant: "contained", type: "button", color: "error", size: "small", disabled: (0, utils_1.isTmpId)(objId) || !onDeleteModel, onClick: () => {
29
+ onDeleteModel(model, objId, onSuccess);
30
+ } }, deleteBtnLabel)
31
+ : title
32
+ ? react_1.default.createElement(Typography_1.default, { variant: "h5" }, title)
33
+ : react_1.default.createElement(Box_1.default, null),
34
+ react_1.default.createElement(Box_1.default, { sx: styles_1.Layout.flexRow },
35
+ cancelBtn &&
36
+ react_1.default.createElement(Button_1.default, { variant: "contained", color: "primary", size: "small", sx: { ml: 1 }, onClick: cancelBtn }, cancelBtnLabel),
37
+ saveAndContinue &&
38
+ react_1.default.createElement(react_1.default.Fragment, null,
39
+ react_1.default.createElement(Button_1.default, { variant: "contained", name: "createNewOnSave", type: "submit", color: "secondary", size: "small", sx: { ml: 1 }, disabled: formDisabled }, saveAndCreateNewBtnLabel),
40
+ react_1.default.createElement(Button_1.default, { variant: "contained", name: "stayOnSave", type: "submit", color: "secondary", size: "small", sx: { ml: 1 }, disabled: formDisabled }, saveAndContinueBtnLabel)),
41
+ react_1.default.createElement(Button_1.default, { variant: "contained", name: "exitOnSave", type: "submit", color: "primary", size: "small", sx: { ml: 1 }, disabled: formDisabled }, saveBtnLabel))));
42
+ }
43
+ exports.default = FormButtons;
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import { SumRowsType } from './DataTotals';
3
+ import { GridEnrichedBySchemaColDef } from '../utils';
4
+ interface GenericModelListProps {
5
+ columnFields: string[];
6
+ hiddenFields?: string[];
7
+ minWidthFields?: Record<string, number>;
8
+ indexFieldBasePath: string;
9
+ indexField: string;
10
+ customColumnOperations?: (column: GridEnrichedBySchemaColDef) => GridEnrichedBySchemaColDef;
11
+ customLinkDestination?: (p: any) => string;
12
+ sumRows?: SumRowsType;
13
+ isAutoHeight?: boolean;
14
+ model: string;
15
+ forceReload: boolean;
16
+ LinkComponent?: React.ReactNode;
17
+ }
18
+ declare const GenericModelList: ({ columnFields, hiddenFields, minWidthFields, indexFieldBasePath, indexField, customColumnOperations, customLinkDestination, sumRows, isAutoHeight, model, forceReload, LinkComponent }: GenericModelListProps) => JSX.Element;
19
+ export default GenericModelList;
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ const react_1 = __importStar(require("react"));
39
+ const Box_1 = __importDefault(require("@mui/material/Box"));
40
+ const DataGridBySchemaEditable_1 = __importDefault(require("./DataGridBySchemaEditable"));
41
+ const DataTotals_1 = __importDefault(require("./DataTotals"));
42
+ const styles_1 = require("../styles");
43
+ const api_1 = require("../api");
44
+ const DRFReactBySchemaContext_1 = require("../context/DRFReactBySchemaContext");
45
+ const APIWrapperContext_1 = require("../context/APIWrapperContext");
46
+ const GenericModelList = ({ columnFields, hiddenFields = [], minWidthFields, indexFieldBasePath, indexField, customColumnOperations, customLinkDestination, sumRows, isAutoHeight = true, model, forceReload = false, LinkComponent = null }) => {
47
+ const context = react_1.default.useContext(DRFReactBySchemaContext_1.DRFReactBySchemaContext);
48
+ const apiContext = react_1.default.useContext(APIWrapperContext_1.APIWrapperContext);
49
+ if (!context.serverEndPoint || !apiContext) {
50
+ console.error('Error: There is no endpoint defined in DRFReactBySchemaProvider!');
51
+ return (react_1.default.createElement(react_1.default.Fragment, null));
52
+ }
53
+ const { serverEndPoint, isInBatches, firstBatchLength } = context;
54
+ const { handleLoading } = apiContext;
55
+ ;
56
+ const [data, setData] = (0, react_1.useState)(false);
57
+ const [visibleRows, setVisibleRows] = (0, react_1.useState)([]);
58
+ const [hideFooterPagination, setHideFooterPagination] = (0, react_1.useState)(false);
59
+ const finalCustomColumnOperations = (column) => {
60
+ if (minWidthFields) {
61
+ if (Object.prototype.hasOwnProperty.call(minWidthFields, column.field)) {
62
+ column.minWidth = minWidthFields[column.field];
63
+ }
64
+ }
65
+ if (customColumnOperations) {
66
+ return customColumnOperations(column);
67
+ }
68
+ return column;
69
+ };
70
+ const loadObjectList = () => __awaiter(void 0, void 0, void 0, function* () {
71
+ const loadParams = {
72
+ model,
73
+ serverEndPoint,
74
+ columnFields,
75
+ hiddenFields,
76
+ isInBatches
77
+ };
78
+ handleLoading(true);
79
+ const loadedData = yield (0, api_1.getGenericModelList)(loadParams);
80
+ if (loadedData && typeof loadedData !== 'boolean') {
81
+ setData(loadedData);
82
+ handleLoading(false);
83
+ if (isInBatches && loadedData.data.length === firstBatchLength) {
84
+ setHideFooterPagination(true);
85
+ (0, api_1.getGenericModelList)(Object.assign(Object.assign({}, loadParams), { loadedSchema: loadedData.schema })).then(lastBatchData => {
86
+ if (lastBatchData && typeof lastBatchData !== 'boolean') {
87
+ setData(Object.assign(Object.assign({}, loadedData), { data: [
88
+ ...loadedData.data,
89
+ ...lastBatchData.data
90
+ ] }));
91
+ }
92
+ setHideFooterPagination(false);
93
+ });
94
+ }
95
+ return;
96
+ }
97
+ console.log('error retrieving data!');
98
+ });
99
+ if (forceReload) {
100
+ loadObjectList();
101
+ }
102
+ (0, react_1.useEffect)(() => {
103
+ loadObjectList();
104
+ }, []);
105
+ return (react_1.default.createElement(react_1.default.Fragment, null, typeof data !== 'boolean' && data.columns &&
106
+ react_1.default.createElement(react_1.default.Fragment, null,
107
+ react_1.default.createElement(Box_1.default, { sx: styles_1.Layout.dataGridWithTabs },
108
+ 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 => {
109
+ setData(Object.assign(Object.assign({}, data), { data: newData }));
110
+ }, LinkComponent: LinkComponent })),
111
+ react_1.default.createElement(DataTotals_1.default, { data: data.data, sumRows: sumRows, visibleRows: visibleRows }))));
112
+ };
113
+ exports.default = GenericModelList;
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import { GridEnrichedBySchemaColDef, Id, Item } from '../utils';
3
+ import { SumRowsType } from './DataTotals';
4
+ interface GenericRelatedModelListProps {
5
+ model: string;
6
+ id: Id;
7
+ relatedModel: string;
8
+ columnFields: string[];
9
+ creatableFields: string[];
10
+ hiddenFields: string[];
11
+ usuaria?: Item | null;
12
+ minWidthFields?: Record<string, number>;
13
+ indexField?: string;
14
+ addExistingModel?: string;
15
+ onProcessRow?: (p: any) => void;
16
+ sumRows?: SumRowsType;
17
+ customColumnOperations?: (column: GridEnrichedBySchemaColDef) => GridEnrichedBySchemaColDef;
18
+ isEditable?: boolean;
19
+ isAutoHeight?: boolean;
20
+ isInBatches?: boolean;
21
+ indexFieldBasePath?: string;
22
+ LinkComponent?: React.ReactNode;
23
+ }
24
+ export default function GenericRelatedModelList({ model, id, relatedModel, columnFields, creatableFields, hiddenFields, usuaria, minWidthFields, indexField, addExistingModel, onProcessRow, sumRows, customColumnOperations, isEditable, isAutoHeight, indexFieldBasePath, LinkComponent }: GenericRelatedModelListProps): JSX.Element;
25
+ export {};
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ const react_1 = __importStar(require("react"));
39
+ const Box_1 = __importDefault(require("@mui/material/Box"));
40
+ const DataGridBySchemaEditable_1 = __importDefault(require("./DataGridBySchemaEditable"));
41
+ const DataTotals_1 = __importDefault(require("./DataTotals"));
42
+ const DRFReactBySchemaContext_1 = require("../context/DRFReactBySchemaContext");
43
+ const APIWrapperContext_1 = require("../context/APIWrapperContext");
44
+ const api_1 = require("../api");
45
+ const styles_1 = require("../styles");
46
+ ;
47
+ function GenericRelatedModelList({ model, id, relatedModel, columnFields, creatableFields, hiddenFields, usuaria, minWidthFields, indexField = '', addExistingModel = '', onProcessRow, sumRows, customColumnOperations, isEditable = true, isAutoHeight = false, indexFieldBasePath, LinkComponent }) {
48
+ const context = react_1.default.useContext(DRFReactBySchemaContext_1.DRFReactBySchemaContext);
49
+ const apiContext = react_1.default.useContext(APIWrapperContext_1.APIWrapperContext);
50
+ if (!context.serverEndPoint || !apiContext) {
51
+ console.error('Error: There is no endpoint defined in DRFReactBySchemaProvider!');
52
+ return (react_1.default.createElement(react_1.default.Fragment, null));
53
+ }
54
+ const { serverEndPoint, isInBatches, firstBatchLength, } = context;
55
+ const { onEditRelatedModelSave, onDeleteRelatedModel } = apiContext;
56
+ const [data, setData] = (0, react_1.useState)(false);
57
+ const [visibleRows, setVisibleRows] = (0, react_1.useState)([]);
58
+ const [hideFooterPagination, setHideFooterPagination] = (0, react_1.useState)(false);
59
+ const finalCustomColumnOperations = (column) => {
60
+ if (minWidthFields) {
61
+ if (Object.prototype.hasOwnProperty.call(minWidthFields, column.field)) {
62
+ column.minWidth = minWidthFields[column.field];
63
+ }
64
+ }
65
+ if (customColumnOperations) {
66
+ return customColumnOperations(column);
67
+ }
68
+ return column;
69
+ };
70
+ const loadObjectList = () => __awaiter(this, void 0, void 0, function* () {
71
+ const loadParams = {
72
+ model,
73
+ serverEndPoint,
74
+ id,
75
+ relatedModel,
76
+ columnFields,
77
+ hiddenFields,
78
+ creatableFields,
79
+ isInBatches
80
+ };
81
+ const loadedData = yield (0, api_1.getGenericModelList)(loadParams);
82
+ if (loadedData) {
83
+ setData(loadedData);
84
+ if (isInBatches && loadedData.data.length === firstBatchLength) {
85
+ setHideFooterPagination(true);
86
+ (0, api_1.getGenericModelList)(Object.assign(Object.assign({}, loadParams), { loadedSchema: loadedData.schema })).then(lastBatchData => {
87
+ if (lastBatchData) {
88
+ setData(Object.assign(Object.assign({}, loadedData), { data: [
89
+ ...loadedData.data,
90
+ ...lastBatchData.data
91
+ ] }));
92
+ }
93
+ setHideFooterPagination(false);
94
+ });
95
+ }
96
+ return;
97
+ }
98
+ console.log('error retrieving data!');
99
+ });
100
+ (0, react_1.useEffect)(() => {
101
+ loadObjectList();
102
+ }, []);
103
+ return (react_1.default.createElement(react_1.default.Fragment, null, typeof data !== 'boolean' && data.columns &&
104
+ react_1.default.createElement(react_1.default.Fragment, null,
105
+ react_1.default.createElement(Box_1.default, { sx: styles_1.Layout.dataGridFixedHeight },
106
+ react_1.default.createElement(DataGridBySchemaEditable_1.default, { data: data.data, columns: data.columns, schema: data.schema, model: relatedModel, indexField: indexField, indexFieldBasePath: indexFieldBasePath, addExistingModel: addExistingModel, isEditable: isEditable, modelParent: model, modelParentId: id, customColumnOperations: finalCustomColumnOperations, setVisibleRows: setVisibleRows, isAutoHeight: isAutoHeight, hideFooterPagination: hideFooterPagination, onProcessRow: onProcessRow, onDataChange: newData => {
107
+ setData(Object.assign(Object.assign({}, data), { data: newData }));
108
+ }, LinkComponent: LinkComponent })),
109
+ react_1.default.createElement(DataTotals_1.default, { data: data.data, sumRows: sumRows, visibleRows: visibleRows }))));
110
+ }
111
+ exports.default = GenericRelatedModelList;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ const react_1 = __importDefault(require("react"));
18
+ const TextField_1 = __importDefault(require("@mui/material/TextField"));
19
+ const utils_1 = require("../utils");
20
+ function TextFieldBySchema(_a) {
21
+ var { Controller, name, schema, control, errors, multiline = false, fieldKey = null, index = null, sx = { mr: 2 } } = _a, other = __rest(_a, ["Controller", "name", "schema", "control", "errors", "multiline", "fieldKey", "index", "sx"]);
22
+ const model = name;
23
+ if (fieldKey && index >= 0) {
24
+ name = `${fieldKey}.${index}.${name}`;
25
+ }
26
+ const { error, helperText } = (fieldKey && index >= 0)
27
+ ? (0, utils_1.errorProps)({
28
+ fieldKey,
29
+ index,
30
+ fieldKeyProp: name,
31
+ errors
32
+ })
33
+ : {
34
+ error: errors && Boolean(errors[name]),
35
+ helperText: (errors && errors[name]) ? errors[name].message : ''
36
+ };
37
+ return (react_1.default.createElement(Controller, { name: name, control: control, render: ({ field }) => (react_1.default.createElement(TextField_1.default, Object.assign({}, field, other, { id: name, key: name, label: schema[model].label, margin: "normal", fullWidth: true, multiline: multiline, error: error, helperText: helperText, sx: sx }))) }));
38
+ }
39
+ exports.default = TextFieldBySchema;
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { DialogType, SnackBarType } from './APIWrapperContext';
3
+ interface APIWrapperProps {
4
+ setLoading: React.Dispatch<React.SetStateAction<boolean>>;
5
+ handleLoading: (p: boolean) => void;
6
+ setSnackBar: React.Dispatch<React.SetStateAction<SnackBarType>>;
7
+ setDialog: React.Dispatch<React.SetStateAction<DialogType>>;
8
+ children: React.ReactNode;
9
+ }
10
+ declare function APIWrapper({ setLoading, handleLoading, setSnackBar, setDialog, children }: APIWrapperProps): JSX.Element;
11
+ declare const _default: React.MemoExoticComponent<typeof APIWrapper>;
12
+ export default _default;