drf-react-by-schema 0.17.8 → 0.17.10

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 CHANGED
@@ -1,8 +1,6 @@
1
1
  import { AxiosError } from 'axios';
2
2
  import { serverEndPointType } from './context/DRFReactBySchemaContext';
3
- import { Item, SchemaType, modelOptionsType, DataSchemaColumnsType, ItemSchemaColumnsType, Id, TargetApiParams } from './utils';
4
- import { GridFilterModel, GridSortModel } from '@mui/x-data-grid';
5
- import { AlertColor } from '@mui/material/Alert';
3
+ import { Item, SchemaType, DataSchemaColumnsType, ItemSchemaColumnsType, Id, TargetApiParams, TargetApiPostParams, GetGenericModelListProps } from './utils';
6
4
  interface TargetApiParamsOptionalId {
7
5
  path: string;
8
6
  serverEndPoint: serverEndPointType | null;
@@ -20,7 +18,7 @@ export declare const getRawData: ({ path, serverEndPoint, }: {
20
18
  */
21
19
  export declare const updateData: ({ path, serverEndPoint, data, id }: TargetApiParams) => Promise<Item>;
22
20
  export declare const partialUpdateData: ({ path, serverEndPoint, data, id }: TargetApiParams) => Promise<Item>;
23
- export declare const createData: ({ path, serverEndPoint, data }: Omit<TargetApiParams, 'id'>) => Promise<Item>;
21
+ export declare const createData: ({ path, serverEndPoint, data }: TargetApiPostParams) => Promise<Item>;
24
22
  export declare const deleteData: (path: string, serverEndPoint: serverEndPointType | null, id: Id) => Promise<true | AxiosError<unknown, any>>;
25
23
  export declare const createOrUpdateData: ({ path, serverEndPoint, data, id, }: TargetApiParamsOptionalId) => Promise<Item>;
26
24
  export declare const updateDataBySchema: ({ model, modelObjectId, serverEndPoint, data, schema, path, }: {
@@ -48,35 +46,6 @@ export declare const setAuthToken: (token: string | null) => void;
48
46
  export declare const isLoggedIn: (serverEndPoint: serverEndPointType | null) => Promise<false | Item>;
49
47
  export declare const getSignUpOptions: (serverEndPoint: serverEndPointType | null) => Promise<SchemaType | AxiosError<unknown, any>>;
50
48
  export declare const signUp: (data: Item, serverEndPoint: serverEndPointType | null) => Promise<Item>;
51
- export interface GetGenericModelListProps {
52
- model: string;
53
- serverEndPoint: serverEndPointType | null;
54
- id?: Id;
55
- relatedModel?: string;
56
- relatedModelId?: Id;
57
- columnFields: string[];
58
- hiddenFields?: string[];
59
- creatableFields?: string[];
60
- disabledFields?: string[];
61
- isInBatches?: boolean;
62
- loadedSchema?: SchemaType | boolean;
63
- loadedModelOptions?: modelOptionsType | boolean;
64
- page?: number;
65
- filter?: GridFilterModel;
66
- queryParams?: string[];
67
- sort?: GridSortModel;
68
- sumRows?: SumRowsType;
69
- }
70
- export interface SumRowsType {
71
- rows: SumRowsItem[];
72
- severity?: AlertColor;
73
- }
74
- interface SumRowsItem {
75
- field: string;
76
- prefix?: string;
77
- suffix?: string;
78
- isCount?: boolean;
79
- }
80
49
  export declare const getGenericModelList: ({ model, serverEndPoint, id, relatedModel, relatedModelId, columnFields, hiddenFields, creatableFields, disabledFields, isInBatches, loadedSchema, loadedModelOptions, page, filter, queryParams, sort, sumRows, }: GetGenericModelListProps) => Promise<false | DataSchemaColumnsType>;
81
50
  export declare const getGenericModel: ({ model, serverEndPoint, id, relatedModel, relatedModelId, }: {
82
51
  model: string;
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
2
  import { GridRowId } from '@mui/x-data-grid';
3
- import { Item } from '../utils';
4
- import { SumRowsType } from '../api';
3
+ import { Item, SumRowsType } from '../utils';
5
4
  interface DataTotalsProps {
6
5
  data?: Item[];
7
6
  sumRows?: SumRowsType;
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { SumRowsType } from '../api';
2
+ import { SumRowsType } from '../utils';
3
3
  interface DataTotalsServerProps {
4
4
  sumRows?: SumRowsType;
5
5
  totals?: null | Record<string, number>;
@@ -8,11 +8,9 @@ const Alert_1 = __importDefault(require("@mui/material/Alert"));
8
8
  const List_1 = __importDefault(require("@mui/material/List"));
9
9
  const ListItem_1 = __importDefault(require("@mui/material/ListItem"));
10
10
  const react_number_format_1 = require("react-number-format");
11
- ;
12
11
  const DataTotalsServer = ({ sumRows, totals }) => {
13
- return (react_1.default.createElement(react_1.default.Fragment, null, sumRows && sumRows.rows.length > 0 &&
14
- react_1.default.createElement(Alert_1.default, { severity: sumRows.severity || 'info' },
15
- react_1.default.createElement(List_1.default, { dense: true }, sumRows.rows.map(row => (react_1.default.createElement(ListItem_1.default, { key: `sumRows_${row.field}` },
16
- react_1.default.createElement(react_number_format_1.NumericFormat, { value: totals ? totals[`${row.field}_total`] : 0, thousandSeparator: '.', decimalSeparator: ',', displayType: 'text', decimalScale: row.isCount ? 0 : 2, fixedDecimalScale: true, prefix: row.prefix, suffix: row.suffix }))))))));
12
+ return (react_1.default.createElement(react_1.default.Fragment, null, sumRows && sumRows.rows.length > 0 && (react_1.default.createElement(Alert_1.default, { severity: sumRows.severity || 'info' },
13
+ react_1.default.createElement(List_1.default, { dense: true }, sumRows.rows.map((row) => (react_1.default.createElement(ListItem_1.default, { key: `sumRows_${row.field}` },
14
+ react_1.default.createElement(react_number_format_1.NumericFormat, { value: totals ? totals[`${row.field}_total`] : 0, thousandSeparator: ".", decimalSeparator: ",", displayType: 'text', decimalScale: row.isCount ? 0 : 2, fixedDecimalScale: true, prefix: row.prefix, suffix: row.suffix })))))))));
17
15
  };
18
16
  exports.default = DataTotalsServer;
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
2
  import { GridFilterModel, GridRenderCellParams } from '@mui/x-data-grid';
3
- import { GridEnrichedBySchemaColDef, ActionType, Item, OnSelectActions, OptionsAC, FormFieldLayout, CustomAction } from '../utils';
4
- import { SumRowsType } from '../api';
3
+ import { GridEnrichedBySchemaColDef, ActionType, Item, OnSelectActions, OptionsAC, FormFieldLayout, CustomAction, SumRowsType } from '../utils';
5
4
  interface GenericModelListProps {
6
5
  model: string;
7
6
  columnFields: string[];
@@ -129,9 +129,11 @@ const GenericModelList = ({ model, columnFields, hiddenFields = [], creatableFie
129
129
  return;
130
130
  }
131
131
  });
132
- if (forceReload) {
133
- loadObjectList();
134
- }
132
+ (0, react_1.useEffect)(() => {
133
+ if (forceReload) {
134
+ loadObjectList();
135
+ }
136
+ }, [forceReload]);
135
137
  (0, react_1.useEffect)(() => {
136
138
  loadObjectList();
137
139
  }, [model, defaultFilter, queryParams, hiddenFields]);
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
2
  import { GridFilterModel } from '@mui/x-data-grid';
3
- import { ActionType, GridEnrichedBySchemaColDef, Id, Item, OnSelectActions, OptionsAC } from '../utils';
4
- import { SumRowsType } from '../api';
3
+ import { ActionType, GridEnrichedBySchemaColDef, Id, Item, OnSelectActions, OptionsAC, SumRowsType } from '../utils';
5
4
  interface GenericRelatedModelListProps {
6
5
  model: string;
7
6
  id: Id;
@@ -459,6 +459,15 @@ function APIWrapper({ handleLoading, setSnackBar, setDialog, children }) {
459
459
  return response;
460
460
  });
461
461
  }
462
+ function postData(params) {
463
+ return __awaiter(this, void 0, void 0, function* () {
464
+ const response = yield (0, api_1.createData)(Object.assign(Object.assign({}, params), { serverEndPoint }));
465
+ if ('isAxiosError' in response) {
466
+ return false;
467
+ }
468
+ return response;
469
+ });
470
+ }
462
471
  return (react_1.default.createElement(APIWrapperContext_1.APIWrapperContext.Provider, { value: {
463
472
  usuaria,
464
473
  updateUsuaria,
@@ -483,6 +492,7 @@ function APIWrapper({ handleLoading, setSnackBar, setDialog, children }) {
483
492
  loginByPayload: localLoginByPayload,
484
493
  getSignUpOptions: localGetSignupOptions,
485
494
  signUp: localSignUp,
495
+ postData: postData,
486
496
  // Remove after integrating new "onEditModel" to package:
487
497
  serverEndPoint,
488
498
  editModel,
@@ -2,8 +2,7 @@ import React from 'react';
2
2
  import { FieldValues, SubmitHandler, UseFormGetValues, UseFormSetValue } from 'react-hook-form';
3
3
  import { AlertColor, AlertPropsColorOverrides } from '@mui/material/Alert';
4
4
  import { OverridableStringUnion } from '@mui/types';
5
- import { ItemSchemaColumnsType, Id, Item, SchemaType, DataSchemaColumnsType, OnSuccessEvent, OptionsAC, GenericValue, TargetApiParams, FormFieldLayout } from '../utils';
6
- import { GetGenericModelListProps } from '../api';
5
+ import { ItemSchemaColumnsType, Id, Item, SchemaType, DataSchemaColumnsType, OnSuccessEvent, OptionsAC, GenericValue, FormFieldLayout, TargetApiParamsLocal, TargetApiPostParamsLocal, GetGenericModelListPropsLocal } from '../utils';
7
6
  import { serverEndPointType } from './DRFReactBySchemaContext';
8
7
  export interface LoadSinglePageDataProps {
9
8
  model: string;
@@ -84,14 +83,15 @@ export interface APIWrapperContextType {
84
83
  setDialog: (x: Partial<DialogType>) => void;
85
84
  getRawData: (route: string) => Promise<GenericValue>;
86
85
  getAutoComplete: (model: string) => Promise<false | Item[]>;
87
- getGenericModelList: (x: Omit<GetGenericModelListProps, 'serverEndPoint'>) => Promise<false | DataSchemaColumnsType>;
86
+ getGenericModelList: (x: GetGenericModelListPropsLocal) => Promise<false | DataSchemaColumnsType>;
88
87
  getAllModels: () => Promise<Item[]>;
89
88
  loginByPayload: (payload: Item) => Promise<boolean>;
90
89
  getSignUpOptions: () => Promise<false | SchemaType>;
91
90
  signUp: (data: Item) => Promise<false | Item>;
91
+ postData: (params: TargetApiPostParamsLocal) => Promise<false | Item>;
92
92
  serverEndPoint: serverEndPointType;
93
93
  editModel: React.MutableRefObject<Item>;
94
- updateModel: (p: Omit<TargetApiParams, 'serverEndPoint'>) => Promise<false | Item>;
94
+ updateModel: (p: TargetApiParamsLocal) => Promise<false | Item>;
95
95
  populateOptionsAC: (optionsACModels: string[]) => void;
96
96
  }
97
97
  export declare const APIWrapperContext: React.Context<APIWrapperContextType>;
@@ -38,6 +38,7 @@ exports.APIWrapperContext = react_1.default.createContext({
38
38
  loginByPayload: () => __awaiter(void 0, void 0, void 0, function* () { return false; }),
39
39
  getSignUpOptions: () => __awaiter(void 0, void 0, void 0, function* () { return false; }),
40
40
  signUp: () => __awaiter(void 0, void 0, void 0, function* () { return false; }),
41
+ postData: () => __awaiter(void 0, void 0, void 0, function* () { return false; }),
41
42
  // Remove after integrating new "onEditModel" to package:
42
43
  serverEndPoint: { url: '', apiTokenUrl: '' },
43
44
  editModel: { current: {} },
package/dist/utils.d.ts CHANGED
@@ -2,7 +2,7 @@ import * as Yup from 'yup';
2
2
  import { ReactElement } from 'react';
3
3
  import { GridActionsColDef, GridColDef, GridFilterModel, GridSortModel } from '@mui/x-data-grid';
4
4
  import { Control, FieldValues, UseFormGetValues, UseFormSetValue } from 'react-hook-form';
5
- import { AutocompleteRenderOptionState, SxProps } from '@mui/material';
5
+ import { AlertColor, AutocompleteRenderOptionState, SxProps } from '@mui/material';
6
6
  import { OnEditModelType } from './context/APIWrapperContext';
7
7
  import { serverEndPointType } from './context/DRFReactBySchemaContext';
8
8
  import { DateView } from '@mui/x-date-pickers';
@@ -179,7 +179,7 @@ export declare function reducer<T>(state: T | null, newState: Partial<T> | null)
179
179
  export declare const getPatternFormat: (type: string) => string;
180
180
  export type AddParametersToEnd<TFunction extends (...args: any) => any, TParameters extends [...args: any]> = (...args: [...Parameters<TFunction>, ...TParameters]) => ReturnType<TFunction>;
181
181
  export declare function buildDateFormatBySchema(dateViews: string[] | null | undefined): "DD/MM/YYYY" | "MM/YYYY" | "YYYY" | "MM" | "DD";
182
- export declare const slugToCamelCase: (str: string) => string;
182
+ export declare const slugToCamelCase: (str: string, includeFirst?: boolean) => string;
183
183
  export declare const slugify: (text: string | null) => string;
184
184
  export declare function mergeFilterItems(defaultFilter: GridFilterModel | undefined, filter: GridFilterModel | undefined): GridFilterModel | undefined;
185
185
  export type ActionType = 'editInline' | 'remove' | 'edit' | 'view';
@@ -249,4 +249,37 @@ export interface TargetApiParams {
249
249
  data: Item;
250
250
  id: Id;
251
251
  }
252
+ export type TargetApiParamsLocal = Omit<TargetApiParams, 'serverEndPoint'>;
253
+ export type TargetApiPostParams = Omit<TargetApiParams, 'id'>;
254
+ export type TargetApiPostParamsLocal = Omit<TargetApiPostParams, 'serverEndPoint'>;
255
+ export interface SumRowsType {
256
+ rows: SumRowsItem[];
257
+ severity?: AlertColor;
258
+ }
259
+ interface SumRowsItem {
260
+ field: string;
261
+ prefix?: string;
262
+ suffix?: string;
263
+ isCount?: boolean;
264
+ }
265
+ export interface GetGenericModelListProps {
266
+ model: string;
267
+ serverEndPoint: serverEndPointType | null;
268
+ id?: Id;
269
+ relatedModel?: string;
270
+ relatedModelId?: Id;
271
+ columnFields: string[];
272
+ hiddenFields?: string[];
273
+ creatableFields?: string[];
274
+ disabledFields?: string[];
275
+ isInBatches?: boolean;
276
+ loadedSchema?: SchemaType | boolean;
277
+ loadedModelOptions?: modelOptionsType | boolean;
278
+ page?: number;
279
+ filter?: GridFilterModel;
280
+ queryParams?: string[];
281
+ sort?: GridSortModel;
282
+ sumRows?: SumRowsType;
283
+ }
284
+ export type GetGenericModelListPropsLocal = Omit<GetGenericModelListProps, 'serverEndPoint'>;
252
285
  export {};
package/dist/utils.js CHANGED
@@ -311,10 +311,16 @@ function buildDateFormatBySchema(dateViews) {
311
311
  return defaultFormat;
312
312
  }
313
313
  exports.buildDateFormatBySchema = buildDateFormatBySchema;
314
- const slugToCamelCase = (str) => {
314
+ const slugToCamelCase = (str, includeFirst = false) => {
315
+ if (!str) {
316
+ return '';
317
+ }
315
318
  const ret = str.replace(/_([a-z])/g, function (g) {
316
319
  return g[1].toUpperCase();
317
320
  });
321
+ if (includeFirst) {
322
+ return ret[0].toUpperCase() + ret.slice(1);
323
+ }
318
324
  return ret;
319
325
  };
320
326
  exports.slugToCamelCase = slugToCamelCase;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "drf-react-by-schema",
3
- "version": "0.17.8",
3
+ "version": "0.17.10",
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",