@dnb/eufemia 10.44.0 → 10.45.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 (536) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/cjs/components/checkbox/style/dnb-checkbox.scss +1 -1
  3. package/cjs/components/radio/style/dnb-radio.scss +1 -1
  4. package/cjs/components/table/TableStickyHeader.js.map +1 -1
  5. package/cjs/components/upload/Upload.js +2 -1
  6. package/cjs/components/upload/Upload.js.map +1 -1
  7. package/cjs/components/upload/UploadDocs.d.ts +1 -0
  8. package/cjs/components/upload/UploadDocs.js +17 -4
  9. package/cjs/components/upload/UploadDocs.js.map +1 -1
  10. package/cjs/components/upload/UploadInfo.js +57 -5
  11. package/cjs/components/upload/UploadInfo.js.map +1 -1
  12. package/cjs/components/upload/UploadVerify.d.ts +4 -2
  13. package/cjs/components/upload/UploadVerify.js +32 -5
  14. package/cjs/components/upload/UploadVerify.js.map +1 -1
  15. package/cjs/components/upload/style/dnb-upload.css +15 -0
  16. package/cjs/components/upload/style/dnb-upload.min.css +1 -1
  17. package/cjs/components/upload/style/dnb-upload.scss +17 -0
  18. package/cjs/components/upload/types.d.ts +7 -1
  19. package/cjs/components/upload/types.js.map +1 -1
  20. package/cjs/extensions/forms/DataContext/Context.d.ts +8 -3
  21. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  22. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +8 -0
  23. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
  24. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +8 -0
  25. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  26. package/cjs/extensions/forms/DataContext/Provider/Provider.js +22 -7
  27. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  28. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +2 -1
  29. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +29 -24
  30. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  31. package/cjs/extensions/forms/Field/Name/Name.js +2 -2
  32. package/cjs/extensions/forms/Field/Name/Name.js.map +1 -1
  33. package/cjs/extensions/forms/Field/Selection/Selection.d.ts +3 -0
  34. package/cjs/extensions/forms/Field/Selection/Selection.js +28 -20
  35. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  36. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +3 -3
  37. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  38. package/cjs/extensions/forms/Form/Element/Element.js +11 -9
  39. package/cjs/extensions/forms/Form/Element/Element.js.map +1 -1
  40. package/cjs/extensions/forms/Form/Isolation/Isolation.js +25 -7
  41. package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  42. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +13 -5
  43. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
  44. package/cjs/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js +10 -13
  45. package/cjs/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js.map +1 -1
  46. package/cjs/extensions/forms/Iterate/AnimatedContainer/AnimatedContainer.js +3 -3
  47. package/cjs/extensions/forms/Iterate/AnimatedContainer/AnimatedContainer.js.map +1 -1
  48. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +2 -2
  49. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  50. package/cjs/extensions/forms/Iterate/Array/Array.js +7 -5
  51. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  52. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +1 -3
  53. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js +25 -19
  54. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  55. package/cjs/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +10 -0
  56. package/cjs/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
  57. package/cjs/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +44 -14
  58. package/cjs/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
  59. package/cjs/extensions/forms/Iterate/{IterateElementContext.d.ts → IterateItemContext.d.ts} +3 -3
  60. package/cjs/extensions/forms/Iterate/{IterateElementContext.js → IterateItemContext.js} +3 -3
  61. package/cjs/extensions/forms/Iterate/IterateItemContext.js.map +1 -0
  62. package/cjs/extensions/forms/Iterate/PushButton/PushButton.js +3 -3
  63. package/cjs/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  64. package/cjs/extensions/forms/Iterate/PushButton/PushButtonDocs.js +5 -0
  65. package/cjs/extensions/forms/Iterate/PushButton/PushButtonDocs.js.map +1 -1
  66. package/cjs/extensions/forms/Iterate/PushContainer/OpenButton.d.ts +4 -0
  67. package/cjs/extensions/forms/Iterate/PushContainer/OpenButton.js +42 -0
  68. package/cjs/extensions/forms/Iterate/PushContainer/OpenButton.js.map +1 -0
  69. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +37 -0
  70. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +95 -0
  71. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -0
  72. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerContext.d.ts +11 -0
  73. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerContext.js +12 -0
  74. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerContext.js.map +1 -0
  75. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.d.ts +3 -0
  76. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +42 -0
  77. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -0
  78. package/cjs/extensions/forms/Iterate/PushContainer/index.d.ts +2 -0
  79. package/cjs/extensions/forms/Iterate/PushContainer/index.js +27 -0
  80. package/cjs/extensions/forms/Iterate/PushContainer/index.js.map +1 -0
  81. package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js +4 -4
  82. package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  83. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +4 -0
  84. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js +13 -5
  85. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  86. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
  87. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
  88. package/cjs/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +3 -3
  89. package/cjs/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
  90. package/cjs/extensions/forms/Iterate/hooks/useItem.d.ts +1 -0
  91. package/cjs/extensions/forms/Iterate/hooks/useItem.js +15 -0
  92. package/cjs/extensions/forms/Iterate/hooks/useItem.js.map +1 -0
  93. package/cjs/extensions/forms/Iterate/index.d.ts +3 -1
  94. package/cjs/extensions/forms/Iterate/index.js +17 -3
  95. package/cjs/extensions/forms/Iterate/index.js.map +1 -1
  96. package/cjs/extensions/forms/Value/ArraySelection/ArraySelection.d.ts +19 -0
  97. package/cjs/extensions/forms/Value/ArraySelection/ArraySelection.js +81 -0
  98. package/cjs/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -0
  99. package/cjs/extensions/forms/Value/ArraySelection/ArraySelectionDocs.d.ts +2 -0
  100. package/cjs/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js +15 -0
  101. package/cjs/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js.map +1 -0
  102. package/cjs/extensions/forms/Value/ArraySelection/index.d.ts +2 -0
  103. package/cjs/extensions/forms/Value/ArraySelection/index.js +27 -0
  104. package/cjs/extensions/forms/Value/ArraySelection/index.js.map +1 -0
  105. package/cjs/extensions/forms/Value/Selection/Selection.d.ts +9 -0
  106. package/cjs/extensions/forms/Value/Selection/Selection.js +58 -0
  107. package/cjs/extensions/forms/Value/Selection/Selection.js.map +1 -0
  108. package/cjs/extensions/forms/Value/Selection/SelectionDocs.d.ts +2 -0
  109. package/cjs/extensions/forms/Value/Selection/SelectionDocs.js +15 -0
  110. package/cjs/extensions/forms/Value/Selection/SelectionDocs.js.map +1 -0
  111. package/cjs/extensions/forms/Value/Selection/index.d.ts +2 -0
  112. package/cjs/extensions/forms/Value/Selection/index.js +27 -0
  113. package/cjs/extensions/forms/Value/Selection/index.js.map +1 -0
  114. package/cjs/extensions/forms/Value/ValueDocs.js +6 -1
  115. package/cjs/extensions/forms/Value/ValueDocs.js.map +1 -1
  116. package/cjs/extensions/forms/Value/index.d.ts +2 -0
  117. package/cjs/extensions/forms/Value/index.js +14 -0
  118. package/cjs/extensions/forms/Value/index.js.map +1 -1
  119. package/cjs/extensions/forms/ValueBlock/ValueBlock.js +3 -3
  120. package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  121. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +27 -11
  122. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  123. package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +1 -0
  124. package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  125. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +3 -0
  126. package/cjs/extensions/forms/constants/locales/en-GB.js +3 -0
  127. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  128. package/cjs/extensions/forms/constants/locales/en-US.d.ts +3 -0
  129. package/cjs/extensions/forms/constants/locales/index.d.ts +6 -0
  130. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +3 -0
  131. package/cjs/extensions/forms/constants/locales/nb-NO.js +3 -0
  132. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  133. package/cjs/extensions/forms/hooks/useDataValue.d.ts +1 -0
  134. package/cjs/extensions/forms/hooks/useDataValue.js +11 -4
  135. package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
  136. package/cjs/extensions/forms/hooks/useExternalValue.js +4 -4
  137. package/cjs/extensions/forms/hooks/useExternalValue.js.map +1 -1
  138. package/cjs/extensions/forms/hooks/useFieldProps.js +11 -9
  139. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  140. package/cjs/extensions/forms/hooks/usePath.js +3 -3
  141. package/cjs/extensions/forms/hooks/usePath.js.map +1 -1
  142. package/cjs/extensions/forms/hooks/useValueProps.js +4 -1
  143. package/cjs/extensions/forms/hooks/useValueProps.js.map +1 -1
  144. package/cjs/extensions/forms/types.d.ts +4 -0
  145. package/cjs/extensions/forms/types.js.map +1 -1
  146. package/cjs/shared/Eufemia.d.ts +1 -1
  147. package/cjs/shared/Eufemia.js +2 -2
  148. package/cjs/shared/Eufemia.js.map +1 -1
  149. package/cjs/shared/locales/en-GB.d.ts +1 -0
  150. package/cjs/shared/locales/en-GB.js +1 -0
  151. package/cjs/shared/locales/en-GB.js.map +1 -1
  152. package/cjs/shared/locales/en-US.d.ts +1 -0
  153. package/cjs/shared/locales/index.d.ts +2 -0
  154. package/cjs/shared/locales/nb-NO.d.ts +1 -0
  155. package/cjs/shared/locales/nb-NO.js +2 -1
  156. package/cjs/shared/locales/nb-NO.js.map +1 -1
  157. package/cjs/shared/useTheme.d.ts +4 -10
  158. package/cjs/shared/useTheme.js +7 -5
  159. package/cjs/shared/useTheme.js.map +1 -1
  160. package/cjs/style/core/scopes.scss +1 -1
  161. package/cjs/style/dnb-ui-basis.css +1 -1
  162. package/cjs/style/dnb-ui-basis.min.css +1 -1
  163. package/cjs/style/dnb-ui-body.css +1 -1
  164. package/cjs/style/dnb-ui-body.min.css +1 -1
  165. package/cjs/style/dnb-ui-components.css +15 -0
  166. package/cjs/style/dnb-ui-components.min.css +1 -1
  167. package/cjs/style/dnb-ui-core.css +1 -1
  168. package/cjs/style/dnb-ui-core.min.css +1 -1
  169. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +15 -0
  170. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  171. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +15 -0
  172. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  173. package/cjs/style/themes/theme-ui/ui-theme-components.css +15 -0
  174. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  175. package/components/checkbox/style/dnb-checkbox.scss +1 -1
  176. package/components/radio/style/dnb-radio.scss +1 -1
  177. package/components/table/TableStickyHeader.js.map +1 -1
  178. package/components/upload/Upload.js +2 -1
  179. package/components/upload/Upload.js.map +1 -1
  180. package/components/upload/UploadDocs.d.ts +1 -0
  181. package/components/upload/UploadDocs.js +15 -3
  182. package/components/upload/UploadDocs.js.map +1 -1
  183. package/components/upload/UploadInfo.js +57 -5
  184. package/components/upload/UploadInfo.js.map +1 -1
  185. package/components/upload/UploadVerify.d.ts +4 -2
  186. package/components/upload/UploadVerify.js +30 -5
  187. package/components/upload/UploadVerify.js.map +1 -1
  188. package/components/upload/style/dnb-upload.css +15 -0
  189. package/components/upload/style/dnb-upload.min.css +1 -1
  190. package/components/upload/style/dnb-upload.scss +17 -0
  191. package/components/upload/types.d.ts +7 -1
  192. package/components/upload/types.js.map +1 -1
  193. package/es/components/checkbox/style/dnb-checkbox.scss +1 -1
  194. package/es/components/radio/style/dnb-radio.scss +1 -1
  195. package/es/components/table/TableStickyHeader.js.map +1 -1
  196. package/es/components/upload/Upload.js +2 -1
  197. package/es/components/upload/Upload.js.map +1 -1
  198. package/es/components/upload/UploadDocs.d.ts +1 -0
  199. package/es/components/upload/UploadDocs.js +15 -3
  200. package/es/components/upload/UploadDocs.js.map +1 -1
  201. package/es/components/upload/UploadInfo.js +57 -5
  202. package/es/components/upload/UploadInfo.js.map +1 -1
  203. package/es/components/upload/UploadVerify.d.ts +4 -2
  204. package/es/components/upload/UploadVerify.js +30 -5
  205. package/es/components/upload/UploadVerify.js.map +1 -1
  206. package/es/components/upload/style/dnb-upload.css +15 -0
  207. package/es/components/upload/style/dnb-upload.min.css +1 -1
  208. package/es/components/upload/style/dnb-upload.scss +17 -0
  209. package/es/components/upload/types.d.ts +7 -1
  210. package/es/components/upload/types.js.map +1 -1
  211. package/es/extensions/forms/DataContext/Context.d.ts +8 -3
  212. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  213. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +8 -0
  214. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
  215. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +9 -1
  216. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  217. package/es/extensions/forms/DataContext/Provider/Provider.js +22 -7
  218. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  219. package/es/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +2 -1
  220. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +28 -24
  221. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  222. package/es/extensions/forms/Field/Name/Name.js +2 -2
  223. package/es/extensions/forms/Field/Name/Name.js.map +1 -1
  224. package/es/extensions/forms/Field/Selection/Selection.d.ts +3 -0
  225. package/es/extensions/forms/Field/Selection/Selection.js +22 -16
  226. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  227. package/es/extensions/forms/FieldBlock/FieldBlock.js +3 -3
  228. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  229. package/es/extensions/forms/Form/Element/Element.js +9 -9
  230. package/es/extensions/forms/Form/Element/Element.js.map +1 -1
  231. package/es/extensions/forms/Form/Isolation/Isolation.js +26 -8
  232. package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  233. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +13 -5
  234. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
  235. package/es/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js +10 -11
  236. package/es/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js.map +1 -1
  237. package/es/extensions/forms/Iterate/AnimatedContainer/AnimatedContainer.js +3 -3
  238. package/es/extensions/forms/Iterate/AnimatedContainer/AnimatedContainer.js.map +1 -1
  239. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +2 -2
  240. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  241. package/es/extensions/forms/Iterate/Array/Array.js +7 -5
  242. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  243. package/es/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +1 -3
  244. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js +26 -20
  245. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  246. package/es/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +10 -0
  247. package/es/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
  248. package/es/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +44 -14
  249. package/es/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
  250. package/{extensions/forms/Iterate/IterateElementContext.d.ts → es/extensions/forms/Iterate/IterateItemContext.d.ts} +3 -3
  251. package/es/extensions/forms/Iterate/IterateItemContext.js +4 -0
  252. package/es/extensions/forms/Iterate/IterateItemContext.js.map +1 -0
  253. package/es/extensions/forms/Iterate/PushButton/PushButton.js +3 -3
  254. package/es/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  255. package/es/extensions/forms/Iterate/PushButton/PushButtonDocs.js +5 -0
  256. package/es/extensions/forms/Iterate/PushButton/PushButtonDocs.js.map +1 -1
  257. package/es/extensions/forms/Iterate/PushContainer/OpenButton.d.ts +4 -0
  258. package/es/extensions/forms/Iterate/PushContainer/OpenButton.js +32 -0
  259. package/es/extensions/forms/Iterate/PushContainer/OpenButton.js.map +1 -0
  260. package/es/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +37 -0
  261. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +80 -0
  262. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -0
  263. package/es/extensions/forms/Iterate/PushContainer/PushContainerContext.d.ts +11 -0
  264. package/es/extensions/forms/Iterate/PushContainer/PushContainerContext.js +6 -0
  265. package/es/extensions/forms/Iterate/PushContainer/PushContainerContext.js.map +1 -0
  266. package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.d.ts +3 -0
  267. package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +34 -0
  268. package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -0
  269. package/es/extensions/forms/Iterate/PushContainer/index.d.ts +2 -0
  270. package/es/extensions/forms/Iterate/PushContainer/index.js +3 -0
  271. package/es/extensions/forms/Iterate/PushContainer/index.js.map +1 -0
  272. package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js +4 -4
  273. package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  274. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +4 -0
  275. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js +15 -6
  276. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  277. package/es/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
  278. package/es/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
  279. package/es/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +3 -3
  280. package/es/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
  281. package/es/extensions/forms/Iterate/hooks/useItem.d.ts +1 -0
  282. package/es/extensions/forms/Iterate/hooks/useItem.js +9 -0
  283. package/es/extensions/forms/Iterate/hooks/useItem.js.map +1 -0
  284. package/es/extensions/forms/Iterate/index.d.ts +3 -1
  285. package/es/extensions/forms/Iterate/index.js +3 -1
  286. package/es/extensions/forms/Iterate/index.js.map +1 -1
  287. package/es/extensions/forms/Value/ArraySelection/ArraySelection.d.ts +19 -0
  288. package/es/extensions/forms/Value/ArraySelection/ArraySelection.js +66 -0
  289. package/es/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -0
  290. package/es/extensions/forms/Value/ArraySelection/ArraySelectionDocs.d.ts +2 -0
  291. package/es/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js +8 -0
  292. package/es/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js.map +1 -0
  293. package/es/extensions/forms/Value/ArraySelection/index.d.ts +2 -0
  294. package/es/extensions/forms/Value/ArraySelection/index.js +3 -0
  295. package/es/extensions/forms/Value/ArraySelection/index.js.map +1 -0
  296. package/es/extensions/forms/Value/Selection/Selection.d.ts +9 -0
  297. package/es/extensions/forms/Value/Selection/Selection.js +48 -0
  298. package/es/extensions/forms/Value/Selection/Selection.js.map +1 -0
  299. package/es/extensions/forms/Value/Selection/SelectionDocs.d.ts +2 -0
  300. package/es/extensions/forms/Value/Selection/SelectionDocs.js +8 -0
  301. package/es/extensions/forms/Value/Selection/SelectionDocs.js.map +1 -0
  302. package/es/extensions/forms/Value/Selection/index.d.ts +2 -0
  303. package/es/extensions/forms/Value/Selection/index.js +3 -0
  304. package/es/extensions/forms/Value/Selection/index.js.map +1 -0
  305. package/es/extensions/forms/Value/ValueDocs.js +6 -1
  306. package/es/extensions/forms/Value/ValueDocs.js.map +1 -1
  307. package/es/extensions/forms/Value/index.d.ts +2 -0
  308. package/es/extensions/forms/Value/index.js +2 -0
  309. package/es/extensions/forms/Value/index.js.map +1 -1
  310. package/es/extensions/forms/ValueBlock/ValueBlock.js +3 -3
  311. package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  312. package/es/extensions/forms/Wizard/Container/WizardContainer.js +16 -1
  313. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  314. package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +1 -0
  315. package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  316. package/es/extensions/forms/constants/locales/en-GB.d.ts +3 -0
  317. package/es/extensions/forms/constants/locales/en-GB.js +3 -0
  318. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  319. package/es/extensions/forms/constants/locales/en-US.d.ts +3 -0
  320. package/es/extensions/forms/constants/locales/index.d.ts +6 -0
  321. package/es/extensions/forms/constants/locales/nb-NO.d.ts +3 -0
  322. package/es/extensions/forms/constants/locales/nb-NO.js +3 -0
  323. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  324. package/es/extensions/forms/hooks/useDataValue.d.ts +1 -0
  325. package/es/extensions/forms/hooks/useDataValue.js +11 -4
  326. package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
  327. package/es/extensions/forms/hooks/useExternalValue.js +4 -4
  328. package/es/extensions/forms/hooks/useExternalValue.js.map +1 -1
  329. package/es/extensions/forms/hooks/useFieldProps.js +11 -9
  330. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  331. package/es/extensions/forms/hooks/usePath.js +2 -2
  332. package/es/extensions/forms/hooks/usePath.js.map +1 -1
  333. package/es/extensions/forms/hooks/useValueProps.js +4 -1
  334. package/es/extensions/forms/hooks/useValueProps.js.map +1 -1
  335. package/es/extensions/forms/types.d.ts +4 -0
  336. package/es/extensions/forms/types.js.map +1 -1
  337. package/es/shared/Eufemia.d.ts +1 -1
  338. package/es/shared/Eufemia.js +2 -2
  339. package/es/shared/Eufemia.js.map +1 -1
  340. package/es/shared/locales/en-GB.d.ts +1 -0
  341. package/es/shared/locales/en-GB.js +1 -0
  342. package/es/shared/locales/en-GB.js.map +1 -1
  343. package/es/shared/locales/en-US.d.ts +1 -0
  344. package/es/shared/locales/index.d.ts +2 -0
  345. package/es/shared/locales/nb-NO.d.ts +1 -0
  346. package/es/shared/locales/nb-NO.js +2 -1
  347. package/es/shared/locales/nb-NO.js.map +1 -1
  348. package/es/shared/useTheme.d.ts +4 -10
  349. package/es/shared/useTheme.js +7 -5
  350. package/es/shared/useTheme.js.map +1 -1
  351. package/es/style/core/scopes.scss +1 -1
  352. package/es/style/dnb-ui-basis.css +1 -1
  353. package/es/style/dnb-ui-basis.min.css +1 -1
  354. package/es/style/dnb-ui-body.css +1 -1
  355. package/es/style/dnb-ui-body.min.css +1 -1
  356. package/es/style/dnb-ui-components.css +15 -0
  357. package/es/style/dnb-ui-components.min.css +1 -1
  358. package/es/style/dnb-ui-core.css +1 -1
  359. package/es/style/dnb-ui-core.min.css +1 -1
  360. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +15 -0
  361. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  362. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +15 -0
  363. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  364. package/es/style/themes/theme-ui/ui-theme-components.css +15 -0
  365. package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  366. package/esm/dnb-ui-basis.min.mjs +1 -1
  367. package/esm/dnb-ui-components.min.mjs +1 -1
  368. package/esm/dnb-ui-elements.min.mjs +1 -1
  369. package/esm/dnb-ui-extensions.min.mjs +5 -5
  370. package/esm/dnb-ui-lib.min.mjs +1 -1
  371. package/extensions/forms/DataContext/Context.d.ts +8 -3
  372. package/extensions/forms/DataContext/Context.js.map +1 -1
  373. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +8 -0
  374. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
  375. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +9 -1
  376. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  377. package/extensions/forms/DataContext/Provider/Provider.js +22 -7
  378. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  379. package/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +2 -1
  380. package/extensions/forms/Field/ArraySelection/ArraySelection.js +28 -24
  381. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  382. package/extensions/forms/Field/Name/Name.js +2 -2
  383. package/extensions/forms/Field/Name/Name.js.map +1 -1
  384. package/extensions/forms/Field/Selection/Selection.d.ts +3 -0
  385. package/extensions/forms/Field/Selection/Selection.js +27 -20
  386. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  387. package/extensions/forms/FieldBlock/FieldBlock.js +3 -3
  388. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  389. package/extensions/forms/Form/Element/Element.js +9 -9
  390. package/extensions/forms/Form/Element/Element.js.map +1 -1
  391. package/extensions/forms/Form/Isolation/Isolation.js +26 -8
  392. package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  393. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +13 -5
  394. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -1
  395. package/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js +10 -11
  396. package/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js.map +1 -1
  397. package/extensions/forms/Iterate/AnimatedContainer/AnimatedContainer.js +3 -3
  398. package/extensions/forms/Iterate/AnimatedContainer/AnimatedContainer.js.map +1 -1
  399. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +2 -2
  400. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  401. package/extensions/forms/Iterate/Array/Array.js +7 -5
  402. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  403. package/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +1 -3
  404. package/extensions/forms/Iterate/EditContainer/EditContainer.js +26 -20
  405. package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  406. package/extensions/forms/Iterate/EditContainer/EditContainerDocs.js +10 -0
  407. package/extensions/forms/Iterate/EditContainer/EditContainerDocs.js.map +1 -1
  408. package/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +44 -14
  409. package/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
  410. package/{es/extensions/forms/Iterate/IterateElementContext.d.ts → extensions/forms/Iterate/IterateItemContext.d.ts} +3 -3
  411. package/extensions/forms/Iterate/IterateItemContext.js +4 -0
  412. package/extensions/forms/Iterate/IterateItemContext.js.map +1 -0
  413. package/extensions/forms/Iterate/PushButton/PushButton.js +3 -3
  414. package/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  415. package/extensions/forms/Iterate/PushButton/PushButtonDocs.js +5 -0
  416. package/extensions/forms/Iterate/PushButton/PushButtonDocs.js.map +1 -1
  417. package/extensions/forms/Iterate/PushContainer/OpenButton.d.ts +4 -0
  418. package/extensions/forms/Iterate/PushContainer/OpenButton.js +32 -0
  419. package/extensions/forms/Iterate/PushContainer/OpenButton.js.map +1 -0
  420. package/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +37 -0
  421. package/extensions/forms/Iterate/PushContainer/PushContainer.js +83 -0
  422. package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -0
  423. package/extensions/forms/Iterate/PushContainer/PushContainerContext.d.ts +11 -0
  424. package/extensions/forms/Iterate/PushContainer/PushContainerContext.js +6 -0
  425. package/extensions/forms/Iterate/PushContainer/PushContainerContext.js.map +1 -0
  426. package/extensions/forms/Iterate/PushContainer/PushContainerDocs.d.ts +3 -0
  427. package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +34 -0
  428. package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -0
  429. package/extensions/forms/Iterate/PushContainer/index.d.ts +2 -0
  430. package/extensions/forms/Iterate/PushContainer/index.js +3 -0
  431. package/extensions/forms/Iterate/PushContainer/index.js.map +1 -0
  432. package/extensions/forms/Iterate/RemoveButton/RemoveButton.js +4 -4
  433. package/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  434. package/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +4 -0
  435. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js +15 -6
  436. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  437. package/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js +5 -0
  438. package/extensions/forms/Iterate/ViewContainer/ViewContainerDocs.js.map +1 -1
  439. package/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +3 -3
  440. package/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
  441. package/extensions/forms/Iterate/hooks/useItem.d.ts +1 -0
  442. package/extensions/forms/Iterate/hooks/useItem.js +9 -0
  443. package/extensions/forms/Iterate/hooks/useItem.js.map +1 -0
  444. package/extensions/forms/Iterate/index.d.ts +3 -1
  445. package/extensions/forms/Iterate/index.js +3 -1
  446. package/extensions/forms/Iterate/index.js.map +1 -1
  447. package/extensions/forms/Value/ArraySelection/ArraySelection.d.ts +19 -0
  448. package/extensions/forms/Value/ArraySelection/ArraySelection.js +70 -0
  449. package/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -0
  450. package/extensions/forms/Value/ArraySelection/ArraySelectionDocs.d.ts +2 -0
  451. package/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js +8 -0
  452. package/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js.map +1 -0
  453. package/extensions/forms/Value/ArraySelection/index.d.ts +2 -0
  454. package/extensions/forms/Value/ArraySelection/index.js +3 -0
  455. package/extensions/forms/Value/ArraySelection/index.js.map +1 -0
  456. package/extensions/forms/Value/Selection/Selection.d.ts +9 -0
  457. package/extensions/forms/Value/Selection/Selection.js +48 -0
  458. package/extensions/forms/Value/Selection/Selection.js.map +1 -0
  459. package/extensions/forms/Value/Selection/SelectionDocs.d.ts +2 -0
  460. package/extensions/forms/Value/Selection/SelectionDocs.js +8 -0
  461. package/extensions/forms/Value/Selection/SelectionDocs.js.map +1 -0
  462. package/extensions/forms/Value/Selection/index.d.ts +2 -0
  463. package/extensions/forms/Value/Selection/index.js +3 -0
  464. package/extensions/forms/Value/Selection/index.js.map +1 -0
  465. package/extensions/forms/Value/ValueDocs.js +6 -1
  466. package/extensions/forms/Value/ValueDocs.js.map +1 -1
  467. package/extensions/forms/Value/index.d.ts +2 -0
  468. package/extensions/forms/Value/index.js +2 -0
  469. package/extensions/forms/Value/index.js.map +1 -1
  470. package/extensions/forms/ValueBlock/ValueBlock.js +3 -3
  471. package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  472. package/extensions/forms/Wizard/Container/WizardContainer.js +27 -11
  473. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  474. package/extensions/forms/Wizard/Context/WizardContext.d.ts +1 -0
  475. package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  476. package/extensions/forms/constants/locales/en-GB.d.ts +3 -0
  477. package/extensions/forms/constants/locales/en-GB.js +3 -0
  478. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  479. package/extensions/forms/constants/locales/en-US.d.ts +3 -0
  480. package/extensions/forms/constants/locales/index.d.ts +6 -0
  481. package/extensions/forms/constants/locales/nb-NO.d.ts +3 -0
  482. package/extensions/forms/constants/locales/nb-NO.js +3 -0
  483. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  484. package/extensions/forms/hooks/useDataValue.d.ts +1 -0
  485. package/extensions/forms/hooks/useDataValue.js +11 -4
  486. package/extensions/forms/hooks/useDataValue.js.map +1 -1
  487. package/extensions/forms/hooks/useExternalValue.js +4 -4
  488. package/extensions/forms/hooks/useExternalValue.js.map +1 -1
  489. package/extensions/forms/hooks/useFieldProps.js +11 -9
  490. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  491. package/extensions/forms/hooks/usePath.js +2 -2
  492. package/extensions/forms/hooks/usePath.js.map +1 -1
  493. package/extensions/forms/hooks/useValueProps.js +4 -1
  494. package/extensions/forms/hooks/useValueProps.js.map +1 -1
  495. package/extensions/forms/types.d.ts +4 -0
  496. package/extensions/forms/types.js.map +1 -1
  497. package/package.json +1 -1
  498. package/shared/Eufemia.d.ts +1 -1
  499. package/shared/Eufemia.js +2 -2
  500. package/shared/Eufemia.js.map +1 -1
  501. package/shared/locales/en-GB.d.ts +1 -0
  502. package/shared/locales/en-GB.js +1 -0
  503. package/shared/locales/en-GB.js.map +1 -1
  504. package/shared/locales/en-US.d.ts +1 -0
  505. package/shared/locales/index.d.ts +2 -0
  506. package/shared/locales/nb-NO.d.ts +1 -0
  507. package/shared/locales/nb-NO.js +2 -1
  508. package/shared/locales/nb-NO.js.map +1 -1
  509. package/shared/useTheme.d.ts +4 -10
  510. package/shared/useTheme.js +7 -5
  511. package/shared/useTheme.js.map +1 -1
  512. package/style/core/scopes.scss +1 -1
  513. package/style/dnb-ui-basis.css +1 -1
  514. package/style/dnb-ui-basis.min.css +1 -1
  515. package/style/dnb-ui-body.css +1 -1
  516. package/style/dnb-ui-body.min.css +1 -1
  517. package/style/dnb-ui-components.css +15 -0
  518. package/style/dnb-ui-components.min.css +1 -1
  519. package/style/dnb-ui-core.css +1 -1
  520. package/style/dnb-ui-core.min.css +1 -1
  521. package/style/themes/theme-eiendom/eiendom-theme-components.css +15 -0
  522. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  523. package/style/themes/theme-sbanken/sbanken-theme-components.css +15 -0
  524. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  525. package/style/themes/theme-ui/ui-theme-components.css +15 -0
  526. package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  527. package/umd/dnb-ui-basis.min.js +1 -1
  528. package/umd/dnb-ui-components.min.js +1 -1
  529. package/umd/dnb-ui-elements.min.js +1 -1
  530. package/umd/dnb-ui-extensions.min.js +5 -5
  531. package/umd/dnb-ui-lib.min.js +1 -1
  532. package/cjs/extensions/forms/Iterate/IterateElementContext.js.map +0 -1
  533. package/es/extensions/forms/Iterate/IterateElementContext.js +0 -4
  534. package/es/extensions/forms/Iterate/IterateElementContext.js.map +0 -1
  535. package/extensions/forms/Iterate/IterateElementContext.js +0 -4
  536. package/extensions/forms/Iterate/IterateElementContext.js.map +0 -1
@@ -1,21 +1,24 @@
1
+ "use client";
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
5
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
6
  const _excluded = ["value", "error", "title", "help", "className", "children"];
5
7
  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; }
6
8
  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; }
7
- import React from 'react';
9
+ import React, { useCallback, useContext, useMemo } from 'react';
8
10
  import { Checkbox, HelpButton, ToggleButton } from '../../../../components';
9
11
  import classnames from 'classnames';
10
- import OptionField from '../Option';
11
12
  import FieldBlock from '../../FieldBlock';
12
13
  import { useFieldProps } from '../../hooks';
13
14
  import { pickSpacingProps } from '../../../../components/flex/utils';
14
- import { getStatus } from '../Selection';
15
+ import { getStatus, mapOptions } from '../Selection';
15
16
  import ToggleButtonGroupContext from '../../../../components/toggle-button/ToggleButtonGroupContext';
17
+ import DataContext from '../../DataContext/Context';
16
18
  function ArraySelection(props) {
17
19
  const {
18
20
  id,
21
+ path,
19
22
  className,
20
23
  variant = 'checkbox',
21
24
  layout = 'vertical',
@@ -50,8 +53,9 @@ function ArraySelection(props) {
50
53
  title: help.title
51
54
  }, help.content) : undefined)
52
55
  }, pickSpacingProps(props));
53
- const options = getCheckboxOrToggleOptions({
56
+ const options = useCheckboxOrToggleOptions({
54
57
  id,
58
+ path,
55
59
  variant,
56
60
  info,
57
61
  warning,
@@ -76,9 +80,10 @@ function ArraySelection(props) {
76
80
  }, options));
77
81
  }
78
82
  }
79
- export function getCheckboxOrToggleOptions(_ref) {
83
+ export function useCheckboxOrToggleOptions(_ref) {
80
84
  let {
81
85
  id,
86
+ path,
82
87
  variant = 'checkbox',
83
88
  info,
84
89
  warning,
@@ -90,9 +95,12 @@ export function getCheckboxOrToggleOptions(_ref) {
90
95
  hasError,
91
96
  handleChange
92
97
  } = _ref;
93
- const optionsCount = React.Children.count(children);
94
- const Component = variant === 'checkbox' ? Checkbox : ToggleButton;
95
- const createOption = (props, i) => {
98
+ const {
99
+ setFieldProps
100
+ } = useContext(DataContext);
101
+ const optionsCount = useMemo(() => React.Children.count(children), [children]);
102
+ const collectedData = [];
103
+ const createOption = useCallback((props, i) => {
96
104
  const {
97
105
  value: selected,
98
106
  error,
@@ -102,6 +110,9 @@ export function getCheckboxOrToggleOptions(_ref) {
102
110
  children
103
111
  } = props,
104
112
  rest = _objectWithoutProperties(props, _excluded);
113
+ if (value !== null && value !== void 0 && value.includes(selected)) {
114
+ collectedData.push(props);
115
+ }
105
116
  const label = title !== null && title !== void 0 ? title : children;
106
117
  const status = getStatus(error, info, warning);
107
118
  const suffix = help ? React.createElement(HelpButton, {
@@ -112,6 +123,7 @@ export function getCheckboxOrToggleOptions(_ref) {
112
123
  const newValue = value !== null && value !== void 0 && value.includes(selected) ? value.filter(value => value !== selected) : [...(value !== null && value !== void 0 ? value : []), selected];
113
124
  handleChange === null || handleChange === void 0 ? void 0 : handleChange(newValue.length === 0 ? emptyValue : newValue);
114
125
  };
126
+ const Component = variant === 'checkbox' ? Checkbox : ToggleButton;
115
127
  return React.createElement(Component, _extends({
116
128
  id: optionsCount === 1 ? id : undefined,
117
129
  key: `option-${i}-${value}`,
@@ -125,22 +137,14 @@ export function getCheckboxOrToggleOptions(_ref) {
125
137
  suffix: suffix,
126
138
  on_change: handleSelect
127
139
  }, htmlAttributes, rest));
128
- };
129
- const mapOptions = children => {
130
- return React.Children.toArray(children).map((child, i) => {
131
- if (React.isValidElement(child)) {
132
- if (child.type === OptionField) {
133
- return createOption(child.props, i);
134
- }
135
- if (child.props.children) {
136
- const nestedChildren = mapOptions(child.props.children);
137
- return React.cloneElement(child, child.props, nestedChildren);
138
- }
139
- }
140
- return child;
141
- });
142
- };
143
- return mapOptions(children);
140
+ }, [disabled, emptyValue, handleChange, hasError, htmlAttributes, id, info, optionsCount, value, variant, warning]);
141
+ const result = mapOptions(children, {
142
+ createOption
143
+ });
144
+ if (path) {
145
+ setFieldProps === null || setFieldProps === void 0 ? void 0 : setFieldProps(path + '/arraySelectionData', collectedData);
146
+ }
147
+ return result;
144
148
  }
145
149
  ArraySelection._supportsSpacingProps = true;
146
150
  export default ArraySelection;
@@ -1 +1 @@
1
- {"version":3,"file":"ArraySelection.js","names":["React","Checkbox","HelpButton","ToggleButton","classnames","OptionField","FieldBlock","useFieldProps","pickSpacingProps","getStatus","ToggleButtonGroupContext","ArraySelection","props","id","className","variant","layout","optionsLayout","label","labelDescription","value","error","hasError","help","info","warning","disabled","emptyValue","htmlAttributes","handleChange","children","fieldBlockProps","_objectSpread","forId","contentClassName","createElement","Fragment","size","left","title","content","undefined","options","getCheckboxOrToggleOptions","Provider","status","_ref","optionsCount","Children","count","Component","createOption","i","selected","rest","_objectWithoutProperties","_excluded","suffix","handleSelect","newValue","includes","filter","length","_extends","key","text","checked","on_change","mapOptions","toArray","map","child","isValidElement","type","nestedChildren","cloneElement","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/ArraySelection/ArraySelection.tsx"],"sourcesContent":["import React from 'react'\nimport { Checkbox, HelpButton, ToggleButton } from '../../../../components'\nimport classnames from 'classnames'\nimport OptionField from '../Option'\nimport FieldBlock from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport { ReturnAdditional } from '../../hooks/useFieldProps'\nimport { FieldHelpProps, FieldProps, FormError } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport { getStatus } from '../Selection'\nimport { HelpButtonProps } from '../../../../components/HelpButton'\nimport ToggleButtonGroupContext from '../../../../components/toggle-button/ToggleButtonGroupContext'\n\ntype OptionProps = React.ComponentProps<\n React.FC<{\n value: number | string\n error: Error | FormError | undefined\n title: React.ReactNode\n help: HelpButtonProps\n className: string\n children: React.ReactNode\n handleSelect: () => void\n }>\n>\n\nexport type Props = FieldHelpProps &\n FieldProps<Array<string | number> | undefined> & {\n children?: React.ReactNode\n variant?: 'checkbox' | 'button' | 'checkbox-button'\n optionsLayout?: 'horizontal' | 'vertical'\n }\n\nfunction ArraySelection(props: Props) {\n const {\n id,\n className,\n variant = 'checkbox',\n layout = 'vertical',\n optionsLayout = 'vertical',\n label,\n labelDescription,\n value,\n error,\n hasError,\n help,\n info,\n warning,\n disabled,\n emptyValue,\n htmlAttributes,\n handleChange,\n children,\n } = useFieldProps(props)\n\n const fieldBlockProps = {\n forId: id,\n className: classnames(\n 'dnb-forms-field-array-selection',\n `dnb-forms-field-array-selection--variant-${\n variant === 'checkbox' ? 'checkbox' : 'button'\n }`,\n `dnb-forms-field-array-selection--layout-${layout}`,\n `dnb-forms-field-array-selection--options-layout-${optionsLayout}`,\n className\n ),\n contentClassName: 'dnb-forms-field-array-selection__options',\n help,\n info,\n warning,\n error,\n layout,\n label,\n labelDescription: (\n <>\n {labelDescription}\n {help ? (\n <HelpButton\n size=\"small\"\n left={labelDescription ? 'x-small' : false}\n title={help.title}\n >\n {help.content}\n </HelpButton>\n ) : undefined}\n </>\n ),\n ...pickSpacingProps(props),\n }\n\n const options = getCheckboxOrToggleOptions({\n id,\n variant,\n info,\n warning,\n emptyValue,\n htmlAttributes,\n children,\n value,\n disabled,\n handleChange,\n hasError,\n })\n\n switch (variant) {\n case 'checkbox':\n return <FieldBlock {...fieldBlockProps}>{options}</FieldBlock>\n default:\n return (\n <FieldBlock {...fieldBlockProps}>\n <ToggleButtonGroupContext.Provider\n value={{\n status: hasError ? 'error' : undefined,\n disabled,\n variant:\n variant === 'checkbox-button' ? 'checkbox' : 'default',\n }}\n >\n {options}\n </ToggleButtonGroupContext.Provider>\n </FieldBlock>\n )\n }\n}\n\nexport function getCheckboxOrToggleOptions({\n id,\n variant = 'checkbox',\n info,\n warning,\n emptyValue,\n htmlAttributes,\n children,\n value,\n disabled,\n hasError,\n handleChange,\n}: {\n id: Props['id']\n variant?: Props['variant']\n info?: Props['info']\n warning?: Props['warning']\n emptyValue?: Props['emptyValue']\n htmlAttributes?: Props['htmlAttributes']\n children?: Props['children']\n value?: Props['value']\n disabled?: Props['disabled']\n hasError?: ReturnAdditional<Props['value']>['hasError']\n handleChange?: ReturnAdditional<Props['value']>['handleChange']\n}) {\n const optionsCount = React.Children.count(children)\n\n const Component = (\n variant === 'checkbox' ? Checkbox : ToggleButton\n ) as typeof Checkbox & typeof ToggleButton\n\n const createOption = (props: OptionProps, i: number) => {\n const {\n value: selected,\n error,\n title,\n help,\n className,\n children,\n ...rest\n } = props\n\n const label = title ?? children\n const status = getStatus(error, info, warning)\n const suffix = help ? (\n <HelpButton size=\"small\" title={help.title}>\n {help.content}\n </HelpButton>\n ) : undefined\n const handleSelect = () => {\n const newValue = value?.includes(selected)\n ? value.filter((value) => value !== selected)\n : [...(value ?? []), selected]\n\n handleChange?.(\n newValue.length === 0 ? (emptyValue as typeof value) : newValue\n )\n }\n\n return (\n <Component\n id={optionsCount === 1 ? id : undefined}\n key={`option-${i}-${value}`}\n className={classnames(\n `dnb-forms-field-array-selection__${\n variant === 'checkbox' ? 'checkbox' : 'button'\n }`,\n className\n )}\n label={variant === 'checkbox' ? label : undefined}\n text={variant !== 'checkbox' ? label : undefined}\n value={value}\n disabled={disabled}\n checked={value?.includes(selected)}\n status={(hasError || status) && 'error'}\n suffix={suffix}\n on_change={handleSelect}\n {...htmlAttributes}\n {...rest}\n />\n )\n }\n\n const mapOptions = (children: React.ReactNode) => {\n return React.Children.toArray(children).map(\n (child: React.ReactElement<OptionProps>, i) => {\n if (React.isValidElement(child)) {\n if (child.type === OptionField) {\n return createOption(child.props, i)\n }\n\n if (child.props.children) {\n const nestedChildren = mapOptions(child.props.children)\n return React.cloneElement(child, child.props, nestedChildren)\n }\n }\n\n return child\n }\n )\n }\n\n return mapOptions(children)\n}\n\nArraySelection._supportsSpacingProps = true\nexport default ArraySelection\n"],"mappings":"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"}
1
+ {"version":3,"file":"ArraySelection.js","names":["React","useCallback","useContext","useMemo","Checkbox","HelpButton","ToggleButton","classnames","FieldBlock","useFieldProps","pickSpacingProps","getStatus","mapOptions","ToggleButtonGroupContext","DataContext","ArraySelection","props","id","path","className","variant","layout","optionsLayout","label","labelDescription","value","error","hasError","help","info","warning","disabled","emptyValue","htmlAttributes","handleChange","children","fieldBlockProps","_objectSpread","forId","contentClassName","createElement","Fragment","size","left","title","content","undefined","options","useCheckboxOrToggleOptions","Provider","status","_ref","setFieldProps","optionsCount","Children","count","collectedData","createOption","i","selected","rest","_objectWithoutProperties","_excluded","includes","push","suffix","handleSelect","newValue","filter","length","Component","_extends","key","text","checked","on_change","result","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/ArraySelection/ArraySelection.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo } from 'react'\nimport { Checkbox, HelpButton, ToggleButton } from '../../../../components'\nimport classnames from 'classnames'\nimport FieldBlock from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport { ReturnAdditional } from '../../hooks/useFieldProps'\nimport { FieldHelpProps, FieldProps, FormError } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport { getStatus, mapOptions } from '../Selection'\nimport { HelpButtonProps } from '../../../../components/HelpButton'\nimport ToggleButtonGroupContext from '../../../../components/toggle-button/ToggleButtonGroupContext'\nimport DataContext from '../../DataContext/Context'\n\ntype OptionProps = React.ComponentProps<\n React.FC<{\n value: number | string\n error: Error | FormError | undefined\n title: React.ReactNode\n help: HelpButtonProps\n className: string\n children: React.ReactNode\n handleSelect: () => void\n }>\n>\n\nexport type Props = FieldHelpProps &\n FieldProps<Array<string | number> | undefined> & {\n children?: React.ReactNode\n variant?: 'checkbox' | 'button' | 'checkbox-button'\n optionsLayout?: 'horizontal' | 'vertical'\n }\n\nfunction ArraySelection(props: Props) {\n const {\n id,\n path,\n className,\n variant = 'checkbox',\n layout = 'vertical',\n optionsLayout = 'vertical',\n label,\n labelDescription,\n value,\n error,\n hasError,\n help,\n info,\n warning,\n disabled,\n emptyValue,\n htmlAttributes,\n handleChange,\n children,\n } = useFieldProps(props)\n\n const fieldBlockProps = {\n forId: id,\n className: classnames(\n 'dnb-forms-field-array-selection',\n `dnb-forms-field-array-selection--variant-${\n variant === 'checkbox' ? 'checkbox' : 'button'\n }`,\n `dnb-forms-field-array-selection--layout-${layout}`,\n `dnb-forms-field-array-selection--options-layout-${optionsLayout}`,\n className\n ),\n contentClassName: 'dnb-forms-field-array-selection__options',\n help,\n info,\n warning,\n error,\n layout,\n label,\n labelDescription: (\n <>\n {labelDescription}\n {help ? (\n <HelpButton\n size=\"small\"\n left={labelDescription ? 'x-small' : false}\n title={help.title}\n >\n {help.content}\n </HelpButton>\n ) : undefined}\n </>\n ),\n ...pickSpacingProps(props),\n }\n\n const options = useCheckboxOrToggleOptions({\n id,\n path,\n variant,\n info,\n warning,\n emptyValue,\n htmlAttributes,\n children,\n value,\n disabled,\n handleChange,\n hasError,\n })\n\n switch (variant) {\n case 'checkbox':\n return <FieldBlock {...fieldBlockProps}>{options}</FieldBlock>\n default:\n return (\n <FieldBlock {...fieldBlockProps}>\n <ToggleButtonGroupContext.Provider\n value={{\n status: hasError ? 'error' : undefined,\n disabled,\n variant:\n variant === 'checkbox-button' ? 'checkbox' : 'default',\n }}\n >\n {options}\n </ToggleButtonGroupContext.Provider>\n </FieldBlock>\n )\n }\n}\n\nexport function useCheckboxOrToggleOptions({\n id,\n path,\n variant = 'checkbox',\n info,\n warning,\n emptyValue,\n htmlAttributes,\n children,\n value,\n disabled,\n hasError,\n handleChange,\n}: {\n id: Props['id']\n path?: Props['path']\n variant?: Props['variant']\n info?: Props['info']\n warning?: Props['warning']\n emptyValue?: Props['emptyValue']\n htmlAttributes?: Props['htmlAttributes']\n children?: Props['children']\n value?: Props['value']\n disabled?: Props['disabled']\n hasError?: ReturnAdditional<Props['value']>['hasError']\n handleChange?: ReturnAdditional<Props['value']>['handleChange']\n}) {\n const { setFieldProps } = useContext(DataContext)\n const optionsCount = useMemo(\n () => React.Children.count(children),\n [children]\n )\n const collectedData = []\n\n const createOption = useCallback(\n (props: OptionProps, i: number) => {\n const {\n value: selected,\n error,\n title,\n help,\n className,\n children,\n ...rest\n } = props\n\n if (value?.includes(selected)) {\n collectedData.push(props)\n }\n\n const label = title ?? children\n const status = getStatus(error, info, warning)\n const suffix = help ? (\n <HelpButton size=\"small\" title={help.title}>\n {help.content}\n </HelpButton>\n ) : undefined\n const handleSelect = () => {\n const newValue = value?.includes(selected)\n ? value.filter((value) => value !== selected)\n : [...(value ?? []), selected]\n\n handleChange?.(\n newValue.length === 0 ? (emptyValue as typeof value) : newValue\n )\n }\n\n const Component = (\n variant === 'checkbox' ? Checkbox : ToggleButton\n ) as typeof Checkbox & typeof ToggleButton\n\n return (\n <Component\n id={optionsCount === 1 ? id : undefined}\n key={`option-${i}-${value}`}\n className={classnames(\n `dnb-forms-field-array-selection__${\n variant === 'checkbox' ? 'checkbox' : 'button'\n }`,\n className\n )}\n label={variant === 'checkbox' ? label : undefined}\n text={variant !== 'checkbox' ? label : undefined}\n value={value}\n disabled={disabled}\n checked={value?.includes(selected)}\n status={(hasError || status) && 'error'}\n suffix={suffix}\n on_change={handleSelect}\n {...htmlAttributes}\n {...rest}\n />\n )\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n disabled,\n emptyValue,\n handleChange,\n hasError,\n htmlAttributes,\n id,\n info,\n optionsCount,\n value,\n variant,\n warning,\n ]\n )\n\n const result = mapOptions(children, { createOption })\n\n if (path) {\n setFieldProps?.(path + '/arraySelectionData', collectedData)\n }\n\n return result\n}\n\nArraySelection._supportsSpacingProps = true\nexport default ArraySelection\n"],"mappings":"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"}
@@ -9,7 +9,7 @@ function Name(props) {
9
9
  const StringFieldProps = _objectSpread({
10
10
  trim: true,
11
11
  autoComplete: 'name',
12
- pattern: '^[\\p{L}\\p{M} \\-]+$'
12
+ pattern: '^(?!.*[\\-\\s]{2})[\\p{L}]+([ \\-][\\p{L}]+)*$'
13
13
  }, props);
14
14
  return React.createElement(StringField, StringFieldProps);
15
15
  }
@@ -51,7 +51,7 @@ Name.Company = function CompanyName(props) {
51
51
  });
52
52
  const StringFieldProps = _objectSpread(_objectSpread({
53
53
  label: translations.label,
54
- pattern: undefined,
54
+ pattern: '^(?!.*[-\\s]{2})(?!.*[\\.]{2})[\\p{L}\\p{N}][\\p{L}\\p{N}\\p{P}\\p{Zs}.]*[\\p{L}\\p{N}\\p{P}]$',
55
55
  autoComplete: 'organization'
56
56
  }, props), {}, {
57
57
  errorMessages
@@ -1 +1 @@
1
- {"version":3,"file":"Name.js","names":["React","StringField","useErrorMessage","useTranslation","Name","props","StringFieldProps","_objectSpread","trim","autoComplete","pattern","createElement","_supportsSpacingProps","First","FirstName","translations","errorMessages","path","required","errorRequired","errorPattern","nameProps","label","Last","LastName","Company","CompanyName","undefined"],"sources":["../../../../../../src/extensions/forms/Field/Name/Name.tsx"],"sourcesContent":["import React from 'react'\nimport StringField, { Props as StringFieldProps } from '../String'\nimport useErrorMessage from '../../hooks/useErrorMessage'\nimport useTranslation from '../../hooks/useTranslation'\n\nexport type Props = StringFieldProps\n\nfunction Name(props: Props) {\n const StringFieldProps: Props = {\n trim: true,\n autoComplete: 'name',\n pattern: '^[\\\\p{L}\\\\p{M} \\\\-]+$',\n ...props,\n }\n\n return <StringField {...StringFieldProps} />\n}\nName._supportsSpacingProps = true\n\nName.First = function FirstName(props: Props) {\n const translations = useTranslation().FirstName\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: translations.errorRequired,\n pattern: translations.errorPattern,\n })\n\n const nameProps: Props = {\n label: translations.label,\n autoComplete: 'given-name',\n ...props,\n errorMessages,\n }\n\n return <Name {...nameProps} />\n}\nName.First['_supportsSpacingProps'] = true\n\nName.Last = function LastName(props: Props) {\n const translations = useTranslation().LastName\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: translations.errorRequired,\n pattern: translations.errorPattern,\n })\n\n const nameProps: Props = {\n label: translations.label,\n autoComplete: 'family-name',\n ...props,\n errorMessages,\n }\n\n return <Name {...nameProps} />\n}\nName.First['_supportsSpacingProps'] = true\n\nName.Company = function CompanyName(props: Props) {\n const translations = useTranslation().CompanyName\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: translations.errorRequired,\n })\n\n const StringFieldProps: Props = {\n label: translations.label,\n pattern: undefined,\n autoComplete: 'organization',\n ...props,\n errorMessages,\n }\n\n return <Name {...StringFieldProps} />\n}\nName.First['_supportsSpacingProps'] = true\n\nexport default Name\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,WAAW,MAAqC,WAAW;AAClE,OAAOC,eAAe,MAAM,6BAA6B;AACzD,OAAOC,cAAc,MAAM,4BAA4B;AAIvD,SAASC,IAAIA,CAACC,KAAY,EAAE;EAC1B,MAAMC,gBAAuB,GAAAC,aAAA;IAC3BC,IAAI,EAAE,IAAI;IACVC,YAAY,EAAE,MAAM;IACpBC,OAAO,EAAE;EAAuB,GAC7BL,KAAK,CACT;EAED,OAAOL,KAAA,CAAAW,aAAA,CAACV,WAAW,EAAKK,gBAAmB,CAAC;AAC9C;AACAF,IAAI,CAACQ,qBAAqB,GAAG,IAAI;AAEjCR,IAAI,CAACS,KAAK,GAAG,SAASC,SAASA,CAACT,KAAY,EAAE;EAC5C,MAAMU,YAAY,GAAGZ,cAAc,CAAC,CAAC,CAACW,SAAS;EAC/C,MAAME,aAAa,GAAGd,eAAe,CAACG,KAAK,CAACY,IAAI,EAAEZ,KAAK,CAACW,aAAa,EAAE;IACrEE,QAAQ,EAAEH,YAAY,CAACI,aAAa;IACpCT,OAAO,EAAEK,YAAY,CAACK;EACxB,CAAC,CAAC;EAEF,MAAMC,SAAgB,GAAAd,aAAA,CAAAA,aAAA;IACpBe,KAAK,EAAEP,YAAY,CAACO,KAAK;IACzBb,YAAY,EAAE;EAAY,GACvBJ,KAAK;IACRW;EAAa,EACd;EAED,OAAOhB,KAAA,CAAAW,aAAA,CAACP,IAAI,EAAKiB,SAAY,CAAC;AAChC,CAAC;AACDjB,IAAI,CAACS,KAAK,CAAC,uBAAuB,CAAC,GAAG,IAAI;AAE1CT,IAAI,CAACmB,IAAI,GAAG,SAASC,QAAQA,CAACnB,KAAY,EAAE;EAC1C,MAAMU,YAAY,GAAGZ,cAAc,CAAC,CAAC,CAACqB,QAAQ;EAC9C,MAAMR,aAAa,GAAGd,eAAe,CAACG,KAAK,CAACY,IAAI,EAAEZ,KAAK,CAACW,aAAa,EAAE;IACrEE,QAAQ,EAAEH,YAAY,CAACI,aAAa;IACpCT,OAAO,EAAEK,YAAY,CAACK;EACxB,CAAC,CAAC;EAEF,MAAMC,SAAgB,GAAAd,aAAA,CAAAA,aAAA;IACpBe,KAAK,EAAEP,YAAY,CAACO,KAAK;IACzBb,YAAY,EAAE;EAAa,GACxBJ,KAAK;IACRW;EAAa,EACd;EAED,OAAOhB,KAAA,CAAAW,aAAA,CAACP,IAAI,EAAKiB,SAAY,CAAC;AAChC,CAAC;AACDjB,IAAI,CAACS,KAAK,CAAC,uBAAuB,CAAC,GAAG,IAAI;AAE1CT,IAAI,CAACqB,OAAO,GAAG,SAASC,WAAWA,CAACrB,KAAY,EAAE;EAChD,MAAMU,YAAY,GAAGZ,cAAc,CAAC,CAAC,CAACuB,WAAW;EACjD,MAAMV,aAAa,GAAGd,eAAe,CAACG,KAAK,CAACY,IAAI,EAAEZ,KAAK,CAACW,aAAa,EAAE;IACrEE,QAAQ,EAAEH,YAAY,CAACI;EACzB,CAAC,CAAC;EAEF,MAAMb,gBAAuB,GAAAC,aAAA,CAAAA,aAAA;IAC3Be,KAAK,EAAEP,YAAY,CAACO,KAAK;IACzBZ,OAAO,EAAEiB,SAAS;IAClBlB,YAAY,EAAE;EAAc,GACzBJ,KAAK;IACRW;EAAa,EACd;EAED,OAAOhB,KAAA,CAAAW,aAAA,CAACP,IAAI,EAAKE,gBAAmB,CAAC;AACvC,CAAC;AACDF,IAAI,CAACS,KAAK,CAAC,uBAAuB,CAAC,GAAG,IAAI;AAE1C,eAAeT,IAAI"}
1
+ {"version":3,"file":"Name.js","names":["React","StringField","useErrorMessage","useTranslation","Name","props","StringFieldProps","_objectSpread","trim","autoComplete","pattern","createElement","_supportsSpacingProps","First","FirstName","translations","errorMessages","path","required","errorRequired","errorPattern","nameProps","label","Last","LastName","Company","CompanyName"],"sources":["../../../../../../src/extensions/forms/Field/Name/Name.tsx"],"sourcesContent":["import React from 'react'\nimport StringField, { Props as StringFieldProps } from '../String'\nimport useErrorMessage from '../../hooks/useErrorMessage'\nimport useTranslation from '../../hooks/useTranslation'\n\nexport type Props = StringFieldProps\n\nfunction Name(props: Props) {\n const StringFieldProps: Props = {\n trim: true,\n autoComplete: 'name',\n pattern: '^(?!.*[\\\\-\\\\s]{2})[\\\\p{L}]+([ \\\\-][\\\\p{L}]+)*$',\n ...props,\n }\n\n return <StringField {...StringFieldProps} />\n}\nName._supportsSpacingProps = true\n\nName.First = function FirstName(props: Props) {\n const translations = useTranslation().FirstName\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: translations.errorRequired,\n pattern: translations.errorPattern,\n })\n\n const nameProps: Props = {\n label: translations.label,\n autoComplete: 'given-name',\n ...props,\n errorMessages,\n }\n\n return <Name {...nameProps} />\n}\nName.First['_supportsSpacingProps'] = true\n\nName.Last = function LastName(props: Props) {\n const translations = useTranslation().LastName\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: translations.errorRequired,\n pattern: translations.errorPattern,\n })\n\n const nameProps: Props = {\n label: translations.label,\n autoComplete: 'family-name',\n ...props,\n errorMessages,\n }\n\n return <Name {...nameProps} />\n}\nName.First['_supportsSpacingProps'] = true\n\nName.Company = function CompanyName(props: Props) {\n const translations = useTranslation().CompanyName\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: translations.errorRequired,\n })\n\n const StringFieldProps: Props = {\n label: translations.label,\n pattern:\n '^(?!.*[-\\\\s]{2})(?!.*[\\\\.]{2})[\\\\p{L}\\\\p{N}][\\\\p{L}\\\\p{N}\\\\p{P}\\\\p{Zs}.]*[\\\\p{L}\\\\p{N}\\\\p{P}]$',\n autoComplete: 'organization',\n ...props,\n errorMessages,\n }\n\n return <Name {...StringFieldProps} />\n}\nName.First['_supportsSpacingProps'] = true\n\nexport default Name\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,WAAW,MAAqC,WAAW;AAClE,OAAOC,eAAe,MAAM,6BAA6B;AACzD,OAAOC,cAAc,MAAM,4BAA4B;AAIvD,SAASC,IAAIA,CAACC,KAAY,EAAE;EAC1B,MAAMC,gBAAuB,GAAAC,aAAA;IAC3BC,IAAI,EAAE,IAAI;IACVC,YAAY,EAAE,MAAM;IACpBC,OAAO,EAAE;EAAgD,GACtDL,KAAK,CACT;EAED,OAAOL,KAAA,CAAAW,aAAA,CAACV,WAAW,EAAKK,gBAAmB,CAAC;AAC9C;AACAF,IAAI,CAACQ,qBAAqB,GAAG,IAAI;AAEjCR,IAAI,CAACS,KAAK,GAAG,SAASC,SAASA,CAACT,KAAY,EAAE;EAC5C,MAAMU,YAAY,GAAGZ,cAAc,CAAC,CAAC,CAACW,SAAS;EAC/C,MAAME,aAAa,GAAGd,eAAe,CAACG,KAAK,CAACY,IAAI,EAAEZ,KAAK,CAACW,aAAa,EAAE;IACrEE,QAAQ,EAAEH,YAAY,CAACI,aAAa;IACpCT,OAAO,EAAEK,YAAY,CAACK;EACxB,CAAC,CAAC;EAEF,MAAMC,SAAgB,GAAAd,aAAA,CAAAA,aAAA;IACpBe,KAAK,EAAEP,YAAY,CAACO,KAAK;IACzBb,YAAY,EAAE;EAAY,GACvBJ,KAAK;IACRW;EAAa,EACd;EAED,OAAOhB,KAAA,CAAAW,aAAA,CAACP,IAAI,EAAKiB,SAAY,CAAC;AAChC,CAAC;AACDjB,IAAI,CAACS,KAAK,CAAC,uBAAuB,CAAC,GAAG,IAAI;AAE1CT,IAAI,CAACmB,IAAI,GAAG,SAASC,QAAQA,CAACnB,KAAY,EAAE;EAC1C,MAAMU,YAAY,GAAGZ,cAAc,CAAC,CAAC,CAACqB,QAAQ;EAC9C,MAAMR,aAAa,GAAGd,eAAe,CAACG,KAAK,CAACY,IAAI,EAAEZ,KAAK,CAACW,aAAa,EAAE;IACrEE,QAAQ,EAAEH,YAAY,CAACI,aAAa;IACpCT,OAAO,EAAEK,YAAY,CAACK;EACxB,CAAC,CAAC;EAEF,MAAMC,SAAgB,GAAAd,aAAA,CAAAA,aAAA;IACpBe,KAAK,EAAEP,YAAY,CAACO,KAAK;IACzBb,YAAY,EAAE;EAAa,GACxBJ,KAAK;IACRW;EAAa,EACd;EAED,OAAOhB,KAAA,CAAAW,aAAA,CAACP,IAAI,EAAKiB,SAAY,CAAC;AAChC,CAAC;AACDjB,IAAI,CAACS,KAAK,CAAC,uBAAuB,CAAC,GAAG,IAAI;AAE1CT,IAAI,CAACqB,OAAO,GAAG,SAASC,WAAWA,CAACrB,KAAY,EAAE;EAChD,MAAMU,YAAY,GAAGZ,cAAc,CAAC,CAAC,CAACuB,WAAW;EACjD,MAAMV,aAAa,GAAGd,eAAe,CAACG,KAAK,CAACY,IAAI,EAAEZ,KAAK,CAACW,aAAa,EAAE;IACrEE,QAAQ,EAAEH,YAAY,CAACI;EACzB,CAAC,CAAC;EAEF,MAAMb,gBAAuB,GAAAC,aAAA,CAAAA,aAAA;IAC3Be,KAAK,EAAEP,YAAY,CAACO,KAAK;IACzBZ,OAAO,EACL,gGAAgG;IAClGD,YAAY,EAAE;EAAc,GACzBJ,KAAK;IACRW;EAAa,EACd;EAED,OAAOhB,KAAA,CAAAW,aAAA,CAACP,IAAI,EAAKE,gBAAmB,CAAC;AACvC,CAAC;AACDF,IAAI,CAACS,KAAK,CAAC,uBAAuB,CAAC,GAAG,IAAI;AAE1C,eAAeT,IAAI"}
@@ -58,5 +58,8 @@ declare namespace Selection {
58
58
  var _supportsSpacingProps: boolean;
59
59
  }
60
60
  export declare function getStatus(error: Error | FormError | undefined, info: React.ReactNode, warning: React.ReactNode): string;
61
+ export declare function mapOptions(children: React.ReactNode, { createOption }: {
62
+ createOption: any;
63
+ }): any;
61
64
  export declare function makeOptions<T = DrawerListProps['data']>(children: React.ReactNode): T;
62
65
  export default Selection;
@@ -161,7 +161,6 @@ function renderRadioItems(_ref5) {
161
161
  hasError
162
162
  } = _ref5;
163
163
  const optionsCount = React.Children.count(children) + ((dataList === null || dataList === void 0 ? void 0 : dataList.length) || 0);
164
- const Component = variant === 'radio' ? Radio : ToggleButton;
165
164
  const createOption = (props, i) => {
166
165
  const {
167
166
  error,
@@ -176,6 +175,7 @@ function renderRadioItems(_ref5) {
176
175
  size: "small",
177
176
  title: help.title
178
177
  }, help.content) : undefined;
178
+ const Component = variant === 'radio' ? Radio : ToggleButton;
179
179
  return React.createElement(Component, _extends({
180
180
  id: optionsCount === 1 ? id : undefined,
181
181
  key: `option-${i}-${value}`,
@@ -186,23 +186,30 @@ function renderRadioItems(_ref5) {
186
186
  suffix: suffix
187
187
  }, htmlAttributes, rest));
188
188
  };
189
- const mapOptions = children => {
190
- return React.Children.map(children, (child, i) => {
191
- if (React.isValidElement(child)) {
192
- if (child.type === OptionField) {
193
- return createOption(child.props, i);
194
- }
195
- if (child.props.children) {
196
- const nestedChildren = mapOptions(child.props.children);
197
- return React.cloneElement(child, child.props, nestedChildren);
198
- }
199
- }
200
- return child;
201
- });
202
- };
203
189
  return [...(dataList || []).map((props, i) => {
204
190
  return createOption(props, i);
205
- }), ...(mapOptions(children) || [])].filter(Boolean);
191
+ }), ...(mapOptions(children, {
192
+ createOption
193
+ }) || [])].filter(Boolean);
194
+ }
195
+ export function mapOptions(children, _ref6) {
196
+ let {
197
+ createOption
198
+ } = _ref6;
199
+ return React.Children.map(children, (child, i) => {
200
+ if (React.isValidElement(child)) {
201
+ if (child.type === OptionField) {
202
+ return createOption(child.props, i);
203
+ }
204
+ if (child.props.children) {
205
+ const nestedChildren = mapOptions(child.props.children, {
206
+ createOption
207
+ });
208
+ return React.cloneElement(child, child.props, nestedChildren);
209
+ }
210
+ }
211
+ return child;
212
+ });
206
213
  }
207
214
  export function makeOptions(children) {
208
215
  return React.Children.map(children, child => {
@@ -211,9 +218,9 @@ export function makeOptions(children) {
211
218
  child = child['props'].children;
212
219
  }
213
220
  if (React.isValidElement(child) && child.type === OptionField) {
214
- var _ref6, _props$children, _props$value;
221
+ var _ref7, _props$children, _props$value;
215
222
  const props = child.props;
216
- const title = (_ref6 = (_props$children = props.children) !== null && _props$children !== void 0 ? _props$children : props.title) !== null && _ref6 !== void 0 ? _ref6 : _em || (_em = React.createElement("em", null, "Untitled"));
223
+ const title = (_ref7 = (_props$children = props.children) !== null && _props$children !== void 0 ? _props$children : props.title) !== null && _ref7 !== void 0 ? _ref7 : _em || (_em = React.createElement("em", null, "Untitled"));
217
224
  const content = props.text ? [title, props.text] : title;
218
225
  const selectedKey = String((_props$value = props.value) !== null && _props$value !== void 0 ? _props$value : '');
219
226
  return {
@@ -229,12 +236,12 @@ export function makeOptions(children) {
229
236
  });
230
237
  }
231
238
  function renderDropdownItems(data) {
232
- return (data === null || data === void 0 ? void 0 : data.map(_ref7 => {
239
+ return (data === null || data === void 0 ? void 0 : data.map(_ref8 => {
233
240
  let {
234
241
  value,
235
242
  title,
236
243
  text
237
- } = _ref7;
244
+ } = _ref8;
238
245
  return {
239
246
  selectedKey: value,
240
247
  content: (text ? [title, text] : title) || _em2 || (_em2 = React.createElement("em", null, "Untitled"))
@@ -1 +1 @@
1
- {"version":3,"file":"Selection.js","names":["React","useMemo","useCallback","classnames","makeUniqueId","ToggleButton","Dropdown","Radio","HelpButton","Autocomplete","OptionField","useFieldProps","pickSpacingProps","FieldBlock","FormError","convertCamelCaseProps","useDataValue","Selection","props","clearValue","id","className","variant","label","labelDescription","layout","optionsLayout","placeholder","value","info","warning","error","hasError","disabled","help","emptyValue","width","htmlAttributes","setHasFocus","handleChange","data","dataPath","children","autocompleteProps","dropdownProps","getValueByPath","dataList","handleDropdownChange","_ref","selectedKey","onChangeHandler","_ref2","undefined","handleShow","_ref3","handleHide","_ref4","cn","fieldBlockProps","_objectSpread","forId","Component","items","renderRadioItems","createElement","_extends","asFieldset","Children","count","Group","layout_direction","on_change","String","status","getStatus","renderDropdownItems","concat","makeOptions","filter","Boolean","sharedProps","list_class","portal_class","title","suffix","content","on_show","on_hide","stretch","_error$message","message","Error","toString","_ref5","optionsCount","length","createOption","i","rest","_objectWithoutProperties","_excluded","size","key","text","mapOptions","map","child","isValidElement","type","nestedChildren","cloneElement","_child","_child$props","_child$props$children","_ref6","_props$children","_props$value","_em","_ref7","_em2","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Selection/Selection.tsx"],"sourcesContent":["import React, { useMemo, useCallback } from 'react'\nimport classnames from 'classnames'\nimport { makeUniqueId } from '../../../../shared/component-helper'\nimport {\n ToggleButton,\n Dropdown,\n Radio,\n HelpButton,\n Autocomplete,\n} from '../../../../components'\nimport OptionField, { Props as OptionFieldProps } from '../Option'\nimport { useFieldProps } from '../../hooks'\nimport { ReturnAdditional } from '../../hooks/useFieldProps'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport FieldBlock from '../../FieldBlock'\nimport {\n FormError,\n FieldProps,\n FieldHelpProps,\n FieldBlockWidth,\n Path,\n} from '../../types'\nimport type { FormStatusText } from '../../../../components/FormStatus'\nimport type { AutocompleteAllProps } from '../../../../components/Autocomplete'\nimport type { DropdownAllProps } from '../../../../components/Dropdown'\nimport { HelpButtonProps } from '../../../../components/HelpButton'\nimport { DrawerListProps } from '../../../../fragments/DrawerList'\nimport {\n convertCamelCaseProps,\n ToCamelCase,\n} from '../../../../shared/helpers/withCamelCaseProps'\nimport useDataValue from '../../hooks/useDataValue'\n\ntype IOption = {\n title: string | React.ReactNode\n value: number | string\n status: FormStatusText\n}\nexport type Data = Array<{\n value: string\n title: React.ReactNode\n text?: React.ReactNode\n}>\n\nexport type Props = FieldHelpProps &\n FieldProps<IOption['value']> & {\n /**\n * Defines the variant of the component.\n * Default: dropdown\n */\n variant?: 'dropdown' | 'autocomplete' | 'radio' | 'button'\n\n /**\n * The width of the component.\n * Default: large\n */\n width?: FieldBlockWidth\n\n /**\n * Defines the layout of the options for radio and button variants.\n */\n optionsLayout?: 'horizontal' | 'vertical'\n\n /**\n * The path to the context data (Form.Handler).\n * The object needs to have a `value` and a `title` property.\n */\n dataPath?: Path\n\n /**\n * Data to be used for the component. The object needs to have a `value` and a `title` property.\n * The generated options will be placed above given JSX based children.\n */\n data?: Data\n\n /**\n * Autocomplete specific props\n */\n autocompleteProps?: ToCamelCase<AutocompleteAllProps>\n\n /**\n * Dropdown specific props\n */\n dropdownProps?: ToCamelCase<DropdownAllProps>\n\n /**\n * The content of the component.\n */\n children?: React.ReactNode\n }\n\nfunction Selection(props: Props) {\n const clearValue = useMemo(() => `clear-option-${makeUniqueId()}`, [])\n\n const {\n id,\n className,\n variant = 'dropdown',\n label,\n labelDescription,\n layout = 'vertical',\n optionsLayout = 'vertical',\n placeholder,\n value,\n info,\n warning,\n error,\n hasError,\n disabled,\n help,\n emptyValue,\n width = 'large',\n htmlAttributes,\n setHasFocus,\n handleChange,\n data,\n dataPath,\n children,\n\n // - Autocomplete and Dropdown specific props\n autocompleteProps,\n dropdownProps,\n } = useFieldProps(props)\n\n const { getValueByPath } = useDataValue()\n let dataList = data\n if (dataPath) {\n dataList = getValueByPath(dataPath)\n }\n\n const handleDropdownChange = useCallback(\n ({ data }) => {\n const selectedKey = data?.selectedKey\n handleChange?.(\n !selectedKey || selectedKey === clearValue\n ? emptyValue\n : selectedKey\n )\n },\n [handleChange, emptyValue, clearValue]\n )\n\n const onChangeHandler = useCallback(\n ({ value }) => {\n handleChange?.(value === undefined ? emptyValue : value)\n },\n [handleChange, emptyValue]\n )\n\n // Specific handleShow and handleHide because Dropdown preserve the initially received callbacks, so changes\n // due to `useCallback` usage will have no effect, leading to useFieldPropss handleFocus and handleBlur sending out old\n // copies of value as arguments.\n const handleShow = useCallback(\n ({ data }) => {\n setHasFocus(true, data?.selectedKey)\n },\n [setHasFocus]\n )\n\n const handleHide = useCallback(\n ({ data }) => {\n setHasFocus(false, data?.selectedKey)\n },\n [setHasFocus]\n )\n\n const cn = classnames(\n 'dnb-forms-field-selection',\n `dnb-forms-field-selection__variant--${variant}`,\n `dnb-forms-field-selection__options-layout--${optionsLayout}`,\n className\n )\n\n const fieldBlockProps = {\n forId: id,\n className: cn,\n ...pickSpacingProps(props),\n info,\n warning,\n error,\n layout,\n label,\n labelDescription,\n }\n\n switch (variant) {\n case 'radio':\n case 'button': {\n const Component = (\n variant === 'radio' ? Radio : ToggleButton\n ) as typeof Radio & typeof ToggleButton\n\n const items = renderRadioItems({\n id,\n value,\n variant,\n info,\n warning,\n htmlAttributes,\n children,\n dataList,\n hasError,\n })\n\n return (\n <FieldBlock\n {...fieldBlockProps}\n asFieldset={React.Children.count(items) > 1}\n >\n <Component.Group\n className={cn}\n layout_direction={\n optionsLayout === 'horizontal' ? 'row' : 'column'\n }\n disabled={disabled}\n on_change={onChangeHandler}\n value={String(value ?? '')}\n >\n {items}\n </Component.Group>\n </FieldBlock>\n )\n }\n\n case 'autocomplete':\n case 'dropdown': {\n const status = getStatus(error, info, warning)\n const data = renderDropdownItems(dataList)\n .concat(makeOptions(children))\n .filter(Boolean)\n\n const sharedProps: AutocompleteAllProps & DropdownAllProps = {\n id,\n list_class: 'dnb-forms-field-selection__list',\n portal_class: 'dnb-forms-field-selection__portal',\n title: placeholder,\n value: String(value ?? ''),\n status: (hasError || status) && 'error',\n disabled,\n ...htmlAttributes,\n data,\n suffix: help ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined,\n on_change: handleDropdownChange,\n on_show: handleShow,\n on_hide: handleHide,\n stretch: true,\n }\n\n return (\n <FieldBlock {...fieldBlockProps} width={width}>\n {variant === 'autocomplete' ? (\n <Autocomplete\n {...sharedProps}\n {...(autocompleteProps\n ? (convertCamelCaseProps(\n autocompleteProps\n ) as AutocompleteAllProps)\n : null)}\n />\n ) : (\n <Dropdown\n {...sharedProps}\n {...(dropdownProps\n ? (convertCamelCaseProps(\n dropdownProps\n ) as DropdownAllProps)\n : null)}\n />\n )}\n </FieldBlock>\n )\n }\n }\n}\n\nexport function getStatus(\n error: Error | FormError | undefined,\n info: React.ReactNode,\n warning: React.ReactNode\n) {\n return (\n error?.message ??\n ((warning instanceof Error && warning.message) ||\n (warning instanceof FormError && warning.message) ||\n warning?.toString() ||\n (info instanceof Error && info.message) ||\n (info instanceof FormError && info.message) ||\n info?.toString())\n )\n}\n\ntype OptionProps = React.ComponentProps<\n React.FC<{\n error?: Error | FormError | undefined\n title: React.ReactNode\n help?: HelpButtonProps\n children?: React.ReactNode\n }>\n>\n\nfunction renderRadioItems({\n id,\n value,\n variant,\n info,\n warning,\n htmlAttributes,\n children,\n dataList,\n hasError,\n}: {\n id: string\n value: Props['value']\n variant: Props['variant']\n info: Props['info']\n warning: Props['warning']\n htmlAttributes: Props['htmlAttributes']\n children: Props['children']\n dataList: Data\n hasError: ReturnAdditional<Props['value']>['hasError']\n}) {\n const optionsCount =\n React.Children.count(children) + (dataList?.length || 0)\n\n const Component = (\n variant === 'radio' ? Radio : ToggleButton\n ) as typeof Radio & typeof ToggleButton\n\n const createOption = (props: OptionProps, i: number) => {\n const { error, title, help, children, ...rest } = props\n\n const label = title ?? children\n const status = getStatus(error, info, warning)\n const suffix = help ? (\n <HelpButton size=\"small\" title={help.title}>\n {help.content}\n </HelpButton>\n ) : undefined\n\n return (\n <Component\n id={optionsCount === 1 ? id : undefined}\n key={`option-${i}-${value}`}\n label={variant === 'radio' ? label : undefined}\n text={variant === 'button' ? label : undefined}\n value={String(value ?? '')}\n status={(hasError || status) && 'error'}\n suffix={suffix}\n {...htmlAttributes}\n {...rest}\n />\n )\n }\n\n const mapOptions = (children: React.ReactNode) => {\n return React.Children.map(\n children,\n (child: React.ReactElement<OptionProps>, i) => {\n if (React.isValidElement(child)) {\n if (child.type === OptionField) {\n return createOption(child.props, i)\n }\n\n if (child.props.children) {\n const nestedChildren = mapOptions(child.props.children)\n return React.cloneElement(child, child.props, nestedChildren)\n }\n }\n\n return child\n }\n )\n }\n\n return [\n ...(dataList || []).map((props, i) => {\n return createOption(props as OptionProps, i)\n }),\n ...(mapOptions(children) || []),\n ].filter(Boolean)\n}\n\nexport function makeOptions<T = DrawerListProps['data']>(\n children: React.ReactNode\n): T {\n return React.Children.map(children, (child) => {\n if (child?.['props']?.children?.type === OptionField) {\n child = child['props'].children\n }\n\n if (React.isValidElement(child) && child.type === OptionField) {\n const props = child.props as OptionFieldProps\n const title = props.children ?? props.title ?? <em>Untitled</em>\n const content = props.text ? [title, props.text] : title\n const selectedKey = String(props.value ?? '')\n\n return { selectedKey, content }\n }\n\n // For other children, just show them as content\n if (child) {\n return {\n content: child,\n }\n }\n }) as T\n}\n\nfunction renderDropdownItems(data: Data) {\n return (\n data?.map(({ value, title, text }) => ({\n selectedKey: value,\n content: (text ? [title, text] : title) || <em>Untitled</em>,\n })) || []\n )\n}\n\nSelection._supportsSpacingProps = true\nexport default Selection\n"],"mappings":"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"}
1
+ {"version":3,"file":"Selection.js","names":["React","useMemo","useCallback","classnames","makeUniqueId","ToggleButton","Dropdown","Radio","HelpButton","Autocomplete","OptionField","useFieldProps","pickSpacingProps","FieldBlock","FormError","convertCamelCaseProps","useDataValue","Selection","props","clearValue","id","className","variant","label","labelDescription","layout","optionsLayout","placeholder","value","info","warning","error","hasError","disabled","help","emptyValue","width","htmlAttributes","setHasFocus","handleChange","data","dataPath","children","autocompleteProps","dropdownProps","getValueByPath","dataList","handleDropdownChange","_ref","selectedKey","onChangeHandler","_ref2","undefined","handleShow","_ref3","handleHide","_ref4","cn","fieldBlockProps","_objectSpread","forId","Component","items","renderRadioItems","createElement","_extends","asFieldset","Children","count","Group","layout_direction","on_change","String","status","getStatus","renderDropdownItems","concat","makeOptions","filter","Boolean","sharedProps","list_class","portal_class","title","suffix","content","on_show","on_hide","stretch","_error$message","message","Error","toString","_ref5","optionsCount","length","createOption","i","rest","_objectWithoutProperties","_excluded","size","key","text","map","mapOptions","_ref6","child","isValidElement","type","nestedChildren","cloneElement","_child","_child$props","_child$props$children","_ref7","_props$children","_props$value","_em","_ref8","_em2","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Selection/Selection.tsx"],"sourcesContent":["import React, { useMemo, useCallback } from 'react'\nimport classnames from 'classnames'\nimport { makeUniqueId } from '../../../../shared/component-helper'\nimport {\n ToggleButton,\n Dropdown,\n Radio,\n HelpButton,\n Autocomplete,\n} from '../../../../components'\nimport OptionField, { Props as OptionFieldProps } from '../Option'\nimport { useFieldProps } from '../../hooks'\nimport { ReturnAdditional } from '../../hooks/useFieldProps'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport FieldBlock from '../../FieldBlock'\nimport {\n FormError,\n FieldProps,\n FieldHelpProps,\n FieldBlockWidth,\n Path,\n} from '../../types'\nimport type { FormStatusText } from '../../../../components/FormStatus'\nimport type { AutocompleteAllProps } from '../../../../components/Autocomplete'\nimport type { DropdownAllProps } from '../../../../components/Dropdown'\nimport { HelpButtonProps } from '../../../../components/HelpButton'\nimport { DrawerListProps } from '../../../../fragments/DrawerList'\nimport {\n convertCamelCaseProps,\n ToCamelCase,\n} from '../../../../shared/helpers/withCamelCaseProps'\nimport useDataValue from '../../hooks/useDataValue'\n\ntype IOption = {\n title: string | React.ReactNode\n value: number | string\n status: FormStatusText\n}\nexport type Data = Array<{\n value: string\n title: React.ReactNode\n text?: React.ReactNode\n}>\n\nexport type Props = FieldHelpProps &\n FieldProps<IOption['value']> & {\n /**\n * Defines the variant of the component.\n * Default: dropdown\n */\n variant?: 'dropdown' | 'autocomplete' | 'radio' | 'button'\n\n /**\n * The width of the component.\n * Default: large\n */\n width?: FieldBlockWidth\n\n /**\n * Defines the layout of the options for radio and button variants.\n */\n optionsLayout?: 'horizontal' | 'vertical'\n\n /**\n * The path to the context data (Form.Handler).\n * The object needs to have a `value` and a `title` property.\n */\n dataPath?: Path\n\n /**\n * Data to be used for the component. The object needs to have a `value` and a `title` property.\n * The generated options will be placed above given JSX based children.\n */\n data?: Data\n\n /**\n * Autocomplete specific props\n */\n autocompleteProps?: ToCamelCase<AutocompleteAllProps>\n\n /**\n * Dropdown specific props\n */\n dropdownProps?: ToCamelCase<DropdownAllProps>\n\n /**\n * The content of the component.\n */\n children?: React.ReactNode\n }\n\nfunction Selection(props: Props) {\n const clearValue = useMemo(() => `clear-option-${makeUniqueId()}`, [])\n\n const {\n id,\n className,\n variant = 'dropdown',\n label,\n labelDescription,\n layout = 'vertical',\n optionsLayout = 'vertical',\n placeholder,\n value,\n info,\n warning,\n error,\n hasError,\n disabled,\n help,\n emptyValue,\n width = 'large',\n htmlAttributes,\n setHasFocus,\n handleChange,\n data,\n dataPath,\n children,\n\n // - Autocomplete and Dropdown specific props\n autocompleteProps,\n dropdownProps,\n } = useFieldProps(props)\n\n const { getValueByPath } = useDataValue()\n let dataList = data\n if (dataPath) {\n dataList = getValueByPath(dataPath)\n }\n\n const handleDropdownChange = useCallback(\n ({ data }) => {\n const selectedKey = data?.selectedKey\n handleChange?.(\n !selectedKey || selectedKey === clearValue\n ? emptyValue\n : selectedKey\n )\n },\n [handleChange, emptyValue, clearValue]\n )\n\n const onChangeHandler = useCallback(\n ({ value }) => {\n handleChange?.(value === undefined ? emptyValue : value)\n },\n [handleChange, emptyValue]\n )\n\n // Specific handleShow and handleHide because Dropdown preserve the initially received callbacks, so changes\n // due to `useCallback` usage will have no effect, leading to useFieldPropss handleFocus and handleBlur sending out old\n // copies of value as arguments.\n const handleShow = useCallback(\n ({ data }) => {\n setHasFocus(true, data?.selectedKey)\n },\n [setHasFocus]\n )\n\n const handleHide = useCallback(\n ({ data }) => {\n setHasFocus(false, data?.selectedKey)\n },\n [setHasFocus]\n )\n\n const cn = classnames(\n 'dnb-forms-field-selection',\n `dnb-forms-field-selection__variant--${variant}`,\n `dnb-forms-field-selection__options-layout--${optionsLayout}`,\n className\n )\n\n const fieldBlockProps = {\n forId: id,\n className: cn,\n ...pickSpacingProps(props),\n info,\n warning,\n error,\n layout,\n label,\n labelDescription,\n }\n\n switch (variant) {\n case 'radio':\n case 'button': {\n const Component = (\n variant === 'radio' ? Radio : ToggleButton\n ) as typeof Radio & typeof ToggleButton\n\n const items = renderRadioItems({\n id,\n value,\n variant,\n info,\n warning,\n htmlAttributes,\n children,\n dataList,\n hasError,\n })\n\n return (\n <FieldBlock\n {...fieldBlockProps}\n asFieldset={React.Children.count(items) > 1}\n >\n <Component.Group\n className={cn}\n layout_direction={\n optionsLayout === 'horizontal' ? 'row' : 'column'\n }\n disabled={disabled}\n on_change={onChangeHandler}\n value={String(value ?? '')}\n >\n {items}\n </Component.Group>\n </FieldBlock>\n )\n }\n\n case 'autocomplete':\n case 'dropdown': {\n const status = getStatus(error, info, warning)\n const data = renderDropdownItems(dataList)\n .concat(makeOptions(children))\n .filter(Boolean)\n\n const sharedProps: AutocompleteAllProps & DropdownAllProps = {\n id,\n list_class: 'dnb-forms-field-selection__list',\n portal_class: 'dnb-forms-field-selection__portal',\n title: placeholder,\n value: String(value ?? ''),\n status: (hasError || status) && 'error',\n disabled,\n ...htmlAttributes,\n data,\n suffix: help ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined,\n on_change: handleDropdownChange,\n on_show: handleShow,\n on_hide: handleHide,\n stretch: true,\n }\n\n return (\n <FieldBlock {...fieldBlockProps} width={width}>\n {variant === 'autocomplete' ? (\n <Autocomplete\n {...sharedProps}\n {...(autocompleteProps\n ? (convertCamelCaseProps(\n autocompleteProps\n ) as AutocompleteAllProps)\n : null)}\n />\n ) : (\n <Dropdown\n {...sharedProps}\n {...(dropdownProps\n ? (convertCamelCaseProps(\n dropdownProps\n ) as DropdownAllProps)\n : null)}\n />\n )}\n </FieldBlock>\n )\n }\n }\n}\n\nexport function getStatus(\n error: Error | FormError | undefined,\n info: React.ReactNode,\n warning: React.ReactNode\n) {\n return (\n error?.message ??\n ((warning instanceof Error && warning.message) ||\n (warning instanceof FormError && warning.message) ||\n warning?.toString() ||\n (info instanceof Error && info.message) ||\n (info instanceof FormError && info.message) ||\n info?.toString())\n )\n}\n\ntype OptionProps = React.ComponentProps<\n React.FC<{\n error?: Error | FormError | undefined\n title: React.ReactNode\n help?: HelpButtonProps\n children?: React.ReactNode\n }>\n>\n\nfunction renderRadioItems({\n id,\n value,\n variant,\n info,\n warning,\n htmlAttributes,\n children,\n dataList,\n hasError,\n}: {\n id: string\n value: Props['value']\n variant: Props['variant']\n info: Props['info']\n warning: Props['warning']\n htmlAttributes: Props['htmlAttributes']\n children: Props['children']\n dataList: Data\n hasError: ReturnAdditional<Props['value']>['hasError']\n}) {\n const optionsCount =\n React.Children.count(children) + (dataList?.length || 0)\n\n const createOption = (props: OptionProps, i: number) => {\n const { error, title, help, children, ...rest } = props\n\n const label = title ?? children\n const status = getStatus(error, info, warning)\n const suffix = help ? (\n <HelpButton size=\"small\" title={help.title}>\n {help.content}\n </HelpButton>\n ) : undefined\n\n const Component = (\n variant === 'radio' ? Radio : ToggleButton\n ) as typeof Radio & typeof ToggleButton\n\n return (\n <Component\n id={optionsCount === 1 ? id : undefined}\n key={`option-${i}-${value}`}\n label={variant === 'radio' ? label : undefined}\n text={variant === 'button' ? label : undefined}\n value={String(value ?? '')}\n status={(hasError || status) && 'error'}\n suffix={suffix}\n {...htmlAttributes}\n {...rest}\n />\n )\n }\n\n return [\n ...(dataList || []).map((props, i) => {\n return createOption(props as OptionProps, i)\n }),\n ...(mapOptions(children, { createOption }) || []),\n ].filter(Boolean)\n}\n\nexport function mapOptions(children: React.ReactNode, { createOption }) {\n return React.Children.map(\n children,\n (child: React.ReactElement<OptionProps>, i) => {\n if (React.isValidElement(child)) {\n if (child.type === OptionField) {\n return createOption(child.props, i)\n }\n\n if (child.props.children) {\n const nestedChildren = mapOptions(child.props.children, {\n createOption,\n })\n return React.cloneElement(child, child.props, nestedChildren)\n }\n }\n\n return child\n }\n )\n}\n\nexport function makeOptions<T = DrawerListProps['data']>(\n children: React.ReactNode\n): T {\n return React.Children.map(children, (child) => {\n if (child?.['props']?.children?.type === OptionField) {\n child = child['props'].children\n }\n\n if (React.isValidElement(child) && child.type === OptionField) {\n const props = child.props as OptionFieldProps\n const title = props.children ?? props.title ?? <em>Untitled</em>\n const content = props.text ? [title, props.text] : title\n const selectedKey = String(props.value ?? '')\n\n return { selectedKey, content }\n }\n\n // For other children, just show them as content\n if (child) {\n return {\n content: child,\n }\n }\n }) as T\n}\n\nfunction renderDropdownItems(data: Data) {\n return (\n data?.map(({ value, title, text }) => ({\n selectedKey: value,\n content: (text ? [title, text] : title) || <em>Untitled</em>,\n })) || []\n )\n}\n\nSelection._supportsSpacingProps = true\nexport default Selection\n"],"mappings":"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"}
@@ -10,7 +10,7 @@ import React, { useMemo, useContext, useCallback, useRef, useReducer, useEffect
10
10
  import classnames from 'classnames';
11
11
  import FieldBlockContext from './FieldBlockContext';
12
12
  import DataContext from '../DataContext/Context';
13
- import IterateElementContext from '../Iterate/IterateElementContext';
13
+ import IterateElementContext from '../Iterate/IterateItemContext';
14
14
  import { Space, FormLabel, FormStatus } from '../../../components';
15
15
  import { Ul, Li } from '../../../elements';
16
16
  import { convertJsxToString, findElementInChildren, warn } from '../../../shared/component-helper';
@@ -48,10 +48,10 @@ function FieldBlock(props) {
48
48
  children
49
49
  } = _Object$assign,
50
50
  rest = _objectWithoutProperties(_Object$assign, _excluded);
51
- const iterateElementContext = useContext(IterateElementContext);
51
+ const iterateItemContext = useContext(IterateElementContext);
52
52
  const {
53
53
  index: iterateIndex
54
- } = iterateElementContext !== null && iterateElementContext !== void 0 ? iterateElementContext : {};
54
+ } = iterateItemContext !== null && iterateItemContext !== void 0 ? iterateItemContext : {};
55
55
  const blockId = useId(props.id);
56
56
  const [wasUpdated, forceUpdate] = useReducer(() => ({}), {});
57
57
  const mountedFieldsRef = useRef({});
@@ -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","useUnmountEffect","FormError","SubmitIndicator","createSharedState","useTranslation","states","FieldBlock","props","dataContext","nestedFieldBlockContext","sharedData","forId","id","_Object$assign","Object","assign","data","className","layout","composition","label","labelProp","labelDescription","labelSrOnly","asFieldset","info","warning","error","errorProp","fieldState","disabled","width","contentWidth","align","labelSize","contentClassName","children","rest","_objectWithoutProperties","_excluded","iterateElementContext","index","iterateIndex","blockId","wasUpdated","forceUpdate","mountedFieldsRef","stateRecordRef","fieldStateIdsRef","contentsRef","hasInitiallyErrorProp","Boolean","undefined","replace","String","setInternalRecord","stateId","identifier","type","current","existingIndex","findIndex","item","_objectSpread","push","setFieldState","showFieldError","show","map","showInitially","statusContent","content","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","createElement","CombineMessages","mainClasses","gridClasses","enableFieldset","useEnableFieldset","labelProps","element","srOnly","space","top","bottom","size","prerenderFieldProps","Provider","value","hasErrorProp","_extends","LabelDescription","ref","_ref3","result","count","child","_child$props","_child$type","_ref4","translations","Field","Fragment","errorSummary","stateSummary","_ref5","key","_ref6","Error","toString","_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/IterateElementContext'\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 useUnmountEffect from '../../../shared/helpers/useUnmountEffect'\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 | '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 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 labelSrOnly,\n asFieldset,\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 iterateElementContext = useContext(IterateElementContext)\n const { index: iterateIndex } = iterateElementContext ?? {}\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 label = useMemo(() => {\n if (iterateIndex !== undefined) {\n return convertJsxToString(labelProp).replace(\n '{itemNr}',\n String(iterateIndex + 1)\n )\n }\n return labelProp\n }, [iterateIndex, labelProp])\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 useUnmountEffect(() => () => {\n mountedFieldsRef.current = {}\n stateRecordRef.current = {}\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 && !label) {\n warn('You have to provide a label to use show an indicator.')\n }\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 {labelDescription && (\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\n }\n return <div className=\"dnb-forms-field-block__label\">{children}</div>\n}\n\nfunction 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\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","useUnmountEffect","FormError","SubmitIndicator","createSharedState","useTranslation","states","FieldBlock","props","dataContext","nestedFieldBlockContext","sharedData","forId","id","_Object$assign","Object","assign","data","className","layout","composition","label","labelProp","labelDescription","labelSrOnly","asFieldset","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","undefined","replace","String","setInternalRecord","stateId","identifier","type","current","existingIndex","findIndex","item","_objectSpread","push","setFieldState","showFieldError","show","map","showInitially","statusContent","content","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","createElement","CombineMessages","mainClasses","gridClasses","enableFieldset","useEnableFieldset","labelProps","element","srOnly","space","top","bottom","size","prerenderFieldProps","Provider","value","hasErrorProp","_extends","LabelDescription","ref","_ref3","result","count","child","_child$props","_child$type","_ref4","translations","Field","Fragment","errorSummary","stateSummary","_ref5","key","_ref6","Error","toString","_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 useUnmountEffect from '../../../shared/helpers/useUnmountEffect'\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 | '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 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 labelSrOnly,\n asFieldset,\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 label = useMemo(() => {\n if (iterateIndex !== undefined) {\n return convertJsxToString(labelProp).replace(\n '{itemNr}',\n String(iterateIndex + 1)\n )\n }\n return labelProp\n }, [iterateIndex, labelProp])\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 useUnmountEffect(() => () => {\n mountedFieldsRef.current = {}\n stateRecordRef.current = {}\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 && !label) {\n warn('You have to provide a label to use show an indicator.')\n }\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 {labelDescription && (\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\n }\n return <div className=\"dnb-forms-field-block__label\">{children}</div>\n}\n\nfunction 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\nFieldBlock._supportsSpacingProps = true\n\nexport default FieldBlock\n"],"mappings":";;;;;;;;AAAA,OAAOA,KAAK,IACVC,OAAO,EACPC,UAAU,EACVC,WAAW,EACXC,MAAM,EACNC,UAAU,EACVC,SAAS,QACJ,OAAO;AACd,OAAOC,UAAU,MAAM,YAAY;AAEnC,OAAOC,iBAAiB,MAWjB,qBAAqB;AAC5B,OAAOC,WAAW,MAAM,wBAAwB;AAChD,OAAOC,qBAAqB,MAAM,+BAA+B;AACjE,SAASC,KAAK,EAAEC,SAAS,EAAEC,UAAU,QAAQ,qBAAqB;AAClE,SAASC,EAAE,EAAEC,EAAE,QAAQ,mBAAmB;AAC1C,SACEC,kBAAkB,EAClBC,qBAAqB,EACrBC,IAAI,QACC,kCAAkC;AACzC,OAAOC,KAAK,MAAM,+BAA+B;AACjD,OAAOC,gBAAgB,MAAM,0CAA0C;AACvE,SAGEC,SAAS,QAIJ,UAAU;AAEjB,OAAOC,eAAe,MAAM,yCAAyC;AACrE,SAASC,iBAAiB,QAAQ,wCAAwC;AAC1E,OAAOC,cAAc,MAAM,yBAAyB;AAEpD,OAAO,MAAMC,MAAyB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC;AAoCrE,SAASC,UAAUA,CAACC,KAAY,EAAE;EAChC,MAAMC,WAAW,GAAG1B,UAAU,CAACO,WAAW,CAAC;EAC3C,MAAMoB,uBAAuB,GAAG3B,UAAU,CAACM,iBAAiB,CAAC;EAE7D,MAAMsB,UAAU,GAAGP,iBAAiB,CAClC,oBAAoB,IAAII,KAAK,CAACI,KAAK,IAAIJ,KAAK,CAACK,EAAE,CACjD,CAAC;EACD,MAAAC,cAAA,GAqBIC,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,EAAEL,UAAU,CAACM,IAAI,EAAET,KAAK,CAAC;IArBvC;MACJU,SAAS;MACTN,KAAK;MACLO,MAAM,GAAG,UAAU;MACnBC,WAAW;MACXC,KAAK,EAAEC,SAAS;MAChBC,gBAAgB;MAChBC,WAAW;MACXC,UAAU;MACVC,IAAI;MACJC,OAAO;MACPC,KAAK,EAAEC,SAAS;MAChBC,UAAU;MACVC,QAAQ;MACRC,KAAK;MACLC,YAAY;MACZC,KAAK;MACLC,SAAS;MACTC,gBAAgB;MAChBC;IAEF,CAAC,GAAAvB,cAAA;IADIwB,IAAI,GAAAC,wBAAA,CAAAzB,cAAA,EAAA0B,SAAA;EAGT,MAAMC,kBAAkB,GAAG1D,UAAU,CAACQ,qBAAqB,CAAC;EAC5D,MAAM;IAAEmD,KAAK,EAAEC;EAAa,CAAC,GAAGF,kBAAkB,aAAlBA,kBAAkB,cAAlBA,kBAAkB,GAAI,CAAC,CAAC;EAExD,MAAMG,OAAO,GAAG5C,KAAK,CAACQ,KAAK,CAACK,EAAE,CAAC;EAC/B,MAAM,CAACgC,UAAU,EAAEC,WAAW,CAAC,GAAG5D,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAC5D,MAAM6D,gBAAgB,GAAG9D,MAAM,CAAmB,CAAC,CAAC,CAAC;EACrD,MAAM+D,cAAc,GAAG/D,MAAM,CAAc,CAAC,CAAC,CAAC;EAC9C,MAAMgE,gBAAgB,GAAGhE,MAAM,CAAmB,IAAI,CAAC;EACvD,MAAMiE,WAAW,GAAGjE,MAAM,CAAiB,IAAI,CAAC;EAChD,MAAMkE,qBAAqB,GAAGrE,OAAO,CAAC,MAAM;IAC1C,OAAOsE,OAAO,CAACvB,SAAS,CAAC;EAC3B,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMR,KAAK,GAAGvC,OAAO,CAAC,MAAM;IAC1B,IAAI6D,YAAY,KAAKU,SAAS,EAAE;MAC9B,OAAOxD,kBAAkB,CAACyB,SAAS,CAAC,CAACgC,OAAO,CAC1C,UAAU,EACVC,MAAM,CAACZ,YAAY,GAAG,CAAC,CACzB,CAAC;IACH;IACA,OAAOrB,SAAS;EAClB,CAAC,EAAE,CAACqB,YAAY,EAAErB,SAAS,CAAC,CAAC;EAE7B,MAAMkC,iBAAiB,GAAGxE,WAAW,CAAEwB,KAAiB,IAAK;IAC3D,MAAM;MAAEiD,OAAO;MAAEC,UAAU;MAAEC;IAAK,CAAC,GAAGnD,KAAK;IAE3C,IAAI,CAACwC,cAAc,CAACY,OAAO,CAACF,UAAU,CAAC,EAAE;MACvCV,cAAc,CAACY,OAAO,CAACF,UAAU,CAAC,GAAG,EAAE;IACzC;IAEAT,gBAAgB,CAACW,OAAO,GAAG;MAAEhC,KAAK,EAAE,IAAI;MAAED,OAAO,EAAE,IAAI;MAAED,IAAI,EAAE;IAAK,CAAC;IAErE,MAAMmC,aAAa,GAAGb,cAAc,CAACY,OAAO,CAACF,UAAU,CAAC,CAACI,SAAS,CAC/DC,IAAI,IAAK;MACR,OAAOA,IAAI,CAACN,OAAO,KAAKA,OAAO,IAAIM,IAAI,CAACJ,IAAI,KAAKA,IAAI;IACvD,CACF,CAAC;IAED,IAAIE,aAAa,GAAG,CAAC,CAAC,EAAE;MACtBb,cAAc,CAACY,OAAO,CAACF,UAAU,CAAC,CAACG,aAAa,CAAC,GAAAG,aAAA,CAAAA,aAAA,KAC5ChB,cAAc,CAACY,OAAO,CAACF,UAAU,CAAC,CAACG,aAAa,CAAC,GACjDrD,KAAK,CACT;IACH,CAAC,MAAM;MACLwC,cAAc,CAACY,OAAO,CAACF,UAAU,CAAC,CAACO,IAAI,CAACzD,KAAK,CAAC;IAChD;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAM0D,aAAa,GAAGlF,WAAW,CAC9BwB,KAAiB,IAAK;IACrB,IAAIE,uBAAuB,EAAE;MAE3BA,uBAAuB,CAACwD,aAAa,CAAC1D,KAAK,CAAC;MAC5C;IACF;IAEAgD,iBAAiB,CAAChD,KAAK,CAAC;IAExBsC,WAAW,CAAC,CAAC;EACf,CAAC,EACD,CAACpC,uBAAuB,EAAE8C,iBAAiB,CAC7C,CAAC;EAED,MAAMW,cAAc,GAAGnF,WAAW,CAChC,CAAC0E,UAAsB,EAAEU,IAAa,KAAK;IACzC,IAAI1D,uBAAuB,EAAE;MAE3BA,uBAAuB,CAACyD,cAAc,CAACT,UAAU,EAAEU,IAAI,CAAC;MACxD;IACF;IAEA,IAAIpB,cAAc,CAACY,OAAO,CAACF,UAAU,CAAC,EAAE;MACtCV,cAAc,CAACY,OAAO,CAACF,UAAU,CAAC,GAAGV,cAAc,CAACY,OAAO,CACzDF,UAAU,CACX,CAACW,GAAG,CAAEN,IAAI,IAAK;QACd,IAAIA,IAAI,CAACO,aAAa,EAAE;UACtB,OAAOP,IAAI;QACb;QAEA,OAAAC,aAAA,CAAAA,aAAA,KACKD,IAAI;UACPK;QAAI;MAER,CAAC,CAAC;MAEFtB,WAAW,CAAC,CAAC;IACf;EACF,CAAC,EACD,CAACpC,uBAAuB,CAC1B,CAAC;EAED,MAAM6D,aAAa,GAAGzF,OAAO,CAAC,MAAM;IAClC,IAAI,OAAO+C,SAAS,KAAK,WAAW,EAAE;MACpC2B,iBAAiB,CAAC;QAChBE,UAAU,EAAEd,OAAO;QACnB0B,aAAa,EAAEnB,qBAAqB;QACpCQ,IAAI,EAAE,OAAO;QACba,OAAO,EAAE3C;MACX,CAAC,CAAC;IACJ;IAEA,IAAI,OAAOF,OAAO,KAAK,WAAW,EAAE;MAClC6B,iBAAiB,CAAC;QAChBE,UAAU,EAAEd,OAAO;QACnB0B,aAAa,EAAE,IAAI;QACnBX,IAAI,EAAE,SAAS;QACfa,OAAO,EAAE7C;MACX,CAAC,CAAC;IACJ;IAEA,IAAI,OAAOD,IAAI,KAAK,WAAW,EAAE;MAC/B8B,iBAAiB,CAAC;QAChBE,UAAU,EAAEd,OAAO;QACnB0B,aAAa,EAAE,IAAI;QACnBX,IAAI,EAAE,MAAM;QACZa,OAAO,EAAE9C;MACX,CAAC,CAAC;IACJ;IAEA,MAAM+C,kBAA6C,GAEjD1D,MAAM,CAAC2D,OAAO,CAAC1B,cAAc,CAACY,OAAO,CAAC,CACnCe,OAAO,CAACC,IAAA;MAAA,IAAC,CAAClB,UAAU,EAAEpD,MAAM,CAAC,GAAAsE,IAAA;MAAA,OAC5BtE,MAAM,CAAC+D,GAAG,CAAE7D,KAAK,IAAK;QACpB,OAAAwD,aAAA;UACEN;QAAU,GACPlD,KAAK;MAEZ,CAAC,CAAC;IAAA,CACJ,CAAC,CAGAqE,MAAM,CAAC,CAACC,GAAG,EAAEC,GAAG,KAAK;MACpB,MAAMC,QAAQ,GAAGF,GAAG,CAACG,IAAI,CAAElB,IAAI,IAAK;QAClC,OAAOA,IAAI,CAACJ,IAAI,KAAKoB,GAAG,CAACpB,IAAI;MAC/B,CAAC,CAAC;MAEF,MAAMuB,OAAO,GAAGC,UAAU,CAACJ,GAAG,CAAC;MAE/B,IAAIC,QAAQ,EAAE;QACZA,QAAQ,CAACI,QAAQ,CAACnB,IAAI,CAAAD,aAAA,CAAAA,aAAA,KACjBe,GAAG;UACNG;QAAO,EACR,CAAC;MACJ,CAAC,MAAM;QACLJ,GAAG,CAACb,IAAI,CAAAD,aAAA,CAAAA,aAAA,KACHe,GAAG;UACNP,OAAO,EAAEnB,SAAS;UAClB+B,QAAQ,EAAE,CAAApB,aAAA,CAAAA,aAAA,KAEHe,GAAG;YACNG;UAAO;QAEV,EACF,CAAC;MACJ;MAEA,OAAOJ,GAAG;IACZ,CAAC,EAAE,EAA+B,CAAC;IAGvC,OAAOxE,MAAM,CAACuE,MAAM,CAAC,CAACC,GAAG,EAAEnB,IAAI,KAAK;MAClC,MAAM9C,EAAE,GAAI,GAAEL,KAAK,CAACK,EAAE,IAAID,KAAK,IAAIgC,OAAQ,iBAAgBe,IAAK,EAAC;MACjEmB,GAAG,CAACnB,IAAI,CAAC,GAAG;QACV9C,EAAE;QACFQ,KAAK;QACLgE,KAAK,EAAE1B,IAAI,KAAK,SAAS,GAAG,MAAM,GAAGA,IAAI;QACzC2B,aAAa,EAAEpC,WAAW;QAG1BqC,YAAY,EACVC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,MAAM,GAC3B,IAAI,GACJ,OAAOC,UAAU,KAAK,WAAW,GACjCA,UAAU,CAACC,OAAO,KAAK,IAAI,GAC3B;MACR,CAAC;MAED,MAAMC,KAAK,GAAGpB,kBAAkB,CAACQ,IAAI,CAAElB,IAAI,IAAK;QAC9C,OAAOA,IAAI,CAACJ,IAAI,KAAKA,IAAI;MAC3B,CAAC,CAAC;MAEF,IAAIkC,KAAK,aAALA,KAAK,eAALA,KAAK,CAAET,QAAQ,EAAE;QAEnB,MAAMA,QAAQ,GAAGS,KAAK,CAACT,QAAQ,CAC5Bf,GAAG,CAAEyB,GAAG,IAAK;UACZ,IAAIA,GAAG,CAACnC,IAAI,KAAK,OAAO,EAAE;YACxB,IAAI,CAACmC,GAAG,CAACxB,aAAa,IAAI,CAACwB,GAAG,CAAC1B,IAAI,EAAE;cACnC0B,GAAG,CAACZ,OAAO,GAAG,IAAI;YACpB;UACF;UAEA,OAAOY,GAAG;QACZ,CAAC,CAAC,CACDC,MAAM,CAACC,KAAA;UAAA,IAAC;YAAEd;UAAQ,CAAC,GAAAc,KAAA;UAAA,OAAKd,OAAO;QAAA,EAAC,CAChCL,MAAM,CAAC,CAACC,GAAG,EAAEgB,GAAG,EAAEG,CAAC,EAAEC,GAAG,KAAK;UAC5B,MAAMrC,aAAa,GAAGqC,GAAG,CAACpC,SAAS,CAAEC,IAAI,IAAK;YAC5C,OACElE,kBAAkB,CAACkE,IAAI,CAACmB,OAAO,CAAC,KAChCrF,kBAAkB,CAACiG,GAAG,CAACZ,OAAO,CAAC;UAEnC,CAAC,CAAC;UAGF,IAAIrB,aAAa,KAAKoC,CAAC,EAAE;YACvBnB,GAAG,CAACb,IAAI,CAAC6B,GAAG,CAAC;UACf;UAEA,OAAOhB,GAAG;QACZ,CAAC,EAAE,EAAE,CAAC;QAGR,IAAIM,QAAQ,CAACe,MAAM,GAAG,CAAC,EAAE;UACvBrB,GAAG,CAACnB,IAAI,CAAC,GAAAK,aAAA,CAAAA,aAAA,KACJc,GAAG,CAACnB,IAAI,CAAC;YACZyC,IAAI,EAAEvH,KAAA,CAAAwH,aAAA,CAACC,eAAe;cAAC3C,IAAI,EAAEA,IAAK;cAACyB,QAAQ,EAAEA;YAAS,CAAE;UAAC,EAC1D;UAEDnC,gBAAgB,CAACW,OAAO,CAACD,IAAI,CAAC,GAAG9C,EAAE;QACrC,CAAC,MAAM;UACLoC,gBAAgB,CAACW,OAAO,CAACD,IAAI,CAAC,GAAGN,SAAS;QAC5C;MACF;MAEA,OAAOyB,GAAG;IACZ,CAAC,EAAE,CAAC,CAAC,CAAC;EAGR,CAAC,EAAE,CACDpD,IAAI,EACJC,OAAO,EACPE,SAAS,EACTnB,uBAAuB,EACvB8C,iBAAiB,EACjBZ,OAAO,EACPC,UAAU,CACX,CAAC;EAGF1D,SAAS,CAAC,MAAM;IACd,IAAI,CAACuB,uBAAuB,EAAE;MAC5ByD,cAAc,CAACvB,OAAO,EAAEQ,OAAO,CAACvB,SAAS,CAAC,CAAC;IAC7C;EACF,CAAC,EAAE,CAACA,SAAS,EAAEe,OAAO,EAAEuB,cAAc,EAAEzD,uBAAuB,CAAC,CAAC;EAEjET,gBAAgB,CAAC,MAAM,MAAM;IAC3B8C,gBAAgB,CAACa,OAAO,GAAG,CAAC,CAAC;IAC7BZ,cAAc,CAACY,OAAO,GAAG,CAAC,CAAC;EAC7B,CAAC,CAAC;EAEF,MAAM2C,WAAW,GAAGnH,UAAU,CAC5B,uBAAuB,EAEvB8B,SAAS,EADTc,KAAK,KAAKqB,SAAS,IAAK,gCAA+BrB,KAAM,EAE/D,CAAC;EACD,MAAMwE,WAAW,gEAEkBrF,MAAO,EACzC;EAGD,MAAMsF,cAAc,GAAGC,iBAAiB,CAAC;IACvCrF,KAAK;IACLI,UAAU;IACVY,QAAQ;IACR3B;EACF,CAAC,CAAC;EAEF,MAAMiG,UAA6B,GAAG;IACpCC,OAAO,EAAEH,cAAc,GAAG,QAAQ,GAAG,OAAO;IAC5C7F,KAAK,EAAE6F,cAAc,GAAGpD,SAAS,GAAGzC,KAAK;IACzCiG,MAAM,EAAErF,WAAW;IACnBsF,KAAK,EAAE;MAAEC,GAAG,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAU,CAAC;IACpCC,IAAI,EAAE9E,SAAS;IACfJ;EACF,CAAC;EAED,IAAItB,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAEyG,mBAAmB,EAAE;IACpC,OAAO,IAAI;EACb;EAEA,IAAIpF,UAAU,IAAI,CAACT,KAAK,EAAE;IACxBtB,IAAI,CAAC,uDAAuD,CAAC;EAC/D;EAEA,OACElB,KAAA,CAAAwH,aAAA,CAAChH,iBAAiB,CAAC8H,QAAQ;IACzBC,KAAK,EAAE;MACLlD,aAAa;MACbC,cAAc;MACdkD,YAAY,EAAEjE,OAAO,CAACvB,SAAS,CAAC;MAChCoB,gBAAgB;MAChBF,gBAAgB;MAChB3B;IACF;EAAE,GAEFvC,KAAA,CAAAwH,aAAA,CAAC7G,KAAK,EAAA8H,QAAA;IACJV,OAAO,EAAEH,cAAc,GAAG,UAAU,GAAG,KAAM;IAC7CvF,SAAS,EAAEqF;EAAY,GACnBjE,IAAI,GAERzD,KAAA,CAAAwH,aAAA;IAAKnF,SAAS,EAAEsF;EAAY,GAC1B3H,KAAA,CAAAwH,aAAA,CAACkB,gBAAgB;IAAChG,gBAAgB,EAAEA;EAAiB,GAClD,CAACF,KAAK,IAAIE,gBAAgB,KACzB1C,KAAA,CAAAwH,aAAA,CAAC5G,SAAS,EAAKkH,UAAU,EACvB9H,KAAA,CAAAwH,aAAA,CAAClG,eAAe;IAACkF,KAAK,EAAEvD;EAAW,GAChCT,KAAK,EACLE,gBAAgB,IACf1C,KAAA,CAAAwH,aAAA;IAAMnF,SAAS,EAAC;EAA0C,GACvDK,gBACG,CAEO,CACR,CAEG,CAAC,EAEnB1C,KAAA,CAAAwH,aAAA;IAAKnF,SAAS,EAAC;EAA+B,GAC5CrC,KAAA,CAAAwH,aAAA,CAAC3G,UAAU,EAAK6E,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAE3C,KAAQ,CAAC,EACxC/C,KAAA,CAAAwH,aAAA,CAAC3G,UAAU,EAAK6E,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAE5C,OAAU,CAAC,EAC1C9C,KAAA,CAAAwH,aAAA,CAAC3G,UAAU,EAAK6E,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAE7C,IAAO,CACnC,CAAC,EAEN7C,KAAA,CAAAwH,aAAA;IACEnF,SAAS,EAAE9B,UAAU,CACnB,iCAAiC,EAQjCgD,gBAAgB,EAPhBH,YAAY,IACT,0CAAyCA,YAAa,EAAC,EAC1DC,KAAK,IAAK,0CAAyCA,KAAM,EAAC,EAC1Dd,WAAW,IACR,iDACCA,WAAW,KAAK,IAAI,GAAG,YAAY,GAAGA,WACvC,EAEL,CAAE;IACFoG,GAAG,EAAEtE;EAAY,GAEhBb,QACE,CACF,CACA,CACmB,CAAC;AAEjC;AAEA,SAASqE,iBAAiBA,CAAAe,KAAA,EAKvB;EAAA,IALwB;IACzBpG,KAAK;IACLI,UAAU;IACVY,QAAQ;IACR3B;EACF,CAAC,GAAA+G,KAAA;EACC,OAAO3I,OAAO,CAAC,MAAM;IACnB,IAAI2C,UAAU,KAAK,KAAK,EAAE;MACxB,OAAO,KAAK;IACd;IAEA,IAAIiG,MAAM,GAAGjG,UAAU;IAEvB,IAAIJ,KAAK,IAAI,CAACqG,MAAM,IAAI,CAAChH,uBAAuB,EAAE;MAChD,IAAIiH,KAAK,GAAG,CAAC;MAEb7H,qBAAqB,CAACuC,QAAQ,EAAGuF,KAAyB,IAAK;QAAA,IAAAC,YAAA,EAAAC,WAAA;QAC7D,IACEF,KAAK,aAALA,KAAK,gBAAAC,YAAA,GAALD,KAAK,CAAEpH,KAAK,cAAAqH,YAAA,eAAZA,YAAA,CAAcxG,KAAK,IACnB,CAAAuG,KAAK,aAALA,KAAK,wBAAAE,WAAA,GAALF,KAAK,CAAEjE,IAAI,cAAAmE,WAAA,uBAAXA,WAAA,CAAc,cAAc,CAAC,MAAK,IAAI,EACtC;UACAH,KAAK,EAAE;QACT;QACA,IAAIA,KAAK,GAAG,CAAC,EAAE;UACb,OAAQD,MAAM,GAAG,IAAI;QACvB;MACF,CAAC,CAAC;IACJ;IAEA,OAAOtE,OAAO,CAACsE,MAAM,CAAC;EACxB,CAAC,EAAE,CAACjG,UAAU,EAAEY,QAAQ,EAAEhB,KAAK,EAAEX,uBAAuB,CAAC,CAAC;AAC5D;AAEA,SAAS4F,eAAeA,CAAAyB,KAAA,EAMrB;EAAA,IANsB;IACvBpE,IAAI;IACJyB;EAIF,CAAC,GAAA2C,KAAA;EACC,MAAMC,YAAY,GAAG3H,cAAc,CAAC,CAAC,CAAC4H,KAAK;EAE3C,IAAI7C,QAAQ,CAACe,MAAM,KAAK,CAAC,EAAE;IACzB,OAAOtH,KAAA,CAAAwH,aAAA,CAAAxH,KAAA,CAAAqJ,QAAA,QAAG9C,QAAQ,CAAC,CAAC,CAAC,CAACF,OAAU,CAAC;EACnC;EAEA,OACErG,KAAA,CAAAwH,aAAA,CAAAxH,KAAA,CAAAqJ,QAAA,QACGvE,IAAI,KAAK,OAAO,GACbqE,YAAY,CAACG,YAAY,GACzBH,YAAY,CAACI,YAAY,EAC7BvJ,KAAA,CAAAwH,aAAA,CAAC1G,EAAE,QACAyF,QAAQ,CAACf,GAAG,CAAC,CAAAgE,KAAA,EAAcpC,CAAC,KAAK;IAAA,IAAnB;MAAEf;IAAQ,CAAC,GAAAmD,KAAA;IACxB,OAAOxJ,KAAA,CAAAwH,aAAA,CAACzG,EAAE;MAAC0I,GAAG,EAAErC;IAAE,GAAEf,OAAY,CAAC;EACnC,CAAC,CACC,CACJ,CAAC;AAEP;AAEA,SAASqC,gBAAgBA,CAAAgB,KAAA,EAAiC;EAAA,IAAhC;IAAEhH,gBAAgB;IAAEc;EAAS,CAAC,GAAAkG,KAAA;EACtD,IAAI,CAAChH,gBAAgB,EAAE;IACrB,OAAOc,QAAQ;EACjB;EACA,OAAOxD,KAAA,CAAAwH,aAAA;IAAKnF,SAAS,EAAC;EAA8B,GAAEmB,QAAc,CAAC;AACvE;AAEA,SAAS8C,UAAUA,CAACpB,IAA+B,EAAgB;EACjE,MAAM;IAAES;EAAQ,CAAC,GAAGT,IAAI;EAExB,OAASS,OAAO,YAAYgE,KAAK,IAAIhE,OAAO,CAACU,OAAO,IACjDV,OAAO,YAAYtE,SAAS,IAAIsE,OAAO,CAACU,OAAQ,KACjDV,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEiE,QAAQ,CAAC,CAAC,KACnBjE,OAAO;AACX;AAEAjE,UAAU,CAACmI,qBAAqB,GAAG,IAAI;AAEvC,eAAenI,UAAU"}