drf-react-by-schema 0.8.1 → 0.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/api.js
CHANGED
|
@@ -536,7 +536,10 @@ const getGenericModelList = ({ model, serverEndPoint, id = '', relatedModel = ''
|
|
|
536
536
|
let modelOptions = loadedModelOptions;
|
|
537
537
|
let columns;
|
|
538
538
|
if (!(0, utils_1.isTmpId)(id) && relatedModel) {
|
|
539
|
-
path += `/${relatedModel}
|
|
539
|
+
path += `/${relatedModel}/`;
|
|
540
|
+
if (relatedModelId) {
|
|
541
|
+
path += `${relatedModelId}/`;
|
|
542
|
+
}
|
|
540
543
|
schemaPath += `${id}/${relatedModel}/`;
|
|
541
544
|
}
|
|
542
545
|
const queryParams = [];
|
|
@@ -640,7 +643,10 @@ const getGenericModel = ({ model, serverEndPoint, id = '', relatedModel = '', re
|
|
|
640
643
|
let path = `${model}/${id}`;
|
|
641
644
|
let schemaPath = `${model}/`;
|
|
642
645
|
if (id && relatedModel) {
|
|
643
|
-
path += `/${relatedModel}
|
|
646
|
+
path += `/${relatedModel}/`;
|
|
647
|
+
if (relatedModelId) {
|
|
648
|
+
path += `${relatedModelId}/`;
|
|
649
|
+
}
|
|
644
650
|
schemaPath += `${id}/${relatedModel}/`;
|
|
645
651
|
}
|
|
646
652
|
else if (id) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { GridEnrichedBySchemaColDef, Id, Item } from '../utils';
|
|
3
|
-
import { SumRowsType } from '
|
|
3
|
+
import { SumRowsType } from '../api';
|
|
4
4
|
interface GenericRelatedModelListProps {
|
|
5
5
|
model: string;
|
|
6
6
|
id: Id;
|
|
@@ -12,6 +12,7 @@ interface GenericRelatedModelListProps {
|
|
|
12
12
|
minWidthFields?: Record<string, number>;
|
|
13
13
|
indexField?: string;
|
|
14
14
|
addExistingModel?: string;
|
|
15
|
+
label: string;
|
|
15
16
|
onProcessRow?: (p: any) => void;
|
|
16
17
|
sumRows?: SumRowsType;
|
|
17
18
|
customColumnOperations?: (column: GridEnrichedBySchemaColDef) => GridEnrichedBySchemaColDef;
|
|
@@ -19,7 +20,8 @@ interface GenericRelatedModelListProps {
|
|
|
19
20
|
isAutoHeight?: boolean;
|
|
20
21
|
isInBatches?: boolean;
|
|
21
22
|
indexFieldBasePath?: string;
|
|
23
|
+
noCardWrapper?: boolean;
|
|
22
24
|
LinkComponent?: React.ReactNode;
|
|
23
25
|
}
|
|
24
|
-
export default function GenericRelatedModelList({
|
|
26
|
+
export default function GenericRelatedModelList({ id, model, relatedModel, columnFields, creatableFields, hiddenFields, usuaria, minWidthFields, indexField, addExistingModel, label, onProcessRow, sumRows, customColumnOperations, isEditable, isAutoHeight, isInBatches, indexFieldBasePath, noCardWrapper, }: GenericRelatedModelListProps): JSX.Element;
|
|
25
27
|
export {};
|
|
@@ -37,25 +37,25 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
37
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
38
|
const react_1 = __importStar(require("react"));
|
|
39
39
|
const Box_1 = __importDefault(require("@mui/material/Box"));
|
|
40
|
+
const Card_1 = __importDefault(require("@mui/material/Card"));
|
|
41
|
+
const CardHeader_1 = __importDefault(require("@mui/material/CardHeader"));
|
|
42
|
+
const CardContent_1 = __importDefault(require("@mui/material/CardContent"));
|
|
40
43
|
const DataGridBySchemaEditable_1 = __importDefault(require("./DataGridBySchemaEditable"));
|
|
41
44
|
const DataTotals_1 = __importDefault(require("./DataTotals"));
|
|
42
|
-
const DRFReactBySchemaContext_1 = require("../context/DRFReactBySchemaContext");
|
|
43
45
|
const APIWrapperContext_1 = require("../context/APIWrapperContext");
|
|
44
46
|
const api_1 = require("../api");
|
|
45
47
|
const styles_1 = require("../styles");
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}
|
|
54
|
-
const { serverEndPoint, isInBatches, firstBatchLength, } = context;
|
|
55
|
-
const { onEditRelatedModelSave, onDeleteRelatedModel } = apiContext;
|
|
48
|
+
const ContentTable = ({ data, relatedModel, model, id, indexField, indexFieldBasePath, addExistingModel, isEditable, onEditModel, finalCustomColumnOperations, setVisibleRows, isAutoHeight, hideFooterPagination, onProcessRow, setData, sumRows, visibleRows, }) => (react_1.default.createElement(react_1.default.Fragment, null,
|
|
49
|
+
data.columns && (react_1.default.createElement(Box_1.default, { sx: styles_1.Layout.dataGridFixedHeight },
|
|
50
|
+
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
|
+
setData(Object.assign(Object.assign({}, data), { data: newData }));
|
|
52
|
+
} }))),
|
|
53
|
+
react_1.default.createElement(DataTotals_1.default, { data: data.data, sumRows: sumRows, visibleRows: visibleRows })));
|
|
54
|
+
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, }) {
|
|
56
55
|
const [data, setData] = (0, react_1.useState)(false);
|
|
57
56
|
const [visibleRows, setVisibleRows] = (0, react_1.useState)([]);
|
|
58
57
|
const [hideFooterPagination, setHideFooterPagination] = (0, react_1.useState)(false);
|
|
58
|
+
const { onEditModel, onDeleteRelatedModel, serverEndPoint } = (0, APIWrapperContext_1.useAPIWrapper)();
|
|
59
59
|
const finalCustomColumnOperations = (column) => {
|
|
60
60
|
if (minWidthFields) {
|
|
61
61
|
if (Object.prototype.hasOwnProperty.call(minWidthFields, column.field)) {
|
|
@@ -70,27 +70,26 @@ function GenericRelatedModelList({ model, id, relatedModel, columnFields, creata
|
|
|
70
70
|
const loadObjectList = () => __awaiter(this, void 0, void 0, function* () {
|
|
71
71
|
const loadParams = {
|
|
72
72
|
model,
|
|
73
|
-
serverEndPoint,
|
|
74
73
|
id,
|
|
75
74
|
relatedModel,
|
|
75
|
+
indexFieldBasePath,
|
|
76
76
|
columnFields,
|
|
77
|
-
hiddenFields,
|
|
78
77
|
creatableFields,
|
|
79
|
-
|
|
78
|
+
hiddenFields,
|
|
79
|
+
usuaria,
|
|
80
|
+
isInBatches,
|
|
81
|
+
serverEndPoint,
|
|
80
82
|
};
|
|
81
83
|
const loadedData = yield (0, api_1.getGenericModelList)(loadParams);
|
|
82
84
|
if (loadedData) {
|
|
83
85
|
setData(loadedData);
|
|
84
|
-
if (isInBatches && loadedData.data.length ===
|
|
86
|
+
if (isInBatches && loadedData.data.length === 100) {
|
|
85
87
|
setHideFooterPagination(true);
|
|
86
|
-
(0, api_1.getGenericModelList)(Object.assign(Object.assign({}, loadParams), { loadedSchema: loadedData.schema })).then(lastBatchData => {
|
|
88
|
+
(0, api_1.getGenericModelList)(Object.assign(Object.assign({}, loadParams), { loadedSchema: loadedData.schema })).then((lastBatchData) => {
|
|
87
89
|
if (lastBatchData) {
|
|
88
|
-
setData(Object.assign(Object.assign({}, loadedData), { data: [
|
|
89
|
-
|
|
90
|
-
...lastBatchData.data
|
|
91
|
-
] }));
|
|
90
|
+
setData(Object.assign(Object.assign({}, loadedData), { data: [...loadedData.data, ...lastBatchData.data] }));
|
|
91
|
+
setHideFooterPagination(false);
|
|
92
92
|
}
|
|
93
|
-
setHideFooterPagination(false);
|
|
94
93
|
});
|
|
95
94
|
}
|
|
96
95
|
return;
|
|
@@ -100,12 +99,9 @@ function GenericRelatedModelList({ model, id, relatedModel, columnFields, creata
|
|
|
100
99
|
(0, react_1.useEffect)(() => {
|
|
101
100
|
loadObjectList();
|
|
102
101
|
}, []);
|
|
103
|
-
return (react_1.default.createElement(react_1.default.Fragment, null, typeof data !== 'boolean' && data.columns &&
|
|
104
|
-
react_1.default.createElement(
|
|
105
|
-
|
|
106
|
-
|
|
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 }))));
|
|
102
|
+
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 })) : (react_1.default.createElement(Card_1.default, { sx: styles_1.Layout.formCard },
|
|
103
|
+
react_1.default.createElement(CardHeader_1.default, { title: label }),
|
|
104
|
+
react_1.default.createElement(CardContent_1.default, null,
|
|
105
|
+
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 }))))))));
|
|
110
106
|
}
|
|
111
107
|
exports.default = GenericRelatedModelList;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { updateData, partialUpdateData, createData, deleteData, createOrUpdateData, updateDataBySchema, addExistingRelatedModel, getAutoComplete,
|
|
1
|
+
import { updateData, partialUpdateData, createData, deleteData, createOrUpdateData, updateDataBySchema, addExistingRelatedModel, getAutoComplete, loginByPayload, setAuthToken, isLoggedIn, getGenericModelList, getGenericModel, hasJWT, clearJWT } from './api';
|
|
2
2
|
import { emptyByType, getChoiceByValue, populateValues, buildGenericYupValidationSchema, errorProps, getTmpId, isTmpId, getPatternFormat, slugToCamelCase } from './utils';
|
|
3
3
|
import DRFReactBySchemaProvider from './context/DRFReactBySchemaProvider';
|
|
4
4
|
import { useDRFReactBySchema } from './context/DRFReactBySchemaContext';
|
|
@@ -19,4 +19,4 @@ import DesktopDateTimePickerBySchema from './components/forms/inputs/DesktopDate
|
|
|
19
19
|
import EditableAutocompleteFieldBySchema from './components/forms/inputs/EditableAutocompleteFieldBySchema';
|
|
20
20
|
import AutocompleteFieldBySchema from './components/forms/inputs/AutocompleteFieldBySchema';
|
|
21
21
|
import FloatFieldBySchema from './components/forms/inputs/FloatFieldBySchema';
|
|
22
|
-
export { DRFReactBySchemaProvider, useAPIWrapper, useDRFReactBySchema, Form, FormBySchema, DialogFormBySchema, DataGridBySchemaEditable, GenericModelList, GenericRelatedModelList, DataTotals, DialogActions, FieldBySchema, TextFieldBySchema, BooleanFieldBySchema, DesktopDatePickerBySchema, DesktopDateTimePickerBySchema, EditableAutocompleteFieldBySchema, AutocompleteFieldBySchema, FloatFieldBySchema, updateData, partialUpdateData, createData, deleteData, createOrUpdateData, updateDataBySchema, addExistingRelatedModel, getAutoComplete,
|
|
22
|
+
export { DRFReactBySchemaProvider, useAPIWrapper, useDRFReactBySchema, Form, FormBySchema, DialogFormBySchema, DataGridBySchemaEditable, GenericModelList, GenericRelatedModelList, DataTotals, DialogActions, FieldBySchema, TextFieldBySchema, BooleanFieldBySchema, DesktopDatePickerBySchema, DesktopDateTimePickerBySchema, EditableAutocompleteFieldBySchema, AutocompleteFieldBySchema, FloatFieldBySchema, updateData, partialUpdateData, createData, deleteData, createOrUpdateData, updateDataBySchema, addExistingRelatedModel, getAutoComplete, loginByPayload, setAuthToken, isLoggedIn, getGenericModelList, getGenericModel, emptyByType, getChoiceByValue, populateValues, buildGenericYupValidationSchema, errorProps, getTmpId, isTmpId, getPatternFormat, clearJWT, hasJWT, slugToCamelCase, };
|
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.slugToCamelCase = exports.hasJWT = exports.clearJWT = exports.getPatternFormat = exports.isTmpId = exports.getTmpId = exports.errorProps = exports.buildGenericYupValidationSchema = exports.populateValues = exports.getChoiceByValue = exports.emptyByType = exports.getGenericModel = exports.getGenericModelList = exports.isLoggedIn = exports.setAuthToken = exports.loginByPayload = exports.
|
|
6
|
+
exports.slugToCamelCase = exports.hasJWT = exports.clearJWT = exports.getPatternFormat = exports.isTmpId = exports.getTmpId = exports.errorProps = exports.buildGenericYupValidationSchema = exports.populateValues = exports.getChoiceByValue = exports.emptyByType = exports.getGenericModel = exports.getGenericModelList = exports.isLoggedIn = exports.setAuthToken = exports.loginByPayload = exports.getAutoComplete = exports.addExistingRelatedModel = exports.updateDataBySchema = exports.createOrUpdateData = exports.deleteData = exports.createData = exports.partialUpdateData = exports.updateData = exports.FloatFieldBySchema = exports.AutocompleteFieldBySchema = exports.EditableAutocompleteFieldBySchema = exports.DesktopDateTimePickerBySchema = exports.DesktopDatePickerBySchema = exports.BooleanFieldBySchema = exports.TextFieldBySchema = exports.FieldBySchema = exports.DialogActions = exports.DataTotals = exports.GenericRelatedModelList = exports.GenericModelList = exports.DataGridBySchemaEditable = exports.DialogFormBySchema = exports.FormBySchema = exports.Form = exports.useDRFReactBySchema = exports.useAPIWrapper = exports.DRFReactBySchemaProvider = void 0;
|
|
7
7
|
// Methods:
|
|
8
8
|
const api_1 = require("./api");
|
|
9
9
|
Object.defineProperty(exports, "updateData", { enumerable: true, get: function () { return api_1.updateData; } });
|
|
@@ -14,8 +14,6 @@ Object.defineProperty(exports, "createOrUpdateData", { enumerable: true, get: fu
|
|
|
14
14
|
Object.defineProperty(exports, "updateDataBySchema", { enumerable: true, get: function () { return api_1.updateDataBySchema; } });
|
|
15
15
|
Object.defineProperty(exports, "addExistingRelatedModel", { enumerable: true, get: function () { return api_1.addExistingRelatedModel; } });
|
|
16
16
|
Object.defineProperty(exports, "getAutoComplete", { enumerable: true, get: function () { return api_1.getAutoComplete; } });
|
|
17
|
-
Object.defineProperty(exports, "getJSONSchema", { enumerable: true, get: function () { return api_1.getJSONSchema; } });
|
|
18
|
-
Object.defineProperty(exports, "createOrUpdateJSONSchema", { enumerable: true, get: function () { return api_1.createOrUpdateJSONSchema; } });
|
|
19
17
|
Object.defineProperty(exports, "loginByPayload", { enumerable: true, get: function () { return api_1.loginByPayload; } });
|
|
20
18
|
Object.defineProperty(exports, "setAuthToken", { enumerable: true, get: function () { return api_1.setAuthToken; } });
|
|
21
19
|
Object.defineProperty(exports, "isLoggedIn", { enumerable: true, get: function () { return api_1.isLoggedIn; } });
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "drf-react-by-schema",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.3",
|
|
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",
|
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
"build": "tsc",
|
|
10
10
|
"styleguide": "styleguidist server",
|
|
11
11
|
"styleguide:build": "styleguidist build",
|
|
12
|
-
"release:major": "yarn version --version $(semver $npm_package_version -i major) && yarn publish --tag latest",
|
|
13
|
-
"release:minor": "yarn version --new-version $(semver $npm_package_version -i minor) && yarn publish --tag latest",
|
|
14
|
-
"release:patch": "yarn version --new-version $(semver $npm_package_version -i patch) && yarn publish --tag latest"
|
|
12
|
+
"release:major": "tsc --noEmit && yarn version --version $(semver $npm_package_version -i major) && yarn publish --tag latest",
|
|
13
|
+
"release:minor": "tsc --noEmit && yarn version --new-version $(semver $npm_package_version -i minor) && yarn publish --tag latest",
|
|
14
|
+
"release:patch": "tsc || true && yarn version --new-version $(semver $npm_package_version -i patch) && yarn publish --tag latest"
|
|
15
15
|
},
|
|
16
16
|
"repository": {
|
|
17
17
|
"type": "git",
|