drf-react-by-schema 0.2.2 → 0.3.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.d.ts +84 -0
- package/dist/api.js +613 -0
- package/dist/components/DataGridBySchemaEditable/ConfirmDialog.d.ts +8 -0
- package/dist/components/DataGridBySchemaEditable/ConfirmDialog.js +21 -0
- package/dist/components/DataGridBySchemaEditable/CustomToolbar.d.ts +16 -0
- package/dist/components/DataGridBySchemaEditable/CustomToolbar.js +77 -0
- package/dist/components/DataGridBySchemaEditable/FooterToolbar.d.ts +16 -0
- package/dist/components/DataGridBySchemaEditable/FooterToolbar.js +41 -0
- package/dist/components/DataGridBySchemaEditable/GridDecimalInput.d.ts +8 -0
- package/dist/components/DataGridBySchemaEditable/GridDecimalInput.js +32 -0
- package/dist/components/DataGridBySchemaEditable/GridPatternInput.d.ts +8 -0
- package/dist/components/DataGridBySchemaEditable/GridPatternInput.js +30 -0
- package/dist/components/DataGridBySchemaEditable/InputInterval.d.ts +3 -0
- package/dist/components/DataGridBySchemaEditable/InputInterval.js +105 -0
- package/dist/components/DataGridBySchemaEditable/SelectEditInputCell.d.ts +33 -0
- package/dist/components/DataGridBySchemaEditable/SelectEditInputCell.js +140 -0
- package/dist/components/DataGridBySchemaEditable/utils.d.ts +15 -0
- package/{src/components/DataGridBySchemaEditable/utils.ts → dist/components/DataGridBySchemaEditable/utils.js} +32 -50
- package/dist/components/DataGridBySchemaEditable.d.ts +34 -0
- package/dist/components/DataGridBySchemaEditable.js +549 -0
- package/dist/components/DataTotals.d.ts +14 -0
- package/dist/components/DataTotals.js +23 -0
- package/dist/components/DialogActions.d.ts +10 -0
- package/dist/components/DialogActions.js +17 -0
- package/dist/components/DialogJSONSchemaForm.d.ts +12 -0
- package/dist/components/DialogJSONSchemaForm.js +20 -0
- package/dist/components/FormButtons.d.ts +14 -0
- package/dist/components/FormButtons.js +39 -0
- package/dist/components/GenericModelList.d.ts +19 -0
- package/dist/components/GenericModelList.js +113 -0
- package/dist/components/GenericRelatedModelList.d.ts +25 -0
- package/dist/components/GenericRelatedModelList.js +111 -0
- package/dist/components/TextFieldBySchema.js +39 -0
- package/dist/context/APIWrapper.d.ts +12 -0
- package/dist/context/APIWrapper.js +341 -0
- package/dist/context/APIWrapperContext.d.ts +75 -0
- package/dist/context/APIWrapperContext.js +15 -0
- package/dist/context/DRFReactBySchemaContext.d.ts +20 -0
- package/dist/context/DRFReactBySchemaContext.js +19 -0
- package/dist/context/DRFReactBySchemaProvider.d.ts +13 -0
- package/dist/context/DRFReactBySchemaProvider.js +53 -0
- package/dist/context/Form.d.ts +11 -0
- package/dist/context/Form.js +82 -0
- package/dist/context/Overlays.d.ts +4 -0
- package/dist/context/Overlays.js +87 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +14 -27
- package/{src/styles/index.ts → dist/styles/index.d.ts} +0 -1
- package/dist/styles/index.js +28 -0
- package/dist/styles/layout.d.ts +107 -0
- package/dist/styles/layout.js +56 -0
- package/dist/styles/theme.d.ts +21 -0
- package/dist/styles/theme.js +139 -0
- package/dist/utils.d.ts +75 -0
- package/dist/utils.js +268 -0
- package/package.json +15 -2
- package/.eslintrc.js +0 -14
- package/.gitlab-ci.yml +0 -14
- package/src/api.ts +0 -733
- package/src/components/DataGridBySchemaEditable/ConfirmDialog.tsx +0 -41
- package/src/components/DataGridBySchemaEditable/CustomToolbar.tsx +0 -93
- package/src/components/DataGridBySchemaEditable/FooterToolbar.tsx +0 -77
- package/src/components/DataGridBySchemaEditable/GridDecimalInput.tsx +0 -41
- package/src/components/DataGridBySchemaEditable/GridPatternInput.tsx +0 -37
- package/src/components/DataGridBySchemaEditable/InputInterval.tsx +0 -194
- package/src/components/DataGridBySchemaEditable/SelectEditInputCell.tsx +0 -153
- package/src/components/DataGridBySchemaEditable.md +0 -50
- package/src/components/DataGridBySchemaEditable.tsx +0 -747
- package/src/components/DataTotals.tsx +0 -56
- package/src/components/GenericModelList.tsx +0 -155
- package/src/context/DRFReactBySchemaProvider.md +0 -50
- package/src/context/DRFReactBySchemaProvider.tsx +0 -78
- package/src/index.ts +0 -64
- package/src/styles/layout.ts +0 -104
- package/src/styles/theme.ts +0 -190
- package/src/utils.ts +0 -321
- package/styleguide.config.js +0 -13
- package/tsconfig.json +0 -104
- package/webpack.config.js +0 -24
|
@@ -0,0 +1,39 @@
|
|
|
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 react_router_dom_1 = require("react-router-dom");
|
|
8
|
+
const Typography_1 = __importDefault(require("@mui/material/Typography"));
|
|
9
|
+
const Box_1 = __importDefault(require("@mui/material/Box"));
|
|
10
|
+
const Button_1 = __importDefault(require("@mui/material/Button"));
|
|
11
|
+
// import UndoIcon from '@mui/icons-material/Undo';
|
|
12
|
+
const styles_1 = require("../styles");
|
|
13
|
+
const utils_1 = require("../utils/utils");
|
|
14
|
+
function FormButtons({ title, objId, formDisabled, cancelBtn, sx = {}, bottom = false, borderBottom = true, saveAndContinue = true }) {
|
|
15
|
+
const navigate = (0, react_router_dom_1.useNavigate)();
|
|
16
|
+
if (bottom && borderBottom && objId && objId !== 'novo') {
|
|
17
|
+
sx.mb = 5;
|
|
18
|
+
sx.pb = 2;
|
|
19
|
+
sx.borderBottom = 'solid 1px #aaa';
|
|
20
|
+
}
|
|
21
|
+
return (react_1.default.createElement(Box_1.default, { sx: Object.assign(Object.assign({}, styles_1.Layout.flexRowGrow), sx) },
|
|
22
|
+
bottom
|
|
23
|
+
? react_1.default.createElement(Button_1.default, { variant: "contained", type: "button", color: "error", size: "small", disabled: (0, utils_1.isTmpId)(objId) || !onDeleteModel, onClick: onDeleteModel }, "Apagar")
|
|
24
|
+
: title
|
|
25
|
+
? react_1.default.createElement(Typography_1.default, { variant: "h5" }, title)
|
|
26
|
+
: react_1.default.createElement(Box_1.default, null),
|
|
27
|
+
react_1.default.createElement(Box_1.default, { sx: styles_1.Layout.flexRow },
|
|
28
|
+
cancelBtn
|
|
29
|
+
? react_1.default.createElement(Button_1.default, { variant: "contained", color: "primary", size: "small", sx: { ml: 1 }, onClick: cancelBtn }, "Cancelar")
|
|
30
|
+
: react_1.default.createElement(Button_1.default, { variant: "contained", color: "primary", size: "small", sx: { ml: 1 }, onClick: () => {
|
|
31
|
+
navigate(-1);
|
|
32
|
+
} }, "Voltar"),
|
|
33
|
+
saveAndContinue &&
|
|
34
|
+
react_1.default.createElement(react_1.default.Fragment, null,
|
|
35
|
+
react_1.default.createElement(Button_1.default, { variant: "contained", name: "createNewOnSave", type: "submit", color: "secondary", size: "small", sx: { ml: 1 }, disabled: formDisabled }, "Salvar e criar novo"),
|
|
36
|
+
react_1.default.createElement(Button_1.default, { variant: "contained", name: "stayOnSave", type: "submit", color: "secondary", size: "small", sx: { ml: 1 }, disabled: formDisabled }, "Salvar e continuar")),
|
|
37
|
+
react_1.default.createElement(Button_1.default, { variant: "contained", name: "exitOnSave", type: "submit", color: "primary", size: "small", sx: { ml: 1 }, disabled: formDisabled }, "Salvar"))));
|
|
38
|
+
}
|
|
39
|
+
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;
|