drf-react-by-schema 0.20.10 → 0.21.0

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 (53) hide show
  1. package/dist/@types/index.d.ts +4 -1
  2. package/dist/@types/index.d.ts.map +1 -1
  3. package/dist/api.d.ts.map +1 -1
  4. package/dist/api.js +1 -0
  5. package/dist/components/DataGridBySchemaEditable/DataGridDesktop.d.ts.map +1 -1
  6. package/dist/components/DataGridBySchemaEditable/DataGridDesktop.js +27 -29
  7. package/dist/components/DataGridBySchemaEditable.d.ts.map +1 -1
  8. package/dist/components/DataGridBySchemaEditable.js +1 -0
  9. package/dist/components/details/DetailBySchema.d.ts.map +1 -1
  10. package/dist/components/details/DetailBySchema.js +2 -2
  11. package/dist/components/details/DetailFieldBySchema.d.ts +1 -1
  12. package/dist/components/details/DetailFieldBySchema.d.ts.map +1 -1
  13. package/dist/components/details/DetailFieldBySchema.js +5 -1
  14. package/dist/components/forms/DialogFormBySchema.d.ts +1 -1
  15. package/dist/components/forms/DialogFormBySchema.d.ts.map +1 -1
  16. package/dist/components/forms/DialogFormBySchema.js +1 -1
  17. package/dist/components/forms/FieldBySchema.d.ts +1 -1
  18. package/dist/components/forms/FieldBySchema.d.ts.map +1 -1
  19. package/dist/components/forms/FieldBySchema.js +0 -3
  20. package/dist/components/forms/inputs/AutocompleteFieldBySchema.d.ts +1 -1
  21. package/dist/components/forms/inputs/AutocompleteFieldBySchema.d.ts.map +1 -1
  22. package/dist/components/forms/inputs/AutocompleteFieldBySchema.js +10 -6
  23. package/dist/components/forms/inputs/BooleanFieldBySchema.d.ts +1 -1
  24. package/dist/components/forms/inputs/BooleanFieldBySchema.d.ts.map +1 -1
  25. package/dist/components/forms/inputs/BooleanFieldBySchema.js +8 -3
  26. package/dist/components/forms/inputs/DesktopDatePickerBySchema.d.ts +1 -1
  27. package/dist/components/forms/inputs/DesktopDatePickerBySchema.d.ts.map +1 -1
  28. package/dist/components/forms/inputs/DesktopDatePickerBySchema.js +9 -4
  29. package/dist/components/forms/inputs/DesktopDateTimePickerBySchema.d.ts +1 -1
  30. package/dist/components/forms/inputs/DesktopDateTimePickerBySchema.d.ts.map +1 -1
  31. package/dist/components/forms/inputs/DesktopDateTimePickerBySchema.js +8 -3
  32. package/dist/components/forms/inputs/EditableAutocompleteFieldBySchema.d.ts.map +1 -1
  33. package/dist/components/forms/inputs/EditableAutocompleteFieldBySchema.js +19 -14
  34. package/dist/components/forms/inputs/FileFieldBySchema.d.ts +1 -1
  35. package/dist/components/forms/inputs/FileFieldBySchema.d.ts.map +1 -1
  36. package/dist/components/forms/inputs/FileFieldBySchema.js +14 -10
  37. package/dist/components/forms/inputs/FloatFieldBySchema.d.ts +1 -1
  38. package/dist/components/forms/inputs/FloatFieldBySchema.d.ts.map +1 -1
  39. package/dist/components/forms/inputs/FloatFieldBySchema.js +13 -9
  40. package/dist/components/forms/inputs/PatternFieldBySchema.d.ts +1 -1
  41. package/dist/components/forms/inputs/PatternFieldBySchema.d.ts.map +1 -1
  42. package/dist/components/forms/inputs/PatternFieldBySchema.js +8 -4
  43. package/dist/components/forms/inputs/TextFieldBySchema.d.ts +1 -1
  44. package/dist/components/forms/inputs/TextFieldBySchema.d.ts.map +1 -1
  45. package/dist/components/forms/inputs/TextFieldBySchema.js +8 -4
  46. package/dist/context/APIWrapper.d.ts.map +1 -1
  47. package/dist/context/APIWrapper.js +17 -4
  48. package/dist/context/APIWrapperContext.d.ts +2 -1
  49. package/dist/context/APIWrapperContext.d.ts.map +1 -1
  50. package/dist/utils.d.ts +5 -2
  51. package/dist/utils.d.ts.map +1 -1
  52. package/dist/utils.js +63 -24
  53. package/package.json +1 -1
@@ -13,7 +13,11 @@ const dayjs_1 = __importDefault(require("dayjs"));
13
13
  require("dayjs/locale/pt-br");
14
14
  const utils_1 = require("../../../utils");
15
15
  function DesktopDateTimePickerBySchema({ name, schema, control, errors, fieldKey, index, sx = { mr: 2, mt: 2 }, autoFocus, disabled, }) {
16
- const model = name;
16
+ if (!(name in schema)) {
17
+ console.error(`DesktopDateTimePickerBySchema: could not find schema for ${name}! Not rendering`);
18
+ return;
19
+ }
20
+ const fieldSchema = schema[name];
17
21
  if (fieldKey && index && index >= 0) {
18
22
  name = `${fieldKey}.${index}.${name}`;
19
23
  }
@@ -26,16 +30,17 @@ function DesktopDateTimePickerBySchema({ name, schema, control, errors, fieldKey
26
30
  })
27
31
  : {
28
32
  error: errors && Boolean(errors[name]),
29
- helperText: errors && errors[name] ? errors[name].message : schema[name].help_text || '',
33
+ helperText: errors && errors[name] ? errors[name].message : fieldSchema.help_text || '',
30
34
  };
31
35
  return (react_1.default.createElement(react_hook_form_1.Controller, { name: name, control: control, render: ({ field }) => (react_1.default.createElement(LocalizationProvider_1.LocalizationProvider, { dateAdapter: AdapterDayjs_1.AdapterDayjs, adapterLocale: "pt-br" },
32
- react_1.default.createElement(DesktopDateTimePicker_1.DesktopDateTimePicker, Object.assign({}, field, { value: (0, dayjs_1.default)(field.value), label: schema[model].label, disabled: schema[model].disabled === true || disabled === true, format: "DD/MM/YYYY HH:mm", sx: Object.assign({ mt: 2, mb: 1 }, sx), slotProps: {
36
+ react_1.default.createElement(DesktopDateTimePicker_1.DesktopDateTimePicker, Object.assign({}, field, { value: (0, dayjs_1.default)(field.value), label: fieldSchema.label, disabled: fieldSchema.disabled === true || disabled === true, format: "DD/MM/YYYY HH:mm", sx: Object.assign({ mt: 2, mb: 1 }, sx), slotProps: {
33
37
  textField: {
34
38
  error,
35
39
  helperText,
36
40
  sx,
37
41
  margin: 'normal',
38
42
  autoFocus,
43
+ required: (0, utils_1.isFieldRequired)(fieldSchema),
39
44
  },
40
45
  } })))) }));
41
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EditableAutocompleteFieldBySchema.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/inputs/EditableAutocompleteFieldBySchema.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAQnD,OAAO,EAAQ,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAO3D,QAAA,MAAM,iCAAiC,gFA0VtC,CAAC;AAGF,eAAe,iCAAiC,CAAC"}
1
+ {"version":3,"file":"EditableAutocompleteFieldBySchema.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/inputs/EditableAutocompleteFieldBySchema.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAQnD,OAAO,EAAQ,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAO3D,QAAA,MAAM,iCAAiC,gFAkWtC,CAAC;AAGF,eAAe,iCAAiC,CAAC"}
@@ -63,13 +63,6 @@ const EditableAutocompleteFieldBySchema = react_1.default.forwardRef((_a, _) =>
63
63
  const { setDialog } = (0, APIWrapperContext_1.useAPIWrapper)();
64
64
  const [options, setOptions] = (0, react_1.useState)(null);
65
65
  const model = name;
66
- const label = schema[model].label;
67
- if (!optionsModel) {
68
- optionsModel = model;
69
- }
70
- if (fieldKey && index && index >= 0) {
71
- name = `${fieldKey}.${index}.${name}`;
72
- }
73
66
  (0, react_1.useEffect)(() => {
74
67
  if (optionsAC && optionsModel && optionsAC[optionsModel]) {
75
68
  setOptions(optionsAC[optionsModel]);
@@ -97,6 +90,18 @@ const EditableAutocompleteFieldBySchema = react_1.default.forwardRef((_a, _) =>
97
90
  const harmonizedValues = options.find((option) => option.id === valuesInitial.id);
98
91
  setValue(model, harmonizedValues);
99
92
  }, [options, setValue, getValues, model, multiple]);
93
+ if (!(name in schema)) {
94
+ console.error(`EditableAutocompleteFieldBySchema: could not find schema for ${name}! Not rendering`);
95
+ return;
96
+ }
97
+ const fieldSchema = schema[name];
98
+ const label = fieldSchema.label;
99
+ if (!optionsModel) {
100
+ optionsModel = model;
101
+ }
102
+ if (fieldKey && index && index >= 0) {
103
+ name = `${fieldKey}.${index}.${name}`;
104
+ }
100
105
  const { error, helperText } = fieldKey && index && index >= 0
101
106
  ? (0, utils_1.errorProps)({
102
107
  fieldKey,
@@ -106,14 +111,14 @@ const EditableAutocompleteFieldBySchema = react_1.default.forwardRef((_a, _) =>
106
111
  })
107
112
  : {
108
113
  error: errors && Boolean(errors[name]),
109
- helperText: errors && errors[name] ? errors[name].message : schema[name].help_text || '',
114
+ helperText: errors && errors[name] ? errors[name].message : fieldSchema.help_text || '',
110
115
  };
111
116
  if (options === null) {
112
117
  return react_1.default.createElement(react_1.default.Fragment, null);
113
118
  }
114
- if (!disabled && !schema[model].disabled && onEditModel && optionsModel) {
115
- return (react_1.default.createElement(react_hook_form_1.Controller, { control: control, name: name, render: ({ field }) => (react_1.default.createElement(Autocomplete_1.default, Object.assign({ key: name }, field, { id: name, options: options, disabled: schema[model].disabled === true, autoHighlight: true, isOptionEqualToValue: (option, value) => option.id === value.id, fullWidth: true, multiple: multiple, sx: sx, onChange: (e, value) => {
116
- let valueAr = value;
119
+ if (!disabled && !fieldSchema.disabled && onEditModel && optionsModel) {
120
+ return (react_1.default.createElement(react_hook_form_1.Controller, { control: control, name: name, render: ({ field }) => (react_1.default.createElement(Autocomplete_1.default, Object.assign({ key: name }, field, { id: name, options: options, disabled: fieldSchema.disabled === true, autoHighlight: true, isOptionEqualToValue: (option, value) => option.id === value.id, fullWidth: true, multiple: multiple, sx: sx, onChange: (e, value) => {
121
+ let valueAr = value || '';
117
122
  if (!multiple) {
118
123
  valueAr = [value];
119
124
  }
@@ -160,7 +165,7 @@ const EditableAutocompleteFieldBySchema = react_1.default.forwardRef((_a, _) =>
160
165
  if (onValueChange) {
161
166
  onValueChange(e);
162
167
  }
163
- }, renderInput: (params) => (react_1.default.createElement(TextField_1.default, Object.assign({}, params, { label: label, required: schema[model].required, margin: "normal", error: error, autoFocus: autoFocus, helperText: helperText, InputProps: Object.assign(Object.assign({}, params.InputProps), { endAdornment: (react_1.default.createElement(react_1.default.Fragment, null,
168
+ }, renderInput: (params) => (react_1.default.createElement(TextField_1.default, Object.assign({}, params, { label: label, required: (0, utils_1.isFieldRequired)(fieldSchema), margin: "normal", error: error, autoFocus: autoFocus, helperText: helperText, InputProps: Object.assign(Object.assign({}, params.InputProps), { endAdornment: (react_1.default.createElement(react_1.default.Fragment, null,
164
169
  !multiple && field.value && (react_1.default.createElement(IconButton_1.default, { size: "small", onClick: () => {
165
170
  if ((0, utils_1.isTmpId)(field.value.id)) {
166
171
  setDialog({
@@ -251,12 +256,12 @@ const EditableAutocompleteFieldBySchema = react_1.default.forwardRef((_a, _) =>
251
256
  }
252
257
  : undefined }))) }));
253
258
  }
254
- return (react_1.default.createElement(react_hook_form_1.Controller, { control: control, name: name, render: ({ field }) => (react_1.default.createElement(Autocomplete_1.default, Object.assign({ key: name }, field, { id: name, options: options, disabled: schema[model].disabled === true || disabled === true, autoHighlight: true, isOptionEqualToValue: (option, value) => option.id === value.id, fullWidth: true, multiple: multiple, sx: sx, onChange: (e, value) => {
259
+ return (react_1.default.createElement(react_hook_form_1.Controller, { control: control, name: name, render: ({ field }) => (react_1.default.createElement(Autocomplete_1.default, Object.assign({ key: name }, field, { id: name, options: options, disabled: fieldSchema.disabled === true || disabled === true, autoHighlight: true, isOptionEqualToValue: (option, value) => option.id === value.id, fullWidth: true, multiple: multiple, sx: sx, onChange: (e, value) => {
255
260
  field.onChange(value);
256
261
  if (onValueChange) {
257
262
  onValueChange(e);
258
263
  }
259
- }, renderInput: (params) => (react_1.default.createElement(TextField_1.default, Object.assign({}, params, { label: label, required: schema[model].required, margin: "normal", error: error, autoFocus: autoFocus, helperText: helperText }, other))), getOptionLabel: getOptionLabel, renderOption: renderOption }))) }));
264
+ }, renderInput: (params) => (react_1.default.createElement(TextField_1.default, Object.assign({}, params, { label: label, required: (0, utils_1.isFieldRequired)(fieldSchema), margin: "normal", error: error, autoFocus: autoFocus, helperText: helperText }, other))), getOptionLabel: getOptionLabel, renderOption: renderOption }))) }));
260
265
  });
261
266
  EditableAutocompleteFieldBySchema.displayName = 'EditableAutocompleteFieldBySchema';
262
267
  exports.default = EditableAutocompleteFieldBySchema;
@@ -1,4 +1,4 @@
1
1
  import React from 'react';
2
2
  import { FieldBySchemaProps } from '../../../@types';
3
- export default function FileFieldBySchema({ name, schema, control, errors, fieldKey, index, sx, onValueChange, autoFocus, disabled, ...other }: FieldBySchemaProps): React.JSX.Element;
3
+ export default function FileFieldBySchema({ name, schema, control, errors, fieldKey, index, sx, onValueChange, autoFocus, disabled, ...other }: FieldBySchemaProps): React.JSX.Element | undefined;
4
4
  //# sourceMappingURL=FileFieldBySchema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FileFieldBySchema.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/inputs/FileFieldBySchema.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAc1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAgBrD,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,IAAI,EACJ,MAAM,EACN,OAAO,EACP,MAAM,EACN,QAAQ,EACR,KAAK,EACL,EAAc,EACd,aAAa,EACb,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,kBAAkB,qBA2IpB"}
1
+ {"version":3,"file":"FileFieldBySchema.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/inputs/FileFieldBySchema.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAc1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAgBrD,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,IAAI,EACJ,MAAM,EACN,OAAO,EACP,MAAM,EACN,QAAQ,EACR,KAAK,EACL,EAAc,EACd,aAAa,EACb,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,kBAAkB,iCAgJpB"}
@@ -42,7 +42,11 @@ const VisuallyHiddenInput = (0, styles_1.styled)('input')({
42
42
  function FileFieldBySchema(_a) {
43
43
  var { name, schema, control, errors, fieldKey, index, sx = { mr: 2 }, onValueChange, autoFocus, disabled } = _a, other = __rest(_a, ["name", "schema", "control", "errors", "fieldKey", "index", "sx", "onValueChange", "autoFocus", "disabled"]);
44
44
  const { serverEndPoint } = (0, DRFReactBySchemaContext_1.useDRFReactBySchema)();
45
- const model = name;
45
+ if (!(name in schema)) {
46
+ console.error(`FileFieldBySchema: could not find schema for ${name}! Not rendering`);
47
+ return;
48
+ }
49
+ const fieldSchema = schema[name];
46
50
  if (fieldKey && index && index >= 0) {
47
51
  name = `${fieldKey}.${index}.${name}`;
48
52
  }
@@ -55,19 +59,19 @@ function FileFieldBySchema(_a) {
55
59
  })
56
60
  : {
57
61
  error: errors && Boolean(errors[name]),
58
- helperText: errors && errors[name] ? errors[name].message : schema[model].help_text || '',
62
+ helperText: errors && errors[name] ? errors[name].message : fieldSchema.help_text || '',
59
63
  };
60
- const fileTypeStr = schema[model].type === 'image upload' ? 'imagem' : 'documento';
61
- const accept = schema[model].allowed_mime_types
62
- ? schema[model].allowed_mime_types.join(', ')
63
- : schema[model].type === 'image upload'
64
+ const fileTypeStr = fieldSchema.type === 'image upload' ? 'imagem' : 'documento';
65
+ const accept = fieldSchema.allowed_mime_types
66
+ ? fieldSchema.allowed_mime_types.join(', ')
67
+ : fieldSchema.type === 'image upload'
64
68
  ? '/image*'
65
69
  : '*';
66
70
  return (react_1.default.createElement(react_hook_form_1.Controller, { name: name, control: control, render: ({ field }) => {
67
71
  var _a, _b, _c, _d;
68
72
  return (react_1.default.createElement(Box_1.default, { sx: Object.assign({ width: '100%' }, sx) },
69
73
  react_1.default.createElement(FormControl_1.default, { component: "fieldset", sx: { width: '100%' } },
70
- react_1.default.createElement(FormLabel_1.default, { component: "legend" }, schema[model].label),
74
+ react_1.default.createElement(FormLabel_1.default, { component: "legend" }, fieldSchema.label),
71
75
  react_1.default.createElement(FormControlLabel_1.default, { control: react_1.default.createElement(Box_1.default, { sx: {
72
76
  display: 'flex',
73
77
  flexDirection: 'column',
@@ -75,7 +79,7 @@ function FileFieldBySchema(_a) {
75
79
  width: '100%',
76
80
  } },
77
81
  (((_a = field.value) === null || _a === void 0 ? void 0 : _a.url) || ((_b = field.value) === null || _b === void 0 ? void 0 : _b.src)) &&
78
- schema[model].type === 'image upload' && (react_1.default.createElement("img", { src: field.value.url
82
+ fieldSchema.type === 'image upload' && (react_1.default.createElement("img", { src: field.value.url
79
83
  ? `${serverEndPoint === null || serverEndPoint === void 0 ? void 0 : serverEndPoint.url}${field.value.url}`
80
84
  : field.value.src, alt: field.value.name, title: field.value.name, style: {
81
85
  width: '100%',
@@ -88,7 +92,7 @@ function FileFieldBySchema(_a) {
88
92
  " (",
89
93
  (0, utils_1.formatFileSize)(field.value.size),
90
94
  ")")),
91
- react_1.default.createElement(Button_1.default, { component: "label", variant: "outlined", startIcon: react_1.default.createElement(CloudUpload_1.default, null), disabled: schema[model].disabled === true || disabled === true, color: error ? 'error' : 'primary' },
95
+ react_1.default.createElement(Button_1.default, { component: "label", variant: "outlined", startIcon: react_1.default.createElement(CloudUpload_1.default, null), disabled: fieldSchema.disabled === true || disabled === true, color: error ? 'error' : 'primary' },
92
96
  field.value ? `Trocar ${fileTypeStr}` : `Enviar ${fileTypeStr}`,
93
97
  react_1.default.createElement(VisuallyHiddenInput, Object.assign({ type: "file", onChange: (e) => {
94
98
  var _a;
@@ -126,7 +130,7 @@ function FileFieldBySchema(_a) {
126
130
  }
127
131
  }, accept: accept, autoFocus: autoFocus }, other)))), label: '',
128
132
  // labelPlacement="top"
129
- required: schema[model].required, sx: {
133
+ required: (0, utils_1.isFieldRequired)(fieldSchema), sx: {
130
134
  width: '100%',
131
135
  alignItems: 'flex-start',
132
136
  marginLeft: 0,
@@ -1,4 +1,4 @@
1
1
  import React from 'react';
2
2
  import { FieldBySchemaProps } from '../../../@types';
3
- export default function FloatFieldBySchema({ name, schema, control, errors, fieldKey, index, onValueChange, decimalScale, label, autoFocus, disabled, ...other }: Omit<FieldBySchemaProps, 'type'>): React.JSX.Element;
3
+ export default function FloatFieldBySchema({ name, schema, control, errors, fieldKey, index, onValueChange, decimalScale, label, autoFocus, disabled, ...other }: Omit<FieldBySchemaProps, 'type'>): React.JSX.Element | undefined;
4
4
  //# sourceMappingURL=FloatFieldBySchema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FloatFieldBySchema.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/inputs/FloatFieldBySchema.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EACzC,IAAI,EACJ,MAAM,EACN,OAAO,EACP,MAAM,EACN,QAAQ,EACR,KAAK,EACL,aAAa,EACb,YAAY,EACZ,KAAK,EACL,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,qBAoElC"}
1
+ {"version":3,"file":"FloatFieldBySchema.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/inputs/FloatFieldBySchema.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EACzC,IAAI,EACJ,MAAM,EACN,OAAO,EACP,MAAM,EACN,QAAQ,EACR,KAAK,EACL,aAAa,EACb,YAAY,EACZ,KAAK,EACL,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,iCAyElC"}
@@ -22,9 +22,13 @@ const react_number_format_1 = require("react-number-format");
22
22
  const utils_1 = require("../../../utils");
23
23
  function FloatFieldBySchema(_a) {
24
24
  var { name, schema, control, errors, fieldKey, index, onValueChange, decimalScale, label, autoFocus, disabled } = _a, other = __rest(_a, ["name", "schema", "control", "errors", "fieldKey", "index", "onValueChange", "decimalScale", "label", "autoFocus", "disabled"]);
25
- const model = name;
25
+ if (!(name in schema)) {
26
+ console.error(`FloatFieldBySchema: could not find schema for ${name}! Not rendering`);
27
+ return;
28
+ }
29
+ const fieldSchema = schema[name];
26
30
  if (!label) {
27
- label = schema[model].label;
31
+ label = fieldSchema.label;
28
32
  }
29
33
  if (fieldKey && index && index >= 0) {
30
34
  name = `${fieldKey}.${index}.${name}`;
@@ -38,18 +42,18 @@ function FloatFieldBySchema(_a) {
38
42
  })
39
43
  : {
40
44
  error: errors && Boolean(errors[name]),
41
- helperText: errors && errors[name] ? errors[name].message : schema[name].help_text || '',
45
+ helperText: errors && errors[name] ? errors[name].message : fieldSchema.help_text || '',
42
46
  };
43
- const prefix = schema[model].is_currency
47
+ const prefix = fieldSchema.is_currency
44
48
  ? 'R$ '
45
- : schema[model].prefix !== ''
46
- ? `${schema[model].prefix} `
49
+ : fieldSchema.prefix !== ''
50
+ ? `${fieldSchema.prefix} `
47
51
  : '';
48
- const suffix = schema[model].suffix !== '' ? ` ${schema[model].suffix}` : '';
49
- const decimals = decimalScale || schema[model].decimal_places || 2;
52
+ const suffix = fieldSchema.suffix !== '' ? ` ${fieldSchema.suffix}` : '';
53
+ const decimals = decimalScale || fieldSchema.decimal_places || 2;
50
54
  return (react_1.default.createElement(react_hook_form_1.Controller, { name: name, control: control, render: ({ field }) => {
51
55
  const moedaInputProps = Object.assign(Object.assign({}, field), { ref: undefined, onChange: undefined });
52
- return (react_1.default.createElement(react_number_format_1.NumericFormat, Object.assign({}, moedaInputProps, other, { label: label, disabled: schema[model].disabled === true || disabled === true, required: schema[model].required, onValueChange: (values) => {
56
+ return (react_1.default.createElement(react_number_format_1.NumericFormat, Object.assign({}, moedaInputProps, other, { label: label, disabled: fieldSchema.disabled === true || disabled === true, required: (0, utils_1.isFieldRequired)(fieldSchema), onValueChange: (values) => {
53
57
  field.onChange(values.floatValue);
54
58
  if (onValueChange) {
55
59
  onValueChange(values.floatValue);
@@ -1,4 +1,4 @@
1
1
  import React from 'react';
2
2
  import { FieldBySchemaProps } from '../../../@types';
3
- export default function PatternFieldBySchema({ name, schema, control, errors, fieldKey, index, sx, type, autoComplete, disabled, onValueChange, autoFocus, ...other }: FieldBySchemaProps): React.JSX.Element;
3
+ export default function PatternFieldBySchema({ name, schema, control, errors, fieldKey, index, sx, type, autoComplete, disabled, onValueChange, autoFocus, ...other }: FieldBySchemaProps): React.JSX.Element | undefined;
4
4
  //# sourceMappingURL=PatternFieldBySchema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PatternFieldBySchema.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/inputs/PatternFieldBySchema.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAC3C,IAAI,EACJ,MAAM,EACN,OAAO,EACP,MAAM,EACN,QAAQ,EACR,KAAK,EACL,EAAc,EACd,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,SAAS,EACT,GAAG,KAAK,EACT,EAAE,kBAAkB,qBAqDpB"}
1
+ {"version":3,"file":"PatternFieldBySchema.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/inputs/PatternFieldBySchema.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAC3C,IAAI,EACJ,MAAM,EACN,OAAO,EACP,MAAM,EACN,QAAQ,EACR,KAAK,EACL,EAAc,EACd,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,SAAS,EACT,GAAG,KAAK,EACT,EAAE,kBAAkB,iCA0DpB"}
@@ -22,7 +22,11 @@ const TextField_1 = __importDefault(require("@mui/material/TextField"));
22
22
  const utils_1 = require("../../../utils");
23
23
  function PatternFieldBySchema(_a) {
24
24
  var { name, schema, control, errors, fieldKey, index, sx = { mr: 2 }, type, autoComplete, disabled, onValueChange, autoFocus } = _a, other = __rest(_a, ["name", "schema", "control", "errors", "fieldKey", "index", "sx", "type", "autoComplete", "disabled", "onValueChange", "autoFocus"]);
25
- const model = name;
25
+ if (!(name in schema)) {
26
+ console.error(`PatternFieldBySchema: could not find schema for ${name}! Not rendering`);
27
+ return;
28
+ }
29
+ const fieldSchema = schema[name];
26
30
  if (fieldKey && index && index >= 0) {
27
31
  name = `${fieldKey}.${index}.${name}`;
28
32
  }
@@ -35,14 +39,14 @@ function PatternFieldBySchema(_a) {
35
39
  })
36
40
  : {
37
41
  error: errors && Boolean(errors[name]),
38
- helperText: errors && errors[name] ? errors[name].message : schema[name].help_text || '',
42
+ helperText: errors && errors[name] ? errors[name].message : fieldSchema.help_text || '',
39
43
  };
40
- return (react_1.default.createElement(react_hook_form_1.Controller, { name: name, control: control, render: ({ field }) => (react_1.default.createElement(react_number_format_1.PatternFormat, Object.assign({}, field, other, { id: name, key: name, label: schema[model].label, required: schema[model].required, disabled: schema[model].disabled === true || disabled, onChange: undefined, onValueChange: (values) => {
44
+ return (react_1.default.createElement(react_hook_form_1.Controller, { name: name, control: control, render: ({ field }) => (react_1.default.createElement(react_number_format_1.PatternFormat, Object.assign({}, field, other, { id: name, key: name, label: fieldSchema.label, required: (0, utils_1.isFieldRequired)(fieldSchema), disabled: fieldSchema.disabled === true || disabled, onChange: undefined, onValueChange: (values) => {
41
45
  field.onChange(values.value);
42
46
  if (onValueChange) {
43
47
  onValueChange(values.value);
44
48
  }
45
49
  }, margin: "normal", fullWidth: true, error: error, helperText: helperText, sx: sx, type: type, autoComplete: autoComplete, autoFocus: autoFocus,
46
50
  // valueIsNumericString
47
- format: schema[model].pattern_format || '', mask: "_", customInput: TextField_1.default }))) }));
51
+ format: fieldSchema.pattern_format || '', mask: "_", customInput: TextField_1.default }))) }));
48
52
  }
@@ -1,4 +1,4 @@
1
1
  import React from 'react';
2
2
  import { FieldBySchemaProps } from '../../../@types';
3
- export default function TextFieldBySchema({ name, schema, control, errors, multiline, minRows, fieldKey, index, sx, type, autoComplete, disabled, onValueChange, autoFocus, ...other }: FieldBySchemaProps): React.JSX.Element;
3
+ export default function TextFieldBySchema({ name, schema, control, errors, multiline, minRows, fieldKey, index, sx, type, autoComplete, disabled, onValueChange, autoFocus, ...other }: FieldBySchemaProps): React.JSX.Element | undefined;
4
4
  //# sourceMappingURL=TextFieldBySchema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TextFieldBySchema.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/inputs/TextFieldBySchema.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,IAAI,EACJ,MAAM,EACN,OAAO,EACP,MAAM,EACN,SAAiB,EACjB,OAAO,EACP,QAAQ,EACR,KAAK,EACL,EAAc,EACd,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,SAAS,EACT,GAAG,KAAK,EACT,EAAE,kBAAkB,qBAwDpB"}
1
+ {"version":3,"file":"TextFieldBySchema.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/inputs/TextFieldBySchema.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,IAAI,EACJ,MAAM,EACN,OAAO,EACP,MAAM,EACN,SAAiB,EACjB,OAAO,EACP,QAAQ,EACR,KAAK,EACL,EAAc,EACd,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,SAAS,EACT,GAAG,KAAK,EACT,EAAE,kBAAkB,iCA6DpB"}
@@ -21,11 +21,15 @@ const TextField_1 = __importDefault(require("@mui/material/TextField"));
21
21
  const utils_1 = require("../../../utils");
22
22
  function TextFieldBySchema(_a) {
23
23
  var { name, schema, control, errors, multiline = false, minRows, fieldKey, index, sx = { mr: 2 }, type, autoComplete, disabled, onValueChange, autoFocus } = _a, other = __rest(_a, ["name", "schema", "control", "errors", "multiline", "minRows", "fieldKey", "index", "sx", "type", "autoComplete", "disabled", "onValueChange", "autoFocus"]);
24
- const model = name;
24
+ if (!(name in schema)) {
25
+ console.error(`TextFieldBySchema: could not find schema for ${name}! Not rendering`);
26
+ return;
27
+ }
28
+ const fieldSchema = schema[name];
25
29
  if (fieldKey && index && index >= 0) {
26
30
  name = `${fieldKey}.${index}.${name}`;
27
31
  }
28
- if (schema[name].type === 'password') {
32
+ if (fieldSchema.type === 'password') {
29
33
  type = 'password';
30
34
  }
31
35
  if (type === 'password') {
@@ -40,9 +44,9 @@ function TextFieldBySchema(_a) {
40
44
  })
41
45
  : {
42
46
  error: errors && Boolean(errors[name]),
43
- helperText: errors && errors[name] ? errors[name].message : schema[name].help_text || '',
47
+ helperText: errors && errors[name] ? errors[name].message : fieldSchema.help_text || '',
44
48
  };
45
- return (react_1.default.createElement(react_hook_form_1.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, required: schema[model].required, disabled: schema[model].disabled === true || disabled, onChange: (e) => {
49
+ return (react_1.default.createElement(react_hook_form_1.Controller, { name: name, control: control, render: ({ field }) => (react_1.default.createElement(TextField_1.default, Object.assign({}, field, other, { id: name, key: name, label: fieldSchema.label, required: (0, utils_1.isFieldRequired)(fieldSchema), disabled: fieldSchema.disabled === true || disabled, onChange: (e) => {
46
50
  field.onChange(e.target.value);
47
51
  if (onValueChange) {
48
52
  onValueChange(e);
@@ -1 +1 @@
1
- {"version":3,"file":"APIWrapper.d.ts","sourceRoot":"","sources":["../../src/context/APIWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkD,MAAM,OAAO,CAAC;AA0CvE,OAAO,EAEL,UAAU,EAQV,YAAY,EACb,MAAM,qBAAqB,CAAC;AAG7B,UAAU,eAAe;IACvB,aAAa,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACpC,WAAW,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;IAChD,SAAS,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IAC5C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AASD,iBAAS,UAAU,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,eAAe,qBA2jBvF;;AAED,wBAAsC"}
1
+ {"version":3,"file":"APIWrapper.d.ts","sourceRoot":"","sources":["../../src/context/APIWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkD,MAAM,OAAO,CAAC;AA4CvE,OAAO,EAEL,UAAU,EAQV,YAAY,EACb,MAAM,qBAAqB,CAAC;AAG7B,UAAU,eAAe;IACvB,aAAa,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACpC,WAAW,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;IAChD,SAAS,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IAC5C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AASD,iBAAS,UAAU,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,eAAe,qBA6kBvF;;AAED,wBAAsC"}
@@ -91,7 +91,7 @@ function APIWrapper({ handleLoading, setSnackBar, setDialog, children }) {
91
91
  severity,
92
92
  });
93
93
  };
94
- const loadSinglePageData = (_a) => __awaiter(this, [_a], void 0, function* ({ model, objId, optionsACModels = null, defaults = {}, extraValidators, }) {
94
+ const loadSinglePageData = (_a) => __awaiter(this, [_a], void 0, function* ({ model, objId, optionsACModels, defaults = {}, extraValidators, fieldsLayout, }) {
95
95
  handleLoading(true);
96
96
  if (!objId || objId === 'novo') {
97
97
  objId = (0, utils_1.getTmpId)();
@@ -115,7 +115,8 @@ function APIWrapper({ handleLoading, setSnackBar, setDialog, children }) {
115
115
  object.data[field] = value;
116
116
  }
117
117
  }
118
- const values = populateInitialValues(Object.assign({ id: objId, extraValidators }, object));
118
+ const values = populateInitialValues(Object.assign({ id: objId, extraValidators,
119
+ fieldsLayout }, object));
119
120
  return values;
120
121
  });
121
122
  const onSubmit = (model, id, data) => __awaiter(this, void 0, void 0, function* () {
@@ -167,9 +168,15 @@ function APIWrapper({ handleLoading, setSnackBar, setDialog, children }) {
167
168
  setOptionsAC(newOptionsAC);
168
169
  });
169
170
  const populateInitialValues = (_a) => {
170
- var { id, extraValidators } = _a, object = __rest(_a, ["id", "extraValidators"]);
171
+ var { id, extraValidators, fieldsLayout } = _a, object = __rest(_a, ["id", "extraValidators", "fieldsLayout"]);
171
172
  const values = (0, utils_1.populateValues)(object);
172
- const yupSchema = (0, utils_1.buildGenericYupValidationSchema)(Object.assign(Object.assign({}, object), { data: values, extraValidators }));
173
+ const uiFields = fieldsLayout
174
+ ? (0, utils_1.getFieldsFromFieldsLayout)(fieldsLayout)
175
+ : object.columns
176
+ ? Object.keys(object.columns)
177
+ : undefined;
178
+ const yupSchema = (0, utils_1.buildGenericYupValidationSchema)(Object.assign(Object.assign({}, object), { data: values, extraValidators,
179
+ uiFields }));
173
180
  setPageForm({
174
181
  id,
175
182
  schema: object.schema,
@@ -264,9 +271,15 @@ function APIWrapper({ handleLoading, setSnackBar, setDialog, children }) {
264
271
  return false;
265
272
  }
266
273
  const populatedValues = (0, utils_1.populateValues)(result);
274
+ const uiFields = fieldsLayout
275
+ ? (0, utils_1.getFieldsFromFieldsLayout)(fieldsLayout)
276
+ : result.columns
277
+ ? result.columns.map(({ field }) => field)
278
+ : undefined;
267
279
  const yupSchema = (0, utils_1.buildGenericYupValidationSchema)({
268
280
  schema: result.schema,
269
281
  data: populatedValues,
282
+ uiFields,
270
283
  });
271
284
  const values = (0, utils_1.isTmpId)(id) && initialValuesPartial
272
285
  ? Object.assign(Object.assign({}, populatedValues), initialValuesPartial) : Object.assign({}, populatedValues);
@@ -9,11 +9,12 @@ export interface LoadSinglePageDataProps {
9
9
  model: string;
10
10
  objId?: Id;
11
11
  objTitleField?: string;
12
- optionsACModels: string[] | null;
12
+ optionsACModels?: string[];
13
13
  defaults?: Item;
14
14
  basePath?: string;
15
15
  formPath?: string | null;
16
16
  extraValidators?: ExtraValidators;
17
+ fieldsLayout?: FormFieldLayout[];
17
18
  }
18
19
  export interface PageFormType {
19
20
  id: Id;
@@ -1 +1 @@
1
- {"version":3,"file":"APIWrapperContext.d.ts","sourceRoot":"","sources":["../../src/context/APIWrapperContext.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"APIWrapperContext.d.ts","sourceRoot":"","sources":["../../src/context/APIWrapperContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAChG,OAAO,EAAE,UAAU,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,KAAK,CAAC;AAEnC,OAAO,EACL,qBAAqB,EACrB,EAAE,EACF,IAAI,EACJ,UAAU,EACV,qBAAqB,EACrB,cAAc,EACd,SAAS,EACT,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,wBAAwB,EACxB,6BAA6B,EAC7B,0BAA0B,EAC1B,eAAe,EAChB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,EAAE,CAAC;IACX,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,YAAY,CAAC,EAAE,eAAe,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,EAAE,CAAC;IACP,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,0BAA0B,EAAE,GAAG,IAAI,CAAC;IAC9C,aAAa,EAAE,IAAI,GAAG,IAAI,CAAC;IAE3B,gBAAgB,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC5C,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,EAAE,CAAC;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;IACxC,SAAS,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAC1C,YAAY,CAAC,EAAE,eAAe,EAAE,CAAC;IACjC,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,EAAE,CAAC;IACP,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,EAAE,CAAC;IACnB,MAAM,EAAE,IAAI,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,EAAE,CAAC;IACP,MAAM,EAAE,IAAI,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,EAAE,CAAC;IACP,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,sBAAsB,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;CACzE;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,MAAM,6BAA6B,GAAG,CAC1C,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,KAC7E,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC;AAE5C,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,IAAI,GAAG,IAAI,CAAC;IACrB,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,QAAQ,EAAE,6BAA6B,CAAC;IACxC,kBAAkB,EAAE,CAAC,CAAC,EAAE,uBAAuB,KAAK,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IAC1E,aAAa,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACpC,cAAc,EAAE,CAAC,SAAS,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,CAAC;IACpE,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,YAAY,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;IAC9C,aAAa,EAAE,CAAC,YAAY,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,CAAC;IACzE,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;IAChD,WAAW,EAAE,CAAC,CAAC,EAAE,eAAe,KAAK,IAAI,CAAC;IAC1C,uBAAuB,EAAE,CAAC,CAAC,EAAE,2BAA2B,KAAK,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IACnF,eAAe,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/C,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IAC3E,sBAAsB,EAAE,CACtB,CAAC,EAAE,sBAAsB,KACtB,OAAO,CAAC,KAAK,GAAG,IAAI,GAAG,qBAAqB,CAAC,CAAC;IACnD,oBAAoB,EAAE,CAAC,CAAC,EAAE,wBAAwB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACxE,iBAAiB,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC;IAC7C,SAAS,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;IAE5C,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IACrD,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC,CAAC;IAC5D,mBAAmB,EAAE,CAAC,CAAC,EAAE,6BAA6B,KAAK,OAAO,CAAC,KAAK,GAAG,qBAAqB,CAAC,CAAC;IAClG,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,cAAc,EAAE,CAAC,OAAO,EAAE,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACpD,gBAAgB,EAAE,MAAM,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC;IACpD,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IAC9C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IAEtE,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACxC,WAAW,EAAE,CAAC,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IAChE,iBAAiB,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACvD,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,iBAAiB,sCAoC5B,CAAC;AAEH,eAAO,MAAM,aAAa,6BAGzB,CAAC"}
package/dist/utils.d.ts CHANGED
@@ -1,17 +1,18 @@
1
1
  import { GridFilterModel } from '@mui/x-data-grid';
2
- import { Choice, ChoiceValue, ExtraValidators, GenericValue, GridEnrichedBySchemaColDef, Item, SchemaType } from './@types';
2
+ import { Choice, ChoiceValue, ExtraValidators, Field, FormFieldLayout, GenericValue, GridEnrichedBySchemaColDef, Item, SchemaType } from './@types';
3
3
  export declare const emptyByType: GenericValue;
4
4
  export declare const getChoiceByValue: (value: ChoiceValue, choices: Choice[] | undefined) => string | null | undefined;
5
5
  export declare const populateValues: ({ data, schema }: {
6
6
  data: Item;
7
7
  schema: SchemaType;
8
8
  }) => Item;
9
- export declare function buildGenericYupValidationSchema({ data, schema, many, skipFields, extraValidators, }: {
9
+ export declare function buildGenericYupValidationSchema({ data, schema, many, skipFields, extraValidators, uiFields, }: {
10
10
  data: Item;
11
11
  schema: SchemaType;
12
12
  many?: boolean;
13
13
  skipFields?: string[];
14
14
  extraValidators?: ExtraValidators;
15
+ uiFields?: string[];
15
16
  }): any;
16
17
  export declare const errorProps: ({ errors, fieldKey, fieldKeyProp, index, }: {
17
18
  errors: Item;
@@ -38,4 +39,6 @@ export declare function initViewColumns({ schema, columns, customColumnOperation
38
39
  export declare function shouldMemoUpdate<T extends object>(prevProps: Readonly<T>, nextProps: Readonly<T>): boolean;
39
40
  export declare const convertToFormData: (data: Item) => FormData;
40
41
  export declare function formatFileSize(bytes: number): string;
42
+ export declare function getFieldsFromFieldsLayout(fieldsLayout: FormFieldLayout[]): string[];
43
+ export declare function isFieldRequired(fieldSchema: Field, isInForm?: boolean): boolean;
41
44
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,OAAO,EACL,MAAM,EACN,WAAW,EACX,eAAe,EAEf,YAAY,EAEZ,0BAA0B,EAC1B,IAAI,EACJ,UAAU,EACX,MAAM,UAAU,CAAC;AAElB,eAAO,MAAM,WAAW,EAAE,YAyBzB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,OAAO,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,8BASjF,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,kBAAkB;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,SA8ClF,CAAC;AA0DF,wBAAgB,+BAA+B,CAAC,EAC9C,IAAI,EACJ,MAAM,EACN,IAAY,EACZ,UAAe,EACf,eAAe,GAChB,EAAE;IACD,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,OAyEA;AAED,eAAO,MAAM,UAAU,GAAI,4CAKxB;IACD,MAAM,EAAE,IAAI,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;;;CAkBA,CAAC;AAEF,eAAO,MAAM,QAAQ,cAEpB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,IAAI,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,YAK7D,CAAC;AAEF,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,YAQtE;AAED,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,WAqB5C,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,mDA0B7E;AAED,eAAO,MAAM,eAAe,GAAI,KAAK,MAAM,EAAE,sBAAoB,WAWhE,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,MAAM,MAAM,GAAG,IAAI,WAa1C,CAAC;AAEF,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,eAAe,GAAG,SAAS,EAC1C,MAAM,EAAE,eAAe,GAAG,SAAS,OAyBpC;AAED,wBAAsB,eAAe,CAAC,EACpC,MAAM,EACN,OAAO,EACP,sBAAsB,GACvB,EAAE;IACD,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,0BAA0B,EAAE,CAAC;IACtC,sBAAsB,CAAC,EAAE,CACvB,CAAC,EAAE,0BAA0B,KAC1B,0BAA0B,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;CACvE,gBAoGA;AA0CD,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAC/C,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,EACtB,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,GACrB,OAAO,CAwCT;AAED,eAAO,MAAM,iBAAiB,GAAI,MAAM,IAAI,KAAG,QAuB9C,CAAC;AAEF,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,UAgB3C"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,OAAO,EACL,MAAM,EACN,WAAW,EACX,eAAe,EACf,KAAK,EACL,eAAe,EACf,YAAY,EAEZ,0BAA0B,EAC1B,IAAI,EACJ,UAAU,EACX,MAAM,UAAU,CAAC;AAElB,eAAO,MAAM,WAAW,EAAE,YAyBzB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,OAAO,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,8BASjF,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,kBAAkB;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,SA8ClF,CAAC;AA0DF,wBAAgB,+BAA+B,CAAC,EAC9C,IAAI,EACJ,MAAM,EACN,IAAY,EACZ,UAAe,EACf,eAAe,EACf,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,OA0EA;AAED,eAAO,MAAM,UAAU,GAAI,4CAKxB;IACD,MAAM,EAAE,IAAI,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;;;CAkBA,CAAC;AAEF,eAAO,MAAM,QAAQ,cAEpB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,IAAI,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,YAK7D,CAAC;AAEF,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,YAQtE;AAED,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,WAqB5C,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,mDA0B7E;AAED,eAAO,MAAM,eAAe,GAAI,KAAK,MAAM,EAAE,sBAAoB,WAWhE,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,MAAM,MAAM,GAAG,IAAI,WAa1C,CAAC;AAEF,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,eAAe,GAAG,SAAS,EAC1C,MAAM,EAAE,eAAe,GAAG,SAAS,OAyBpC;AAED,wBAAsB,eAAe,CAAC,EACpC,MAAM,EACN,OAAO,EACP,sBAAsB,GACvB,EAAE;IACD,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,0BAA0B,EAAE,CAAC;IACtC,sBAAsB,CAAC,EAAE,CACvB,CAAC,EAAE,0BAA0B,KAC1B,0BAA0B,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;CACvE,gBAoGA;AA0CD,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAC/C,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,EACtB,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,GACrB,OAAO,CAwCT;AAED,eAAO,MAAM,iBAAiB,GAAI,MAAM,IAAI,KAAG,QAuB9C,CAAC;AAEF,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,UAgB3C;AAED,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,eAAe,EAAE,YAwBxE;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,OAAO,WAYrE"}
package/dist/utils.js CHANGED
@@ -53,6 +53,8 @@ exports.mergeFilterItems = mergeFilterItems;
53
53
  exports.initViewColumns = initViewColumns;
54
54
  exports.shouldMemoUpdate = shouldMemoUpdate;
55
55
  exports.formatFileSize = formatFileSize;
56
+ exports.getFieldsFromFieldsLayout = getFieldsFromFieldsLayout;
57
+ exports.isFieldRequired = isFieldRequired;
56
58
  const dayjs_1 = __importDefault(require("dayjs"));
57
59
  const Yup = __importStar(require("yup"));
58
60
  const string_mask_1 = __importDefault(require("string-mask"));
@@ -193,27 +195,28 @@ const getYupValidator = (type) => {
193
195
  }
194
196
  return yupFunc.transform((v) => (v === '' ? null : v)).nullable();
195
197
  };
196
- function buildGenericYupValidationSchema({ data, schema, many = false, skipFields = [], extraValidators, }) {
198
+ function buildGenericYupValidationSchema({ data, schema, many = false, skipFields = [], extraValidators, uiFields, }) {
197
199
  const yupValidator = {};
198
200
  for (const entry of Object.entries(schema)) {
199
- const [key, field] = entry;
200
- if (!data || !(key in data) || key === 'id' || skipFields.includes(key)) {
201
+ const [field, fieldSchema] = entry;
202
+ if (!data || !(field in data) || field === 'id' || skipFields.includes(field)) {
201
203
  continue;
202
204
  }
203
205
  // OneToMany or ManyToMany:
204
- if (field.type === 'field' && field.child) {
205
- yupValidator[key] =
206
- extraValidators && key in extraValidators
207
- ? extraValidators[key]
206
+ if (fieldSchema.type === 'field' && fieldSchema.child) {
207
+ yupValidator[field] =
208
+ extraValidators && field in extraValidators
209
+ ? extraValidators[field]
208
210
  : buildGenericYupValidationSchema({
209
- schema: field.child.children,
211
+ schema: fieldSchema.child.children,
210
212
  many: true,
211
- data: data[key],
213
+ data: data[field],
214
+ uiFields,
212
215
  });
213
216
  continue;
214
217
  }
215
218
  // Nested Object:
216
- if (field.type === 'nested object' && field.children) {
219
+ if (fieldSchema.type === 'nested object' && fieldSchema.children) {
217
220
  // yupValidator[key] = buildGenericYupValidationSchema({
218
221
  // schema: field.children,
219
222
  // many: false,
@@ -225,28 +228,28 @@ function buildGenericYupValidationSchema({ data, schema, many = false, skipField
225
228
  // }
226
229
  // continue;
227
230
  }
228
- yupValidator[key] =
229
- extraValidators && key in extraValidators
230
- ? extraValidators[key]
231
- : getYupValidator(field.type);
232
- if (field.required || field.model_required) {
233
- yupValidator[key] = yupValidator[key].required('Este campo é obrigatório');
231
+ yupValidator[field] =
232
+ extraValidators && field in extraValidators
233
+ ? extraValidators[field]
234
+ : getYupValidator(fieldSchema.type);
235
+ if (isFieldRequired(fieldSchema, (uiFields || []).includes(field))) {
236
+ yupValidator[field] = yupValidator[field].required('Este campo é obrigatório');
234
237
  }
235
- if (field.max_length && field.type === 'string') {
236
- yupValidator[key] = yupValidator[key].max(parseInt(field.max_length), `Este campo só pode ter no máximo ${field.max_length} caracteres`);
238
+ if (fieldSchema.max_length && fieldSchema.type === 'string') {
239
+ yupValidator[field] = yupValidator[field].max(parseInt(fieldSchema.max_length), `Este campo só pode ter no máximo ${fieldSchema.max_length} caracteres`);
237
240
  }
238
- if (field.max_digits && field.type === 'decimal') {
239
- const maxDigits = field.max_digits;
240
- yupValidator[key] = yupValidator[key].test('len', `Este número pode ter no máximo ${maxDigits} dígitos`, (val) => {
241
+ if (fieldSchema.max_digits && fieldSchema.type === 'decimal') {
242
+ const maxDigits = fieldSchema.max_digits;
243
+ yupValidator[field] = yupValidator[field].test('len', `Este número pode ter no máximo ${maxDigits} dígitos`, (val) => {
241
244
  if (!val) {
242
245
  return true;
243
246
  }
244
247
  return val.toString().length <= maxDigits;
245
248
  });
246
249
  }
247
- if (!field.read_only && field.validators_regex) {
248
- for (const validator of field.validators_regex) {
249
- yupValidator[key] = yupValidator[key].matches(validator.regex, validator.message);
250
+ if (!fieldSchema.read_only && fieldSchema.validators_regex) {
251
+ for (const validator of fieldSchema.validators_regex) {
252
+ yupValidator[field] = yupValidator[field].matches(validator.regex, validator.message);
250
253
  }
251
254
  }
252
255
  }
@@ -595,3 +598,39 @@ function formatFileSize(bytes) {
595
598
  });
596
599
  return `${formattedValue} ${units[i]}`;
597
600
  }
601
+ function getFieldsFromFieldsLayout(fieldsLayout) {
602
+ const fields = [];
603
+ for (const section of fieldsLayout) {
604
+ if (!section.rows) {
605
+ continue;
606
+ }
607
+ for (const row of section.rows) {
608
+ if (typeof row === 'string') {
609
+ fields.push(row);
610
+ continue;
611
+ }
612
+ if (Array.isArray(row)) {
613
+ for (const field of row) {
614
+ if (typeof field === 'string') {
615
+ fields.push(field);
616
+ continue;
617
+ }
618
+ }
619
+ continue;
620
+ }
621
+ }
622
+ }
623
+ return fields;
624
+ }
625
+ function isFieldRequired(fieldSchema, isInForm) {
626
+ if (fieldSchema === null || fieldSchema === void 0 ? void 0 : fieldSchema.required) {
627
+ return true;
628
+ }
629
+ if (fieldSchema === null || fieldSchema === void 0 ? void 0 : fieldSchema.model_required) {
630
+ return true;
631
+ }
632
+ if ((fieldSchema === null || fieldSchema === void 0 ? void 0 : fieldSchema.ui_required) && (typeof isInForm === 'undefined' || isInForm === true)) {
633
+ return true;
634
+ }
635
+ return false;
636
+ }