@dnb/eufemia 10.62.4 → 10.63.1

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 (895) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/cjs/components/accordion/Accordion.d.ts +1 -125
  3. package/cjs/components/accordion/Accordion.js +0 -1
  4. package/cjs/components/accordion/Accordion.js.map +1 -1
  5. package/cjs/components/autocomplete/Autocomplete.js +3 -2
  6. package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
  7. package/cjs/components/button/Button.d.ts +3 -6
  8. package/cjs/components/button/Button.js +8 -18
  9. package/cjs/components/button/Button.js.map +1 -1
  10. package/cjs/components/button/ButtonDocs.d.ts +2 -0
  11. package/cjs/components/button/ButtonDocs.js +135 -0
  12. package/cjs/components/button/ButtonDocs.js.map +1 -0
  13. package/cjs/components/date-picker/DatePicker.d.ts +4 -0
  14. package/cjs/components/date-picker/DatePicker.js +24 -10
  15. package/cjs/components/date-picker/DatePicker.js.map +1 -1
  16. package/cjs/components/date-picker/DatePickerDocs.js +5 -0
  17. package/cjs/components/date-picker/DatePickerDocs.js.map +1 -1
  18. package/cjs/components/date-picker/DatePickerPortal.d.ts +9 -0
  19. package/cjs/components/date-picker/DatePickerPortal.js +61 -0
  20. package/cjs/components/date-picker/DatePickerPortal.js.map +1 -0
  21. package/cjs/components/date-picker/style/dnb-date-picker.css +64 -55
  22. package/cjs/components/date-picker/style/dnb-date-picker.min.css +1 -1
  23. package/cjs/components/date-picker/style/dnb-date-picker.scss +90 -75
  24. package/cjs/components/form-row/FormRow.js +2 -7
  25. package/cjs/components/form-row/FormRow.js.map +1 -1
  26. package/cjs/components/form-row/style/dnb-form-row.css +3 -3
  27. package/cjs/components/form-row/style/dnb-form-row.min.css +1 -1
  28. package/cjs/components/form-status/FormStatus.js +17 -19
  29. package/cjs/components/form-status/FormStatus.js.map +1 -1
  30. package/cjs/components/height-animation/HeightAnimationInstance.d.ts +1 -0
  31. package/cjs/components/height-animation/HeightAnimationInstance.js +26 -1
  32. package/cjs/components/height-animation/HeightAnimationInstance.js.map +1 -1
  33. package/cjs/components/input-masked/InputMasked.d.ts +1 -1
  34. package/cjs/components/input-masked/InputMasked.js +2 -2
  35. package/cjs/components/input-masked/InputMasked.js.map +1 -1
  36. package/cjs/components/input-masked/InputMaskedDocs.js +1 -1
  37. package/cjs/components/input-masked/InputMaskedDocs.js.map +1 -1
  38. package/cjs/components/input-masked/InputMaskedHooks.js +1 -1
  39. package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
  40. package/cjs/components/input-masked/InputMaskedUtils.js +1 -1
  41. package/cjs/components/input-masked/InputMaskedUtils.js.map +1 -1
  42. package/cjs/components/input-masked/style/dnb-input-masked.css +3 -3
  43. package/cjs/components/input-masked/style/dnb-input-masked.min.css +1 -1
  44. package/cjs/components/pagination/Pagination.d.ts +12 -0
  45. package/cjs/components/pagination/Pagination.js +7 -3
  46. package/cjs/components/pagination/Pagination.js.map +1 -1
  47. package/cjs/components/pagination/PaginationBar.d.ts +2 -1
  48. package/cjs/components/pagination/PaginationBar.js +10 -3
  49. package/cjs/components/pagination/PaginationBar.js.map +1 -1
  50. package/cjs/components/radio/style/dnb-radio.css +3 -3
  51. package/cjs/components/radio/style/dnb-radio.min.css +1 -1
  52. package/cjs/components/space/style/dnb-space.css +4 -4
  53. package/cjs/components/space/style/dnb-space.min.css +1 -1
  54. package/cjs/components/space/style/dnb-space.scss +2 -12
  55. package/cjs/components/space/style/space-mixins.scss +21 -0
  56. package/cjs/components/tabs/Tabs.d.ts +1 -1
  57. package/cjs/components/tabs/Tabs.js +4 -12
  58. package/cjs/components/tabs/Tabs.js.map +1 -1
  59. package/cjs/components/toggle-button/ToggleButton.d.ts +9 -5
  60. package/cjs/components/toggle-button/ToggleButton.js +2 -0
  61. package/cjs/components/toggle-button/ToggleButton.js.map +1 -1
  62. package/cjs/components/toggle-button/ToggleButtonDocs.d.ts +2 -0
  63. package/cjs/components/toggle-button/ToggleButtonDocs.js +87 -0
  64. package/cjs/components/toggle-button/ToggleButtonDocs.js.map +1 -0
  65. package/cjs/components/toggle-button/ToggleButtonGroup.d.ts +21 -6
  66. package/cjs/components/toggle-button/ToggleButtonGroupDocs.d.ts +2 -0
  67. package/cjs/components/toggle-button/ToggleButtonGroupDocs.js +90 -0
  68. package/cjs/components/toggle-button/ToggleButtonGroupDocs.js.map +1 -0
  69. package/cjs/components/toggle-button/style/dnb-toggle-button.css +3 -3
  70. package/cjs/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  71. package/cjs/elements/blockquote/style/blockquote-mixins.scss +5 -3
  72. package/cjs/elements/code/style/code-mixins.scss +2 -3
  73. package/cjs/elements/hr/style/hr-mixins.scss +2 -3
  74. package/cjs/elements/img/style/img-mixins.scss +3 -3
  75. package/cjs/elements/lists/style/lists-mixins.scss +3 -6
  76. package/cjs/elements/typography/style/_dnb-t.scss +1 -1
  77. package/cjs/elements/typography/style/typography-mixins.scss +2 -3
  78. package/cjs/extensions/forms/DataContext/Context.d.ts +15 -4
  79. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  80. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +1 -1
  81. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  82. package/cjs/extensions/forms/DataContext/Provider/Provider.js +51 -25
  83. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  84. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +3 -3
  85. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  86. package/cjs/extensions/forms/Field/Date/Date.js +5 -4
  87. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  88. package/cjs/extensions/forms/Field/Expiry/Expiry.js +4 -3
  89. package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  90. package/cjs/extensions/forms/Field/Indeterminate/useDependencePaths.js +7 -7
  91. package/cjs/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -1
  92. package/cjs/extensions/forms/Field/Number/Number.js +2 -2
  93. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  94. package/cjs/extensions/forms/Field/Option/Option.d.ts +2 -1
  95. package/cjs/extensions/forms/Field/Option/Option.js +2 -14
  96. package/cjs/extensions/forms/Field/Option/Option.js.map +1 -1
  97. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +10 -5
  98. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  99. package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +4 -3
  100. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +12 -4
  101. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  102. package/cjs/extensions/forms/Field/Selection/Selection.d.ts +8 -1
  103. package/cjs/extensions/forms/Field/Selection/Selection.js +19 -12
  104. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  105. package/cjs/extensions/forms/Field/Selection/SelectionDocs.js +5 -0
  106. package/cjs/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  107. package/cjs/extensions/forms/Field/Slider/Slider.js +4 -3
  108. package/cjs/extensions/forms/Field/Slider/Slider.js.map +1 -1
  109. package/cjs/extensions/forms/Field/String/String.js +2 -2
  110. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  111. package/cjs/extensions/forms/Field/Toggle/Toggle.js +14 -4
  112. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  113. package/cjs/extensions/forms/Field/Upload/Upload.js +21 -21
  114. package/cjs/extensions/forms/Field/Upload/Upload.js.map +1 -1
  115. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +14 -38
  116. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  117. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +3 -3
  118. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  119. package/cjs/extensions/forms/Form/Isolation/Isolation.js +17 -3
  120. package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  121. package/cjs/extensions/forms/Form/MainHeading/MainHeadingDocs.d.ts +2 -0
  122. package/cjs/extensions/forms/Form/MainHeading/MainHeadingDocs.js +27 -0
  123. package/cjs/extensions/forms/Form/MainHeading/MainHeadingDocs.js.map +1 -0
  124. package/cjs/extensions/forms/Form/Section/EditContainer/CancelButton.js +7 -18
  125. package/cjs/extensions/forms/Form/Section/EditContainer/CancelButton.js.map +1 -1
  126. package/cjs/extensions/forms/Form/SubHeading/SubHeadingDocs.d.ts +2 -0
  127. package/cjs/extensions/forms/Form/SubHeading/SubHeadingDocs.js +27 -0
  128. package/cjs/extensions/forms/Form/SubHeading/SubHeadingDocs.js.map +1 -0
  129. package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +11 -1
  130. package/cjs/extensions/forms/Form/Visibility/Visibility.js +18 -10
  131. package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  132. package/cjs/extensions/forms/Form/Visibility/VisibilityContext.d.ts +2 -0
  133. package/cjs/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -1
  134. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  135. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  136. package/cjs/extensions/forms/Form/Visibility/useVisibility.js +18 -9
  137. package/cjs/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  138. package/cjs/extensions/forms/Iterate/Array/Array.js +49 -29
  139. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  140. package/cjs/extensions/forms/Iterate/Array/ArrayDocs.js +14 -4
  141. package/cjs/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
  142. package/cjs/extensions/forms/Iterate/Array/types.d.ts +8 -3
  143. package/cjs/extensions/forms/Iterate/Array/types.js.map +1 -1
  144. package/cjs/extensions/forms/Iterate/EditContainer/CancelButton.js +5 -15
  145. package/cjs/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
  146. package/cjs/extensions/forms/Iterate/EditContainer/DoneButton.js +10 -1
  147. package/cjs/extensions/forms/Iterate/EditContainer/DoneButton.js.map +1 -1
  148. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js +1 -3
  149. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  150. package/cjs/extensions/forms/Iterate/ItemNo/useIItemNo.d.ts +5 -0
  151. package/cjs/extensions/forms/Iterate/ItemNo/useIItemNo.js +50 -0
  152. package/cjs/extensions/forms/Iterate/ItemNo/useIItemNo.js.map +1 -0
  153. package/cjs/extensions/forms/Iterate/IterateItemContext.d.ts +2 -0
  154. package/cjs/extensions/forms/Iterate/IterateItemContext.js.map +1 -1
  155. package/cjs/extensions/forms/Iterate/PushButton/PushButton.d.ts +1 -0
  156. package/cjs/extensions/forms/Iterate/PushButton/PushButton.js +16 -14
  157. package/cjs/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  158. package/cjs/extensions/forms/Iterate/PushButton/PushButtonDocs.js +5 -0
  159. package/cjs/extensions/forms/Iterate/PushButton/PushButtonDocs.js.map +1 -1
  160. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +17 -1
  161. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +30 -15
  162. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  163. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerContext.d.ts +1 -0
  164. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerContext.js.map +1 -1
  165. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +10 -0
  166. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  167. package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js +7 -6
  168. package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  169. package/cjs/extensions/forms/Iterate/ViewContainer/EditButton.js +1 -0
  170. package/cjs/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -1
  171. package/cjs/extensions/forms/Iterate/Visibility/Visibility.d.ts +7 -0
  172. package/cjs/extensions/forms/Iterate/Visibility/Visibility.js +31 -0
  173. package/cjs/extensions/forms/Iterate/Visibility/Visibility.js.map +1 -0
  174. package/cjs/extensions/forms/Iterate/Visibility/index.d.ts +2 -0
  175. package/cjs/extensions/forms/Iterate/Visibility/index.js +27 -0
  176. package/cjs/extensions/forms/Iterate/Visibility/index.js.map +1 -0
  177. package/cjs/extensions/forms/Iterate/hooks/index.d.ts +1 -0
  178. package/cjs/extensions/forms/Iterate/hooks/index.js +7 -0
  179. package/cjs/extensions/forms/Iterate/hooks/index.js.map +1 -1
  180. package/cjs/extensions/forms/Iterate/hooks/useArrayLimit.d.ts +1 -3
  181. package/cjs/extensions/forms/Iterate/hooks/useArrayLimit.js +1 -4
  182. package/cjs/extensions/forms/Iterate/hooks/useArrayLimit.js.map +1 -1
  183. package/cjs/extensions/forms/Iterate/hooks/useItemPath.d.ts +4 -0
  184. package/cjs/extensions/forms/Iterate/hooks/useItemPath.js +22 -0
  185. package/cjs/extensions/forms/Iterate/hooks/useItemPath.js.map +1 -0
  186. package/cjs/extensions/forms/Iterate/hooks/useSwitchContainerMode.d.ts +1 -3
  187. package/cjs/extensions/forms/Iterate/hooks/useSwitchContainerMode.js +1 -4
  188. package/cjs/extensions/forms/Iterate/hooks/useSwitchContainerMode.js.map +1 -1
  189. package/cjs/extensions/forms/Iterate/index.d.ts +1 -0
  190. package/cjs/extensions/forms/Iterate/index.js +7 -0
  191. package/cjs/extensions/forms/Iterate/index.js.map +1 -1
  192. package/cjs/extensions/forms/Tools/GenerateSchema.js +15 -9
  193. package/cjs/extensions/forms/Tools/GenerateSchema.js.map +1 -1
  194. package/cjs/extensions/forms/Tools/ListAllProps.js +11 -7
  195. package/cjs/extensions/forms/Tools/ListAllProps.js.map +1 -1
  196. package/cjs/extensions/forms/Tools/Log.js +2 -1
  197. package/cjs/extensions/forms/Tools/Log.js.map +1 -1
  198. package/cjs/extensions/forms/Value/ArraySelection/ArraySelection.js +4 -4
  199. package/cjs/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -1
  200. package/cjs/extensions/forms/Value/Selection/Selection.js +5 -5
  201. package/cjs/extensions/forms/Value/Selection/Selection.js.map +1 -1
  202. package/cjs/extensions/forms/ValueBlock/ValueBlock.js +25 -7
  203. package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  204. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.css +6 -1
  205. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  206. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.scss +22 -10
  207. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +6 -3
  208. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  209. package/cjs/extensions/forms/Wizard/Container/useHandleLayoutEffect.d.ts +2 -1
  210. package/cjs/extensions/forms/Wizard/Container/useHandleLayoutEffect.js +4 -3
  211. package/cjs/extensions/forms/Wizard/Container/useHandleLayoutEffect.js.map +1 -1
  212. package/cjs/extensions/forms/hooks/DataValueWritePropsDocs.js +9 -9
  213. package/cjs/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
  214. package/cjs/extensions/forms/hooks/useDataValue.d.ts +2 -2
  215. package/cjs/extensions/forms/hooks/useDataValue.js +5 -9
  216. package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
  217. package/cjs/extensions/forms/hooks/useExternalValue.js.map +1 -1
  218. package/cjs/extensions/forms/hooks/useFieldProps.d.ts +8 -2
  219. package/cjs/extensions/forms/hooks/useFieldProps.js +164 -76
  220. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  221. package/cjs/extensions/forms/hooks/usePath.js.map +1 -1
  222. package/cjs/extensions/forms/hooks/useValueProps.js +5 -5
  223. package/cjs/extensions/forms/hooks/useValueProps.js.map +1 -1
  224. package/cjs/extensions/forms/style/dnb-forms.css +9 -4
  225. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  226. package/cjs/extensions/forms/types.d.ts +33 -6
  227. package/cjs/extensions/forms/types.js.map +1 -1
  228. package/cjs/extensions/forms/utils/json-pointer/json-pointer.js +8 -0
  229. package/cjs/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -1
  230. package/cjs/extensions/payment-card/PaymentCard.js +3 -12
  231. package/cjs/extensions/payment-card/PaymentCard.js.map +1 -1
  232. package/cjs/fragments/drawer-list/DrawerList.d.ts +4 -2
  233. package/cjs/fragments/drawer-list/DrawerList.js +33 -47
  234. package/cjs/fragments/drawer-list/DrawerList.js.map +1 -1
  235. package/cjs/fragments/drawer-list/DrawerListDocs.js +3 -3
  236. package/cjs/fragments/drawer-list/DrawerListDocs.js.map +1 -1
  237. package/cjs/fragments/drawer-list/style/dnb-drawer-list.scss +1 -1
  238. package/cjs/shared/AlignmentHelper.js +0 -4
  239. package/cjs/shared/AlignmentHelper.js.map +1 -1
  240. package/cjs/shared/Eufemia.d.ts +1 -1
  241. package/cjs/shared/Eufemia.js +2 -2
  242. package/cjs/shared/Eufemia.js.map +1 -1
  243. package/cjs/shared/component-helper.js +2 -1
  244. package/cjs/shared/component-helper.js.map +1 -1
  245. package/cjs/style/core/scopes.scss +1 -1
  246. package/cjs/style/core/utilities.scss +3 -12
  247. package/cjs/style/dnb-ui-basis.css +1 -1
  248. package/cjs/style/dnb-ui-basis.min.css +1 -1
  249. package/cjs/style/dnb-ui-body.css +1 -1
  250. package/cjs/style/dnb-ui-body.min.css +1 -1
  251. package/cjs/style/dnb-ui-components.css +90 -76
  252. package/cjs/style/dnb-ui-components.min.css +4 -4
  253. package/cjs/style/dnb-ui-core.css +1 -1
  254. package/cjs/style/dnb-ui-core.min.css +1 -1
  255. package/cjs/style/dnb-ui-elements.css +151 -31
  256. package/cjs/style/dnb-ui-elements.min.css +1 -1
  257. package/cjs/style/dnb-ui-extensions.css +9 -4
  258. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  259. package/cjs/style/dnb-ui-forms.css +9 -4
  260. package/cjs/style/dnb-ui-forms.min.css +1 -1
  261. package/cjs/style/dnb-ui-fragments.css +1 -1
  262. package/cjs/style/dnb-ui-fragments.min.css +1 -1
  263. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +151 -31
  264. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  265. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +99 -80
  266. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
  267. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.css +151 -31
  268. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  269. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +9 -4
  270. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  271. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +9 -4
  272. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  273. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +151 -31
  274. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  275. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +99 -80
  276. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  277. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +151 -31
  278. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  279. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +9 -4
  280. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  281. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +9 -4
  282. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  283. package/cjs/style/themes/theme-ui/ui-theme-basis.css +151 -31
  284. package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  285. package/cjs/style/themes/theme-ui/ui-theme-components.css +99 -80
  286. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +4 -4
  287. package/cjs/style/themes/theme-ui/ui-theme-elements.css +151 -31
  288. package/cjs/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  289. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +9 -4
  290. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  291. package/cjs/style/themes/theme-ui/ui-theme-forms.css +9 -4
  292. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  293. package/cjs/style/themes/theme-ui/ui-theme-tags.css +100 -19
  294. package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  295. package/components/accordion/Accordion.d.ts +1 -125
  296. package/components/accordion/Accordion.js +0 -1
  297. package/components/accordion/Accordion.js.map +1 -1
  298. package/components/autocomplete/Autocomplete.js +3 -2
  299. package/components/autocomplete/Autocomplete.js.map +1 -1
  300. package/components/button/Button.d.ts +3 -6
  301. package/components/button/Button.js +8 -18
  302. package/components/button/Button.js.map +1 -1
  303. package/components/button/ButtonDocs.d.ts +2 -0
  304. package/components/button/ButtonDocs.js +128 -0
  305. package/components/button/ButtonDocs.js.map +1 -0
  306. package/components/date-picker/DatePicker.d.ts +4 -0
  307. package/components/date-picker/DatePicker.js +25 -11
  308. package/components/date-picker/DatePicker.js.map +1 -1
  309. package/components/date-picker/DatePickerDocs.js +5 -0
  310. package/components/date-picker/DatePickerDocs.js.map +1 -1
  311. package/components/date-picker/DatePickerPortal.d.ts +9 -0
  312. package/components/date-picker/DatePickerPortal.js +53 -0
  313. package/components/date-picker/DatePickerPortal.js.map +1 -0
  314. package/components/date-picker/style/dnb-date-picker.css +64 -55
  315. package/components/date-picker/style/dnb-date-picker.min.css +1 -1
  316. package/components/date-picker/style/dnb-date-picker.scss +90 -75
  317. package/components/form-row/FormRow.js +2 -7
  318. package/components/form-row/FormRow.js.map +1 -1
  319. package/components/form-row/style/dnb-form-row.css +3 -3
  320. package/components/form-row/style/dnb-form-row.min.css +1 -1
  321. package/components/form-status/FormStatus.js +17 -19
  322. package/components/form-status/FormStatus.js.map +1 -1
  323. package/components/height-animation/HeightAnimationInstance.d.ts +1 -0
  324. package/components/height-animation/HeightAnimationInstance.js +26 -1
  325. package/components/height-animation/HeightAnimationInstance.js.map +1 -1
  326. package/components/input-masked/InputMasked.d.ts +1 -1
  327. package/components/input-masked/InputMasked.js +2 -2
  328. package/components/input-masked/InputMasked.js.map +1 -1
  329. package/components/input-masked/InputMaskedDocs.js +1 -1
  330. package/components/input-masked/InputMaskedDocs.js.map +1 -1
  331. package/components/input-masked/InputMaskedHooks.js +1 -1
  332. package/components/input-masked/InputMaskedHooks.js.map +1 -1
  333. package/components/input-masked/InputMaskedUtils.js +1 -1
  334. package/components/input-masked/InputMaskedUtils.js.map +1 -1
  335. package/components/input-masked/style/dnb-input-masked.css +3 -3
  336. package/components/input-masked/style/dnb-input-masked.min.css +1 -1
  337. package/components/pagination/Pagination.d.ts +12 -0
  338. package/components/pagination/Pagination.js +7 -3
  339. package/components/pagination/Pagination.js.map +1 -1
  340. package/components/pagination/PaginationBar.d.ts +2 -1
  341. package/components/pagination/PaginationBar.js +10 -3
  342. package/components/pagination/PaginationBar.js.map +1 -1
  343. package/components/radio/style/dnb-radio.css +3 -3
  344. package/components/radio/style/dnb-radio.min.css +1 -1
  345. package/components/space/style/dnb-space.css +4 -4
  346. package/components/space/style/dnb-space.min.css +1 -1
  347. package/components/space/style/dnb-space.scss +2 -12
  348. package/components/space/style/space-mixins.scss +21 -0
  349. package/components/tabs/Tabs.d.ts +1 -1
  350. package/components/tabs/Tabs.js +4 -12
  351. package/components/tabs/Tabs.js.map +1 -1
  352. package/components/toggle-button/ToggleButton.d.ts +9 -5
  353. package/components/toggle-button/ToggleButton.js +2 -0
  354. package/components/toggle-button/ToggleButton.js.map +1 -1
  355. package/components/toggle-button/ToggleButtonDocs.d.ts +2 -0
  356. package/components/toggle-button/ToggleButtonDocs.js +80 -0
  357. package/components/toggle-button/ToggleButtonDocs.js.map +1 -0
  358. package/components/toggle-button/ToggleButtonGroup.d.ts +21 -6
  359. package/components/toggle-button/ToggleButtonGroupDocs.d.ts +2 -0
  360. package/components/toggle-button/ToggleButtonGroupDocs.js +83 -0
  361. package/components/toggle-button/ToggleButtonGroupDocs.js.map +1 -0
  362. package/components/toggle-button/style/dnb-toggle-button.css +3 -3
  363. package/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  364. package/elements/blockquote/style/blockquote-mixins.scss +5 -3
  365. package/elements/code/style/code-mixins.scss +2 -3
  366. package/elements/hr/style/hr-mixins.scss +2 -3
  367. package/elements/img/style/img-mixins.scss +3 -3
  368. package/elements/lists/style/lists-mixins.scss +3 -6
  369. package/elements/typography/style/_dnb-t.scss +1 -1
  370. package/elements/typography/style/typography-mixins.scss +2 -3
  371. package/es/components/accordion/Accordion.d.ts +1 -125
  372. package/es/components/accordion/Accordion.js +0 -1
  373. package/es/components/accordion/Accordion.js.map +1 -1
  374. package/es/components/autocomplete/Autocomplete.js +3 -2
  375. package/es/components/autocomplete/Autocomplete.js.map +1 -1
  376. package/es/components/button/Button.d.ts +3 -6
  377. package/es/components/button/Button.js +8 -18
  378. package/es/components/button/Button.js.map +1 -1
  379. package/es/components/button/ButtonDocs.d.ts +2 -0
  380. package/es/components/button/ButtonDocs.js +128 -0
  381. package/es/components/button/ButtonDocs.js.map +1 -0
  382. package/es/components/date-picker/DatePicker.d.ts +4 -0
  383. package/es/components/date-picker/DatePicker.js +25 -11
  384. package/es/components/date-picker/DatePicker.js.map +1 -1
  385. package/es/components/date-picker/DatePickerDocs.js +5 -0
  386. package/es/components/date-picker/DatePickerDocs.js.map +1 -1
  387. package/es/components/date-picker/DatePickerPortal.d.ts +9 -0
  388. package/es/components/date-picker/DatePickerPortal.js +52 -0
  389. package/es/components/date-picker/DatePickerPortal.js.map +1 -0
  390. package/es/components/date-picker/style/dnb-date-picker.css +64 -55
  391. package/es/components/date-picker/style/dnb-date-picker.min.css +1 -1
  392. package/es/components/date-picker/style/dnb-date-picker.scss +90 -75
  393. package/es/components/form-row/FormRow.js +2 -7
  394. package/es/components/form-row/FormRow.js.map +1 -1
  395. package/es/components/form-row/style/dnb-form-row.css +3 -3
  396. package/es/components/form-row/style/dnb-form-row.min.css +1 -1
  397. package/es/components/form-status/FormStatus.js +17 -19
  398. package/es/components/form-status/FormStatus.js.map +1 -1
  399. package/es/components/height-animation/HeightAnimationInstance.d.ts +1 -0
  400. package/es/components/height-animation/HeightAnimationInstance.js +26 -1
  401. package/es/components/height-animation/HeightAnimationInstance.js.map +1 -1
  402. package/es/components/input-masked/InputMasked.d.ts +1 -1
  403. package/es/components/input-masked/InputMasked.js +2 -2
  404. package/es/components/input-masked/InputMasked.js.map +1 -1
  405. package/es/components/input-masked/InputMaskedDocs.js +1 -1
  406. package/es/components/input-masked/InputMaskedDocs.js.map +1 -1
  407. package/es/components/input-masked/InputMaskedHooks.js +1 -1
  408. package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
  409. package/es/components/input-masked/InputMaskedUtils.js +1 -1
  410. package/es/components/input-masked/InputMaskedUtils.js.map +1 -1
  411. package/es/components/input-masked/style/dnb-input-masked.css +3 -3
  412. package/es/components/input-masked/style/dnb-input-masked.min.css +1 -1
  413. package/es/components/pagination/Pagination.d.ts +12 -0
  414. package/es/components/pagination/Pagination.js +7 -3
  415. package/es/components/pagination/Pagination.js.map +1 -1
  416. package/es/components/pagination/PaginationBar.d.ts +2 -1
  417. package/es/components/pagination/PaginationBar.js +10 -3
  418. package/es/components/pagination/PaginationBar.js.map +1 -1
  419. package/es/components/radio/style/dnb-radio.css +3 -3
  420. package/es/components/radio/style/dnb-radio.min.css +1 -1
  421. package/es/components/space/style/dnb-space.css +4 -4
  422. package/es/components/space/style/dnb-space.min.css +1 -1
  423. package/es/components/space/style/dnb-space.scss +2 -12
  424. package/es/components/space/style/space-mixins.scss +21 -0
  425. package/es/components/tabs/Tabs.d.ts +1 -1
  426. package/es/components/tabs/Tabs.js +4 -12
  427. package/es/components/tabs/Tabs.js.map +1 -1
  428. package/es/components/toggle-button/ToggleButton.d.ts +9 -5
  429. package/es/components/toggle-button/ToggleButton.js +2 -0
  430. package/es/components/toggle-button/ToggleButton.js.map +1 -1
  431. package/es/components/toggle-button/ToggleButtonDocs.d.ts +2 -0
  432. package/es/components/toggle-button/ToggleButtonDocs.js +80 -0
  433. package/es/components/toggle-button/ToggleButtonDocs.js.map +1 -0
  434. package/es/components/toggle-button/ToggleButtonGroup.d.ts +21 -6
  435. package/es/components/toggle-button/ToggleButtonGroupDocs.d.ts +2 -0
  436. package/es/components/toggle-button/ToggleButtonGroupDocs.js +83 -0
  437. package/es/components/toggle-button/ToggleButtonGroupDocs.js.map +1 -0
  438. package/es/components/toggle-button/style/dnb-toggle-button.css +3 -3
  439. package/es/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  440. package/es/elements/blockquote/style/blockquote-mixins.scss +5 -3
  441. package/es/elements/code/style/code-mixins.scss +2 -3
  442. package/es/elements/hr/style/hr-mixins.scss +2 -3
  443. package/es/elements/img/style/img-mixins.scss +3 -3
  444. package/es/elements/lists/style/lists-mixins.scss +3 -6
  445. package/es/elements/typography/style/_dnb-t.scss +1 -1
  446. package/es/elements/typography/style/typography-mixins.scss +2 -3
  447. package/es/extensions/forms/DataContext/Context.d.ts +15 -4
  448. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  449. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +1 -1
  450. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  451. package/es/extensions/forms/DataContext/Provider/Provider.js +50 -24
  452. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  453. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +3 -3
  454. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  455. package/es/extensions/forms/Field/Date/Date.js +5 -4
  456. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  457. package/es/extensions/forms/Field/Expiry/Expiry.js +4 -3
  458. package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  459. package/es/extensions/forms/Field/Indeterminate/useDependencePaths.js +7 -7
  460. package/es/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -1
  461. package/es/extensions/forms/Field/Number/Number.js +2 -2
  462. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  463. package/es/extensions/forms/Field/Option/Option.d.ts +2 -1
  464. package/es/extensions/forms/Field/Option/Option.js +2 -12
  465. package/es/extensions/forms/Field/Option/Option.js.map +1 -1
  466. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +10 -5
  467. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  468. package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +4 -3
  469. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +12 -4
  470. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  471. package/es/extensions/forms/Field/Selection/Selection.d.ts +8 -1
  472. package/es/extensions/forms/Field/Selection/Selection.js +22 -14
  473. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  474. package/es/extensions/forms/Field/Selection/SelectionDocs.js +5 -0
  475. package/es/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  476. package/es/extensions/forms/Field/Slider/Slider.js +4 -3
  477. package/es/extensions/forms/Field/Slider/Slider.js.map +1 -1
  478. package/es/extensions/forms/Field/String/String.js +2 -2
  479. package/es/extensions/forms/Field/String/String.js.map +1 -1
  480. package/es/extensions/forms/Field/Toggle/Toggle.js +14 -4
  481. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  482. package/es/extensions/forms/Field/Upload/Upload.js +21 -20
  483. package/es/extensions/forms/Field/Upload/Upload.js.map +1 -1
  484. package/es/extensions/forms/FieldBlock/FieldBlock.js +14 -38
  485. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  486. package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +3 -3
  487. package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  488. package/es/extensions/forms/Form/Isolation/Isolation.js +17 -3
  489. package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  490. package/es/extensions/forms/Form/MainHeading/MainHeadingDocs.d.ts +2 -0
  491. package/es/extensions/forms/Form/MainHeading/MainHeadingDocs.js +20 -0
  492. package/es/extensions/forms/Form/MainHeading/MainHeadingDocs.js.map +1 -0
  493. package/es/extensions/forms/Form/Section/EditContainer/CancelButton.js +7 -18
  494. package/es/extensions/forms/Form/Section/EditContainer/CancelButton.js.map +1 -1
  495. package/es/extensions/forms/Form/SubHeading/SubHeadingDocs.d.ts +2 -0
  496. package/es/extensions/forms/Form/SubHeading/SubHeadingDocs.js +20 -0
  497. package/es/extensions/forms/Form/SubHeading/SubHeadingDocs.js.map +1 -0
  498. package/es/extensions/forms/Form/Visibility/Visibility.d.ts +11 -1
  499. package/es/extensions/forms/Form/Visibility/Visibility.js +20 -11
  500. package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  501. package/es/extensions/forms/Form/Visibility/VisibilityContext.d.ts +2 -0
  502. package/es/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -1
  503. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  504. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  505. package/es/extensions/forms/Form/Visibility/useVisibility.js +18 -9
  506. package/es/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  507. package/es/extensions/forms/Iterate/Array/Array.js +47 -28
  508. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  509. package/es/extensions/forms/Iterate/Array/ArrayDocs.js +14 -4
  510. package/es/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
  511. package/es/extensions/forms/Iterate/Array/types.d.ts +8 -3
  512. package/es/extensions/forms/Iterate/Array/types.js.map +1 -1
  513. package/es/extensions/forms/Iterate/EditContainer/CancelButton.js +5 -15
  514. package/es/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
  515. package/es/extensions/forms/Iterate/EditContainer/DoneButton.js +9 -1
  516. package/es/extensions/forms/Iterate/EditContainer/DoneButton.js.map +1 -1
  517. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js +1 -3
  518. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  519. package/es/extensions/forms/Iterate/ItemNo/useIItemNo.d.ts +5 -0
  520. package/es/extensions/forms/Iterate/ItemNo/useIItemNo.js +41 -0
  521. package/es/extensions/forms/Iterate/ItemNo/useIItemNo.js.map +1 -0
  522. package/es/extensions/forms/Iterate/IterateItemContext.d.ts +2 -0
  523. package/es/extensions/forms/Iterate/IterateItemContext.js.map +1 -1
  524. package/es/extensions/forms/Iterate/PushButton/PushButton.d.ts +1 -0
  525. package/es/extensions/forms/Iterate/PushButton/PushButton.js +17 -15
  526. package/es/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  527. package/es/extensions/forms/Iterate/PushButton/PushButtonDocs.js +5 -0
  528. package/es/extensions/forms/Iterate/PushButton/PushButtonDocs.js.map +1 -1
  529. package/es/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +17 -1
  530. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +32 -17
  531. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  532. package/es/extensions/forms/Iterate/PushContainer/PushContainerContext.d.ts +1 -0
  533. package/es/extensions/forms/Iterate/PushContainer/PushContainerContext.js.map +1 -1
  534. package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +10 -0
  535. package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  536. package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js +7 -6
  537. package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  538. package/es/extensions/forms/Iterate/ViewContainer/EditButton.js +1 -0
  539. package/es/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -1
  540. package/es/extensions/forms/Iterate/Visibility/Visibility.d.ts +7 -0
  541. package/es/extensions/forms/Iterate/Visibility/Visibility.js +11 -0
  542. package/es/extensions/forms/Iterate/Visibility/Visibility.js.map +1 -0
  543. package/es/extensions/forms/Iterate/Visibility/index.d.ts +2 -0
  544. package/es/extensions/forms/Iterate/Visibility/index.js +3 -0
  545. package/es/extensions/forms/Iterate/Visibility/index.js.map +1 -0
  546. package/es/extensions/forms/Iterate/hooks/index.d.ts +1 -0
  547. package/es/extensions/forms/Iterate/hooks/index.js +1 -0
  548. package/es/extensions/forms/Iterate/hooks/index.js.map +1 -1
  549. package/es/extensions/forms/Iterate/hooks/useArrayLimit.d.ts +1 -3
  550. package/es/extensions/forms/Iterate/hooks/useArrayLimit.js +1 -3
  551. package/es/extensions/forms/Iterate/hooks/useArrayLimit.js.map +1 -1
  552. package/es/extensions/forms/Iterate/hooks/useItemPath.d.ts +4 -0
  553. package/es/extensions/forms/Iterate/hooks/useItemPath.js +16 -0
  554. package/es/extensions/forms/Iterate/hooks/useItemPath.js.map +1 -0
  555. package/es/extensions/forms/Iterate/hooks/useSwitchContainerMode.d.ts +1 -3
  556. package/es/extensions/forms/Iterate/hooks/useSwitchContainerMode.js +1 -3
  557. package/es/extensions/forms/Iterate/hooks/useSwitchContainerMode.js.map +1 -1
  558. package/es/extensions/forms/Iterate/index.d.ts +1 -0
  559. package/es/extensions/forms/Iterate/index.js +1 -0
  560. package/es/extensions/forms/Iterate/index.js.map +1 -1
  561. package/es/extensions/forms/Tools/GenerateSchema.js +12 -6
  562. package/es/extensions/forms/Tools/GenerateSchema.js.map +1 -1
  563. package/es/extensions/forms/Tools/ListAllProps.js +9 -5
  564. package/es/extensions/forms/Tools/ListAllProps.js.map +1 -1
  565. package/es/extensions/forms/Tools/Log.js +2 -1
  566. package/es/extensions/forms/Tools/Log.js.map +1 -1
  567. package/es/extensions/forms/Value/ArraySelection/ArraySelection.js +4 -4
  568. package/es/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -1
  569. package/es/extensions/forms/Value/Selection/Selection.js +5 -5
  570. package/es/extensions/forms/Value/Selection/Selection.js.map +1 -1
  571. package/es/extensions/forms/ValueBlock/ValueBlock.js +26 -9
  572. package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  573. package/es/extensions/forms/ValueBlock/style/dnb-value-block.css +6 -1
  574. package/es/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  575. package/es/extensions/forms/ValueBlock/style/dnb-value-block.scss +22 -10
  576. package/es/extensions/forms/Wizard/Container/WizardContainer.js +6 -3
  577. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  578. package/es/extensions/forms/Wizard/Container/useHandleLayoutEffect.d.ts +2 -1
  579. package/es/extensions/forms/Wizard/Container/useHandleLayoutEffect.js +4 -3
  580. package/es/extensions/forms/Wizard/Container/useHandleLayoutEffect.js.map +1 -1
  581. package/es/extensions/forms/hooks/DataValueWritePropsDocs.js +9 -9
  582. package/es/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
  583. package/es/extensions/forms/hooks/useDataValue.d.ts +2 -2
  584. package/es/extensions/forms/hooks/useDataValue.js +4 -8
  585. package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
  586. package/es/extensions/forms/hooks/useExternalValue.js +2 -2
  587. package/es/extensions/forms/hooks/useExternalValue.js.map +1 -1
  588. package/es/extensions/forms/hooks/useFieldProps.d.ts +8 -2
  589. package/es/extensions/forms/hooks/useFieldProps.js +163 -76
  590. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  591. package/es/extensions/forms/hooks/usePath.js +2 -2
  592. package/es/extensions/forms/hooks/usePath.js.map +1 -1
  593. package/es/extensions/forms/hooks/useValueProps.js +5 -5
  594. package/es/extensions/forms/hooks/useValueProps.js.map +1 -1
  595. package/es/extensions/forms/style/dnb-forms.css +9 -4
  596. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  597. package/es/extensions/forms/types.d.ts +33 -6
  598. package/es/extensions/forms/types.js.map +1 -1
  599. package/es/extensions/forms/utils/json-pointer/json-pointer.js +6 -0
  600. package/es/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -1
  601. package/es/extensions/payment-card/PaymentCard.js +3 -12
  602. package/es/extensions/payment-card/PaymentCard.js.map +1 -1
  603. package/es/fragments/drawer-list/DrawerList.d.ts +4 -2
  604. package/es/fragments/drawer-list/DrawerList.js +33 -47
  605. package/es/fragments/drawer-list/DrawerList.js.map +1 -1
  606. package/es/fragments/drawer-list/DrawerListDocs.js +3 -3
  607. package/es/fragments/drawer-list/DrawerListDocs.js.map +1 -1
  608. package/es/fragments/drawer-list/style/dnb-drawer-list.scss +1 -1
  609. package/es/shared/AlignmentHelper.js +0 -4
  610. package/es/shared/AlignmentHelper.js.map +1 -1
  611. package/es/shared/Eufemia.d.ts +1 -1
  612. package/es/shared/Eufemia.js +2 -2
  613. package/es/shared/Eufemia.js.map +1 -1
  614. package/es/shared/component-helper.js +2 -1
  615. package/es/shared/component-helper.js.map +1 -1
  616. package/es/style/core/scopes.scss +1 -1
  617. package/es/style/core/utilities.scss +3 -12
  618. package/es/style/dnb-ui-basis.css +1 -1
  619. package/es/style/dnb-ui-basis.min.css +1 -1
  620. package/es/style/dnb-ui-body.css +1 -1
  621. package/es/style/dnb-ui-body.min.css +1 -1
  622. package/es/style/dnb-ui-components.css +90 -76
  623. package/es/style/dnb-ui-components.min.css +4 -4
  624. package/es/style/dnb-ui-core.css +1 -1
  625. package/es/style/dnb-ui-core.min.css +1 -1
  626. package/es/style/dnb-ui-elements.css +151 -31
  627. package/es/style/dnb-ui-elements.min.css +1 -1
  628. package/es/style/dnb-ui-extensions.css +9 -4
  629. package/es/style/dnb-ui-extensions.min.css +1 -1
  630. package/es/style/dnb-ui-forms.css +9 -4
  631. package/es/style/dnb-ui-forms.min.css +1 -1
  632. package/es/style/dnb-ui-fragments.css +1 -1
  633. package/es/style/dnb-ui-fragments.min.css +1 -1
  634. package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +151 -31
  635. package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  636. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +99 -80
  637. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
  638. package/es/style/themes/theme-eiendom/eiendom-theme-elements.css +151 -31
  639. package/es/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  640. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +9 -4
  641. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  642. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +9 -4
  643. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  644. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +151 -31
  645. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  646. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +99 -80
  647. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  648. package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +151 -31
  649. package/es/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  650. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +9 -4
  651. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  652. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +9 -4
  653. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  654. package/es/style/themes/theme-ui/ui-theme-basis.css +151 -31
  655. package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  656. package/es/style/themes/theme-ui/ui-theme-components.css +99 -80
  657. package/es/style/themes/theme-ui/ui-theme-components.min.css +4 -4
  658. package/es/style/themes/theme-ui/ui-theme-elements.css +151 -31
  659. package/es/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  660. package/es/style/themes/theme-ui/ui-theme-extensions.css +9 -4
  661. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  662. package/es/style/themes/theme-ui/ui-theme-forms.css +9 -4
  663. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  664. package/es/style/themes/theme-ui/ui-theme-tags.css +100 -19
  665. package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  666. package/esm/dnb-ui-basis.min.mjs +1 -1
  667. package/esm/dnb-ui-components.min.mjs +1 -1
  668. package/esm/dnb-ui-elements.min.mjs +1 -1
  669. package/esm/dnb-ui-extensions.min.mjs +5 -5
  670. package/esm/dnb-ui-lib.min.mjs +1 -1
  671. package/extensions/forms/DataContext/Context.d.ts +15 -4
  672. package/extensions/forms/DataContext/Context.js.map +1 -1
  673. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +1 -1
  674. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  675. package/extensions/forms/DataContext/Provider/Provider.js +51 -25
  676. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  677. package/extensions/forms/Field/ArraySelection/ArraySelection.js +3 -3
  678. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  679. package/extensions/forms/Field/Date/Date.js +5 -4
  680. package/extensions/forms/Field/Date/Date.js.map +1 -1
  681. package/extensions/forms/Field/Expiry/Expiry.js +4 -3
  682. package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  683. package/extensions/forms/Field/Indeterminate/useDependencePaths.js +7 -7
  684. package/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -1
  685. package/extensions/forms/Field/Number/Number.js +2 -2
  686. package/extensions/forms/Field/Number/Number.js.map +1 -1
  687. package/extensions/forms/Field/Option/Option.d.ts +2 -1
  688. package/extensions/forms/Field/Option/Option.js +2 -13
  689. package/extensions/forms/Field/Option/Option.js.map +1 -1
  690. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +10 -5
  691. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  692. package/extensions/forms/Field/Provider/useFieldProvider.d.ts +4 -3
  693. package/extensions/forms/Field/SelectCountry/SelectCountry.js +12 -4
  694. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  695. package/extensions/forms/Field/Selection/Selection.d.ts +8 -1
  696. package/extensions/forms/Field/Selection/Selection.js +19 -12
  697. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  698. package/extensions/forms/Field/Selection/SelectionDocs.js +5 -0
  699. package/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  700. package/extensions/forms/Field/Slider/Slider.js +4 -3
  701. package/extensions/forms/Field/Slider/Slider.js.map +1 -1
  702. package/extensions/forms/Field/String/String.js +2 -2
  703. package/extensions/forms/Field/String/String.js.map +1 -1
  704. package/extensions/forms/Field/Toggle/Toggle.js +14 -4
  705. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  706. package/extensions/forms/Field/Upload/Upload.js +21 -21
  707. package/extensions/forms/Field/Upload/Upload.js.map +1 -1
  708. package/extensions/forms/FieldBlock/FieldBlock.js +14 -38
  709. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  710. package/extensions/forms/FieldBlock/style/dnb-field-block.css +3 -3
  711. package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  712. package/extensions/forms/Form/Isolation/Isolation.js +17 -3
  713. package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  714. package/extensions/forms/Form/MainHeading/MainHeadingDocs.d.ts +2 -0
  715. package/extensions/forms/Form/MainHeading/MainHeadingDocs.js +20 -0
  716. package/extensions/forms/Form/MainHeading/MainHeadingDocs.js.map +1 -0
  717. package/extensions/forms/Form/Section/EditContainer/CancelButton.js +7 -18
  718. package/extensions/forms/Form/Section/EditContainer/CancelButton.js.map +1 -1
  719. package/extensions/forms/Form/SubHeading/SubHeadingDocs.d.ts +2 -0
  720. package/extensions/forms/Form/SubHeading/SubHeadingDocs.js +20 -0
  721. package/extensions/forms/Form/SubHeading/SubHeadingDocs.js.map +1 -0
  722. package/extensions/forms/Form/Visibility/Visibility.d.ts +11 -1
  723. package/extensions/forms/Form/Visibility/Visibility.js +20 -11
  724. package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  725. package/extensions/forms/Form/Visibility/VisibilityContext.d.ts +2 -0
  726. package/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -1
  727. package/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  728. package/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  729. package/extensions/forms/Form/Visibility/useVisibility.js +18 -9
  730. package/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  731. package/extensions/forms/Iterate/Array/Array.js +50 -30
  732. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  733. package/extensions/forms/Iterate/Array/ArrayDocs.js +14 -4
  734. package/extensions/forms/Iterate/Array/ArrayDocs.js.map +1 -1
  735. package/extensions/forms/Iterate/Array/types.d.ts +8 -3
  736. package/extensions/forms/Iterate/Array/types.js.map +1 -1
  737. package/extensions/forms/Iterate/EditContainer/CancelButton.js +5 -15
  738. package/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
  739. package/extensions/forms/Iterate/EditContainer/DoneButton.js +9 -1
  740. package/extensions/forms/Iterate/EditContainer/DoneButton.js.map +1 -1
  741. package/extensions/forms/Iterate/EditContainer/EditContainer.js +1 -3
  742. package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  743. package/extensions/forms/Iterate/ItemNo/useIItemNo.d.ts +5 -0
  744. package/extensions/forms/Iterate/ItemNo/useIItemNo.js +42 -0
  745. package/extensions/forms/Iterate/ItemNo/useIItemNo.js.map +1 -0
  746. package/extensions/forms/Iterate/IterateItemContext.d.ts +2 -0
  747. package/extensions/forms/Iterate/IterateItemContext.js.map +1 -1
  748. package/extensions/forms/Iterate/PushButton/PushButton.d.ts +1 -0
  749. package/extensions/forms/Iterate/PushButton/PushButton.js +17 -15
  750. package/extensions/forms/Iterate/PushButton/PushButton.js.map +1 -1
  751. package/extensions/forms/Iterate/PushButton/PushButtonDocs.js +5 -0
  752. package/extensions/forms/Iterate/PushButton/PushButtonDocs.js.map +1 -1
  753. package/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +17 -1
  754. package/extensions/forms/Iterate/PushContainer/PushContainer.js +32 -17
  755. package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  756. package/extensions/forms/Iterate/PushContainer/PushContainerContext.d.ts +1 -0
  757. package/extensions/forms/Iterate/PushContainer/PushContainerContext.js.map +1 -1
  758. package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +10 -0
  759. package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  760. package/extensions/forms/Iterate/RemoveButton/RemoveButton.js +7 -6
  761. package/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  762. package/extensions/forms/Iterate/ViewContainer/EditButton.js +1 -0
  763. package/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -1
  764. package/extensions/forms/Iterate/Visibility/Visibility.d.ts +7 -0
  765. package/extensions/forms/Iterate/Visibility/Visibility.js +11 -0
  766. package/extensions/forms/Iterate/Visibility/Visibility.js.map +1 -0
  767. package/extensions/forms/Iterate/Visibility/index.d.ts +2 -0
  768. package/extensions/forms/Iterate/Visibility/index.js +3 -0
  769. package/extensions/forms/Iterate/Visibility/index.js.map +1 -0
  770. package/extensions/forms/Iterate/hooks/index.d.ts +1 -0
  771. package/extensions/forms/Iterate/hooks/index.js +1 -0
  772. package/extensions/forms/Iterate/hooks/index.js.map +1 -1
  773. package/extensions/forms/Iterate/hooks/useArrayLimit.d.ts +1 -3
  774. package/extensions/forms/Iterate/hooks/useArrayLimit.js +1 -4
  775. package/extensions/forms/Iterate/hooks/useArrayLimit.js.map +1 -1
  776. package/extensions/forms/Iterate/hooks/useItemPath.d.ts +4 -0
  777. package/extensions/forms/Iterate/hooks/useItemPath.js +16 -0
  778. package/extensions/forms/Iterate/hooks/useItemPath.js.map +1 -0
  779. package/extensions/forms/Iterate/hooks/useSwitchContainerMode.d.ts +1 -3
  780. package/extensions/forms/Iterate/hooks/useSwitchContainerMode.js +1 -4
  781. package/extensions/forms/Iterate/hooks/useSwitchContainerMode.js.map +1 -1
  782. package/extensions/forms/Iterate/index.d.ts +1 -0
  783. package/extensions/forms/Iterate/index.js +1 -0
  784. package/extensions/forms/Iterate/index.js.map +1 -1
  785. package/extensions/forms/Tools/GenerateSchema.js +15 -9
  786. package/extensions/forms/Tools/GenerateSchema.js.map +1 -1
  787. package/extensions/forms/Tools/ListAllProps.js +11 -7
  788. package/extensions/forms/Tools/ListAllProps.js.map +1 -1
  789. package/extensions/forms/Tools/Log.js +2 -1
  790. package/extensions/forms/Tools/Log.js.map +1 -1
  791. package/extensions/forms/Value/ArraySelection/ArraySelection.js +4 -4
  792. package/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -1
  793. package/extensions/forms/Value/Selection/Selection.js +5 -5
  794. package/extensions/forms/Value/Selection/Selection.js.map +1 -1
  795. package/extensions/forms/ValueBlock/ValueBlock.js +27 -9
  796. package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  797. package/extensions/forms/ValueBlock/style/dnb-value-block.css +6 -1
  798. package/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  799. package/extensions/forms/ValueBlock/style/dnb-value-block.scss +22 -10
  800. package/extensions/forms/Wizard/Container/WizardContainer.js +6 -3
  801. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  802. package/extensions/forms/Wizard/Container/useHandleLayoutEffect.d.ts +2 -1
  803. package/extensions/forms/Wizard/Container/useHandleLayoutEffect.js +4 -3
  804. package/extensions/forms/Wizard/Container/useHandleLayoutEffect.js.map +1 -1
  805. package/extensions/forms/hooks/DataValueWritePropsDocs.js +9 -9
  806. package/extensions/forms/hooks/DataValueWritePropsDocs.js.map +1 -1
  807. package/extensions/forms/hooks/useDataValue.d.ts +2 -2
  808. package/extensions/forms/hooks/useDataValue.js +5 -9
  809. package/extensions/forms/hooks/useDataValue.js.map +1 -1
  810. package/extensions/forms/hooks/useExternalValue.js +2 -2
  811. package/extensions/forms/hooks/useExternalValue.js.map +1 -1
  812. package/extensions/forms/hooks/useFieldProps.d.ts +8 -2
  813. package/extensions/forms/hooks/useFieldProps.js +164 -76
  814. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  815. package/extensions/forms/hooks/usePath.js +2 -2
  816. package/extensions/forms/hooks/usePath.js.map +1 -1
  817. package/extensions/forms/hooks/useValueProps.js +5 -5
  818. package/extensions/forms/hooks/useValueProps.js.map +1 -1
  819. package/extensions/forms/style/dnb-forms.css +9 -4
  820. package/extensions/forms/style/dnb-forms.min.css +1 -1
  821. package/extensions/forms/types.d.ts +33 -6
  822. package/extensions/forms/types.js.map +1 -1
  823. package/extensions/forms/utils/json-pointer/json-pointer.js +6 -0
  824. package/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -1
  825. package/extensions/payment-card/PaymentCard.js +3 -12
  826. package/extensions/payment-card/PaymentCard.js.map +1 -1
  827. package/fragments/drawer-list/DrawerList.d.ts +4 -2
  828. package/fragments/drawer-list/DrawerList.js +33 -47
  829. package/fragments/drawer-list/DrawerList.js.map +1 -1
  830. package/fragments/drawer-list/DrawerListDocs.js +3 -3
  831. package/fragments/drawer-list/DrawerListDocs.js.map +1 -1
  832. package/fragments/drawer-list/style/dnb-drawer-list.scss +1 -1
  833. package/package.json +1 -1
  834. package/shared/AlignmentHelper.js +0 -4
  835. package/shared/AlignmentHelper.js.map +1 -1
  836. package/shared/Eufemia.d.ts +1 -1
  837. package/shared/Eufemia.js +2 -2
  838. package/shared/Eufemia.js.map +1 -1
  839. package/shared/component-helper.js +2 -1
  840. package/shared/component-helper.js.map +1 -1
  841. package/style/core/scopes.scss +1 -1
  842. package/style/core/utilities.scss +3 -12
  843. package/style/dnb-ui-basis.css +1 -1
  844. package/style/dnb-ui-basis.min.css +1 -1
  845. package/style/dnb-ui-body.css +1 -1
  846. package/style/dnb-ui-body.min.css +1 -1
  847. package/style/dnb-ui-components.css +90 -76
  848. package/style/dnb-ui-components.min.css +4 -4
  849. package/style/dnb-ui-core.css +1 -1
  850. package/style/dnb-ui-core.min.css +1 -1
  851. package/style/dnb-ui-elements.css +151 -31
  852. package/style/dnb-ui-elements.min.css +1 -1
  853. package/style/dnb-ui-extensions.css +9 -4
  854. package/style/dnb-ui-extensions.min.css +1 -1
  855. package/style/dnb-ui-forms.css +9 -4
  856. package/style/dnb-ui-forms.min.css +1 -1
  857. package/style/dnb-ui-fragments.css +1 -1
  858. package/style/dnb-ui-fragments.min.css +1 -1
  859. package/style/themes/theme-eiendom/eiendom-theme-basis.css +151 -31
  860. package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  861. package/style/themes/theme-eiendom/eiendom-theme-components.css +99 -80
  862. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +4 -4
  863. package/style/themes/theme-eiendom/eiendom-theme-elements.css +151 -31
  864. package/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  865. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +9 -4
  866. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  867. package/style/themes/theme-eiendom/eiendom-theme-forms.css +9 -4
  868. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  869. package/style/themes/theme-sbanken/sbanken-theme-basis.css +151 -31
  870. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  871. package/style/themes/theme-sbanken/sbanken-theme-components.css +99 -80
  872. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +4 -4
  873. package/style/themes/theme-sbanken/sbanken-theme-elements.css +151 -31
  874. package/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  875. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +9 -4
  876. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  877. package/style/themes/theme-sbanken/sbanken-theme-forms.css +9 -4
  878. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  879. package/style/themes/theme-ui/ui-theme-basis.css +151 -31
  880. package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  881. package/style/themes/theme-ui/ui-theme-components.css +99 -80
  882. package/style/themes/theme-ui/ui-theme-components.min.css +4 -4
  883. package/style/themes/theme-ui/ui-theme-elements.css +151 -31
  884. package/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  885. package/style/themes/theme-ui/ui-theme-extensions.css +9 -4
  886. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  887. package/style/themes/theme-ui/ui-theme-forms.css +9 -4
  888. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  889. package/style/themes/theme-ui/ui-theme-tags.css +100 -19
  890. package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  891. package/umd/dnb-ui-basis.min.js +1 -1
  892. package/umd/dnb-ui-components.min.js +1 -1
  893. package/umd/dnb-ui-elements.min.js +1 -1
  894. package/umd/dnb-ui-extensions.min.js +3 -3
  895. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.js","names":["React","useRef","useMemo","useCallback","useReducer","useEffect","useContext","pointer","makeAjvInstance","ajvErrorsToFormErrors","debounce","FieldPropsProvider","useUpdateEffect","isAsync","createReferenceKey","useSharedState","SharedContext","useTranslation","DataContext","structuredClone","useLayoutEffect","window","isArrayJsonPointer","Provider","props","_sharedAttachments$da","forceUpdate","id","globalStatusId","defaultData","emptyData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","onCommit","onClear","scrollTopOnSubmit","minimumAsyncBehaviorTime","asyncSubmitTimeout","sessionStorageId","ajvInstance","transformIn","transformOut","filterSubmitData","locale","translations","required","errorMessages","isolate","children","rest","_objectWithoutProperties","_excluded","undefined","Error","hasContext","formElementRef","sharedLocale","translation","Field","ajvRef","mountedFieldsRef","snapshotsRef","Map","existingFieldsRef","hasVisibleErrorRef","errorsRef","showAllErrorsRef","setShowAllErrors","showAllErrors","current","setVisibleError","path","hasError","submitStateRef","setSubmitState","state","_objectSpread","formStateRef","keepPending","setFormState","formState","options","arguments","length","fieldErrorRef","fieldStateRef","initialData","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","internalDataRef","isEmptyDataRef","ajvValidatorRef","executeAjvValidator","_ajvValidatorRef$curr","call","errors","validateData","checkFieldStateFor","_errorsRef$current","Boolean","hasFieldState","item","isMounted","hasFieldError","p","hasErrors","setFieldError","error","setFieldState","fieldState","mutateDataHandler","handler","remove","mutate","result","set","Object","entries","fieldPropsRef","forEach","_ref","exists","has","_fieldErrorRef$curren","value","get","displayValue","fieldDisplayValueRef","internal","label","runFilter","_ref2","condition","_fieldErrorRef$curren2","wildcardPaths","_ref3","includes","parts","split","traverse","subData","subPath","idx","push","list","Array","isArray","_","i","visibleDataHandler","keepPaths","removePaths","visibleData","isVisible","isPreMounted","wasStepChange","filterDataHandler","filter","filterData","fieldConnectionsRef","setFieldConnection","connections","setFieldProps","valuePropsRef","setValueProps","hasFieldWithAsyncValidator","_mountedFieldsRef$cur","onChangeValidator","onBlurValidator","sharedData","sharedAttachments","sharedDataContext","setSharedData","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","internalData","update","clearedData","clearData","_ref4","_requestAnimationFram","requestAnimationFrame","preventSyncOfSameInstance","storeInSession","_window$sessionStorag2","setItem","stringify","process","env","NODE_ENV","setData","newData","preventUpdate","updateDataValue","_internalDataRef$curr","givenData","match","e","handlePathChangeUnvalidated","itm","fieldEventListenersRef","type","callback","handlePathChange","transformedData","cb","changeHandlerStackRef","addOnChangeHandler","some","setMountedFieldState","assign","scrollToTop","_window","_window$scrollTo","scrollTo","top","behavior","handleSubmitCall","args","enableAsyncBehavior","skipFieldValidation","skipErrorCheck","customStatus","asyncBehaviorIsEnabled","_mountedFieldsRef$cur2","_result2","_result4","_result5","_result6","_result7","submitResult","_result","_result3","warning","info","onSubmitContinueRef","handleSubmitListenersRef","setHandleSubmit","listeners","handleSubmitListeners","stop","preventSubmit","getSubmitData","mutatedData","filteredData","getSubmitParams","reduceToVisibleFields","transformData","formElement","params","resetForm","_formElement$reset","reset","removeItem","handleSubmit","completeResult","keys","setFieldEventListener","_ref5","t","c","_onSubmitContinueRef$","_ajvRef$current","compile","_ajvRef$current2","onTimeout","bufferedFormState","useFormStatusBuffer","waitFor","submitState","disabled","contextErrorMessages","contextValue","hasVisibleError","createElement","FormStatus","globalStatus","title","errorSummaryTitle","show","stateRef","nowRef","timeoutRef","setState","clear","key","clearTimeout","hadCompleteRef","activeElementRef","isTest","minimum","setTimeout","document","activeElement","Date","now","offset","Math","max","delay","complete","_activeElementRef$cur","_activeElementRef$cur2","focus","timeout","freeze"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/Provider.tsx"],"sourcesContent":["import React, {\n useRef,\n useMemo,\n useCallback,\n useReducer,\n useEffect,\n useContext,\n} from 'react'\nimport pointer, { JsonObject } from '../../utils/json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport {\n Ajv,\n makeAjvInstance,\n ajvErrorsToFormErrors,\n FormError,\n} from '../../utils'\nimport {\n GlobalErrorMessagesWithPaths,\n AllJSONSchemaVersions,\n FieldProps,\n SubmitState,\n Path,\n EventStateObject,\n OnSubmit,\n OnChange,\n EventReturnWithStateObject,\n ValueProps,\n OnSubmitParams,\n OnSubmitReturn,\n} from '../../types'\nimport type { IsolationProviderProps } from '../../Form/Isolation/Isolation'\nimport { debounce } from '../../../../shared/helpers'\nimport FieldPropsProvider from '../../Field/Provider'\nimport useUpdateEffect from '../../../../shared/helpers/useUpdateEffect'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport {\n SharedStateId,\n createReferenceKey,\n useSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport SharedContext, { ContextProps } from '../../../../shared/Context'\nimport useTranslation from '../../hooks/useTranslation'\nimport DataContext, {\n ContextState,\n EventListenerCall,\n FilterData,\n FilterDataHandler,\n HandleSubmitCallback,\n MountState,\n TransformData,\n VisibleDataHandler,\n} from '../Context'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So its a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type SharedAttachments<Data = unknown> = {\n visibleDataHandler?: VisibleDataHandler<Data>\n filterDataHandler?: FilterDataHandler<Data>\n hasErrors?: ContextState['hasErrors']\n hasFieldError?: ContextState['hasFieldError']\n setShowAllErrors?: ContextState['setShowAllErrors']\n setSubmitState?: ContextState['setSubmitState']\n rerenderUseDataHook?: () => void\n clearData?: () => void\n fieldConnectionsRef?: ContextState['fieldConnectionsRef']\n}\n\nexport type Props<Data extends JsonObject> =\n IsolationProviderProps<Data> & {\n /**\n * Unique ID to communicate with the hook Form.useData\n */\n id?: SharedStateId\n /**\n * Unique ID to connect with a GlobalStatus\n */\n globalStatusId?: string\n /**\n * Source data, will be used instead of defaultData, and leading to updates if changed after mount\n */\n data?: Data\n /**\n * Default source data, only used if no other source is available, and not leading to updates if changed after mount\n */\n defaultData?: Data\n /**\n * Empty data, used to clear the data set.\n */\n emptyData?: unknown\n /**\n * JSON Schema to validate the data against.\n */\n schema?: AllJSONSchemaVersions<Data>\n /**\n * Custom Ajv instance, if you want to use your own\n */\n ajvInstance?: Ajv\n /**\n * Custom error messages for the whole data set\n */\n errorMessages?: GlobalErrorMessagesWithPaths\n /**\n * @deprecated Use the `filterData` in the second event parameter in the `onSubmit` or `onChange` events.\n */\n filterSubmitData?: FilterData\n /**\n * Transform the data context (internally as well) based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformIn?: TransformData\n /**\n * Mutate the data before it enters onSubmit or onChange based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformOut?: TransformData\n /**\n * Change handler for the whole data set.\n * You can provide an async function to show an indicator on the current label during a field change.\n */\n onChange?: OnChange<Data>\n /**\n * Change handler for each value\n */\n onPathChange?: (\n path: Path,\n value: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Will emit on a form submit – if validation has passed.\n * You can provide an async function to shows a submit indicator during submit. All form elements will be disabled during the submit.\n */\n onSubmit?: OnSubmit<Data>\n /**\n * Submit was requested, but data was invalid\n */\n onSubmitRequest?: () => void\n /**\n * Will be called when the onSubmit is finished and had not errors\n */\n onSubmitComplete?: (\n data: Data,\n /**\n * The result of the onSubmit function\n */\n result: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Minimum time to display the submit indicator.\n */\n minimumAsyncBehaviorTime?: number\n /**\n * The maximum time to display the submit indicator before it changes back to normal. In case something went wrong during submission.\n */\n asyncSubmitTimeout?: number\n /**\n * Scroll to top on submit\n */\n scrollTopOnSubmit?: boolean\n /**\n * Key for caching the data in session storage\n */\n sessionStorageId?: string\n /**\n * Locale to use for all nested Eufemia components\n */\n locale?: ContextProps['locale']\n /**\n * Provide your own translations. Use the same format as defined in the translation files\n */\n translations?: ContextProps['translations']\n /**\n * Make all fields required\n */\n required?: boolean\n /**\n * The children of the context provider\n */\n children: React.ReactNode\n }\n\nconst isArrayJsonPointer = /^\\/\\d+(\\/|$)/\n\nexport default function Provider<Data extends JsonObject>(\n props: Props<Data>\n) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const {\n id,\n globalStatusId = 'main',\n defaultData,\n emptyData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n onCommit,\n onClear,\n scrollTopOnSubmit,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n sessionStorageId,\n ajvInstance,\n transformIn,\n transformOut,\n filterSubmitData,\n locale,\n translations,\n required,\n errorMessages,\n isolate,\n children,\n ...rest\n } = props\n\n // Prop error handling\n if (data !== undefined && sessionStorageId !== undefined) {\n throw new Error(\n 'Use \"defaultData\" instead of \"data\" when using sessionStorageId'\n )\n }\n\n const { hasContext } = useContext(DataContext) || {}\n\n if (hasContext && !isolate) {\n throw new Error('DataContext (Form.Handler) can not be nested')\n }\n\n // - Element\n const formElementRef = useRef<HTMLFormElement>(null)\n\n // - Locale\n const { locale: sharedLocale } = useContext(SharedContext) || {}\n const translation = useTranslation().Field\n\n // - Ajv\n const ajvRef = useRef<Ajv>(makeAjvInstance(ajvInstance))\n\n // - Paths\n const mountedFieldsRef: ContextState['mountedFieldsRef'] = useRef({})\n\n // - Snapshots\n const snapshotsRef: ContextState['snapshotsRef'] = useRef(new Map())\n const existingFieldsRef: ContextState['existingFieldsRef'] = useRef(\n new Map()\n )\n\n // - Errors from provider validation (the whole data set)\n const hasVisibleErrorRef = useRef<Record<Path, boolean>>({})\n const errorsRef = useRef<Record<Path, FormError> | undefined>()\n const showAllErrorsRef = useRef<boolean>(false)\n const setShowAllErrors = useCallback((showAllErrors: boolean) => {\n showAllErrorsRef.current = showAllErrors\n forceUpdate()\n }, [])\n const setVisibleError = useCallback((path: Path, hasError: boolean) => {\n if (hasError) {\n hasVisibleErrorRef.current[path] = hasError\n } else {\n delete hasVisibleErrorRef.current[path]\n }\n forceUpdate() // Will rerender the whole form initially\n }, [])\n const submitStateRef = useRef<Partial<EventStateObject>>({})\n const setSubmitState = useCallback((state: EventStateObject) => {\n submitStateRef.current = { ...submitStateRef.current, ...state }\n forceUpdate()\n }, [])\n\n // - Progress\n const formStateRef = useRef<SubmitState>()\n const keepPending = useRef(false)\n const setFormState = useCallback<ContextState['setFormState']>(\n (formState: SubmitState, options = {}) => {\n if (typeof options?.keepPending === 'boolean') {\n keepPending.current = options?.keepPending\n }\n formStateRef.current = formState\n forceUpdate()\n },\n []\n )\n\n // - States (e.g. error) reported by fields, based on their direct validation rules\n const fieldErrorRef = useRef<Record<Path, Error>>({})\n const fieldStateRef = useRef<Record<Path, SubmitState>>({})\n\n // - Data\n const initialData = useMemo<Data>(() => {\n if (sessionStorageId && typeof window !== 'undefined') {\n const sessionDataJSON =\n window.sessionStorage?.getItem(sessionStorageId)\n if (sessionDataJSON) {\n return JSON.parse(sessionDataJSON)\n }\n }\n\n return data ?? defaultData\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Avoid triggering code that should only run initially\n }, [])\n const internalDataRef = useRef<Data>(initialData)\n const isEmptyDataRef = useRef(false)\n\n // - Validator\n const ajvValidatorRef = useRef<ValidateFunction>()\n const executeAjvValidator = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n if (!ajvValidatorRef.current?.(internalDataRef.current)) {\n // Errors found\n errorsRef.current = ajvErrorsToFormErrors(\n ajvValidatorRef.current.errors,\n internalDataRef.current\n )\n } else {\n errorsRef.current = undefined\n }\n }, [])\n const validateData = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n executeAjvValidator()\n forceUpdate()\n }, [executeAjvValidator])\n\n // - Error handling\n const checkFieldStateFor = useCallback(\n (path: Path, state: SubmitState) => {\n return Boolean(\n state === 'error'\n ? errorsRef.current?.[path] instanceof Error ||\n fieldErrorRef.current[path] instanceof Error\n : fieldStateRef.current[path] === state\n )\n },\n []\n )\n const hasFieldState = useCallback(\n (state: SubmitState) => {\n for (const path in mountedFieldsRef.current) {\n const item = mountedFieldsRef.current[path]\n if (item.isMounted && checkFieldStateFor(path, state)) {\n return true\n }\n }\n\n return false\n },\n [checkFieldStateFor]\n )\n const hasFieldError = useCallback(\n (path: Path) => {\n for (const p in mountedFieldsRef.current) {\n const item = mountedFieldsRef.current[path]\n if (\n item.isMounted &&\n p === path &&\n checkFieldStateFor(path, 'error')\n ) {\n return true\n }\n }\n\n return false\n },\n [checkFieldStateFor]\n )\n const hasErrors = useCallback(() => {\n return hasFieldState('error')\n }, [hasFieldState])\n\n /**\n * Sets the error state for a specific path\n */\n const setFieldError: ContextState['setFieldError'] = useCallback(\n (path, error) => {\n fieldErrorRef.current[path] = error\n },\n []\n )\n\n /**\n * Sets the field state for a specific path\n */\n const setFieldState: ContextState['setFieldState'] = useCallback(\n (path, fieldState) => {\n if (fieldState !== fieldStateRef.current[path]) {\n // The state for the target value was changed\n fieldStateRef.current[path] = fieldState\n forceUpdate()\n }\n },\n []\n )\n\n /**\n * Mutate the data set based on the filterData function\n */\n const mutateDataHandler = useCallback(\n (data: Data, handler: TransformData | FilterData, remove = false) => {\n const mutate = (path: Path, result: boolean | unknown) => {\n if (remove) {\n if (result === false) {\n data = structuredClone(data)\n pointer.remove(data, path)\n }\n } else {\n if (typeof result !== 'undefined') {\n data = structuredClone(data)\n pointer.set(data, path, result)\n }\n }\n }\n\n if (typeof handler === 'function') {\n Object.entries(fieldPropsRef.current).forEach(([path, props]) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const value = pointer.get(data, path)\n const displayValue = fieldDisplayValueRef.current[path]\n const internal = {\n error: fieldErrorRef.current?.[path],\n }\n const result = handler({\n path,\n value,\n displayValue,\n label: props.label,\n data: internalDataRef.current,\n props,\n internal,\n })\n mutate(path, result)\n }\n })\n\n return data\n } else if (handler) {\n const runFilter = ({ path, condition }) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const value = pointer.get(data, path)\n const props = fieldPropsRef.current[path]\n const internal = { error: fieldErrorRef.current?.[path] }\n const result =\n typeof condition === 'function'\n ? condition({\n value,\n data: internalDataRef.current,\n props,\n internal,\n })\n : condition\n mutate(path, result)\n }\n }\n\n const wildcardPaths = []\n\n Object.entries(handler).forEach(([path, condition]) => {\n if (path.includes('*')) {\n const parts = path.split(/\\/\\*/g)\n const exists = pointer.has(data, parts[0])\n if (exists) {\n const traverse = (\n subData: unknown,\n subPath: string,\n idx: number\n ) => {\n if (idx === parts.length - 1) {\n wildcardPaths.push({ path: subPath, condition })\n return\n }\n const list = pointer.get(subData, subPath)\n if (Array.isArray(list)) {\n list.forEach((_, i) => {\n traverse(\n list[i],\n `${subPath}/${i}${parts[idx + 1]}`,\n idx + 1\n )\n })\n }\n }\n traverse(data, parts[0], 0)\n }\n } else {\n runFilter({ path, condition })\n }\n })\n\n wildcardPaths.forEach(runFilter)\n\n return data\n }\n\n return data\n },\n []\n )\n\n /**\n * Ensure only visible data is returned\n */\n const visibleDataHandler: VisibleDataHandler<Data> = useCallback(\n (data = internalDataRef.current, { keepPaths, removePaths } = {}) => {\n const visibleData = {} as Partial<Data>\n\n for (const path in mountedFieldsRef.current) {\n const item = mountedFieldsRef.current[path]\n if (\n item &&\n item.isVisible !== false &&\n (item.isPreMounted !== false || item.wasStepChange === true) &&\n (removePaths ? !removePaths.includes(path) : true) &&\n pointer.has(data, path)\n ) {\n pointer.set(visibleData, path, pointer.get(data, path))\n }\n }\n\n if (keepPaths) {\n keepPaths.forEach((path) => {\n if (pointer.has(data, path)) {\n pointer.set(visibleData, path, pointer.get(data, path))\n }\n })\n }\n\n return visibleData\n },\n []\n )\n\n /**\n * Filter the data set based on the filterData function\n */\n const filterDataHandler = useCallback(\n (data: Data, filter: FilterData) => {\n if (filter) {\n return mutateDataHandler(data, filter, true)\n }\n\n return data\n },\n [mutateDataHandler]\n )\n\n const filterData = useCallback(\n (filter: FilterData, data = internalDataRef.current) => {\n return filterDataHandler(data, filter)\n },\n [filterDataHandler]\n )\n\n const fieldDisplayValueRef: ContextState['fieldDisplayValueRef'] =\n useRef({})\n\n const fieldConnectionsRef = useRef<\n Record<Path, Record<string, unknown>>\n >({})\n const setFieldConnection = useCallback(\n (path: Path, connections: Record<string, unknown>) => {\n fieldConnectionsRef.current[path] = connections\n },\n []\n )\n\n const fieldPropsRef = useRef<Record<Path, FieldProps>>({})\n const setFieldProps = useCallback(\n (path: Path, props: Record<string, unknown>) => {\n fieldPropsRef.current[path] = props\n },\n []\n )\n\n const valuePropsRef = useRef<Record<Path, ValueProps>>({})\n const setValueProps = useCallback(\n (path: Path, props: Record<string, unknown>) => {\n valuePropsRef.current[path] = props\n },\n []\n )\n\n const hasFieldWithAsyncValidator = useCallback(() => {\n for (const path in fieldPropsRef.current) {\n if (mountedFieldsRef.current[path]?.isMounted) {\n const props = fieldPropsRef.current[path]\n if (\n isAsync(props.onChangeValidator) ||\n isAsync(props.onBlurValidator)\n ) {\n return true\n }\n }\n }\n\n return false\n }, [])\n\n // - Shared state\n const sharedData = useSharedState<Data>(id)\n const sharedAttachments = useSharedState<SharedAttachments<Data>>(\n createReferenceKey(id, 'attachments')\n )\n const sharedDataContext = useSharedState<ContextState>(\n createReferenceKey(id, 'data-context')\n )\n\n const setSharedData = sharedData.set\n const extendSharedData = sharedData.extend\n const extendAttachment = sharedAttachments.extend\n const rerenderUseDataHook = sharedAttachments.data?.rerenderUseDataHook\n\n const cacheRef = useRef({\n data,\n schema,\n shared: sharedData.data,\n hasUsedInitialData: false,\n })\n\n const internalData = useMemo(() => {\n // NB: \"sharedData.data\" is only available on a rerender.\n // Update the shared state, if initialData is given and no shared state is available.\n // We do almost the same later in a useLayoutEffect, but we need to do it here as well, so we set the data as early as possible.\n if (id && initialData && !sharedData.data) {\n sharedData.update(initialData)\n }\n\n // Merge both internal data and the shared state, if it both where given\n if (\n id &&\n initialData &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data &&\n internalDataRef.current === initialData &&\n typeof internalDataRef.current === 'object'\n ) {\n return {\n ...internalDataRef.current,\n ...(sharedData.data || {}),\n }\n }\n\n // Use shared state if no initial and initial data, and the shared state exists\n if (\n id &&\n !initialData &&\n !internalDataRef.current &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data\n ) {\n return sharedData.data\n }\n\n // Merge the internal data with the shared state, if the shared was updated and not the same as internal data\n if (\n id &&\n sharedData.data &&\n cacheRef.current.shared !== sharedData.data &&\n sharedData.data !== internalDataRef.current &&\n typeof internalDataRef.current === 'object'\n ) {\n cacheRef.current.shared = sharedData.data\n\n if (isEmptyDataRef.current) {\n return (\n Array.isArray(internalDataRef.current) ? [] : clearedData\n ) as Data\n }\n\n return {\n ...internalDataRef.current,\n ...(sharedData.data || {}),\n }\n }\n\n // When external data has changed, update the internal data\n if (data !== cacheRef.current.data) {\n cacheRef.current.data = data\n return data\n }\n\n return internalDataRef.current\n }, [id, initialData, sharedData, data])\n\n internalDataRef.current =\n props.path && pointer.has(internalData, props.path)\n ? pointer.get(internalData, props.path)\n : internalData\n\n const clearData = useCallback(() => {\n isEmptyDataRef.current = true\n internalDataRef.current = ((typeof emptyData === 'function'\n ? emptyData(internalDataRef.current)\n : emptyData) ??\n (Array.isArray(internalDataRef.current) ? [] : clearedData)) as Data\n\n if (id) {\n setSharedData(internalDataRef.current)\n }\n\n forceUpdate()\n onClear?.()\n\n requestAnimationFrame?.(() => {\n isEmptyDataRef.current = false\n }) // Delay so the field validation error message are not shown\n }, [emptyData, id, onClear, setSharedData])\n\n useLayoutEffect(() => {\n // Set the shared state, if initialData was given\n if (id) {\n if (initialData && !sharedData.data) {\n extendSharedData(initialData, { preventSyncOfSameInstance: true })\n }\n }\n }, [id, initialData, extendSharedData, sharedData.data])\n\n useLayoutEffect(() => {\n if (id) {\n extendAttachment(\n {\n visibleDataHandler,\n filterDataHandler,\n hasErrors,\n hasFieldError,\n setShowAllErrors,\n setSubmitState,\n clearData,\n fieldConnectionsRef,\n },\n { preventSyncOfSameInstance: true }\n )\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n }, [\n extendAttachment,\n visibleDataHandler,\n filterDataHandler,\n filterSubmitData,\n hasErrors,\n hasFieldError,\n id,\n rerenderUseDataHook,\n setShowAllErrors,\n setSubmitState,\n clearData,\n extendSharedData,\n ])\n\n useMemo(() => {\n executeAjvValidator()\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [internalDataRef.current]) // run validation when internal data has changed\n\n const storeInSession = useMemo(() => {\n return debounce(\n () => {\n window.sessionStorage?.setItem(\n sessionStorageId,\n JSON.stringify(internalDataRef.current)\n )\n },\n process.env.NODE_ENV === 'test' ? 1 : 800\n )\n }, [sessionStorageId])\n\n const setData = useCallback(\n (newData: Data, preventUpdate = false) => {\n // - Mutate the data context\n if (transformIn) {\n newData = mutateDataHandler(newData, transformIn)\n }\n\n internalDataRef.current = newData\n\n if (id) {\n // Will ensure that Form.getData() gets the correct data\n extendSharedData(newData, { preventSyncOfSameInstance: true })\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n\n if (sessionStorageId && typeof window !== 'undefined') {\n storeInSession()\n }\n\n if (!preventUpdate) {\n forceUpdate() // Will rerender the whole form initially\n }\n },\n [\n extendSharedData,\n filterSubmitData,\n id,\n mutateDataHandler,\n rerenderUseDataHook,\n sessionStorageId,\n storeInSession,\n transformIn,\n ]\n )\n\n /**\n * Update the data set\n */\n const updateDataValue: ContextState['updateDataValue'] = useCallback(\n (path, value, { preventUpdate } = {}) => {\n if (!path) {\n return\n }\n\n const givenData = (\n path === '/'\n ? // When setting the root of the data, the whole data set should be the new value\n value\n : // For sub paths, use the existing data set (or empty array/object), but modify it below (since pointer.set is not immutable)\n internalDataRef.current ??\n (path.match(isArrayJsonPointer) ? [] : {})\n ) as Data\n\n let newData: Data = null\n try {\n // Update the data even if it contains errors. Submit/SubmitRequest will be called accordingly\n newData = structuredClone(givenData)\n } catch (e) {\n newData = givenData\n }\n\n if (path !== '/') {\n pointer.set(newData, path, value)\n }\n\n setData(newData, preventUpdate)\n },\n [setData]\n )\n\n /**\n * Update the data set on user interaction (unvalidated)\n */\n const handlePathChangeUnvalidated: ContextState['handlePathChange'] =\n useCallback(\n async (path, value) => {\n if (!path) {\n return null\n }\n\n updateDataValue(path, value)\n\n if (isAsync(onPathChange)) {\n await onPathChange?.(path, value)\n } else {\n onPathChange?.(path, value)\n }\n\n for (const itm of fieldEventListenersRef.current) {\n if (itm.type === 'onPathChange' && itm.path === path) {\n const { callback } = itm\n if (isAsync(callback)) {\n await callback({ value })\n } else {\n callback({ value })\n }\n }\n }\n },\n [onPathChange, updateDataValue]\n )\n\n /**\n * Update the data set on user interaction\n */\n const handlePathChange: ContextState['handlePathChange'] = useCallback(\n async (path, value = '_undefined_') => {\n if (!path) {\n return null\n }\n\n if (value !== '_undefined_') {\n handlePathChangeUnvalidated(path, value)\n }\n\n showAllErrorsRef.current = false\n\n validateData()\n\n const data = internalDataRef.current as Data\n const options = { filterData }\n const transformedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n for (const cb of changeHandlerStackRef.current) {\n if (isAsync(onChange)) {\n await cb(transformedData, options)\n } else {\n cb(transformedData, options)\n }\n }\n\n if (isAsync(onChange)) {\n return await onChange(transformedData, options)\n }\n\n return onChange?.(transformedData, options)\n },\n [\n filterData,\n handlePathChangeUnvalidated,\n mutateDataHandler,\n onChange,\n transformOut,\n validateData,\n ]\n )\n\n const changeHandlerStackRef = useRef<Array<OnChange<Data>>>([])\n const addOnChangeHandler = useCallback((callback: OnChange<Data>) => {\n const exists = changeHandlerStackRef.current.some((cb) => {\n return callback === cb\n })\n if (!exists) {\n changeHandlerStackRef.current.push(callback)\n }\n }, [])\n\n // - Mounted fields\n const setMountedFieldState = useCallback(\n (path: Path, state: MountState) => {\n if (!mountedFieldsRef.current[path]) {\n mountedFieldsRef.current[path] = { ...state }\n } else {\n Object.assign(mountedFieldsRef.current[path], state)\n }\n\n for (const itm of fieldEventListenersRef.current) {\n if (itm.type === 'onMount' && itm.path === path) {\n const { callback } = itm\n callback()\n }\n }\n },\n []\n )\n\n // - Features\n const scrollToTop = useCallback(() => {\n if (typeof window !== 'undefined') {\n window?.scrollTo?.({ top: 0, behavior: 'smooth' })\n }\n }, [])\n\n /**\n * Shared logic dedicated to submit the whole form\n */\n const handleSubmitCall = useCallback<ContextState['handleSubmitCall']>(\n async (args) => {\n const {\n onSubmit,\n enableAsyncBehavior,\n skipFieldValidation,\n skipErrorCheck,\n } = args\n\n setSubmitState({ error: undefined, customStatus: undefined })\n\n const asyncBehaviorIsEnabled =\n (skipErrorCheck\n ? true\n : // Don't enable async behavior if we have errors, but when we have a pending state\n !hasErrors() || hasFieldState('pending')) &&\n (enableAsyncBehavior || hasFieldWithAsyncValidator())\n\n if (asyncBehaviorIsEnabled) {\n setFormState('pending')\n }\n\n // Just call the submit listeners \"once\", and not on the retry/recall\n if (!skipFieldValidation) {\n for (const item of fieldEventListenersRef.current) {\n const { path, type, callback } = item\n if (\n type === 'onSubmit' &&\n mountedFieldsRef.current[path]?.isMounted\n ) {\n // Call all submit listener callbacks (e.g. to validate fields)\n if (asyncBehaviorIsEnabled) {\n await callback()\n } else {\n callback()\n }\n }\n }\n }\n\n let result: EventStateObject\n\n if (\n !(skipErrorCheck ? false : hasErrors()) &&\n !hasFieldState('pending') &&\n (skipFieldValidation ? true : !hasFieldState('error'))\n ) {\n let submitResult: OnSubmitReturn\n try {\n if (isolate) {\n submitResult = await onCommit?.(internalDataRef.current, {\n clearData,\n })\n } else {\n submitResult = await onSubmit()\n }\n\n if (submitResult instanceof Error) {\n throw submitResult\n }\n } catch (error) {\n submitResult = { error }\n }\n\n result = submitResult as EventStateObject\n\n if (asyncBehaviorIsEnabled) {\n if (result?.error) {\n setFormState('abort')\n } else if (keepPending.current !== true) {\n setFormState('complete')\n }\n }\n\n // Force the state to be set by a custom status\n if (result?.['status']) {\n setFormState(result?.['status'])\n }\n\n if (\n result?.error ||\n result?.warning ||\n result?.info ||\n result?.customStatus\n ) {\n setSubmitState(result)\n }\n } else {\n if (asyncBehaviorIsEnabled) {\n window.requestAnimationFrame(() => {\n setFormState(undefined)\n })\n\n if (!skipFieldValidation) {\n // Add a event listener to continue the submit after the pending state is resolved\n onSubmitContinueRef.current = () => {\n window.requestAnimationFrame(() => {\n // Do not call the validators again,\n // because we already did it in the first call\n // If they are async, we wait for them to finish anyway\n handleSubmitCall({ ...args, skipFieldValidation: true })\n })\n }\n }\n }\n\n onSubmitRequest?.()\n\n setShowAllErrors(true)\n }\n\n return result\n },\n [\n clearData,\n hasErrors,\n hasFieldState,\n hasFieldWithAsyncValidator,\n isolate,\n onCommit,\n onSubmitRequest,\n setFormState,\n setShowAllErrors,\n setSubmitState,\n ]\n )\n\n const handleSubmitListenersRef = useRef<Array<HandleSubmitCallback>>([])\n const setHandleSubmit: ContextState['setHandleSubmit'] = useCallback(\n (callback, { remove = false } = {}) => {\n const listeners = handleSubmitListenersRef.current\n if (remove) {\n handleSubmitListenersRef.current = listeners.filter(\n (item) => item !== callback\n )\n } else if (!listeners.includes(callback)) {\n listeners.push(callback)\n }\n },\n []\n )\n const handleSubmitListeners = useCallback(() => {\n let stop = false\n const preventSubmit = () => (stop = true)\n handleSubmitListenersRef.current.forEach((cb) => {\n cb({ preventSubmit })\n })\n return stop\n }, [])\n\n const getSubmitData = useCallback(() => {\n // - Mutate the data context\n const data = internalDataRef.current\n const mutatedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n // @deprecated – can be removed in v11 (use only mutatedData instead)\n const filteredData = filterSubmitData\n ? filterDataHandler(mutatedData, filterSubmitData)\n : mutatedData\n\n return filteredData\n }, [\n filterDataHandler,\n filterSubmitData,\n mutateDataHandler,\n transformOut,\n ])\n\n const getSubmitParams = useCallback(() => {\n const reduceToVisibleFields: VisibleDataHandler<Data> = (\n data,\n options\n ) => {\n return visibleDataHandler(\n transformOut ? mutateDataHandler(data, transformOut) : data,\n options\n )\n }\n\n const transformData = (data: Data, handler: TransformData) => {\n return mutateDataHandler(data, handler)\n }\n\n const formElement = formElementRef.current\n const params: OnSubmitParams<Data> = {\n filterData,\n reduceToVisibleFields,\n transformData,\n resetForm: () => {\n formElement?.reset?.()\n\n if (typeof window !== 'undefined') {\n if (sessionStorageId) {\n window.sessionStorage.removeItem(sessionStorageId)\n }\n }\n\n forceUpdate() // in order to fill \"empty fields\" again with their internal states\n },\n clearData,\n }\n\n return params\n }, [\n clearData,\n filterData,\n mutateDataHandler,\n sessionStorageId,\n transformOut,\n visibleDataHandler,\n ])\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback<\n ContextState['handleSubmit']\n >(async () => {\n return await handleSubmitCall({\n enableAsyncBehavior: isAsync(onSubmit),\n onSubmit: async () => {\n if (handleSubmitListeners()) {\n return // stop here\n }\n\n const data = getSubmitData()\n const options = getSubmitParams()\n let result = undefined\n\n if (isAsync(onSubmit)) {\n result = await onSubmit(data, options)\n } else {\n result = onSubmit?.(data, options)\n }\n\n const completeResult = await onSubmitComplete?.(data, result)\n if (completeResult) {\n result =\n Object.keys(result).length > 0\n ? { ...result, ...completeResult }\n : completeResult\n }\n\n if (scrollTopOnSubmit) {\n scrollToTop()\n }\n\n return result\n },\n })\n }, [\n getSubmitData,\n getSubmitParams,\n handleSubmitCall,\n handleSubmitListeners,\n onSubmit,\n onSubmitComplete,\n scrollToTop,\n scrollTopOnSubmit,\n ])\n\n // Collect listeners to be called during form submit\n const fieldEventListenersRef = useRef<Array<EventListenerCall>>([])\n const setFieldEventListener = useCallback(\n (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => {\n fieldEventListenersRef.current =\n fieldEventListenersRef.current.filter(\n ({ path: p, type: t, callback: c }) => {\n return !(p === path && t === type && c === callback)\n }\n )\n fieldEventListenersRef.current.push({ path, type, callback })\n },\n []\n )\n\n // Handle unresolved field states during async submit\n const onSubmitContinueRef = useRef<() => void>(null)\n if (!hasFieldState('pending')) {\n onSubmitContinueRef.current?.()\n onSubmitContinueRef.current = null\n }\n\n // - ajv validator routines\n useEffect(() => {\n if (schema) {\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n }\n\n // Validate the initial data\n validateData()\n }, [schema, validateData])\n useUpdateEffect(() => {\n if (schema && schema !== cacheRef.current.schema) {\n cacheRef.current.schema = schema\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n\n validateData()\n forceUpdate()\n }\n }, [schema, validateData, forceUpdate])\n\n const onTimeout = useCallback(() => {\n setFormState(undefined)\n setSubmitState({\n info: undefined,\n warning: undefined,\n error: undefined,\n customStatus: undefined,\n })\n }, [setFormState, setSubmitState])\n\n const { bufferedFormState: formState } = useFormStatusBuffer({\n formState: formStateRef.current,\n waitFor: hasFieldState('pending'),\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n })\n\n const submitState = submitStateRef.current\n const disabled =\n typeof rest?.['disabled'] === 'boolean'\n ? rest?.['disabled']\n : (formState === 'pending') === true\n ? true\n : undefined\n const contextErrorMessages =\n errorMessages?.[locale ?? sharedLocale] || errorMessages\n\n const contextValue: ContextState = {\n /** Method */\n handlePathChange,\n handlePathChangeUnvalidated,\n handleSubmit,\n setMountedFieldState,\n handleSubmitCall,\n setFormState,\n setSubmitState,\n setShowAllErrors,\n setVisibleError,\n setFieldEventListener,\n setFieldState,\n setFieldError,\n setFieldConnection,\n setFieldProps,\n setValueProps,\n hasErrors,\n hasFieldError,\n hasFieldState,\n validateData,\n updateDataValue,\n setData,\n clearData,\n visibleDataHandler,\n filterDataHandler,\n getSubmitData,\n getSubmitParams,\n addOnChangeHandler,\n setHandleSubmit,\n scrollToTop,\n\n /** State handling */\n schema,\n disabled,\n required,\n formState,\n submitState,\n contextErrorMessages,\n hasContext: true,\n errors: errorsRef.current,\n showAllErrors: showAllErrorsRef.current,\n hasVisibleError: Object.keys(hasVisibleErrorRef.current).length > 0,\n fieldConnectionsRef,\n fieldDisplayValueRef,\n fieldPropsRef,\n valuePropsRef,\n mountedFieldsRef,\n snapshotsRef,\n existingFieldsRef,\n formElementRef,\n isEmptyDataRef,\n fieldErrorRef,\n ajvInstance: ajvRef.current,\n\n /** Additional */\n id,\n data: internalDataRef.current,\n internalDataRef,\n props,\n ...rest,\n }\n\n if (id) {\n sharedDataContext.set(contextValue)\n }\n\n return (\n <DataContext.Provider value={contextValue}>\n <FieldPropsProvider\n FormStatus={\n globalStatusId\n ? {\n globalStatus: {\n id: globalStatusId,\n title: translation.errorSummaryTitle,\n show: showAllErrorsRef.current,\n },\n }\n : undefined\n }\n formElement={disabled ? { disabled: true } : undefined}\n locale={locale ? locale : undefined}\n translations={translations ? translations : undefined}\n >\n {children}\n </FieldPropsProvider>\n </DataContext.Provider>\n )\n}\n\ntype FormStatusBufferProps = {\n minimumAsyncBehaviorTime?: Props<JsonObject>['minimumAsyncBehaviorTime']\n asyncSubmitTimeout?: Props<JsonObject>['asyncSubmitTimeout']\n formState: ContextState['formState']\n waitFor: boolean\n onTimeout: () => void\n}\n\nfunction useFormStatusBuffer(props: FormStatusBufferProps) {\n const {\n formState,\n waitFor,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n } = props || {}\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const stateRef = useRef<SubmitState>()\n const nowRef = useRef<number | null>(null)\n const timeoutRef = useRef<{\n complete?: NodeJS.Timeout | null\n reset?: NodeJS.Timeout | null\n timeout?: NodeJS.Timeout | null\n }>({})\n\n const setState = useCallback(\n (state: SubmitState) => {\n stateRef.current = state\n forceUpdate()\n },\n [forceUpdate]\n )\n\n const clear = useCallback(() => {\n for (const key in timeoutRef.current) {\n clearTimeout(timeoutRef.current[key])\n }\n }, [])\n\n const hadCompleteRef = useRef(false)\n const activeElementRef = useRef<HTMLElement>(null)\n\n useEffect(() => {\n // This offset is used to calculate the delay,\n // which ensures that the form state is displayed for at least minimumAsyncBehaviorTime duration.\n // If the form was 'pending' for less than minimumAsyncBehaviorTime,\n // the delay will be the remaining time to reach minimumAsyncBehaviorTime.\n const isTest = process.env.NODE_ENV === 'test'\n const minimum =\n minimumAsyncBehaviorTime ??\n // make it testable\n (isTest ? 1 : 1000)\n\n if (stateRef.current && formState === 'error') {\n clear()\n setState(undefined)\n return\n }\n\n if (formState === 'abort') {\n clear()\n setState('abort')\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n }, minimum)\n return\n }\n\n if (formState === 'complete') {\n hadCompleteRef.current = true\n }\n\n if (formState === 'pending' && stateRef.current !== 'pending') {\n activeElementRef.current = document.activeElement as HTMLElement\n clear()\n nowRef.current = Date.now()\n hadCompleteRef.current = false\n setState('pending')\n } else if (stateRef.current === 'pending') {\n const offset = Math.max(Date.now() - nowRef.current)\n const delay = isTest ? minimum : Math.max(minimum - offset, 0)\n\n if (!waitFor) {\n timeoutRef.current.complete = setTimeout(() => {\n if (hadCompleteRef.current) {\n setState('complete')\n }\n window.requestAnimationFrame(() => {\n activeElementRef.current?.focus?.()\n })\n }, delay)\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n clear()\n }, delay + minimum)\n }\n }\n\n if (stateRef.current === 'pending') {\n timeoutRef.current.timeout = setTimeout(() => {\n clear()\n setState(undefined)\n onTimeout?.()\n }, asyncSubmitTimeout ?? 30000)\n }\n\n return clear\n }, [\n clear,\n minimumAsyncBehaviorTime,\n formState,\n setState,\n waitFor,\n asyncSubmitTimeout,\n onTimeout,\n ])\n\n return { bufferedFormState: stateRef.current }\n}\n\nexport const clearedData = Object.freeze({})\n"],"mappings":"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"}
1
+ {"version":3,"file":"Provider.js","names":["React","useRef","useMemo","useCallback","useReducer","useEffect","useContext","pointer","makeAjvInstance","ajvErrorsToFormErrors","debounce","FieldPropsProvider","useUpdateEffect","isAsync","createReferenceKey","useSharedState","SharedContext","useTranslation","DataContext","structuredClone","useLayoutEffect","window","isArrayJsonPointer","Provider","props","_sharedAttachments$da","forceUpdate","id","globalStatusId","defaultData","emptyData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","onCommit","onClear","scrollTopOnSubmit","minimumAsyncBehaviorTime","asyncSubmitTimeout","sessionStorageId","ajvInstance","transformIn","transformOut","filterSubmitData","locale","translations","required","errorMessages","isolate","children","rest","_objectWithoutProperties","_excluded","undefined","Error","hasContext","formElementRef","sharedLocale","translation","Field","ajvRef","mountedFieldsRef","snapshotsRef","Map","existingFieldsRef","hasVisibleErrorRef","errorsRef","addSetShowAllErrorsRef","showAllErrorsRef","setShowAllErrors","showAllErrors","current","forEach","fn","setVisibleError","path","hasError","submitStateRef","setSubmitState","state","_objectSpread","formStateRef","keepPending","setFormState","formState","options","arguments","length","fieldErrorRef","fieldStateRef","initialData","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","internalDataRef","isEmptyDataRef","ajvValidatorRef","executeAjvValidator","_ajvValidatorRef$curr","call","errors","validateData","checkFieldStateFor","_errorsRef$current","Boolean","hasFieldState","item","isMounted","hasFieldError","p","hasErrors","setFieldError","error","setFieldState","fieldState","mutateDataHandler","handler","remove","mutate","freshData","mutateEntry","result","set","Object","entries","fieldInternalsRef","_ref","exists","has","_fieldErrorRef$curren","value","get","displayValue","fieldDisplayValueRef","internal","label","runFilter","_ref2","condition","_fieldInternalsRef$cu","_fieldErrorRef$curren2","wildcardPaths","_ref3","includes","parts","split","traverse","subData","subPath","idx","push","list","Array","isArray","_","i","visibleDataHandler","keepPaths","removePaths","visibleData","isVisible","isPreMounted","wasStepChange","filterDataHandler","filter","filterData","fieldConnectionsRef","setFieldConnection","connections","setFieldInternals","assign","valueInternalsRef","setValueInternals","hasFieldWithAsyncValidator","_mountedFieldsRef$cur","_fieldInternalsRef$cu2","onChangeValidator","onBlurValidator","sharedData","sharedAttachments","sharedDataContext","setSharedData","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","internalData","update","clearedData","clearData","_ref4","_requestAnimationFram","requestAnimationFrame","preventSyncOfSameInstance","storeInSession","_window$sessionStorag2","setItem","stringify","process","env","NODE_ENV","setData","newData","preventUpdate","updateDataValue","_internalDataRef$curr","givenData","match","e","handlePathChangeUnvalidated","itm","fieldEventListenersRef","type","callback","handlePathChange","transformedData","cb","changeHandlerStackRef","addOnChangeHandler","some","setMountedFieldState","scrollToTop","_window","_window$scrollTo","scrollTo","top","behavior","handleSubmitCall","args","enableAsyncBehavior","skipFieldValidation","skipErrorCheck","customStatus","asyncBehaviorIsEnabled","_mountedFieldsRef$cur2","_result2","_result4","_result5","_result6","_result7","submitResult","_result","_result3","warning","info","onSubmitContinueRef","handleSubmitListenersRef","setHandleSubmit","listeners","handleSubmitListeners","stop","preventSubmit","getSubmitData","mutatedData","filteredData","getSubmitParams","reduceToVisibleFields","transformData","formElement","params","resetForm","_formElement$reset","reset","removeItem","handleSubmit","completeResult","keys","setFieldEventListener","_ref5","t","c","_onSubmitContinueRef$","_ajvRef$current","compile","_ajvRef$current2","onTimeout","bufferedFormState","useFormStatusBuffer","waitFor","submitState","disabled","contextErrorMessages","contextValue","hasVisibleError","createElement","FormStatus","globalStatus","title","errorSummaryTitle","show","stateRef","nowRef","timeoutRef","setState","clear","key","clearTimeout","hadCompleteRef","activeElementRef","isTest","minimum","setTimeout","document","activeElement","Date","now","offset","Math","max","delay","complete","_activeElementRef$cur","_activeElementRef$cur2","focus","timeout","freeze"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/Provider.tsx"],"sourcesContent":["import React, {\n useRef,\n useMemo,\n useCallback,\n useReducer,\n useEffect,\n useContext,\n} from 'react'\nimport pointer, { JsonObject } from '../../utils/json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport {\n Ajv,\n makeAjvInstance,\n ajvErrorsToFormErrors,\n FormError,\n} from '../../utils'\nimport {\n GlobalErrorMessagesWithPaths,\n AllJSONSchemaVersions,\n SubmitState,\n Path,\n EventStateObject,\n OnSubmit,\n OnChange,\n EventReturnWithStateObject,\n ValueProps,\n OnSubmitParams,\n OnSubmitReturn,\n} from '../../types'\nimport type { IsolationProviderProps } from '../../Form/Isolation/Isolation'\nimport { debounce } from '../../../../shared/helpers'\nimport FieldPropsProvider from '../../Field/Provider'\nimport useUpdateEffect from '../../../../shared/helpers/useUpdateEffect'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport {\n SharedStateId,\n createReferenceKey,\n useSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport SharedContext, { ContextProps } from '../../../../shared/Context'\nimport useTranslation from '../../hooks/useTranslation'\nimport DataContext, {\n ContextState,\n EventListenerCall,\n FieldInternalsRef,\n ValueInternalsRef,\n FilterData,\n FilterDataHandler,\n HandleSubmitCallback,\n MountState,\n TransformData,\n VisibleDataHandler,\n FieldInternalsRefProps,\n} from '../Context'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So its a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type SharedAttachments<Data = unknown> = {\n visibleDataHandler?: VisibleDataHandler<Data>\n filterDataHandler?: FilterDataHandler<Data>\n hasErrors?: ContextState['hasErrors']\n hasFieldError?: ContextState['hasFieldError']\n setShowAllErrors?: ContextState['setShowAllErrors']\n setSubmitState?: ContextState['setSubmitState']\n rerenderUseDataHook?: () => void\n clearData?: () => void\n fieldConnectionsRef?: ContextState['fieldConnectionsRef']\n}\n\nexport type Props<Data extends JsonObject> =\n IsolationProviderProps<Data> & {\n /**\n * Unique ID to communicate with the hook Form.useData\n */\n id?: SharedStateId\n /**\n * Unique ID to connect with a GlobalStatus\n */\n globalStatusId?: string\n /**\n * Source data, will be used instead of defaultData, and leading to updates if changed after mount\n */\n data?: Data\n /**\n * Default source data, only used if no other source is available, and not leading to updates if changed after mount\n */\n defaultData?: Data\n /**\n * Empty data, used to clear the data set.\n */\n emptyData?: unknown\n /**\n * JSON Schema to validate the data against.\n */\n schema?: AllJSONSchemaVersions<Data>\n /**\n * Custom Ajv instance, if you want to use your own\n */\n ajvInstance?: Ajv\n /**\n * Custom error messages for the whole data set\n */\n errorMessages?: GlobalErrorMessagesWithPaths\n /**\n * @deprecated Use the `filterData` in the second event parameter in the `onSubmit` or `onChange` events.\n */\n filterSubmitData?: FilterData\n /**\n * Transform the data context (internally as well) based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformIn?: TransformData\n /**\n * Mutate the data before it enters onSubmit or onChange based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformOut?: TransformData\n /**\n * Change handler for the whole data set.\n * You can provide an async function to show an indicator on the current label during a field change.\n */\n onChange?: OnChange<Data>\n /**\n * Change handler for each value\n */\n onPathChange?: (\n path: Path,\n value: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Will emit on a form submit – if validation has passed.\n * You can provide an async function to shows a submit indicator during submit. All form elements will be disabled during the submit.\n */\n onSubmit?: OnSubmit<Data>\n /**\n * Submit was requested, but data was invalid\n */\n onSubmitRequest?: () => void\n /**\n * Will be called when the onSubmit is finished and had not errors\n */\n onSubmitComplete?: (\n data: Data,\n /**\n * The result of the onSubmit function\n */\n result: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Minimum time to display the submit indicator.\n */\n minimumAsyncBehaviorTime?: number\n /**\n * The maximum time to display the submit indicator before it changes back to normal. In case something went wrong during submission.\n */\n asyncSubmitTimeout?: number\n /**\n * Scroll to top on submit\n */\n scrollTopOnSubmit?: boolean\n /**\n * Key for caching the data in session storage\n */\n sessionStorageId?: string\n /**\n * Locale to use for all nested Eufemia components\n */\n locale?: ContextProps['locale']\n /**\n * Provide your own translations. Use the same format as defined in the translation files\n */\n translations?: ContextProps['translations']\n /**\n * Make all fields required\n */\n required?: boolean\n /**\n * The children of the context provider\n */\n children: React.ReactNode\n }\n\nconst isArrayJsonPointer = /^\\/\\d+(\\/|$)/\n\nexport default function Provider<Data extends JsonObject>(\n props: Props<Data>\n) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const {\n id,\n globalStatusId = 'main',\n defaultData,\n emptyData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n onCommit,\n onClear,\n scrollTopOnSubmit,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n sessionStorageId,\n ajvInstance,\n transformIn,\n transformOut,\n filterSubmitData,\n locale,\n translations,\n required,\n errorMessages,\n isolate,\n children,\n ...rest\n } = props\n\n // Prop error handling\n if (data !== undefined && sessionStorageId !== undefined) {\n throw new Error(\n 'Use \"defaultData\" instead of \"data\" when using sessionStorageId'\n )\n }\n\n const { hasContext } = useContext(DataContext) || {}\n\n if (hasContext && !isolate) {\n throw new Error('DataContext (Form.Handler) can not be nested')\n }\n\n // - Element\n const formElementRef = useRef<HTMLFormElement>(null)\n\n // - Locale\n const { locale: sharedLocale } = useContext(SharedContext) || {}\n const translation = useTranslation().Field\n\n // - Ajv\n const ajvRef = useRef<Ajv>(makeAjvInstance(ajvInstance))\n\n // - Paths\n const mountedFieldsRef: ContextState['mountedFieldsRef'] = useRef({})\n\n // - Snapshots\n const snapshotsRef: ContextState['snapshotsRef'] = useRef(new Map())\n const existingFieldsRef: ContextState['existingFieldsRef'] = useRef(\n new Map()\n )\n\n // - Errors from provider validation (the whole data set)\n const hasVisibleErrorRef = useRef<Record<Path, boolean>>({})\n const errorsRef = useRef<Record<Path, FormError> | undefined>()\n const addSetShowAllErrorsRef = useRef<\n Array<(showAllErrors: boolean) => void>\n >([])\n const showAllErrorsRef = useRef<boolean>(false)\n const setShowAllErrors = useCallback((showAllErrors: boolean) => {\n showAllErrorsRef.current = showAllErrors\n forceUpdate()\n addSetShowAllErrorsRef.current.forEach((fn) => fn?.(showAllErrors))\n }, [])\n const setVisibleError = useCallback((path: Path, hasError: boolean) => {\n if (hasError) {\n hasVisibleErrorRef.current[path] = hasError\n } else {\n delete hasVisibleErrorRef.current[path]\n }\n forceUpdate() // Will rerender the whole form initially\n }, [])\n const submitStateRef = useRef<Partial<EventStateObject>>({})\n const setSubmitState = useCallback((state: EventStateObject) => {\n submitStateRef.current = { ...submitStateRef.current, ...state }\n forceUpdate()\n }, [])\n\n // - Progress\n const formStateRef = useRef<SubmitState>()\n const keepPending = useRef(false)\n const setFormState = useCallback<ContextState['setFormState']>(\n (formState: SubmitState, options = {}) => {\n if (typeof options?.keepPending === 'boolean') {\n keepPending.current = options?.keepPending\n }\n formStateRef.current = formState\n forceUpdate()\n },\n []\n )\n\n // - States (e.g. error) reported by fields, based on their direct validation rules\n const fieldErrorRef = useRef<Record<Path, Error>>({})\n const fieldStateRef = useRef<Record<Path, SubmitState>>({})\n\n // - Data\n const initialData = useMemo<Data>(() => {\n if (sessionStorageId && typeof window !== 'undefined') {\n const sessionDataJSON =\n window.sessionStorage?.getItem(sessionStorageId)\n if (sessionDataJSON) {\n return JSON.parse(sessionDataJSON)\n }\n }\n\n return data ?? defaultData\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Avoid triggering code that should only run initially\n }, [])\n const internalDataRef = useRef<Data>(initialData)\n const isEmptyDataRef = useRef(false)\n\n // - Validator\n const ajvValidatorRef = useRef<ValidateFunction>()\n const executeAjvValidator = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n if (!ajvValidatorRef.current?.(internalDataRef.current)) {\n // Errors found\n errorsRef.current = ajvErrorsToFormErrors(\n ajvValidatorRef.current.errors,\n internalDataRef.current\n )\n } else {\n errorsRef.current = undefined\n }\n }, [])\n const validateData = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n executeAjvValidator()\n forceUpdate()\n }, [executeAjvValidator])\n\n // - Error handling\n const checkFieldStateFor = useCallback(\n (path: Path, state: SubmitState) => {\n return Boolean(\n state === 'error'\n ? errorsRef.current?.[path] instanceof Error ||\n fieldErrorRef.current[path] instanceof Error\n : fieldStateRef.current[path] === state\n )\n },\n []\n )\n const hasFieldState = useCallback(\n (state: SubmitState) => {\n for (const path in mountedFieldsRef.current) {\n const item = mountedFieldsRef.current[path]\n if (item.isMounted && checkFieldStateFor(path, state)) {\n return true\n }\n }\n\n return false\n },\n [checkFieldStateFor]\n )\n const hasFieldError = useCallback(\n (path: Path) => {\n for (const p in mountedFieldsRef.current) {\n const item = mountedFieldsRef.current[path]\n if (\n item.isMounted &&\n p === path &&\n checkFieldStateFor(path, 'error')\n ) {\n return true\n }\n }\n\n return false\n },\n [checkFieldStateFor]\n )\n const hasErrors = useCallback(() => {\n return hasFieldState('error')\n }, [hasFieldState])\n\n /**\n * Sets the error state for a specific path\n */\n const setFieldError: ContextState['setFieldError'] = useCallback(\n (path, error) => {\n fieldErrorRef.current[path] = error\n },\n []\n )\n\n /**\n * Sets the field state for a specific path\n */\n const setFieldState: ContextState['setFieldState'] = useCallback(\n (path, fieldState) => {\n if (fieldState !== fieldStateRef.current[path]) {\n // The state for the target value was changed\n fieldStateRef.current[path] = fieldState\n forceUpdate()\n }\n },\n []\n )\n\n /**\n * Mutate the data set based on the filterData function\n */\n const mutateDataHandler = useCallback(\n (\n data: Data,\n handler: TransformData | FilterData,\n { remove = false, mutate = true } = {}\n ) => {\n const freshData = {} as Data\n const mutateEntry = (path: Path, result: boolean | unknown) => {\n if (remove) {\n if (result === false) {\n data = structuredClone(data)\n pointer.remove(data, path)\n }\n } else {\n if (typeof result !== 'undefined') {\n if (mutate) {\n data = structuredClone(data)\n pointer.set(data, path, result)\n } else {\n pointer.set(freshData, path, result)\n }\n }\n }\n }\n\n if (typeof handler === 'function') {\n Object.entries(fieldInternalsRef.current).forEach(\n ([path, { props }]) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const value = pointer.get(data, path)\n const displayValue = fieldDisplayValueRef.current[path]\n const internal = {\n error: fieldErrorRef.current?.[path],\n }\n const result = handler({\n path,\n value,\n displayValue,\n label: props.label,\n data: internalDataRef.current,\n props,\n internal,\n })\n mutateEntry(path, result)\n }\n }\n )\n\n if (!mutate) {\n return freshData\n }\n\n return data\n } else if (handler) {\n const runFilter = ({ path, condition }) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const value = pointer.get(data, path)\n const props = fieldInternalsRef.current[path]?.props\n const internal = { error: fieldErrorRef.current?.[path] }\n const result =\n typeof condition === 'function'\n ? condition({\n value,\n data: internalDataRef.current,\n props,\n internal,\n })\n : condition\n mutateEntry(path, result)\n }\n }\n\n const wildcardPaths = []\n\n Object.entries(handler).forEach(([path, condition]) => {\n if (path.includes('*')) {\n const parts = path.split(/\\/\\*/g)\n const exists = pointer.has(data, parts[0])\n if (exists) {\n const traverse = (\n subData: unknown,\n subPath: string,\n idx: number\n ) => {\n if (idx === parts.length - 1) {\n wildcardPaths.push({ path: subPath, condition })\n return\n }\n const list = pointer.get(subData, subPath)\n if (Array.isArray(list)) {\n list.forEach((_, i) => {\n traverse(\n list[i],\n `${subPath}/${i}${parts[idx + 1]}`,\n idx + 1\n )\n })\n }\n }\n traverse(data, parts[0], 0)\n }\n } else {\n runFilter({ path, condition })\n }\n })\n\n wildcardPaths.forEach(runFilter)\n\n return data\n }\n\n return data\n },\n []\n )\n\n /**\n * Ensure only visible data is returned\n */\n const visibleDataHandler: VisibleDataHandler<Data> = useCallback(\n (data = internalDataRef.current, { keepPaths, removePaths } = {}) => {\n const visibleData = {} as Partial<Data>\n\n for (const path in mountedFieldsRef.current) {\n const item = mountedFieldsRef.current[path]\n if (\n item &&\n item.isVisible !== false &&\n (item.isPreMounted !== false || item.wasStepChange === true) &&\n (removePaths ? !removePaths.includes(path) : true) &&\n pointer.has(data, path)\n ) {\n pointer.set(visibleData, path, pointer.get(data, path))\n }\n }\n\n if (keepPaths) {\n keepPaths.forEach((path) => {\n if (pointer.has(data, path)) {\n pointer.set(visibleData, path, pointer.get(data, path))\n }\n })\n }\n\n return visibleData\n },\n []\n )\n\n /**\n * Filter the data set based on the filterData function\n */\n const filterDataHandler = useCallback(\n (data: Data, filter: FilterData) => {\n if (filter) {\n return mutateDataHandler(data, filter, { remove: true })\n }\n\n return data\n },\n [mutateDataHandler]\n )\n\n const filterData = useCallback(\n (filter: FilterData, data = internalDataRef.current) => {\n return filterDataHandler(data, filter)\n },\n [filterDataHandler]\n )\n\n const fieldDisplayValueRef: ContextState['fieldDisplayValueRef'] =\n useRef({})\n\n const fieldConnectionsRef = useRef<\n Record<Path, Record<string, unknown>>\n >({})\n const setFieldConnection = useCallback(\n (path: Path, connections: Record<string, unknown>) => {\n fieldConnectionsRef.current[path] = connections\n },\n []\n )\n\n const fieldInternalsRef = useRef<FieldInternalsRef>({})\n const setFieldInternals = useCallback(\n (path: Path, props: FieldInternalsRefProps, id: string) => {\n fieldInternalsRef.current[path] = Object.assign(\n fieldInternalsRef.current[path] || {},\n { props, id }\n )\n },\n []\n )\n\n const valueInternalsRef = useRef<ValueInternalsRef>({})\n const setValueInternals = useCallback(\n (path: Path, props: ValueProps) => {\n valueInternalsRef.current[path] = Object.assign(\n valueInternalsRef.current[path] || {},\n { props }\n )\n },\n []\n )\n\n const hasFieldWithAsyncValidator = useCallback(() => {\n for (const path in fieldInternalsRef.current) {\n if (mountedFieldsRef.current[path]?.isMounted) {\n const props = fieldInternalsRef.current[path]?.props\n if (\n isAsync(props?.onChangeValidator) ||\n isAsync(props?.onBlurValidator)\n ) {\n return true\n }\n }\n }\n\n return false\n }, [])\n\n // - Shared state\n const sharedData = useSharedState<Data>(id)\n const sharedAttachments = useSharedState<SharedAttachments<Data>>(\n createReferenceKey(id, 'attachments')\n )\n const sharedDataContext = useSharedState<ContextState>(\n createReferenceKey(id, 'data-context')\n )\n\n const setSharedData = sharedData.set\n const extendSharedData = sharedData.extend\n const extendAttachment = sharedAttachments.extend\n const rerenderUseDataHook = sharedAttachments.data?.rerenderUseDataHook\n\n const cacheRef = useRef({\n data,\n schema,\n shared: sharedData.data,\n hasUsedInitialData: false,\n })\n\n const internalData = useMemo(() => {\n // NB: \"sharedData.data\" is only available on a rerender.\n // Update the shared state, if initialData is given and no shared state is available.\n // We do almost the same later in a useLayoutEffect, but we need to do it here as well, so we set the data as early as possible.\n if (id && initialData && !sharedData.data) {\n sharedData.update(initialData)\n }\n\n // Merge both internal data and the shared state, if it both where given\n if (\n id &&\n initialData &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data &&\n internalDataRef.current === initialData &&\n typeof internalDataRef.current === 'object'\n ) {\n return {\n ...internalDataRef.current,\n ...(sharedData.data || {}),\n }\n }\n\n // Use shared state if no initial and initial data, and the shared state exists\n if (\n id &&\n !initialData &&\n !internalDataRef.current &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data\n ) {\n return sharedData.data\n }\n\n // Merge the internal data with the shared state, if the shared was updated and not the same as internal data\n if (\n id &&\n sharedData.data &&\n cacheRef.current.shared !== sharedData.data &&\n sharedData.data !== internalDataRef.current &&\n typeof internalDataRef.current === 'object'\n ) {\n cacheRef.current.shared = sharedData.data\n\n if (isEmptyDataRef.current) {\n return (\n Array.isArray(internalDataRef.current) ? [] : clearedData\n ) as Data\n }\n\n return {\n ...internalDataRef.current,\n ...(sharedData.data || {}),\n }\n }\n\n // When external data has changed, update the internal data\n if (data !== cacheRef.current.data) {\n cacheRef.current.data = data\n return data\n }\n\n return internalDataRef.current\n }, [id, initialData, sharedData, data])\n\n internalDataRef.current =\n props.path && pointer.has(internalData, props.path)\n ? pointer.get(internalData, props.path)\n : internalData\n\n const clearData = useCallback(() => {\n isEmptyDataRef.current = true\n internalDataRef.current = ((typeof emptyData === 'function'\n ? emptyData(internalDataRef.current)\n : emptyData) ??\n (Array.isArray(internalDataRef.current) ? [] : clearedData)) as Data\n\n if (id) {\n setSharedData(internalDataRef.current)\n }\n\n forceUpdate()\n onClear?.()\n\n requestAnimationFrame?.(() => {\n isEmptyDataRef.current = false\n }) // Delay so the field validation error message are not shown\n }, [emptyData, id, onClear, setSharedData])\n\n useLayoutEffect(() => {\n // Set the shared state, if initialData was given\n if (id) {\n if (initialData && !sharedData.data) {\n extendSharedData(initialData, { preventSyncOfSameInstance: true })\n }\n }\n }, [id, initialData, extendSharedData, sharedData.data])\n\n useLayoutEffect(() => {\n if (id) {\n extendAttachment(\n {\n visibleDataHandler,\n filterDataHandler,\n hasErrors,\n hasFieldError,\n setShowAllErrors,\n setSubmitState,\n clearData,\n fieldConnectionsRef,\n },\n { preventSyncOfSameInstance: true }\n )\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n }, [\n extendAttachment,\n visibleDataHandler,\n filterDataHandler,\n filterSubmitData,\n hasErrors,\n hasFieldError,\n id,\n rerenderUseDataHook,\n setShowAllErrors,\n setSubmitState,\n clearData,\n extendSharedData,\n ])\n\n useMemo(() => {\n executeAjvValidator()\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [internalDataRef.current]) // run validation when internal data has changed\n\n const storeInSession = useMemo(() => {\n return debounce(\n () => {\n window.sessionStorage?.setItem(\n sessionStorageId,\n JSON.stringify(internalDataRef.current)\n )\n },\n process.env.NODE_ENV === 'test' ? 1 : 800\n )\n }, [sessionStorageId])\n\n const setData = useCallback(\n (newData: Data, preventUpdate = false) => {\n // - Mutate the data context\n if (transformIn) {\n newData = mutateDataHandler(newData, transformIn)\n }\n\n internalDataRef.current = newData\n\n if (id) {\n // Will ensure that Form.getData() gets the correct data\n extendSharedData(newData, { preventSyncOfSameInstance: true })\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n\n if (sessionStorageId && typeof window !== 'undefined') {\n storeInSession()\n }\n\n if (!preventUpdate) {\n forceUpdate() // Will rerender the whole form initially\n }\n },\n [\n extendSharedData,\n filterSubmitData,\n id,\n mutateDataHandler,\n rerenderUseDataHook,\n sessionStorageId,\n storeInSession,\n transformIn,\n ]\n )\n\n /**\n * Update the data set\n */\n const updateDataValue: ContextState['updateDataValue'] = useCallback(\n (path, value, { preventUpdate } = {}) => {\n if (!path) {\n return\n }\n\n const givenData = (\n path === '/'\n ? // When setting the root of the data, the whole data set should be the new value\n value\n : // For sub paths, use the existing data set (or empty array/object), but modify it below (since pointer.set is not immutable)\n internalDataRef.current ??\n (path.match(isArrayJsonPointer) ? [] : {})\n ) as Data\n\n let newData: Data = null\n try {\n // Update the data even if it contains errors. Submit/SubmitRequest will be called accordingly\n newData = structuredClone(givenData)\n } catch (e) {\n newData = givenData\n }\n\n if (path !== '/') {\n pointer.set(newData, path, value)\n }\n\n setData(newData, preventUpdate)\n },\n [setData]\n )\n\n /**\n * Update the data set on user interaction (unvalidated)\n */\n const handlePathChangeUnvalidated: ContextState['handlePathChange'] =\n useCallback(\n async (path, value) => {\n if (!path) {\n return null\n }\n\n updateDataValue(path, value)\n\n if (isAsync(onPathChange)) {\n await onPathChange?.(path, value)\n } else {\n onPathChange?.(path, value)\n }\n\n for (const itm of fieldEventListenersRef.current) {\n if (itm.type === 'onPathChange' && itm.path === path) {\n const { callback } = itm\n if (isAsync(callback)) {\n await callback({ value })\n } else {\n callback({ value })\n }\n }\n }\n },\n [onPathChange, updateDataValue]\n )\n\n /**\n * Update the data set on user interaction\n */\n const handlePathChange: ContextState['handlePathChange'] = useCallback(\n async (path, value = '_undefined_') => {\n if (!path) {\n return null\n }\n\n if (value !== '_undefined_') {\n handlePathChangeUnvalidated(path, value)\n }\n\n showAllErrorsRef.current = false\n\n validateData()\n\n const data = internalDataRef.current as Data\n const options = { filterData }\n const transformedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n for (const cb of changeHandlerStackRef.current) {\n if (isAsync(onChange)) {\n await cb(transformedData, options)\n } else {\n cb(transformedData, options)\n }\n }\n\n if (isAsync(onChange)) {\n return await onChange(transformedData, options)\n }\n\n return onChange?.(transformedData, options)\n },\n [\n filterData,\n handlePathChangeUnvalidated,\n mutateDataHandler,\n onChange,\n transformOut,\n validateData,\n ]\n )\n\n const changeHandlerStackRef = useRef<Array<OnChange<Data>>>([])\n const addOnChangeHandler = useCallback((callback: OnChange<Data>) => {\n const exists = changeHandlerStackRef.current.some((cb) => {\n return callback === cb\n })\n if (!exists) {\n changeHandlerStackRef.current.push(callback)\n }\n }, [])\n\n // - Mounted fields\n const setMountedFieldState = useCallback(\n (path: Path, state: MountState) => {\n if (!mountedFieldsRef.current[path]) {\n mountedFieldsRef.current[path] = { ...state }\n } else {\n Object.assign(mountedFieldsRef.current[path], state)\n }\n\n for (const itm of fieldEventListenersRef.current) {\n if (itm.type === 'onMount' && itm.path === path) {\n const { callback } = itm\n callback()\n }\n }\n },\n []\n )\n\n // - Features\n const scrollToTop = useCallback(() => {\n if (typeof window !== 'undefined') {\n window?.scrollTo?.({ top: 0, behavior: 'smooth' })\n }\n }, [])\n\n /**\n * Shared logic dedicated to submit the whole form\n */\n const handleSubmitCall = useCallback<ContextState['handleSubmitCall']>(\n async (args) => {\n const {\n onSubmit,\n enableAsyncBehavior,\n skipFieldValidation,\n skipErrorCheck,\n } = args\n\n setSubmitState({ error: undefined, customStatus: undefined })\n\n const asyncBehaviorIsEnabled =\n (skipErrorCheck\n ? true\n : // Don't enable async behavior if we have errors, but when we have a pending state\n !hasErrors() || hasFieldState('pending')) &&\n (enableAsyncBehavior || hasFieldWithAsyncValidator())\n\n if (asyncBehaviorIsEnabled) {\n setFormState('pending')\n }\n\n // Just call the submit listeners \"once\", and not on the retry/recall\n if (!skipFieldValidation) {\n for (const item of fieldEventListenersRef.current) {\n const { path, type, callback } = item\n if (\n type === 'onSubmit' &&\n mountedFieldsRef.current[path]?.isMounted\n ) {\n // Call all submit listener callbacks (e.g. to validate fields)\n if (asyncBehaviorIsEnabled) {\n await callback()\n } else {\n callback()\n }\n }\n }\n }\n\n let result: EventStateObject\n\n if (\n !(skipErrorCheck ? false : hasErrors()) &&\n !hasFieldState('pending') &&\n (skipFieldValidation ? true : !hasFieldState('error'))\n ) {\n let submitResult: OnSubmitReturn\n try {\n if (isolate) {\n submitResult = await onCommit?.(internalDataRef.current, {\n clearData,\n })\n } else {\n submitResult = await onSubmit()\n }\n\n if (submitResult instanceof Error) {\n throw submitResult\n }\n } catch (error) {\n submitResult = { error }\n }\n\n result = submitResult as EventStateObject\n\n if (asyncBehaviorIsEnabled) {\n if (result?.error) {\n setFormState('abort')\n } else if (keepPending.current !== true) {\n setFormState('complete')\n }\n }\n\n // Force the state to be set by a custom status\n if (result?.['status']) {\n setFormState(result?.['status'])\n }\n\n if (\n result?.error ||\n result?.warning ||\n result?.info ||\n result?.customStatus\n ) {\n setSubmitState(result)\n }\n } else {\n if (asyncBehaviorIsEnabled) {\n window.requestAnimationFrame(() => {\n setFormState(undefined)\n })\n\n if (!skipFieldValidation) {\n // Add a event listener to continue the submit after the pending state is resolved\n onSubmitContinueRef.current = () => {\n window.requestAnimationFrame(() => {\n // Do not call the validators again,\n // because we already did it in the first call\n // If they are async, we wait for them to finish anyway\n handleSubmitCall({ ...args, skipFieldValidation: true })\n })\n }\n }\n }\n\n onSubmitRequest?.()\n\n setShowAllErrors(true)\n }\n\n return result\n },\n [\n clearData,\n hasErrors,\n hasFieldState,\n hasFieldWithAsyncValidator,\n isolate,\n onCommit,\n onSubmitRequest,\n setFormState,\n setShowAllErrors,\n setSubmitState,\n ]\n )\n\n const handleSubmitListenersRef = useRef<Array<HandleSubmitCallback>>([])\n const setHandleSubmit: ContextState['setHandleSubmit'] = useCallback(\n (callback, { remove = false } = {}) => {\n const listeners = handleSubmitListenersRef.current\n if (remove) {\n handleSubmitListenersRef.current = listeners.filter(\n (item) => item !== callback\n )\n } else if (!listeners.includes(callback)) {\n listeners.push(callback)\n }\n },\n []\n )\n const handleSubmitListeners = useCallback(() => {\n let stop = false\n const preventSubmit = () => (stop = true)\n handleSubmitListenersRef.current.forEach((cb) => {\n cb({ preventSubmit })\n })\n return stop\n }, [])\n\n const getSubmitData = useCallback(() => {\n // - Mutate the data context\n const data = internalDataRef.current\n const mutatedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n // @deprecated – can be removed in v11 (use only mutatedData instead)\n const filteredData = filterSubmitData\n ? filterDataHandler(mutatedData, filterSubmitData)\n : mutatedData\n\n return filteredData\n }, [\n filterDataHandler,\n filterSubmitData,\n mutateDataHandler,\n transformOut,\n ])\n\n const getSubmitParams = useCallback(() => {\n const reduceToVisibleFields: VisibleDataHandler<Data> = (\n data,\n options\n ) => {\n return visibleDataHandler(\n transformOut ? mutateDataHandler(data, transformOut) : data,\n options\n )\n }\n\n const transformData = (data: Data, handler: TransformData) => {\n return mutateDataHandler(data, handler, { mutate: false })\n }\n\n const formElement = formElementRef.current\n const params: OnSubmitParams<Data> = {\n filterData,\n reduceToVisibleFields,\n transformData,\n resetForm: () => {\n formElement?.reset?.()\n\n if (typeof window !== 'undefined') {\n if (sessionStorageId) {\n window.sessionStorage.removeItem(sessionStorageId)\n }\n }\n\n forceUpdate() // in order to fill \"empty fields\" again with their internal states\n },\n clearData,\n }\n\n return params\n }, [\n clearData,\n filterData,\n mutateDataHandler,\n sessionStorageId,\n transformOut,\n visibleDataHandler,\n ])\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback<\n ContextState['handleSubmit']\n >(async () => {\n return await handleSubmitCall({\n enableAsyncBehavior: isAsync(onSubmit),\n onSubmit: async () => {\n if (handleSubmitListeners()) {\n return // stop here\n }\n\n const data = getSubmitData()\n const options = getSubmitParams()\n let result = undefined\n\n if (isAsync(onSubmit)) {\n result = await onSubmit(data, options)\n } else {\n result = onSubmit?.(data, options)\n }\n\n const completeResult = await onSubmitComplete?.(data, result)\n if (completeResult) {\n result =\n Object.keys(result).length > 0\n ? { ...result, ...completeResult }\n : completeResult\n }\n\n if (scrollTopOnSubmit) {\n scrollToTop()\n }\n\n return result\n },\n })\n }, [\n getSubmitData,\n getSubmitParams,\n handleSubmitCall,\n handleSubmitListeners,\n onSubmit,\n onSubmitComplete,\n scrollToTop,\n scrollTopOnSubmit,\n ])\n\n // Collect listeners to be called during form submit\n const fieldEventListenersRef = useRef<Array<EventListenerCall>>([])\n const setFieldEventListener = useCallback(\n (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => {\n fieldEventListenersRef.current =\n fieldEventListenersRef.current.filter(\n ({ path: p, type: t, callback: c }) => {\n return !(p === path && t === type && c === callback)\n }\n )\n fieldEventListenersRef.current.push({ path, type, callback })\n },\n []\n )\n\n // Handle unresolved field states during async submit\n const onSubmitContinueRef = useRef<() => void>(null)\n if (!hasFieldState('pending')) {\n onSubmitContinueRef.current?.()\n onSubmitContinueRef.current = null\n }\n\n // - ajv validator routines\n useEffect(() => {\n if (schema) {\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n }\n\n // Validate the initial data\n validateData()\n }, [schema, validateData])\n useUpdateEffect(() => {\n if (schema && schema !== cacheRef.current.schema) {\n cacheRef.current.schema = schema\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n\n validateData()\n forceUpdate()\n }\n }, [schema, validateData, forceUpdate])\n\n const onTimeout = useCallback(() => {\n setFormState(undefined)\n setSubmitState({\n info: undefined,\n warning: undefined,\n error: undefined,\n customStatus: undefined,\n })\n }, [setFormState, setSubmitState])\n\n const { bufferedFormState: formState } = useFormStatusBuffer({\n formState: formStateRef.current,\n waitFor: hasFieldState('pending'),\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n })\n\n const submitState = submitStateRef.current\n const disabled =\n typeof rest?.['disabled'] === 'boolean'\n ? rest?.['disabled']\n : (formState === 'pending') === true\n ? true\n : undefined\n const contextErrorMessages =\n errorMessages?.[locale ?? sharedLocale] || errorMessages\n\n const contextValue: ContextState = {\n /** Method */\n handlePathChange,\n handlePathChangeUnvalidated,\n handleSubmit,\n setMountedFieldState,\n handleSubmitCall,\n setFormState,\n setSubmitState,\n setShowAllErrors,\n setVisibleError,\n setFieldEventListener,\n setFieldState,\n setFieldError,\n setFieldConnection,\n setFieldInternals,\n setValueInternals,\n hasErrors,\n hasFieldError,\n hasFieldState,\n validateData,\n updateDataValue,\n setData,\n clearData,\n visibleDataHandler,\n filterDataHandler,\n getSubmitData,\n getSubmitParams,\n addOnChangeHandler,\n setHandleSubmit,\n scrollToTop,\n\n /** State handling */\n schema,\n disabled,\n required,\n formState,\n submitState,\n contextErrorMessages,\n hasContext: true,\n errors: errorsRef.current,\n showAllErrors: showAllErrorsRef.current,\n hasVisibleError: Object.keys(hasVisibleErrorRef.current).length > 0,\n addSetShowAllErrorsRef,\n fieldConnectionsRef,\n fieldDisplayValueRef,\n fieldInternalsRef,\n valueInternalsRef,\n mountedFieldsRef,\n snapshotsRef,\n existingFieldsRef,\n formElementRef,\n isEmptyDataRef,\n fieldErrorRef,\n ajvInstance: ajvRef.current,\n\n /** Additional */\n id,\n data: internalDataRef.current,\n internalDataRef,\n props,\n ...rest,\n }\n\n if (id) {\n sharedDataContext.set(contextValue)\n }\n\n return (\n <DataContext.Provider value={contextValue}>\n <FieldPropsProvider\n FormStatus={\n globalStatusId\n ? {\n globalStatus: {\n id: globalStatusId,\n title: translation.errorSummaryTitle,\n show: showAllErrorsRef.current,\n },\n }\n : undefined\n }\n formElement={disabled ? { disabled: true } : undefined}\n locale={locale ? locale : undefined}\n translations={translations ? translations : undefined}\n >\n {children}\n </FieldPropsProvider>\n </DataContext.Provider>\n )\n}\n\ntype FormStatusBufferProps = {\n minimumAsyncBehaviorTime?: Props<JsonObject>['minimumAsyncBehaviorTime']\n asyncSubmitTimeout?: Props<JsonObject>['asyncSubmitTimeout']\n formState: ContextState['formState']\n waitFor: boolean\n onTimeout: () => void\n}\n\nfunction useFormStatusBuffer(props: FormStatusBufferProps) {\n const {\n formState,\n waitFor,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n } = props || {}\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const stateRef = useRef<SubmitState>()\n const nowRef = useRef<number | null>(null)\n const timeoutRef = useRef<{\n complete?: NodeJS.Timeout | null\n reset?: NodeJS.Timeout | null\n timeout?: NodeJS.Timeout | null\n }>({})\n\n const setState = useCallback(\n (state: SubmitState) => {\n stateRef.current = state\n forceUpdate()\n },\n [forceUpdate]\n )\n\n const clear = useCallback(() => {\n for (const key in timeoutRef.current) {\n clearTimeout(timeoutRef.current[key])\n }\n }, [])\n\n const hadCompleteRef = useRef(false)\n const activeElementRef = useRef<HTMLElement>(null)\n\n useEffect(() => {\n // This offset is used to calculate the delay,\n // which ensures that the form state is displayed for at least minimumAsyncBehaviorTime duration.\n // If the form was 'pending' for less than minimumAsyncBehaviorTime,\n // the delay will be the remaining time to reach minimumAsyncBehaviorTime.\n const isTest = process.env.NODE_ENV === 'test'\n const minimum =\n minimumAsyncBehaviorTime ??\n // make it testable\n (isTest ? 1 : 1000)\n\n if (stateRef.current && formState === 'error') {\n clear()\n setState(undefined)\n return\n }\n\n if (formState === 'abort') {\n clear()\n setState('abort')\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n }, minimum)\n return\n }\n\n if (formState === 'complete') {\n hadCompleteRef.current = true\n }\n\n if (formState === 'pending' && stateRef.current !== 'pending') {\n activeElementRef.current = document.activeElement as HTMLElement\n clear()\n nowRef.current = Date.now()\n hadCompleteRef.current = false\n setState('pending')\n } else if (stateRef.current === 'pending') {\n const offset = Math.max(Date.now() - nowRef.current)\n const delay = isTest ? minimum : Math.max(minimum - offset, 0)\n\n if (!waitFor) {\n timeoutRef.current.complete = setTimeout(() => {\n if (hadCompleteRef.current) {\n setState('complete')\n }\n window.requestAnimationFrame(() => {\n activeElementRef.current?.focus?.()\n })\n }, delay)\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n clear()\n }, delay + minimum)\n }\n }\n\n if (stateRef.current === 'pending') {\n timeoutRef.current.timeout = setTimeout(() => {\n clear()\n setState(undefined)\n onTimeout?.()\n }, asyncSubmitTimeout ?? 30000)\n }\n\n return clear\n }, [\n clear,\n minimumAsyncBehaviorTime,\n formState,\n setState,\n waitFor,\n asyncSubmitTimeout,\n onTimeout,\n ])\n\n return { bufferedFormState: stateRef.current }\n}\n\nexport const clearedData = Object.freeze({})\n"],"mappings":"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"}
@@ -68,7 +68,7 @@ function ArraySelection(props) {
68
68
  let {
69
69
  labels
70
70
  } = _ref;
71
- setDisplayValue(path, labels);
71
+ setDisplayValue(labels);
72
72
  }
73
73
  });
74
74
  switch (variant) {
@@ -101,7 +101,7 @@ export function useCheckboxOrToggleOptions(_ref2) {
101
101
  handleActiveData
102
102
  } = _ref2;
103
103
  const {
104
- setFieldProps
104
+ setFieldInternals
105
105
  } = useContext(DataContext);
106
106
  const optionsCount = useMemo(() => React.Children.count(children) + ((dataList === null || dataList === void 0 ? void 0 : dataList.length) || 0), [dataList, children]);
107
107
  const activeData = [];
@@ -158,7 +158,7 @@ export function useCheckboxOrToggleOptions(_ref2) {
158
158
  });
159
159
  }
160
160
  if (path) {
161
- setFieldProps === null || setFieldProps === void 0 ? void 0 : setFieldProps(path + '/arraySelectionData', activeData);
161
+ setFieldInternals === null || setFieldInternals === void 0 ? void 0 : setFieldInternals(path + '/arraySelectionData', activeData);
162
162
  }
163
163
  return result;
164
164
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ArraySelection.js","names":["React","useCallback","useContext","useMemo","classnames","convertJsxToString","Checkbox","HelpButton","ToggleButton","FieldBlock","useFieldProps","checkForError","pickSpacingProps","ToggleButtonGroupContext","mapOptions","DataContext","useDataValue","ArraySelection","props","id","path","dataPath","data","className","variant","layout","optionsLayout","value","hasError","info","warning","disabled","emptyValue","htmlAttributes","handleChange","setDisplayValue","children","getValueByPath","dataList","fieldBlockProps","_objectSpread","forId","contentClassName","labelHeight","disableStatusSummary","options","useCheckboxOrToggleOptions","handleActiveData","_ref","labels","createElement","Provider","status","undefined","_ref2","setFieldProps","optionsCount","Children","count","length","activeData","createOption","i","active","error","title","help","rest","_objectWithoutProperties","_excluded","includes","push","label","suffix","size","content","handleSelect","newValue","filter","Component","_extends","key","text","checked","on_change","result","map","Boolean","_ref3","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/ArraySelection/ArraySelection.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo } from 'react'\nimport classnames from 'classnames'\nimport { convertJsxToString } from '../../../../shared/component-helper'\nimport { Checkbox, HelpButton, ToggleButton } from '../../../../components'\nimport FieldBlock, { Props as FieldBlockProps } from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport { checkForError, ReturnAdditional } from '../../hooks/useFieldProps'\nimport { DefaultErrorMessages, FieldProps, Path } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport ToggleButtonGroupContext from '../../../../components/toggle-button/ToggleButtonGroupContext'\nimport { HelpProps } from '../../../../components/help-button/HelpButtonInline'\nimport { mapOptions, Data } from '../Selection'\nimport DataContext from '../../DataContext/Context'\nimport useDataValue from '../../hooks/useDataValue'\nimport { FormError } from '../../utils'\n\ntype OptionProps = React.ComponentProps<\n React.FC<{\n value: number | string\n error: Error | FormError | undefined\n title: React.ReactNode\n help: HelpProps\n className: string\n children: React.ReactNode\n handleSelect: () => void\n }>\n>\n\ntype OptionValue = string | number\n\nexport type Props = FieldProps<Array<OptionValue> | undefined> & {\n children?: React.ReactNode\n variant?: 'checkbox' | 'button' | 'checkbox-button'\n optionsLayout?: 'horizontal' | 'vertical'\n /**\n * The path to the context data (Form.Handler).\n * The context data 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 errorMessages?: DefaultErrorMessages & {\n minItems?: string\n maxItems?: string\n }\n}\n\nfunction ArraySelection(props: Props) {\n const {\n id,\n path,\n dataPath,\n data,\n className,\n variant = 'checkbox',\n layout = 'vertical',\n optionsLayout = 'vertical',\n value,\n hasError,\n info,\n warning,\n disabled,\n emptyValue,\n htmlAttributes,\n handleChange,\n setDisplayValue,\n children,\n } = useFieldProps(props)\n\n const { getValueByPath } = useDataValue()\n const dataList = dataPath ? getValueByPath(dataPath) : data\n\n const fieldBlockProps: 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 labelHeight: 'small',\n disableStatusSummary: true,\n ...pickSpacingProps(props),\n }\n\n const options = useCheckboxOrToggleOptions({\n id,\n path,\n variant,\n info,\n warning,\n emptyValue,\n htmlAttributes,\n dataList,\n children,\n value,\n disabled,\n hasError,\n handleChange,\n handleActiveData: ({ labels }) => {\n setDisplayValue(path, labels)\n },\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 }}\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 dataList,\n children,\n value,\n disabled,\n hasError,\n handleChange,\n handleActiveData,\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 dataList?: Props['data']\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 handleActiveData?: (item: { labels: Array<Props['children']> }) => void\n}) {\n const { setFieldProps } = useContext(DataContext)\n const optionsCount = useMemo(\n () => React.Children.count(children) + (dataList?.length || 0),\n [dataList, children]\n )\n const activeData = []\n\n const createOption = useCallback(\n (props: OptionProps, i: number) => {\n const {\n value: active,\n error,\n title,\n help,\n className,\n children,\n ...rest\n } = props\n\n if (value?.includes(active)) {\n activeData.push(props)\n }\n\n const label = title ?? children\n const suffix = help ? (\n <HelpButton size=\"small\" title={convertJsxToString(help.title)}>\n {help.content}\n </HelpButton>\n ) : undefined\n\n const handleSelect = () => {\n const newValue = value?.includes(active)\n ? value.filter((value) => value !== active)\n : [...(value ?? []), active]\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 variant={variant === 'checkbox-button' ? 'checkbox' : undefined}\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(active)}\n status={\n (hasError || checkForError([error, info, warning])) && 'error'\n }\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 = [\n ...(dataList || []).map((props, i) =>\n createOption(props as OptionProps, i)\n ),\n ...(mapOptions(children, { createOption }) || []).filter(Boolean),\n ]\n\n if (handleActiveData) {\n handleActiveData({\n labels: activeData.map(({ title, children }) => title ?? children),\n })\n }\n\n if (path) {\n setFieldProps?.(path + '/arraySelectionData', activeData)\n }\n\n return result\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","classnames","convertJsxToString","Checkbox","HelpButton","ToggleButton","FieldBlock","useFieldProps","checkForError","pickSpacingProps","ToggleButtonGroupContext","mapOptions","DataContext","useDataValue","ArraySelection","props","id","path","dataPath","data","className","variant","layout","optionsLayout","value","hasError","info","warning","disabled","emptyValue","htmlAttributes","handleChange","setDisplayValue","children","getValueByPath","dataList","fieldBlockProps","_objectSpread","forId","contentClassName","labelHeight","disableStatusSummary","options","useCheckboxOrToggleOptions","handleActiveData","_ref","labels","createElement","Provider","status","undefined","_ref2","setFieldInternals","optionsCount","Children","count","length","activeData","createOption","i","active","error","title","help","rest","_objectWithoutProperties","_excluded","includes","push","label","suffix","size","content","handleSelect","newValue","filter","Component","_extends","key","text","checked","on_change","result","map","Boolean","_ref3","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/ArraySelection/ArraySelection.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo } from 'react'\nimport classnames from 'classnames'\nimport { convertJsxToString } from '../../../../shared/component-helper'\nimport { Checkbox, HelpButton, ToggleButton } from '../../../../components'\nimport FieldBlock, { Props as FieldBlockProps } from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport { checkForError, ReturnAdditional } from '../../hooks/useFieldProps'\nimport { DefaultErrorMessages, FieldProps, Path } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport ToggleButtonGroupContext from '../../../../components/toggle-button/ToggleButtonGroupContext'\nimport { HelpProps } from '../../../../components/help-button/HelpButtonInline'\nimport { mapOptions, Data } from '../Selection'\nimport DataContext from '../../DataContext/Context'\nimport useDataValue from '../../hooks/useDataValue'\nimport { FormError } from '../../utils'\n\ntype OptionProps = React.ComponentProps<\n React.FC<{\n value: number | string\n error: Error | FormError | undefined\n title: React.ReactNode\n help: HelpProps\n className: string\n children: React.ReactNode\n handleSelect: () => void\n }>\n>\n\ntype OptionValue = string | number\n\nexport type Props = FieldProps<Array<OptionValue> | undefined> & {\n children?: React.ReactNode\n variant?: 'checkbox' | 'button' | 'checkbox-button'\n optionsLayout?: 'horizontal' | 'vertical'\n /**\n * The path to the context data (Form.Handler).\n * The context data 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 errorMessages?: DefaultErrorMessages & {\n minItems?: string\n maxItems?: string\n }\n}\n\nfunction ArraySelection(props: Props) {\n const {\n id,\n path,\n dataPath,\n data,\n className,\n variant = 'checkbox',\n layout = 'vertical',\n optionsLayout = 'vertical',\n value,\n hasError,\n info,\n warning,\n disabled,\n emptyValue,\n htmlAttributes,\n handleChange,\n setDisplayValue,\n children,\n } = useFieldProps(props)\n\n const { getValueByPath } = useDataValue()\n const dataList = dataPath ? getValueByPath(dataPath) : data\n\n const fieldBlockProps: 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 labelHeight: 'small',\n disableStatusSummary: true,\n ...pickSpacingProps(props),\n }\n\n const options = useCheckboxOrToggleOptions({\n id,\n path,\n variant,\n info,\n warning,\n emptyValue,\n htmlAttributes,\n dataList,\n children,\n value,\n disabled,\n hasError,\n handleChange,\n handleActiveData: ({ labels }) => {\n setDisplayValue(labels)\n },\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 }}\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 dataList,\n children,\n value,\n disabled,\n hasError,\n handleChange,\n handleActiveData,\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 dataList?: Props['data']\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 handleActiveData?: (item: { labels: Array<Props['children']> }) => void\n}) {\n const { setFieldInternals } = useContext(DataContext)\n const optionsCount = useMemo(\n () => React.Children.count(children) + (dataList?.length || 0),\n [dataList, children]\n )\n const activeData = []\n\n const createOption = useCallback(\n (props: OptionProps, i: number) => {\n const {\n value: active,\n error,\n title,\n help,\n className,\n children,\n ...rest\n } = props\n\n if (value?.includes(active)) {\n activeData.push(props)\n }\n\n const label = title ?? children\n const suffix = help ? (\n <HelpButton size=\"small\" title={convertJsxToString(help.title)}>\n {help.content}\n </HelpButton>\n ) : undefined\n\n const handleSelect = () => {\n const newValue = value?.includes(active)\n ? value.filter((value) => value !== active)\n : [...(value ?? []), active]\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 variant={variant === 'checkbox-button' ? 'checkbox' : undefined}\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(active)}\n status={\n (hasError || checkForError([error, info, warning])) && 'error'\n }\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 = [\n ...(dataList || []).map((props, i) =>\n createOption(props as OptionProps, i)\n ),\n ...(mapOptions(children, { createOption }) || []).filter(Boolean),\n ]\n\n if (handleActiveData) {\n handleActiveData({\n labels: activeData.map(({ title, children }) => title ?? children),\n })\n }\n\n if (path) {\n setFieldInternals?.(path + '/arraySelectionData', activeData)\n }\n\n return result\n}\n\nArraySelection._supportsSpacingProps = true\nexport default ArraySelection\n"],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
5
5
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
6
- const _excluded = ["id", "path", "className", "label", "value", "hasError", "disabled", "htmlAttributes", "handleFocus", "handleBlur", "handleChange", "setDisplayValue", "range", "showCancelButton", "showResetButton", "showInput", "onReset"];
6
+ const _excluded = ["id", "path", "itemPath", "className", "label", "value", "hasError", "disabled", "htmlAttributes", "handleFocus", "handleBlur", "handleChange", "setDisplayValue", "range", "showCancelButton", "showResetButton", "showInput", "onReset"];
7
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; }
8
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; }
9
9
  import React, { useCallback, useContext, useMemo } from 'react';
@@ -61,6 +61,7 @@ function DateComponent(props) {
61
61
  {
62
62
  id,
63
63
  path,
64
+ itemPath,
64
65
  className,
65
66
  label,
66
67
  value: valueProp,
@@ -99,12 +100,12 @@ function DateComponent(props) {
99
100
  };
100
101
  }, [range, valueProp]);
101
102
  useMemo(() => {
102
- if (path && valueProp) {
103
- setDisplayValue(path, formatDate(valueProp, {
103
+ if ((path || itemPath) && valueProp) {
104
+ setDisplayValue(formatDate(valueProp, {
104
105
  locale
105
106
  }));
106
107
  }
107
- }, [locale, path, setDisplayValue, valueProp]);
108
+ }, [itemPath, locale, path, setDisplayValue, valueProp]);
108
109
  const fieldBlockProps = _objectSpread({
109
110
  forId: id,
110
111
  label: label !== null && label !== void 0 ? label : translations.Date.label,