@digigov/form 2.0.0-a32ad9b2 → 2.0.0-abd768eb

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 (331) hide show
  1. package/Field/FieldBase/index.js +7 -2
  2. package/Field/FieldBase.js.map +2 -2
  3. package/Field/FieldBaseContainer/index.js +37 -18
  4. package/Field/FieldBaseContainer.d.ts +1 -1
  5. package/Field/FieldBaseContainer.js.map +2 -2
  6. package/Field/FieldConditional/index.js +4 -0
  7. package/Field/FieldConditional.js.map +2 -2
  8. package/Field/index.js +10 -4
  9. package/Field/index.js.map +2 -2
  10. package/Field/types.d.ts +10 -3
  11. package/Field/utils/index.js +3 -1
  12. package/Field/utils/index.js.map +2 -2
  13. package/Field/utils/useField/index.js +8 -1
  14. package/Field/utils/useField.js.map +2 -2
  15. package/FieldArray/FormDialog/index.js +314 -196
  16. package/FieldArray/FormDialog.d.ts +20 -7
  17. package/FieldArray/FormDialog.js.map +3 -3
  18. package/FieldArray/__stories__/Default.d.ts +1 -1
  19. package/FieldArray/__stories__/WithExactLength.d.ts +1 -1
  20. package/FieldArray/__stories__/WithModal.d.ts +1 -1
  21. package/FieldArray/index.d.ts +1 -0
  22. package/FieldArray/index.js +32 -8
  23. package/FieldArray/index.js.map +2 -2
  24. package/FieldObject/index.d.ts +3 -0
  25. package/FieldObject/index.js +26 -15
  26. package/FieldObject/index.js.map +2 -2
  27. package/FormBuilder/FormBuilder.stories.d.ts +2 -0
  28. package/FormBuilder/__stories__/AutoErrorGrouping.d.ts +1 -1
  29. package/FormBuilder/__stories__/Default.d.ts +1 -1
  30. package/FormBuilder/__stories__/ErrorGrouping.d.ts +1 -1
  31. package/FormBuilder/index.d.ts +1 -1
  32. package/FormBuilder/index.js +11 -7
  33. package/FormBuilder/index.js.map +2 -2
  34. package/FormContext/index.js +6 -2
  35. package/FormContext.d.ts +1 -0
  36. package/FormContext.js.map +2 -2
  37. package/MultiplicityField/MultiplicityField.stories.d.ts +2 -0
  38. package/MultiplicityField/__stories__/Default.d.ts +1 -1
  39. package/MultiplicityField/__stories__/PreviewDisplay.d.ts +1 -1
  40. package/MultiplicityField/__stories__/WithExactLength.d.ts +1 -1
  41. package/MultiplicityField/__stories__/WithMaxLength.d.ts +1 -1
  42. package/MultiplicityField/__stories__/WithMinAndMaxLength.d.ts +1 -1
  43. package/MultiplicityField/__stories__/WithMinLength.d.ts +1 -1
  44. package/MultiplicityField/add-objects/index.js +2 -0
  45. package/MultiplicityField/add-objects.js.map +2 -2
  46. package/MultiplicityField/index.js +4 -1
  47. package/MultiplicityField/index.js.map +2 -2
  48. package/MultiplicityField/types.d.ts +1 -0
  49. package/Questions/Questions.stories.d.ts +2 -0
  50. package/Questions/__stories__/Default.d.ts +1 -1
  51. package/cjs/Field/FieldBase/index.js +7 -2
  52. package/cjs/Field/FieldBase.js.map +2 -2
  53. package/cjs/Field/FieldBaseContainer/index.js +36 -17
  54. package/cjs/Field/FieldBaseContainer.js.map +3 -3
  55. package/cjs/Field/FieldConditional/index.js +4 -0
  56. package/cjs/Field/FieldConditional.js.map +2 -2
  57. package/cjs/Field/index.js +10 -4
  58. package/cjs/Field/index.js.map +2 -2
  59. package/cjs/Field/types.js.map +1 -1
  60. package/cjs/Field/utils/index.js +3 -1
  61. package/cjs/Field/utils/index.js.map +2 -2
  62. package/cjs/Field/utils/useField/index.js +8 -1
  63. package/cjs/Field/utils/useField.js.map +2 -2
  64. package/cjs/FieldArray/FormDialog/index.js +309 -194
  65. package/cjs/FieldArray/FormDialog.js.map +3 -3
  66. package/cjs/FieldArray/index.js +31 -7
  67. package/cjs/FieldArray/index.js.map +2 -2
  68. package/cjs/FieldObject/index.js +26 -15
  69. package/cjs/FieldObject/index.js.map +2 -2
  70. package/cjs/FormBuilder/index.js +11 -7
  71. package/cjs/FormBuilder/index.js.map +2 -2
  72. package/cjs/FormContext/index.js +7 -2
  73. package/cjs/FormContext.js.map +2 -2
  74. package/cjs/MultiplicityField/add-objects/index.js +2 -0
  75. package/cjs/MultiplicityField/add-objects.js.map +2 -2
  76. package/cjs/MultiplicityField/index.js +4 -1
  77. package/cjs/MultiplicityField/index.js.map +2 -2
  78. package/cjs/MultiplicityField/types.js.map +1 -1
  79. package/cjs/inputs/Checkboxes/index.js +2 -2
  80. package/cjs/inputs/Checkboxes/index.js.map +2 -2
  81. package/cjs/inputs/DateInput/index.js +41 -14
  82. package/cjs/inputs/DateInput/index.js.map +2 -2
  83. package/cjs/inputs/DateTimeInput/index.js +68 -34
  84. package/cjs/inputs/DateTimeInput/index.js.map +2 -2
  85. package/cjs/inputs/FileInput/index.js +52 -29
  86. package/cjs/inputs/FileInput/index.js.map +2 -2
  87. package/cjs/inputs/ImageInput/__stories__/logo.d/index.js +1 -0
  88. package/cjs/inputs/ImageInput/__stories__/logo.d.js.map +7 -0
  89. package/cjs/inputs/ImageInput/index.js +41 -10
  90. package/cjs/inputs/ImageInput/index.js.map +2 -2
  91. package/cjs/inputs/Input/index.js +4 -4
  92. package/cjs/inputs/Input/index.js.map +2 -2
  93. package/cjs/inputs/Select/index.js +4 -3
  94. package/cjs/inputs/Select/index.js.map +2 -2
  95. package/cjs/inputs/inputsScenarios/index.js +2 -2
  96. package/cjs/inputs/inputsScenarios.js.map +2 -2
  97. package/cjs/lazy/index.js +2 -1
  98. package/cjs/lazy.js.map +2 -2
  99. package/cjs/registry/index.js +6 -6
  100. package/cjs/registry.js.map +2 -2
  101. package/cjs/types.js.map +1 -1
  102. package/cjs/utils/index.js +20 -6
  103. package/cjs/utils.js.map +2 -2
  104. package/cjs/validators/index.js +11 -6
  105. package/cjs/validators/index.js.map +2 -2
  106. package/cjs/validators/utils/amka/index.js +60 -0
  107. package/cjs/validators/utils/amka.js.map +7 -0
  108. package/cjs/validators/utils/date/index.js +26 -3
  109. package/cjs/validators/utils/date.js.map +2 -2
  110. package/cjs/validators/utils/datetime/index.js +118 -24
  111. package/cjs/validators/utils/datetime.js.map +2 -2
  112. package/cjs/validators/utils/file/index.js +30 -17
  113. package/cjs/validators/utils/file.js.map +2 -2
  114. package/cjs/validators/utils/index.js +5 -1
  115. package/cjs/validators/utils/index.js.map +2 -2
  116. package/index.js +1 -1
  117. package/inputs/AutoCompleteInput/AutoComplete.stories.d.ts +2 -0
  118. package/inputs/AutoCompleteInput/__stories__/Default.d.ts +1 -1
  119. package/inputs/AutoCompleteInput/__stories__/Multiple.d.ts +1 -1
  120. package/inputs/Checkboxes/Checkboxes.stories.d.ts +2 -0
  121. package/inputs/Checkboxes/__stories__/Conditional.d.ts +1 -1
  122. package/inputs/Checkboxes/__stories__/Default.d.ts +1 -1
  123. package/inputs/Checkboxes/__stories__/WithDivider.d.ts +1 -1
  124. package/inputs/Checkboxes/index.js +2 -2
  125. package/inputs/Checkboxes/index.js.map +2 -2
  126. package/inputs/DateInput/DateInput.stories.d.ts +6 -0
  127. package/inputs/DateInput/__stories__/Default.d.ts +1 -1
  128. package/inputs/DateInput/__stories__/WithDefaultValue.d.ts +3 -0
  129. package/inputs/DateInput/__stories__/WithInitialValue.d.ts +3 -0
  130. package/inputs/DateInput/__stories__/WithWrongDefaultValue.d.ts +3 -0
  131. package/inputs/DateInput/__stories__/WithWrongInitialValue.d.ts +3 -0
  132. package/inputs/DateInput/index.js +42 -15
  133. package/inputs/DateInput/index.js.map +2 -2
  134. package/inputs/DateTimeInput/DateTimeInput.stories.d.ts +10 -3
  135. package/inputs/DateTimeInput/__stories__/Default.d.ts +1 -1
  136. package/inputs/DateTimeInput/__stories__/WithDefaultValue.d.ts +3 -0
  137. package/inputs/DateTimeInput/__stories__/WithInitialValue.d.ts +3 -0
  138. package/inputs/DateTimeInput/__stories__/WithWrongDefaultValue.d.ts +3 -0
  139. package/inputs/DateTimeInput/__stories__/WithWrongInitialValue.d.ts +3 -0
  140. package/inputs/DateTimeInput/index.js +69 -35
  141. package/inputs/DateTimeInput/index.js.map +2 -2
  142. package/inputs/FileInput/FileInput.stories.d.ts +3 -0
  143. package/inputs/FileInput/__stories__/Default.d.ts +1 -1
  144. package/inputs/FileInput/__stories__/WithBorderAndLink.d.ts +3 -0
  145. package/inputs/FileInput/index.d.ts +11 -4
  146. package/inputs/FileInput/index.js +57 -31
  147. package/inputs/FileInput/index.js.map +2 -2
  148. package/inputs/ImageInput/ImageInput.stories.d.ts +4 -1
  149. package/inputs/ImageInput/__stories__/Default.d.ts +1 -1
  150. package/inputs/ImageInput/__stories__/MaxSize.d.ts +1 -1
  151. package/inputs/ImageInput/__stories__/WithInitialValues.d.ts +3 -0
  152. package/inputs/ImageInput/__stories__/WithInvalidImageDimension.d.ts +1 -1
  153. package/inputs/ImageInput/__stories__/logo.d/index.js +1 -0
  154. package/inputs/ImageInput/__stories__/logo.d/package.json +6 -0
  155. package/inputs/ImageInput/__stories__/logo.d.js.map +7 -0
  156. package/inputs/ImageInput/index.d.ts +9 -1
  157. package/inputs/ImageInput/index.js +42 -11
  158. package/inputs/ImageInput/index.js.map +2 -2
  159. package/inputs/Input/Input.stories.d.ts +4 -0
  160. package/inputs/Input/__stories__/AFM.d.ts +1 -1
  161. package/inputs/Input/__stories__/AMKA.d.ts +3 -0
  162. package/inputs/Input/__stories__/Boolean.d.ts +1 -1
  163. package/inputs/Input/__stories__/Email.d.ts +3 -0
  164. package/inputs/Input/__stories__/IBAN.d.ts +1 -1
  165. package/inputs/Input/__stories__/Integer.d.ts +1 -1
  166. package/inputs/Input/__stories__/LandlineNumber.d.ts +1 -1
  167. package/inputs/Input/__stories__/MobilePhone.d.ts +1 -1
  168. package/inputs/Input/__stories__/PhoneNumber.d.ts +1 -1
  169. package/inputs/Input/__stories__/PostalCode.d.ts +1 -1
  170. package/inputs/Input/__stories__/String.d.ts +1 -1
  171. package/inputs/Input/__stories__/StringWithTrimValidation.d.ts +1 -1
  172. package/inputs/Input/__stories__/TextWithLimit.d.ts +1 -1
  173. package/inputs/Input/index.d.ts +2 -1
  174. package/inputs/Input/index.js +4 -4
  175. package/inputs/Input/index.js.map +2 -2
  176. package/inputs/Label/Label.stories.d.ts +2 -0
  177. package/inputs/Label/__stories__/Default.d.ts +1 -1
  178. package/inputs/OtpInput/OtpInput.stories.d.ts +2 -0
  179. package/inputs/OtpInput/__stories__/Default.d.ts +1 -1
  180. package/inputs/Radio/Radio.stories.d.ts +2 -0
  181. package/inputs/Radio/__stories__/Conditional.d.ts +1 -1
  182. package/inputs/Radio/__stories__/Default.d.ts +1 -1
  183. package/inputs/Radio/__stories__/WithDivider.d.ts +1 -1
  184. package/inputs/Select/Select.stories.d.ts +2 -0
  185. package/inputs/Select/__stories__/Default.d.ts +1 -1
  186. package/inputs/Select/index.d.ts +2 -1
  187. package/inputs/Select/index.js +4 -3
  188. package/inputs/Select/index.js.map +2 -2
  189. package/inputs/inputsScenarios/index.js +2 -2
  190. package/inputs/inputsScenarios.d.ts +1 -1
  191. package/inputs/inputsScenarios.js.map +2 -2
  192. package/lazy/index.js +2 -1
  193. package/package.json +4 -4
  194. package/registry/index.js +6 -6
  195. package/src/Field/FieldBase.tsx +6 -1
  196. package/src/Field/FieldBaseContainer.tsx +68 -48
  197. package/src/Field/FieldConditional.tsx +4 -0
  198. package/src/Field/index.tsx +15 -5
  199. package/src/Field/types.tsx +11 -3
  200. package/src/Field/utils/index.ts +2 -0
  201. package/src/Field/utils/useField.ts +9 -1
  202. package/src/FieldArray/FormDialog.tsx +430 -243
  203. package/src/FieldArray/__stories__/Default.tsx +1 -1
  204. package/src/FieldArray/__stories__/WithExactLength.tsx +1 -1
  205. package/src/FieldArray/__stories__/WithModal.tsx +4 -3
  206. package/src/FieldArray/index.tsx +53 -30
  207. package/src/FieldObject/index.tsx +33 -18
  208. package/src/FormBuilder/FormBuilder.stories.js +3 -0
  209. package/src/FormBuilder/__stories__/AutoErrorGrouping.tsx +1 -1
  210. package/src/FormBuilder/__stories__/Default.tsx +1 -1
  211. package/src/FormBuilder/__stories__/ErrorGrouping.tsx +1 -1
  212. package/src/FormBuilder/index.tsx +12 -7
  213. package/src/FormBuilder/scenarios.test.tsx +763 -5
  214. package/src/FormContext.tsx +5 -1
  215. package/src/MultiplicityField/MultiplicityField.stories.js +3 -0
  216. package/src/MultiplicityField/__stories__/Default.tsx +1 -1
  217. package/src/MultiplicityField/__stories__/PreviewDisplay.tsx +1 -1
  218. package/src/MultiplicityField/__stories__/WithExactLength.tsx +1 -1
  219. package/src/MultiplicityField/__stories__/WithMaxLength.tsx +1 -1
  220. package/src/MultiplicityField/__stories__/WithMinAndMaxLength.tsx +1 -1
  221. package/src/MultiplicityField/__stories__/WithMinLength.tsx +1 -1
  222. package/src/MultiplicityField/add-objects.tsx +2 -0
  223. package/src/MultiplicityField/index.tsx +3 -0
  224. package/src/MultiplicityField/types.ts +1 -0
  225. package/src/Questions/Questions.stories.js +3 -0
  226. package/src/Questions/__stories__/Default.tsx +1 -1
  227. package/src/inputs/AutoCompleteInput/AutoComplete.stories.js +3 -0
  228. package/src/inputs/AutoCompleteInput/__stories__/Default.tsx +1 -1
  229. package/src/inputs/AutoCompleteInput/__stories__/Multiple.tsx +1 -1
  230. package/src/inputs/Checkboxes/Checkboxes.stories.js +3 -0
  231. package/src/inputs/Checkboxes/__stories__/Conditional.tsx +1 -1
  232. package/src/inputs/Checkboxes/__stories__/Default.tsx +1 -1
  233. package/src/inputs/Checkboxes/__stories__/WithDivider.tsx +1 -1
  234. package/src/inputs/Checkboxes/index.tsx +2 -6
  235. package/src/inputs/DateInput/DateInput.stories.js +7 -0
  236. package/src/inputs/DateInput/__stories__/Default.tsx +1 -1
  237. package/src/inputs/DateInput/__stories__/WithDefaultValue.tsx +26 -0
  238. package/src/inputs/DateInput/__stories__/WithInitialValue.tsx +28 -0
  239. package/src/inputs/DateInput/__stories__/WithWrongDefaultValue.tsx +26 -0
  240. package/src/inputs/DateInput/__stories__/WithWrongInitialValue.tsx +28 -0
  241. package/src/inputs/DateInput/index.test.tsx +16 -0
  242. package/src/inputs/DateInput/index.tsx +46 -14
  243. package/src/inputs/DateTimeInput/DateTimeInput.stories.js +12 -6
  244. package/src/inputs/DateTimeInput/__stories__/Default.tsx +1 -1
  245. package/src/inputs/DateTimeInput/__stories__/WithDefaultValue.tsx +26 -0
  246. package/src/inputs/DateTimeInput/__stories__/WithInitialValue.tsx +28 -0
  247. package/src/inputs/DateTimeInput/__stories__/WithWrongDefaultValue.tsx +26 -0
  248. package/src/inputs/DateTimeInput/__stories__/WithWrongInitialValue.tsx +28 -0
  249. package/src/inputs/DateTimeInput/index.test.tsx +16 -0
  250. package/src/inputs/DateTimeInput/index.tsx +73 -34
  251. package/src/inputs/FileInput/FileInput.stories.js +4 -0
  252. package/src/inputs/FileInput/__stories__/Default.tsx +1 -1
  253. package/src/inputs/FileInput/__stories__/WithBorderAndLink.tsx +34 -0
  254. package/src/inputs/FileInput/index.test.tsx +4 -0
  255. package/src/inputs/FileInput/index.tsx +90 -48
  256. package/src/inputs/ImageInput/ImageInput.stories.js +5 -1
  257. package/src/inputs/ImageInput/__stories__/Default.tsx +1 -1
  258. package/src/inputs/ImageInput/__stories__/MaxSize.tsx +3 -2
  259. package/src/inputs/ImageInput/__stories__/WithInitialValues.tsx +45 -0
  260. package/src/inputs/ImageInput/__stories__/WithInvalidImageDimension.tsx +1 -1
  261. package/src/inputs/ImageInput/__stories__/logo.d.ts +4 -0
  262. package/src/inputs/ImageInput/__stories__/logo.png +0 -0
  263. package/src/inputs/ImageInput/index.test.tsx +21 -17
  264. package/src/inputs/ImageInput/index.tsx +100 -48
  265. package/src/inputs/Input/Input.stories.js +5 -0
  266. package/src/inputs/Input/__stories__/AFM.tsx +1 -1
  267. package/src/inputs/Input/__stories__/AMKA.tsx +23 -0
  268. package/src/inputs/Input/__stories__/Boolean.tsx +1 -1
  269. package/src/inputs/Input/__stories__/Email.tsx +23 -0
  270. package/src/inputs/Input/__stories__/IBAN.tsx +1 -1
  271. package/src/inputs/Input/__stories__/Integer.tsx +1 -1
  272. package/src/inputs/Input/__stories__/LandlineNumber.tsx +1 -1
  273. package/src/inputs/Input/__stories__/MobilePhone.tsx +1 -1
  274. package/src/inputs/Input/__stories__/PhoneNumber.tsx +1 -1
  275. package/src/inputs/Input/__stories__/PostalCode.tsx +1 -1
  276. package/src/inputs/Input/__stories__/String.tsx +1 -1
  277. package/src/inputs/Input/__stories__/StringWithTrimValidation.tsx +1 -1
  278. package/src/inputs/Input/__stories__/TextWithLimit.tsx +1 -1
  279. package/src/inputs/Input/index.test.tsx +8 -0
  280. package/src/inputs/Input/index.tsx +5 -3
  281. package/src/inputs/Label/Label.stories.js +3 -0
  282. package/src/inputs/Label/__stories__/Default.tsx +1 -1
  283. package/src/inputs/OtpInput/OtpInput.stories.js +3 -0
  284. package/src/inputs/OtpInput/__stories__/Default.tsx +1 -1
  285. package/src/inputs/Radio/Radio.stories.js +3 -0
  286. package/src/inputs/Radio/__stories__/Conditional.tsx +1 -1
  287. package/src/inputs/Radio/__stories__/Default.tsx +1 -1
  288. package/src/inputs/Radio/__stories__/WithDivider.tsx +1 -1
  289. package/src/inputs/Select/Select.stories.js +3 -0
  290. package/src/inputs/Select/__stories__/Default.tsx +1 -1
  291. package/src/inputs/Select/index.tsx +7 -4
  292. package/src/inputs/inputsScenarios.ts +2 -2
  293. package/src/lazy.js +2 -1
  294. package/src/registry.js +6 -6
  295. package/src/types.tsx +2 -1
  296. package/src/utils.ts +27 -6
  297. package/src/validators/index.ts +17 -6
  298. package/src/validators/utils/amka.ts +39 -0
  299. package/src/validators/utils/date.ts +28 -4
  300. package/src/validators/utils/datetime.ts +121 -29
  301. package/src/validators/utils/file.ts +33 -19
  302. package/src/validators/utils/index.ts +4 -1
  303. package/types.d.ts +2 -1
  304. package/types.js.map +1 -1
  305. package/utils/index.js +20 -6
  306. package/utils.d.ts +2 -0
  307. package/utils.js.map +2 -2
  308. package/validators/index.d.ts +1 -1
  309. package/validators/index.js +12 -6
  310. package/validators/index.js.map +2 -2
  311. package/validators/utils/amka/index.js +36 -0
  312. package/{inputs/Input/inputsInputScenarios → validators/utils/amka}/package.json +1 -1
  313. package/validators/utils/amka.d.ts +6 -0
  314. package/validators/utils/amka.js.map +7 -0
  315. package/validators/utils/date/index.js +26 -3
  316. package/validators/utils/date.d.ts +1 -1
  317. package/validators/utils/date.js.map +2 -2
  318. package/validators/utils/datetime/index.js +118 -24
  319. package/validators/utils/datetime.d.ts +1 -1
  320. package/validators/utils/datetime.js.map +2 -2
  321. package/validators/utils/file/index.js +30 -17
  322. package/validators/utils/file.js.map +2 -2
  323. package/validators/utils/index.d.ts +1 -0
  324. package/validators/utils/index.js +4 -1
  325. package/validators/utils/index.js.map +2 -2
  326. package/cjs/inputs/Input/inputsInputScenarios/index.js +0 -439
  327. package/cjs/inputs/Input/inputsInputScenarios.js.map +0 -7
  328. package/inputs/Input/inputsInputScenarios/index.js +0 -406
  329. package/inputs/Input/inputsInputScenarios.d.ts +0 -57
  330. package/inputs/Input/inputsInputScenarios.js.map +0 -7
  331. package/src/inputs/Input/inputsInputScenarios.ts +0 -404
@@ -35,10 +35,12 @@ const FieldBase = ({
35
35
  {
36
36
  label,
37
37
  layout,
38
+ register,
38
39
  error: errorGroupContext ? void 0 : error,
39
40
  hasError: !!error,
40
41
  wrapper,
41
- name
42
+ name,
43
+ controlled
42
44
  },
43
45
  /* @__PURE__ */ React.createElement(
44
46
  Controller,
@@ -52,7 +54,7 @@ const FieldBase = ({
52
54
  ...field,
53
55
  control,
54
56
  ref: void 0,
55
- defaultValue,
57
+ defaultValue: defaultValue ?? field.value,
56
58
  extra,
57
59
  error: !!error,
58
60
  type,
@@ -73,6 +75,7 @@ const FieldBase = ({
73
75
  {
74
76
  label,
75
77
  layout,
78
+ register,
76
79
  error: errorGroupContext ? void 0 : error,
77
80
  hasError: !!error,
78
81
  wrapper,
@@ -90,6 +93,7 @@ const FieldBase = ({
90
93
  "aria-describedby": error && `${name}-error`,
91
94
  required,
92
95
  disabled: editable === false,
96
+ defaultValue,
93
97
  ...componentProps
94
98
  }
95
99
  ) : /* @__PURE__ */ React.createElement(
@@ -101,6 +105,7 @@ const FieldBase = ({
101
105
  error: !!error,
102
106
  extra,
103
107
  type,
108
+ defaultValue,
104
109
  "aria-required": !!required,
105
110
  "aria-describedby": error && `${name}-error`,
106
111
  required,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Field/FieldBase.tsx"],
4
- "sourcesContent": ["import React, { useContext, useEffect } from 'react';\nimport { Controller } from 'react-hook-form';\nimport { ErrorGroupContext } from '@digigov/form/Field/ErrorGroup';\nimport FieldBaseContainer from '@digigov/form/Field/FieldBaseContainer';\nimport { FieldBaseProps } from '@digigov/form/Field/types';\n\nexport const FieldBase: React.FC<FieldBaseProps> = ({\n required,\n name,\n component: Component,\n wrapper,\n control,\n type,\n controlled = false,\n enabled = true,\n editable,\n defaultValue,\n label,\n extra = {},\n layout,\n error,\n register,\n ...componentProps\n}) => {\n const errorGroupContext = useContext(ErrorGroupContext);\n\n useEffect(() => {\n if (errorGroupContext) {\n errorGroupContext.setError(name, label, error);\n }\n }, [error, name, errorGroupContext?.setError]);\n\n if (!enabled) {\n return null;\n }\n\n if (controlled) {\n return (\n <FieldBaseContainer\n label={label}\n layout={layout}\n error={errorGroupContext ? undefined : error}\n hasError={!!error}\n wrapper={wrapper}\n name={name}\n >\n <Controller\n control={control}\n name={name}\n render={({ field }) => {\n return (\n <Component\n {...field}\n control={control}\n ref={undefined}\n defaultValue={defaultValue}\n extra={extra}\n error={!!error}\n type={type}\n aria-required={!!required}\n aria-describedby={error && `${name}-error`}\n required={required}\n disabled={editable === false}\n {...componentProps}\n />\n );\n }}\n />\n </FieldBaseContainer>\n );\n }\n\n return (\n <FieldBaseContainer\n label={label}\n layout={layout}\n error={errorGroupContext ? undefined : error}\n hasError={!!error}\n wrapper={wrapper}\n name={name}\n >\n {Component?.render ? (\n <Component\n {...register(name)}\n control={control}\n error={!!error}\n extra={extra}\n type={type}\n aria-required={!!required}\n aria-describedby={error && `${name}-error`}\n required={required}\n disabled={editable === false}\n {...componentProps}\n />\n ) : (\n <Component\n {...register(name)}\n register={register}\n control={control}\n error={!!error}\n extra={extra}\n type={type}\n aria-required={!!required}\n aria-describedby={error && `${name}-error`}\n required={required}\n disabled={editable === false}\n {...componentProps}\n />\n )}\n </FieldBaseContainer>\n );\n};\n"],
5
- "mappings": "AAAA,OAAO,SAAS,YAAY,iBAAiB;AAC7C,SAAS,kBAAkB;AAC3B,SAAS,yBAAyB;AAClC,OAAO,wBAAwB;AAGxB,MAAM,YAAsC,CAAC;AAAA,EAClD;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQ,CAAC;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,oBAAoB,WAAW,iBAAiB;AAEtD,YAAU,MAAM;AACd,QAAI,mBAAmB;AACrB,wBAAkB,SAAS,MAAM,OAAO,KAAK;AAAA,IAC/C;AAAA,EACF,GAAG,CAAC,OAAO,MAAM,mBAAmB,QAAQ,CAAC;AAE7C,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAEA,MAAI,YAAY;AACd,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,OAAO,oBAAoB,SAAY;AAAA,QACvC,UAAU,CAAC,CAAC;AAAA,QACZ;AAAA,QACA;AAAA;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA,QAAQ,CAAC,EAAE,MAAM,MAAM;AACrB,mBACE;AAAA,cAAC;AAAA;AAAA,gBACE,GAAG;AAAA,gBACJ;AAAA,gBACA,KAAK;AAAA,gBACL;AAAA,gBACA;AAAA,gBACA,OAAO,CAAC,CAAC;AAAA,gBACT;AAAA,gBACA,iBAAe,CAAC,CAAC;AAAA,gBACjB,oBAAkB,SAAS,GAAG,IAAI;AAAA,gBAClC;AAAA,gBACA,UAAU,aAAa;AAAA,gBACtB,GAAG;AAAA;AAAA,YACN;AAAA,UAEJ;AAAA;AAAA,MACF;AAAA,IACF;AAAA,EAEJ;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,OAAO,oBAAoB,SAAY;AAAA,MACvC,UAAU,CAAC,CAAC;AAAA,MACZ;AAAA,MACA;AAAA;AAAA,IAEC,WAAW,SACV;AAAA,MAAC;AAAA;AAAA,QACE,GAAG,SAAS,IAAI;AAAA,QACjB;AAAA,QACA,OAAO,CAAC,CAAC;AAAA,QACT;AAAA,QACA;AAAA,QACA,iBAAe,CAAC,CAAC;AAAA,QACjB,oBAAkB,SAAS,GAAG,IAAI;AAAA,QAClC;AAAA,QACA,UAAU,aAAa;AAAA,QACtB,GAAG;AAAA;AAAA,IACN,IAEA;AAAA,MAAC;AAAA;AAAA,QACE,GAAG,SAAS,IAAI;AAAA,QACjB;AAAA,QACA;AAAA,QACA,OAAO,CAAC,CAAC;AAAA,QACT;AAAA,QACA;AAAA,QACA,iBAAe,CAAC,CAAC;AAAA,QACjB,oBAAkB,SAAS,GAAG,IAAI;AAAA,QAClC;AAAA,QACA,UAAU,aAAa;AAAA,QACtB,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AAEJ;",
4
+ "sourcesContent": ["import React, { useContext, useEffect } from 'react';\nimport { Controller } from 'react-hook-form';\nimport { ErrorGroupContext } from '@digigov/form/Field/ErrorGroup';\nimport FieldBaseContainer from '@digigov/form/Field/FieldBaseContainer';\nimport { FieldBaseProps } from '@digigov/form/Field/types';\n\nexport const FieldBase: React.FC<FieldBaseProps> = ({\n required,\n name,\n component: Component,\n wrapper,\n control,\n type,\n controlled = false,\n enabled = true,\n editable,\n defaultValue,\n label,\n extra = {},\n layout,\n error,\n register,\n ...componentProps\n}) => {\n const errorGroupContext = useContext(ErrorGroupContext);\n\n useEffect(() => {\n if (errorGroupContext) {\n errorGroupContext.setError(name, label, error);\n }\n }, [error, name, errorGroupContext?.setError]);\n\n if (!enabled) {\n return null;\n }\n\n if (controlled) {\n return (\n <FieldBaseContainer\n label={label}\n layout={layout}\n register={register}\n error={errorGroupContext ? undefined : error}\n hasError={!!error}\n wrapper={wrapper}\n name={name}\n controlled={controlled}\n >\n <Controller\n control={control}\n name={name}\n render={({ field }) => {\n return (\n <Component\n {...field}\n control={control}\n ref={undefined}\n defaultValue={defaultValue ?? field.value}\n extra={extra}\n error={!!error}\n type={type}\n aria-required={!!required}\n aria-describedby={error && `${name}-error`}\n required={required}\n disabled={editable === false}\n {...componentProps}\n />\n );\n }}\n />\n </FieldBaseContainer>\n );\n }\n\n return (\n <FieldBaseContainer\n label={label}\n layout={layout}\n register={register}\n error={errorGroupContext ? undefined : error}\n hasError={!!error}\n wrapper={wrapper}\n name={name}\n >\n {Component?.render ? (\n <Component\n {...register(name)}\n control={control}\n error={!!error}\n extra={extra}\n type={type}\n aria-required={!!required}\n aria-describedby={error && `${name}-error`}\n required={required}\n disabled={editable === false}\n defaultValue={defaultValue}\n {...componentProps}\n />\n ) : (\n <Component\n {...register(name)}\n register={register}\n control={control}\n error={!!error}\n extra={extra}\n type={type}\n defaultValue={defaultValue}\n aria-required={!!required}\n aria-describedby={error && `${name}-error`}\n required={required}\n disabled={editable === false}\n {...componentProps}\n />\n )}\n </FieldBaseContainer>\n );\n};\n"],
5
+ "mappings": "AAAA,OAAO,SAAS,YAAY,iBAAiB;AAC7C,SAAS,kBAAkB;AAC3B,SAAS,yBAAyB;AAClC,OAAO,wBAAwB;AAGxB,MAAM,YAAsC,CAAC;AAAA,EAClD;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQ,CAAC;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,oBAAoB,WAAW,iBAAiB;AAEtD,YAAU,MAAM;AACd,QAAI,mBAAmB;AACrB,wBAAkB,SAAS,MAAM,OAAO,KAAK;AAAA,IAC/C;AAAA,EACF,GAAG,CAAC,OAAO,MAAM,mBAAmB,QAAQ,CAAC;AAE7C,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAEA,MAAI,YAAY;AACd,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA,OAAO,oBAAoB,SAAY;AAAA,QACvC,UAAU,CAAC,CAAC;AAAA,QACZ;AAAA,QACA;AAAA,QACA;AAAA;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA,QAAQ,CAAC,EAAE,MAAM,MAAM;AACrB,mBACE;AAAA,cAAC;AAAA;AAAA,gBACE,GAAG;AAAA,gBACJ;AAAA,gBACA,KAAK;AAAA,gBACL,cAAc,gBAAgB,MAAM;AAAA,gBACpC;AAAA,gBACA,OAAO,CAAC,CAAC;AAAA,gBACT;AAAA,gBACA,iBAAe,CAAC,CAAC;AAAA,gBACjB,oBAAkB,SAAS,GAAG,IAAI;AAAA,gBAClC;AAAA,gBACA,UAAU,aAAa;AAAA,gBACtB,GAAG;AAAA;AAAA,YACN;AAAA,UAEJ;AAAA;AAAA,MACF;AAAA,IACF;AAAA,EAEJ;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO,oBAAoB,SAAY;AAAA,MACvC,UAAU,CAAC,CAAC;AAAA,MACZ;AAAA,MACA;AAAA;AAAA,IAEC,WAAW,SACV;AAAA,MAAC;AAAA;AAAA,QACE,GAAG,SAAS,IAAI;AAAA,QACjB;AAAA,QACA,OAAO,CAAC,CAAC;AAAA,QACT;AAAA,QACA;AAAA,QACA,iBAAe,CAAC,CAAC;AAAA,QACjB,oBAAkB,SAAS,GAAG,IAAI;AAAA,QAClC;AAAA,QACA,UAAU,aAAa;AAAA,QACvB;AAAA,QACC,GAAG;AAAA;AAAA,IACN,IAEA;AAAA,MAAC;AAAA;AAAA,QACE,GAAG,SAAS,IAAI;AAAA,QACjB;AAAA,QACA;AAAA,QACA,OAAO,CAAC,CAAC;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA,iBAAe,CAAC,CAAC;AAAA,QACjB,oBAAkB,SAAS,GAAG,IAAI;AAAA,QAClC;AAAA,QACA,UAAU,aAAa;AAAA,QACtB,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AAEJ;",
6
6
  "names": []
7
7
  }
@@ -2,29 +2,48 @@ import React from "react";
2
2
  import Label from "@digigov/form/inputs/Label";
3
3
  import { ErrorMessage } from "@digigov/react-core/ErrorMessage";
4
4
  import FieldContainer from "@digigov/react-core/FieldContainer";
5
- import CoreFieldset from "@digigov/react-core/Fieldset";
5
+ import Fieldset from "@digigov/react-core/Fieldset";
6
6
  import FieldsetLegend from "@digigov/react-core/FieldsetLegend";
7
7
  import LabelContainer from "@digigov/react-core/LabelContainer";
8
8
  import { useTranslation } from "@digigov/ui/i18n";
9
9
  import { Hint } from "@digigov/ui/typography/Hint";
10
- const FieldBaseContainer = ({
11
- name,
12
- wrapper,
13
- label,
14
- children,
15
- error,
16
- hasError,
17
- layout
18
- }) => {
19
- const { t } = useTranslation();
20
- const errorMessage = error?.message.key ? error.message.key : error?.message || "";
21
- const errorContext = error?.message.context || {};
22
- if (wrapper === "fieldset") {
23
- return /* @__PURE__ */ React.createElement(FieldContainer, { error: hasError, ...layout }, /* @__PURE__ */ React.createElement(CoreFieldset, null, /* @__PURE__ */ React.createElement(FieldsetLegend, { size: "sm" }, label && label.primary), label && label.secondary && /* @__PURE__ */ React.createElement(Hint, null, t(label.secondary)), error && /* @__PURE__ */ React.createElement(ErrorMessage, { id: `${name}-error` }, t(errorMessage, errorContext)), children, label && label.hint && /* @__PURE__ */ React.createElement(Hint, { size: "sm" }, label.hint)));
24
- } else {
25
- return /* @__PURE__ */ React.createElement(FieldContainer, { error: hasError, ...layout }, /* @__PURE__ */ React.createElement(LabelContainer, null, label && /* @__PURE__ */ React.createElement(Label, { label }), error && /* @__PURE__ */ React.createElement(ErrorMessage, { id: `${name}-error` }, t(errorMessage, errorContext)), children, label && label.hint && /* @__PURE__ */ React.createElement(Hint, { size: "sm" }, label.hint)));
10
+ const FieldBaseContainer = React.forwardRef(
11
+ ({
12
+ name,
13
+ wrapper,
14
+ label,
15
+ children,
16
+ error,
17
+ hasError,
18
+ layout,
19
+ controlled,
20
+ labelSize = "sm"
21
+ }, ref) => {
22
+ const { t } = useTranslation();
23
+ const errorMessage = error?.message.key ? error.message.key : error?.message || "";
24
+ const errorContext = error?.message.context || {};
25
+ if (wrapper === "fieldset") {
26
+ return /* @__PURE__ */ React.createElement(FieldContainer, { error: hasError, ...layout }, /* @__PURE__ */ React.createElement(
27
+ Fieldset,
28
+ {
29
+ ref,
30
+ className: "outline-none",
31
+ ...controlled && {
32
+ tabIndex: -1
33
+ }
34
+ },
35
+ /* @__PURE__ */ React.createElement(FieldsetLegend, { size: labelSize }, label && label.primary),
36
+ label && label.secondary && /* @__PURE__ */ React.createElement(Hint, null, t(label.secondary)),
37
+ error && /* @__PURE__ */ React.createElement(ErrorMessage, { id: `${name}-error` }, t(errorMessage, errorContext)),
38
+ children,
39
+ label && label.hint && /* @__PURE__ */ React.createElement(Hint, { size: "sm" }, label.hint)
40
+ ));
41
+ } else {
42
+ return /* @__PURE__ */ React.createElement(FieldContainer, { error: hasError, ...layout }, /* @__PURE__ */ React.createElement(LabelContainer, null, label && /* @__PURE__ */ React.createElement(Label, { label }), error && /* @__PURE__ */ React.createElement(ErrorMessage, { id: `${name}-error` }, t(errorMessage, errorContext)), children, label && label.hint && /* @__PURE__ */ React.createElement(Hint, { size: "sm" }, label.hint)));
43
+ }
26
44
  }
27
- };
45
+ );
46
+ FieldBaseContainer.displayName = "FieldBaseContainer";
28
47
  var FieldBaseContainer_default = FieldBaseContainer;
29
48
  export {
30
49
  FieldBaseContainer,
@@ -1,4 +1,4 @@
1
1
  import React from 'react';
2
2
  import { FieldContainerProps } from '@digigov/form/Field/types';
3
- export declare const FieldBaseContainer: React.FC<FieldContainerProps>;
3
+ export declare const FieldBaseContainer: React.ForwardRefExoticComponent<FieldContainerProps & React.RefAttributes<HTMLFieldSetElement>>;
4
4
  export default FieldBaseContainer;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Field/FieldBaseContainer.tsx"],
4
- "sourcesContent": ["import React from 'react';\nimport { FieldContainerProps } from '@digigov/form/Field/types';\nimport Label from '@digigov/form/inputs/Label';\nimport { ErrorMessage } from '@digigov/react-core/ErrorMessage';\nimport FieldContainer from '@digigov/react-core/FieldContainer';\nimport CoreFieldset from '@digigov/react-core/Fieldset';\nimport FieldsetLegend from '@digigov/react-core/FieldsetLegend';\nimport LabelContainer from '@digigov/react-core/LabelContainer';\nimport { useTranslation } from '@digigov/ui/i18n';\nimport { Hint } from '@digigov/ui/typography/Hint';\n\nexport const FieldBaseContainer: React.FC<FieldContainerProps> = ({\n name,\n wrapper,\n label,\n children,\n error,\n hasError,\n layout,\n}) => {\n const { t } = useTranslation();\n const errorMessage = error?.message.key\n ? error.message.key\n : error?.message || '';\n const errorContext = error?.message.context || {};\n if (wrapper === 'fieldset') {\n return (\n <FieldContainer error={hasError} {...layout}>\n <CoreFieldset>\n <FieldsetLegend size=\"sm\">{label && label.primary}</FieldsetLegend>\n {label && label.secondary && <Hint>{t(label.secondary)}</Hint>}\n {error && (\n <ErrorMessage id={`${name}-error`}>\n {t(errorMessage, errorContext)}\n </ErrorMessage>\n )}\n {children}\n {label && label.hint && <Hint size=\"sm\">{label.hint}</Hint>}\n </CoreFieldset>\n </FieldContainer>\n );\n } else {\n return (\n <FieldContainer error={hasError} {...layout}>\n <LabelContainer>\n {label && <Label label={label} />}\n {error && (\n <ErrorMessage id={`${name}-error`}>\n {t(errorMessage, errorContext)}\n </ErrorMessage>\n )}\n {children}\n {label && label.hint && <Hint size=\"sm\">{label.hint}</Hint>}\n </LabelContainer>\n </FieldContainer>\n );\n }\n};\n\nexport default FieldBaseContainer;\n"],
5
- "mappings": "AAAA,OAAO,WAAW;AAElB,OAAO,WAAW;AAClB,SAAS,oBAAoB;AAC7B,OAAO,oBAAoB;AAC3B,OAAO,kBAAkB;AACzB,OAAO,oBAAoB;AAC3B,OAAO,oBAAoB;AAC3B,SAAS,sBAAsB;AAC/B,SAAS,YAAY;AAEd,MAAM,qBAAoD,CAAC;AAAA,EAChE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,EAAE,EAAE,IAAI,eAAe;AAC7B,QAAM,eAAe,OAAO,QAAQ,MAChC,MAAM,QAAQ,MACd,OAAO,WAAW;AACtB,QAAM,eAAe,OAAO,QAAQ,WAAW,CAAC;AAChD,MAAI,YAAY,YAAY;AAC1B,WACE,oCAAC,kBAAe,OAAO,UAAW,GAAG,UACnC,oCAAC,oBACC,oCAAC,kBAAe,MAAK,QAAM,SAAS,MAAM,OAAQ,GACjD,SAAS,MAAM,aAAa,oCAAC,YAAM,EAAE,MAAM,SAAS,CAAE,GACtD,SACC,oCAAC,gBAAa,IAAI,GAAG,IAAI,YACtB,EAAE,cAAc,YAAY,CAC/B,GAED,UACA,SAAS,MAAM,QAAQ,oCAAC,QAAK,MAAK,QAAM,MAAM,IAAK,CACtD,CACF;AAAA,EAEJ,OAAO;AACL,WACE,oCAAC,kBAAe,OAAO,UAAW,GAAG,UACnC,oCAAC,sBACE,SAAS,oCAAC,SAAM,OAAc,GAC9B,SACC,oCAAC,gBAAa,IAAI,GAAG,IAAI,YACtB,EAAE,cAAc,YAAY,CAC/B,GAED,UACA,SAAS,MAAM,QAAQ,oCAAC,QAAK,MAAK,QAAM,MAAM,IAAK,CACtD,CACF;AAAA,EAEJ;AACF;AAEA,IAAO,6BAAQ;",
4
+ "sourcesContent": ["import React, { ComponentRef } from 'react';\nimport { FieldContainerProps } from '@digigov/form/Field/types';\nimport Label from '@digigov/form/inputs/Label';\nimport { ErrorMessage } from '@digigov/react-core/ErrorMessage';\nimport FieldContainer from '@digigov/react-core/FieldContainer';\nimport Fieldset from '@digigov/react-core/Fieldset';\nimport FieldsetLegend from '@digigov/react-core/FieldsetLegend';\nimport LabelContainer from '@digigov/react-core/LabelContainer';\nimport { useTranslation } from '@digigov/ui/i18n';\nimport { Hint } from '@digigov/ui/typography/Hint';\n\nexport const FieldBaseContainer = React.forwardRef<\n ComponentRef<typeof Fieldset>,\n FieldContainerProps\n>(\n (\n {\n name,\n wrapper,\n label,\n children,\n error,\n hasError,\n layout,\n controlled,\n labelSize = 'sm',\n },\n ref\n ) => {\n const { t } = useTranslation();\n const errorMessage = error?.message.key\n ? error.message.key\n : error?.message || '';\n const errorContext = error?.message.context || {};\n if (wrapper === 'fieldset') {\n return (\n <FieldContainer error={hasError} {...layout}>\n <Fieldset\n ref={ref}\n className=\"outline-none\"\n {...(controlled && {\n tabIndex: -1,\n })}\n >\n <FieldsetLegend size={labelSize}>\n {label && label.primary}\n </FieldsetLegend>\n {label && label.secondary && <Hint>{t(label.secondary)}</Hint>}\n {error && (\n <ErrorMessage id={`${name}-error`}>\n {t(errorMessage, errorContext)}\n </ErrorMessage>\n )}\n {children}\n {label && label.hint && <Hint size=\"sm\">{label.hint}</Hint>}\n </Fieldset>\n </FieldContainer>\n );\n } else {\n return (\n <FieldContainer error={hasError} {...layout}>\n <LabelContainer>\n {label && <Label label={label} />}\n {error && (\n <ErrorMessage id={`${name}-error`}>\n {t(errorMessage, errorContext)}\n </ErrorMessage>\n )}\n {children}\n {label && label.hint && <Hint size=\"sm\">{label.hint}</Hint>}\n </LabelContainer>\n </FieldContainer>\n );\n }\n }\n);\n\nFieldBaseContainer.displayName = 'FieldBaseContainer';\n\nexport default FieldBaseContainer;\n"],
5
+ "mappings": "AAAA,OAAO,WAA6B;AAEpC,OAAO,WAAW;AAClB,SAAS,oBAAoB;AAC7B,OAAO,oBAAoB;AAC3B,OAAO,cAAc;AACrB,OAAO,oBAAoB;AAC3B,OAAO,oBAAoB;AAC3B,SAAS,sBAAsB;AAC/B,SAAS,YAAY;AAEd,MAAM,qBAAqB,MAAM;AAAA,EAItC,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,YAAY;AAAA,EACd,GACA,QACG;AACH,UAAM,EAAE,EAAE,IAAI,eAAe;AAC7B,UAAM,eAAe,OAAO,QAAQ,MAChC,MAAM,QAAQ,MACd,OAAO,WAAW;AACtB,UAAM,eAAe,OAAO,QAAQ,WAAW,CAAC;AAChD,QAAI,YAAY,YAAY;AAC1B,aACE,oCAAC,kBAAe,OAAO,UAAW,GAAG,UACnC;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,WAAU;AAAA,UACT,GAAI,cAAc;AAAA,YACjB,UAAU;AAAA,UACZ;AAAA;AAAA,QAEA,oCAAC,kBAAe,MAAM,aACnB,SAAS,MAAM,OAClB;AAAA,QACC,SAAS,MAAM,aAAa,oCAAC,YAAM,EAAE,MAAM,SAAS,CAAE;AAAA,QACtD,SACC,oCAAC,gBAAa,IAAI,GAAG,IAAI,YACtB,EAAE,cAAc,YAAY,CAC/B;AAAA,QAED;AAAA,QACA,SAAS,MAAM,QAAQ,oCAAC,QAAK,MAAK,QAAM,MAAM,IAAK;AAAA,MACtD,CACF;AAAA,IAEJ,OAAO;AACL,aACE,oCAAC,kBAAe,OAAO,UAAW,GAAG,UACnC,oCAAC,sBACE,SAAS,oCAAC,SAAM,OAAc,GAC9B,SACC,oCAAC,gBAAa,IAAI,GAAG,IAAI,YACtB,EAAE,cAAc,YAAY,CAC/B,GAED,UACA,SAAS,MAAM,QAAQ,oCAAC,QAAK,MAAK,QAAM,MAAM,IAAK,CACtD,CACF;AAAA,IAEJ;AAAA,EACF;AACF;AAEA,mBAAmB,cAAc;AAEjC,IAAO,6BAAQ;",
6
6
  "names": []
7
7
  }
@@ -8,6 +8,7 @@ const ChildFieldMemo = React.memo(
8
8
  field,
9
9
  control,
10
10
  reset,
11
+ resetField,
11
12
  register,
12
13
  error,
13
14
  Field
@@ -23,6 +24,7 @@ const ChildFieldMemo = React.memo(
23
24
  Field,
24
25
  name: newField.key,
25
26
  reset,
27
+ resetField,
26
28
  control,
27
29
  register,
28
30
  error
@@ -49,6 +51,7 @@ const FieldConditional = ({
49
51
  field,
50
52
  register,
51
53
  reset,
54
+ resetField,
52
55
  error,
53
56
  Field
54
57
  }) => {
@@ -72,6 +75,7 @@ const FieldConditional = ({
72
75
  control,
73
76
  register,
74
77
  reset,
78
+ resetField,
75
79
  error,
76
80
  Field
77
81
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Field/FieldConditional.tsx"],
4
- "sourcesContent": ["import React from 'react';\nimport { useWatch } from 'react-hook-form';\nimport { FieldBase } from '@digigov/form/Field/FieldBase';\nimport {\n ChildFieldMemoProps,\n FieldConditionalProps,\n} from '@digigov/form/Field/types';\nimport { evaluateFieldWithConditions } from '@digigov/form/Field/utils/evaluateFieldWithConditions';\n\nconst ChildFieldMemo = React.memo(\n function ChildField({\n dependencies,\n field,\n control,\n reset,\n register,\n error,\n Field,\n }: ChildFieldMemoProps) {\n const newField = evaluateFieldWithConditions(\n field,\n dependencies as FormData\n );\n return (\n <FieldBase\n {...newField}\n Field={Field}\n name={newField.key}\n reset={reset}\n control={control}\n register={register}\n error={error}\n />\n );\n },\n (prev, next) => {\n if (!prev || !prev.dependencies) {\n return false;\n }\n if (prev.error !== next.error) {\n return false;\n }\n for (const dep in next.dependencies) {\n if (next.dependencies[dep] !== prev.dependencies[dep]) {\n return false;\n }\n }\n return true;\n }\n);\n\nexport const FieldConditional: React.FC<FieldConditionalProps> = ({\n control,\n field,\n register,\n reset,\n error,\n Field,\n}) => {\n const dependencyKeys = Object.keys(field.condition);\n const dependencyValues = useWatch({\n name: dependencyKeys,\n control,\n });\n const variables = dependencyKeys.reduce(\n (data, fieldKey, index) => ({\n ...data,\n [fieldKey]: dependencyValues[index],\n }),\n {}\n );\n return (\n <ChildFieldMemo\n dependencies={variables}\n field={field}\n control={control}\n register={register}\n reset={reset}\n error={error}\n Field={Field}\n />\n );\n};\n\nexport default FieldConditional;\n"],
5
- "mappings": "AAAA,OAAO,WAAW;AAClB,SAAS,gBAAgB;AACzB,SAAS,iBAAiB;AAK1B,SAAS,mCAAmC;AAE5C,MAAM,iBAAiB,MAAM;AAAA,EAC3B,SAAS,WAAW;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAAwB;AACtB,UAAM,WAAW;AAAA,MACf;AAAA,MACA;AAAA,IACF;AACA,WACE;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACJ;AAAA,QACA,MAAM,SAAS;AAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF;AAAA,EAEJ;AAAA,EACA,CAAC,MAAM,SAAS;AACd,QAAI,CAAC,QAAQ,CAAC,KAAK,cAAc;AAC/B,aAAO;AAAA,IACT;AACA,QAAI,KAAK,UAAU,KAAK,OAAO;AAC7B,aAAO;AAAA,IACT;AACA,eAAW,OAAO,KAAK,cAAc;AACnC,UAAI,KAAK,aAAa,GAAG,MAAM,KAAK,aAAa,GAAG,GAAG;AACrD,eAAO;AAAA,MACT;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACF;AAEO,MAAM,mBAAoD,CAAC;AAAA,EAChE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,iBAAiB,OAAO,KAAK,MAAM,SAAS;AAClD,QAAM,mBAAmB,SAAS;AAAA,IAChC,MAAM;AAAA,IACN;AAAA,EACF,CAAC;AACD,QAAM,YAAY,eAAe;AAAA,IAC/B,CAAC,MAAM,UAAU,WAAW;AAAA,MAC1B,GAAG;AAAA,MACH,CAAC,QAAQ,GAAG,iBAAiB,KAAK;AAAA,IACpC;AAAA,IACA,CAAC;AAAA,EACH;AACA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,cAAc;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,2BAAQ;",
4
+ "sourcesContent": ["import React from 'react';\nimport { useWatch } from 'react-hook-form';\nimport { FieldBase } from '@digigov/form/Field/FieldBase';\nimport {\n ChildFieldMemoProps,\n FieldConditionalProps,\n} from '@digigov/form/Field/types';\nimport { evaluateFieldWithConditions } from '@digigov/form/Field/utils/evaluateFieldWithConditions';\n\nconst ChildFieldMemo = React.memo(\n function ChildField({\n dependencies,\n field,\n control,\n reset,\n resetField,\n register,\n error,\n Field,\n }: ChildFieldMemoProps) {\n const newField = evaluateFieldWithConditions(\n field,\n dependencies as FormData\n );\n return (\n <FieldBase\n {...newField}\n Field={Field}\n name={newField.key}\n reset={reset}\n resetField={resetField}\n control={control}\n register={register}\n error={error}\n />\n );\n },\n (prev, next) => {\n if (!prev || !prev.dependencies) {\n return false;\n }\n if (prev.error !== next.error) {\n return false;\n }\n for (const dep in next.dependencies) {\n if (next.dependencies[dep] !== prev.dependencies[dep]) {\n return false;\n }\n }\n return true;\n }\n);\n\nexport const FieldConditional: React.FC<FieldConditionalProps> = ({\n control,\n field,\n register,\n reset,\n resetField,\n error,\n Field,\n}) => {\n const dependencyKeys = Object.keys(field.condition);\n const dependencyValues = useWatch({\n name: dependencyKeys,\n control,\n });\n const variables = dependencyKeys.reduce(\n (data, fieldKey, index) => ({\n ...data,\n [fieldKey]: dependencyValues[index],\n }),\n {}\n );\n return (\n <ChildFieldMemo\n dependencies={variables}\n field={field}\n control={control}\n register={register}\n reset={reset}\n resetField={resetField}\n error={error}\n Field={Field}\n />\n );\n};\n\nexport default FieldConditional;\n"],
5
+ "mappings": "AAAA,OAAO,WAAW;AAClB,SAAS,gBAAgB;AACzB,SAAS,iBAAiB;AAK1B,SAAS,mCAAmC;AAE5C,MAAM,iBAAiB,MAAM;AAAA,EAC3B,SAAS,WAAW;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAAwB;AACtB,UAAM,WAAW;AAAA,MACf;AAAA,MACA;AAAA,IACF;AACA,WACE;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACJ;AAAA,QACA,MAAM,SAAS;AAAA,QACf;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF;AAAA,EAEJ;AAAA,EACA,CAAC,MAAM,SAAS;AACd,QAAI,CAAC,QAAQ,CAAC,KAAK,cAAc;AAC/B,aAAO;AAAA,IACT;AACA,QAAI,KAAK,UAAU,KAAK,OAAO;AAC7B,aAAO;AAAA,IACT;AACA,eAAW,OAAO,KAAK,cAAc;AACnC,UAAI,KAAK,aAAa,GAAG,MAAM,KAAK,aAAa,GAAG,GAAG;AACrD,eAAO;AAAA,MACT;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACF;AAEO,MAAM,mBAAoD,CAAC;AAAA,EAChE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,iBAAiB,OAAO,KAAK,MAAM,SAAS;AAClD,QAAM,mBAAmB,SAAS;AAAA,IAChC,MAAM;AAAA,IACN;AAAA,EACF,CAAC;AACD,QAAM,YAAY,eAAe;AAAA,IAC/B,CAAC,MAAM,UAAU,WAAW;AAAA,MAC1B,GAAG;AAAA,MACH,CAAC,QAAQ,GAAG,iBAAiB,KAAK;AAAA,IACpC;AAAA,IACA,CAAC;AAAA,EACH;AACA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,cAAc;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,2BAAQ;",
6
6
  "names": []
7
7
  }
package/Field/index.js CHANGED
@@ -11,7 +11,6 @@ import FieldArray from "@digigov/form/FieldArray";
11
11
  import Multiplicity from "@digigov/form/MultiplicityField";
12
12
  const Field = ({
13
13
  name,
14
- disabled,
15
14
  children,
16
15
  ...customField
17
16
  }) => {
@@ -20,6 +19,7 @@ const Field = ({
20
19
  control,
21
20
  register,
22
21
  reset,
22
+ resetField,
23
23
  error,
24
24
  componentRegistry,
25
25
  formState,
@@ -47,6 +47,7 @@ const Field = ({
47
47
  {
48
48
  control,
49
49
  reset,
50
+ resetField,
50
51
  register,
51
52
  field: calculatedField,
52
53
  error,
@@ -63,12 +64,13 @@ const Field = ({
63
64
  trigger,
64
65
  register,
65
66
  clearErrors,
66
- error,
67
+ error: formState.isSubmitted && !formState.isSubmitting ? error : void 0,
67
68
  getValues,
68
69
  setValue,
69
70
  formState,
70
71
  Field,
71
72
  reset,
73
+ resetField,
72
74
  ...calculatedField
73
75
  }
74
76
  );
@@ -87,21 +89,25 @@ const Field = ({
87
89
  setValue,
88
90
  getValues,
89
91
  unregister,
92
+ resetField,
90
93
  Field,
91
94
  ...calculatedField
92
95
  }
93
96
  );
94
97
  }
98
+ const editable = customField.editable === false || customField.disabled === true ? false : true;
99
+ const customError = error ? error : formState?.errors[name];
95
100
  return /* @__PURE__ */ React.createElement(
96
101
  FieldBase,
97
102
  {
98
103
  ...calculatedField,
104
+ editable,
99
105
  name,
100
- disabled,
101
106
  control,
102
107
  register,
103
108
  reset,
104
- error,
109
+ error: customError,
110
+ resetField,
105
111
  Field
106
112
  }
107
113
  );
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Field/index.tsx"],
4
- "sourcesContent": ["import React, { useMemo } from 'react';\nimport { FieldBase } from '@digigov/form/Field/FieldBase';\nimport FieldConditional from '@digigov/form/Field/FieldConditional';\nimport {\n FieldWithCondition,\n CalculatedField,\n FieldProps,\n} from '@digigov/form/Field/types';\nimport {\n FIELD_COMPONENTS,\n ALTERNATIVE_COMPONENTS,\n} from '@digigov/form/Field/utils';\nimport { calculateField } from '@digigov/form/Field/utils/calculateField';\nimport { useField } from '@digigov/form/Field/utils/useField';\nimport FieldArray from '@digigov/form/FieldArray';\nimport Multiplicity from '@digigov/form/MultiplicityField';\nexport const Field: React.FC<FieldProps> = ({\n name,\n disabled,\n children,\n ...customField\n}) => {\n const {\n field,\n control,\n register,\n reset,\n error,\n componentRegistry,\n formState,\n setValue,\n getValues,\n unregister,\n trigger,\n clearErrors,\n } = useField(name, customField?.type ? customField : null);\n const calculatedField: CalculatedField = useMemo(\n () =>\n calculateField(\n children,\n field,\n {\n ...FIELD_COMPONENTS,\n ...componentRegistry,\n },\n ALTERNATIVE_COMPONENTS\n ),\n [field]\n );\n\n if (calculatedField.condition) {\n return (\n <FieldConditional\n control={control}\n reset={reset}\n register={register}\n field={calculatedField as FieldWithCondition}\n error={error}\n Field={Field}\n />\n );\n }\n if (calculatedField.type === 'array' && !calculatedField.multiplicity) {\n calculatedField.name = name;\n return (\n <FieldArray\n control={control}\n trigger={trigger}\n register={register}\n clearErrors={clearErrors}\n error={error}\n getValues={getValues}\n setValue={setValue}\n formState={formState}\n Field={Field}\n reset={reset}\n {...calculatedField}\n />\n );\n }\n if (\n calculatedField.type === 'array' &&\n calculatedField.multiplicity === true\n ) {\n calculatedField.name = name;\n return (\n <Multiplicity\n control={control}\n register={register}\n trigger={trigger}\n clearErrors={clearErrors}\n error={error}\n formState={formState}\n setValue={setValue}\n getValues={getValues}\n unregister={unregister}\n Field={Field}\n {...calculatedField}\n />\n );\n }\n return (\n <FieldBase\n {...calculatedField}\n name={name}\n disabled={disabled}\n control={control}\n register={register}\n reset={reset}\n error={error}\n Field={Field}\n />\n );\n};\n\nexport default Field;\n"],
5
- "mappings": "AAAA,OAAO,SAAS,eAAe;AAC/B,SAAS,iBAAiB;AAC1B,OAAO,sBAAsB;AAM7B;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,sBAAsB;AAC/B,SAAS,gBAAgB;AACzB,OAAO,gBAAgB;AACvB,OAAO,kBAAkB;AAClB,MAAM,QAA8B,CAAC;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,SAAS,MAAM,aAAa,OAAO,cAAc,IAAI;AACzD,QAAM,kBAAmC;AAAA,IACvC,MACE;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,QACE,GAAG;AAAA,QACH,GAAG;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,IACF,CAAC,KAAK;AAAA,EACR;AAEA,MAAI,gBAAgB,WAAW;AAC7B,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA,OAAO;AAAA,QACP;AAAA,QACA;AAAA;AAAA,IACF;AAAA,EAEJ;AACA,MAAI,gBAAgB,SAAS,WAAW,CAAC,gBAAgB,cAAc;AACrE,oBAAgB,OAAO;AACvB,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACC,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACA,MACE,gBAAgB,SAAS,WACzB,gBAAgB,iBAAiB,MACjC;AACA,oBAAgB,OAAO;AACvB,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACC,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACA,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,gBAAQ;",
4
+ "sourcesContent": ["import React, { useMemo } from 'react';\nimport { FieldBase } from '@digigov/form/Field/FieldBase';\nimport FieldConditional from '@digigov/form/Field/FieldConditional';\nimport {\n FieldWithCondition,\n CalculatedField,\n FieldProps,\n} from '@digigov/form/Field/types';\nimport {\n FIELD_COMPONENTS,\n ALTERNATIVE_COMPONENTS,\n} from '@digigov/form/Field/utils';\nimport { calculateField } from '@digigov/form/Field/utils/calculateField';\nimport { useField } from '@digigov/form/Field/utils/useField';\nimport FieldArray from '@digigov/form/FieldArray';\nimport Multiplicity from '@digigov/form/MultiplicityField';\nexport const Field: React.FC<FieldProps> = ({\n name,\n children,\n ...customField\n}) => {\n const {\n field,\n control,\n register,\n reset,\n resetField,\n error,\n componentRegistry,\n formState,\n setValue,\n getValues,\n unregister,\n trigger,\n clearErrors,\n } = useField(name, customField?.type ? customField : null);\n const calculatedField: CalculatedField = useMemo(\n () =>\n calculateField(\n children,\n field,\n {\n ...FIELD_COMPONENTS,\n ...componentRegistry,\n },\n ALTERNATIVE_COMPONENTS\n ),\n [field]\n );\n if (calculatedField.condition) {\n return (\n <FieldConditional\n control={control}\n reset={reset}\n resetField={resetField}\n register={register}\n field={calculatedField as FieldWithCondition}\n error={error}\n Field={Field}\n />\n );\n }\n if (calculatedField.type === 'array' && !calculatedField.multiplicity) {\n calculatedField.name = name;\n return (\n <FieldArray\n control={control}\n trigger={trigger}\n register={register}\n clearErrors={clearErrors}\n error={\n formState.isSubmitted && !formState.isSubmitting ? error : undefined\n }\n getValues={getValues}\n setValue={setValue}\n formState={formState}\n Field={Field}\n reset={reset}\n resetField={resetField}\n {...calculatedField}\n />\n );\n }\n if (\n calculatedField.type === 'array' &&\n calculatedField.multiplicity === true\n ) {\n calculatedField.name = name;\n return (\n <Multiplicity\n control={control}\n register={register}\n trigger={trigger}\n clearErrors={clearErrors}\n error={error}\n formState={formState}\n setValue={setValue}\n getValues={getValues}\n unregister={unregister}\n resetField={resetField}\n Field={Field}\n {...calculatedField}\n />\n );\n }\n const editable =\n customField.editable === false || customField.disabled === true\n ? false\n : true;\n const customError = error ? error : formState?.errors[name];\n return (\n <FieldBase\n {...calculatedField}\n editable={editable}\n name={name}\n control={control}\n register={register}\n reset={reset}\n error={customError}\n resetField={resetField}\n Field={Field}\n />\n );\n};\n\nexport default Field;\n"],
5
+ "mappings": "AAAA,OAAO,SAAS,eAAe;AAC/B,SAAS,iBAAiB;AAC1B,OAAO,sBAAsB;AAM7B;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,sBAAsB;AAC/B,SAAS,gBAAgB;AACzB,OAAO,gBAAgB;AACvB,OAAO,kBAAkB;AAClB,MAAM,QAA8B,CAAC;AAAA,EAC1C;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,SAAS,MAAM,aAAa,OAAO,cAAc,IAAI;AACzD,QAAM,kBAAmC;AAAA,IACvC,MACE;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,QACE,GAAG;AAAA,QACH,GAAG;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,IACF,CAAC,KAAK;AAAA,EACR;AACA,MAAI,gBAAgB,WAAW;AAC7B,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,OAAO;AAAA,QACP;AAAA,QACA;AAAA;AAAA,IACF;AAAA,EAEJ;AACA,MAAI,gBAAgB,SAAS,WAAW,CAAC,gBAAgB,cAAc;AACrE,oBAAgB,OAAO;AACvB,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,OACE,UAAU,eAAe,CAAC,UAAU,eAAe,QAAQ;AAAA,QAE7D;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACC,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACA,MACE,gBAAgB,SAAS,WACzB,gBAAgB,iBAAiB,MACjC;AACA,oBAAgB,OAAO;AACvB,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACC,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACA,QAAM,WACJ,YAAY,aAAa,SAAS,YAAY,aAAa,OACvD,QACA;AACN,QAAM,cAAc,QAAQ,QAAQ,WAAW,OAAO,IAAI;AAC1D,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP;AAAA,MACA;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,gBAAQ;",
6
6
  "names": []
7
7
  }
package/Field/types.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import { ErrorOption, UseFormReturn, UseFormProps } from 'react-hook-form';
3
3
  import { ValidatorSchema } from '@digigov/form/validators/types';
4
+ import { FieldsetLegendProps } from '@digigov/ui/form/FieldContainer';
4
5
  import { GridProps } from '@digigov/ui/layouts/Grid';
5
6
  export interface FieldLabelProps {
6
7
  primary?: string;
@@ -9,7 +10,7 @@ export interface FieldLabelProps {
9
10
  }
10
11
  export interface FieldSpec {
11
12
  key: string;
12
- type?: 'int' | 'string' | 'text' | 'boolean' | 'email' | 'uuid4' | 'choice:multiple' | 'choice:single' | 'mobile_phone' | 'date' | 'datetime' | 'otp' | 'afm' | 'iban' | 'file' | 'image' | 'postal_code' | 'phone_number' | 'array' | 'object';
13
+ type?: 'int' | 'string' | 'text' | 'boolean' | 'email' | 'uuid4' | 'choice:multiple' | 'choice:single' | 'mobile_phone' | 'date' | 'datetime' | 'otp' | 'afm' | 'amka' | 'iban' | 'file' | 'image' | 'postal_code' | 'phone_number' | 'array' | 'object';
13
14
  trim?: boolean;
14
15
  component?: any;
15
16
  autoComplete?: string;
@@ -48,6 +49,7 @@ export interface FieldConditionalProps {
48
49
  control: UseFormReturn['control'];
49
50
  register: UseFormReturn['register'];
50
51
  reset: UseFormReturn['reset'];
52
+ resetField?: UseFormReturn['resetField'];
51
53
  error?: ErrorOption;
52
54
  Field: React.FC<FieldProps>;
53
55
  }
@@ -58,12 +60,15 @@ export interface FieldComponentItem {
58
60
  }
59
61
  export interface FieldContainerProps {
60
62
  name?: FieldSpec['key'];
63
+ register: FieldBaseProps['register'];
61
64
  layout?: FieldSpec['layout'];
62
65
  label?: FieldSpec['label'];
63
66
  error?: ErrorOption | Record<string, any>;
64
67
  hasError?: boolean;
65
68
  children?: React.ReactNode;
69
+ controlled?: boolean;
66
70
  wrapper?: FieldSpec['wrapper'];
71
+ labelSize?: FieldsetLegendProps['size'];
67
72
  }
68
73
  export type FieldComponentRegistry = Record<string, FieldComponentItem>;
69
74
  export type OmittedFieldSpec = Omit<FieldSpec, 'component'>;
@@ -78,7 +83,7 @@ export interface ControlledFieldProps {
78
83
  error?: boolean;
79
84
  name?: string;
80
85
  disabled?: boolean;
81
- Field: React.FC<FieldProps>;
86
+ Field?: React.FC<FieldProps>;
82
87
  }
83
88
  export interface UncontrolledFieldProps {
84
89
  name: string;
@@ -102,7 +107,8 @@ export interface FieldBaseProps extends CalculatedField {
102
107
  control: UseFormReturn['control'];
103
108
  register: UseFormReturn['register'];
104
109
  reset: UseFormReturn['reset'];
105
- Field: React.FC<FieldProps>;
110
+ resetField?: UseFormReturn['resetField'];
111
+ Field?: React.FC<FieldProps>;
106
112
  }
107
113
  export interface FieldProps extends FieldSpec {
108
114
  name: string;
@@ -113,6 +119,7 @@ export interface UseFieldProps {
113
119
  control: FieldBaseProps['control'];
114
120
  register: FieldBaseProps['register'];
115
121
  reset: FieldBaseProps['reset'];
122
+ resetField: FieldBaseProps['resetField'];
116
123
  watch: UseFormReturn['watch'];
117
124
  formState: UseFormReturn['formState'];
118
125
  getFieldState: UseFormReturn['getFieldState'];
@@ -18,10 +18,12 @@ const FIELD_COMPONENTS = {
18
18
  file: {
19
19
  wrapper: "fieldset",
20
20
  component: FileInput
21
+ // controlled: true,
21
22
  },
22
23
  image: {
23
24
  wrapper: "fieldset",
24
- component: ImageInput
25
+ component: ImageInput,
26
+ controlled: true
25
27
  },
26
28
  date: {
27
29
  wrapper: "fieldset",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/Field/utils/index.ts"],
4
- "sourcesContent": ["import { FieldComponentRegistry } from '@digigov/form/Field/types';\nimport AutoCompleteInput from '@digigov/form/inputs/AutoCompleteInput';\nimport Checkboxes from '@digigov/form/inputs/Checkboxes';\nimport DateInput from '@digigov/form/inputs/DateInput';\nimport DateTimeInput from '@digigov/form/inputs/DateTimeInput';\nimport FileInput from '@digigov/form/inputs/FileInput';\nimport ImageInput from '@digigov/form/inputs/ImageInput';\nimport Input from '@digigov/form/inputs/Input';\nimport OtpInput from '@digigov/form/inputs/OtpInput';\nimport Radio, { ControlledRadioButtonsGroup } from '@digigov/form/inputs/Radio';\nimport Select from '@digigov/form/inputs/Select';\n\nexport const FIELD_COMPONENTS: FieldComponentRegistry = {\n text: {\n component: Input,\n },\n string: {\n component: Input,\n },\n file: {\n wrapper: 'fieldset',\n component: FileInput,\n },\n image: {\n wrapper: 'fieldset',\n component: ImageInput,\n },\n date: {\n wrapper: 'fieldset',\n controlled: true,\n component: DateInput,\n },\n datetime: {\n wrapper: 'fieldset',\n controlled: true,\n component: DateTimeInput,\n },\n otp: {\n wrapper: 'fieldset',\n controlled: true,\n component: OtpInput,\n },\n 'choice:multiple': {\n wrapper: 'fieldset',\n controlled: true,\n component: Checkboxes,\n },\n 'choice:single': {\n wrapper: 'fieldset',\n controlled: false,\n component: Radio,\n },\n};\n\nexport const ALTERNATIVE_COMPONENTS: FieldComponentRegistry = {\n Select: {\n component: Select,\n controlled: false,\n },\n AutoComplete: {\n component: AutoCompleteInput,\n controlled: true,\n wrapper: 'fieldset',\n },\n};\n\nexport const CONTROLLED_FIELD_COMPONENTS: FieldComponentRegistry = {\n ...FIELD_COMPONENTS,\n 'choice:single': {\n wrapper: 'fieldset',\n controlled: true,\n component: ControlledRadioButtonsGroup,\n },\n text: {\n component: Input,\n controlled: true,\n },\n string: {\n component: Input,\n controlled: true,\n },\n};\n"],
5
- "mappings": "AACA,OAAO,uBAAuB;AAC9B,OAAO,gBAAgB;AACvB,OAAO,eAAe;AACtB,OAAO,mBAAmB;AAC1B,OAAO,eAAe;AACtB,OAAO,gBAAgB;AACvB,OAAO,WAAW;AAClB,OAAO,cAAc;AACrB,OAAO,SAAS,mCAAmC;AACnD,OAAO,YAAY;AAEZ,MAAM,mBAA2C;AAAA,EACtD,MAAM;AAAA,IACJ,WAAW;AAAA,EACb;AAAA,EACA,QAAQ;AAAA,IACN,WAAW;AAAA,EACb;AAAA,EACA,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,WAAW;AAAA,EACb;AAAA,EACA,OAAO;AAAA,IACL,SAAS;AAAA,IACT,WAAW;AAAA,EACb;AAAA,EACA,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,WAAW;AAAA,EACb;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,WAAW;AAAA,EACb;AAAA,EACA,KAAK;AAAA,IACH,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,WAAW;AAAA,EACb;AAAA,EACA,mBAAmB;AAAA,IACjB,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,WAAW;AAAA,EACb;AAAA,EACA,iBAAiB;AAAA,IACf,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,WAAW;AAAA,EACb;AACF;AAEO,MAAM,yBAAiD;AAAA,EAC5D,QAAQ;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,EACd;AAAA,EACA,cAAc;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,EACX;AACF;AAEO,MAAM,8BAAsD;AAAA,EACjE,GAAG;AAAA,EACH,iBAAiB;AAAA,IACf,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,WAAW;AAAA,EACb;AAAA,EACA,MAAM;AAAA,IACJ,WAAW;AAAA,IACX,YAAY;AAAA,EACd;AAAA,EACA,QAAQ;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,EACd;AACF;",
4
+ "sourcesContent": ["import { FieldComponentRegistry } from '@digigov/form/Field/types';\nimport AutoCompleteInput from '@digigov/form/inputs/AutoCompleteInput';\nimport Checkboxes from '@digigov/form/inputs/Checkboxes';\nimport DateInput from '@digigov/form/inputs/DateInput';\nimport DateTimeInput from '@digigov/form/inputs/DateTimeInput';\nimport FileInput from '@digigov/form/inputs/FileInput';\nimport ImageInput from '@digigov/form/inputs/ImageInput';\nimport Input from '@digigov/form/inputs/Input';\nimport OtpInput from '@digigov/form/inputs/OtpInput';\nimport Radio, { ControlledRadioButtonsGroup } from '@digigov/form/inputs/Radio';\nimport Select from '@digigov/form/inputs/Select';\n\nexport const FIELD_COMPONENTS: FieldComponentRegistry = {\n text: {\n component: Input,\n },\n string: {\n component: Input,\n },\n file: {\n wrapper: 'fieldset',\n component: FileInput,\n // controlled: true,\n },\n image: {\n wrapper: 'fieldset',\n component: ImageInput,\n controlled: true,\n },\n date: {\n wrapper: 'fieldset',\n controlled: true,\n component: DateInput,\n },\n datetime: {\n wrapper: 'fieldset',\n controlled: true,\n component: DateTimeInput,\n },\n otp: {\n wrapper: 'fieldset',\n controlled: true,\n component: OtpInput,\n },\n 'choice:multiple': {\n wrapper: 'fieldset',\n controlled: true,\n component: Checkboxes,\n },\n 'choice:single': {\n wrapper: 'fieldset',\n controlled: false,\n component: Radio,\n },\n};\n\nexport const ALTERNATIVE_COMPONENTS: FieldComponentRegistry = {\n Select: {\n component: Select,\n controlled: false,\n },\n AutoComplete: {\n component: AutoCompleteInput,\n controlled: true,\n wrapper: 'fieldset',\n },\n};\n\nexport const CONTROLLED_FIELD_COMPONENTS: FieldComponentRegistry = {\n ...FIELD_COMPONENTS,\n 'choice:single': {\n wrapper: 'fieldset',\n controlled: true,\n component: ControlledRadioButtonsGroup,\n },\n text: {\n component: Input,\n controlled: true,\n },\n string: {\n component: Input,\n controlled: true,\n },\n};\n"],
5
+ "mappings": "AACA,OAAO,uBAAuB;AAC9B,OAAO,gBAAgB;AACvB,OAAO,eAAe;AACtB,OAAO,mBAAmB;AAC1B,OAAO,eAAe;AACtB,OAAO,gBAAgB;AACvB,OAAO,WAAW;AAClB,OAAO,cAAc;AACrB,OAAO,SAAS,mCAAmC;AACnD,OAAO,YAAY;AAEZ,MAAM,mBAA2C;AAAA,EACtD,MAAM;AAAA,IACJ,WAAW;AAAA,EACb;AAAA,EACA,QAAQ;AAAA,IACN,WAAW;AAAA,EACb;AAAA,EACA,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,WAAW;AAAA;AAAA,EAEb;AAAA,EACA,OAAO;AAAA,IACL,SAAS;AAAA,IACT,WAAW;AAAA,IACX,YAAY;AAAA,EACd;AAAA,EACA,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,WAAW;AAAA,EACb;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,WAAW;AAAA,EACb;AAAA,EACA,KAAK;AAAA,IACH,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,WAAW;AAAA,EACb;AAAA,EACA,mBAAmB;AAAA,IACjB,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,WAAW;AAAA,EACb;AAAA,EACA,iBAAiB;AAAA,IACf,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,WAAW;AAAA,EACb;AACF;AAEO,MAAM,yBAAiD;AAAA,EAC5D,QAAQ;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,EACd;AAAA,EACA,cAAc;AAAA,IACZ,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,EACX;AACF;AAEO,MAAM,8BAAsD;AAAA,EACjE,GAAG;AAAA,EACH,iBAAiB;AAAA,IACf,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,WAAW;AAAA,EACb;AAAA,EACA,MAAM;AAAA,IACJ,WAAW;AAAA,IACX,YAAY;AAAA,EACd;AAAA,EACA,QAAQ;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,EACd;AACF;",
6
6
  "names": []
7
7
  }
@@ -6,6 +6,7 @@ const useField = (name, customField) => {
6
6
  control,
7
7
  register,
8
8
  reset,
9
+ resetField,
9
10
  trigger,
10
11
  clearErrors,
11
12
  errors,
@@ -25,11 +26,16 @@ const useField = (name, customField) => {
25
26
  `);
26
27
  }
27
28
  let error = errors[name];
28
- const nameIndexRegex = name.match(/^(.*?)\.(\d+)$/);
29
+ const nameIndexRegex = name.match(/^\[*(.*?)\.(\d+)\]*$/);
29
30
  if (nameIndexRegex) {
30
31
  const [, fieldArrayName, indexStr] = nameIndexRegex;
31
32
  error = errors[fieldArrayName]?.[Number(indexStr)];
32
33
  }
34
+ const nestedNameIndexRegex = name.match(/^\[*(.*?)\.(\d+)\.(.*?)\]*$/);
35
+ if (nestedNameIndexRegex) {
36
+ const [, fieldArrayName, indexStr, fieldItemName] = nestedNameIndexRegex;
37
+ error = errors[fieldArrayName]?.[Number(indexStr)]?.[fieldItemName];
38
+ }
33
39
  useMemo(
34
40
  () => customField?.type && registerField({ ...customField, key: name }),
35
41
  [customField, name, registerField]
@@ -39,6 +45,7 @@ const useField = (name, customField) => {
39
45
  control,
40
46
  register,
41
47
  reset,
48
+ resetField,
42
49
  trigger,
43
50
  watch,
44
51
  componentRegistry,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/Field/utils/useField.ts"],
4
- "sourcesContent": ["import { useContext, useMemo } from 'react';\nimport { FieldSpec, UseFieldProps } from '@digigov/form/Field/types';\nimport { FormContext } from '@digigov/form/FormContext';\n\nexport const useField = (\n name: string,\n customField: FieldSpec | null\n): UseFieldProps => {\n const {\n fieldsMap,\n control,\n register,\n reset,\n trigger,\n clearErrors,\n errors,\n registerField,\n watch,\n componentRegistry,\n getFieldState,\n setValue,\n getValues,\n unregister,\n formState,\n } = useContext(FormContext);\n if (!registerField) {\n throw new Error(`\n You can't use the Field component without wrapping it in FormBuilder.\n https://devs.pages.grnet.gr/digigov/digigov-sdk/sdk-docs/forms/create-simple-form/\n `);\n }\n let error = errors[name];\n const nameIndexRegex = name.match(/^(.*?)\\.(\\d+)$/);\n if (nameIndexRegex) {\n const [, fieldArrayName, indexStr] = nameIndexRegex;\n error = errors[fieldArrayName]?.[Number(indexStr)];\n }\n useMemo(\n () => customField?.type && registerField({ ...customField, key: name }),\n [customField, name, registerField]\n );\n return {\n field: customField || fieldsMap[name],\n control,\n register,\n reset,\n trigger,\n watch,\n componentRegistry,\n getFieldState,\n setValue,\n clearErrors,\n getValues,\n unregister,\n formState,\n error,\n };\n};\n"],
5
- "mappings": "AAAA,SAAS,YAAY,eAAe;AAEpC,SAAS,mBAAmB;AAErB,MAAM,WAAW,CACtB,MACA,gBACkB;AAClB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,WAAW,WAAW;AAC1B,MAAI,CAAC,eAAe;AAClB,UAAM,IAAI,MAAM;AAAA;AAAA;AAAA,KAGf;AAAA,EACH;AACA,MAAI,QAAQ,OAAO,IAAI;AACvB,QAAM,iBAAiB,KAAK,MAAM,gBAAgB;AAClD,MAAI,gBAAgB;AAClB,UAAM,CAAC,EAAE,gBAAgB,QAAQ,IAAI;AACrC,YAAQ,OAAO,cAAc,IAAI,OAAO,QAAQ,CAAC;AAAA,EACnD;AACA;AAAA,IACE,MAAM,aAAa,QAAQ,cAAc,EAAE,GAAG,aAAa,KAAK,KAAK,CAAC;AAAA,IACtE,CAAC,aAAa,MAAM,aAAa;AAAA,EACnC;AACA,SAAO;AAAA,IACL,OAAO,eAAe,UAAU,IAAI;AAAA,IACpC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
4
+ "sourcesContent": ["import { useContext, useMemo } from 'react';\nimport { FieldSpec, UseFieldProps } from '@digigov/form/Field/types';\nimport { FormContext } from '@digigov/form/FormContext';\n\nexport const useField = (\n name: string,\n customField: FieldSpec | null\n): UseFieldProps => {\n const {\n fieldsMap,\n control,\n register,\n reset,\n resetField,\n trigger,\n clearErrors,\n errors,\n registerField,\n watch,\n componentRegistry,\n getFieldState,\n setValue,\n getValues,\n unregister,\n formState,\n } = useContext(FormContext);\n if (!registerField) {\n throw new Error(`\n You can't use the Field component without wrapping it in FormBuilder.\n https://devs.pages.grnet.gr/digigov/digigov-sdk/sdk-docs/forms/create-simple-form/\n `);\n }\n let error = errors[name];\n\n const nameIndexRegex = name.match(/^\\[*(.*?)\\.(\\d+)\\]*$/);\n if (nameIndexRegex) {\n const [, fieldArrayName, indexStr] = nameIndexRegex;\n error = errors[fieldArrayName]?.[Number(indexStr)];\n }\n const nestedNameIndexRegex = name.match(/^\\[*(.*?)\\.(\\d+)\\.(.*?)\\]*$/);\n if (nestedNameIndexRegex) {\n const [, fieldArrayName, indexStr, fieldItemName] = nestedNameIndexRegex;\n error = errors[fieldArrayName]?.[Number(indexStr)]?.[fieldItemName];\n }\n useMemo(\n () => customField?.type && registerField({ ...customField, key: name }),\n [customField, name, registerField]\n );\n return {\n field: customField || fieldsMap[name],\n control,\n register,\n reset,\n resetField,\n trigger,\n watch,\n componentRegistry,\n getFieldState,\n setValue,\n clearErrors,\n getValues,\n unregister,\n formState,\n error,\n };\n};\n"],
5
+ "mappings": "AAAA,SAAS,YAAY,eAAe;AAEpC,SAAS,mBAAmB;AAErB,MAAM,WAAW,CACtB,MACA,gBACkB;AAClB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,WAAW,WAAW;AAC1B,MAAI,CAAC,eAAe;AAClB,UAAM,IAAI,MAAM;AAAA;AAAA;AAAA,KAGf;AAAA,EACH;AACA,MAAI,QAAQ,OAAO,IAAI;AAEvB,QAAM,iBAAiB,KAAK,MAAM,sBAAsB;AACxD,MAAI,gBAAgB;AAClB,UAAM,CAAC,EAAE,gBAAgB,QAAQ,IAAI;AACrC,YAAQ,OAAO,cAAc,IAAI,OAAO,QAAQ,CAAC;AAAA,EACnD;AACA,QAAM,uBAAuB,KAAK,MAAM,6BAA6B;AACrE,MAAI,sBAAsB;AACxB,UAAM,CAAC,EAAE,gBAAgB,UAAU,aAAa,IAAI;AACpD,YAAQ,OAAO,cAAc,IAAI,OAAO,QAAQ,CAAC,IAAI,aAAa;AAAA,EACpE;AACA;AAAA,IACE,MAAM,aAAa,QAAQ,cAAc,EAAE,GAAG,aAAa,KAAK,KAAK,CAAC;AAAA,IACtE,CAAC,aAAa,MAAM,aAAa;AAAA,EACnC;AACA,SAAO;AAAA,IACL,OAAO,eAAe,UAAU,IAAI;AAAA,IACpC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
6
6
  "names": []
7
7
  }