drf-react-by-schema 0.6.5 → 0.7.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.
Files changed (46) hide show
  1. package/dist/api.d.ts +7 -13
  2. package/dist/api.js +77 -77
  3. package/dist/components/DataGridBySchemaEditable/SelectEditInputCell.d.ts +1 -1
  4. package/dist/components/DataGridBySchemaEditable.js +5 -7
  5. package/dist/components/DialogActions.d.ts +3 -3
  6. package/dist/components/DialogActions.js +2 -4
  7. package/dist/components/forms/DialogFormBySchema.d.ts +14 -0
  8. package/dist/components/forms/DialogFormBySchema.js +61 -0
  9. package/dist/components/forms/FieldBySchema.d.ts +3 -0
  10. package/dist/components/forms/FieldBySchema.js +65 -0
  11. package/dist/components/forms/FormBySchema.d.ts +19 -0
  12. package/dist/components/forms/FormBySchema.js +164 -0
  13. package/dist/components/forms/inputs/AutocompleteFieldBySchema.d.ts +3 -0
  14. package/dist/components/forms/inputs/AutocompleteFieldBySchema.js +86 -0
  15. package/dist/components/forms/inputs/BooleanFieldBySchema.d.ts +3 -0
  16. package/dist/components/forms/inputs/BooleanFieldBySchema.js +41 -0
  17. package/dist/components/forms/inputs/DesktopDatePickerBySchema.d.ts +3 -0
  18. package/dist/components/forms/inputs/DesktopDatePickerBySchema.js +49 -0
  19. package/dist/components/forms/inputs/DesktopDateTimePickerBySchema.d.ts +3 -0
  20. package/dist/components/forms/inputs/DesktopDateTimePickerBySchema.js +41 -0
  21. package/dist/components/forms/inputs/EditableAutocompleteFieldBySchema.d.ts +4 -0
  22. package/dist/components/forms/inputs/EditableAutocompleteFieldBySchema.js +203 -0
  23. package/dist/components/forms/inputs/FloatFieldBySchema.d.ts +3 -0
  24. package/dist/components/forms/inputs/FloatFieldBySchema.js +60 -0
  25. package/dist/components/forms/inputs/TextFieldBySchema.d.ts +3 -0
  26. package/dist/components/forms/inputs/TextFieldBySchema.js +44 -0
  27. package/dist/context/APIWrapper.d.ts +5 -5
  28. package/dist/context/APIWrapper.js +135 -87
  29. package/dist/context/APIWrapperContext.d.ts +22 -9
  30. package/dist/context/APIWrapperContext.js +42 -9
  31. package/dist/context/DRFReactBySchemaContext.d.ts +4 -4
  32. package/dist/context/DRFReactBySchemaContext.js +5 -5
  33. package/dist/context/DRFReactBySchemaProvider.d.ts +1 -1
  34. package/dist/context/DRFReactBySchemaProvider.js +7 -10
  35. package/dist/context/Form.d.ts +1 -1
  36. package/dist/context/Form.js +13 -14
  37. package/dist/context/FormContext.js +0 -7
  38. package/dist/context/Overlays.js +11 -12
  39. package/dist/index.d.ts +16 -6
  40. package/dist/index.js +31 -7
  41. package/dist/styles/layout.d.ts +7 -0
  42. package/dist/styles/layout.js +2 -1
  43. package/dist/styles/theme.js +77 -42
  44. package/dist/utils.d.ts +42 -4
  45. package/dist/utils.js +22 -18
  46. package/package.json +1 -1
@@ -48,33 +48,26 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
48
48
  Object.defineProperty(exports, "__esModule", { value: true });
49
49
  const react_1 = __importStar(require("react"));
50
50
  const utils_1 = require("../utils");
51
- const DialogJSONSchemaForm_1 = __importDefault(require("../components/DialogJSONSchemaForm"));
52
51
  const DialogActions_1 = __importDefault(require("../components/DialogActions"));
53
52
  const DRFReactBySchemaContext_1 = require("./DRFReactBySchemaContext");
54
53
  const api_1 = require("../api");
55
54
  const APIWrapperContext_1 = require("./APIWrapperContext");
56
- ;
57
- function APIWrapper({ setLoading, handleLoading, setSnackBar, setDialog, children }) {
58
- const { serverEndPoint } = DRFReactBySchemaContext_1.DRFReactBySchemaContext
59
- ? react_1.default.useContext(DRFReactBySchemaContext_1.DRFReactBySchemaContext)
60
- : { serverEndPoint: null };
61
- if (!serverEndPoint) {
62
- return (react_1.default.createElement(react_1.default.Fragment, null, children));
63
- }
55
+ const DialogFormBySchema_1 = __importDefault(require("../components/forms/DialogFormBySchema"));
56
+ function APIWrapper({ setLoading, handleLoading, setSnackBar, setDialog, children, }) {
57
+ const { serverEndPoint } = (0, DRFReactBySchemaContext_1.useDRFReactBySchema)();
64
58
  const [usuaria, setUsuaria] = (0, react_1.useState)(null);
65
- const [optionsAC, setOptionsAC] = (0, react_1.useReducer)(utils_1.reducer, null);
59
+ const [optionsAC, setOptionsAC] = (0, react_1.useReducer)((utils_1.reducer), null);
66
60
  const initialPageForm = {
67
61
  id: '',
68
62
  schema: null,
69
63
  initialValues: null,
70
- validationSchema: null
64
+ validationSchema: null,
71
65
  };
72
- const [pageForm, setPageForm] = (0, react_1.useReducer)(utils_1.reducer, initialPageForm);
66
+ const [pageForm, setPageForm] = (0, react_1.useReducer)((utils_1.reducer), initialPageForm);
73
67
  const editModel = (0, react_1.useRef)({});
74
- const jsonSchemaFormRef = (0, react_1.useRef)(null);
75
68
  const updateUsuaria = () => {
76
69
  setUsuaria(null);
77
- (0, api_1.isLoggedIn)(serverEndPoint).then(usuaria => {
70
+ (0, api_1.isLoggedIn)(serverEndPoint).then((usuaria) => {
78
71
  setUsuaria(usuaria || { erro: 'token inválido' });
79
72
  });
80
73
  };
@@ -88,10 +81,10 @@ function APIWrapper({ setLoading, handleLoading, setSnackBar, setDialog, childre
88
81
  setSnackBar({
89
82
  open: true,
90
83
  msg,
91
- severity
84
+ severity,
92
85
  });
93
86
  };
94
- const loadSinglePageData = ({ model, objId, optionsACModels = null, defaults = {}, extraValidators = {} }) => __awaiter(this, void 0, void 0, function* () {
87
+ const loadSinglePageData = ({ model, objId, optionsACModels = null, defaults = {}, extraValidators = {}, }) => __awaiter(this, void 0, void 0, function* () {
95
88
  setLoading(true);
96
89
  if (!objId || objId === 'novo') {
97
90
  objId = (0, utils_1.getTmpId)();
@@ -99,10 +92,10 @@ function APIWrapper({ setLoading, handleLoading, setSnackBar, setDialog, childre
99
92
  const object = yield (0, api_1.getGenericModel)({
100
93
  model,
101
94
  serverEndPoint,
102
- id: (0, utils_1.isTmpId)(objId) ? null : objId
95
+ id: (0, utils_1.isTmpId)(objId) ? null : objId,
103
96
  });
104
97
  if (object === false) {
105
- setPageForm({ schema: false, id: '' });
98
+ setPageForm({ schema: undefined, id: '' });
106
99
  console.log('Houve um erro ao tentar carregar os dados!');
107
100
  return false;
108
101
  }
@@ -119,7 +112,7 @@ function APIWrapper({ setLoading, handleLoading, setSnackBar, setDialog, childre
119
112
  return values;
120
113
  });
121
114
  const onSubmit = (model, id, data) => __awaiter(this, void 0, void 0, function* () {
122
- if (!pageForm) {
115
+ if (!pageForm || !pageForm.schema) {
123
116
  console.log('there must be a pageForm!');
124
117
  return false;
125
118
  }
@@ -129,65 +122,111 @@ function APIWrapper({ setLoading, handleLoading, setSnackBar, setDialog, childre
129
122
  modelObjectId: id,
130
123
  serverEndPoint,
131
124
  data,
132
- schema: pageForm.schema
125
+ schema: pageForm.schema,
133
126
  });
134
127
  setLoading(false);
135
128
  if (!['number', 'string'].includes(typeof response)) {
136
129
  onTriggerSnackBar({
137
130
  msg: 'Houve um problema ao salvar seus dados! Por favor, entre em contato',
138
- severity: 'error'
131
+ severity: 'error',
139
132
  });
140
133
  console.log({
141
134
  msg: 'Error saving model',
142
135
  errors: response,
143
- data
136
+ data,
144
137
  });
145
138
  return false;
146
139
  }
147
140
  onTriggerSnackBar({
148
- msg: (id)
149
- ? 'Dados atualizados com sucesso!'
150
- : 'Criado com sucesso!'
141
+ msg: id ? 'Dados atualizados com sucesso!' : 'Criado com sucesso!',
151
142
  });
152
143
  return response;
153
144
  });
154
145
  const populateOptionsAC = (optionsACModels) => {
155
146
  for (const model of optionsACModels) {
156
- (0, api_1.getAutoComplete)({ model, serverEndPoint }).then(options => {
157
- setOptionsAC({ [model]: options });
147
+ localGetAutoComplete(model).then((options) => {
148
+ if (options !== false) {
149
+ setOptionsAC({ [model]: options });
150
+ }
158
151
  });
159
152
  }
160
153
  };
161
- ;
162
154
  const populateInitialValues = (_a) => {
163
155
  var { model, id, isEditModel, extraValidators } = _a, object = __rest(_a, ["model", "id", "isEditModel", "extraValidators"]);
164
156
  const values = (0, utils_1.populateValues)(object);
165
157
  const yupSchema = (0, utils_1.buildGenericYupValidationSchema)(Object.assign(Object.assign({}, object), { data: values, extraValidators }));
166
158
  setPageForm({
167
- model,
159
+ // model,
168
160
  id,
169
161
  schema: object.schema,
170
- modelOptions: object.modelOptions,
162
+ // modelOptions: object.modelOptions,
171
163
  initialValues: values,
172
- validationSchema: yupSchema
164
+ validationSchema: yupSchema,
165
+ forceReload: false,
173
166
  });
174
167
  return values;
175
168
  };
176
- const onEditModel = ({ fieldKey, index, model, id, labelKey, setValue, getValues }) => {
169
+ const onEditModelSave = (data) => __awaiter(this, void 0, void 0, function* () {
170
+ setDialog({ open: false });
171
+ handleLoading(true);
172
+ const { fieldKey, index, model, id, labelKey, setValue, getValues, schema } = editModel.current;
173
+ const response = yield (0, api_1.updateDataBySchema)({
174
+ model,
175
+ modelObjectId: id,
176
+ serverEndPoint,
177
+ data,
178
+ schema,
179
+ });
180
+ if (!['number', 'string'].includes(typeof response)) {
181
+ onTriggerSnackBar({
182
+ msg: 'Houve um problema ao salvar seus dados! Por favor, entre em contato',
183
+ severity: 'error',
184
+ });
185
+ console.log({
186
+ msg: 'Error saving model',
187
+ errors: response,
188
+ data,
189
+ });
190
+ return false;
191
+ }
192
+ onTriggerSnackBar({
193
+ msg: 'Alterações salvas com sucesso!',
194
+ severity: 'info',
195
+ });
196
+ if (setValue && getValues) {
197
+ const targetKey = fieldKey && index >= 0 ? `${fieldKey}.${index}.${model}` : model;
198
+ const newValue = Object.assign(Object.assign(Object.assign({}, getValues(targetKey)), data), { label: data[labelKey] });
199
+ setValue(targetKey, newValue);
200
+ populateOptionsAC([model]);
201
+ }
202
+ handleLoading(false);
203
+ });
204
+ const onEditModel = ({ fieldKey, index, model, id, labelKey, setValue, getValues, }) => {
177
205
  setDialog({
178
206
  open: true,
179
- loading: true
207
+ loading: true,
180
208
  });
181
- (0, api_1.getJSONSchema)({ model, serverEndPoint, id }).then(data => {
182
- const jsonSchemaSubmit = (e) => __awaiter(this, void 0, void 0, function* () {
183
- jsonSchemaFormRef.current.onSubmit(e);
184
- return true;
209
+ (0, api_1.getGenericModel)({ model, serverEndPoint, id }).then((result) => {
210
+ if (result === false) {
211
+ setDialog({
212
+ open: true,
213
+ loading: false,
214
+ title: 'Falha ao carregar o formulário',
215
+ Body: react_1.default.createElement(react_1.default.Fragment, null, "N\u00E3o foi poss\u00EDvel carregar o formul\u00E1rio!"),
216
+ });
217
+ return false;
218
+ }
219
+ const values = (0, utils_1.populateValues)(result);
220
+ const yupSchema = (0, utils_1.buildGenericYupValidationSchema)({
221
+ schema: result.schema,
222
+ data: values,
185
223
  });
186
224
  setDialog({
225
+ open: true,
187
226
  loading: false,
188
227
  title: 'Editar',
189
- Body: react_1.default.createElement(DialogJSONSchemaForm_1.default, { jsonSchemaFormRef: jsonSchemaFormRef, schema: data.serializer.schema, uiSchema: data.serializer.uiSchema, formData: data.formData, onSubmit: onEditModelSave }),
190
- Actions: react_1.default.createElement(DialogActions_1.default, { setDialog: setDialog, handleSave: jsonSchemaSubmit })
228
+ Body: (react_1.default.createElement(DialogFormBySchema_1.default, { schema: result.schema, validationSchema: yupSchema, initialValues: values, setDialog: setDialog, getAutoComplete: localGetAutoComplete, onEditModelSave: onEditModelSave })),
229
+ Actions: react_1.default.createElement(react_1.default.Fragment, null),
191
230
  });
192
231
  editModel.current = {
193
232
  fieldKey,
@@ -196,49 +235,20 @@ function APIWrapper({ setLoading, handleLoading, setSnackBar, setDialog, childre
196
235
  id,
197
236
  labelKey,
198
237
  setValue,
199
- getValues
238
+ getValues,
239
+ schema: result.schema,
200
240
  };
201
241
  });
202
242
  };
203
- const onEditModelSave = ({ formData }) => __awaiter(this, void 0, void 0, function* () {
204
- setDialog({ open: false });
205
- setLoading(true);
206
- const { fieldKey, index, model, id, labelKey, setValue, getValues } = editModel.current;
207
- const newModelId = yield (0, api_1.createOrUpdateJSONSchema)({
208
- model,
209
- serverEndPoint,
210
- id,
211
- formData
212
- });
213
- if (newModelId.errors) {
214
- console.log(newModelId.errors);
215
- onTriggerSnackBar({
216
- msg: 'Houve um problema ao salvar a alteração! Por favor, entre em contato.',
217
- severity: 'error'
218
- });
219
- return;
220
- }
221
- onTriggerSnackBar({
222
- msg: 'Alterações salvas com sucesso!',
223
- severity: 'info'
224
- });
225
- const targetKey = (fieldKey && index >= 0)
226
- ? `${fieldKey}.${index}.${model}`
227
- : model;
228
- const newValue = Object.assign(Object.assign(Object.assign({}, getValues(targetKey)), formData), { label: formData[labelKey] });
229
- setValue(targetKey, newValue);
230
- populateOptionsAC([model]);
231
- setLoading(false);
232
- });
233
243
  const onDeleteModel = (model, id, onSuccess) => {
234
244
  setDialog({
235
245
  open: true,
236
246
  loading: false,
237
247
  title: 'Apagar',
238
248
  Body: 'Tem certeza de que deseja apagar este item?',
239
- Actions: react_1.default.createElement(DialogActions_1.default, { setDialog: setDialog, handleSave: (e) => {
249
+ Actions: (react_1.default.createElement(DialogActions_1.default, { setDialog: setDialog, handleSave: (e) => {
240
250
  return onDeleteModelSave(model, id, onSuccess);
241
- }, btnConfirm: "Sim, apagar" })
251
+ }, btnConfirm: "Sim, apagar" })),
242
252
  });
243
253
  };
244
254
  const onDeleteModelSave = (model, id, onSuccess) => __awaiter(this, void 0, void 0, function* () {
@@ -248,7 +258,7 @@ function APIWrapper({ setLoading, handleLoading, setSnackBar, setDialog, childre
248
258
  if (ret !== false) {
249
259
  onTriggerSnackBar({
250
260
  msg: 'Apagado com com sucesso!',
251
- severity: 'info'
261
+ severity: 'info',
252
262
  });
253
263
  if (onSuccess) {
254
264
  onSuccess({});
@@ -258,11 +268,11 @@ function APIWrapper({ setLoading, handleLoading, setSnackBar, setDialog, childre
258
268
  setLoading(false);
259
269
  onTriggerSnackBar({
260
270
  msg: 'Houve um problema ao remover o item! Por favor, entre em contato.',
261
- severity: 'error'
271
+ severity: 'error',
262
272
  });
263
273
  return false;
264
274
  });
265
- const onEditRelatedModelSave = ({ model, id, relatedModel, relatedModelId, newRow, schema, onlyAddExisting }) => __awaiter(this, void 0, void 0, function* () {
275
+ const onEditRelatedModelSave = ({ model, id, relatedModel, relatedModelId, newRow, schema, onlyAddExisting, }) => __awaiter(this, void 0, void 0, function* () {
266
276
  const updateUrl = `${model}/${id}/${relatedModel}`;
267
277
  if (onlyAddExisting) {
268
278
  const response = yield (0, api_1.addExistingRelatedModel)({
@@ -272,28 +282,28 @@ function APIWrapper({ setLoading, handleLoading, setSnackBar, setDialog, childre
272
282
  data: {
273
283
  onlyAddExisting: {
274
284
  key: relatedModel,
275
- value: newRow.id_to_add
276
- }
277
- }
285
+ value: newRow.id_to_add,
286
+ },
287
+ },
278
288
  });
279
289
  if (Object.prototype.hasOwnProperty.call(response, 'errors')) {
280
290
  console.log(response);
281
291
  onTriggerSnackBar({
282
292
  msg: 'Houve um problema ao salvar a alteração! Por favor, entre em contato.',
283
- severity: 'error'
293
+ severity: 'error',
284
294
  });
285
295
  return false;
286
296
  }
287
297
  onTriggerSnackBar({
288
298
  msg: 'Alterações salvas com sucesso!',
289
- severity: 'info'
299
+ severity: 'info',
290
300
  });
291
301
  const object = yield (0, api_1.getGenericModel)({
292
302
  model,
293
303
  id,
294
304
  serverEndPoint,
295
305
  relatedModel,
296
- relatedModelId: newRow.id_to_add
306
+ relatedModelId: newRow.id_to_add,
297
307
  });
298
308
  return object;
299
309
  }
@@ -307,37 +317,67 @@ function APIWrapper({ setLoading, handleLoading, setSnackBar, setDialog, childre
307
317
  serverEndPoint,
308
318
  data: newRow,
309
319
  schema,
310
- path: updateUrl
320
+ path: updateUrl,
311
321
  });
312
322
  if (response && !Object.prototype.hasOwnProperty.call(response, 'errors')) {
313
323
  onTriggerSnackBar({
314
324
  msg: 'Alterações salvas com sucesso!',
315
- severity: 'info'
325
+ severity: 'info',
316
326
  });
317
327
  return response;
318
328
  }
319
329
  onTriggerSnackBar({
320
330
  msg: 'Não foi possível salvar os dados. Confira os erros.',
321
- severity: 'error'
331
+ severity: 'error',
322
332
  });
323
333
  return false;
324
334
  });
325
- const onDeleteRelatedModel = ({ model, id, relatedModel, relatedModelId }) => __awaiter(this, void 0, void 0, function* () {
335
+ const onDeleteRelatedModel = ({ model, id, relatedModel, relatedModelId, }) => __awaiter(this, void 0, void 0, function* () {
326
336
  const deleteUrl = `${model}/${id}/${relatedModel}`;
327
337
  const response = yield (0, api_1.deleteData)(deleteUrl, serverEndPoint, relatedModelId);
328
338
  if (response) {
329
339
  onTriggerSnackBar({
330
340
  msg: 'Alterações salvas com sucesso!',
331
- severity: 'info'
341
+ severity: 'info',
332
342
  });
333
343
  return response;
334
344
  }
335
345
  onTriggerSnackBar({
336
346
  msg: 'Houve um problema ao remover o item! Por favor, entre em contato.',
337
- severity: 'error'
347
+ severity: 'error',
338
348
  });
339
349
  return false;
340
350
  });
351
+ if (!serverEndPoint) {
352
+ console.error('There must be a serverEndPoint properly configured for apiWrapper to work!');
353
+ return react_1.default.createElement(react_1.default.Fragment, null, children);
354
+ }
355
+ function localGetAutoComplete(model) {
356
+ return (0, api_1.getAutoComplete)({ model, serverEndPoint });
357
+ }
358
+ function localGetGenericModelList(params) {
359
+ return (0, api_1.getGenericModelList)(Object.assign(Object.assign({}, params), { serverEndPoint }));
360
+ }
361
+ function localGetAllModels() {
362
+ return __awaiter(this, void 0, void 0, function* () {
363
+ return yield (0, api_1.getAllModels)(serverEndPoint);
364
+ });
365
+ }
366
+ function localLoginByPayload(payload) {
367
+ return __awaiter(this, void 0, void 0, function* () {
368
+ return yield (0, api_1.loginByPayload)(payload, serverEndPoint);
369
+ });
370
+ }
371
+ function localSignUp(data) {
372
+ return __awaiter(this, void 0, void 0, function* () {
373
+ return yield (0, api_1.signUp)(data, serverEndPoint);
374
+ });
375
+ }
376
+ function localGetSignupOptions() {
377
+ return __awaiter(this, void 0, void 0, function* () {
378
+ return yield (0, api_1.getSignUpOptions)(serverEndPoint);
379
+ });
380
+ }
341
381
  return (react_1.default.createElement(APIWrapperContext_1.APIWrapperContext.Provider, { value: {
342
382
  usuaria,
343
383
  updateUsuaria,
@@ -347,11 +387,19 @@ function APIWrapper({ setLoading, handleLoading, setSnackBar, setDialog, childre
347
387
  optionsACState: [optionsAC, setOptionsAC],
348
388
  pageFormState: [pageForm, setPageForm],
349
389
  onEditModel,
390
+ onEditModelSave,
350
391
  onDeleteModel,
351
392
  onEditRelatedModelSave,
352
393
  onDeleteRelatedModel,
353
394
  onTriggerSnackBar,
354
395
  setDialog,
396
+ // api utils:
397
+ getAutoComplete: localGetAutoComplete,
398
+ getGenericModelList: localGetGenericModelList,
399
+ getAllModels: localGetAllModels,
400
+ loginByPayload: localLoginByPayload,
401
+ getSignUpOptions: localGetSignupOptions,
402
+ signUp: localSignUp,
355
403
  // Remove after integrating new "onEditModel" to package:
356
404
  serverEndPoint,
357
405
  editModel,
@@ -1,6 +1,8 @@
1
1
  import React from 'react';
2
- import { FieldValues, SubmitHandler } from 'react-hook-form';
3
- import { ItemSchemaColumnsType, Id, Item, SchemaType } from '../utils';
2
+ import { FieldValues, SubmitHandler, UseFormGetValues, UseFormSetValue } from 'react-hook-form';
3
+ import { AxiosResponse } from 'axios';
4
+ import { ItemSchemaColumnsType, Id, Item, SchemaType, DataSchemaColumnsType } from '../utils';
5
+ import { GetGenericModelListProps } from '../api';
4
6
  import { serverEndPointType } from './DRFReactBySchemaContext';
5
7
  export interface LoadSinglePageDataProps {
6
8
  model: string;
@@ -18,15 +20,16 @@ export interface PageFormType {
18
20
  schema: SchemaType | null;
19
21
  initialValues: Item | null;
20
22
  validationSchema: Item | null;
23
+ forceReload?: boolean;
21
24
  }
22
25
  export interface OnEditModelType {
23
26
  fieldKey?: string;
24
- index?: string;
27
+ index?: number;
25
28
  model: string;
26
29
  id: Id;
27
30
  labelKey: string;
28
- setValue?: (p: any) => void;
29
- getValues?: (p: any) => any;
31
+ setValue?: UseFormSetValue<FieldValues>;
32
+ getValues?: UseFormGetValues<FieldValues>;
30
33
  }
31
34
  export interface OnEditRelatedModelType {
32
35
  model: string;
@@ -62,16 +65,26 @@ export interface APIWrapperContextType {
62
65
  onSubmit: DRFReactBySchemaSubmitHandler;
63
66
  loadSinglePageData: (p: LoadSinglePageDataProps) => Promise<boolean | FieldValues>;
64
67
  handleLoading: (p: boolean) => void;
65
- optionsACState: [OptionsACType | null, React.Dispatch<OptionsACType>];
66
- pageFormState: [Record<string, any> | null, React.Dispatch<PageFormType>];
68
+ optionsACState: [OptionsACType | null, (x: Partial<OptionsACType>) => void];
69
+ pageFormState: [PageFormType | null, (x: Partial<PageFormType>) => void];
67
70
  onEditModel: (p: OnEditModelType) => void;
71
+ onEditModelSave: (p: Item) => Promise<false | undefined>;
68
72
  onDeleteModel: (model: string, id: Id, onSuccess?: (e: React.BaseSyntheticEvent) => any) => void;
69
73
  onEditRelatedModelSave: (p: OnEditRelatedModelType) => Promise<boolean | Id | ItemSchemaColumnsType>;
70
74
  onDeleteRelatedModel: (p: OnDeleteRelatedModelType) => Promise<boolean>;
71
75
  onTriggerSnackBar: (p: SnackBarType) => void;
72
- setDialog: React.Dispatch<React.SetStateAction<DialogType>>;
76
+ setDialog: (x: Partial<DialogType>) => void;
77
+ getAutoComplete: (model: string) => Promise<false | Item[]>;
78
+ getGenericModelList: (x: Omit<GetGenericModelListProps, 'serverEndPoint'>) => Promise<false | DataSchemaColumnsType>;
79
+ getAllModels: () => Promise<Item[]>;
80
+ loginByPayload: (payload: Item) => Promise<boolean>;
81
+ getSignUpOptions: () => Promise<false | SchemaType>;
82
+ signUp: (data: Item) => Promise<false | AxiosResponse<any, any> | {
83
+ errors: unknown;
84
+ } | undefined>;
73
85
  serverEndPoint: serverEndPointType;
74
86
  editModel: React.MutableRefObject<Item>;
75
87
  populateOptionsAC: (optionsACModels: string[]) => void;
76
88
  }
77
- export declare const APIWrapperContext: React.Context<APIWrapperContextType | null>;
89
+ export declare const APIWrapperContext: React.Context<APIWrapperContextType>;
90
+ export declare const useAPIWrapper: () => APIWrapperContextType;
@@ -1,15 +1,48 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
13
  };
5
14
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.APIWrapperContext = void 0;
15
+ exports.useAPIWrapper = exports.APIWrapperContext = void 0;
7
16
  const react_1 = __importDefault(require("react"));
8
- ;
9
- ;
10
- ;
11
- ;
12
- ;
13
- ;
14
- ;
15
- exports.APIWrapperContext = react_1.default.createContext(null);
17
+ exports.APIWrapperContext = react_1.default.createContext({
18
+ usuaria: null,
19
+ updateUsuaria: () => undefined,
20
+ onSubmit: () => undefined,
21
+ loadSinglePageData: () => __awaiter(void 0, void 0, void 0, function* () { return false; }),
22
+ handleLoading: () => undefined,
23
+ optionsACState: [null, () => undefined],
24
+ pageFormState: [null, () => undefined],
25
+ onEditModel: () => undefined,
26
+ onEditModelSave: () => __awaiter(void 0, void 0, void 0, function* () { return undefined; }),
27
+ onDeleteModel: () => undefined,
28
+ onEditRelatedModelSave: () => __awaiter(void 0, void 0, void 0, function* () { return false; }),
29
+ onDeleteRelatedModel: () => __awaiter(void 0, void 0, void 0, function* () { return false; }),
30
+ onTriggerSnackBar: () => undefined,
31
+ setDialog: () => undefined,
32
+ // api utils:
33
+ getAutoComplete: () => __awaiter(void 0, void 0, void 0, function* () { return []; }),
34
+ getGenericModelList: () => __awaiter(void 0, void 0, void 0, function* () { return false; }),
35
+ getAllModels: () => __awaiter(void 0, void 0, void 0, function* () { return []; }),
36
+ loginByPayload: () => __awaiter(void 0, void 0, void 0, function* () { return false; }),
37
+ getSignUpOptions: () => __awaiter(void 0, void 0, void 0, function* () { return false; }),
38
+ signUp: () => __awaiter(void 0, void 0, void 0, function* () { return false; }),
39
+ // Remove after integrating new "onEditModel" to package:
40
+ serverEndPoint: { url: '', apiTokenUrl: '' },
41
+ editModel: { current: {} },
42
+ populateOptionsAC: () => undefined,
43
+ });
44
+ const useAPIWrapper = () => {
45
+ const context = react_1.default.useContext(exports.APIWrapperContext);
46
+ return context;
47
+ };
48
+ exports.useAPIWrapper = useAPIWrapper;
@@ -2,10 +2,10 @@ import React from 'react';
2
2
  import { Theme } from '@mui/material/styles';
3
3
  export interface serverEndPointType {
4
4
  url: string;
5
- autocomplete?: string;
6
- api?: string;
7
- JSONSchema?: string;
8
5
  apiTokenUrl: string;
6
+ api?: string;
7
+ signUp?: string;
8
+ autocomplete?: string;
9
9
  getToken?: string;
10
10
  refreshToken?: string;
11
11
  verifyToken?: string;
@@ -17,4 +17,4 @@ export interface DRFReactBySchemaContextType {
17
17
  firstBatchLength?: number;
18
18
  }
19
19
  export declare const DRFReactBySchemaContext: React.Context<DRFReactBySchemaContextType>;
20
- export declare const useTheme: () => Theme;
20
+ export declare const useDRFReactBySchema: () => DRFReactBySchemaContextType;
@@ -3,17 +3,17 @@ 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.useTheme = exports.DRFReactBySchemaContext = void 0;
6
+ exports.useDRFReactBySchema = exports.DRFReactBySchemaContext = void 0;
7
7
  const react_1 = __importDefault(require("react"));
8
8
  const theme_1 = __importDefault(require("../styles/theme"));
9
9
  exports.DRFReactBySchemaContext = react_1.default.createContext({
10
10
  serverEndPoint: null,
11
11
  theme: theme_1.default,
12
12
  isInBatches: true,
13
- firstBatchLength: 100
13
+ firstBatchLength: 100,
14
14
  });
15
- const useTheme = () => {
15
+ const useDRFReactBySchema = () => {
16
16
  const context = react_1.default.useContext(exports.DRFReactBySchemaContext);
17
- return context.theme;
17
+ return context;
18
18
  };
19
- exports.useTheme = useTheme;
19
+ exports.useDRFReactBySchema = useDRFReactBySchema;
@@ -9,5 +9,5 @@ interface DRFReactBySchemaProviderProps extends DRFReactBySchemaContextType {
9
9
  * @param {*} props
10
10
  * @returns {*}
11
11
  */
12
- declare const DRFReactBySchemaProvider: ({ serverEndPoint, theme, isInBatches, firstBatchLength, children }: DRFReactBySchemaProviderProps) => JSX.Element;
12
+ declare const DRFReactBySchemaProvider: ({ serverEndPoint, theme, isInBatches, firstBatchLength, children, }: DRFReactBySchemaProviderProps) => JSX.Element;
13
13
  export default DRFReactBySchemaProvider;
@@ -15,7 +15,7 @@ const DRFReactBySchemaContext_1 = require("./DRFReactBySchemaContext");
15
15
  * @param {*} props
16
16
  * @returns {*}
17
17
  */
18
- const DRFReactBySchemaProvider = ({ serverEndPoint, theme, isInBatches, firstBatchLength, children }) => {
18
+ const DRFReactBySchemaProvider = ({ serverEndPoint, theme, isInBatches, firstBatchLength, children, }) => {
19
19
  if (serverEndPoint) {
20
20
  const defaultKeys = [
21
21
  'autocomplete',
@@ -23,30 +23,27 @@ const DRFReactBySchemaProvider = ({ serverEndPoint, theme, isInBatches, firstBat
23
23
  ['JSONSchema', 'jsonschema'],
24
24
  ['getToken', ''],
25
25
  ['refreshToken', 'refresh'],
26
- ['verifyToken', 'verify']
26
+ ['verifyToken', 'verify'],
27
27
  ];
28
28
  for (const key of defaultKeys) {
29
- const hybridKey = (typeof key === 'string')
29
+ const hybridKey = typeof key === 'string'
30
30
  ? key
31
31
  : key[0];
32
- const hybridUrl = (typeof key === 'string')
33
- ? key
34
- : key[1];
32
+ const hybridUrl = typeof key === 'string' ? key : key[1];
35
33
  if (serverEndPoint[hybridKey]) {
36
34
  continue;
37
35
  }
38
36
  serverEndPoint[hybridKey] = `${serverEndPoint.url}/${hybridUrl}`;
39
37
  }
40
38
  }
41
- const mergedTheme = (theme)
42
- ? Object.assign(Object.assign({}, theme_1.default), theme) : theme_1.default;
39
+ const mergedTheme = theme ? Object.assign(Object.assign({}, theme_1.default), theme) : theme_1.default;
43
40
  return (react_1.default.createElement(styles_1.ThemeProvider, { theme: mergedTheme },
44
41
  react_1.default.createElement(CssBaseline_1.default, null),
45
42
  react_1.default.createElement(DRFReactBySchemaContext_1.DRFReactBySchemaContext.Provider, { value: {
46
43
  serverEndPoint,
47
- theme,
44
+ theme: mergedTheme,
48
45
  isInBatches,
49
- firstBatchLength
46
+ firstBatchLength,
50
47
  } },
51
48
  react_1.default.createElement(Overlays_1.default, { children: children }))));
52
49
  };
@@ -17,5 +17,5 @@ interface FormProps {
17
17
  formButtonsSx?: any;
18
18
  children: React.ReactNode;
19
19
  }
20
- export default function Form({ model, id, objTitleField, optionsACModels, cancelBtn, cancelBtnLabel, deleteBtnLabel, saveAndCreateNewBtnLabel, saveAndContinueBtnLabel, saveBtnLabel, onSuccess, borderBottom, saveAndContinue, formButtonsSx, children }: FormProps): JSX.Element;
20
+ export default function Form({ model, id, objTitleField, optionsACModels, cancelBtn, cancelBtnLabel, deleteBtnLabel, saveAndCreateNewBtnLabel, saveAndContinueBtnLabel, saveBtnLabel, onSuccess, borderBottom, saveAndContinue, formButtonsSx, children, }: FormProps): JSX.Element;
21
21
  export {};