@dnb/eufemia 10.52.1 → 10.53.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (318) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/cjs/components/number-format/NumberUtils.js.map +1 -1
  3. package/cjs/components/progress-indicator/ProgressIndicator.js +2 -2
  4. package/cjs/components/progress-indicator/ProgressIndicator.js.map +1 -1
  5. package/cjs/components/upload/UploadVerify.js +2 -2
  6. package/cjs/components/upload/UploadVerify.js.map +1 -1
  7. package/cjs/extensions/forms/DataContext/Context.d.ts +1 -0
  8. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  9. package/cjs/extensions/forms/DataContext/Provider/Provider.js +3 -4
  10. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  11. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +5 -1
  12. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  13. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.d.ts +3 -1
  14. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +51 -11
  15. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  16. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.d.ts +2 -0
  17. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.js +25 -0
  18. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.js.map +1 -0
  19. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +10 -2
  20. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +61 -17
  21. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  22. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +5 -0
  23. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
  24. package/cjs/extensions/forms/Field/Slider/Slider.js +3 -1
  25. package/cjs/extensions/forms/Field/Slider/Slider.js.map +1 -1
  26. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +21 -3
  27. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  28. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js +2 -2
  29. package/cjs/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  30. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +6 -0
  31. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  32. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +6 -0
  33. package/cjs/extensions/forms/Iterate/Array/Array.js +51 -27
  34. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  35. package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js +4 -12
  36. package/cjs/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  37. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +29 -32
  38. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  39. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js +2 -2
  40. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js.map +1 -1
  41. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +2 -1
  42. package/cjs/extensions/forms/constants/locales/en-GB.js +3 -2
  43. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  44. package/cjs/extensions/forms/constants/locales/en-US.d.ts +2 -1
  45. package/cjs/extensions/forms/constants/locales/index.d.ts +4 -2
  46. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +2 -1
  47. package/cjs/extensions/forms/constants/locales/nb-NO.js +3 -2
  48. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  49. package/cjs/extensions/forms/hooks/useFieldProps.d.ts +4 -2
  50. package/cjs/extensions/forms/hooks/useFieldProps.js +40 -8
  51. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  52. package/cjs/extensions/forms/hooks/useTranslation.d.ts +4 -1
  53. package/cjs/extensions/forms/hooks/useTranslation.js +6 -3
  54. package/cjs/extensions/forms/hooks/useTranslation.js.map +1 -1
  55. package/cjs/extensions/forms/hooks/useValueProps.d.ts +1 -1
  56. package/cjs/extensions/forms/hooks/useValueProps.js +2 -2
  57. package/cjs/extensions/forms/hooks/useValueProps.js.map +1 -1
  58. package/cjs/extensions/forms/style/dnb-forms.css +6 -0
  59. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  60. package/cjs/extensions/forms/types.d.ts +2 -1
  61. package/cjs/extensions/forms/types.js.map +1 -1
  62. package/cjs/shared/Context.d.ts +4 -4
  63. package/cjs/shared/Context.js.map +1 -1
  64. package/cjs/shared/Eufemia.d.ts +1 -1
  65. package/cjs/shared/Eufemia.js +2 -2
  66. package/cjs/shared/Eufemia.js.map +1 -1
  67. package/cjs/shared/defaults.d.ts +1 -0
  68. package/cjs/shared/defaults.js +3 -1
  69. package/cjs/shared/defaults.js.map +1 -1
  70. package/cjs/shared/useTranslation.d.ts +11 -4
  71. package/cjs/shared/useTranslation.js +68 -22
  72. package/cjs/shared/useTranslation.js.map +1 -1
  73. package/cjs/style/core/scopes.scss +1 -1
  74. package/cjs/style/dnb-ui-basis.css +1 -1
  75. package/cjs/style/dnb-ui-basis.min.css +1 -1
  76. package/cjs/style/dnb-ui-body.css +1 -1
  77. package/cjs/style/dnb-ui-body.min.css +1 -1
  78. package/cjs/style/dnb-ui-components.css +6 -0
  79. package/cjs/style/dnb-ui-components.min.css +1 -1
  80. package/cjs/style/dnb-ui-core.css +1 -1
  81. package/cjs/style/dnb-ui-core.min.css +1 -1
  82. package/cjs/style/dnb-ui-extensions.css +6 -0
  83. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  84. package/cjs/style/dnb-ui-forms.css +6 -0
  85. package/cjs/style/dnb-ui-forms.min.css +1 -1
  86. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +12 -0
  87. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  88. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +6 -0
  89. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  90. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +6 -0
  91. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  92. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +12 -0
  93. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  94. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +6 -0
  95. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  96. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +6 -0
  97. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  98. package/cjs/style/themes/theme-ui/ui-theme-components.css +12 -0
  99. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  100. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +6 -0
  101. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  102. package/cjs/style/themes/theme-ui/ui-theme-forms.css +6 -0
  103. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  104. package/components/number-format/NumberUtils.js.map +1 -1
  105. package/components/progress-indicator/ProgressIndicator.js +2 -2
  106. package/components/progress-indicator/ProgressIndicator.js.map +1 -1
  107. package/components/upload/UploadVerify.js +2 -2
  108. package/components/upload/UploadVerify.js.map +1 -1
  109. package/es/components/number-format/NumberUtils.js.map +1 -1
  110. package/es/components/progress-indicator/ProgressIndicator.js +2 -2
  111. package/es/components/progress-indicator/ProgressIndicator.js.map +1 -1
  112. package/es/components/upload/UploadVerify.js +2 -2
  113. package/es/components/upload/UploadVerify.js.map +1 -1
  114. package/es/extensions/forms/DataContext/Context.d.ts +1 -0
  115. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  116. package/es/extensions/forms/DataContext/Provider/Provider.js +3 -4
  117. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  118. package/es/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +5 -1
  119. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  120. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.d.ts +3 -1
  121. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +52 -12
  122. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  123. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.d.ts +2 -0
  124. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.js +18 -0
  125. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.js.map +1 -0
  126. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +10 -2
  127. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +59 -17
  128. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  129. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +5 -0
  130. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
  131. package/es/extensions/forms/Field/Slider/Slider.js +3 -1
  132. package/es/extensions/forms/Field/Slider/Slider.js.map +1 -1
  133. package/es/extensions/forms/FieldBlock/FieldBlock.js +21 -3
  134. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  135. package/es/extensions/forms/FieldBlock/FieldBlockDocs.js +2 -2
  136. package/es/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  137. package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +6 -0
  138. package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  139. package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +6 -0
  140. package/es/extensions/forms/Iterate/Array/Array.js +52 -28
  141. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  142. package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js +4 -12
  143. package/es/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  144. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +29 -29
  145. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  146. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js +2 -2
  147. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js.map +1 -1
  148. package/es/extensions/forms/constants/locales/en-GB.d.ts +2 -1
  149. package/es/extensions/forms/constants/locales/en-GB.js +3 -2
  150. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  151. package/es/extensions/forms/constants/locales/en-US.d.ts +2 -1
  152. package/es/extensions/forms/constants/locales/index.d.ts +4 -2
  153. package/es/extensions/forms/constants/locales/nb-NO.d.ts +2 -1
  154. package/es/extensions/forms/constants/locales/nb-NO.js +3 -2
  155. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  156. package/es/extensions/forms/hooks/useFieldProps.d.ts +4 -2
  157. package/es/extensions/forms/hooks/useFieldProps.js +40 -9
  158. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  159. package/es/extensions/forms/hooks/useTranslation.d.ts +4 -1
  160. package/es/extensions/forms/hooks/useTranslation.js +7 -4
  161. package/es/extensions/forms/hooks/useTranslation.js.map +1 -1
  162. package/es/extensions/forms/hooks/useValueProps.d.ts +1 -1
  163. package/es/extensions/forms/hooks/useValueProps.js +2 -2
  164. package/es/extensions/forms/hooks/useValueProps.js.map +1 -1
  165. package/es/extensions/forms/style/dnb-forms.css +6 -0
  166. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  167. package/es/extensions/forms/types.d.ts +2 -1
  168. package/es/extensions/forms/types.js.map +1 -1
  169. package/es/shared/Context.d.ts +4 -4
  170. package/es/shared/Context.js.map +1 -1
  171. package/es/shared/Eufemia.d.ts +1 -1
  172. package/es/shared/Eufemia.js +2 -2
  173. package/es/shared/Eufemia.js.map +1 -1
  174. package/es/shared/defaults.d.ts +1 -0
  175. package/es/shared/defaults.js +1 -0
  176. package/es/shared/defaults.js.map +1 -1
  177. package/es/shared/useTranslation.d.ts +11 -4
  178. package/es/shared/useTranslation.js +64 -22
  179. package/es/shared/useTranslation.js.map +1 -1
  180. package/es/style/core/scopes.scss +1 -1
  181. package/es/style/dnb-ui-basis.css +1 -1
  182. package/es/style/dnb-ui-basis.min.css +1 -1
  183. package/es/style/dnb-ui-body.css +1 -1
  184. package/es/style/dnb-ui-body.min.css +1 -1
  185. package/es/style/dnb-ui-components.css +6 -0
  186. package/es/style/dnb-ui-components.min.css +1 -1
  187. package/es/style/dnb-ui-core.css +1 -1
  188. package/es/style/dnb-ui-core.min.css +1 -1
  189. package/es/style/dnb-ui-extensions.css +6 -0
  190. package/es/style/dnb-ui-extensions.min.css +1 -1
  191. package/es/style/dnb-ui-forms.css +6 -0
  192. package/es/style/dnb-ui-forms.min.css +1 -1
  193. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +12 -0
  194. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  195. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +6 -0
  196. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  197. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +6 -0
  198. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  199. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +12 -0
  200. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  201. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +6 -0
  202. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  203. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +6 -0
  204. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  205. package/es/style/themes/theme-ui/ui-theme-components.css +12 -0
  206. package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  207. package/es/style/themes/theme-ui/ui-theme-extensions.css +6 -0
  208. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  209. package/es/style/themes/theme-ui/ui-theme-forms.css +6 -0
  210. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  211. package/esm/dnb-ui-basis.min.mjs +1 -1
  212. package/esm/dnb-ui-components.min.mjs +1 -1
  213. package/esm/dnb-ui-elements.min.mjs +1 -1
  214. package/esm/dnb-ui-extensions.min.mjs +5 -5
  215. package/esm/dnb-ui-lib.min.mjs +1 -1
  216. package/extensions/forms/DataContext/Context.d.ts +1 -0
  217. package/extensions/forms/DataContext/Context.js.map +1 -1
  218. package/extensions/forms/DataContext/Provider/Provider.js +3 -4
  219. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  220. package/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +5 -1
  221. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  222. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.d.ts +3 -1
  223. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +52 -12
  224. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  225. package/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.d.ts +2 -0
  226. package/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.js +18 -0
  227. package/extensions/forms/Field/BankAccountNumber/BankAccountNumberDocs.js.map +1 -0
  228. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +10 -2
  229. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +59 -17
  230. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  231. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +5 -0
  232. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
  233. package/extensions/forms/Field/Slider/Slider.js +3 -1
  234. package/extensions/forms/Field/Slider/Slider.js.map +1 -1
  235. package/extensions/forms/FieldBlock/FieldBlock.js +21 -3
  236. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  237. package/extensions/forms/FieldBlock/FieldBlockDocs.js +2 -2
  238. package/extensions/forms/FieldBlock/FieldBlockDocs.js.map +1 -1
  239. package/extensions/forms/FieldBlock/style/dnb-field-block.css +6 -0
  240. package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  241. package/extensions/forms/FieldBlock/style/dnb-field-block.scss +6 -0
  242. package/extensions/forms/Iterate/Array/Array.js +52 -28
  243. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  244. package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js +4 -12
  245. package/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  246. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +29 -32
  247. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  248. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js +2 -2
  249. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js.map +1 -1
  250. package/extensions/forms/constants/locales/en-GB.d.ts +2 -1
  251. package/extensions/forms/constants/locales/en-GB.js +3 -2
  252. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  253. package/extensions/forms/constants/locales/en-US.d.ts +2 -1
  254. package/extensions/forms/constants/locales/index.d.ts +4 -2
  255. package/extensions/forms/constants/locales/nb-NO.d.ts +2 -1
  256. package/extensions/forms/constants/locales/nb-NO.js +3 -2
  257. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  258. package/extensions/forms/hooks/useFieldProps.d.ts +4 -2
  259. package/extensions/forms/hooks/useFieldProps.js +41 -9
  260. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  261. package/extensions/forms/hooks/useTranslation.d.ts +4 -1
  262. package/extensions/forms/hooks/useTranslation.js +7 -4
  263. package/extensions/forms/hooks/useTranslation.js.map +1 -1
  264. package/extensions/forms/hooks/useValueProps.d.ts +1 -1
  265. package/extensions/forms/hooks/useValueProps.js +2 -2
  266. package/extensions/forms/hooks/useValueProps.js.map +1 -1
  267. package/extensions/forms/style/dnb-forms.css +6 -0
  268. package/extensions/forms/style/dnb-forms.min.css +1 -1
  269. package/extensions/forms/types.d.ts +2 -1
  270. package/extensions/forms/types.js.map +1 -1
  271. package/package.json +1 -1
  272. package/shared/Context.d.ts +4 -4
  273. package/shared/Context.js.map +1 -1
  274. package/shared/Eufemia.d.ts +1 -1
  275. package/shared/Eufemia.js +2 -2
  276. package/shared/Eufemia.js.map +1 -1
  277. package/shared/defaults.d.ts +1 -0
  278. package/shared/defaults.js +1 -0
  279. package/shared/defaults.js.map +1 -1
  280. package/shared/useTranslation.d.ts +11 -4
  281. package/shared/useTranslation.js +64 -22
  282. package/shared/useTranslation.js.map +1 -1
  283. package/style/core/scopes.scss +1 -1
  284. package/style/dnb-ui-basis.css +1 -1
  285. package/style/dnb-ui-basis.min.css +1 -1
  286. package/style/dnb-ui-body.css +1 -1
  287. package/style/dnb-ui-body.min.css +1 -1
  288. package/style/dnb-ui-components.css +6 -0
  289. package/style/dnb-ui-components.min.css +1 -1
  290. package/style/dnb-ui-core.css +1 -1
  291. package/style/dnb-ui-core.min.css +1 -1
  292. package/style/dnb-ui-extensions.css +6 -0
  293. package/style/dnb-ui-extensions.min.css +1 -1
  294. package/style/dnb-ui-forms.css +6 -0
  295. package/style/dnb-ui-forms.min.css +1 -1
  296. package/style/themes/theme-eiendom/eiendom-theme-components.css +12 -0
  297. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  298. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +6 -0
  299. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  300. package/style/themes/theme-eiendom/eiendom-theme-forms.css +6 -0
  301. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  302. package/style/themes/theme-sbanken/sbanken-theme-components.css +12 -0
  303. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  304. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +6 -0
  305. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  306. package/style/themes/theme-sbanken/sbanken-theme-forms.css +6 -0
  307. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  308. package/style/themes/theme-ui/ui-theme-components.css +12 -0
  309. package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  310. package/style/themes/theme-ui/ui-theme-extensions.css +6 -0
  311. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  312. package/style/themes/theme-ui/ui-theme-forms.css +6 -0
  313. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  314. package/umd/dnb-ui-basis.min.js +1 -1
  315. package/umd/dnb-ui-components.min.js +1 -1
  316. package/umd/dnb-ui-elements.min.js +1 -1
  317. package/umd/dnb-ui-extensions.min.js +5 -5
  318. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"FieldBlock.js","names":["React","useMemo","useContext","useCallback","useRef","useReducer","useEffect","classnames","FieldBlockContext","DataContext","IterateElementContext","Space","FormLabel","FormStatus","Ul","Li","convertJsxToString","findElementInChildren","warn","useId","FormError","SubmitIndicator","createSharedState","useTranslation","states","FieldBlock","props","dataContext","nestedFieldBlockContext","sharedData","forId","id","_Object$assign","Object","assign","data","className","layout","composition","label","labelProp","labelDescription","labelSuffix","labelSrOnly","asFieldset","required","info","warning","error","errorProp","fieldState","disabled","width","contentWidth","align","labelSize","contentClassName","children","rest","_objectWithoutProperties","_excluded","iterateItemContext","index","iterateIndex","blockId","wasUpdated","forceUpdate","mountedFieldsRef","stateRecordRef","fieldStateIdsRef","contentsRef","hasInitiallyErrorProp","Boolean","optionalLabelSuffix","Field","labelSuffixText","content","undefined","replace","String","includes","isValidElement","createElement","Fragment","setInternalRecord","stateId","identifier","type","current","existingIndex","findIndex","item","_objectSpread","push","setFieldState","showFieldError","show","map","showInitially","statusContent","statesWithMessages","entries","flatMap","_ref","reduce","acc","cur","existing","find","message","getMessage","messages","state","width_element","no_animation","process","env","NODE_ENV","globalThis","IS_TEST","found","msg","filter","_ref2","i","arr","length","text","CombineMessages","mainClasses","gridClasses","enableFieldset","useEnableFieldset","labelProps","element","srOnly","space","top","bottom","size","prerenderFieldProps","hasLabelDescription","isFragment","fragmentHasChildren","fragmentHasOnlyUndefinedChildren","Provider","value","hasErrorProp","_extends","LabelDescription","ref","_ref3","result","count","child","_child$props","_child$type","_ref4","translations","errorSummary","stateSummary","_ref5","key","_ref6","Error","toString","fragment","Children","isUndefined","toArray","every","_supportsSpacingProps"],"sources":["../../../../../src/extensions/forms/FieldBlock/FieldBlock.tsx"],"sourcesContent":["import React, {\n useMemo,\n useContext,\n useCallback,\n useRef,\n useReducer,\n useEffect,\n} from 'react'\nimport classnames from 'classnames'\n\nimport FieldBlockContext, {\n StateWithMessage,\n StatesWithMessages,\n FieldErrorIdsRef,\n MountedFieldsRef,\n StateRecord,\n StateMessage,\n StateTypes,\n StatusContent,\n FieldBlockContextProps,\n StateBasis,\n} from './FieldBlockContext'\nimport DataContext from '../DataContext/Context'\nimport IterateElementContext from '../Iterate/IterateItemContext'\nimport { Space, FormLabel, FormStatus } from '../../../components'\nimport { Ul, Li } from '../../../elements'\nimport {\n convertJsxToString,\n findElementInChildren,\n warn,\n} from '../../../shared/component-helper'\nimport useId from '../../../shared/helpers/useId'\nimport {\n ComponentProps,\n FieldProps,\n FormError,\n SubmitState,\n Identifier,\n FieldBlockWidth,\n} from '../types'\nimport type { FormLabelAllProps } from '../../../components/FormLabel'\nimport SubmitIndicator from '../Form/SubmitIndicator/SubmitIndicator'\nimport { createSharedState } from '../../../shared/helpers/useSharedState'\nimport useTranslation from '../hooks/useTranslation'\n\nexport const states: Array<StateTypes> = ['error', 'info', 'warning']\n\nexport type Props = Pick<\n FieldProps,\n | keyof ComponentProps\n | 'layout'\n | 'label'\n | 'labelSuffix'\n | 'labelDescription'\n | 'info'\n | 'warning'\n | 'error'\n | 'disabled'\n> & {\n /** The id to link a element with */\n forId?: string\n /** Use true if you have more than one form element */\n asFieldset?: boolean\n /** use `true` to make the label only readable by screen readers. */\n labelSrOnly?: boolean\n /** Defines the layout of nested fields */\n composition?: FieldBlockContextProps['composition']\n /** Width of outer block element */\n width?: FieldBlockWidth\n /** Width of contents block, while label etc can be wider if space is available */\n contentWidth?: FieldBlockWidth\n /** For composition only: Align the contents vertically */\n align?: 'center' | 'bottom'\n /** Class name for the contents block */\n contentClassName?: string\n /** To show the SubmitIndicator during async validation */\n fieldState?: SubmitState\n /** Typography size */\n labelSize?: 'medium' | 'large'\n /** For internal use only */\n required?: boolean\n children?: React.ReactNode\n} & React.HTMLAttributes<HTMLDivElement>\n\nfunction FieldBlock(props: Props) {\n const dataContext = useContext(DataContext)\n const nestedFieldBlockContext = useContext(FieldBlockContext)\n\n const sharedData = createSharedState<Props>(\n 'field-block-props-' + (props.forId || props.id)\n )\n const {\n className,\n forId,\n layout = 'vertical',\n composition,\n label: labelProp,\n labelDescription,\n labelSuffix,\n labelSrOnly,\n asFieldset,\n required,\n info,\n warning,\n error: errorProp,\n fieldState,\n disabled,\n width,\n contentWidth,\n align,\n labelSize,\n contentClassName,\n children,\n ...rest\n } = Object.assign({}, sharedData.data, props)\n\n const iterateItemContext = useContext(IterateElementContext)\n const { index: iterateIndex } = iterateItemContext ?? {}\n\n const blockId = useId(props.id)\n const [wasUpdated, forceUpdate] = useReducer(() => ({}), {})\n const mountedFieldsRef = useRef<MountedFieldsRef>({})\n const stateRecordRef = useRef<StateRecord>({})\n const fieldStateIdsRef = useRef<FieldErrorIdsRef>(null)\n const contentsRef = useRef<HTMLDivElement>(null)\n const hasInitiallyErrorProp = useMemo(() => {\n return Boolean(errorProp)\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n const { optionalLabelSuffix } = useTranslation().Field\n const labelSuffixText = useMemo(() => {\n if (required === false || typeof labelSuffix !== 'undefined') {\n return labelSuffix ?? optionalLabelSuffix\n }\n return ''\n }, [required, labelSuffix, optionalLabelSuffix])\n\n const label = useMemo(() => {\n let content = labelProp\n\n if (iterateIndex !== undefined) {\n content = convertJsxToString(labelProp).replace(\n '{itemNo}',\n String(iterateIndex + 1)\n )\n }\n\n if (labelSuffixText) {\n if (convertJsxToString(content).includes(optionalLabelSuffix)) {\n return content\n }\n\n if (typeof content === 'string') {\n return content + ' ' + labelSuffixText\n }\n\n if (React.isValidElement(content)) {\n return (\n <>\n {content}\n {' '}\n {labelSuffixText}\n </>\n )\n }\n }\n\n return content\n }, [iterateIndex, labelProp, labelSuffixText])\n\n const setInternalRecord = useCallback((props: StateBasis) => {\n const { stateId, identifier, type } = props\n\n if (!stateRecordRef.current[identifier]) {\n stateRecordRef.current[identifier] = []\n }\n\n fieldStateIdsRef.current = { error: null, warning: null, info: null }\n\n const existingIndex = stateRecordRef.current[identifier].findIndex(\n (item) => {\n return item.stateId === stateId && item.type === type\n }\n )\n\n if (existingIndex > -1) {\n stateRecordRef.current[identifier][existingIndex] = {\n ...stateRecordRef.current[identifier][existingIndex],\n ...props,\n }\n } else {\n stateRecordRef.current[identifier].push(props)\n }\n }, [])\n\n const setFieldState = useCallback(\n (props: StateBasis) => {\n if (nestedFieldBlockContext) {\n // If this FieldBlock is inside another one, forward the call to the outer one\n nestedFieldBlockContext.setFieldState(props)\n return\n }\n\n setInternalRecord(props)\n\n forceUpdate()\n },\n [nestedFieldBlockContext, setInternalRecord]\n )\n\n const showFieldError = useCallback(\n (identifier: Identifier, show: boolean) => {\n if (nestedFieldBlockContext) {\n // If this FieldBlock is inside another one, forward the call to the outer one\n nestedFieldBlockContext.showFieldError(identifier, show)\n return\n }\n\n if (stateRecordRef.current[identifier]) {\n stateRecordRef.current[identifier] = stateRecordRef.current[\n identifier\n ].map((item) => {\n if (item.showInitially) {\n return item\n }\n\n return {\n ...item,\n show,\n }\n })\n\n forceUpdate()\n }\n },\n [nestedFieldBlockContext]\n )\n\n const statusContent = useMemo(() => {\n if (typeof errorProp !== 'undefined') {\n setInternalRecord({\n identifier: blockId,\n showInitially: hasInitiallyErrorProp,\n type: 'error',\n content: errorProp,\n })\n }\n\n if (typeof warning !== 'undefined') {\n setInternalRecord({\n identifier: blockId,\n showInitially: true,\n type: 'warning',\n content: warning,\n })\n }\n\n if (typeof info !== 'undefined') {\n setInternalRecord({\n identifier: blockId,\n showInitially: true,\n type: 'info',\n content: info,\n })\n }\n\n const statesWithMessages: Array<StatesWithMessages> =\n // 1. Prepare the states for later use\n Object.entries(stateRecordRef.current)\n .flatMap(([identifier, states]) =>\n states.map((props) => {\n return {\n identifier,\n ...props,\n }\n })\n )\n\n // 2. Take states and group the same type together\n .reduce((acc, cur) => {\n const existing = acc.find((item) => {\n return item.type === cur.type\n })\n\n const message = getMessage(cur)\n\n if (existing) {\n existing.messages.push({\n ...cur,\n message,\n })\n } else {\n acc.push({\n ...cur,\n content: undefined,\n messages: [\n {\n ...cur,\n message,\n },\n ],\n })\n }\n\n return acc\n }, [] as Array<StatesWithMessages>)\n\n // 3. Return the grouped states/messages\n return states.reduce((acc, type) => {\n const id = `${props.id || forId || blockId}-form-status--${type}`\n acc[type] = {\n id,\n label,\n state: type === 'warning' ? 'warn' : type,\n width_element: contentsRef,\n\n // Enable animation only in the browser and not in tests\n no_animation:\n process.env.NODE_ENV === 'test'\n ? true\n : typeof globalThis !== 'undefined'\n ? globalThis.IS_TEST === true\n : false,\n }\n\n const found = statesWithMessages.find((item) => {\n return item.type === type\n })\n\n if (found?.messages) {\n // Hide/remove messages that should be hidden and are not marked as to be shown initially\n const messages = found.messages\n .map((msg) => {\n if (msg.type === 'error') {\n if (!msg.showInitially && !msg.show) {\n msg.message = null\n }\n }\n\n return msg\n })\n .filter(({ message }) => message)\n .reduce((acc, msg, i, arr) => {\n const existingIndex = arr.findIndex((item) => {\n return (\n convertJsxToString(item.message) ===\n convertJsxToString(msg.message)\n )\n })\n\n // Remove duplicates, use the first found message\n if (existingIndex === i) {\n acc.push(msg)\n }\n\n return acc\n }, [])\n\n // Combine the messages and put them in an ul/li list\n if (messages.length > 0) {\n acc[type] = {\n ...acc[type],\n text: <CombineMessages type={type} messages={messages} />,\n }\n\n fieldStateIdsRef.current[type] = id\n } else {\n fieldStateIdsRef.current[type] = undefined\n }\n }\n\n return acc\n }, {}) as StatusContent\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n info,\n warning,\n errorProp,\n nestedFieldBlockContext,\n setInternalRecord,\n blockId,\n wasUpdated, // wasUpdated is needed to get the current errors\n ])\n\n // Handle the error prop from outside\n useEffect(() => {\n if (!nestedFieldBlockContext) {\n showFieldError(blockId, Boolean(errorProp))\n }\n }, [errorProp, blockId, showFieldError, nestedFieldBlockContext])\n\n useEffect(\n () => () => {\n mountedFieldsRef.current = {}\n stateRecordRef.current = {}\n },\n []\n )\n\n const mainClasses = classnames(\n 'dnb-forms-field-block',\n width !== undefined && `dnb-forms-field-block--width-${width}`,\n className\n )\n const gridClasses = classnames(\n 'dnb-forms-field-block__grid',\n `dnb-forms-field-block--layout-${layout}`\n )\n\n // A child component with a label was found, use fieldset/legend instead of div/label\n const enableFieldset = useEnableFieldset({\n label,\n asFieldset,\n children,\n nestedFieldBlockContext,\n })\n\n const labelProps: FormLabelAllProps = {\n element: enableFieldset ? 'legend' : 'label',\n forId: enableFieldset ? undefined : forId,\n srOnly: labelSrOnly,\n space: { top: 0, bottom: 'x-small' },\n size: labelSize,\n disabled,\n }\n\n if (dataContext?.prerenderFieldProps) {\n return null\n }\n\n if (fieldState && typeof label === 'undefined') {\n warn(\n 'Provide a label when using an async validator or onChange event.'\n )\n }\n\n const hasLabelDescription = isFragment(labelDescription)\n ? fragmentHasChildren(labelDescription) &&\n !fragmentHasOnlyUndefinedChildren(labelDescription)\n : labelDescription\n\n return (\n <FieldBlockContext.Provider\n value={{\n setFieldState,\n showFieldError,\n hasErrorProp: Boolean(errorProp),\n fieldStateIdsRef,\n mountedFieldsRef,\n composition,\n }}\n >\n <Space\n element={enableFieldset ? 'fieldset' : 'div'} // use fieldset and legend to enhance a11y\n className={mainClasses}\n {...rest}\n >\n <div className={gridClasses}>\n <LabelDescription labelDescription={labelDescription}>\n {(label || labelDescription) && (\n <FormLabel {...labelProps}>\n <SubmitIndicator state={fieldState}>\n {label}\n {hasLabelDescription && (\n <span className=\"dnb-forms-field-block__label-description\">\n {labelDescription}\n </span>\n )}\n </SubmitIndicator>\n </FormLabel>\n )}\n </LabelDescription>\n\n <div className=\"dnb-forms-field-block__status\">\n <FormStatus {...statusContent?.error} />\n <FormStatus {...statusContent?.warning} />\n <FormStatus {...statusContent?.info} />\n </div>\n\n <div\n className={classnames(\n 'dnb-forms-field-block__contents',\n contentWidth &&\n `dnb-forms-field-block__contents--width-${contentWidth}`,\n align && `dnb-forms-field-block__contents--align-${align}`,\n composition &&\n `dnb-forms-field-block__contents__composition--${\n composition === true ? 'horizontal' : composition\n }`,\n contentClassName\n )}\n ref={contentsRef}\n >\n {children}\n </div>\n </div>\n </Space>\n </FieldBlockContext.Provider>\n )\n}\n\nfunction useEnableFieldset({\n label,\n asFieldset,\n children,\n nestedFieldBlockContext,\n}) {\n return useMemo(() => {\n if (asFieldset === false) {\n return false\n }\n\n let result = asFieldset\n\n if (label && !result && !nestedFieldBlockContext) {\n let count = 0\n\n findElementInChildren(children, (child: React.ReactElement) => {\n if (\n child?.props?.label ||\n child?.type?.['_formElement'] === true\n ) {\n count++\n }\n if (count > 1) {\n return (result = true)\n }\n })\n }\n\n return Boolean(result)\n }, [asFieldset, children, label, nestedFieldBlockContext])\n}\n\nfunction CombineMessages({\n type,\n messages,\n}: {\n type: StateTypes\n messages: Array<StateWithMessage>\n}) {\n const translations = useTranslation().Field\n\n if (messages.length === 1) {\n return <>{messages[0].message}</>\n }\n\n return (\n <>\n {type === 'error'\n ? translations.errorSummary\n : translations.stateSummary}\n <Ul>\n {messages.map(({ message }, i) => {\n return <Li key={i}>{message}</Li>\n })}\n </Ul>\n </>\n )\n}\n\nfunction LabelDescription({ labelDescription, children }) {\n if (!labelDescription) {\n return children ?? null\n }\n return <div className=\"dnb-forms-field-block__label\">{children}</div>\n}\n\nexport function getMessage(item: Partial<StateWithMessage>): StateMessage {\n const { content } = item\n\n return ((content instanceof Error && content.message) ||\n (content instanceof FormError && content.message) ||\n content?.toString() ||\n content) as StateMessage\n}\n\nfunction isFragment(fragment: React.ReactNode) {\n return React.isValidElement(fragment) && fragment.type === React.Fragment\n}\n\nfunction fragmentHasChildren(fragment: React.ReactNode) {\n return (\n React.isValidElement(fragment) &&\n React.Children.count(fragment.props.children) > 0\n )\n}\n\nfunction fragmentHasOnlyUndefinedChildren(fragment: React.ReactNode) {\n const isUndefined = (child) => child === undefined\n\n return (\n React.isValidElement(fragment) &&\n React.Children.toArray(fragment.props.children).every(isUndefined)\n )\n}\n\nFieldBlock._supportsSpacingProps = true\n\nexport default FieldBlock\n"],"mappings":"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"}
1
+ {"version":3,"file":"FieldBlock.js","names":["React","useMemo","useContext","useCallback","useRef","useReducer","useEffect","classnames","FieldBlockContext","DataContext","IterateElementContext","Space","FormLabel","FormStatus","Ul","Li","convertJsxToString","findElementInChildren","warn","useId","FormError","SubmitIndicator","createSharedState","useTranslation","states","FieldBlock","props","dataContext","nestedFieldBlockContext","sharedData","forId","id","_Object$assign","Object","assign","data","className","layout","composition","label","labelProp","labelDescription","labelSuffix","labelSrOnly","asFieldset","required","info","warning","error","errorProp","fieldState","disabled","width","contentWidth","align","labelSize","contentClassName","children","rest","_objectWithoutProperties","_excluded","hasCustomWidth","test","String","hasCustomContentWidth","iterateItemContext","index","iterateIndex","blockId","wasUpdated","forceUpdate","mountedFieldsRef","stateRecordRef","fieldStateIdsRef","contentsRef","hasInitiallyErrorProp","Boolean","optionalLabelSuffix","Field","labelSuffixText","content","undefined","replace","includes","isValidElement","createElement","Fragment","setInternalRecord","stateId","identifier","type","current","existingIndex","findIndex","item","_objectSpread","push","setFieldState","showFieldError","show","map","showInitially","statusContent","statesWithMessages","entries","flatMap","_ref","reduce","acc","cur","existing","find","message","getMessage","messages","state","width_element","no_animation","process","env","NODE_ENV","globalThis","IS_TEST","found","msg","filter","_ref2","i","arr","length","text","CombineMessages","mainClasses","gridClasses","enableFieldset","useEnableFieldset","labelProps","element","srOnly","space","top","bottom","size","mainStyle","contentsStyle","prerenderFieldProps","hasLabelDescription","isFragment","fragmentHasChildren","fragmentHasOnlyUndefinedChildren","Provider","value","hasErrorProp","_extends","style","LabelDescription","ref","_ref3","result","count","child","_child$props","_child$type","_ref4","translations","errorSummary","stateSummary","_ref5","key","_ref6","Error","toString","fragment","Children","isUndefined","toArray","every","_supportsSpacingProps"],"sources":["../../../../../src/extensions/forms/FieldBlock/FieldBlock.tsx"],"sourcesContent":["import React, {\n useMemo,\n useContext,\n useCallback,\n useRef,\n useReducer,\n useEffect,\n} from 'react'\nimport classnames from 'classnames'\nimport FieldBlockContext, {\n StateWithMessage,\n StatesWithMessages,\n FieldErrorIdsRef,\n MountedFieldsRef,\n StateRecord,\n StateMessage,\n StateTypes,\n StatusContent,\n FieldBlockContextProps,\n StateBasis,\n} from './FieldBlockContext'\nimport DataContext from '../DataContext/Context'\nimport IterateElementContext from '../Iterate/IterateItemContext'\nimport { Space, FormLabel, FormStatus } from '../../../components'\nimport { Ul, Li } from '../../../elements'\nimport {\n convertJsxToString,\n findElementInChildren,\n warn,\n} from '../../../shared/component-helper'\nimport useId from '../../../shared/helpers/useId'\nimport {\n ComponentProps,\n FieldProps,\n FormError,\n SubmitState,\n Identifier,\n FieldBlockWidth,\n} from '../types'\nimport type { FormLabelAllProps } from '../../../components/FormLabel'\nimport SubmitIndicator from '../Form/SubmitIndicator/SubmitIndicator'\nimport { createSharedState } from '../../../shared/helpers/useSharedState'\nimport useTranslation from '../hooks/useTranslation'\n\nexport const states: Array<StateTypes> = ['error', 'info', 'warning']\n\nexport type Props = Pick<\n FieldProps,\n | keyof ComponentProps\n | 'layout'\n | 'label'\n | 'labelSuffix'\n | 'labelDescription'\n | 'info'\n | 'warning'\n | 'error'\n | 'disabled'\n> & {\n /** The id to link a element with */\n forId?: string\n /** Use true if you have more than one form element */\n asFieldset?: boolean\n /** use `true` to make the label only readable by screen readers. */\n labelSrOnly?: boolean\n /** Defines the layout of nested fields */\n composition?: FieldBlockContextProps['composition']\n /** Width of outer block element */\n width?: FieldBlockWidth\n /** Width of contents block, while label etc can be wider if space is available */\n contentWidth?: FieldBlockWidth\n /** For composition only: Align the contents vertically */\n align?: 'center' | 'bottom'\n /** Class name for the contents block */\n contentClassName?: string\n /** To show the SubmitIndicator during async validation */\n fieldState?: SubmitState\n /** Typography size */\n labelSize?: 'medium' | 'large'\n /** For internal use only */\n required?: boolean\n children?: React.ReactNode\n} & React.HTMLAttributes<HTMLDivElement>\n\nfunction FieldBlock(props: Props) {\n const dataContext = useContext(DataContext)\n const nestedFieldBlockContext = useContext(FieldBlockContext)\n\n const sharedData = createSharedState<Props>(\n 'field-block-props-' + (props.forId || props.id)\n )\n const {\n className,\n forId,\n layout = 'vertical',\n composition,\n label: labelProp,\n labelDescription,\n labelSuffix,\n labelSrOnly,\n asFieldset,\n required,\n info,\n warning,\n error: errorProp,\n fieldState,\n disabled,\n width,\n contentWidth,\n align,\n labelSize,\n contentClassName,\n children,\n ...rest\n } = Object.assign({}, sharedData.data, props)\n const hasCustomWidth = /\\d(rem)$/.test(String(width))\n const hasCustomContentWidth = /\\d(rem)$/.test(String(contentWidth))\n\n const iterateItemContext = useContext(IterateElementContext)\n const { index: iterateIndex } = iterateItemContext ?? {}\n\n const blockId = useId(props.id)\n const [wasUpdated, forceUpdate] = useReducer(() => ({}), {})\n const mountedFieldsRef = useRef<MountedFieldsRef>({})\n const stateRecordRef = useRef<StateRecord>({})\n const fieldStateIdsRef = useRef<FieldErrorIdsRef>(null)\n const contentsRef = useRef<HTMLDivElement>(null)\n const hasInitiallyErrorProp = useMemo(() => {\n return Boolean(errorProp)\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n const { optionalLabelSuffix } = useTranslation().Field\n const labelSuffixText = useMemo(() => {\n if (required === false || typeof labelSuffix !== 'undefined') {\n return labelSuffix ?? optionalLabelSuffix\n }\n return ''\n }, [required, labelSuffix, optionalLabelSuffix])\n\n const label = useMemo(() => {\n let content = labelProp\n\n if (iterateIndex !== undefined) {\n content = convertJsxToString(labelProp).replace(\n '{itemNo}',\n String(iterateIndex + 1)\n )\n }\n\n if (labelSuffixText) {\n if (convertJsxToString(content).includes(optionalLabelSuffix)) {\n return content\n }\n\n if (typeof content === 'string') {\n return content + ' ' + labelSuffixText\n }\n\n if (React.isValidElement(content)) {\n return (\n <>\n {content}\n {' '}\n {labelSuffixText}\n </>\n )\n }\n }\n\n return content\n }, [iterateIndex, labelProp, labelSuffixText, optionalLabelSuffix])\n\n const setInternalRecord = useCallback((props: StateBasis) => {\n const { stateId, identifier, type } = props\n\n if (!stateRecordRef.current[identifier]) {\n stateRecordRef.current[identifier] = []\n }\n\n fieldStateIdsRef.current = { error: null, warning: null, info: null }\n\n const existingIndex = stateRecordRef.current[identifier].findIndex(\n (item) => {\n return item.stateId === stateId && item.type === type\n }\n )\n\n if (existingIndex > -1) {\n stateRecordRef.current[identifier][existingIndex] = {\n ...stateRecordRef.current[identifier][existingIndex],\n ...props,\n }\n } else {\n stateRecordRef.current[identifier].push(props)\n }\n }, [])\n\n const setFieldState = useCallback(\n (props: StateBasis) => {\n if (nestedFieldBlockContext) {\n // If this FieldBlock is inside another one, forward the call to the outer one\n nestedFieldBlockContext.setFieldState(props)\n return\n }\n\n setInternalRecord(props)\n\n forceUpdate()\n },\n [nestedFieldBlockContext, setInternalRecord]\n )\n\n const showFieldError = useCallback(\n (identifier: Identifier, show: boolean) => {\n if (nestedFieldBlockContext) {\n // If this FieldBlock is inside another one, forward the call to the outer one\n nestedFieldBlockContext.showFieldError(identifier, show)\n return\n }\n\n if (stateRecordRef.current[identifier]) {\n stateRecordRef.current[identifier] = stateRecordRef.current[\n identifier\n ].map((item) => {\n if (item.showInitially) {\n return item\n }\n\n return {\n ...item,\n show,\n }\n })\n\n forceUpdate()\n }\n },\n [nestedFieldBlockContext]\n )\n\n const statusContent = useMemo(() => {\n if (typeof errorProp !== 'undefined') {\n setInternalRecord({\n identifier: blockId,\n showInitially: hasInitiallyErrorProp,\n type: 'error',\n content: errorProp,\n })\n }\n\n if (typeof warning !== 'undefined') {\n setInternalRecord({\n identifier: blockId,\n showInitially: true,\n type: 'warning',\n content: warning,\n })\n }\n\n if (typeof info !== 'undefined') {\n setInternalRecord({\n identifier: blockId,\n showInitially: true,\n type: 'info',\n content: info,\n })\n }\n\n const statesWithMessages: Array<StatesWithMessages> =\n // 1. Prepare the states for later use\n Object.entries(stateRecordRef.current)\n .flatMap(([identifier, states]) =>\n states.map((props) => {\n return {\n identifier,\n ...props,\n }\n })\n )\n\n // 2. Take states and group the same type together\n .reduce((acc, cur) => {\n const existing = acc.find((item) => {\n return item.type === cur.type\n })\n\n const message = getMessage(cur)\n\n if (existing) {\n existing.messages.push({\n ...cur,\n message,\n })\n } else {\n acc.push({\n ...cur,\n content: undefined,\n messages: [\n {\n ...cur,\n message,\n },\n ],\n })\n }\n\n return acc\n }, [] as Array<StatesWithMessages>)\n\n // 3. Return the grouped states/messages\n return states.reduce((acc, type) => {\n const id = `${props.id || forId || blockId}-form-status--${type}`\n acc[type] = {\n id,\n label,\n state: type === 'warning' ? 'warn' : type,\n width_element: contentsRef,\n\n // Enable animation only in the browser and not in tests\n no_animation:\n process.env.NODE_ENV === 'test'\n ? true\n : typeof globalThis !== 'undefined'\n ? globalThis.IS_TEST === true\n : false,\n }\n\n const found = statesWithMessages.find((item) => {\n return item.type === type\n })\n\n if (found?.messages) {\n // Hide/remove messages that should be hidden and are not marked as to be shown initially\n const messages = found.messages\n .map((msg) => {\n if (msg.type === 'error') {\n if (!msg.showInitially && !msg.show) {\n msg.message = null\n }\n }\n\n return msg\n })\n .filter(({ message }) => message)\n .reduce((acc, msg, i, arr) => {\n const existingIndex = arr.findIndex((item) => {\n return (\n convertJsxToString(item.message) ===\n convertJsxToString(msg.message)\n )\n })\n\n // Remove duplicates, use the first found message\n if (existingIndex === i) {\n acc.push(msg)\n }\n\n return acc\n }, [])\n\n // Combine the messages and put them in an ul/li list\n if (messages.length > 0) {\n acc[type] = {\n ...acc[type],\n text: <CombineMessages type={type} messages={messages} />,\n }\n\n fieldStateIdsRef.current[type] = id\n } else {\n fieldStateIdsRef.current[type] = undefined\n }\n }\n\n return acc\n }, {}) as StatusContent\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n info,\n warning,\n errorProp,\n nestedFieldBlockContext,\n setInternalRecord,\n blockId,\n wasUpdated, // wasUpdated is needed to get the current errors\n ])\n\n // Handle the error prop from outside\n useEffect(() => {\n if (!nestedFieldBlockContext) {\n showFieldError(blockId, Boolean(errorProp))\n }\n }, [errorProp, blockId, showFieldError, nestedFieldBlockContext])\n\n useEffect(\n () => () => {\n mountedFieldsRef.current = {}\n stateRecordRef.current = {}\n },\n []\n )\n\n const mainClasses = classnames(\n 'dnb-forms-field-block',\n width &&\n `dnb-forms-field-block--width-${hasCustomWidth ? 'custom' : width}`,\n className\n )\n const gridClasses = classnames(\n 'dnb-forms-field-block__grid',\n `dnb-forms-field-block--layout-${layout}`\n )\n\n // A child component with a label was found, use fieldset/legend instead of div/label\n const enableFieldset = useEnableFieldset({\n label,\n asFieldset,\n children,\n nestedFieldBlockContext,\n })\n\n const labelProps: FormLabelAllProps = {\n element: enableFieldset ? 'legend' : 'label',\n forId: enableFieldset ? undefined : forId,\n srOnly: labelSrOnly,\n space: { top: 0, bottom: 'x-small' },\n size: labelSize,\n disabled,\n }\n\n const mainStyle = useMemo(() => {\n if (hasCustomWidth) {\n return {\n '--dnb-forms-field-block-width': width,\n } as React.CSSProperties\n }\n }, [hasCustomWidth, width])\n\n const contentsStyle = useMemo(() => {\n if (hasCustomContentWidth) {\n return {\n '--dnb-forms-field-block-content-width': contentWidth,\n } as React.CSSProperties\n }\n }, [contentWidth, hasCustomContentWidth])\n\n if (dataContext?.prerenderFieldProps) {\n return null\n }\n\n if (fieldState && typeof label === 'undefined') {\n warn(\n 'Provide a label when using an async validator or onChange event.'\n )\n }\n\n const hasLabelDescription = isFragment(labelDescription)\n ? fragmentHasChildren(labelDescription) &&\n !fragmentHasOnlyUndefinedChildren(labelDescription)\n : labelDescription\n\n return (\n <FieldBlockContext.Provider\n value={{\n setFieldState,\n showFieldError,\n hasErrorProp: Boolean(errorProp),\n fieldStateIdsRef,\n mountedFieldsRef,\n composition,\n }}\n >\n <Space\n element={enableFieldset ? 'fieldset' : 'div'} // use fieldset and legend to enhance a11y\n style={mainStyle}\n className={mainClasses}\n {...rest}\n >\n <div className={gridClasses}>\n <LabelDescription labelDescription={labelDescription}>\n {(label || labelDescription) && (\n <FormLabel {...labelProps}>\n <SubmitIndicator state={fieldState}>\n {label}\n {hasLabelDescription && (\n <span className=\"dnb-forms-field-block__label-description\">\n {labelDescription}\n </span>\n )}\n </SubmitIndicator>\n </FormLabel>\n )}\n </LabelDescription>\n\n <div className=\"dnb-forms-field-block__status\">\n <FormStatus {...statusContent?.error} />\n <FormStatus {...statusContent?.warning} />\n <FormStatus {...statusContent?.info} />\n </div>\n\n <div\n style={contentsStyle}\n className={classnames(\n 'dnb-forms-field-block__contents',\n contentWidth &&\n `dnb-forms-field-block__contents--width-${\n hasCustomContentWidth ? 'custom' : contentWidth\n }`,\n align && `dnb-forms-field-block__contents--align-${align}`,\n composition &&\n `dnb-forms-field-block__contents__composition--${\n composition === true ? 'horizontal' : composition\n }`,\n contentClassName\n )}\n ref={contentsRef}\n >\n {children}\n </div>\n </div>\n </Space>\n </FieldBlockContext.Provider>\n )\n}\n\nfunction useEnableFieldset({\n label,\n asFieldset,\n children,\n nestedFieldBlockContext,\n}) {\n return useMemo(() => {\n if (asFieldset === false) {\n return false\n }\n\n let result = asFieldset\n\n if (label && !result && !nestedFieldBlockContext) {\n let count = 0\n\n findElementInChildren(children, (child: React.ReactElement) => {\n if (\n child?.props?.label ||\n child?.type?.['_formElement'] === true\n ) {\n count++\n }\n if (count > 1) {\n return (result = true)\n }\n })\n }\n\n return Boolean(result)\n }, [asFieldset, children, label, nestedFieldBlockContext])\n}\n\nfunction CombineMessages({\n type,\n messages,\n}: {\n type: StateTypes\n messages: Array<StateWithMessage>\n}) {\n const translations = useTranslation().Field\n\n if (messages.length === 1) {\n return <>{messages[0].message}</>\n }\n\n return (\n <>\n {type === 'error'\n ? translations.errorSummary\n : translations.stateSummary}\n <Ul>\n {messages.map(({ message }, i) => {\n return <Li key={i}>{message}</Li>\n })}\n </Ul>\n </>\n )\n}\n\nfunction LabelDescription({ labelDescription, children }) {\n if (!labelDescription) {\n return children ?? null\n }\n return <div className=\"dnb-forms-field-block__label\">{children}</div>\n}\n\nexport function getMessage(item: Partial<StateWithMessage>): StateMessage {\n const { content } = item\n\n return ((content instanceof Error && content.message) ||\n (content instanceof FormError && content.message) ||\n content?.toString() ||\n content) as StateMessage\n}\n\nfunction isFragment(fragment: React.ReactNode) {\n return React.isValidElement(fragment) && fragment.type === React.Fragment\n}\n\nfunction fragmentHasChildren(fragment: React.ReactNode) {\n return (\n React.isValidElement(fragment) &&\n React.Children.count(fragment.props.children) > 0\n )\n}\n\nfunction fragmentHasOnlyUndefinedChildren(fragment: React.ReactNode) {\n const isUndefined = (child) => child === undefined\n\n return (\n React.isValidElement(fragment) &&\n React.Children.toArray(fragment.props.children).every(isUndefined)\n )\n}\n\nFieldBlock._supportsSpacingProps = true\n\nexport default FieldBlock\n"],"mappings":"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"}
@@ -23,12 +23,12 @@ export const fieldBlockSharedProperties = {
23
23
  status: 'optional'
24
24
  },
25
25
  width: {
26
- doc: '`small`, `medium`, `large`, `stretch` or `false` for predefined standard widths.',
26
+ doc: 'Will set the width for the whole block. Use `small`, `medium`, `large` for predefined standard widths. You can also set a custom width `{number}rem` or use `stretch` or `false`.',
27
27
  type: ['string', 'false'],
28
28
  status: 'optional'
29
29
  },
30
30
  contentWidth: {
31
- doc: '`small`, `medium`, `large`, `stretch` or `false` for predefined standard widths.',
31
+ doc: 'Will set the width for its contents. Use `small`, `medium`, `large` for predefined standard widths. You can also set a custom width `{number}rem` or use `stretch` or `false`.',
32
32
  type: ['string', 'false'],
33
33
  status: 'optional'
34
34
  },
@@ -1 +1 @@
1
- {"version":3,"file":"FieldBlockDocs.js","names":["fieldBlockSharedProperties","label","doc","type","status","labelDescription","labelSrOnly","layout","width","contentWidth","fieldBlockProperties","_objectSpread","labelSize","asFieldset","align","composition","disabled"],"sources":["../../../../../src/extensions/forms/FieldBlock/FieldBlockDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../shared/types'\n\nexport const fieldBlockSharedProperties: PropertiesTableProps = {\n label: {\n doc: 'Field label to show above / before the input feature.',\n type: 'string',\n status: 'optional',\n },\n labelDescription: {\n doc: 'A more discreet text displayed beside the label (i.e for \"(optional)\").',\n type: 'string',\n status: 'optional',\n },\n labelSrOnly: {\n doc: 'Use `true` to make the label only readable by screen readers.',\n type: 'boolean',\n status: 'optional',\n },\n layout: {\n doc: 'Layout for the label and input. Can be `horizontal` or `vertical`.',\n type: 'string',\n status: 'optional',\n },\n width: {\n doc: '`small`, `medium`, `large`, `stretch` or `false` for predefined standard widths.',\n type: ['string', 'false'],\n status: 'optional',\n },\n contentWidth: {\n doc: '`small`, `medium`, `large`, `stretch` or `false` for predefined standard widths.',\n type: ['string', 'false'],\n status: 'optional',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n\nexport const fieldBlockProperties: PropertiesTableProps = {\n ...fieldBlockSharedProperties,\n labelSize: {\n doc: 'Define one of the following [heading sizes](/uilib/elements/heading/): `medium` or `large`.',\n type: ['string', 'false'],\n status: 'optional',\n },\n asFieldset: {\n doc: 'Use `true` when you have several form elements. This way a `fieldset` with a `legend` is used.',\n type: 'boolean',\n status: 'optional',\n },\n align: {\n doc: '`center` or `bottom` for aligning the contents vertically. Defaults to `bottom`.',\n type: ['string', 'false'],\n status: 'optional',\n },\n composition: {\n doc: 'Use `true` for when you have more than one field wrapped.',\n type: 'string',\n status: 'optional',\n },\n disabled: {\n doc: 'Set `true` to make the inner [FormLabel](/uilib/components/form-label/) behave as disabled.',\n type: 'boolean',\n status: 'optional',\n },\n}\n"],"mappings":";;;AAEA,OAAO,MAAMA,0BAAgD,GAAG;EAC9DC,KAAK,EAAE;IACLC,GAAG,EAAE,uDAAuD;IAC5DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,gBAAgB,EAAE;IAChBH,GAAG,EAAE,yEAAyE;IAC9EC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,WAAW,EAAE;IACXJ,GAAG,EAAE,+DAA+D;IACpEC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDG,MAAM,EAAE;IACNL,GAAG,EAAE,oEAAoE;IACzEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,KAAK,EAAE;IACLN,GAAG,EAAE,kFAAkF;IACvFC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDK,YAAY,EAAE;IACZP,GAAG,EAAE,kFAAkF;IACvFC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCF,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMM,oBAA0C,GAAAC,aAAA,CAAAA,aAAA,KAClDX,0BAA0B;EAC7BY,SAAS,EAAE;IACTV,GAAG,EAAE,6FAA6F;IAClGC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDS,UAAU,EAAE;IACVX,GAAG,EAAE,gGAAgG;IACrGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDU,KAAK,EAAE;IACLZ,GAAG,EAAE,kFAAkF;IACvFC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDW,WAAW,EAAE;IACXb,GAAG,EAAE,2DAA2D;IAChEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDY,QAAQ,EAAE;IACRd,GAAG,EAAE,6FAA6F;IAClGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV;AAAC,EACF"}
1
+ {"version":3,"file":"FieldBlockDocs.js","names":["fieldBlockSharedProperties","label","doc","type","status","labelDescription","labelSrOnly","layout","width","contentWidth","fieldBlockProperties","_objectSpread","labelSize","asFieldset","align","composition","disabled"],"sources":["../../../../../src/extensions/forms/FieldBlock/FieldBlockDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../shared/types'\n\nexport const fieldBlockSharedProperties: PropertiesTableProps = {\n label: {\n doc: 'Field label to show above / before the input feature.',\n type: 'string',\n status: 'optional',\n },\n labelDescription: {\n doc: 'A more discreet text displayed beside the label (i.e for \"(optional)\").',\n type: 'string',\n status: 'optional',\n },\n labelSrOnly: {\n doc: 'Use `true` to make the label only readable by screen readers.',\n type: 'boolean',\n status: 'optional',\n },\n layout: {\n doc: 'Layout for the label and input. Can be `horizontal` or `vertical`.',\n type: 'string',\n status: 'optional',\n },\n width: {\n doc: 'Will set the width for the whole block. Use `small`, `medium`, `large` for predefined standard widths. You can also set a custom width `{number}rem` or use `stretch` or `false`.',\n type: ['string', 'false'],\n status: 'optional',\n },\n contentWidth: {\n doc: 'Will set the width for its contents. Use `small`, `medium`, `large` for predefined standard widths. You can also set a custom width `{number}rem` or use `stretch` or `false`.',\n type: ['string', 'false'],\n status: 'optional',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n\nexport const fieldBlockProperties: PropertiesTableProps = {\n ...fieldBlockSharedProperties,\n labelSize: {\n doc: 'Define one of the following [heading sizes](/uilib/elements/heading/): `medium` or `large`.',\n type: ['string', 'false'],\n status: 'optional',\n },\n asFieldset: {\n doc: 'Use `true` when you have several form elements. This way a `fieldset` with a `legend` is used.',\n type: 'boolean',\n status: 'optional',\n },\n align: {\n doc: '`center` or `bottom` for aligning the contents vertically. Defaults to `bottom`.',\n type: ['string', 'false'],\n status: 'optional',\n },\n composition: {\n doc: 'Use `true` for when you have more than one field wrapped.',\n type: 'string',\n status: 'optional',\n },\n disabled: {\n doc: 'Set `true` to make the inner [FormLabel](/uilib/components/form-label/) behave as disabled.',\n type: 'boolean',\n status: 'optional',\n },\n}\n"],"mappings":";;;AAEA,OAAO,MAAMA,0BAAgD,GAAG;EAC9DC,KAAK,EAAE;IACLC,GAAG,EAAE,uDAAuD;IAC5DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,gBAAgB,EAAE;IAChBH,GAAG,EAAE,yEAAyE;IAC9EC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,WAAW,EAAE;IACXJ,GAAG,EAAE,+DAA+D;IACpEC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDG,MAAM,EAAE;IACNL,GAAG,EAAE,oEAAoE;IACzEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,KAAK,EAAE;IACLN,GAAG,EAAE,mLAAmL;IACxLC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDK,YAAY,EAAE;IACZP,GAAG,EAAE,gLAAgL;IACrLC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCF,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMM,oBAA0C,GAAAC,aAAA,CAAAA,aAAA,KAClDX,0BAA0B;EAC7BY,SAAS,EAAE;IACTV,GAAG,EAAE,6FAA6F;IAClGC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDS,UAAU,EAAE;IACVX,GAAG,EAAE,gGAAgG;IACrGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDU,KAAK,EAAE;IACLZ,GAAG,EAAE,kFAAkF;IACvFC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDW,WAAW,EAAE;IACXb,GAAG,EAAE,2DAA2D;IAChEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDY,QAAQ,EAAE;IACRd,GAAG,EAAE,6FAA6F;IAClGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV;AAAC,EACF"}
@@ -55,6 +55,9 @@ fieldset.dnb-forms-field-block:not([class*=space__left]) {
55
55
  flex-grow: 1;
56
56
  }
57
57
  @media screen and (min-width: 25.00625em) {
58
+ .dnb-forms-field-block--width-custom {
59
+ width: calc(var(--dnb-forms-field-block-width));
60
+ }
58
61
  .dnb-forms-field-block--width-small {
59
62
  width: var(--forms-field-width--small);
60
63
  }
@@ -94,6 +97,9 @@ fieldset.dnb-forms-field-block:not([class*=space__left]) {
94
97
  width: 100%;
95
98
  }
96
99
  @media screen and (min-width: 25.00625em) {
100
+ .dnb-forms-field-block__contents--width-custom {
101
+ width: calc(var(--dnb-forms-field-block-content-width));
102
+ }
97
103
  .dnb-forms-field-block__contents--width-small {
98
104
  width: var(--forms-field-width--small);
99
105
  }
@@ -1 +1 @@
1
- :root{--forms-field-width--small:5rem;--forms-field-width--medium:11rem;--forms-field-width--large:21rem}@media screen and (max-width:15em){.dnb-forms-field-number .dnb-input__shell,.dnb-forms-field-string .dnb-input__shell{width:90%}}fieldset.dnb-forms-field-block{border:none;padding:0}fieldset.dnb-forms-field-block:not([class*=space__top]){margin-top:0}fieldset.dnb-forms-field-block:not([class*=space__right]){margin-right:0}fieldset.dnb-forms-field-block:not([class*=space__bottom]){margin-bottom:0}fieldset.dnb-forms-field-block:not([class*=space__left]){margin-left:0}.dnb-forms-field-block__grid{display:grid}@media screen and (max-width:40em){.dnb-forms-field-block--layout-vertical .dnb-forms-field-block__grid{flex-wrap:wrap}.dnb-forms-field-block--layout-vertical .dnb-forms-field-block__grid>.dnb-form-label{margin-bottom:.5rem;margin-top:.5rem}}.dnb-forms-field-block--layout-vertical{grid-template-areas:"label" "contents" "status";grid-template-columns:auto}.dnb-forms-field-block--layout-horizontal{grid-template-areas:"label contents" "status status";grid-template-columns:fit-content(100%) auto}.dnb-forms-field-block--width-stretch{flex-grow:1}@media screen and (min-width:25.00625em){.dnb-forms-field-block--width-small{width:var(--forms-field-width--small)}.dnb-forms-field-block--width-medium{width:var(--forms-field-width--medium)}.dnb-forms-field-block--width-large{width:var(--forms-field-width--large)}}.dnb-forms-field-block__label{align-items:center;display:flex;flex-flow:row;grid-area:label;justify-content:space-between}.dnb-forms-field-block__label-description{margin-left:.3em}.dnb-forms-field-block__status{grid-area:status}.dnb-forms-field-block__status .dnb-form-status__shell{margin-top:.5rem}@media screen and (max-width:15em){.dnb-forms-field-block__status{width:90%}}.dnb-forms-field-block__contents{grid-area:contents;width:100%}.dnb-forms-field-block__contents--width-stretch{width:100%}@media screen and (min-width:25.00625em){.dnb-forms-field-block__contents--width-small{width:var(--forms-field-width--small)}.dnb-forms-field-block__contents--width-medium{width:var(--forms-field-width--medium)}.dnb-forms-field-block__contents--width-large{width:var(--forms-field-width--large)}}.dnb-forms-field-block__contents__composition--vertical{display:flex;flex-flow:column;row-gap:var(--spacing-small)}.dnb-forms-field-block__contents__composition--horizontal{-moz-column-gap:var(--spacing-small);column-gap:var(--spacing-small);display:flex;flex-flow:row}@media screen and (min-width:25.00625em){.dnb-forms-field-block__contents__composition--horizontal{align-items:flex-end}.dnb-forms-field-block__contents__composition--horizontal[class*=align-center]{align-items:center}}@media screen and (max-width:25em){.dnb-forms-field-block__contents__composition--horizontal{flex-flow:column;row-gap:var(--spacing-x-small)}}
1
+ :root{--forms-field-width--small:5rem;--forms-field-width--medium:11rem;--forms-field-width--large:21rem}@media screen and (max-width:15em){.dnb-forms-field-number .dnb-input__shell,.dnb-forms-field-string .dnb-input__shell{width:90%}}fieldset.dnb-forms-field-block{border:none;padding:0}fieldset.dnb-forms-field-block:not([class*=space__top]){margin-top:0}fieldset.dnb-forms-field-block:not([class*=space__right]){margin-right:0}fieldset.dnb-forms-field-block:not([class*=space__bottom]){margin-bottom:0}fieldset.dnb-forms-field-block:not([class*=space__left]){margin-left:0}.dnb-forms-field-block__grid{display:grid}@media screen and (max-width:40em){.dnb-forms-field-block--layout-vertical .dnb-forms-field-block__grid{flex-wrap:wrap}.dnb-forms-field-block--layout-vertical .dnb-forms-field-block__grid>.dnb-form-label{margin-bottom:.5rem;margin-top:.5rem}}.dnb-forms-field-block--layout-vertical{grid-template-areas:"label" "contents" "status";grid-template-columns:auto}.dnb-forms-field-block--layout-horizontal{grid-template-areas:"label contents" "status status";grid-template-columns:fit-content(100%) auto}.dnb-forms-field-block--width-stretch{flex-grow:1}@media screen and (min-width:25.00625em){.dnb-forms-field-block--width-custom{width:calc(var(--dnb-forms-field-block-width))}.dnb-forms-field-block--width-small{width:var(--forms-field-width--small)}.dnb-forms-field-block--width-medium{width:var(--forms-field-width--medium)}.dnb-forms-field-block--width-large{width:var(--forms-field-width--large)}}.dnb-forms-field-block__label{align-items:center;display:flex;flex-flow:row;grid-area:label;justify-content:space-between}.dnb-forms-field-block__label-description{margin-left:.3em}.dnb-forms-field-block__status{grid-area:status}.dnb-forms-field-block__status .dnb-form-status__shell{margin-top:.5rem}@media screen and (max-width:15em){.dnb-forms-field-block__status{width:90%}}.dnb-forms-field-block__contents{grid-area:contents;width:100%}.dnb-forms-field-block__contents--width-stretch{width:100%}@media screen and (min-width:25.00625em){.dnb-forms-field-block__contents--width-custom{width:calc(var(--dnb-forms-field-block-content-width))}.dnb-forms-field-block__contents--width-small{width:var(--forms-field-width--small)}.dnb-forms-field-block__contents--width-medium{width:var(--forms-field-width--medium)}.dnb-forms-field-block__contents--width-large{width:var(--forms-field-width--large)}}.dnb-forms-field-block__contents__composition--vertical{display:flex;flex-flow:column;row-gap:var(--spacing-small)}.dnb-forms-field-block__contents__composition--horizontal{-moz-column-gap:var(--spacing-small);column-gap:var(--spacing-small);display:flex;flex-flow:row}@media screen and (min-width:25.00625em){.dnb-forms-field-block__contents__composition--horizontal{align-items:flex-end}.dnb-forms-field-block__contents__composition--horizontal[class*=align-center]{align-items:center}}@media screen and (max-width:25em){.dnb-forms-field-block__contents__composition--horizontal{flex-flow:column;row-gap:var(--spacing-x-small)}}
@@ -53,6 +53,9 @@ fieldset.dnb-forms-field-block {
53
53
  flex-grow: 1;
54
54
  }
55
55
  @include allAbove(x-small) {
56
+ &-custom {
57
+ width: calc(var(--dnb-forms-field-block-width));
58
+ }
56
59
  &-small {
57
60
  width: var(--forms-field-width--small);
58
61
  }
@@ -98,6 +101,9 @@ fieldset.dnb-forms-field-block {
98
101
  width: 100%;
99
102
  }
100
103
  @include allAbove(x-small) {
104
+ &-custom {
105
+ width: calc(var(--dnb-forms-field-block-content-width));
106
+ }
101
107
  &-small {
102
108
  width: var(--forms-field-width--small);
103
109
  }
@@ -3,7 +3,7 @@
3
3
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
4
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5
5
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6
- import React, { useMemo, useRef, useEffect, useReducer, createRef, useContext } from 'react';
6
+ import React, { useMemo, useRef, useEffect, useReducer, createRef, useContext, useCallback } from 'react';
7
7
  import classnames from 'classnames';
8
8
  import pointer from '../../utils/json-pointer';
9
9
  import { useFieldProps } from '../../hooks';
@@ -11,11 +11,13 @@ import { makeUniqueId } from '../../../../shared/component-helper';
11
11
  import { Flex, FormStatus, HeightAnimation } from '../../../../components';
12
12
  import { pickSpacingProps } from '../../../../components/flex/utils';
13
13
  import useMountEffect from '../../../../shared/helpers/useMountEffect';
14
+ import useUpdateEffect from '../../../../shared/helpers/useUpdateEffect';
14
15
  import { pickFlexContainerProps } from '../../../../components/flex/Container';
15
16
  import IterateItemContext from '../IterateItemContext';
16
17
  import SummaryListContext from '../../Value/SummaryList/SummaryListContext';
17
18
  import ValueBlockContext from '../../ValueBlock/ValueBlockContext';
18
19
  import FieldBoundaryProvider from '../../DataContext/FieldBoundary/FieldBoundaryProvider';
20
+ import DataContext from '../../DataContext/Context';
19
21
  import useDataValue from '../../hooks/useDataValue';
20
22
  import { useArrayLimit, useSwitchContainerMode } from '../hooks';
21
23
  import { getMessage } from '../../FieldBlock';
@@ -23,6 +25,7 @@ import structuredClone from '@ungap/structured-clone';
23
25
  function ArrayComponent(props) {
24
26
  var _props$value;
25
27
  const [salt, forceUpdate] = useReducer(() => ({}), {});
28
+ const dataContext = useContext(DataContext);
26
29
  const summaryListContext = useContext(SummaryListContext);
27
30
  const valueBlockContext = useContext(ValueBlockContext);
28
31
  const {
@@ -34,42 +37,50 @@ function ArrayComponent(props) {
34
37
  const {
35
38
  getValueByPath
36
39
  } = useDataValue();
40
+ const {
41
+ countPath,
42
+ countPathLimit = Infinity
43
+ } = props;
44
+ const getCountValue = useCallback(() => {
45
+ if (!countPath) {
46
+ return -1;
47
+ }
48
+ let countValue = parseFloat(getValueByPath(countPath));
49
+ if (!(countValue >= 0)) {
50
+ countValue = 0;
51
+ }
52
+ if (countValue > countPathLimit) {
53
+ countValue = countPathLimit;
54
+ }
55
+ return countValue;
56
+ }, [countPath, countPathLimit, getValueByPath]);
57
+ const countValue = getCountValue();
37
58
  const preparedProps = useMemo(() => {
38
59
  const {
39
60
  path,
40
61
  countPath,
41
- countPathLimit = Infinity,
42
62
  countPathTransform
43
63
  } = props;
44
64
  if (countPath) {
45
65
  const arrayValue = getValueByPath(path);
46
- let countValue = parseFloat(getValueByPath(countPath));
47
- if (!(countValue >= 0)) {
48
- countValue = 0;
49
- }
50
- if (countValue > countPathLimit) {
51
- countValue = countPathLimit;
52
- }
53
- if ((arrayValue === null || arrayValue === void 0 ? void 0 : arrayValue.length) !== countValue) {
54
- const newValue = [];
55
- for (let i = 0, l = countValue; i < l; i++) {
56
- const value = arrayValue === null || arrayValue === void 0 ? void 0 : arrayValue[i];
57
- newValue.push(countPathTransform === null || countPathTransform === void 0 ? void 0 : countPathTransform({
58
- value,
59
- index: i
60
- }));
61
- }
62
- return _objectSpread(_objectSpread({
63
- required: false
64
- }, props), {}, {
65
- value: newValue
66
- });
66
+ const newValue = [];
67
+ for (let i = 0, l = countValue; i < l; i++) {
68
+ const value = arrayValue === null || arrayValue === void 0 ? void 0 : arrayValue[i];
69
+ newValue.push(countPathTransform ? countPathTransform({
70
+ value,
71
+ index: i
72
+ }) : value);
67
73
  }
74
+ return _objectSpread(_objectSpread({
75
+ required: false
76
+ }, props), {}, {
77
+ value: newValue
78
+ });
68
79
  }
69
80
  return _objectSpread({
70
81
  required: false
71
82
  }, props);
72
- }, [getValueByPath, props]);
83
+ }, [countValue, getValueByPath, props]);
73
84
  const {
74
85
  path,
75
86
  value: arrayValue,
@@ -85,8 +96,24 @@ function ArrayComponent(props) {
85
96
  onChange,
86
97
  children
87
98
  } = useFieldProps(preparedProps, {
88
- updateContextDataInSync: true
99
+ updateContextDataInSync: true,
100
+ omitMultiplePathWarning: true,
101
+ forceUpdateWhenContextDataIsSet: Boolean(countPath)
89
102
  });
103
+ const countValueRef = useRef();
104
+ useUpdateEffect(() => {
105
+ if (countPath) {
106
+ if (typeof countValueRef.current === 'number' && countValue !== countValueRef.current) {
107
+ window.requestAnimationFrame(() => {
108
+ dataContext.handlePathChange(path, getValueByPath(path));
109
+ });
110
+ }
111
+ countValueRef.current = countValue;
112
+ }
113
+ }, [countValue]);
114
+ useEffect(() => {
115
+ valueCountRef.current = arrayValue || [];
116
+ }, [arrayValue]);
90
117
  useMountEffect(() => {
91
118
  setChanged(true);
92
119
  });
@@ -99,9 +126,6 @@ function ArrayComponent(props) {
99
126
  const hadPushRef = useRef();
100
127
  const innerRefs = useRef({});
101
128
  const omitFlex = withoutFlex !== null && withoutFlex !== void 0 ? withoutFlex : summaryListContext || valueBlockContext;
102
- useEffect(() => {
103
- valueCountRef.current = arrayValue || [];
104
- }, [arrayValue]);
105
129
  const {
106
130
  getNextContainerMode
107
131
  } = useSwitchContainerMode();
@@ -1 +1 @@
1
- {"version":3,"file":"Array.js","names":["React","useMemo","useRef","useEffect","useReducer","createRef","useContext","classnames","pointer","useFieldProps","makeUniqueId","Flex","FormStatus","HeightAnimation","pickSpacingProps","useMountEffect","pickFlexContainerProps","IterateItemContext","SummaryListContext","ValueBlockContext","FieldBoundaryProvider","useDataValue","useArrayLimit","useSwitchContainerMode","getMessage","structuredClone","ArrayComponent","props","_props$value","salt","forceUpdate","summaryListContext","valueBlockContext","setLimitProps","error","limitWarning","path","getValueByPath","preparedProps","countPath","countPathLimit","Infinity","countPathTransform","arrayValue","countValue","parseFloat","length","newValue","i","l","value","push","index","_objectSpread","required","limit","withoutFlex","emptyValue","placeholder","containerMode","animate","handleChange","setChanged","onChange","children","updateContextDataInSync","idsRef","isNewRef","modesRef","valueWhileClosingRef","valueCountRef","containerRef","hadPushRef","innerRefs","omitFlex","current","getNextContainerMode","arrayItems","_ref","list","limitedList","slice","map","_valueCountRef$curren","_modesRef$current$id","id","hasNewItems","isNew","_getNextContainerMode","itemContext","previousContainerMode","previous","initialContainerMode","modeOptions","options","switchContainerMode","mode","_isNewRef$current","arguments","undefined","preventUpdate","newArrayValue","set","handlePush","element","handleRemove","keepItems","splice","fulfillRemove","_modesRef$current","_isNewRef$current2","findIndex","indexOf","restoreOriginalValue","total","last","flexProps","className","innerRef","arrayElements","itemProps","elementRef","renderChildren","elementChild","contextValue","content","Array","isArray","child","createElement","Provider","key","Item","tabIndex","Stack","Fragment","show","Boolean","state","shellSpace","top","bottom","no_animation","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/Array/Array.tsx"],"sourcesContent":["import React, {\n useMemo,\n useRef,\n useEffect,\n useReducer,\n createRef,\n useContext,\n} from 'react'\nimport classnames from 'classnames'\nimport pointer from '../../utils/json-pointer'\nimport { useFieldProps } from '../../hooks'\nimport { makeUniqueId } from '../../../../shared/component-helper'\nimport { Flex, FormStatus, HeightAnimation } from '../../../../components'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport useMountEffect from '../../../../shared/helpers/useMountEffect'\nimport {\n BasicProps as FlexContainerProps,\n Props as FlexContainerAllProps,\n pickFlexContainerProps,\n} from '../../../../components/flex/Container'\nimport IterateItemContext, {\n IterateItemContextState,\n ModeOptions,\n} from '../IterateItemContext'\nimport SummaryListContext from '../../Value/SummaryList/SummaryListContext'\nimport ValueBlockContext from '../../ValueBlock/ValueBlockContext'\nimport FieldBoundaryProvider from '../../DataContext/FieldBoundary/FieldBoundaryProvider'\nimport useDataValue from '../../hooks/useDataValue'\nimport { useArrayLimit, useSwitchContainerMode } from '../hooks'\nimport { getMessage } from '../../FieldBlock'\n\nimport type { ContainerMode, ElementChild, Props, Value } from './types'\nimport type { Identifier } from '../../types'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So its a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\nexport type * from './types'\n\nfunction ArrayComponent(props: Props) {\n const [salt, forceUpdate] = useReducer(() => ({}), {})\n\n const summaryListContext = useContext(SummaryListContext)\n const valueBlockContext = useContext(ValueBlockContext)\n const { setLimitProps, error: limitWarning } = useArrayLimit({\n path: props.path,\n })\n\n const { getValueByPath } = useDataValue()\n const preparedProps = useMemo(() => {\n const {\n path,\n countPath,\n countPathLimit = Infinity,\n countPathTransform,\n } = props\n\n if (countPath) {\n const arrayValue = getValueByPath(path)\n let countValue = parseFloat(getValueByPath(countPath))\n if (!(countValue >= 0)) {\n countValue = 0\n }\n if (countValue > countPathLimit) {\n countValue = countPathLimit\n }\n if (arrayValue?.length !== countValue) {\n const newValue = []\n for (let i = 0, l = countValue; i < l; i++) {\n const value = arrayValue?.[i]\n newValue.push(countPathTransform?.({ value, index: i }))\n }\n\n return {\n required: false,\n ...props,\n value: newValue,\n }\n }\n }\n\n return { required: false, ...props }\n }, [getValueByPath, props])\n\n const {\n path,\n value: arrayValue,\n limit,\n error,\n withoutFlex,\n emptyValue,\n placeholder,\n containerMode,\n animate,\n handleChange,\n setChanged,\n onChange,\n children,\n } = useFieldProps(preparedProps, {\n // To ensure the defaultValue set on the Iterate.Array is set in the data context,\n // and will not overwrite defaultValues set by fields inside the Iterate.Array.\n updateContextDataInSync: true,\n })\n\n useMountEffect(() => {\n // To ensure the validator is called when a new item is added\n setChanged(true)\n })\n\n const idsRef = useRef<Array<Identifier>>([])\n const isNewRef = useRef<Record<string, boolean>>({})\n const modesRef = useRef<\n Record<\n Identifier,\n {\n current: ContainerMode\n previous?: ContainerMode\n options?: ModeOptions\n }\n >\n >({})\n const valueWhileClosingRef = useRef<Value>()\n const valueCountRef = useRef(arrayValue)\n const containerRef = useRef<HTMLDivElement>()\n const hadPushRef = useRef<boolean>()\n const innerRefs = useRef<\n Record<string, React.RefObject<HTMLDivElement>>\n >({})\n\n const omitFlex = withoutFlex ?? (summaryListContext || valueBlockContext)\n\n useEffect(() => {\n // Update inside the useEffect, to support React.StrictMode\n valueCountRef.current = arrayValue || []\n }, [arrayValue])\n\n const { getNextContainerMode } = useSwitchContainerMode()\n\n const arrayItems = useMemo(() => {\n const list = (valueWhileClosingRef.current || arrayValue) ?? []\n const limitedList =\n typeof limit === 'number' ? list.slice(0, limit) : list\n\n return limitedList.map((value, index) => {\n const id = idsRef.current[index] || makeUniqueId()\n\n const hasNewItems =\n arrayValue?.length > valueCountRef.current?.length\n\n if (!idsRef.current[index]) {\n isNewRef.current[id] = hasNewItems\n idsRef.current.push(id)\n }\n\n const isNew = isNewRef.current[id] || false\n if (!modesRef.current[id]?.current) {\n modesRef.current[id] = {\n current:\n containerMode ??\n (isNew ? getNextContainerMode() ?? 'edit' : 'auto'),\n }\n }\n\n const itemContext: IterateItemContextState = {\n id,\n path,\n value,\n index,\n arrayValue,\n containerRef,\n isNew,\n containerMode: modesRef.current[id].current,\n previousContainerMode: modesRef.current[id].previous,\n initialContainerMode: containerMode || 'auto',\n modeOptions: modesRef.current[id].options,\n switchContainerMode: (mode, options = {}) => {\n modesRef.current[id].previous = modesRef.current[id].current\n modesRef.current[id].current = mode\n modesRef.current[id].options = options\n delete isNewRef.current?.[id]\n if (options?.preventUpdate !== true) {\n forceUpdate()\n }\n },\n handleChange: (path, value) => {\n const newArrayValue = structuredClone(arrayValue)\n\n // Make sure we have a new object reference,\n // else two new objects will be the same\n newArrayValue[index] = { ...newArrayValue[index] }\n\n pointer.set(newArrayValue, path, value)\n handleChange(newArrayValue)\n },\n handlePush: (element) => {\n hadPushRef.current = true\n handleChange([...(arrayValue || []), element])\n },\n handleRemove: ({ keepItems = false } = {}) => {\n if (keepItems) {\n // Add a backup as the array value while animating\n valueWhileClosingRef.current = arrayValue\n }\n\n const newArrayValue = structuredClone(arrayValue)\n newArrayValue.splice(index, 1)\n handleChange(newArrayValue)\n },\n\n // - Called after animation end\n fulfillRemove: () => {\n valueWhileClosingRef.current = null\n delete modesRef.current?.[id]\n delete isNewRef.current?.[id]\n const findIndex = idsRef.current.indexOf(id)\n idsRef.current.splice(findIndex, 1)\n forceUpdate()\n },\n\n // - Called when cancel button press\n restoreOriginalValue: (value) => {\n if (value) {\n const newArrayValue = structuredClone(arrayValue)\n newArrayValue[index] = value\n handleChange(newArrayValue)\n }\n },\n }\n\n return itemContext\n })\n\n // In order to update \"valueWhileClosingRef\" we need to have \"salt\" in the deps array\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [salt, arrayValue, limit, path, handleChange])\n\n const total = arrayItems.length\n useEffect(() => {\n if (limit) {\n setLimitProps({ limit, total })\n }\n }, [total, limit, setLimitProps])\n\n // - Call the onChange callback when a new element is added without calling \"handlePush\"\n useMemo(() => {\n const last = arrayItems?.[arrayItems.length - 1]\n if (last?.isNew && !hadPushRef.current) {\n onChange?.(arrayValue)\n } else {\n hadPushRef.current = false\n }\n }, [arrayValue, arrayItems, onChange])\n\n const flexProps: FlexContainerProps & {\n innerRef: FlexContainerAllProps['innerRef']\n } = {\n className: classnames(\n 'dnb-forms-iterate',\n 'dnb-forms-section',\n props?.className\n ),\n ...pickFlexContainerProps(props as FlexContainerProps),\n ...pickSpacingProps(props),\n innerRef: containerRef,\n }\n\n const arrayElements =\n arrayValue === emptyValue || props?.value?.length === 0\n ? placeholder\n : arrayItems.map((itemProps) => {\n const { id, value, index } = itemProps\n const elementRef = (innerRefs.current[id] =\n innerRefs.current[id] || createRef<HTMLDivElement>())\n\n const renderChildren = (elementChild: ElementChild) => {\n return typeof elementChild === 'function'\n ? elementChild(value, index)\n : elementChild\n }\n\n const contextValue = {\n ...itemProps,\n elementRef,\n }\n\n const content = Array.isArray(children)\n ? children.map((child) => renderChildren(child))\n : renderChildren(children)\n\n if (omitFlex) {\n return (\n <IterateItemContext.Provider\n key={`element-${id}`}\n value={contextValue}\n >\n <FieldBoundaryProvider>{content}</FieldBoundaryProvider>\n </IterateItemContext.Provider>\n )\n }\n\n return (\n <Flex.Item\n className=\"dnb-forms-iterate__element\"\n tabIndex={-1}\n innerRef={elementRef}\n key={`element-${id}`}\n >\n <IterateItemContext.Provider value={contextValue}>\n <FieldBoundaryProvider>{content}</FieldBoundaryProvider>\n </IterateItemContext.Provider>\n </Flex.Item>\n )\n })\n\n const content = omitFlex ? (\n arrayElements\n ) : (\n <Flex.Stack {...flexProps}>{arrayElements}</Flex.Stack>\n )\n\n return (\n <>\n {animate ? <HeightAnimation>{content}</HeightAnimation> : content}\n\n <FormStatus\n show={Boolean(error || limitWarning)}\n state={!error && limitWarning ? 'warning' : undefined}\n shellSpace={{ top: 0, bottom: 'medium' }}\n no_animation={false}\n >\n {getMessage({ content: error || limitWarning })}\n </FormStatus>\n </>\n )\n}\n\nArrayComponent._supportsSpacingProps = true\nexport default ArrayComponent\n"],"mappings":"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"}
1
+ {"version":3,"file":"Array.js","names":["React","useMemo","useRef","useEffect","useReducer","createRef","useContext","useCallback","classnames","pointer","useFieldProps","makeUniqueId","Flex","FormStatus","HeightAnimation","pickSpacingProps","useMountEffect","useUpdateEffect","pickFlexContainerProps","IterateItemContext","SummaryListContext","ValueBlockContext","FieldBoundaryProvider","DataContext","useDataValue","useArrayLimit","useSwitchContainerMode","getMessage","structuredClone","ArrayComponent","props","_props$value","salt","forceUpdate","dataContext","summaryListContext","valueBlockContext","setLimitProps","error","limitWarning","path","getValueByPath","countPath","countPathLimit","Infinity","getCountValue","countValue","parseFloat","preparedProps","countPathTransform","arrayValue","newValue","i","l","value","push","index","_objectSpread","required","limit","withoutFlex","emptyValue","placeholder","containerMode","animate","handleChange","setChanged","onChange","children","updateContextDataInSync","omitMultiplePathWarning","forceUpdateWhenContextDataIsSet","Boolean","countValueRef","current","window","requestAnimationFrame","handlePathChange","valueCountRef","idsRef","isNewRef","modesRef","valueWhileClosingRef","containerRef","hadPushRef","innerRefs","omitFlex","getNextContainerMode","arrayItems","_ref","list","limitedList","slice","map","_valueCountRef$curren","_modesRef$current$id","id","hasNewItems","length","isNew","_getNextContainerMode","itemContext","previousContainerMode","previous","initialContainerMode","modeOptions","options","switchContainerMode","mode","_isNewRef$current","arguments","undefined","preventUpdate","newArrayValue","set","handlePush","element","handleRemove","keepItems","splice","fulfillRemove","_modesRef$current","_isNewRef$current2","findIndex","indexOf","restoreOriginalValue","total","last","flexProps","className","innerRef","arrayElements","itemProps","elementRef","renderChildren","elementChild","contextValue","content","Array","isArray","child","createElement","Provider","key","Item","tabIndex","Stack","Fragment","show","state","shellSpace","top","bottom","no_animation","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/Array/Array.tsx"],"sourcesContent":["import React, {\n useMemo,\n useRef,\n useEffect,\n useReducer,\n createRef,\n useContext,\n useCallback,\n} from 'react'\nimport classnames from 'classnames'\nimport pointer from '../../utils/json-pointer'\nimport { useFieldProps } from '../../hooks'\nimport { makeUniqueId } from '../../../../shared/component-helper'\nimport { Flex, FormStatus, HeightAnimation } from '../../../../components'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport useMountEffect from '../../../../shared/helpers/useMountEffect'\nimport useUpdateEffect from '../../../../shared/helpers/useUpdateEffect'\nimport {\n BasicProps as FlexContainerProps,\n Props as FlexContainerAllProps,\n pickFlexContainerProps,\n} from '../../../../components/flex/Container'\nimport IterateItemContext, {\n IterateItemContextState,\n ModeOptions,\n} from '../IterateItemContext'\nimport SummaryListContext from '../../Value/SummaryList/SummaryListContext'\nimport ValueBlockContext from '../../ValueBlock/ValueBlockContext'\nimport FieldBoundaryProvider from '../../DataContext/FieldBoundary/FieldBoundaryProvider'\nimport DataContext from '../../DataContext/Context'\nimport useDataValue from '../../hooks/useDataValue'\nimport { useArrayLimit, useSwitchContainerMode } from '../hooks'\nimport { getMessage } from '../../FieldBlock'\n\nimport type { ContainerMode, ElementChild, Props, Value } from './types'\nimport type { Identifier } from '../../types'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So its a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\nexport type * from './types'\n\nfunction ArrayComponent(props: Props) {\n const [salt, forceUpdate] = useReducer(() => ({}), {})\n\n const dataContext = useContext(DataContext)\n const summaryListContext = useContext(SummaryListContext)\n const valueBlockContext = useContext(ValueBlockContext)\n const { setLimitProps, error: limitWarning } = useArrayLimit({\n path: props.path,\n })\n\n const { getValueByPath } = useDataValue()\n const { countPath, countPathLimit = Infinity } = props\n const getCountValue = useCallback(() => {\n if (!countPath) {\n return -1\n }\n\n let countValue = parseFloat(getValueByPath(countPath))\n if (!(countValue >= 0)) {\n countValue = 0\n }\n if (countValue > countPathLimit) {\n countValue = countPathLimit\n }\n\n return countValue\n }, [countPath, countPathLimit, getValueByPath])\n const countValue = getCountValue()\n\n const preparedProps = useMemo(() => {\n const { path, countPath, countPathTransform } = props\n\n if (countPath) {\n const arrayValue = getValueByPath(path)\n const newValue = []\n for (let i = 0, l = countValue; i < l; i++) {\n const value = arrayValue?.[i]\n newValue.push(\n countPathTransform\n ? countPathTransform({ value, index: i })\n : value\n )\n }\n\n return {\n required: false,\n ...props,\n value: newValue,\n }\n }\n\n return { required: false, ...props }\n }, [countValue, getValueByPath, props])\n\n const {\n path,\n value: arrayValue,\n limit,\n error,\n withoutFlex,\n emptyValue,\n placeholder,\n containerMode,\n animate,\n handleChange,\n setChanged,\n onChange,\n children,\n } = useFieldProps(preparedProps, {\n // To ensure the defaultValue set on the Iterate.Array is set in the data context,\n // and will not overwrite defaultValues set by fields inside the Iterate.Array.\n updateContextDataInSync: true,\n omitMultiplePathWarning: true,\n forceUpdateWhenContextDataIsSet: Boolean(countPath),\n })\n\n // - Call onChange on the data context, if the count value changes\n const countValueRef = useRef<number>()\n useUpdateEffect(() => {\n if (countPath) {\n if (\n typeof countValueRef.current === 'number' &&\n countValue !== countValueRef.current\n ) {\n window.requestAnimationFrame(() => {\n dataContext.handlePathChange(path, getValueByPath(path))\n }) // so we get the correct value inside the array.\n }\n countValueRef.current = countValue\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [countValue])\n\n useEffect(() => {\n // Update inside the useEffect, to support React.StrictMode\n valueCountRef.current = arrayValue || []\n }, [arrayValue])\n\n useMountEffect(() => {\n // To ensure the validator is called when a new item is added\n setChanged(true)\n })\n\n const idsRef = useRef<Array<Identifier>>([])\n const isNewRef = useRef<Record<string, boolean>>({})\n const modesRef = useRef<\n Record<\n Identifier,\n {\n current: ContainerMode\n previous?: ContainerMode\n options?: ModeOptions\n }\n >\n >({})\n const valueWhileClosingRef = useRef<Value>()\n const valueCountRef = useRef(arrayValue)\n const containerRef = useRef<HTMLDivElement>()\n const hadPushRef = useRef<boolean>()\n const innerRefs = useRef<\n Record<string, React.RefObject<HTMLDivElement>>\n >({})\n\n const omitFlex = withoutFlex ?? (summaryListContext || valueBlockContext)\n\n const { getNextContainerMode } = useSwitchContainerMode()\n\n const arrayItems = useMemo(() => {\n const list = (valueWhileClosingRef.current || arrayValue) ?? []\n const limitedList =\n typeof limit === 'number' ? list.slice(0, limit) : list\n\n return limitedList.map((value, index) => {\n const id = idsRef.current[index] || makeUniqueId()\n\n const hasNewItems =\n arrayValue?.length > valueCountRef.current?.length\n\n if (!idsRef.current[index]) {\n isNewRef.current[id] = hasNewItems\n idsRef.current.push(id)\n }\n\n const isNew = isNewRef.current[id] || false\n if (!modesRef.current[id]?.current) {\n modesRef.current[id] = {\n current:\n containerMode ??\n (isNew ? getNextContainerMode() ?? 'edit' : 'auto'),\n }\n }\n\n const itemContext: IterateItemContextState = {\n id,\n path,\n value,\n index,\n arrayValue,\n containerRef,\n isNew,\n containerMode: modesRef.current[id].current,\n previousContainerMode: modesRef.current[id].previous,\n initialContainerMode: containerMode || 'auto',\n modeOptions: modesRef.current[id].options,\n switchContainerMode: (mode, options = {}) => {\n modesRef.current[id].previous = modesRef.current[id].current\n modesRef.current[id].current = mode\n modesRef.current[id].options = options\n delete isNewRef.current?.[id]\n if (options?.preventUpdate !== true) {\n forceUpdate()\n }\n },\n handleChange: (path, value) => {\n const newArrayValue = structuredClone(arrayValue)\n\n // Make sure we have a new object reference,\n // else two new objects will be the same\n newArrayValue[index] = { ...newArrayValue[index] }\n\n pointer.set(newArrayValue, path, value)\n handleChange(newArrayValue)\n },\n handlePush: (element) => {\n hadPushRef.current = true\n handleChange([...(arrayValue || []), element])\n },\n handleRemove: ({ keepItems = false } = {}) => {\n if (keepItems) {\n // Add a backup as the array value while animating\n valueWhileClosingRef.current = arrayValue\n }\n\n const newArrayValue = structuredClone(arrayValue)\n newArrayValue.splice(index, 1)\n handleChange(newArrayValue)\n },\n\n // - Called after animation end\n fulfillRemove: () => {\n valueWhileClosingRef.current = null\n delete modesRef.current?.[id]\n delete isNewRef.current?.[id]\n const findIndex = idsRef.current.indexOf(id)\n idsRef.current.splice(findIndex, 1)\n forceUpdate()\n },\n\n // - Called when cancel button press\n restoreOriginalValue: (value) => {\n if (value) {\n const newArrayValue = structuredClone(arrayValue)\n newArrayValue[index] = value\n handleChange(newArrayValue)\n }\n },\n }\n\n return itemContext\n })\n\n // In order to update \"valueWhileClosingRef\" we need to have \"salt\" in the deps array\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [salt, arrayValue, limit, path, handleChange])\n\n const total = arrayItems.length\n useEffect(() => {\n if (limit) {\n setLimitProps({ limit, total })\n }\n }, [total, limit, setLimitProps])\n\n // - Call the onChange callback when a new element is added without calling \"handlePush\"\n useMemo(() => {\n const last = arrayItems?.[arrayItems.length - 1]\n if (last?.isNew && !hadPushRef.current) {\n onChange?.(arrayValue)\n } else {\n hadPushRef.current = false\n }\n }, [arrayValue, arrayItems, onChange])\n\n const flexProps: FlexContainerProps & {\n innerRef: FlexContainerAllProps['innerRef']\n } = {\n className: classnames(\n 'dnb-forms-iterate',\n 'dnb-forms-section',\n props?.className\n ),\n ...pickFlexContainerProps(props as FlexContainerProps),\n ...pickSpacingProps(props),\n innerRef: containerRef,\n }\n\n const arrayElements =\n arrayValue === emptyValue || props?.value?.length === 0\n ? placeholder\n : arrayItems.map((itemProps) => {\n const { id, value, index } = itemProps\n const elementRef = (innerRefs.current[id] =\n innerRefs.current[id] || createRef<HTMLDivElement>())\n\n const renderChildren = (elementChild: ElementChild) => {\n return typeof elementChild === 'function'\n ? elementChild(value, index)\n : elementChild\n }\n\n const contextValue = {\n ...itemProps,\n elementRef,\n }\n\n const content = Array.isArray(children)\n ? children.map((child) => renderChildren(child))\n : renderChildren(children)\n\n if (omitFlex) {\n return (\n <IterateItemContext.Provider\n key={`element-${id}`}\n value={contextValue}\n >\n <FieldBoundaryProvider>{content}</FieldBoundaryProvider>\n </IterateItemContext.Provider>\n )\n }\n\n return (\n <Flex.Item\n className=\"dnb-forms-iterate__element\"\n tabIndex={-1}\n innerRef={elementRef}\n key={`element-${id}`}\n >\n <IterateItemContext.Provider value={contextValue}>\n <FieldBoundaryProvider>{content}</FieldBoundaryProvider>\n </IterateItemContext.Provider>\n </Flex.Item>\n )\n })\n\n const content = omitFlex ? (\n arrayElements\n ) : (\n <Flex.Stack {...flexProps}>{arrayElements}</Flex.Stack>\n )\n\n return (\n <>\n {animate ? <HeightAnimation>{content}</HeightAnimation> : content}\n\n <FormStatus\n show={Boolean(error || limitWarning)}\n state={!error && limitWarning ? 'warning' : undefined}\n shellSpace={{ top: 0, bottom: 'medium' }}\n no_animation={false}\n >\n {getMessage({ content: error || limitWarning })}\n </FormStatus>\n </>\n )\n}\n\nArrayComponent._supportsSpacingProps = true\nexport default ArrayComponent\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IACVC,OAAO,EACPC,MAAM,EACNC,SAAS,EACTC,UAAU,EACVC,SAAS,EACTC,UAAU,EACVC,WAAW,QACN,OAAO;AACd,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,OAAO,MAAM,0BAA0B;AAC9C,SAASC,aAAa,QAAQ,aAAa;AAC3C,SAASC,YAAY,QAAQ,qCAAqC;AAClE,SAASC,IAAI,EAAEC,UAAU,EAAEC,eAAe,QAAQ,wBAAwB;AAC1E,SAASC,gBAAgB,QAAQ,mCAAmC;AACpE,OAAOC,cAAc,MAAM,2CAA2C;AACtE,OAAOC,eAAe,MAAM,4CAA4C;AACxE,SAGEC,sBAAsB,QACjB,uCAAuC;AAC9C,OAAOC,kBAAkB,MAGlB,uBAAuB;AAC9B,OAAOC,kBAAkB,MAAM,4CAA4C;AAC3E,OAAOC,iBAAiB,MAAM,oCAAoC;AAClE,OAAOC,qBAAqB,MAAM,uDAAuD;AACzF,OAAOC,WAAW,MAAM,2BAA2B;AACnD,OAAOC,YAAY,MAAM,0BAA0B;AACnD,SAASC,aAAa,EAAEC,sBAAsB,QAAQ,UAAU;AAChE,SAASC,UAAU,QAAQ,kBAAkB;AAS7C,OAAOC,eAAe,MAAM,yBAAyB;AAIrD,SAASC,cAAcA,CAACC,KAAY,EAAE;EAAA,IAAAC,YAAA;EACpC,MAAM,CAACC,IAAI,EAAEC,WAAW,CAAC,GAAG7B,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAEtD,MAAM8B,WAAW,GAAG5B,UAAU,CAACiB,WAAW,CAAC;EAC3C,MAAMY,kBAAkB,GAAG7B,UAAU,CAACc,kBAAkB,CAAC;EACzD,MAAMgB,iBAAiB,GAAG9B,UAAU,CAACe,iBAAiB,CAAC;EACvD,MAAM;IAAEgB,aAAa;IAAEC,KAAK,EAAEC;EAAa,CAAC,GAAGd,aAAa,CAAC;IAC3De,IAAI,EAAEV,KAAK,CAACU;EACd,CAAC,CAAC;EAEF,MAAM;IAAEC;EAAe,CAAC,GAAGjB,YAAY,CAAC,CAAC;EACzC,MAAM;IAAEkB,SAAS;IAAEC,cAAc,GAAGC;EAAS,CAAC,GAAGd,KAAK;EACtD,MAAMe,aAAa,GAAGtC,WAAW,CAAC,MAAM;IACtC,IAAI,CAACmC,SAAS,EAAE;MACd,OAAO,CAAC,CAAC;IACX;IAEA,IAAII,UAAU,GAAGC,UAAU,CAACN,cAAc,CAACC,SAAS,CAAC,CAAC;IACtD,IAAI,EAAEI,UAAU,IAAI,CAAC,CAAC,EAAE;MACtBA,UAAU,GAAG,CAAC;IAChB;IACA,IAAIA,UAAU,GAAGH,cAAc,EAAE;MAC/BG,UAAU,GAAGH,cAAc;IAC7B;IAEA,OAAOG,UAAU;EACnB,CAAC,EAAE,CAACJ,SAAS,EAAEC,cAAc,EAAEF,cAAc,CAAC,CAAC;EAC/C,MAAMK,UAAU,GAAGD,aAAa,CAAC,CAAC;EAElC,MAAMG,aAAa,GAAG/C,OAAO,CAAC,MAAM;IAClC,MAAM;MAAEuC,IAAI;MAAEE,SAAS;MAAEO;IAAmB,CAAC,GAAGnB,KAAK;IAErD,IAAIY,SAAS,EAAE;MACb,MAAMQ,UAAU,GAAGT,cAAc,CAACD,IAAI,CAAC;MACvC,MAAMW,QAAQ,GAAG,EAAE;MACnB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEC,CAAC,GAAGP,UAAU,EAAEM,CAAC,GAAGC,CAAC,EAAED,CAAC,EAAE,EAAE;QAC1C,MAAME,KAAK,GAAGJ,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAGE,CAAC,CAAC;QAC7BD,QAAQ,CAACI,IAAI,CACXN,kBAAkB,GACdA,kBAAkB,CAAC;UAAEK,KAAK;UAAEE,KAAK,EAAEJ;QAAE,CAAC,CAAC,GACvCE,KACN,CAAC;MACH;MAEA,OAAAG,aAAA,CAAAA,aAAA;QACEC,QAAQ,EAAE;MAAK,GACZ5B,KAAK;QACRwB,KAAK,EAAEH;MAAQ;IAEnB;IAEA,OAAAM,aAAA;MAASC,QAAQ,EAAE;IAAK,GAAK5B,KAAK;EACpC,CAAC,EAAE,CAACgB,UAAU,EAAEL,cAAc,EAAEX,KAAK,CAAC,CAAC;EAEvC,MAAM;IACJU,IAAI;IACJc,KAAK,EAAEJ,UAAU;IACjBS,KAAK;IACLrB,KAAK;IACLsB,WAAW;IACXC,UAAU;IACVC,WAAW;IACXC,aAAa;IACbC,OAAO;IACPC,YAAY;IACZC,UAAU;IACVC,QAAQ;IACRC;EACF,CAAC,GAAG1D,aAAa,CAACsC,aAAa,EAAE;IAG/BqB,uBAAuB,EAAE,IAAI;IAC7BC,uBAAuB,EAAE,IAAI;IAC7BC,+BAA+B,EAAEC,OAAO,CAAC9B,SAAS;EACpD,CAAC,CAAC;EAGF,MAAM+B,aAAa,GAAGvE,MAAM,CAAS,CAAC;EACtCe,eAAe,CAAC,MAAM;IACpB,IAAIyB,SAAS,EAAE;MACb,IACE,OAAO+B,aAAa,CAACC,OAAO,KAAK,QAAQ,IACzC5B,UAAU,KAAK2B,aAAa,CAACC,OAAO,EACpC;QACAC,MAAM,CAACC,qBAAqB,CAAC,MAAM;UACjC1C,WAAW,CAAC2C,gBAAgB,CAACrC,IAAI,EAAEC,cAAc,CAACD,IAAI,CAAC,CAAC;QAC1D,CAAC,CAAC;MACJ;MACAiC,aAAa,CAACC,OAAO,GAAG5B,UAAU;IACpC;EAEF,CAAC,EAAE,CAACA,UAAU,CAAC,CAAC;EAEhB3C,SAAS,CAAC,MAAM;IAEd2E,aAAa,CAACJ,OAAO,GAAGxB,UAAU,IAAI,EAAE;EAC1C,CAAC,EAAE,CAACA,UAAU,CAAC,CAAC;EAEhBlC,cAAc,CAAC,MAAM;IAEnBkD,UAAU,CAAC,IAAI,CAAC;EAClB,CAAC,CAAC;EAEF,MAAMa,MAAM,GAAG7E,MAAM,CAAoB,EAAE,CAAC;EAC5C,MAAM8E,QAAQ,GAAG9E,MAAM,CAA0B,CAAC,CAAC,CAAC;EACpD,MAAM+E,QAAQ,GAAG/E,MAAM,CASrB,CAAC,CAAC,CAAC;EACL,MAAMgF,oBAAoB,GAAGhF,MAAM,CAAQ,CAAC;EAC5C,MAAM4E,aAAa,GAAG5E,MAAM,CAACgD,UAAU,CAAC;EACxC,MAAMiC,YAAY,GAAGjF,MAAM,CAAiB,CAAC;EAC7C,MAAMkF,UAAU,GAAGlF,MAAM,CAAU,CAAC;EACpC,MAAMmF,SAAS,GAAGnF,MAAM,CAEtB,CAAC,CAAC,CAAC;EAEL,MAAMoF,QAAQ,GAAG1B,WAAW,aAAXA,WAAW,cAAXA,WAAW,GAAKzB,kBAAkB,IAAIC,iBAAkB;EAEzE,MAAM;IAAEmD;EAAqB,CAAC,GAAG7D,sBAAsB,CAAC,CAAC;EAEzD,MAAM8D,UAAU,GAAGvF,OAAO,CAAC,MAAM;IAAA,IAAAwF,IAAA;IAC/B,MAAMC,IAAI,IAAAD,IAAA,GAAIP,oBAAoB,CAACR,OAAO,IAAIxB,UAAU,cAAAuC,IAAA,cAAAA,IAAA,GAAK,EAAE;IAC/D,MAAME,WAAW,GACf,OAAOhC,KAAK,KAAK,QAAQ,GAAG+B,IAAI,CAACE,KAAK,CAAC,CAAC,EAAEjC,KAAK,CAAC,GAAG+B,IAAI;IAEzD,OAAOC,WAAW,CAACE,GAAG,CAAC,CAACvC,KAAK,EAAEE,KAAK,KAAK;MAAA,IAAAsC,qBAAA,EAAAC,oBAAA;MACvC,MAAMC,EAAE,GAAGjB,MAAM,CAACL,OAAO,CAAClB,KAAK,CAAC,IAAI7C,YAAY,CAAC,CAAC;MAElD,MAAMsF,WAAW,GACf,CAAA/C,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEgD,MAAM,MAAAJ,qBAAA,GAAGhB,aAAa,CAACJ,OAAO,cAAAoB,qBAAA,uBAArBA,qBAAA,CAAuBI,MAAM;MAEpD,IAAI,CAACnB,MAAM,CAACL,OAAO,CAAClB,KAAK,CAAC,EAAE;QAC1BwB,QAAQ,CAACN,OAAO,CAACsB,EAAE,CAAC,GAAGC,WAAW;QAClClB,MAAM,CAACL,OAAO,CAACnB,IAAI,CAACyC,EAAE,CAAC;MACzB;MAEA,MAAMG,KAAK,GAAGnB,QAAQ,CAACN,OAAO,CAACsB,EAAE,CAAC,IAAI,KAAK;MAC3C,IAAI,GAAAD,oBAAA,GAACd,QAAQ,CAACP,OAAO,CAACsB,EAAE,CAAC,cAAAD,oBAAA,eAApBA,oBAAA,CAAsBrB,OAAO,GAAE;QAAA,IAAA0B,qBAAA;QAClCnB,QAAQ,CAACP,OAAO,CAACsB,EAAE,CAAC,GAAG;UACrBtB,OAAO,EACLX,aAAa,aAAbA,aAAa,cAAbA,aAAa,GACZoC,KAAK,IAAAC,qBAAA,GAAGb,oBAAoB,CAAC,CAAC,cAAAa,qBAAA,cAAAA,qBAAA,GAAI,MAAM,GAAG;QAChD,CAAC;MACH;MAEA,MAAMC,WAAoC,GAAG;QAC3CL,EAAE;QACFxD,IAAI;QACJc,KAAK;QACLE,KAAK;QACLN,UAAU;QACViC,YAAY;QACZgB,KAAK;QACLpC,aAAa,EAAEkB,QAAQ,CAACP,OAAO,CAACsB,EAAE,CAAC,CAACtB,OAAO;QAC3C4B,qBAAqB,EAAErB,QAAQ,CAACP,OAAO,CAACsB,EAAE,CAAC,CAACO,QAAQ;QACpDC,oBAAoB,EAAEzC,aAAa,IAAI,MAAM;QAC7C0C,WAAW,EAAExB,QAAQ,CAACP,OAAO,CAACsB,EAAE,CAAC,CAACU,OAAO;QACzCC,mBAAmB,EAAE,SAAAA,CAACC,IAAI,EAAmB;UAAA,IAAAC,iBAAA;UAAA,IAAjBH,OAAO,GAAAI,SAAA,CAAAZ,MAAA,QAAAY,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,CAAC,CAAC;UACtC7B,QAAQ,CAACP,OAAO,CAACsB,EAAE,CAAC,CAACO,QAAQ,GAAGtB,QAAQ,CAACP,OAAO,CAACsB,EAAE,CAAC,CAACtB,OAAO;UAC5DO,QAAQ,CAACP,OAAO,CAACsB,EAAE,CAAC,CAACtB,OAAO,GAAGkC,IAAI;UACnC3B,QAAQ,CAACP,OAAO,CAACsB,EAAE,CAAC,CAACU,OAAO,GAAGA,OAAO;UACtC,CAAAG,iBAAA,GAAO7B,QAAQ,CAACN,OAAO,cAAAmC,iBAAA,qBAAvB,OAAOA,iBAAA,CAAmBb,EAAE,CAAC;UAC7B,IAAI,CAAAU,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEM,aAAa,MAAK,IAAI,EAAE;YACnC/E,WAAW,CAAC,CAAC;UACf;QACF,CAAC;QACDgC,YAAY,EAAEA,CAACzB,IAAI,EAAEc,KAAK,KAAK;UAC7B,MAAM2D,aAAa,GAAGrF,eAAe,CAACsB,UAAU,CAAC;UAIjD+D,aAAa,CAACzD,KAAK,CAAC,GAAAC,aAAA,KAAQwD,aAAa,CAACzD,KAAK,CAAC,CAAE;UAElD/C,OAAO,CAACyG,GAAG,CAACD,aAAa,EAAEzE,IAAI,EAAEc,KAAK,CAAC;UACvCW,YAAY,CAACgD,aAAa,CAAC;QAC7B,CAAC;QACDE,UAAU,EAAGC,OAAO,IAAK;UACvBhC,UAAU,CAACV,OAAO,GAAG,IAAI;UACzBT,YAAY,CAAC,CAAC,IAAIf,UAAU,IAAI,EAAE,CAAC,EAAEkE,OAAO,CAAC,CAAC;QAChD,CAAC;QACDC,YAAY,EAAE,SAAAA,CAAA,EAAgC;UAAA,IAA/B;YAAEC,SAAS,GAAG;UAAM,CAAC,GAAAR,SAAA,CAAAZ,MAAA,QAAAY,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,CAAC,CAAC;UACvC,IAAIQ,SAAS,EAAE;YAEbpC,oBAAoB,CAACR,OAAO,GAAGxB,UAAU;UAC3C;UAEA,MAAM+D,aAAa,GAAGrF,eAAe,CAACsB,UAAU,CAAC;UACjD+D,aAAa,CAACM,MAAM,CAAC/D,KAAK,EAAE,CAAC,CAAC;UAC9BS,YAAY,CAACgD,aAAa,CAAC;QAC7B,CAAC;QAGDO,aAAa,EAAEA,CAAA,KAAM;UAAA,IAAAC,iBAAA,EAAAC,kBAAA;UACnBxC,oBAAoB,CAACR,OAAO,GAAG,IAAI;UACnC,CAAA+C,iBAAA,GAAOxC,QAAQ,CAACP,OAAO,cAAA+C,iBAAA,qBAAvB,OAAOA,iBAAA,CAAmBzB,EAAE,CAAC;UAC7B,CAAA0B,kBAAA,GAAO1C,QAAQ,CAACN,OAAO,cAAAgD,kBAAA,qBAAvB,OAAOA,kBAAA,CAAmB1B,EAAE,CAAC;UAC7B,MAAM2B,SAAS,GAAG5C,MAAM,CAACL,OAAO,CAACkD,OAAO,CAAC5B,EAAE,CAAC;UAC5CjB,MAAM,CAACL,OAAO,CAAC6C,MAAM,CAACI,SAAS,EAAE,CAAC,CAAC;UACnC1F,WAAW,CAAC,CAAC;QACf,CAAC;QAGD4F,oBAAoB,EAAGvE,KAAK,IAAK;UAC/B,IAAIA,KAAK,EAAE;YACT,MAAM2D,aAAa,GAAGrF,eAAe,CAACsB,UAAU,CAAC;YACjD+D,aAAa,CAACzD,KAAK,CAAC,GAAGF,KAAK;YAC5BW,YAAY,CAACgD,aAAa,CAAC;UAC7B;QACF;MACF,CAAC;MAED,OAAOZ,WAAW;IACpB,CAAC,CAAC;EAIJ,CAAC,EAAE,CAACrE,IAAI,EAAEkB,UAAU,EAAES,KAAK,EAAEnB,IAAI,EAAEyB,YAAY,CAAC,CAAC;EAEjD,MAAM6D,KAAK,GAAGtC,UAAU,CAACU,MAAM;EAC/B/F,SAAS,CAAC,MAAM;IACd,IAAIwD,KAAK,EAAE;MACTtB,aAAa,CAAC;QAAEsB,KAAK;QAAEmE;MAAM,CAAC,CAAC;IACjC;EACF,CAAC,EAAE,CAACA,KAAK,EAAEnE,KAAK,EAAEtB,aAAa,CAAC,CAAC;EAGjCpC,OAAO,CAAC,MAAM;IACZ,MAAM8H,IAAI,GAAGvC,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAGA,UAAU,CAACU,MAAM,GAAG,CAAC,CAAC;IAChD,IAAI6B,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAE5B,KAAK,IAAI,CAACf,UAAU,CAACV,OAAO,EAAE;MACtCP,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAGjB,UAAU,CAAC;IACxB,CAAC,MAAM;MACLkC,UAAU,CAACV,OAAO,GAAG,KAAK;IAC5B;EACF,CAAC,EAAE,CAACxB,UAAU,EAAEsC,UAAU,EAAErB,QAAQ,CAAC,CAAC;EAEtC,MAAM6D,SAEL,GAAAvE,aAAA,CAAAA,aAAA,CAAAA,aAAA;IACCwE,SAAS,EAAEzH,UAAU,wCAGnBsB,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEmG,SACT;EAAC,GACE/G,sBAAsB,CAACY,KAA2B,CAAC,GACnDf,gBAAgB,CAACe,KAAK,CAAC;IAC1BoG,QAAQ,EAAE/C;EAAY,EACvB;EAED,MAAMgD,aAAa,GACjBjF,UAAU,KAAKW,UAAU,IAAI,CAAA/B,KAAK,aAALA,KAAK,wBAAAC,YAAA,GAALD,KAAK,CAAEwB,KAAK,cAAAvB,YAAA,uBAAZA,YAAA,CAAcmE,MAAM,MAAK,CAAC,GACnDpC,WAAW,GACX0B,UAAU,CAACK,GAAG,CAAEuC,SAAS,IAAK;IAC5B,MAAM;MAAEpC,EAAE;MAAE1C,KAAK;MAAEE;IAAM,CAAC,GAAG4E,SAAS;IACtC,MAAMC,UAAU,GAAIhD,SAAS,CAACX,OAAO,CAACsB,EAAE,CAAC,GACvCX,SAAS,CAACX,OAAO,CAACsB,EAAE,CAAC,IAAI3F,SAAS,CAAiB,CAAE;IAEvD,MAAMiI,cAAc,GAAIC,YAA0B,IAAK;MACrD,OAAO,OAAOA,YAAY,KAAK,UAAU,GACrCA,YAAY,CAACjF,KAAK,EAAEE,KAAK,CAAC,GAC1B+E,YAAY;IAClB,CAAC;IAED,MAAMC,YAAY,GAAA/E,aAAA,CAAAA,aAAA,KACb2E,SAAS;MACZC;IAAU,EACX;IAED,MAAMI,OAAO,GAAGC,KAAK,CAACC,OAAO,CAACvE,QAAQ,CAAC,GACnCA,QAAQ,CAACyB,GAAG,CAAE+C,KAAK,IAAKN,cAAc,CAACM,KAAK,CAAC,CAAC,GAC9CN,cAAc,CAAClE,QAAQ,CAAC;IAE5B,IAAIkB,QAAQ,EAAE;MACZ,OACEtF,KAAA,CAAA6I,aAAA,CAAC1H,kBAAkB,CAAC2H,QAAQ;QAC1BC,GAAG,EAAG,WAAU/C,EAAG,EAAE;QACrB1C,KAAK,EAAEkF;MAAa,GAEpBxI,KAAA,CAAA6I,aAAA,CAACvH,qBAAqB,QAAEmH,OAA+B,CAC5B,CAAC;IAElC;IAEA,OACEzI,KAAA,CAAA6I,aAAA,CAACjI,IAAI,CAACoI,IAAI;MACRf,SAAS,EAAC,4BAA4B;MACtCgB,QAAQ,EAAE,CAAC,CAAE;MACbf,QAAQ,EAAEG,UAAW;MACrBU,GAAG,EAAG,WAAU/C,EAAG;IAAE,GAErBhG,KAAA,CAAA6I,aAAA,CAAC1H,kBAAkB,CAAC2H,QAAQ;MAACxF,KAAK,EAAEkF;IAAa,GAC/CxI,KAAA,CAAA6I,aAAA,CAACvH,qBAAqB,QAAEmH,OAA+B,CAC5B,CACpB,CAAC;EAEhB,CAAC,CAAC;EAER,MAAMA,OAAO,GAAGnD,QAAQ,GACtB6C,aAAa,GAEbnI,KAAA,CAAA6I,aAAA,CAACjI,IAAI,CAACsI,KAAK,EAAKlB,SAAS,EAAGG,aAA0B,CACvD;EAED,OACEnI,KAAA,CAAA6I,aAAA,CAAA7I,KAAA,CAAAmJ,QAAA,QACGnF,OAAO,GAAGhE,KAAA,CAAA6I,aAAA,CAAC/H,eAAe,QAAE2H,OAAyB,CAAC,GAAGA,OAAO,EAEjEzI,KAAA,CAAA6I,aAAA,CAAChI,UAAU;IACTuI,IAAI,EAAE5E,OAAO,CAAClC,KAAK,IAAIC,YAAY,CAAE;IACrC8G,KAAK,EAAE,CAAC/G,KAAK,IAAIC,YAAY,GAAG,SAAS,GAAGwE,SAAU;IACtDuC,UAAU,EAAE;MAAEC,GAAG,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAS,CAAE;IACzCC,YAAY,EAAE;EAAM,GAEnB9H,UAAU,CAAC;IAAE8G,OAAO,EAAEnG,KAAK,IAAIC;EAAa,CAAC,CACpC,CACZ,CAAC;AAEP;AAEAV,cAAc,CAAC6H,qBAAqB,GAAG,IAAI;AAC3C,eAAe7H,cAAc"}
@@ -6,19 +6,11 @@ import StringValue from '../String';
6
6
  import useTranslation from '../../hooks/useTranslation';
7
7
  import { useValueProps } from '../../hooks';
8
8
  function PostalCodeAndCity(props) {
9
- var _props$value, _props$label;
9
+ var _useValueProps$value, _useValueProps$value2, _props$value, _props$label;
10
10
  const translations = useTranslation().PostalCodeAndCity;
11
- const city = (props === null || props === void 0 ? void 0 : props.city) || {};
12
- const postalCode = (props === null || props === void 0 ? void 0 : props.postalCode) || {};
13
- const cityProps = useValueProps(city);
14
- if (cityProps.value) {
15
- city.value = cityProps.value;
16
- }
17
- const postalCodeProps = useValueProps(postalCode);
18
- if (postalCodeProps.value) {
19
- postalCode.value = postalCodeProps.value;
20
- }
21
- const value = (_props$value = props.value) !== null && _props$value !== void 0 ? _props$value : (postalCode || city ? [postalCode === null || postalCode === void 0 ? void 0 : postalCode.value, city === null || city === void 0 ? void 0 : city.value].filter(Boolean).join(' ') : undefined) || undefined;
11
+ const cityValue = (_useValueProps$value = useValueProps((props === null || props === void 0 ? void 0 : props.city) || {}).value) !== null && _useValueProps$value !== void 0 ? _useValueProps$value : props.value;
12
+ const postalCodeValue = (_useValueProps$value2 = useValueProps((props === null || props === void 0 ? void 0 : props.postalCode) || {}).value) !== null && _useValueProps$value2 !== void 0 ? _useValueProps$value2 : props.value;
13
+ const value = (_props$value = props.value) !== null && _props$value !== void 0 ? _props$value : (postalCodeValue || cityValue ? [postalCodeValue, cityValue].filter(Boolean).join(' ') : undefined) || undefined;
22
14
  const label = (_props$label = props.label) !== null && _props$label !== void 0 ? _props$label : props.inline ? undefined : translations.label;
23
15
  const stringValueProps = _objectSpread(_objectSpread({}, props), {}, {
24
16
  value,
@@ -1 +1 @@
1
- {"version":3,"file":"PostalCodeAndCity.js","names":["React","StringValue","useTranslation","useValueProps","PostalCodeAndCity","props","_props$value","_props$label","translations","city","postalCode","cityProps","value","postalCodeProps","filter","Boolean","join","undefined","label","inline","stringValueProps","_objectSpread","createElement","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.tsx"],"sourcesContent":["import React from 'react'\nimport StringValue, { Props as StringValueProps } from '../String'\nimport useTranslation from '../../hooks/useTranslation'\nimport { useValueProps } from '../../hooks'\n\nexport type Props = StringValueProps &\n Partial<Record<'postalCode' | 'city', StringValueProps>>\n\nfunction PostalCodeAndCity(props: Props) {\n const translations = useTranslation().PostalCodeAndCity\n\n const city = props?.city || {}\n const postalCode = props?.postalCode || {}\n\n const cityProps = useValueProps(city)\n if (cityProps.value) {\n city.value = cityProps.value\n }\n\n const postalCodeProps = useValueProps(postalCode)\n if (postalCodeProps.value) {\n postalCode.value = postalCodeProps.value\n }\n\n const value =\n props.value ??\n ((postalCode || city\n ? [postalCode?.value, city?.value].filter(Boolean).join(' ')\n : undefined) ||\n undefined)\n const label =\n props.label ?? (props.inline ? undefined : translations.label)\n\n const stringValueProps: Props = {\n ...props,\n value,\n label,\n }\n\n return <StringValue {...stringValueProps} />\n}\n\nPostalCodeAndCity._supportsSpacingProps = true\nexport default PostalCodeAndCity\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,WAAW,MAAqC,WAAW;AAClE,OAAOC,cAAc,MAAM,4BAA4B;AACvD,SAASC,aAAa,QAAQ,aAAa;AAK3C,SAASC,iBAAiBA,CAACC,KAAY,EAAE;EAAA,IAAAC,YAAA,EAAAC,YAAA;EACvC,MAAMC,YAAY,GAAGN,cAAc,CAAC,CAAC,CAACE,iBAAiB;EAEvD,MAAMK,IAAI,GAAG,CAAAJ,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEI,IAAI,KAAI,CAAC,CAAC;EAC9B,MAAMC,UAAU,GAAG,CAAAL,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEK,UAAU,KAAI,CAAC,CAAC;EAE1C,MAAMC,SAAS,GAAGR,aAAa,CAACM,IAAI,CAAC;EACrC,IAAIE,SAAS,CAACC,KAAK,EAAE;IACnBH,IAAI,CAACG,KAAK,GAAGD,SAAS,CAACC,KAAK;EAC9B;EAEA,MAAMC,eAAe,GAAGV,aAAa,CAACO,UAAU,CAAC;EACjD,IAAIG,eAAe,CAACD,KAAK,EAAE;IACzBF,UAAU,CAACE,KAAK,GAAGC,eAAe,CAACD,KAAK;EAC1C;EAEA,MAAMA,KAAK,IAAAN,YAAA,GACTD,KAAK,CAACO,KAAK,cAAAN,YAAA,cAAAA,YAAA,GACV,CAACI,UAAU,IAAID,IAAI,GAChB,CAACC,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEE,KAAK,EAAEH,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEG,KAAK,CAAC,CAACE,MAAM,CAACC,OAAO,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC,GAC1DC,SAAS,KACXA,SAAU;EACd,MAAMC,KAAK,IAAAX,YAAA,GACTF,KAAK,CAACa,KAAK,cAAAX,YAAA,cAAAA,YAAA,GAAKF,KAAK,CAACc,MAAM,GAAGF,SAAS,GAAGT,YAAY,CAACU,KAAM;EAEhE,MAAME,gBAAuB,GAAAC,aAAA,CAAAA,aAAA,KACxBhB,KAAK;IACRO,KAAK;IACLM;EAAK,EACN;EAED,OAAOlB,KAAA,CAAAsB,aAAA,CAACrB,WAAW,EAAKmB,gBAAmB,CAAC;AAC9C;AAEAhB,iBAAiB,CAACmB,qBAAqB,GAAG,IAAI;AAC9C,eAAenB,iBAAiB"}
1
+ {"version":3,"file":"PostalCodeAndCity.js","names":["React","StringValue","useTranslation","useValueProps","PostalCodeAndCity","props","_useValueProps$value","_useValueProps$value2","_props$value","_props$label","translations","cityValue","city","value","postalCodeValue","postalCode","filter","Boolean","join","undefined","label","inline","stringValueProps","_objectSpread","createElement","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Value/PostalCodeAndCity/PostalCodeAndCity.tsx"],"sourcesContent":["import React from 'react'\nimport StringValue, { Props as StringValueProps } from '../String'\nimport useTranslation from '../../hooks/useTranslation'\nimport { useValueProps } from '../../hooks'\n\nexport type Props = StringValueProps &\n Partial<Record<'postalCode' | 'city', StringValueProps>>\n\nfunction PostalCodeAndCity(props: Props) {\n const translations = useTranslation().PostalCodeAndCity\n\n const cityValue = useValueProps(props?.city || {}).value ?? props.value\n const postalCodeValue =\n useValueProps(props?.postalCode || {}).value ?? props.value\n\n const value =\n props.value ??\n ((postalCodeValue || cityValue\n ? [postalCodeValue, cityValue].filter(Boolean).join(' ')\n : undefined) ||\n undefined)\n\n const label =\n props.label ?? (props.inline ? undefined : translations.label)\n\n const stringValueProps: Props = {\n ...props,\n value,\n label,\n }\n\n return <StringValue {...stringValueProps} />\n}\n\nPostalCodeAndCity._supportsSpacingProps = true\nexport default PostalCodeAndCity\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,WAAW,MAAqC,WAAW;AAClE,OAAOC,cAAc,MAAM,4BAA4B;AACvD,SAASC,aAAa,QAAQ,aAAa;AAK3C,SAASC,iBAAiBA,CAACC,KAAY,EAAE;EAAA,IAAAC,oBAAA,EAAAC,qBAAA,EAAAC,YAAA,EAAAC,YAAA;EACvC,MAAMC,YAAY,GAAGR,cAAc,CAAC,CAAC,CAACE,iBAAiB;EAEvD,MAAMO,SAAS,IAAAL,oBAAA,GAAGH,aAAa,CAAC,CAAAE,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEO,IAAI,KAAI,CAAC,CAAC,CAAC,CAACC,KAAK,cAAAP,oBAAA,cAAAA,oBAAA,GAAID,KAAK,CAACQ,KAAK;EACvE,MAAMC,eAAe,IAAAP,qBAAA,GACnBJ,aAAa,CAAC,CAAAE,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEU,UAAU,KAAI,CAAC,CAAC,CAAC,CAACF,KAAK,cAAAN,qBAAA,cAAAA,qBAAA,GAAIF,KAAK,CAACQ,KAAK;EAE7D,MAAMA,KAAK,IAAAL,YAAA,GACTH,KAAK,CAACQ,KAAK,cAAAL,YAAA,cAAAA,YAAA,GACV,CAACM,eAAe,IAAIH,SAAS,GAC1B,CAACG,eAAe,EAAEH,SAAS,CAAC,CAACK,MAAM,CAACC,OAAO,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC,GACtDC,SAAS,KACXA,SAAU;EAEd,MAAMC,KAAK,IAAAX,YAAA,GACTJ,KAAK,CAACe,KAAK,cAAAX,YAAA,cAAAA,YAAA,GAAKJ,KAAK,CAACgB,MAAM,GAAGF,SAAS,GAAGT,YAAY,CAACU,KAAM;EAEhE,MAAME,gBAAuB,GAAAC,aAAA,CAAAA,aAAA,KACxBlB,KAAK;IACRQ,KAAK;IACLO;EAAK,EACN;EAED,OAAOpB,KAAA,CAAAwB,aAAA,CAACvB,WAAW,EAAKqB,gBAAmB,CAAC;AAC9C;AAEAlB,iBAAiB,CAACqB,qBAAqB,GAAG,IAAI;AAC9C,eAAerB,iBAAiB"}