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}/${relatedModelId}/`;
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}/${relatedModelId}/`;
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 './DataTotals';
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({ model, id, relatedModel, columnFields, creatableFields, hiddenFields, usuaria, minWidthFields, indexField, addExistingModel, onProcessRow, sumRows, customColumnOperations, isEditable, isAutoHeight, indexFieldBasePath, LinkComponent }: GenericRelatedModelListProps): JSX.Element;
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
- 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;
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
- isInBatches
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 === firstBatchLength) {
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
- ...loadedData.data,
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(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 }))));
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;
@@ -20,7 +20,6 @@ const DRFReactBySchemaProvider = ({ serverEndPoint, theme, isInBatches, firstBat
20
20
  const defaultKeys = [
21
21
  'autocomplete',
22
22
  'api',
23
- ['JSONSchema', 'jsonschema'],
24
23
  'getToken',
25
24
  ['refreshToken', 'refresh'],
26
25
  ['verifyToken', 'verify'],
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { updateData, partialUpdateData, createData, deleteData, createOrUpdateData, updateDataBySchema, addExistingRelatedModel, getAutoComplete, getJSONSchema, createOrUpdateJSONSchema, loginByPayload, setAuthToken, isLoggedIn, getGenericModelList, getGenericModel, hasJWT, clearJWT } from './api';
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, getJSONSchema, createOrUpdateJSONSchema, loginByPayload, setAuthToken, isLoggedIn, getGenericModelList, getGenericModel, emptyByType, getChoiceByValue, populateValues, buildGenericYupValidationSchema, errorProps, getTmpId, isTmpId, getPatternFormat, clearJWT, hasJWT, slugToCamelCase, };
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.createOrUpdateJSONSchema = exports.getJSONSchema = 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;
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.1",
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",