@digigov/form 2.0.0-49de50c4 → 2.0.0-555d1027

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 (272) hide show
  1. package/Field/FieldBase/index.js +3 -4
  2. package/Field/FieldBase.js.map +2 -2
  3. package/Field/FieldBaseContainer/index.js +18 -2
  4. package/Field/FieldBaseContainer.js.map +2 -2
  5. package/Field/FieldConditional/index.js +1 -1
  6. package/Field/FieldConditional.js.map +1 -1
  7. package/Field/index.js +2 -1
  8. package/Field/index.js.map +2 -2
  9. package/Field/types.d.ts +2 -2
  10. package/Field/utils/index.js +4 -3
  11. package/Field/utils/index.js.map +2 -2
  12. package/FieldArray/FormDialog/index.js +5 -8
  13. package/FieldArray/FormDialog.d.ts +4 -4
  14. package/FieldArray/FormDialog.js.map +2 -2
  15. package/FieldArray/__stories__/Default.d.ts +1 -1
  16. package/FieldArray/__stories__/WithExactLength.d.ts +1 -1
  17. package/FieldArray/__stories__/WithModal.d.ts +1 -1
  18. package/FieldArray/index.d.ts +1 -1
  19. package/FieldArray/index.js +75 -87
  20. package/FieldArray/index.js.map +3 -3
  21. package/FormBuilder/FormBuilder.stories.d.ts +2 -0
  22. package/FormBuilder/__stories__/AutoErrorGrouping.d.ts +1 -1
  23. package/FormBuilder/__stories__/Default.d.ts +1 -1
  24. package/FormBuilder/__stories__/ErrorGrouping.d.ts +1 -1
  25. package/FormBuilder/index.d.ts +1 -1
  26. package/FormBuilder/index.js +3 -7
  27. package/FormBuilder/index.js.map +2 -2
  28. package/FormContext/index.js +6 -2
  29. package/FormContext.d.ts +1 -0
  30. package/FormContext.js.map +2 -2
  31. package/MultiplicityField/MultiplicityField.stories.d.ts +2 -0
  32. package/MultiplicityField/__stories__/Default.d.ts +1 -1
  33. package/MultiplicityField/__stories__/PreviewDisplay.d.ts +1 -1
  34. package/MultiplicityField/__stories__/WithExactLength.d.ts +1 -1
  35. package/MultiplicityField/__stories__/WithMaxLength.d.ts +1 -1
  36. package/MultiplicityField/__stories__/WithMinAndMaxLength.d.ts +1 -1
  37. package/MultiplicityField/__stories__/WithMinLength.d.ts +1 -1
  38. package/MultiplicityField/add-objects/index.js +1 -1
  39. package/MultiplicityField/add-objects.js.map +2 -2
  40. package/MultiplicityField/index.js +4 -2
  41. package/MultiplicityField/index.js.map +2 -2
  42. package/MultiplicityField/types.d.ts +1 -0
  43. package/Questions/Questions.stories.d.ts +2 -0
  44. package/Questions/__stories__/Default.d.ts +1 -1
  45. package/cjs/Field/FieldBase/index.js +3 -4
  46. package/cjs/Field/FieldBase.js.map +2 -2
  47. package/cjs/Field/FieldBaseContainer/index.js +17 -1
  48. package/cjs/Field/FieldBaseContainer.js.map +3 -3
  49. package/cjs/Field/FieldConditional/index.js +1 -1
  50. package/cjs/Field/FieldConditional.js.map +1 -1
  51. package/cjs/Field/index.js +2 -1
  52. package/cjs/Field/index.js.map +2 -2
  53. package/cjs/Field/types.js.map +1 -1
  54. package/cjs/Field/utils/index.js +4 -3
  55. package/cjs/Field/utils/index.js.map +2 -2
  56. package/cjs/FieldArray/FormDialog/index.js +5 -8
  57. package/cjs/FieldArray/FormDialog.js.map +2 -2
  58. package/cjs/FieldArray/index.js +74 -83
  59. package/cjs/FieldArray/index.js.map +3 -3
  60. package/cjs/FormBuilder/index.js +3 -7
  61. package/cjs/FormBuilder/index.js.map +2 -2
  62. package/cjs/FormContext/index.js +7 -2
  63. package/cjs/FormContext.js.map +2 -2
  64. package/cjs/MultiplicityField/add-objects/index.js +1 -1
  65. package/cjs/MultiplicityField/add-objects.js.map +2 -2
  66. package/cjs/MultiplicityField/index.js +4 -2
  67. package/cjs/MultiplicityField/index.js.map +2 -2
  68. package/cjs/MultiplicityField/types.js.map +1 -1
  69. package/cjs/inputs/Checkboxes/index.js +2 -1
  70. package/cjs/inputs/Checkboxes/index.js.map +2 -2
  71. package/cjs/inputs/DateInput/index.js +27 -12
  72. package/cjs/inputs/DateInput/index.js.map +2 -2
  73. package/cjs/inputs/DateTimeInput/index.js +55 -34
  74. package/cjs/inputs/DateTimeInput/index.js.map +2 -2
  75. package/cjs/inputs/FileInput/index.js +45 -26
  76. package/cjs/inputs/FileInput/index.js.map +2 -2
  77. package/cjs/inputs/ImageInput/__stories__/logo.d/index.js +1 -0
  78. package/cjs/inputs/ImageInput/__stories__/logo.d.js.map +7 -0
  79. package/cjs/inputs/ImageInput/index.js +41 -10
  80. package/cjs/inputs/ImageInput/index.js.map +2 -2
  81. package/cjs/inputs/Input/index.js +1 -0
  82. package/cjs/inputs/Input/index.js.map +2 -2
  83. package/cjs/lazy/index.js +1 -1
  84. package/cjs/lazy.js.map +2 -2
  85. package/cjs/registry/index.js +4 -6
  86. package/cjs/registry.js.map +2 -2
  87. package/cjs/validators/index.js +8 -10
  88. package/cjs/validators/index.js.map +2 -2
  89. package/cjs/validators/utils/date/index.js +21 -3
  90. package/cjs/validators/utils/date.js.map +2 -2
  91. package/cjs/validators/utils/datetime/index.js +113 -24
  92. package/cjs/validators/utils/datetime.js.map +2 -2
  93. package/index.js +1 -1
  94. package/inputs/AutoCompleteInput/AutoComplete.stories.d.ts +2 -0
  95. package/inputs/AutoCompleteInput/__stories__/Default.d.ts +1 -1
  96. package/inputs/AutoCompleteInput/__stories__/Multiple.d.ts +1 -1
  97. package/inputs/Checkboxes/Checkboxes.stories.d.ts +2 -0
  98. package/inputs/Checkboxes/__stories__/Conditional.d.ts +1 -1
  99. package/inputs/Checkboxes/__stories__/Default.d.ts +1 -1
  100. package/inputs/Checkboxes/__stories__/WithDivider.d.ts +1 -1
  101. package/inputs/Checkboxes/index.js +2 -1
  102. package/inputs/Checkboxes/index.js.map +2 -2
  103. package/inputs/DateInput/DateInput.stories.d.ts +6 -0
  104. package/inputs/DateInput/__stories__/Default.d.ts +1 -1
  105. package/inputs/DateInput/__stories__/WithDefaultValue.d.ts +3 -0
  106. package/inputs/DateInput/__stories__/WithInitialValue.d.ts +3 -0
  107. package/inputs/DateInput/__stories__/WithWrongDefaultValue.d.ts +3 -0
  108. package/inputs/DateInput/__stories__/WithWrongInitialValue.d.ts +3 -0
  109. package/inputs/DateInput/index.js +28 -13
  110. package/inputs/DateInput/index.js.map +2 -2
  111. package/inputs/DateTimeInput/DateTimeInput.stories.d.ts +10 -3
  112. package/inputs/DateTimeInput/__stories__/Default.d.ts +1 -1
  113. package/inputs/DateTimeInput/__stories__/WithDefaultValue.d.ts +3 -0
  114. package/inputs/DateTimeInput/__stories__/WithInitialValue.d.ts +3 -0
  115. package/inputs/DateTimeInput/__stories__/WithWrongDefaultValue.d.ts +3 -0
  116. package/inputs/DateTimeInput/__stories__/WithWrongInitialValue.d.ts +3 -0
  117. package/inputs/DateTimeInput/index.js +56 -35
  118. package/inputs/DateTimeInput/index.js.map +2 -2
  119. package/inputs/FileInput/FileInput.stories.d.ts +2 -0
  120. package/inputs/FileInput/__stories__/Default.d.ts +1 -1
  121. package/inputs/FileInput/index.d.ts +5 -1
  122. package/inputs/FileInput/index.js +46 -27
  123. package/inputs/FileInput/index.js.map +2 -2
  124. package/inputs/ImageInput/ImageInput.stories.d.ts +4 -1
  125. package/inputs/ImageInput/__stories__/Default.d.ts +1 -1
  126. package/inputs/ImageInput/__stories__/MaxSize.d.ts +1 -1
  127. package/inputs/ImageInput/__stories__/WithInitialValues.d.ts +3 -0
  128. package/inputs/ImageInput/__stories__/WithInvalidImageDimension.d.ts +1 -1
  129. package/inputs/ImageInput/__stories__/logo.d/index.js +1 -0
  130. package/inputs/{Input/inputsInputScenarios → ImageInput/__stories__/logo.d}/package.json +1 -1
  131. package/inputs/ImageInput/__stories__/logo.d.js.map +7 -0
  132. package/inputs/ImageInput/index.d.ts +9 -1
  133. package/inputs/ImageInput/index.js +42 -11
  134. package/inputs/ImageInput/index.js.map +2 -2
  135. package/inputs/Input/Input.stories.d.ts +3 -0
  136. package/inputs/Input/__stories__/AFM.d.ts +1 -1
  137. package/inputs/Input/__stories__/Boolean.d.ts +1 -1
  138. package/inputs/Input/__stories__/Email.d.ts +3 -0
  139. package/inputs/Input/__stories__/IBAN.d.ts +1 -1
  140. package/inputs/Input/__stories__/Integer.d.ts +1 -1
  141. package/inputs/Input/__stories__/LandlineNumber.d.ts +1 -1
  142. package/inputs/Input/__stories__/MobilePhone.d.ts +1 -1
  143. package/inputs/Input/__stories__/PhoneNumber.d.ts +1 -1
  144. package/inputs/Input/__stories__/PostalCode.d.ts +1 -1
  145. package/inputs/Input/__stories__/String.d.ts +1 -1
  146. package/inputs/Input/__stories__/StringWithTrimValidation.d.ts +1 -1
  147. package/inputs/Input/__stories__/TextWithLimit.d.ts +1 -1
  148. package/inputs/Input/index.js +1 -0
  149. package/inputs/Input/index.js.map +2 -2
  150. package/inputs/Label/Label.stories.d.ts +2 -0
  151. package/inputs/Label/__stories__/Default.d.ts +1 -1
  152. package/inputs/OtpInput/OtpInput.stories.d.ts +2 -0
  153. package/inputs/OtpInput/__stories__/Default.d.ts +1 -1
  154. package/inputs/Radio/Radio.stories.d.ts +2 -0
  155. package/inputs/Radio/__stories__/Conditional.d.ts +1 -1
  156. package/inputs/Radio/__stories__/Default.d.ts +1 -1
  157. package/inputs/Radio/__stories__/WithDivider.d.ts +1 -1
  158. package/inputs/Select/Select.stories.d.ts +2 -0
  159. package/inputs/Select/__stories__/Default.d.ts +1 -1
  160. package/lazy/index.js +1 -1
  161. package/package.json +8 -8
  162. package/registry/index.js +4 -6
  163. package/src/Field/FieldBase.tsx +14 -18
  164. package/src/Field/FieldBaseContainer.tsx +13 -5
  165. package/src/Field/FieldConditional.tsx +1 -1
  166. package/src/Field/index.tsx +2 -1
  167. package/src/Field/types.tsx +2 -2
  168. package/src/Field/utils/index.ts +2 -1
  169. package/src/FieldArray/FormDialog.tsx +7 -13
  170. package/src/FieldArray/__stories__/Default.tsx +1 -1
  171. package/src/FieldArray/__stories__/WithExactLength.tsx +1 -1
  172. package/src/FieldArray/__stories__/WithModal.tsx +1 -1
  173. package/src/FieldArray/index.tsx +83 -102
  174. package/src/FormBuilder/FormBuilder.stories.js +3 -0
  175. package/src/FormBuilder/__stories__/AutoErrorGrouping.tsx +1 -1
  176. package/src/FormBuilder/__stories__/Default.tsx +1 -1
  177. package/src/FormBuilder/__stories__/ErrorGrouping.tsx +1 -1
  178. package/src/FormBuilder/index.tsx +3 -7
  179. package/src/FormBuilder/scenarios.test.tsx +1 -1
  180. package/src/FormContext.tsx +5 -1
  181. package/src/MultiplicityField/MultiplicityField.stories.js +3 -0
  182. package/src/MultiplicityField/__stories__/Default.tsx +1 -1
  183. package/src/MultiplicityField/__stories__/PreviewDisplay.tsx +1 -1
  184. package/src/MultiplicityField/__stories__/WithExactLength.tsx +1 -1
  185. package/src/MultiplicityField/__stories__/WithMaxLength.tsx +1 -1
  186. package/src/MultiplicityField/__stories__/WithMinAndMaxLength.tsx +1 -1
  187. package/src/MultiplicityField/__stories__/WithMinLength.tsx +1 -1
  188. package/src/MultiplicityField/add-objects.tsx +1 -1
  189. package/src/MultiplicityField/index.tsx +3 -1
  190. package/src/MultiplicityField/types.ts +1 -0
  191. package/src/Questions/Questions.stories.js +3 -0
  192. package/src/Questions/__stories__/Default.tsx +1 -1
  193. package/src/inputs/AutoCompleteInput/AutoComplete.stories.js +3 -0
  194. package/src/inputs/AutoCompleteInput/__stories__/Default.tsx +1 -1
  195. package/src/inputs/AutoCompleteInput/__stories__/Multiple.tsx +1 -1
  196. package/src/inputs/Checkboxes/Checkboxes.stories.js +3 -0
  197. package/src/inputs/Checkboxes/__stories__/Conditional.tsx +1 -1
  198. package/src/inputs/Checkboxes/__stories__/Default.tsx +1 -1
  199. package/src/inputs/Checkboxes/__stories__/WithDivider.tsx +1 -1
  200. package/src/inputs/Checkboxes/index.tsx +4 -5
  201. package/src/inputs/DateInput/DateInput.stories.js +7 -0
  202. package/src/inputs/DateInput/__stories__/Default.tsx +1 -1
  203. package/src/inputs/DateInput/__stories__/WithDefaultValue.tsx +26 -0
  204. package/src/inputs/DateInput/__stories__/WithInitialValue.tsx +28 -0
  205. package/src/inputs/DateInput/__stories__/WithWrongDefaultValue.tsx +26 -0
  206. package/src/inputs/DateInput/__stories__/WithWrongInitialValue.tsx +28 -0
  207. package/src/inputs/DateInput/index.test.tsx +16 -0
  208. package/src/inputs/DateInput/index.tsx +31 -13
  209. package/src/inputs/DateTimeInput/DateTimeInput.stories.js +12 -6
  210. package/src/inputs/DateTimeInput/__stories__/Default.tsx +1 -1
  211. package/src/inputs/DateTimeInput/__stories__/WithDefaultValue.tsx +26 -0
  212. package/src/inputs/DateTimeInput/__stories__/WithInitialValue.tsx +28 -0
  213. package/src/inputs/DateTimeInput/__stories__/WithWrongDefaultValue.tsx +26 -0
  214. package/src/inputs/DateTimeInput/__stories__/WithWrongInitialValue.tsx +28 -0
  215. package/src/inputs/DateTimeInput/index.test.tsx +16 -0
  216. package/src/inputs/DateTimeInput/index.tsx +59 -35
  217. package/src/inputs/FileInput/FileInput.stories.js +3 -0
  218. package/src/inputs/FileInput/__stories__/Default.tsx +1 -1
  219. package/src/inputs/FileInput/index.tsx +72 -39
  220. package/src/inputs/ImageInput/ImageInput.stories.js +5 -1
  221. package/src/inputs/ImageInput/__stories__/Default.tsx +1 -1
  222. package/src/inputs/ImageInput/__stories__/MaxSize.tsx +3 -2
  223. package/src/inputs/ImageInput/__stories__/WithInitialValues.tsx +45 -0
  224. package/src/inputs/ImageInput/__stories__/WithInvalidImageDimension.tsx +1 -1
  225. package/src/inputs/ImageInput/__stories__/logo.d.ts +4 -0
  226. package/src/inputs/ImageInput/__stories__/logo.png +0 -0
  227. package/src/inputs/ImageInput/index.test.tsx +4 -0
  228. package/src/inputs/ImageInput/index.tsx +100 -48
  229. package/src/inputs/Input/Input.stories.js +4 -0
  230. package/src/inputs/Input/__stories__/AFM.tsx +1 -1
  231. package/src/inputs/Input/__stories__/Boolean.tsx +1 -1
  232. package/src/inputs/Input/__stories__/Email.tsx +23 -0
  233. package/src/inputs/Input/__stories__/IBAN.tsx +1 -1
  234. package/src/inputs/Input/__stories__/Integer.tsx +1 -1
  235. package/src/inputs/Input/__stories__/LandlineNumber.tsx +1 -1
  236. package/src/inputs/Input/__stories__/MobilePhone.tsx +1 -1
  237. package/src/inputs/Input/__stories__/PhoneNumber.tsx +1 -1
  238. package/src/inputs/Input/__stories__/PostalCode.tsx +1 -1
  239. package/src/inputs/Input/__stories__/String.tsx +1 -1
  240. package/src/inputs/Input/__stories__/StringWithTrimValidation.tsx +1 -1
  241. package/src/inputs/Input/__stories__/TextWithLimit.tsx +1 -1
  242. package/src/inputs/Input/index.test.tsx +8 -0
  243. package/src/inputs/Input/index.tsx +1 -0
  244. package/src/inputs/Label/Label.stories.js +3 -0
  245. package/src/inputs/Label/__stories__/Default.tsx +1 -1
  246. package/src/inputs/OtpInput/OtpInput.stories.js +3 -0
  247. package/src/inputs/OtpInput/__stories__/Default.tsx +1 -1
  248. package/src/inputs/Radio/Radio.stories.js +3 -0
  249. package/src/inputs/Radio/__stories__/Conditional.tsx +1 -1
  250. package/src/inputs/Radio/__stories__/Default.tsx +1 -1
  251. package/src/inputs/Radio/__stories__/WithDivider.tsx +1 -1
  252. package/src/inputs/Select/Select.stories.js +3 -0
  253. package/src/inputs/Select/__stories__/Default.tsx +1 -1
  254. package/src/lazy.js +1 -1
  255. package/src/registry.js +4 -6
  256. package/src/validators/index.ts +13 -13
  257. package/src/validators/utils/date.ts +23 -4
  258. package/src/validators/utils/datetime.ts +116 -29
  259. package/validators/index.js +8 -10
  260. package/validators/index.js.map +2 -2
  261. package/validators/utils/date/index.js +21 -3
  262. package/validators/utils/date.d.ts +1 -1
  263. package/validators/utils/date.js.map +2 -2
  264. package/validators/utils/datetime/index.js +113 -24
  265. package/validators/utils/datetime.d.ts +1 -1
  266. package/validators/utils/datetime.js.map +2 -2
  267. package/cjs/inputs/Input/inputsInputScenarios/index.js +0 -439
  268. package/cjs/inputs/Input/inputsInputScenarios.js.map +0 -7
  269. package/inputs/Input/inputsInputScenarios/index.js +0 -406
  270. package/inputs/Input/inputsInputScenarios.d.ts +0 -57
  271. package/inputs/Input/inputsInputScenarios.js.map +0 -7
  272. package/src/inputs/Input/inputsInputScenarios.ts +0 -404
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/inputs/ImageInput/index.tsx"],
4
- "sourcesContent": ["import React, { useState, useCallback } from 'react';\nimport { UncontrolledFieldProps } from '@digigov/form/Field/types';\nimport { Button, ButtonGroup } from '@digigov/ui/form/Button';\nimport { FileUpload, FileUploadContainer } from '@digigov/ui/form/FileUpload';\nimport { useTranslation } from '@digigov/ui/i18n';\nimport { Hint } from '@digigov/ui/typography/Hint';\nimport { Paragraph } from '@digigov/ui/typography/Paragraph';\nimport { Base } from '@digigov/ui/utils/Base';\nexport interface ImageProps {\n src?: any;\n}\n\nexport interface Limit {\n maxSize?: number;\n maxWidth?: number;\n maxHeight?: number;\n minWidth?: number;\n minHeight?: number;\n}\n\nexport const Image: React.FC<ImageProps> = React.memo(function Image({ src }) {\n return <Base as=\"img\" src={src} className=\"ds-image--ratio\" />;\n});\nexport interface ImageInputProps extends Omit<UncontrolledFieldProps, 'extra'> {\n extra?: {\n className?: string;\n multiple?: boolean;\n accept?: string;\n limit?: Limit;\n };\n reset: (values?: any) => void;\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n}\n\nexport const ImageInput: React.FC<ImageInputProps> = React.forwardRef(\n function ImageInput({ name, disabled, onChange, reset, ...props }, ref: any) {\n const { t } = useTranslation();\n const [selectedImage, setSelectedImage] = useState<File | null>(null);\n const [imageUrl, setImageUrl] = useState<string | null>(null);\n const handleImageChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n e.preventDefault();\n const target = e.target as HTMLInputElement;\n const selectedFile = target.files?.[0];\n\n if (selectedFile) {\n setSelectedImage(selectedFile);\n setImageUrl(URL.createObjectURL(selectedFile));\n }\n onChange(e);\n },\n [selectedImage]\n );\n\n const handleDeleteImage = useCallback(\n (event) => {\n event.preventDefault();\n reset({ [name]: '' });\n setSelectedImage(null);\n setImageUrl('');\n },\n [selectedImage]\n );\n\n return (\n <>\n <FileUploadContainer>\n {selectedImage !== null ? (\n <>\n <Paragraph>\n <Base as=\"b\">{t('upload.image')}:</Base>{' '}\n {`${selectedImage?.name}`}\n </Paragraph>\n </>\n ) : (\n <Hint className=\"ds-dashed--border\">{t('upload.no_image')}</Hint>\n )}\n <>\n {selectedImage !== null && <Image src={imageUrl} />}\n <ButtonGroup marginTop={2}>\n {selectedImage !== null && (\n <Button variant=\"link\" onClick={handleDeleteImage}>\n {t('upload.reset_file')}\n </Button>\n )}\n <FileUpload\n ref={ref}\n hasFiles={selectedImage !== null}\n name={name}\n id={name}\n disabled={disabled}\n accept=\"image/*\"\n onChange={handleImageChange}\n {...{\n ...props,\n required: undefined,\n Field: undefined,\n type: 'file',\n }}\n >\n {t('upload.choose_image')}\n </FileUpload>\n </ButtonGroup>\n </>\n </FileUploadContainer>\n </>\n );\n }\n);\n\nexport default ImageInput;\n"],
5
- "mappings": "AAAA,OAAO,SAAS,UAAU,mBAAmB;AAE7C,SAAS,QAAQ,mBAAmB;AACpC,SAAS,YAAY,2BAA2B;AAChD,SAAS,sBAAsB;AAC/B,SAAS,YAAY;AACrB,SAAS,iBAAiB;AAC1B,SAAS,YAAY;AAad,MAAM,QAA8B,MAAM,KAAK,SAASA,OAAM,EAAE,IAAI,GAAG;AAC5E,SAAO,oCAAC,QAAK,IAAG,OAAM,KAAU,WAAU,mBAAkB;AAC9D,CAAC;AAYM,MAAM,aAAwC,MAAM;AAAA,EACzD,SAASC,YAAW,EAAE,MAAM,UAAU,UAAU,OAAO,GAAG,MAAM,GAAG,KAAU;AAC3E,UAAM,EAAE,EAAE,IAAI,eAAe;AAC7B,UAAM,CAAC,eAAe,gBAAgB,IAAI,SAAsB,IAAI;AACpE,UAAM,CAAC,UAAU,WAAW,IAAI,SAAwB,IAAI;AAC5D,UAAM,oBAAoB;AAAA,MACxB,CAAC,MAA2C;AAC1C,UAAE,eAAe;AACjB,cAAM,SAAS,EAAE;AACjB,cAAM,eAAe,OAAO,QAAQ,CAAC;AAErC,YAAI,cAAc;AAChB,2BAAiB,YAAY;AAC7B,sBAAY,IAAI,gBAAgB,YAAY,CAAC;AAAA,QAC/C;AACA,iBAAS,CAAC;AAAA,MACZ;AAAA,MACA,CAAC,aAAa;AAAA,IAChB;AAEA,UAAM,oBAAoB;AAAA,MACxB,CAAC,UAAU;AACT,cAAM,eAAe;AACrB,cAAM,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC;AACpB,yBAAiB,IAAI;AACrB,oBAAY,EAAE;AAAA,MAChB;AAAA,MACA,CAAC,aAAa;AAAA,IAChB;AAEA,WACE,0DACE,oCAAC,2BACE,kBAAkB,OACjB,0DACE,oCAAC,iBACC,oCAAC,QAAK,IAAG,OAAK,EAAE,cAAc,GAAE,GAAC,GAAQ,KACxC,GAAG,eAAe,IAAI,EACzB,CACF,IAEA,oCAAC,QAAK,WAAU,uBAAqB,EAAE,iBAAiB,CAAE,GAE5D,0DACG,kBAAkB,QAAQ,oCAAC,SAAM,KAAK,UAAU,GACjD,oCAAC,eAAY,WAAW,KACrB,kBAAkB,QACjB,oCAAC,UAAO,SAAQ,QAAO,SAAS,qBAC7B,EAAE,mBAAmB,CACxB,GAEF;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,UAAU,kBAAkB;AAAA,QAC5B;AAAA,QACA,IAAI;AAAA,QACJ;AAAA,QACA,QAAO;AAAA,QACP,UAAU;AAAA,QACT,GAAG;AAAA,UACF,GAAG;AAAA,UACH,UAAU;AAAA,UACV,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA;AAAA,MAEC,EAAE,qBAAqB;AAAA,IAC1B,CACF,CACF,CACF,CACF;AAAA,EAEJ;AACF;AAEA,IAAO,qBAAQ;",
4
+ "sourcesContent": ["import React, { useRef, useState, useEffect, useCallback } from 'react';\nimport { UseFormReturn } from 'react-hook-form';\nimport { UncontrolledFieldProps } from '@digigov/form/Field/types';\nimport { Button, ButtonGroup } from '@digigov/ui/form/Button';\nimport { FileUpload, FileUploadContainer } from '@digigov/ui/form/FileUpload';\nimport { useTranslation } from '@digigov/ui/i18n';\nimport { Hint } from '@digigov/ui/typography/Hint';\nimport { Paragraph } from '@digigov/ui/typography/Paragraph';\nimport { Base } from '@digigov/ui/utils/Base';\nexport interface ImageProps {\n src: string;\n}\n\nexport interface Limit {\n maxSize?: number;\n maxWidth?: number;\n maxHeight?: number;\n minWidth?: number;\n minHeight?: number;\n}\n\nexport const Image: React.FC<ImageProps> = React.memo(function Image({ src }) {\n return <Base as=\"img\" src={src} className=\"ds-image--ratio\" />;\n});\n\ninterface ImageInputDefaultValue {\n filename: string;\n src: string;\n}\n\nconst blobToFileList = (blob: Blob, fileName: string): FileList => {\n const file = new File([blob], fileName, { type: 'image/jpeg' });\n const dataTransfer = new DataTransfer();\n dataTransfer.items.add(file);\n return dataTransfer.files;\n};\nexport interface ImageInputProps extends Omit<UncontrolledFieldProps, 'extra'> {\n extra?: {\n className?: string;\n multiple?: boolean;\n accept?: string;\n limit?: Limit;\n };\n reset: (values?: any) => void;\n resetField: UseFormReturn['resetField'];\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n defaultValue?: ImageInputDefaultValue | null;\n value: any;\n}\n\nexport const ImageInput: React.FC<ImageInputProps> = React.forwardRef(\n function ImageInput(\n { name, disabled, onChange, resetField, defaultValue, value, ...props },\n ref: any\n ) {\n const imageRef = useRef(ref?.current);\n const { t } = useTranslation();\n const currentValue: ImageInputDefaultValue | null =\n defaultValue || value || null;\n const [selectedImage, setSelectedImage] = useState<\n File | ImageInputDefaultValue | null\n >(currentValue);\n const [imageUrl, setImageUrl] = useState<string | null>(\n currentValue?.src || null\n );\n\n const handleImageChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n e.preventDefault();\n const target = e.target as HTMLInputElement;\n const selectedFile = target.files?.[0];\n if (selectedFile) {\n setSelectedImage(selectedFile);\n setImageUrl(URL.createObjectURL(selectedFile));\n }\n onChange(\n target.files as unknown as React.ChangeEvent<HTMLInputElement>\n );\n },\n [selectedImage]\n );\n\n const handleDeleteImage = useCallback(\n (event) => {\n event.preventDefault();\n resetField(name);\n setSelectedImage(null);\n setImageUrl(null);\n },\n [selectedImage]\n );\n\n useEffect(() => {\n // This is to fill the input with the default value (image)\n if (defaultValue?.src && imageRef.current) {\n fetch(defaultValue?.src)\n .then((response) => response.blob())\n .then((blob) => {\n const fileList = blobToFileList(blob, defaultValue.filename);\n imageRef.current.files = fileList;\n const fileChangeEvent = new Event('change', { bubbles: true });\n imageRef.current.dispatchEvent(fileChangeEvent);\n return;\n })\n .catch((error) => console.error('Error fetching image:', error));\n }\n }, [defaultValue, imageRef]);\n\n return (\n <FileUploadContainer>\n {selectedImage !== null ? (\n <>\n <Paragraph>\n <Base as=\"b\">{t('upload.image')}:</Base>{' '}\n <em>\n {`${(selectedImage as File)?.name || (selectedImage as ImageInputDefaultValue)?.filename}`}\n </em>\n </Paragraph>\n </>\n ) : (\n <Hint className=\"ds-dashed--border\">{t('upload.no_image')}</Hint>\n )}\n {imageUrl !== null && selectedImage !== null && (\n <Image src={imageUrl} />\n )}\n {!disabled && (\n <ButtonGroup marginTop={2}>\n <FileUpload\n ref={imageRef}\n hasFiles={selectedImage !== null}\n name={name}\n id={name}\n disabled={disabled}\n accept=\"image/*\"\n onChange={handleImageChange}\n {...{\n ...(props as any),\n required: undefined,\n Field: undefined,\n type: 'file',\n }}\n >\n {selectedImage\n ? t('upload.change_image')\n : t('upload.choose_image')}\n </FileUpload>\n {selectedImage !== null && (\n <Button\n color=\"warning\"\n variant=\"link\"\n onClick={handleDeleteImage}\n >\n {t('upload.reset_file')}\n </Button>\n )}\n </ButtonGroup>\n )}\n </FileUploadContainer>\n );\n }\n);\n\nexport default ImageInput;\n"],
5
+ "mappings": "AAAA,OAAO,SAAS,QAAQ,UAAU,WAAW,mBAAmB;AAGhE,SAAS,QAAQ,mBAAmB;AACpC,SAAS,YAAY,2BAA2B;AAChD,SAAS,sBAAsB;AAC/B,SAAS,YAAY;AACrB,SAAS,iBAAiB;AAC1B,SAAS,YAAY;AAad,MAAM,QAA8B,MAAM,KAAK,SAASA,OAAM,EAAE,IAAI,GAAG;AAC5E,SAAO,oCAAC,QAAK,IAAG,OAAM,KAAU,WAAU,mBAAkB;AAC9D,CAAC;AAOD,MAAM,iBAAiB,CAAC,MAAY,aAA+B;AACjE,QAAM,OAAO,IAAI,KAAK,CAAC,IAAI,GAAG,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9D,QAAM,eAAe,IAAI,aAAa;AACtC,eAAa,MAAM,IAAI,IAAI;AAC3B,SAAO,aAAa;AACtB;AAeO,MAAM,aAAwC,MAAM;AAAA,EACzD,SAASC,YACP,EAAE,MAAM,UAAU,UAAU,YAAY,cAAc,OAAO,GAAG,MAAM,GACtE,KACA;AACA,UAAM,WAAW,OAAO,KAAK,OAAO;AACpC,UAAM,EAAE,EAAE,IAAI,eAAe;AAC7B,UAAM,eACJ,gBAAgB,SAAS;AAC3B,UAAM,CAAC,eAAe,gBAAgB,IAAI,SAExC,YAAY;AACd,UAAM,CAAC,UAAU,WAAW,IAAI;AAAA,MAC9B,cAAc,OAAO;AAAA,IACvB;AAEA,UAAM,oBAAoB;AAAA,MACxB,CAAC,MAA2C;AAC1C,UAAE,eAAe;AACjB,cAAM,SAAS,EAAE;AACjB,cAAM,eAAe,OAAO,QAAQ,CAAC;AACrC,YAAI,cAAc;AAChB,2BAAiB,YAAY;AAC7B,sBAAY,IAAI,gBAAgB,YAAY,CAAC;AAAA,QAC/C;AACA;AAAA,UACE,OAAO;AAAA,QACT;AAAA,MACF;AAAA,MACA,CAAC,aAAa;AAAA,IAChB;AAEA,UAAM,oBAAoB;AAAA,MACxB,CAAC,UAAU;AACT,cAAM,eAAe;AACrB,mBAAW,IAAI;AACf,yBAAiB,IAAI;AACrB,oBAAY,IAAI;AAAA,MAClB;AAAA,MACA,CAAC,aAAa;AAAA,IAChB;AAEA,cAAU,MAAM;AAEd,UAAI,cAAc,OAAO,SAAS,SAAS;AACzC,cAAM,cAAc,GAAG,EACpB,KAAK,CAAC,aAAa,SAAS,KAAK,CAAC,EAClC,KAAK,CAAC,SAAS;AACd,gBAAM,WAAW,eAAe,MAAM,aAAa,QAAQ;AAC3D,mBAAS,QAAQ,QAAQ;AACzB,gBAAM,kBAAkB,IAAI,MAAM,UAAU,EAAE,SAAS,KAAK,CAAC;AAC7D,mBAAS,QAAQ,cAAc,eAAe;AAC9C;AAAA,QACF,CAAC,EACA,MAAM,CAAC,UAAU,QAAQ,MAAM,yBAAyB,KAAK,CAAC;AAAA,MACnE;AAAA,IACF,GAAG,CAAC,cAAc,QAAQ,CAAC;AAE3B,WACE,oCAAC,2BACE,kBAAkB,OACjB,0DACE,oCAAC,iBACC,oCAAC,QAAK,IAAG,OAAK,EAAE,cAAc,GAAE,GAAC,GAAQ,KACzC,oCAAC,YACE,GAAI,eAAwB,QAAS,eAA0C,QAAQ,EAC1F,CACF,CACF,IAEA,oCAAC,QAAK,WAAU,uBAAqB,EAAE,iBAAiB,CAAE,GAE3D,aAAa,QAAQ,kBAAkB,QACtC,oCAAC,SAAM,KAAK,UAAU,GAEvB,CAAC,YACA,oCAAC,eAAY,WAAW,KACtB;AAAA,MAAC;AAAA;AAAA,QACC,KAAK;AAAA,QACL,UAAU,kBAAkB;AAAA,QAC5B;AAAA,QACA,IAAI;AAAA,QACJ;AAAA,QACA,QAAO;AAAA,QACP,UAAU;AAAA,QACT,GAAG;AAAA,UACF,GAAI;AAAA,UACJ,UAAU;AAAA,UACV,OAAO;AAAA,UACP,MAAM;AAAA,QACR;AAAA;AAAA,MAEC,gBACG,EAAE,qBAAqB,IACvB,EAAE,qBAAqB;AAAA,IAC7B,GACC,kBAAkB,QACjB;AAAA,MAAC;AAAA;AAAA,QACC,OAAM;AAAA,QACN,SAAQ;AAAA,QACR,SAAS;AAAA;AAAA,MAER,EAAE,mBAAmB;AAAA,IACxB,CAEJ,CAEJ;AAAA,EAEJ;AACF;AAEA,IAAO,qBAAQ;",
6
6
  "names": ["Image", "ImageInput"]
7
7
  }
@@ -1,6 +1,8 @@
1
1
  declare namespace _default {
2
2
  export let title: string;
3
3
  export { Input as component };
4
+ export let tags: string[];
5
+ export { doc as markdown };
4
6
  export let displayName: string;
5
7
  }
6
8
  export default _default;
@@ -14,6 +16,7 @@ export { MobilePhone } from "@digigov/form/inputs/Input/__stories__/MobilePhone"
14
16
  export { AFM } from "@digigov/form/inputs/Input/__stories__/AFM";
15
17
  export { AMKA } from "@digigov/form/inputs/Input/__stories__/AMKA";
16
18
  export { IBAN } from "@digigov/form/inputs/Input/__stories__/IBAN";
19
+ export { Email } from "@digigov/form/inputs/Input/__stories__/Email";
17
20
  export { PostalCode } from "@digigov/form/inputs/Input/__stories__/PostalCode";
18
21
  export { TextWithLimit } from "@digigov/form/inputs/Input/__stories__/TextWithLimit";
19
22
  import Input from '@digigov/form/inputs/Input';
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- export declare const AFM: () => React.JSX.Element;
2
+ export declare const AFM: (_: any) => React.JSX.Element;
3
3
  export default AFM;
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- export declare const Boolean: () => React.JSX.Element;
2
+ export declare const Boolean: (_: any) => React.JSX.Element;
3
3
  export default Boolean;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export declare const Email: (_: any) => React.JSX.Element;
3
+ export default Email;
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- export declare const IBAN: () => React.JSX.Element;
2
+ export declare const IBAN: (_: any) => React.JSX.Element;
3
3
  export default IBAN;
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- export declare const Integer: () => React.JSX.Element;
2
+ export declare const Integer: (_: any) => React.JSX.Element;
3
3
  export default Integer;
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- export declare const LandlineNumber: () => React.JSX.Element;
2
+ export declare const LandlineNumber: (_: any) => React.JSX.Element;
3
3
  export default LandlineNumber;
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- export declare const MobilePhone: () => React.JSX.Element;
2
+ export declare const MobilePhone: (_: any) => React.JSX.Element;
3
3
  export default MobilePhone;
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- export declare const PhoneNumber: () => React.JSX.Element;
2
+ export declare const PhoneNumber: (_: any) => React.JSX.Element;
3
3
  export default PhoneNumber;
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- export declare const PostalCode: () => React.JSX.Element;
2
+ export declare const PostalCode: (_: any) => React.JSX.Element;
3
3
  export default PostalCode;
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- export declare const String: () => React.JSX.Element;
2
+ export declare const String: (_: any) => React.JSX.Element;
3
3
  export default String;
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- export declare const StringWithTrimValidation: () => React.JSX.Element;
2
+ export declare const StringWithTrimValidation: (_: any) => React.JSX.Element;
3
3
  export default StringWithTrimValidation;
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- export declare const TextWithLimit: () => React.JSX.Element;
2
+ export declare const TextWithLimit: (_: any) => React.JSX.Element;
3
3
  export default TextWithLimit;
@@ -6,6 +6,7 @@ import { useTranslation } from "@digigov/ui/i18n";
6
6
  import { Hint } from "@digigov/ui/typography/Hint";
7
7
  const TYPES_MAP = {
8
8
  string: "text",
9
+ password: "password",
9
10
  int: "text",
10
11
  text: "text",
11
12
  date: "date"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/inputs/Input/index.tsx"],
4
- "sourcesContent": ["import React from 'react';\nimport { useWatch } from 'react-hook-form';\nimport { UncontrolledFieldProps } from '@digigov/form/Field/types';\nimport { TextArea } from '@digigov/ui/form/TextArea';\nimport { TextInput } from '@digigov/ui/form/TextInput';\nimport { useTranslation } from '@digigov/ui/i18n';\nimport { Hint } from '@digigov/ui/typography/Hint';\n\nconst TYPES_MAP = {\n string: 'text',\n int: 'text',\n text: 'text',\n date: 'date',\n};\n\nexport interface InputProps\n extends Omit<UncontrolledFieldProps, 'extra' | 'Field'> {\n extra?: {\n fullWidth?: boolean;\n multiline?: boolean;\n className?: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n rows?: any;\n limit: {\n min?: number;\n max?: number;\n };\n };\n Field?: UncontrolledFieldProps['Field'];\n}\n\nexport const Input: React.ExoticComponent<InputProps> = React.forwardRef(\n function WrappedInput({ name, control, type, extra, ...props }, ref: never) {\n delete props['Field'];\n // eslint-disable-next-line prefer-const\n let { multiline = false, rows, limit } = extra || {};\n const { className } = extra || {};\n // if enforced to multiline use true. Derive from type otherwise.\n multiline = multiline === true || type === 'text';\n // use explicit rows value if set. Derive from multiline otherwise.\n rows = rows || (multiline ? 4 : 1);\n // translate dilosi type to HTML Input type\n const fieldType = TYPES_MAP[type || 'text'] || 'text';\n const { t } = useTranslation();\n const currentValue: string | '' = useWatch({ control, name });\n\n const getRemainingChars = (currentValue, limit) => {\n if (currentValue) {\n return limit?.max - currentValue.length;\n }\n return limit?.max;\n };\n\n const constructRemainingText = (currentValue, limit) => {\n const remainingChars = getRemainingChars(currentValue, limit);\n let remainingText =\n Math.abs(remainingChars) === 1\n ? t('form.info.text.character')\n : t('form.info.text.characters');\n remainingText +=\n remainingChars > 0\n ? ` ${t('form.info.text.remaining')}.`\n : ` ${t('form.info.text.too_many')}.`;\n return remainingText;\n };\n\n if (multiline === true) {\n return (\n <>\n <TextArea\n name={name}\n className={className}\n rows={rows}\n ref={ref}\n id={name}\n {...{\n ...props,\n reset: undefined,\n required: undefined,\n type: fieldType,\n }}\n />\n {limit?.max && (\n <Hint display={'flex'}>\n {t('form.info.text.you_have')}\n <Hint fontWeight=\"bold\">\n &nbsp;{`${Math.abs(getRemainingChars(currentValue, limit))}`}\n &nbsp;\n </Hint>\n {constructRemainingText(currentValue, limit)}\n </Hint>\n )}\n </>\n );\n } else {\n return (\n <TextInput\n name={name}\n id={name}\n type={fieldType}\n data-type={type}\n className={className}\n ref={ref}\n {...{\n ...props,\n reset: undefined,\n required: undefined,\n }}\n />\n );\n }\n }\n);\n\nexport default Input;\n"],
5
- "mappings": "AAAA,OAAO,WAAW;AAClB,SAAS,gBAAgB;AAEzB,SAAS,gBAAgB;AACzB,SAAS,iBAAiB;AAC1B,SAAS,sBAAsB;AAC/B,SAAS,YAAY;AAErB,MAAM,YAAY;AAAA,EAChB,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,MAAM;AAAA,EACN,MAAM;AACR;AAkBO,MAAM,QAA2C,MAAM;AAAA,EAC5D,SAAS,aAAa,EAAE,MAAM,SAAS,MAAM,OAAO,GAAG,MAAM,GAAG,KAAY;AAC1E,WAAO,MAAM,OAAO;AAEpB,QAAI,EAAE,YAAY,OAAO,MAAM,MAAM,IAAI,SAAS,CAAC;AACnD,UAAM,EAAE,UAAU,IAAI,SAAS,CAAC;AAEhC,gBAAY,cAAc,QAAQ,SAAS;AAE3C,WAAO,SAAS,YAAY,IAAI;AAEhC,UAAM,YAAY,UAAU,QAAQ,MAAM,KAAK;AAC/C,UAAM,EAAE,EAAE,IAAI,eAAe;AAC7B,UAAM,eAA4B,SAAS,EAAE,SAAS,KAAK,CAAC;AAE5D,UAAM,oBAAoB,CAACA,eAAcC,WAAU;AACjD,UAAID,eAAc;AAChB,eAAOC,QAAO,MAAMD,cAAa;AAAA,MACnC;AACA,aAAOC,QAAO;AAAA,IAChB;AAEA,UAAM,yBAAyB,CAACD,eAAcC,WAAU;AACtD,YAAM,iBAAiB,kBAAkBD,eAAcC,MAAK;AAC5D,UAAI,gBACF,KAAK,IAAI,cAAc,MAAM,IACzB,EAAE,0BAA0B,IAC5B,EAAE,2BAA2B;AACnC,uBACE,iBAAiB,IACb,IAAI,EAAE,0BAA0B,CAAC,MACjC,IAAI,EAAE,yBAAyB,CAAC;AACtC,aAAO;AAAA,IACT;AAEA,QAAI,cAAc,MAAM;AACtB,aACE,0DACE;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,IAAI;AAAA,UACH,GAAG;AAAA,YACF,GAAG;AAAA,YACH,OAAO;AAAA,YACP,UAAU;AAAA,YACV,MAAM;AAAA,UACR;AAAA;AAAA,MACF,GACC,OAAO,OACN,oCAAC,QAAK,SAAS,UACZ,EAAE,yBAAyB,GAC5B,oCAAC,QAAK,YAAW,UAAO,QACf,GAAG,KAAK,IAAI,kBAAkB,cAAc,KAAK,CAAC,CAAC,IAAG,MAE/D,GACC,uBAAuB,cAAc,KAAK,CAC7C,CAEJ;AAAA,IAEJ,OAAO;AACL,aACE;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,IAAI;AAAA,UACJ,MAAM;AAAA,UACN,aAAW;AAAA,UACX;AAAA,UACA;AAAA,UACC,GAAG;AAAA,YACF,GAAG;AAAA,YACH,OAAO;AAAA,YACP,UAAU;AAAA,UACZ;AAAA;AAAA,MACF;AAAA,IAEJ;AAAA,EACF;AACF;AAEA,IAAO,gBAAQ;",
4
+ "sourcesContent": ["import React from 'react';\nimport { useWatch } from 'react-hook-form';\nimport { UncontrolledFieldProps } from '@digigov/form/Field/types';\nimport { TextArea } from '@digigov/ui/form/TextArea';\nimport { TextInput } from '@digigov/ui/form/TextInput';\nimport { useTranslation } from '@digigov/ui/i18n';\nimport { Hint } from '@digigov/ui/typography/Hint';\n\nconst TYPES_MAP = {\n string: 'text',\n password: 'password',\n int: 'text',\n text: 'text',\n date: 'date',\n};\n\nexport interface InputProps\n extends Omit<UncontrolledFieldProps, 'extra' | 'Field'> {\n extra?: {\n fullWidth?: boolean;\n multiline?: boolean;\n className?: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n rows?: any;\n limit: {\n min?: number;\n max?: number;\n };\n };\n Field?: UncontrolledFieldProps['Field'];\n}\n\nexport const Input: React.ExoticComponent<InputProps> = React.forwardRef(\n function WrappedInput({ name, control, type, extra, ...props }, ref: never) {\n delete props['Field'];\n // eslint-disable-next-line prefer-const\n let { multiline = false, rows, limit } = extra || {};\n const { className } = extra || {};\n // if enforced to multiline use true. Derive from type otherwise.\n multiline = multiline === true || type === 'text';\n // use explicit rows value if set. Derive from multiline otherwise.\n rows = rows || (multiline ? 4 : 1);\n // translate dilosi type to HTML Input type\n const fieldType = TYPES_MAP[type || 'text'] || 'text';\n const { t } = useTranslation();\n const currentValue: string | '' = useWatch({ control, name });\n\n const getRemainingChars = (currentValue, limit) => {\n if (currentValue) {\n return limit?.max - currentValue.length;\n }\n return limit?.max;\n };\n\n const constructRemainingText = (currentValue, limit) => {\n const remainingChars = getRemainingChars(currentValue, limit);\n let remainingText =\n Math.abs(remainingChars) === 1\n ? t('form.info.text.character')\n : t('form.info.text.characters');\n remainingText +=\n remainingChars > 0\n ? ` ${t('form.info.text.remaining')}.`\n : ` ${t('form.info.text.too_many')}.`;\n return remainingText;\n };\n\n if (multiline === true) {\n return (\n <>\n <TextArea\n name={name}\n className={className}\n rows={rows}\n ref={ref}\n id={name}\n {...{\n ...props,\n reset: undefined,\n required: undefined,\n type: fieldType,\n }}\n />\n {limit?.max && (\n <Hint display={'flex'}>\n {t('form.info.text.you_have')}\n <Hint fontWeight=\"bold\">\n &nbsp;{`${Math.abs(getRemainingChars(currentValue, limit))}`}\n &nbsp;\n </Hint>\n {constructRemainingText(currentValue, limit)}\n </Hint>\n )}\n </>\n );\n } else {\n return (\n <TextInput\n name={name}\n id={name}\n type={fieldType}\n data-type={type}\n className={className}\n ref={ref}\n {...{\n ...props,\n reset: undefined,\n required: undefined,\n }}\n />\n );\n }\n }\n);\n\nexport default Input;\n"],
5
+ "mappings": "AAAA,OAAO,WAAW;AAClB,SAAS,gBAAgB;AAEzB,SAAS,gBAAgB;AACzB,SAAS,iBAAiB;AAC1B,SAAS,sBAAsB;AAC/B,SAAS,YAAY;AAErB,MAAM,YAAY;AAAA,EAChB,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,KAAK;AAAA,EACL,MAAM;AAAA,EACN,MAAM;AACR;AAkBO,MAAM,QAA2C,MAAM;AAAA,EAC5D,SAAS,aAAa,EAAE,MAAM,SAAS,MAAM,OAAO,GAAG,MAAM,GAAG,KAAY;AAC1E,WAAO,MAAM,OAAO;AAEpB,QAAI,EAAE,YAAY,OAAO,MAAM,MAAM,IAAI,SAAS,CAAC;AACnD,UAAM,EAAE,UAAU,IAAI,SAAS,CAAC;AAEhC,gBAAY,cAAc,QAAQ,SAAS;AAE3C,WAAO,SAAS,YAAY,IAAI;AAEhC,UAAM,YAAY,UAAU,QAAQ,MAAM,KAAK;AAC/C,UAAM,EAAE,EAAE,IAAI,eAAe;AAC7B,UAAM,eAA4B,SAAS,EAAE,SAAS,KAAK,CAAC;AAE5D,UAAM,oBAAoB,CAACA,eAAcC,WAAU;AACjD,UAAID,eAAc;AAChB,eAAOC,QAAO,MAAMD,cAAa;AAAA,MACnC;AACA,aAAOC,QAAO;AAAA,IAChB;AAEA,UAAM,yBAAyB,CAACD,eAAcC,WAAU;AACtD,YAAM,iBAAiB,kBAAkBD,eAAcC,MAAK;AAC5D,UAAI,gBACF,KAAK,IAAI,cAAc,MAAM,IACzB,EAAE,0BAA0B,IAC5B,EAAE,2BAA2B;AACnC,uBACE,iBAAiB,IACb,IAAI,EAAE,0BAA0B,CAAC,MACjC,IAAI,EAAE,yBAAyB,CAAC;AACtC,aAAO;AAAA,IACT;AAEA,QAAI,cAAc,MAAM;AACtB,aACE,0DACE;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,IAAI;AAAA,UACH,GAAG;AAAA,YACF,GAAG;AAAA,YACH,OAAO;AAAA,YACP,UAAU;AAAA,YACV,MAAM;AAAA,UACR;AAAA;AAAA,MACF,GACC,OAAO,OACN,oCAAC,QAAK,SAAS,UACZ,EAAE,yBAAyB,GAC5B,oCAAC,QAAK,YAAW,UAAO,QACf,GAAG,KAAK,IAAI,kBAAkB,cAAc,KAAK,CAAC,CAAC,IAAG,MAE/D,GACC,uBAAuB,cAAc,KAAK,CAC7C,CAEJ;AAAA,IAEJ,OAAO;AACL,aACE;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,IAAI;AAAA,UACJ,MAAM;AAAA,UACN,aAAW;AAAA,UACX;AAAA,UACA;AAAA,UACC,GAAG;AAAA,YACF,GAAG;AAAA,YACH,OAAO;AAAA,YACP,UAAU;AAAA,UACZ;AAAA;AAAA,MACF;AAAA,IAEJ;AAAA,EACF;AACF;AAEA,IAAO,gBAAQ;",
6
6
  "names": ["currentValue", "limit"]
7
7
  }
@@ -1,6 +1,8 @@
1
1
  declare namespace _default {
2
2
  export let title: string;
3
3
  export { Label as component };
4
+ export let tags: string[];
5
+ export { doc as markdown };
4
6
  export let displayName: string;
5
7
  }
6
8
  export default _default;
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- export declare const Default: () => React.JSX.Element;
2
+ export declare const Default: (_: any) => React.JSX.Element;
3
3
  export default Default;
@@ -1,6 +1,8 @@
1
1
  declare namespace _default {
2
2
  export let title: string;
3
3
  export { OtpInput as component };
4
+ export let tags: string[];
5
+ export { doc as markdown };
4
6
  export let displayName: string;
5
7
  }
6
8
  export default _default;
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- export declare const Default: () => React.JSX.Element;
2
+ export declare const Default: (_: any) => React.JSX.Element;
3
3
  export default Default;
@@ -1,6 +1,8 @@
1
1
  declare namespace _default {
2
2
  export let title: string;
3
3
  export { Radio as component };
4
+ export let tags: string[];
5
+ export { doc as markdown };
4
6
  export let displayName: string;
5
7
  }
6
8
  export default _default;
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- export declare const Conditional: () => React.JSX.Element;
2
+ export declare const Conditional: (_: any) => React.JSX.Element;
3
3
  export default Conditional;
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- export declare const Default: () => React.JSX.Element;
2
+ export declare const Default: (_: any) => React.JSX.Element;
3
3
  export default Default;
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- export declare const WithDivider: () => React.JSX.Element;
2
+ export declare const WithDivider: (_: any) => React.JSX.Element;
3
3
  export default WithDivider;
@@ -1,6 +1,8 @@
1
1
  declare namespace _default {
2
2
  export let title: string;
3
3
  export { Select as component };
4
+ export let tags: string[];
5
+ export { doc as markdown };
4
6
  export let displayName: string;
5
7
  }
6
8
  export default _default;
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- export declare const Default: () => React.JSX.Element;
2
+ export declare const Default: (_: any) => React.JSX.Element;
3
3
  export default Default;
package/lazy/index.js CHANGED
@@ -14,11 +14,11 @@ export default {
14
14
  'ArrayItemHeader': lazy(() => import('@digigov/form/FieldArray/FormDialog').then((module) => ({ default: module['ArrayItemHeader'] }))),
15
15
  'ArrayItemDisplay': lazy(() => import('@digigov/form/FieldArray/FormDialog').then((module) => ({ default: module['ArrayItemDisplay'] }))),
16
16
  'FieldArray': lazy(() => import('@digigov/form/FieldArray').then((module) => ({ default: module['FieldArray'] }))),
17
+ 'FieldObject': lazy(() => import('@digigov/form/FieldObject').then((module) => ({ default: module['FieldObject'] }))),
17
18
  'FieldsetWithContext': lazy(() => import('@digigov/form/Fieldset/FieldsetWithContext').then((module) => ({ default: module['FieldsetWithContext'] }))),
18
19
  'FieldsetLabel': lazy(() => import('@digigov/form/Fieldset').then((module) => ({ default: module['FieldsetLabel'] }))),
19
20
  'FieldsetCaption': lazy(() => import('@digigov/form/Fieldset').then((module) => ({ default: module['FieldsetCaption'] }))),
20
21
  'FieldsetBody': lazy(() => import('@digigov/form/Fieldset').then((module) => ({ default: module['FieldsetBody'] }))),
21
- 'FieldObject': lazy(() => import('@digigov/form/FieldObject').then((module) => ({ default: module['FieldObject'] }))),
22
22
  'ControlledFormBuilder': lazy(() => import('@digigov/form/FormBuilder').then((module) => ({ default: module['ControlledFormBuilder'] }))),
23
23
  'FormBase': lazy(() => import('@digigov/form/FormBuilder').then((module) => ({ default: module['FormBase'] }))),
24
24
  'AddObjects': lazy(() => import('@digigov/form/MultiplicityField/add-objects').then((module) => ({ default: module['AddObjects'] }))),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@digigov/form",
3
- "version": "2.0.0-49de50c4",
3
+ "version": "2.0.0-555d1027",
4
4
  "description": "@digigov form builder",
5
5
  "author": "GRNET Developers <devs@lists.grnet.gr>",
6
6
  "license": "BSD-2-Clause",
@@ -10,18 +10,18 @@
10
10
  "access": "public"
11
11
  },
12
12
  "dependencies": {
13
- "react-hook-form": "7.33.1",
13
+ "react-hook-form": "7.56.1",
14
14
  "yup": "0.32.11",
15
15
  "dayjs": "1.10.4",
16
- "@hookform/resolvers": "4.1.3",
17
- "@digigov/react-icons": "2.0.0-49de50c4"
16
+ "@hookform/resolvers": "5.0.1",
17
+ "@digigov/react-icons": "2.0.0-555d1027"
18
18
  },
19
19
  "peerDependencies": {
20
- "@digigov/ui": "2.0.0-49de50c4",
21
- "@digigov/react-core": "2.0.0-49de50c4",
20
+ "@digigov/ui": "2.0.0-555d1027",
21
+ "@digigov/react-core": "2.0.0-555d1027",
22
22
  "clsx": "1.1.1",
23
- "react": ">=16.8.0 <19.0.0",
24
- "react-dom": ">=16.8.0 <19.0.0"
23
+ "react": "^18.3.0 || ^19.1.0",
24
+ "react-dom": "^18.3.0 || ^19.1.0"
25
25
  },
26
26
  "gitHead": "c903a46306f77f55ad7fc4d2e274006f39a6c871",
27
27
  "private": false,
package/registry/index.js CHANGED
@@ -12,10 +12,10 @@ import * as _digigov_form_Field from "@digigov/form/Field";
12
12
  import * as _digigov_form_Field_types from "@digigov/form/Field/types";
13
13
  import * as _digigov_form_FieldArray_FormDialog from "@digigov/form/FieldArray/FormDialog";
14
14
  import * as _digigov_form_FieldArray from "@digigov/form/FieldArray";
15
+ import * as _digigov_form_FieldObject from "@digigov/form/FieldObject";
15
16
  import * as _digigov_form_Fieldset_FieldsetWithContext from "@digigov/form/Fieldset/FieldsetWithContext";
16
17
  import * as _digigov_form_Fieldset from "@digigov/form/Fieldset";
17
18
  import * as _digigov_form_Fieldset_types from "@digigov/form/Fieldset/types";
18
- import * as _digigov_form_FieldObject from "@digigov/form/FieldObject";
19
19
  import * as _digigov_form_FormBuilder from "@digigov/form/FormBuilder";
20
20
  import * as _digigov_form_MultiplicityField_add_objects from "@digigov/form/MultiplicityField/add-objects";
21
21
  import * as _digigov_form_MultiplicityField from "@digigov/form/MultiplicityField";
@@ -46,13 +46,12 @@ import * as _digigov_form_Questions_Step_getAddMoreFields from "@digigov/form/Qu
46
46
  import * as _digigov_form_Questions_Step from "@digigov/form/Questions/Step";
47
47
  import * as _digigov_form_Questions_Step_types from "@digigov/form/Questions/Step/types";
48
48
  import * as _digigov_form_inputs_AutoCompleteInput from "@digigov/form/inputs/AutoCompleteInput";
49
- import * as _digigov_form_inputs_DateInput from "@digigov/form/inputs/DateInput";
50
49
  import * as _digigov_form_inputs_Checkboxes from "@digigov/form/inputs/Checkboxes";
50
+ import * as _digigov_form_inputs_DateInput from "@digigov/form/inputs/DateInput";
51
51
  import * as _digigov_form_inputs_DateTimeInput from "@digigov/form/inputs/DateTimeInput";
52
52
  import * as _digigov_form_inputs_FileInput from "@digigov/form/inputs/FileInput";
53
53
  import * as _digigov_form_inputs_ImageInput from "@digigov/form/inputs/ImageInput";
54
54
  import * as _digigov_form_inputs_Input from "@digigov/form/inputs/Input";
55
- import * as _digigov_form_inputs_Input_inputsInputScenarios from "@digigov/form/inputs/Input/inputsInputScenarios";
56
55
  import * as _digigov_form_inputs_Label from "@digigov/form/inputs/Label";
57
56
  import * as _digigov_form_inputs_OtpInput from "@digigov/form/inputs/OtpInput";
58
57
  import * as _digigov_form_inputs_Radio from "@digigov/form/inputs/Radio";
@@ -104,10 +103,10 @@ export default {
104
103
  '@digigov/form/Field/types': lazyImport(_digigov_form_Field_types),
105
104
  '@digigov/form/FieldArray/FormDialog': lazyImport(_digigov_form_FieldArray_FormDialog),
106
105
  '@digigov/form/FieldArray': lazyImport(_digigov_form_FieldArray),
106
+ '@digigov/form/FieldObject': lazyImport(_digigov_form_FieldObject),
107
107
  '@digigov/form/Fieldset/FieldsetWithContext': lazyImport(_digigov_form_Fieldset_FieldsetWithContext),
108
108
  '@digigov/form/Fieldset': lazyImport(_digigov_form_Fieldset),
109
109
  '@digigov/form/Fieldset/types': lazyImport(_digigov_form_Fieldset_types),
110
- '@digigov/form/FieldObject': lazyImport(_digigov_form_FieldObject),
111
110
  '@digigov/form/FormBuilder': lazyImport(_digigov_form_FormBuilder),
112
111
  '@digigov/form/MultiplicityField/add-objects': lazyImport(_digigov_form_MultiplicityField_add_objects),
113
112
  '@digigov/form/MultiplicityField': lazyImport(_digigov_form_MultiplicityField),
@@ -138,13 +137,12 @@ export default {
138
137
  '@digigov/form/Questions/Step': lazyImport(_digigov_form_Questions_Step),
139
138
  '@digigov/form/Questions/Step/types': lazyImport(_digigov_form_Questions_Step_types),
140
139
  '@digigov/form/inputs/AutoCompleteInput': lazyImport(_digigov_form_inputs_AutoCompleteInput),
141
- '@digigov/form/inputs/DateInput': lazyImport(_digigov_form_inputs_DateInput),
142
140
  '@digigov/form/inputs/Checkboxes': lazyImport(_digigov_form_inputs_Checkboxes),
141
+ '@digigov/form/inputs/DateInput': lazyImport(_digigov_form_inputs_DateInput),
143
142
  '@digigov/form/inputs/DateTimeInput': lazyImport(_digigov_form_inputs_DateTimeInput),
144
143
  '@digigov/form/inputs/FileInput': lazyImport(_digigov_form_inputs_FileInput),
145
144
  '@digigov/form/inputs/ImageInput': lazyImport(_digigov_form_inputs_ImageInput),
146
145
  '@digigov/form/inputs/Input': lazyImport(_digigov_form_inputs_Input),
147
- '@digigov/form/inputs/Input/inputsInputScenarios': lazyImport(_digigov_form_inputs_Input_inputsInputScenarios),
148
146
  '@digigov/form/inputs/Label': lazyImport(_digigov_form_inputs_Label),
149
147
  '@digigov/form/inputs/OtpInput': lazyImport(_digigov_form_inputs_OtpInput),
150
148
  '@digigov/form/inputs/Radio': lazyImport(_digigov_form_inputs_Radio),
@@ -51,23 +51,20 @@ export const FieldBase: React.FC<FieldBaseProps> = ({
51
51
  name={name}
52
52
  render={({ field }) => {
53
53
  return (
54
- <>
55
- <div tabIndex={-1} ref={field.ref} />
56
- <Component
57
- {...field}
58
- control={control}
59
- ref={undefined}
60
- defaultValue={defaultValue}
61
- extra={extra}
62
- error={!!error}
63
- type={type}
64
- aria-required={!!required}
65
- aria-describedby={error && `${name}-error`}
66
- required={required}
67
- disabled={editable === false}
68
- {...componentProps}
69
- />
70
- </>
54
+ <Component
55
+ {...field}
56
+ control={control}
57
+ ref={undefined}
58
+ defaultValue={defaultValue ?? field.value}
59
+ extra={extra}
60
+ error={!!error}
61
+ type={type}
62
+ aria-required={!!required}
63
+ aria-describedby={error && `${name}-error`}
64
+ required={required}
65
+ disabled={editable === false}
66
+ {...componentProps}
67
+ />
71
68
  );
72
69
  }}
73
70
  />
@@ -112,7 +109,6 @@ export const FieldBase: React.FC<FieldBaseProps> = ({
112
109
  aria-describedby={error && `${name}-error`}
113
110
  required={required}
114
111
  disabled={editable === false}
115
- ref={undefined}
116
112
  {...componentProps}
117
113
  />
118
114
  )}
@@ -3,7 +3,7 @@ import { FieldContainerProps } from '@digigov/form/Field/types';
3
3
  import Label from '@digigov/form/inputs/Label';
4
4
  import { ErrorMessage } from '@digigov/react-core/ErrorMessage';
5
5
  import FieldContainer from '@digigov/react-core/FieldContainer';
6
- import CoreFieldset from '@digigov/react-core/Fieldset';
6
+ import Fieldset from '@digigov/react-core/Fieldset';
7
7
  import FieldsetLegend from '@digigov/react-core/FieldsetLegend';
8
8
  import LabelContainer from '@digigov/react-core/LabelContainer';
9
9
  import { useTranslation } from '@digigov/ui/i18n';
@@ -11,12 +11,14 @@ import { Hint } from '@digigov/ui/typography/Hint';
11
11
 
12
12
  export const FieldBaseContainer: React.FC<FieldContainerProps> = ({
13
13
  name,
14
+ register,
14
15
  wrapper,
15
16
  label,
16
17
  children,
17
18
  error,
18
19
  hasError,
19
20
  layout,
21
+ controlled,
20
22
  labelSize = 'sm',
21
23
  }) => {
22
24
  const { t } = useTranslation();
@@ -27,19 +29,25 @@ export const FieldBaseContainer: React.FC<FieldContainerProps> = ({
27
29
  if (wrapper === 'fieldset') {
28
30
  return (
29
31
  <FieldContainer error={hasError} {...layout}>
30
- <CoreFieldset>
32
+ <Fieldset
33
+ className="outline-none"
34
+ {...(controlled && {
35
+ tabIndex: -1,
36
+ ...(register(name || '') as any),
37
+ })}
38
+ >
31
39
  <FieldsetLegend size={labelSize}>
32
40
  {label && label.primary}
33
41
  </FieldsetLegend>
34
- {label && label.secondary && <Hint mb={0}>{t(label.secondary)}</Hint>}
42
+ {label && label.secondary && <Hint>{t(label.secondary)}</Hint>}
35
43
  {error && (
36
- <ErrorMessage id={`${name}-error`} mb={0}>
44
+ <ErrorMessage id={`${name}-error`}>
37
45
  {t(errorMessage, errorContext)}
38
46
  </ErrorMessage>
39
47
  )}
40
48
  {children}
41
49
  {label && label.hint && <Hint size="sm">{label.hint}</Hint>}
42
- </CoreFieldset>
50
+ </Fieldset>
43
51
  </FieldContainer>
44
52
  );
45
53
  } else {
@@ -78,8 +78,8 @@ export const FieldConditional: React.FC<FieldConditionalProps> = ({
78
78
  field={field}
79
79
  control={control}
80
80
  register={register}
81
- resetField={resetField}
82
81
  reset={reset}
82
+ resetField={resetField}
83
83
  error={error}
84
84
  Field={Field}
85
85
  />
@@ -97,6 +97,7 @@ export const Field: React.FC<FieldProps> = ({
97
97
  setValue={setValue}
98
98
  getValues={getValues}
99
99
  unregister={unregister}
100
+ resetField={resetField}
100
101
  Field={Field}
101
102
  {...calculatedField}
102
103
  />
@@ -115,8 +116,8 @@ export const Field: React.FC<FieldProps> = ({
115
116
  control={control}
116
117
  register={register}
117
118
  reset={reset}
118
- resetField={resetField}
119
119
  error={customError}
120
+ resetField={resetField}
120
121
  Field={Field}
121
122
  />
122
123
  );
@@ -82,7 +82,7 @@ export interface FieldConditionalProps {
82
82
  control: UseFormReturn['control'];
83
83
  register: UseFormReturn['register'];
84
84
  reset: UseFormReturn['reset'];
85
- resetField: UseFormReturn['resetField'];
85
+ resetField?: UseFormReturn['resetField'];
86
86
  error?: ErrorOption;
87
87
  Field: React.FC<FieldProps>;
88
88
  }
@@ -151,7 +151,7 @@ export interface FieldBaseProps extends CalculatedField {
151
151
  control: UseFormReturn['control'];
152
152
  register: UseFormReturn['register'];
153
153
  reset: UseFormReturn['reset'];
154
- resetField: UseFormReturn['resetField'];
154
+ resetField?: UseFormReturn['resetField'];
155
155
  Field?: React.FC<FieldProps>;
156
156
  }
157
157
 
@@ -20,11 +20,12 @@ export const FIELD_COMPONENTS: FieldComponentRegistry = {
20
20
  file: {
21
21
  wrapper: 'fieldset',
22
22
  component: FileInput,
23
- controlled: true,
23
+ // controlled: true,
24
24
  },
25
25
  image: {
26
26
  wrapper: 'fieldset',
27
27
  component: ImageInput,
28
+ controlled: true,
28
29
  },
29
30
  date: {
30
31
  wrapper: 'fieldset',
@@ -40,7 +40,7 @@ export interface FormDialogProps extends FieldProps {
40
40
  getValues: UseFormReturn['getValues'];
41
41
  setValue: UseFormReturn['setValue'];
42
42
  reset: UseFormReturn['reset'];
43
- resetField: UseFormReturn['resetField'];
43
+ resetField?: UseFormReturn['resetField'];
44
44
  sortable: boolean;
45
45
  Field: React.FC<FieldProps>;
46
46
  }
@@ -206,9 +206,6 @@ export const FormDialog: React.FC<FormDialogProps> = React.forwardRef(
206
206
  ofField?.extra &&
207
207
  values?.length > 0 && (
208
208
  <ArrayItemHeader
209
- tableCellActionsLabel={
210
- customField.extra?.tableCellActionsLabel
211
- }
212
209
  labels={
213
210
  ofField.type === 'object'
214
211
  ? ofField.extra.fields.map(({ label }) => label.primary)
@@ -224,6 +221,7 @@ export const FormDialog: React.FC<FormDialogProps> = React.forwardRef(
224
221
  <ArrayItemDisplay
225
222
  key={index}
226
223
  name={`${name}.${index}`}
224
+ register={register}
227
225
  index={index}
228
226
  isFirst={index === 0}
229
227
  isLast={index === values.length - 1}
@@ -396,20 +394,14 @@ export const ArrayItemModal = React.forwardRef(function ArrayItemModal(
396
394
  );
397
395
  });
398
396
 
399
- export const ArrayItemHeader = ({
400
- labels,
401
- disabled,
402
- tableCellActionsLabel,
403
- }) => {
397
+ export const ArrayItemHeader = ({ labels, disabled }) => {
404
398
  return (
405
399
  <TableHead>
406
400
  <TableRow>
407
401
  {labels.map((label, index) => {
408
402
  return <TableHeadCell key={index}>{label}</TableHeadCell>;
409
403
  })}
410
- {!disabled && (
411
- <TableHeadCell>{tableCellActionsLabel ?? `Ενέργειες`}</TableHeadCell>
412
- )}
404
+ {!disabled && <TableHeadCell>Ενέργειες</TableHeadCell>}
413
405
  </TableRow>
414
406
  </TableHead>
415
407
  );
@@ -418,6 +410,7 @@ export const ArrayItemHeader = ({
418
410
  export const ArrayItemDisplay = ({
419
411
  name,
420
412
  data,
413
+ register,
421
414
  edit,
422
415
  remove,
423
416
  disabledEdit,
@@ -442,6 +435,7 @@ export const ArrayItemDisplay = ({
442
435
  name: string;
443
436
  edit: (name: string) => void;
444
437
  remove: (name: string) => void;
438
+ register: (name: string) => void;
445
439
  disabledEdit?: boolean;
446
440
  disabledDelete?: boolean;
447
441
  disabled?: boolean;
@@ -470,7 +464,7 @@ export const ArrayItemDisplay = ({
470
464
  const borderVariant = border === false || sortable ? 'none' : 'border';
471
465
  return (
472
466
  <>
473
- <TableRow>
467
+ <TableRow {...(register(name) as any)}>
474
468
  {values?.map?.((value, valueIndex) => {
475
469
  return (
476
470
  <TableDataCell
@@ -81,7 +81,7 @@ const fields = [
81
81
  },
82
82
  ] as FieldSpec[];
83
83
 
84
- export const Default = () => (
84
+ export const Default = (_: any) => (
85
85
  <FormBuilder
86
86
  onSubmit={(data) => {
87
87
  console.log(data);
@@ -81,7 +81,7 @@ const fields = [
81
81
  },
82
82
  ] as FieldSpec[];
83
83
 
84
- export const WithExactLength = () => (
84
+ export const WithExactLength = (_: any) => (
85
85
  <FormBuilder
86
86
  onSubmit={(data) => {
87
87
  console.log(data);