@m4l/components 9.4.36 → 9.4.37-beta-feature-dynamicform-crear-componente.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 (188) hide show
  1. package/components/CheckableList/slots/styled.d.ts +1 -1
  2. package/components/DaysOfWeekPicker/hooks/types.d.ts +2 -1
  3. package/components/DaysOfWeekPicker/hooks/types.d.ts.map +1 -1
  4. package/components/DaysOfWeekPicker/hooks/useDaysOfWeekPicker.d.ts.map +1 -1
  5. package/components/DaysOfWeekPicker/hooks/useDaysOfWeekPicker.js +32 -32
  6. package/components/DaysOfWeekPicker/types.d.ts +1 -1
  7. package/components/DaysOfWeekPicker/types.d.ts.map +1 -1
  8. package/components/DynamicForm/DynamicForm.d.ts +29 -0
  9. package/components/DynamicForm/DynamicForm.d.ts.map +1 -0
  10. package/components/DynamicForm/DynamicForm.js +96 -0
  11. package/components/DynamicForm/DynamicForm.styles.d.ts +3 -0
  12. package/components/DynamicForm/DynamicForm.styles.d.ts.map +1 -0
  13. package/components/DynamicForm/DynamicForm.styles.js +78 -0
  14. package/components/DynamicForm/constants.d.ts +15 -0
  15. package/components/DynamicForm/constants.d.ts.map +1 -0
  16. package/components/DynamicForm/constants.js +16 -0
  17. package/components/DynamicForm/dictionary.d.ts +15 -0
  18. package/components/DynamicForm/dictionary.d.ts.map +1 -0
  19. package/components/DynamicForm/dictionary.js +16 -0
  20. package/components/DynamicForm/helpers/applyRequiredValidation/applyRequiredValidation.d.ts +13 -0
  21. package/components/DynamicForm/helpers/applyRequiredValidation/applyRequiredValidation.d.ts.map +1 -0
  22. package/components/DynamicForm/helpers/applyRequiredValidation/applyRequiredValidation.js +19 -0
  23. package/components/DynamicForm/helpers/applyRequiredValidation/index.d.ts +3 -0
  24. package/components/DynamicForm/helpers/applyRequiredValidation/index.d.ts.map +1 -0
  25. package/components/DynamicForm/helpers/applyRequiredValidation/types.d.ts +7 -0
  26. package/components/DynamicForm/helpers/applyRequiredValidation/types.d.ts.map +1 -0
  27. package/components/DynamicForm/helpers/createFieldValidationSchema/createFieldValidationSchema.d.ts +13 -0
  28. package/components/DynamicForm/helpers/createFieldValidationSchema/createFieldValidationSchema.d.ts.map +1 -0
  29. package/components/DynamicForm/helpers/createFieldValidationSchema/createFieldValidationSchema.js +35 -0
  30. package/components/DynamicForm/helpers/createFieldValidationSchema/index.d.ts +3 -0
  31. package/components/DynamicForm/helpers/createFieldValidationSchema/index.d.ts.map +1 -0
  32. package/components/DynamicForm/helpers/createFieldValidationSchema/strategies/baseSchema/baseSchemaStrategies.d.ts +43 -0
  33. package/components/DynamicForm/helpers/createFieldValidationSchema/strategies/baseSchema/baseSchemaStrategies.d.ts.map +1 -0
  34. package/components/DynamicForm/helpers/createFieldValidationSchema/strategies/baseSchema/baseSchemaStrategies.js +134 -0
  35. package/components/DynamicForm/helpers/createFieldValidationSchema/strategies/baseSchema/createBaseSchema.d.ts +7 -0
  36. package/components/DynamicForm/helpers/createFieldValidationSchema/strategies/baseSchema/createBaseSchema.d.ts.map +1 -0
  37. package/components/DynamicForm/helpers/createFieldValidationSchema/strategies/baseSchema/createBaseSchema.js +9 -0
  38. package/components/DynamicForm/helpers/createFieldValidationSchema/strategies/baseSchema/index.d.ts +4 -0
  39. package/components/DynamicForm/helpers/createFieldValidationSchema/strategies/baseSchema/index.d.ts.map +1 -0
  40. package/components/DynamicForm/helpers/createFieldValidationSchema/strategies/baseSchema/types.d.ts +22 -0
  41. package/components/DynamicForm/helpers/createFieldValidationSchema/strategies/baseSchema/types.d.ts.map +1 -0
  42. package/components/DynamicForm/helpers/createFieldValidationSchema/strategies/validation/index.d.ts +3 -0
  43. package/components/DynamicForm/helpers/createFieldValidationSchema/strategies/validation/index.d.ts.map +1 -0
  44. package/components/DynamicForm/helpers/createFieldValidationSchema/strategies/validation/types.d.ts +27 -0
  45. package/components/DynamicForm/helpers/createFieldValidationSchema/strategies/validation/types.d.ts.map +1 -0
  46. package/components/DynamicForm/helpers/createFieldValidationSchema/strategies/validation/validationStrategies.d.ts +25 -0
  47. package/components/DynamicForm/helpers/createFieldValidationSchema/strategies/validation/validationStrategies.d.ts.map +1 -0
  48. package/components/DynamicForm/helpers/createFieldValidationSchema/strategies/validation/validationStrategies.js +200 -0
  49. package/components/DynamicForm/helpers/createFieldValidationSchema/types.d.ts +6 -0
  50. package/components/DynamicForm/helpers/createFieldValidationSchema/types.d.ts.map +1 -0
  51. package/components/DynamicForm/helpers/createIsOptionEqualToValue/createIsOptionEqualToValue.d.ts +7 -0
  52. package/components/DynamicForm/helpers/createIsOptionEqualToValue/createIsOptionEqualToValue.d.ts.map +1 -0
  53. package/components/DynamicForm/helpers/createIsOptionEqualToValue/createIsOptionEqualToValue.js +6 -0
  54. package/components/DynamicForm/helpers/createIsOptionEqualToValue/index.d.ts +2 -0
  55. package/components/DynamicForm/helpers/createIsOptionEqualToValue/index.d.ts.map +1 -0
  56. package/components/DynamicForm/helpers/evaluateConditionalRule/evaluateConditionalRule.d.ts +11 -0
  57. package/components/DynamicForm/helpers/evaluateConditionalRule/evaluateConditionalRule.d.ts.map +1 -0
  58. package/components/DynamicForm/helpers/evaluateConditionalRule/evaluateConditionalRule.js +26 -0
  59. package/components/DynamicForm/helpers/evaluateConditionalRule/index.d.ts +3 -0
  60. package/components/DynamicForm/helpers/evaluateConditionalRule/index.d.ts.map +1 -0
  61. package/components/DynamicForm/helpers/evaluateConditionalRule/types.d.ts +7 -0
  62. package/components/DynamicForm/helpers/evaluateConditionalRule/types.d.ts.map +1 -0
  63. package/components/DynamicForm/helpers/index.d.ts +9 -0
  64. package/components/DynamicForm/helpers/index.d.ts.map +1 -0
  65. package/components/DynamicForm/helpers/normalizeValidation/index.d.ts +3 -0
  66. package/components/DynamicForm/helpers/normalizeValidation/index.d.ts.map +1 -0
  67. package/components/DynamicForm/helpers/normalizeValidation/normalizeValidation.d.ts +9 -0
  68. package/components/DynamicForm/helpers/normalizeValidation/normalizeValidation.d.ts.map +1 -0
  69. package/components/DynamicForm/helpers/normalizeValidation/normalizeValidation.js +9 -0
  70. package/components/DynamicForm/helpers/normalizeValidation/types.d.ts +6 -0
  71. package/components/DynamicForm/helpers/normalizeValidation/types.d.ts.map +1 -0
  72. package/components/DynamicForm/helpers/resolveFieldComponent/index.d.ts +3 -0
  73. package/components/DynamicForm/helpers/resolveFieldComponent/index.d.ts.map +1 -0
  74. package/components/DynamicForm/helpers/resolveFieldComponent/resolveFieldComponent.d.ts +12 -0
  75. package/components/DynamicForm/helpers/resolveFieldComponent/resolveFieldComponent.d.ts.map +1 -0
  76. package/components/DynamicForm/helpers/resolveFieldComponent/resolveFieldComponent.js +56 -0
  77. package/components/DynamicForm/helpers/resolveFieldComponent/strategies/autocompleteStrategy/autocompleteStrategy.d.ts +7 -0
  78. package/components/DynamicForm/helpers/resolveFieldComponent/strategies/autocompleteStrategy/autocompleteStrategy.d.ts.map +1 -0
  79. package/components/DynamicForm/helpers/resolveFieldComponent/strategies/autocompleteStrategy/autocompleteStrategy.js +36 -0
  80. package/components/DynamicForm/helpers/resolveFieldComponent/strategies/checkableListStrategy/checkableListStrategy.d.ts +7 -0
  81. package/components/DynamicForm/helpers/resolveFieldComponent/strategies/checkableListStrategy/checkableListStrategy.d.ts.map +1 -0
  82. package/components/DynamicForm/helpers/resolveFieldComponent/strategies/checkableListStrategy/checkableListStrategy.js +28 -0
  83. package/components/DynamicForm/helpers/resolveFieldComponent/strategies/checkboxStrategy/checkboxStrategy.d.ts +4 -0
  84. package/components/DynamicForm/helpers/resolveFieldComponent/strategies/checkboxStrategy/checkboxStrategy.d.ts.map +1 -0
  85. package/components/DynamicForm/helpers/resolveFieldComponent/strategies/checkboxStrategy/checkboxStrategy.js +24 -0
  86. package/components/DynamicForm/helpers/resolveFieldComponent/strategies/dateRangePickerStrategy/dateRangePickerStrategy.d.ts +4 -0
  87. package/components/DynamicForm/helpers/resolveFieldComponent/strategies/dateRangePickerStrategy/dateRangePickerStrategy.d.ts.map +1 -0
  88. package/components/DynamicForm/helpers/resolveFieldComponent/strategies/dateRangePickerStrategy/dateRangePickerStrategy.js +24 -0
  89. package/components/DynamicForm/helpers/resolveFieldComponent/strategies/daysOfWeekPickerStrategy/daysOfWeekPickerStrategy.d.ts +4 -0
  90. package/components/DynamicForm/helpers/resolveFieldComponent/strategies/daysOfWeekPickerStrategy/daysOfWeekPickerStrategy.d.ts.map +1 -0
  91. package/components/DynamicForm/helpers/resolveFieldComponent/strategies/daysOfWeekPickerStrategy/daysOfWeekPickerStrategy.js +27 -0
  92. package/components/DynamicForm/helpers/resolveFieldComponent/strategies/index.d.ts +12 -0
  93. package/components/DynamicForm/helpers/resolveFieldComponent/strategies/index.d.ts.map +1 -0
  94. package/components/DynamicForm/helpers/resolveFieldComponent/strategies/numberInputStrategy/numberInputStrategy.d.ts +4 -0
  95. package/components/DynamicForm/helpers/resolveFieldComponent/strategies/numberInputStrategy/numberInputStrategy.d.ts.map +1 -0
  96. package/components/DynamicForm/helpers/resolveFieldComponent/strategies/numberInputStrategy/numberInputStrategy.js +24 -0
  97. package/components/DynamicForm/helpers/resolveFieldComponent/strategies/radioGroupStrategy/radioGroupStrategy.d.ts +7 -0
  98. package/components/DynamicForm/helpers/resolveFieldComponent/strategies/radioGroupStrategy/radioGroupStrategy.d.ts.map +1 -0
  99. package/components/DynamicForm/helpers/resolveFieldComponent/strategies/radioGroupStrategy/radioGroupStrategy.js +27 -0
  100. package/components/DynamicForm/helpers/resolveFieldComponent/strategies/registry.d.ts +7 -0
  101. package/components/DynamicForm/helpers/resolveFieldComponent/strategies/registry.d.ts.map +1 -0
  102. package/components/DynamicForm/helpers/resolveFieldComponent/strategies/registry.js +29 -0
  103. package/components/DynamicForm/helpers/resolveFieldComponent/strategies/selectStrategy/selectStrategy.d.ts +4 -0
  104. package/components/DynamicForm/helpers/resolveFieldComponent/strategies/selectStrategy/selectStrategy.d.ts.map +1 -0
  105. package/components/DynamicForm/helpers/resolveFieldComponent/strategies/selectStrategy/selectStrategy.js +27 -0
  106. package/components/DynamicForm/helpers/resolveFieldComponent/strategies/textFieldStrategy/textFieldStrategy.d.ts +4 -0
  107. package/components/DynamicForm/helpers/resolveFieldComponent/strategies/textFieldStrategy/textFieldStrategy.d.ts.map +1 -0
  108. package/components/DynamicForm/helpers/resolveFieldComponent/strategies/textFieldStrategy/textFieldStrategy.js +25 -0
  109. package/components/DynamicForm/helpers/resolveFieldComponent/strategies/types.d.ts +34 -0
  110. package/components/DynamicForm/helpers/resolveFieldComponent/strategies/types.d.ts.map +1 -0
  111. package/components/DynamicForm/helpers/resolveFieldComponent/types.d.ts +9 -0
  112. package/components/DynamicForm/helpers/resolveFieldComponent/types.d.ts.map +1 -0
  113. package/components/DynamicForm/helpers/resolveInitialValue/index.d.ts +3 -0
  114. package/components/DynamicForm/helpers/resolveInitialValue/index.d.ts.map +1 -0
  115. package/components/DynamicForm/helpers/resolveInitialValue/resolveInitialValue.d.ts +19 -0
  116. package/components/DynamicForm/helpers/resolveInitialValue/resolveInitialValue.d.ts.map +1 -0
  117. package/components/DynamicForm/helpers/resolveInitialValue/resolveInitialValue.js +64 -0
  118. package/components/DynamicForm/helpers/resolveInitialValue/types.d.ts +13 -0
  119. package/components/DynamicForm/helpers/resolveInitialValue/types.d.ts.map +1 -0
  120. package/components/DynamicForm/helpers/stringifyJsonFieldsForSubmit/index.d.ts +2 -0
  121. package/components/DynamicForm/helpers/stringifyJsonFieldsForSubmit/index.d.ts.map +1 -0
  122. package/components/DynamicForm/helpers/stringifyJsonFieldsForSubmit/stringifyJsonFieldsForSubmit.d.ts +14 -0
  123. package/components/DynamicForm/helpers/stringifyJsonFieldsForSubmit/stringifyJsonFieldsForSubmit.d.ts.map +1 -0
  124. package/components/DynamicForm/helpers/stringifyJsonFieldsForSubmit/stringifyJsonFieldsForSubmit.js +16 -0
  125. package/components/DynamicForm/hooks/useDynamicForm/useDynamicForm.d.ts +16 -0
  126. package/components/DynamicForm/hooks/useDynamicForm/useDynamicForm.d.ts.map +1 -0
  127. package/components/DynamicForm/hooks/useDynamicForm/useDynamicForm.js +90 -0
  128. package/components/DynamicForm/hooks/useDynamicFormConditionals/useDynamicFormConditionals.d.ts +13 -0
  129. package/components/DynamicForm/hooks/useDynamicFormConditionals/useDynamicFormConditionals.d.ts.map +1 -0
  130. package/components/DynamicForm/hooks/useDynamicFormConditionals/useDynamicFormConditionals.js +25 -0
  131. package/components/DynamicForm/hooks/useDynamicFormCoupled/index.d.ts +3 -0
  132. package/components/DynamicForm/hooks/useDynamicFormCoupled/index.d.ts.map +1 -0
  133. package/components/DynamicForm/hooks/useDynamicFormCoupled/types.d.ts +43 -0
  134. package/components/DynamicForm/hooks/useDynamicFormCoupled/types.d.ts.map +1 -0
  135. package/components/DynamicForm/hooks/useDynamicFormCoupled/useDynamicFormCoupled.d.ts +54 -0
  136. package/components/DynamicForm/hooks/useDynamicFormCoupled/useDynamicFormCoupled.d.ts.map +1 -0
  137. package/components/DynamicForm/hooks/useDynamicFormCoupled/useDynamicFormCoupled.js +53 -0
  138. package/components/DynamicForm/hooks/useDynamicFormData/types.d.ts +20 -0
  139. package/components/DynamicForm/hooks/useDynamicFormData/types.d.ts.map +1 -0
  140. package/components/DynamicForm/hooks/useDynamicFormData/useDynamicFormData.d.ts +14 -0
  141. package/components/DynamicForm/hooks/useDynamicFormData/useDynamicFormData.d.ts.map +1 -0
  142. package/components/DynamicForm/hooks/useDynamicFormData/useDynamicFormData.js +74 -0
  143. package/components/DynamicForm/hooks/useFieldsWithFetchedOptions/index.d.ts +3 -0
  144. package/components/DynamicForm/hooks/useFieldsWithFetchedOptions/index.d.ts.map +1 -0
  145. package/components/DynamicForm/hooks/useFieldsWithFetchedOptions/normalizeOptionsResponse.d.ts +7 -0
  146. package/components/DynamicForm/hooks/useFieldsWithFetchedOptions/normalizeOptionsResponse.d.ts.map +1 -0
  147. package/components/DynamicForm/hooks/useFieldsWithFetchedOptions/normalizeOptionsResponse.js +20 -0
  148. package/components/DynamicForm/hooks/useFieldsWithFetchedOptions/types.d.ts +12 -0
  149. package/components/DynamicForm/hooks/useFieldsWithFetchedOptions/types.d.ts.map +1 -0
  150. package/components/DynamicForm/hooks/useFieldsWithFetchedOptions/useFieldsWithFetchedOptions.d.ts +7 -0
  151. package/components/DynamicForm/hooks/useFieldsWithFetchedOptions/useFieldsWithFetchedOptions.d.ts.map +1 -0
  152. package/components/DynamicForm/hooks/useFieldsWithFetchedOptions/useFieldsWithFetchedOptions.js +56 -0
  153. package/components/DynamicForm/index.d.ts +7 -0
  154. package/components/DynamicForm/index.d.ts.map +1 -0
  155. package/components/DynamicForm/slots/DynamicFormEnum.d.ts +13 -0
  156. package/components/DynamicForm/slots/DynamicFormEnum.d.ts.map +1 -0
  157. package/components/DynamicForm/slots/DynamicFormEnum.js +4 -0
  158. package/components/DynamicForm/slots/DynamicFormSlots.d.ts +11 -0
  159. package/components/DynamicForm/slots/DynamicFormSlots.d.ts.map +1 -0
  160. package/components/DynamicForm/slots/DynamicFormSlots.js +40 -0
  161. package/components/DynamicForm/slots/index.d.ts +4 -0
  162. package/components/DynamicForm/slots/index.d.ts.map +1 -0
  163. package/components/DynamicForm/subcomponents/DynamicFormContent/DynamicFormContent.d.ts +3 -0
  164. package/components/DynamicForm/subcomponents/DynamicFormContent/DynamicFormContent.d.ts.map +1 -0
  165. package/components/DynamicForm/subcomponents/DynamicFormContent/DynamicFormContent.js +56 -0
  166. package/components/DynamicForm/types.d.ts +346 -0
  167. package/components/DynamicForm/types.d.ts.map +1 -0
  168. package/components/EditLabel/slots/EditLabelSlots.d.ts +1 -1
  169. package/components/extended/mui/Autocomplete/slots/AutocompleteSlots.d.ts +1 -1
  170. package/components/extended/mui/DatePicker/slots/DatePickerSlots.d.ts +1 -1
  171. package/components/extended/mui/Select/slots/SelectSlots.d.ts +1 -1
  172. package/components/extended/mui/TextField/slots/TextFieldSlots.d.ts +1 -1
  173. package/components/extended/rsuite/DateRangePicker/DateRangePicker.d.ts.map +1 -1
  174. package/components/extended/rsuite/DateRangePicker/DateRangePicker.js +30 -32
  175. package/components/hook-form/RHFAutocomplete/RHFAutocomplete.d.ts.map +1 -1
  176. package/components/hook-form/RHFAutocomplete/RHFAutocomplete.js +48 -46
  177. package/components/hook-form/RHFDatePicker/slots/RHFDatePickerSlots.d.ts +1 -1
  178. package/components/hook-form/RHFPeriod/slots/RHFPeriodSlots.d.ts +1 -1
  179. package/components/hook-form/RHFSelect/slots/RHFSlots.d.ts +1 -1
  180. package/components/hook-form/RHFTextField/slots/RHFTextFieldSlots.d.ts +1 -1
  181. package/components/hook-form/RHFTextFieldPassword/slots/RHFTextFieldPasswordSlots.d.ts +1 -1
  182. package/components/hook-form/RHFormProvider/styles.d.ts.map +1 -1
  183. package/components/hook-form/RHFormProvider/styles.js +11 -2
  184. package/components/hook-form/RHFormProvider/types.d.ts +7 -7
  185. package/components/index.d.ts +1 -0
  186. package/components/index.d.ts.map +1 -1
  187. package/index.js +467 -457
  188. package/package.json +6 -6
@@ -0,0 +1,64 @@
1
+ function s(r) {
2
+ if (r.currentValue && r.currentValue.isVisible) {
3
+ const e = r.currentValue, t = r.fieldType.rhfComponent === "RHFCheckableList", a = r.fieldType.rhfComponent === "RHFDaysOfWeekPicker", i = r.fieldType.rhfComponent === "RHFAutoComplete", o = r.fieldType.rhfComponent === "RHFSelect" && r.fieldType.rhfComponentProps?.isMultiple === !0;
4
+ if (i)
5
+ return;
6
+ if (o)
7
+ return [];
8
+ if (t || a) {
9
+ if (e.valueInteger !== null && e.valueInteger !== void 0)
10
+ return [e.valueInteger];
11
+ if (e.valueString !== null && e.valueString !== void 0)
12
+ try {
13
+ const u = JSON.parse(e.valueString);
14
+ if (Array.isArray(u))
15
+ return u;
16
+ } catch {
17
+ const u = Number(e.valueString);
18
+ return !isNaN(u) && e.valueString.trim() !== "" ? [u] : [e.valueString];
19
+ }
20
+ if (e.value)
21
+ try {
22
+ const u = JSON.parse(e.value);
23
+ if (Array.isArray(u))
24
+ return u;
25
+ } catch {
26
+ const u = Number(e.value);
27
+ return !isNaN(u) && e.value.trim() !== "" ? [u] : [e.value];
28
+ }
29
+ return [];
30
+ }
31
+ if (e.valueString !== null && e.valueString !== void 0)
32
+ return e.valueString;
33
+ if (e.valueInteger !== null && e.valueInteger !== void 0)
34
+ return e.valueInteger;
35
+ if (e.valueDouble !== null && e.valueDouble !== void 0)
36
+ return e.valueDouble;
37
+ if (e.valueBoolean !== null && e.valueBoolean !== void 0)
38
+ return e.valueBoolean;
39
+ if (e.valueTimestamp !== null && e.valueTimestamp !== void 0)
40
+ return e.valueTimestamp;
41
+ if (e.value) {
42
+ const u = Number(e.value);
43
+ return !isNaN(u) && e.value.trim() !== "" ? u : e.value;
44
+ }
45
+ }
46
+ if (r.defaultValue !== null && r.defaultValue !== void 0) {
47
+ if (r.fieldType.rhfComponent === "RHFCheckableList" || r.fieldType.rhfComponent === "RHFDaysOfWeekPicker")
48
+ try {
49
+ const t = JSON.parse(r.defaultValue);
50
+ if (Array.isArray(t))
51
+ return t;
52
+ } catch {
53
+ const t = Number(r.defaultValue);
54
+ return !isNaN(t) && r.defaultValue.trim() !== "" ? [t] : [r.defaultValue];
55
+ }
56
+ const e = Number(r.defaultValue);
57
+ return !isNaN(e) && r.defaultValue.trim() !== "" ? e : r.defaultValue;
58
+ }
59
+ const n = r.fieldType.id, l = r.fieldType.rhfComponent;
60
+ return l === "RHFCheckableList" || l === "RHFDaysOfWeekPicker" ? [] : l === "RHFAutoComplete" ? r.fieldType.rhfComponentProps?.isMultiple === !0 ? [] : null : l === "RHFRadioGroup" ? null : n === "fft_boolean" || n === "fft_checkbox" ? !1 : null;
61
+ }
62
+ export {
63
+ s as resolveInitialValue
64
+ };
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Option shape used by RHFAutoComplete in DynamicForm (same as SelectOption).
3
+ */
4
+ export type AutocompleteOptionValue = {
5
+ id: string | number;
6
+ label: string;
7
+ };
8
+ /**
9
+ * Return type of resolveInitialValue: the resolved initial value for a DynamicForm field.
10
+ * Can be a primitive, array (e.g. for checkable list), option object (for RHFAutoComplete), or null/undefined.
11
+ */
12
+ export type ResolveInitialValueResult = string | number | boolean | (string | number)[] | AutocompleteOptionValue | null | undefined;
13
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/components/src/components/DynamicForm/helpers/resolveInitialValue/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG;IAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7E;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GACjC,MAAM,GACN,MAAM,GACN,OAAO,GACP,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GACnB,uBAAuB,GACvB,IAAI,GACJ,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { stringifyJsonFieldsForSubmit } from './stringifyJsonFieldsForSubmit';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/components/src/components/DynamicForm/helpers/stringifyJsonFieldsForSubmit/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Utility to serialize object/array values to JSON strings for backend payloads.
3
+ * Used only at submit time so form state can keep rich values (Date, objects, arrays)
4
+ * while the API receives JSON strings where required.
5
+ */
6
+ /**
7
+ * Serializes object/array fields in a record to JSON strings for submit.
8
+ * @param data - Form payload (after formatOutputData)
9
+ * @param stringifyJsonFields - If `true`, stringify all values that are plain objects or arrays.
10
+ * If `string[]`, stringify only those field names (values are stringified only if they are object/array).
11
+ * @returns New record with stringified values where applicable
12
+ */
13
+ export declare function stringifyJsonFieldsForSubmit(data: Record<string, unknown>, stringifyJsonFields: true | string[]): Record<string, unknown>;
14
+ //# sourceMappingURL=stringifyJsonFieldsForSubmit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stringifyJsonFieldsForSubmit.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/components/src/components/DynamicForm/helpers/stringifyJsonFieldsForSubmit/stringifyJsonFieldsForSubmit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAYH;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,mBAAmB,EAAE,IAAI,GAAG,MAAM,EAAE,GACnC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiBzB"}
@@ -0,0 +1,16 @@
1
+ function s(r) {
2
+ return r == null ? !1 : typeof r == "object" && (Array.isArray(r) || r.constructor === Object);
3
+ }
4
+ function c(r, e) {
5
+ const o = Object.keys(r), n = { ...r };
6
+ for (const t of o) {
7
+ if (!(t in n))
8
+ continue;
9
+ const i = n[t];
10
+ s(i) && (n[t] = JSON.stringify(i));
11
+ }
12
+ return n;
13
+ }
14
+ export {
15
+ c as stringifyJsonFieldsForSubmit
16
+ };
@@ -0,0 +1,16 @@
1
+ import { DynamicFormApiResponse } from '../../types';
2
+ /**
3
+ * Hook that prepares dynamic form data (initial values and validation schema).
4
+ *
5
+ * Responsibilities:
6
+ * - Resolve initial values
7
+ * - Create validation schema so that when a field is visible (including when
8
+ * conditional rules make it visible), it uses its full validation schema.
9
+ *
10
+ * Note: This hook does NOT create formMethods; RHFormProvider does that.
11
+ */
12
+ export declare function useDynamicForm(data: DynamicFormApiResponse): {
13
+ initialValues: Record<string, unknown>;
14
+ validationSchema: import('../../..').ValidationSchema<Record<string, unknown>>;
15
+ };
16
+ //# sourceMappingURL=useDynamicForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDynamicForm.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/components/src/components/DynamicForm/hooks/useDynamicForm/useDynamicForm.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAqB,MAAM,aAAa,CAAC;AAUxE;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,sBAAsB;;;EAyF1D"}
@@ -0,0 +1,90 @@
1
+ import { useMemo as l } from "react";
2
+ import { resolveInitialValue as S } from "../../helpers/resolveInitialValue/resolveInitialValue.js";
3
+ import "yup";
4
+ import { createFieldValidationSchema as b } from "../../helpers/createFieldValidationSchema/createFieldValidationSchema.js";
5
+ import { evaluateConditionalRule as u } from "../../helpers/evaluateConditionalRule/evaluateConditionalRule.js";
6
+ import "../../helpers/resolveFieldComponent/strategies/registry.js";
7
+ import "@emotion/react/jsx-runtime";
8
+ import "../../../hook-form/RHFTextField/RHFTextField.js";
9
+ import "clsx";
10
+ import "../../../hook-form/RHFSelect/constants.js";
11
+ import "../../../hook-form/RHFSelect/slots/RHFSlots.js";
12
+ import "react-hook-form";
13
+ import "../../../../contexts/AppearanceComponentContext/AppearanceComponentContext.js";
14
+ import "zustand";
15
+ import "zustand/shallow";
16
+ import "zustand/middleware";
17
+ import "zustand/middleware/immer";
18
+ import "@m4l/styles";
19
+ import "@mui/material/utils/useId";
20
+ import { useModuleDictionary as N } from "@m4l/core";
21
+ import "../../../Label/slots/LabelSlots.js";
22
+ import "../../../HelperError/HelperError.js";
23
+ import "../../../NumberInput/NumberInput.js";
24
+ import "../../../hook-form/RHFNumberInput/slots/RHFNumberInputSlots.js";
25
+ import "../../../hook-form/RHFCheckbox/RHFCheckbox.js";
26
+ import "../../../hook-form/RHFCheckableList/constants.js";
27
+ import "../../../hook-form/RHFCheckableList/slots/RHFCheckableListSlots.js";
28
+ import "../../slots/DynamicFormSlots.js";
29
+ import "../../../hook-form/RHFDaysOfWeekPicker/RHFDaysOfWeekPicker.js";
30
+ import "../../../hook-form/RHFDateRangePicker/RHFDateRangePicker.js";
31
+ import "../../../extended/mui/Autocomplete/Autocomplete.js";
32
+ import "../../../hook-form/RHFAutocomplete/slots/RHFAutocompleteSlots.js";
33
+ import "../../../hook-form/RHFAutocomplete/constants.js";
34
+ import "../../../extended/mui/Radio/Radio.js";
35
+ import "../../../hook-form/RHFRadioGroup/slots/styled.js";
36
+ import "../../../Icon/constants.js";
37
+ import "../../../Icon/slots/IconSlots.js";
38
+ import "../../../hook-form/RHFRadioGroup/constants.js";
39
+ import { createValidationPartialObject as g, createValidationSchema as w, createValidationFullObject as A } from "../../../hook-form/RHFormProvider/schema.js";
40
+ function lo(h) {
41
+ const { fields: a, conditionalRules: p } = h, { getLabel: s } = N(), d = l(() => {
42
+ const r = {};
43
+ return a.forEach((o) => {
44
+ o.currentValue?.isVisible !== !1 && (r[o.name] = S(o));
45
+ }), r;
46
+ }, [a]), f = l(() => {
47
+ const r = g({});
48
+ return a.forEach((o) => {
49
+ const e = b(o, s);
50
+ if (!e)
51
+ return;
52
+ const V = !o.isConditional && o.currentValue?.isVisible !== !1;
53
+ if (o.isConditional === !1) {
54
+ r[o.name] = V ? e : e.optional();
55
+ return;
56
+ }
57
+ const c = (p || []).filter(
58
+ (t) => t.isActive && t.targetFieldName === o.name
59
+ ), m = [...new Set(c.map((t) => t.sourceFieldName))];
60
+ if (m.length === 0) {
61
+ r[o.name] = e.optional();
62
+ return;
63
+ }
64
+ const y = e.when(
65
+ m,
66
+ {
67
+ /** Returns true when the field is visible (any show rule met or any hide rule not met). */
68
+ is: (t) => {
69
+ const F = Array.isArray(t) ? t : [t], n = {};
70
+ return m.forEach((i, v) => {
71
+ n[i] = F[v];
72
+ }), c.some(
73
+ (i) => i.actionType === "show" && u(i, n[i.sourceFieldName]) || i.actionType === "hide" && !u(i, n[i.sourceFieldName])
74
+ );
75
+ },
76
+ then: (t) => t,
77
+ otherwise: (t) => t.optional()
78
+ }
79
+ );
80
+ r[o.name] = y;
81
+ }), w(A(r));
82
+ }, [a, p, s]);
83
+ return {
84
+ initialValues: d,
85
+ validationSchema: f
86
+ };
87
+ }
88
+ export {
89
+ lo as useDynamicForm
90
+ };
@@ -0,0 +1,13 @@
1
+ import { DynamicFormApiResponse } from '../../types';
2
+ /**
3
+ * Hook that manages conditional rules for the dynamic form.
4
+ * Must be used inside RHFormProvider context.
5
+ *
6
+ * Responsibilities:
7
+ * - Evaluate conditional rules
8
+ * - Manage field visibility
9
+ */
10
+ export declare function useDynamicFormConditionals(data: DynamicFormApiResponse): {
11
+ visibleFields: import('../../types').Field[];
12
+ };
13
+ //# sourceMappingURL=useDynamicFormConditionals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDynamicFormConditionals.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/components/src/components/DynamicForm/hooks/useDynamicFormConditionals/useDynamicFormConditionals.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAsC,MAAM,aAAa,CAAC;AAGzF;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,sBAAsB;;EA8DtE"}
@@ -0,0 +1,25 @@
1
+ import { useState as f, useEffect as m, useMemo as u } from "react";
2
+ import { useFormContext as F, useWatch as h } from "react-hook-form";
3
+ import { evaluateConditionalRule as p } from "../../helpers/evaluateConditionalRule/evaluateConditionalRule.js";
4
+ function v(l) {
5
+ const { fields: s, conditionalRules: o } = l, { control: c } = F(), [n, r] = f(() => {
6
+ const i = /* @__PURE__ */ new Set();
7
+ return s.forEach((e) => {
8
+ !e.isConditional && e.currentValue?.isVisible !== !1 && i.add(e.name);
9
+ }), i;
10
+ }), a = h({ control: c });
11
+ return m(() => {
12
+ const i = /* @__PURE__ */ new Set();
13
+ s.forEach((e) => {
14
+ !e.isConditional && e.currentValue?.isVisible !== !1 && i.add(e.name);
15
+ }), o.filter((e) => e.isActive).forEach((e) => {
16
+ const d = a[e.sourceFieldName], t = p(e, d);
17
+ t && e.actionType === "show" ? i.add(e.targetFieldName) : !t && e.actionType === "show" || t && e.actionType === "hide" || !t && e.actionType === "hide" && i.add(e.targetFieldName);
18
+ }), r(i);
19
+ }, [a, o, s]), {
20
+ visibleFields: u(() => s.filter((i) => n.has(i.name)).sort((i, e) => i.displayOrder - e.displayOrder), [s, n])
21
+ };
22
+ }
23
+ export {
24
+ v as useDynamicFormConditionals
25
+ };
@@ -0,0 +1,3 @@
1
+ export { useDynamicFormCoupled } from './useDynamicFormCoupled';
2
+ export type { UseDynamicFormCoupledProps, UseDynamicFormCoupledReturn } from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/components/src/components/DynamicForm/hooks/useDynamicFormCoupled/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,YAAY,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { ObjectShape } from 'yup/lib/object';
2
+ import { FormStatusLoad, ValidationSchema } from '../../../hook-form/RHFormProvider/types';
3
+ import { DynamicFormApiResponse, DynamicFormValues, DynamicFormPropsCoupled } from '../../types';
4
+ /**
5
+ * Props for useDynamicFormCoupled.
6
+ * Picked from DynamicFormPropsCoupled (fetch/send and initial data); initialData is optional
7
+ * and nullable since the hook can run without pre-loaded data.
8
+ *
9
+ * In coupled mode you can attach external (sibling) fields to the same form:
10
+ * - siblingInitialValues: initial values for those fields
11
+ * - siblingValidationShape: Yup shape (field name -> schema) for those fields
12
+ * They are merged with the dynamic form values/schema so one RHFormProvider drives both.
13
+ */
14
+ export type UseDynamicFormCoupledProps = Pick<DynamicFormPropsCoupled, 'formId' | 'formInstanceId' | 'inputEndpoint' | 'outputEndpoint' | 'formatInputData' | 'formatOutputData' | 'onSubmit'> & {
15
+ /** Pre-loaded form data; when provided, fetch can be skipped or used as fallback. */
16
+ initialData?: DynamicFormApiResponse | null;
17
+ /** Initial values for external fields (merged with dynamic form values). Coupled only. */
18
+ siblingInitialValues?: Record<string, unknown>;
19
+ /** Validation shape for external fields (field name -> Yup schema). Merged with dynamic form schema. Coupled only. */
20
+ siblingValidationShape?: ObjectShape;
21
+ };
22
+ /**
23
+ * Return type of useDynamicFormCoupled.
24
+ * Combines data/send logic (useDynamicFormData) with schema/values (useDynamicForm)
25
+ * for use when DynamicForm runs in coupled mode (inside an existing RHFormProvider).
26
+ */
27
+ export interface UseDynamicFormCoupledReturn {
28
+ /** Raw form data from fetch or initialData (null until loaded). */
29
+ formData: DynamicFormApiResponse | null;
30
+ /** Form data to use for rendering: formData ?? initialData. */
31
+ formDataToUse: DynamicFormApiResponse | null;
32
+ /** Load state for coupled UI (skeleton when not 'ready'). */
33
+ statusLoad: FormStatusLoad;
34
+ /** Submit handler (sends to outputEndpoint or calls onSubmit). */
35
+ handleSubmit: (data: Record<string, unknown>) => Promise<void>;
36
+ /** Initial values for RHFormProvider (from formDataToUse). */
37
+ initialValues: DynamicFormValues;
38
+ /** Validation schema for RHFormProvider (from formDataToUse). */
39
+ validationSchema: ValidationSchema<DynamicFormValues>;
40
+ /** True while a request is in progress. */
41
+ isLoading: boolean;
42
+ }
43
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/components/src/components/DynamicForm/hooks/useDynamicFormCoupled/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACjG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAEhF;;;;;;;;;GASG;AACH,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAC3C,uBAAuB,EACrB,QAAQ,GACR,gBAAgB,GAChB,eAAe,GACf,gBAAgB,GAChB,iBAAiB,GACjB,kBAAkB,GAClB,UAAU,CACb,GAAG;IACF,qFAAqF;IACrF,WAAW,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAC5C,0FAA0F;IAC1F,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/C,sHAAsH;IACtH,sBAAsB,CAAC,EAAE,WAAW,CAAC;CACtC,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,2BAA2B;IAC1C,mEAAmE;IACnE,QAAQ,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACxC,+DAA+D;IAC/D,aAAa,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAC7C,6DAA6D;IAC7D,UAAU,EAAE,cAAc,CAAC;IAC3B,kEAAkE;IAClE,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,8DAA8D;IAC9D,aAAa,EAAE,iBAAiB,CAAC;IACjC,iEAAiE;IACjE,gBAAgB,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IACtD,2CAA2C;IAC3C,SAAS,EAAE,OAAO,CAAC;CACpB"}
@@ -0,0 +1,54 @@
1
+ import { UseDynamicFormCoupledProps, UseDynamicFormCoupledReturn } from './types';
2
+ /**
3
+ * Hook that combines useDynamicFormData and useDynamicForm for coupled mode.
4
+ *
5
+ * In coupled mode the form is rendered inside an existing RHFormProvider (at the
6
+ * consumer site). This hook:
7
+ * 1. Fetches/sends form data (same as useDynamicFormData: formId, formInstanceId,
8
+ * inputEndpoint, outputEndpoint, initialData, formatInputData, formatOutputData, onSubmit).
9
+ * 2. Derives initialValues and validationSchema from the form data (same as useDynamicForm).
10
+ *
11
+ * Fields with endpoint/params (RHFSelect, RHFCheckableList with empty options) have their
12
+ * options fetched inside DynamicFormContent via useFieldsWithFetchedOptions; no extra
13
+ * setup is needed when using this hook in coupled mode.
14
+ *
15
+ * The consumer uses the returned values to:
16
+ * - Pass formDataToUse, initialValues, validationSchema, statusLoad to DynamicForm (coupled=true)
17
+ * or to their own RHFormProvider + DynamicFormContent.
18
+ * - Use statusLoad for loading UI (e.g. show skeleton when statusLoad !== 'ready').
19
+ * - Use handleSubmit when the parent form or flow triggers submit.
20
+ * @example
21
+ * ```tsx
22
+ * const {
23
+ * formDataToUse,
24
+ * initialValues,
25
+ * validationSchema,
26
+ * statusLoad,
27
+ * handleSubmit,
28
+ * } = useDynamicFormCoupled({
29
+ * formId,
30
+ * formInstanceId,
31
+ * inputEndpoint,
32
+ * outputEndpoint,
33
+ * initialData,
34
+ * formatInputData,
35
+ * formatOutputData,
36
+ * onSubmit,
37
+ * });
38
+ *
39
+ * if (statusLoad !== 'ready' || !formDataToUse) return <Skeleton />;
40
+ *
41
+ * return (
42
+ * <RHFormProvider
43
+ * values={initialValues}
44
+ * validationSchema={validationSchema}
45
+ * onSubmit={handleSubmit}
46
+ * statusLoad={statusLoad}
47
+ * >
48
+ * <DynamicForm coupled initialData={formDataToUse} coupledStatusLoad={statusLoad} />
49
+ * </RHFormProvider>
50
+ * );
51
+ * ```
52
+ */
53
+ export declare function useDynamicFormCoupled(props: UseDynamicFormCoupledProps): UseDynamicFormCoupledReturn;
54
+ //# sourceMappingURL=useDynamicFormCoupled.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDynamicFormCoupled.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/components/src/components/DynamicForm/hooks/useDynamicFormCoupled/useDynamicFormCoupled.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAEvF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,0BAA0B,GAChC,2BAA2B,CAgE7B"}
@@ -0,0 +1,53 @@
1
+ import { useMemo as s } from "react";
2
+ import * as V from "yup";
3
+ import { EMPTY_DATA as F } from "../../constants.js";
4
+ import { useDynamicFormData as j } from "../useDynamicFormData/useDynamicFormData.js";
5
+ import { useDynamicForm as E } from "../useDynamicForm/useDynamicForm.js";
6
+ function M(r) {
7
+ const {
8
+ formId: u,
9
+ formInstanceId: c,
10
+ inputEndpoint: l,
11
+ outputEndpoint: d,
12
+ formatInputData: p,
13
+ formatOutputData: f,
14
+ onSubmit: b,
15
+ initialData: i,
16
+ siblingInitialValues: t,
17
+ siblingValidationShape: a
18
+ } = r, {
19
+ formData: n,
20
+ statusLoad: h,
21
+ handleSubmit: D,
22
+ isLoading: S
23
+ } = j({
24
+ formId: u,
25
+ formInstanceId: c,
26
+ inputEndpoint: l,
27
+ outputEndpoint: d,
28
+ initialData: i,
29
+ formatInputData: p,
30
+ formatOutputData: f,
31
+ onSubmit: b
32
+ }), m = s(
33
+ () => n ?? i ?? null,
34
+ [n, i]
35
+ ), { initialValues: o, validationSchema: e } = E(m ?? F), y = s(() => !t || Object.keys(t).length === 0 ? o : { ...o, ...t }, [o, t]), g = s(() => {
36
+ if (!a || Object.keys(a).length === 0)
37
+ return e;
38
+ const I = { ...e.fields ?? {}, ...a };
39
+ return V.object().shape(I);
40
+ }, [e, a]);
41
+ return {
42
+ formData: n,
43
+ formDataToUse: m,
44
+ statusLoad: h,
45
+ handleSubmit: D,
46
+ initialValues: y,
47
+ validationSchema: g,
48
+ isLoading: S
49
+ };
50
+ }
51
+ export {
52
+ M as useDynamicFormCoupled
53
+ };
@@ -0,0 +1,20 @@
1
+ import { FormStatusLoad } from '../../../hook-form/RHFormProvider/types';
2
+ import { DynamicFormApiResponse } from '../../types';
3
+ export interface UseDynamicFormDataProps {
4
+ formId?: number;
5
+ formInstanceId?: number;
6
+ inputEndpoint?: string;
7
+ outputEndpoint?: string;
8
+ formatInputData?: (data: Record<string, unknown>) => Record<string, unknown>;
9
+ formatOutputData?: (data: Record<string, unknown>) => Record<string, unknown>;
10
+ onSubmit?: (data: Record<string, unknown>) => void | Promise<void>;
11
+ initialData?: DynamicFormApiResponse | null;
12
+ }
13
+ export type DynamicFormDataStatusLoad = 'initial' | 'ready' | 'error';
14
+ export interface UseDynamicFormDataReturn {
15
+ formData: DynamicFormApiResponse | null;
16
+ statusLoad: FormStatusLoad;
17
+ handleSubmit: (data: Record<string, unknown>) => Promise<void>;
18
+ isLoading: boolean;
19
+ }
20
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/components/src/components/DynamicForm/hooks/useDynamicFormData/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7E,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9E,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,WAAW,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;CAC7C;AAED,MAAM,MAAM,yBAAyB,GACjC,SAAS,GACT,OAAO,GACP,OAAO,CAAC;AAEZ,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACxC,UAAU,EAAE,cAAc,CAAC;IAC3B,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,SAAS,EAAE,OAAO,CAAC;CACpB"}
@@ -0,0 +1,14 @@
1
+ import { UseDynamicFormDataProps, UseDynamicFormDataReturn } from './types';
2
+ /**
3
+ * Hook that manages fetching and submitting dynamic form data.
4
+ *
5
+ * Responsibilities:
6
+ * - Fetch data from inputEndpoint via networkOperation
7
+ * - Apply formatInputData when provided
8
+ * - Manage loading state
9
+ * - Send data to outputEndpoint on submit
10
+ * - Apply formatOutputData before sending
11
+ * - Serialize objects/arrays to JSON only in the payload sent to the backend (standard behavior)
12
+ */
13
+ export declare function useDynamicFormData(props: UseDynamicFormDataProps): UseDynamicFormDataReturn;
14
+ //# sourceMappingURL=useDynamicFormData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDynamicFormData.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/components/src/components/DynamicForm/hooks/useDynamicFormData/useDynamicFormData.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAE5E;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,uBAAuB,GAC7B,wBAAwB,CA2J1B"}
@@ -0,0 +1,74 @@
1
+ import { useState as S, useRef as _, useEffect as D } from "react";
2
+ import { useNetwork as g } from "@m4l/core";
3
+ import { stringifyJsonFieldsForSubmit as h } from "../../helpers/stringifyJsonFieldsForSubmit/stringifyJsonFieldsForSubmit.js";
4
+ function L(v) {
5
+ const {
6
+ formId: C,
7
+ formInstanceId: o,
8
+ inputEndpoint: a,
9
+ outputEndpoint: m,
10
+ formatInputData: c,
11
+ formatOutputData: w,
12
+ onSubmit: f,
13
+ initialData: s
14
+ } = v, { networkOperation: p } = g(), [b, y] = S(s || null), [n, u] = S(
15
+ a ? "edit" : s ? "ready" : "new"
16
+ ), [T, e] = S(!1), i = _(null);
17
+ return D(() => {
18
+ let r = !0;
19
+ if (n === "edit" && a) {
20
+ i.current && i.current.abort(), i.current = new AbortController(), e(!0);
21
+ const t = {};
22
+ o !== void 0 && (t.form_instance_id = o), p({
23
+ method: "GET",
24
+ endPoint: a,
25
+ parms: t,
26
+ timeout: 6e4,
27
+ isRemote: !0,
28
+ responseToCamelCase: !0,
29
+ signal: i.current.signal
30
+ }).then((l) => {
31
+ if (!r)
32
+ return;
33
+ let d = l;
34
+ c && (d = c(d)), y(d), u("reload_values_provider"), e(!1);
35
+ }).catch(() => {
36
+ r && (u("error"), e(!1));
37
+ });
38
+ } else n === "reload_values_provider" ? (u("ready"), e(!1)) : (n === "new" || n === "ready" && b) && e(!1);
39
+ return () => {
40
+ r = !1, i.current && i.current.abort();
41
+ };
42
+ }, [n, a, C, o, c, p, b]), D(() => {
43
+ a || (s ? (y(s), u("ready")) : (y(null), u("new")));
44
+ }, [s, a]), {
45
+ formData: b,
46
+ statusLoad: n,
47
+ handleSubmit: async (r) => {
48
+ if (!m) {
49
+ f && await f(h(r));
50
+ return;
51
+ }
52
+ e(!0);
53
+ try {
54
+ let t = r;
55
+ w && (t = w(r)), t = h(t, !0);
56
+ let l = m;
57
+ o !== void 0 && (l = `${m}/${o}`), await p({
58
+ method: o !== void 0 ? "PUT" : "POST",
59
+ endPoint: l,
60
+ data: t,
61
+ timeout: 6e4,
62
+ isRemote: !0,
63
+ bodyToSnakeCase: !0
64
+ }), f && await f(t);
65
+ } finally {
66
+ e(!1);
67
+ }
68
+ },
69
+ isLoading: T
70
+ };
71
+ }
72
+ export {
73
+ L as useDynamicFormData
74
+ };
@@ -0,0 +1,3 @@
1
+ export { useFieldsWithFetchedOptions } from './useFieldsWithFetchedOptions';
2
+ export type { UseFieldsWithFetchedOptionsProps, UseFieldsWithFetchedOptionsReturn } from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/components/src/components/DynamicForm/hooks/useFieldsWithFetchedOptions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,YAAY,EAAE,gCAAgC,EAAE,iCAAiC,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { FieldOption } from '../../types';
2
+ /**
3
+ * Normalizes API response to FieldOption[].
4
+ * Supports array or { data: array } and snake_case or camelCase keys.
5
+ */
6
+ export declare function normalizeOptionsResponse(response: unknown): FieldOption[];
7
+ //# sourceMappingURL=normalizeOptionsResponse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalizeOptionsResponse.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/components/src/components/DynamicForm/hooks/useFieldsWithFetchedOptions/normalizeOptionsResponse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAe1C;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,OAAO,GAAG,WAAW,EAAE,CAgBzE"}
@@ -0,0 +1,20 @@
1
+ function l(r) {
2
+ let d = [];
3
+ if (Array.isArray(r))
4
+ d = r;
5
+ else if (r && typeof r == "object" && "data" in r) {
6
+ const a = r.data;
7
+ d = Array.isArray(a) ? a : [];
8
+ }
9
+ return d.map((a, i) => ({
10
+ id: a.id ?? i,
11
+ name: a.name ?? a.value ?? null,
12
+ value: String(a.value ?? a.id ?? ""),
13
+ isDefault: a.isDefault ?? a.is_default ?? !1,
14
+ displayOrder: a.displayOrder ?? a.display_order ?? i,
15
+ nameDictionaryId: a.nameDictionaryId ?? a.name_dictionary_id ?? 0
16
+ }));
17
+ }
18
+ export {
19
+ l as normalizeOptionsResponse
20
+ };
@@ -0,0 +1,12 @@
1
+ import { Field } from '../../types';
2
+ export interface UseFieldsWithFetchedOptionsProps {
3
+ /** Visible fields from useDynamicFormConditionals. */
4
+ fields: Field[];
5
+ }
6
+ export interface UseFieldsWithFetchedOptionsReturn {
7
+ /** Same fields with options populated from endpoint when applicable. */
8
+ fields: Field[];
9
+ /** True while any field options are being fetched. */
10
+ isLoadingOptions: boolean;
11
+ }
12
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/components/src/components/DynamicForm/hooks/useFieldsWithFetchedOptions/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,MAAM,WAAW,gCAAgC;IAC/C,sDAAsD;IACtD,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,iCAAiC;IAChD,wEAAwE;IACxE,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,sDAAsD;IACtD,gBAAgB,EAAE,OAAO,CAAC;CAC3B"}