@dnb/eufemia 10.50.0 → 10.51.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 (916) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/cjs/components/accordion/style/dnb-accordion.css +3 -3
  3. package/cjs/components/accordion/style/dnb-accordion.min.css +1 -1
  4. package/cjs/components/autocomplete/style/dnb-autocomplete.css +1 -1
  5. package/cjs/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
  6. package/cjs/components/breadcrumb/style/dnb-breadcrumb.css +1 -1
  7. package/cjs/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  8. package/cjs/components/button/Button.d.ts +2 -2
  9. package/cjs/components/card/style/dnb-card.css +1 -1
  10. package/cjs/components/card/style/dnb-card.min.css +1 -1
  11. package/cjs/components/date-picker/DatePicker.d.ts +13 -4
  12. package/cjs/components/drawer/style/dnb-drawer.css +3 -3
  13. package/cjs/components/drawer/style/dnb-drawer.min.css +1 -1
  14. package/cjs/components/dropdown/Dropdown.js +1 -1
  15. package/cjs/components/dropdown/Dropdown.js.map +1 -1
  16. package/cjs/components/dropdown/style/dnb-dropdown.css +8 -7
  17. package/cjs/components/dropdown/style/dnb-dropdown.min.css +1 -1
  18. package/cjs/components/dropdown/style/dnb-dropdown.scss +17 -17
  19. package/cjs/components/form-row/style/dnb-form-row.css +1 -1
  20. package/cjs/components/form-row/style/dnb-form-row.min.css +1 -1
  21. package/cjs/components/form-status/FormStatus.d.ts +1 -1
  22. package/cjs/components/grid/style/dnb-grid.css +6 -6
  23. package/cjs/components/grid/style/dnb-grid.min.css +1 -1
  24. package/cjs/components/icon/Icon.d.ts +1 -1
  25. package/cjs/components/icon/Icon.js.map +1 -1
  26. package/cjs/components/input-masked/InputMasked.d.ts +1 -1
  27. package/cjs/components/input-masked/InputMaskedDocs.js +1 -1
  28. package/cjs/components/input-masked/InputMaskedDocs.js.map +1 -1
  29. package/cjs/components/number-format/NumberFormat.d.ts +14 -28
  30. package/cjs/components/number-format/NumberFormat.js +6 -2
  31. package/cjs/components/number-format/NumberFormat.js.map +1 -1
  32. package/cjs/components/number-format/NumberFormatDocs.d.ts +3 -0
  33. package/cjs/components/number-format/NumberFormatDocs.js +161 -0
  34. package/cjs/components/number-format/NumberFormatDocs.js.map +1 -0
  35. package/cjs/components/number-format/NumberUtils.d.ts +21 -1
  36. package/cjs/components/number-format/NumberUtils.js +33 -8
  37. package/cjs/components/number-format/NumberUtils.js.map +1 -1
  38. package/cjs/components/pagination/Pagination.d.ts +1 -1
  39. package/cjs/components/section/style/dnb-section.css +2 -2
  40. package/cjs/components/section/style/dnb-section.min.css +2 -2
  41. package/cjs/components/space/style/dnb-space.css +2 -2
  42. package/cjs/components/space/style/dnb-space.min.css +1 -1
  43. package/cjs/components/switch/Switch.d.ts +100 -91
  44. package/cjs/components/switch/Switch.js +167 -239
  45. package/cjs/components/switch/Switch.js.map +1 -1
  46. package/cjs/components/switch/SwitchDocs.d.ts +3 -0
  47. package/cjs/components/switch/SwitchDocs.js +93 -0
  48. package/cjs/components/switch/SwitchDocs.js.map +1 -0
  49. package/cjs/components/tabs/style/dnb-tabs.css +1 -0
  50. package/cjs/components/tabs/style/dnb-tabs.min.css +1 -1
  51. package/cjs/components/tabs/style/dnb-tabs.scss +1 -0
  52. package/cjs/components/toggle-button/style/dnb-toggle-button.css +1 -1
  53. package/cjs/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  54. package/cjs/extensions/forms/DataContext/At/At.js +1 -1
  55. package/cjs/extensions/forms/DataContext/At/At.js.map +1 -1
  56. package/cjs/extensions/forms/DataContext/Context.d.ts +20 -9
  57. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  58. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +1 -1
  59. package/cjs/extensions/forms/DataContext/Provider/Provider.js +105 -60
  60. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  61. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +1 -1
  62. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  63. package/cjs/extensions/forms/Field/Date/Date.d.ts +6 -0
  64. package/cjs/extensions/forms/Field/Date/Date.js +20 -4
  65. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  66. package/{extensions/forms/Form/FieldProps/FieldPropsDocs.d.ts → cjs/extensions/forms/Field/Date/DateDocs.d.ts} +1 -1
  67. package/cjs/extensions/forms/Field/Date/DateDocs.js +20 -0
  68. package/cjs/extensions/forms/Field/Date/DateDocs.js.map +1 -0
  69. package/cjs/extensions/forms/Field/Indeterminate/useDependencePaths.js +1 -1
  70. package/cjs/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -1
  71. package/{es/extensions/forms/Form/FieldProps/FieldProps.d.ts → cjs/extensions/forms/Field/Provider/FieldProvider.d.ts} +5 -7
  72. package/cjs/extensions/forms/Field/Provider/FieldProvider.js +33 -0
  73. package/cjs/extensions/forms/Field/Provider/FieldProvider.js.map +1 -0
  74. package/cjs/extensions/forms/{Form/FieldProps/FieldPropsContext.d.ts → Field/Provider/FieldProviderContext.d.ts} +3 -3
  75. package/cjs/extensions/forms/{Form/FieldProps/FieldPropsContext.js → Field/Provider/FieldProviderContext.js} +3 -3
  76. package/cjs/extensions/forms/Field/Provider/FieldProviderContext.js.map +1 -0
  77. package/cjs/extensions/forms/Field/Provider/FieldProviderDocs.d.ts +2 -0
  78. package/cjs/extensions/forms/{Form/FieldProps/FieldPropsDocs.js → Field/Provider/FieldProviderDocs.js} +4 -4
  79. package/cjs/extensions/forms/Field/Provider/FieldProviderDocs.js.map +1 -0
  80. package/cjs/extensions/forms/Field/Provider/index.d.ts +2 -0
  81. package/cjs/extensions/forms/{Form/FieldProps → Field/Provider}/index.js +5 -5
  82. package/cjs/extensions/forms/Field/Provider/index.js.map +1 -0
  83. package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +121 -0
  84. package/cjs/extensions/forms/{Form/FieldProps/FieldProps.js → Field/Provider/useFieldProvider.js} +34 -34
  85. package/cjs/extensions/forms/Field/Provider/useFieldProvider.js.map +1 -0
  86. package/cjs/extensions/forms/Field/index.d.ts +1 -0
  87. package/cjs/extensions/forms/Field/index.js +7 -0
  88. package/cjs/extensions/forms/Field/index.js.map +1 -1
  89. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +12 -1
  90. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  91. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +3 -3
  92. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  93. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +1 -1
  94. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  95. package/cjs/extensions/forms/Form/Element/Element.js +4 -4
  96. package/cjs/extensions/forms/Form/Element/Element.js.map +1 -1
  97. package/cjs/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  98. package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
  99. package/cjs/extensions/forms/Form/Isolation/Isolation.d.ts +2 -2
  100. package/cjs/extensions/forms/Form/Isolation/Isolation.js +1 -1
  101. package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  102. package/cjs/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +1 -1
  103. package/cjs/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
  104. package/cjs/extensions/forms/Form/Section/Section.d.ts +2 -1
  105. package/cjs/extensions/forms/Form/Section/Section.js +2 -2
  106. package/cjs/extensions/forms/Form/Section/Section.js.map +1 -1
  107. package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.d.ts +25 -0
  108. package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +153 -0
  109. package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -0
  110. package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmationDocs.d.ts +2 -0
  111. package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmationDocs.js +30 -0
  112. package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmationDocs.js.map +1 -0
  113. package/cjs/extensions/forms/Form/SubmitConfirmation/index.d.ts +2 -0
  114. package/cjs/extensions/forms/Form/SubmitConfirmation/index.js +27 -0
  115. package/cjs/extensions/forms/Form/SubmitConfirmation/index.js.map +1 -0
  116. package/cjs/extensions/forms/Form/Visibility/Visibility.js +3 -3
  117. package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  118. package/cjs/extensions/forms/Form/Visibility/VisibilityContext.d.ts +1 -0
  119. package/cjs/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -1
  120. package/cjs/extensions/forms/Form/Visibility/useVisibility.js +1 -1
  121. package/cjs/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  122. package/cjs/extensions/forms/Form/data-context/getData.js +1 -1
  123. package/cjs/extensions/forms/Form/data-context/getData.js.map +1 -1
  124. package/cjs/extensions/forms/Form/data-context/useData.d.ts +3 -2
  125. package/cjs/extensions/forms/Form/data-context/useData.js +13 -15
  126. package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
  127. package/{es/extensions/forms/Form/data-context/useError.d.ts → cjs/extensions/forms/Form/data-context/useValidation.d.ts} +3 -1
  128. package/cjs/extensions/forms/Form/data-context/useValidation.js +60 -0
  129. package/cjs/extensions/forms/Form/data-context/useValidation.js.map +1 -0
  130. package/cjs/extensions/forms/Form/index.d.ts +13 -2
  131. package/cjs/extensions/forms/Form/index.js +19 -9
  132. package/cjs/extensions/forms/Form/index.js.map +1 -1
  133. package/cjs/extensions/forms/Iterate/Array/Array.js +4 -12
  134. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  135. package/cjs/extensions/forms/Iterate/Count/Count.js +1 -1
  136. package/cjs/extensions/forms/Iterate/Count/Count.js.map +1 -1
  137. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js +2 -2
  138. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  139. package/cjs/extensions/forms/Tools/GenerateSchema.d.ts +1 -1
  140. package/cjs/extensions/forms/Tools/GenerateSchema.js +1 -1
  141. package/cjs/extensions/forms/Tools/GenerateSchema.js.map +1 -1
  142. package/cjs/extensions/forms/Tools/ListAllProps.d.ts +1 -1
  143. package/cjs/extensions/forms/Tools/ListAllProps.js +1 -1
  144. package/cjs/extensions/forms/Tools/ListAllProps.js.map +1 -1
  145. package/cjs/extensions/forms/Value/ArraySelection/ArraySelection.d.ts +3 -3
  146. package/cjs/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -1
  147. package/cjs/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js +2 -2
  148. package/cjs/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js.map +1 -1
  149. package/cjs/extensions/forms/Value/Currency/CurrencyDocs.d.ts +2 -0
  150. package/cjs/extensions/forms/Value/Currency/CurrencyDocs.js +28 -0
  151. package/cjs/extensions/forms/Value/Currency/CurrencyDocs.js.map +1 -0
  152. package/cjs/extensions/forms/Value/Date/Date.js +25 -16
  153. package/cjs/extensions/forms/Value/Date/Date.js.map +1 -1
  154. package/cjs/extensions/forms/Value/Number/NumberDocs.js +9 -2
  155. package/cjs/extensions/forms/Value/Number/NumberDocs.js.map +1 -1
  156. package/cjs/extensions/forms/Value/Provider/ValueProvider.d.ts +13 -0
  157. package/cjs/extensions/forms/Value/Provider/ValueProvider.js +27 -0
  158. package/cjs/extensions/forms/Value/Provider/ValueProvider.js.map +1 -0
  159. package/cjs/extensions/forms/Value/Provider/ValueProviderContext.d.ts +9 -0
  160. package/cjs/extensions/forms/Value/Provider/ValueProviderContext.js +15 -0
  161. package/cjs/extensions/forms/Value/Provider/ValueProviderContext.js.map +1 -0
  162. package/cjs/extensions/forms/Value/Provider/ValueProviderDocs.d.ts +3 -0
  163. package/cjs/extensions/forms/Value/Provider/ValueProviderDocs.js +23 -0
  164. package/cjs/extensions/forms/Value/Provider/ValueProviderDocs.js.map +1 -0
  165. package/cjs/extensions/forms/Value/Provider/index.d.ts +2 -0
  166. package/cjs/extensions/forms/Value/Provider/index.js +27 -0
  167. package/cjs/extensions/forms/Value/Provider/index.js.map +1 -0
  168. package/cjs/extensions/forms/Value/Provider/useValueProvider.d.ts +31 -0
  169. package/cjs/extensions/forms/Value/Provider/useValueProvider.js +50 -0
  170. package/cjs/extensions/forms/Value/Provider/useValueProvider.js.map +1 -0
  171. package/cjs/extensions/forms/Value/SummaryList/SummaryList.d.ts +4 -1
  172. package/cjs/extensions/forms/Value/SummaryList/SummaryList.js +11 -3
  173. package/cjs/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -1
  174. package/cjs/extensions/forms/Value/SummaryList/SummaryListDocs.d.ts +3 -0
  175. package/cjs/extensions/forms/Value/SummaryList/SummaryListDocs.js +37 -0
  176. package/cjs/extensions/forms/Value/SummaryList/SummaryListDocs.js.map +1 -0
  177. package/cjs/extensions/forms/Value/index.d.ts +3 -2
  178. package/cjs/extensions/forms/Value/index.js +9 -2
  179. package/cjs/extensions/forms/Value/index.js.map +1 -1
  180. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.css +2 -2
  181. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  182. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +2 -1
  183. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  184. package/cjs/extensions/forms/Wizard/Step/Step.js +2 -2
  185. package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
  186. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.css +2 -5
  187. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  188. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.scss +0 -4
  189. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.d.ts +1 -2
  190. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +13 -15
  191. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  192. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeDocs.js +0 -5
  193. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeDocs.js.map +1 -1
  194. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.d.ts +0 -2
  195. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js +0 -2
  196. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js.map +1 -1
  197. package/cjs/extensions/forms/hooks/useDataValue.d.ts +1 -1
  198. package/cjs/extensions/forms/hooks/useDataValue.js +1 -1
  199. package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
  200. package/cjs/extensions/forms/hooks/useExternalValue.js +1 -1
  201. package/cjs/extensions/forms/hooks/useExternalValue.js.map +1 -1
  202. package/cjs/extensions/forms/hooks/useFieldProps.d.ts +2 -1
  203. package/cjs/extensions/forms/hooks/useFieldProps.js +111 -56
  204. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  205. package/cjs/extensions/forms/hooks/usePath.js +7 -4
  206. package/cjs/extensions/forms/hooks/usePath.js.map +1 -1
  207. package/cjs/extensions/forms/hooks/useValueProps.d.ts +1 -1
  208. package/cjs/extensions/forms/hooks/useValueProps.js +7 -2
  209. package/cjs/extensions/forms/hooks/useValueProps.js.map +1 -1
  210. package/cjs/extensions/forms/style/dnb-forms.css +10 -21
  211. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  212. package/cjs/extensions/forms/types.d.ts +7 -3
  213. package/cjs/extensions/forms/types.js.map +1 -1
  214. package/cjs/extensions/forms/utils/ajv.d.ts +2 -1
  215. package/cjs/extensions/forms/utils/ajv.js +1 -1
  216. package/cjs/extensions/forms/utils/ajv.js.map +1 -1
  217. package/cjs/extensions/forms/utils/index.d.ts +1 -0
  218. package/cjs/extensions/forms/utils/index.js +12 -0
  219. package/cjs/extensions/forms/utils/index.js.map +1 -1
  220. package/cjs/extensions/forms/utils/json-pointer/export.d.ts +1 -0
  221. package/cjs/extensions/forms/utils/json-pointer/export.js +17 -0
  222. package/cjs/extensions/forms/utils/json-pointer/export.js.map +1 -0
  223. package/cjs/extensions/forms/utils/json-pointer/json-pointer.d.ts +43 -0
  224. package/cjs/extensions/forms/utils/json-pointer/json-pointer.js +139 -0
  225. package/cjs/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -0
  226. package/cjs/extensions/forms/utils/json-pointer.d.ts +3 -0
  227. package/cjs/extensions/forms/utils/json-pointer.js +24 -0
  228. package/cjs/extensions/forms/utils/json-pointer.js.map +1 -0
  229. package/cjs/shared/Context.d.ts +2 -0
  230. package/cjs/shared/Context.js +1 -1
  231. package/cjs/shared/Context.js.map +1 -1
  232. package/cjs/shared/Eufemia.d.ts +1 -1
  233. package/cjs/shared/Eufemia.js +2 -2
  234. package/cjs/shared/Eufemia.js.map +1 -1
  235. package/cjs/shared/MediaQueryUtils.d.ts +0 -1
  236. package/cjs/shared/MediaQueryUtils.js +17 -14
  237. package/cjs/shared/MediaQueryUtils.js.map +1 -1
  238. package/cjs/shared/helpers/extendPropsWithContext.js +3 -3
  239. package/cjs/shared/helpers/extendPropsWithContext.js.map +1 -1
  240. package/cjs/shared/helpers/withSnakeCaseProps.js.map +1 -1
  241. package/cjs/style/core/scopes.scss +1 -1
  242. package/cjs/style/core/utilities.scss +10 -5
  243. package/cjs/style/dnb-ui-basis.css +1 -1
  244. package/cjs/style/dnb-ui-basis.min.css +1 -1
  245. package/cjs/style/dnb-ui-body.css +1 -1
  246. package/cjs/style/dnb-ui-body.min.css +1 -1
  247. package/cjs/style/dnb-ui-components.css +42 -51
  248. package/cjs/style/dnb-ui-components.min.css +5 -5
  249. package/cjs/style/dnb-ui-core.css +1 -1
  250. package/cjs/style/dnb-ui-core.min.css +1 -1
  251. package/cjs/style/dnb-ui-elements.css +1 -1
  252. package/cjs/style/dnb-ui-elements.min.css +1 -1
  253. package/cjs/style/dnb-ui-extensions.css +10 -21
  254. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  255. package/cjs/style/dnb-ui-forms.css +10 -21
  256. package/cjs/style/dnb-ui-forms.min.css +1 -1
  257. package/cjs/style/dnb-ui-forms.scss +0 -1
  258. package/cjs/style/dnb-ui-fragments.css +2 -2
  259. package/cjs/style/dnb-ui-fragments.min.css +1 -1
  260. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +1 -1
  261. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  262. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +53 -73
  263. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +6 -6
  264. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.css +1 -1
  265. package/cjs/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  266. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +10 -21
  267. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  268. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +10 -21
  269. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  270. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +1 -1
  271. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  272. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +53 -73
  273. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +7 -7
  274. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -1
  275. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  276. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +10 -21
  277. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  278. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +10 -21
  279. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  280. package/cjs/style/themes/theme-ui/ui-theme-basis.css +1 -1
  281. package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  282. package/cjs/style/themes/theme-ui/ui-theme-components.css +53 -73
  283. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +6 -6
  284. package/cjs/style/themes/theme-ui/ui-theme-elements.css +1 -1
  285. package/cjs/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  286. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +10 -21
  287. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  288. package/cjs/style/themes/theme-ui/ui-theme-forms.css +10 -21
  289. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  290. package/cjs/style/themes/theme-ui/ui-theme-tags.css +1 -1
  291. package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  292. package/components/accordion/style/dnb-accordion.css +3 -3
  293. package/components/accordion/style/dnb-accordion.min.css +1 -1
  294. package/components/autocomplete/style/dnb-autocomplete.css +1 -1
  295. package/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
  296. package/components/breadcrumb/style/dnb-breadcrumb.css +1 -1
  297. package/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  298. package/components/button/Button.d.ts +2 -2
  299. package/components/card/style/dnb-card.css +1 -1
  300. package/components/card/style/dnb-card.min.css +1 -1
  301. package/components/date-picker/DatePicker.d.ts +13 -4
  302. package/components/drawer/style/dnb-drawer.css +3 -3
  303. package/components/drawer/style/dnb-drawer.min.css +1 -1
  304. package/components/dropdown/Dropdown.js +1 -1
  305. package/components/dropdown/Dropdown.js.map +1 -1
  306. package/components/dropdown/style/dnb-dropdown.css +8 -7
  307. package/components/dropdown/style/dnb-dropdown.min.css +1 -1
  308. package/components/dropdown/style/dnb-dropdown.scss +17 -17
  309. package/components/form-row/style/dnb-form-row.css +1 -1
  310. package/components/form-row/style/dnb-form-row.min.css +1 -1
  311. package/components/form-status/FormStatus.d.ts +1 -1
  312. package/components/grid/style/dnb-grid.css +6 -6
  313. package/components/grid/style/dnb-grid.min.css +1 -1
  314. package/components/icon/Icon.d.ts +1 -1
  315. package/components/icon/Icon.js.map +1 -1
  316. package/components/input-masked/InputMasked.d.ts +1 -1
  317. package/components/input-masked/InputMaskedDocs.js +1 -1
  318. package/components/input-masked/InputMaskedDocs.js.map +1 -1
  319. package/components/number-format/NumberFormat.d.ts +14 -28
  320. package/components/number-format/NumberFormat.js +6 -2
  321. package/components/number-format/NumberFormat.js.map +1 -1
  322. package/components/number-format/NumberFormatDocs.d.ts +3 -0
  323. package/components/number-format/NumberFormatDocs.js +153 -0
  324. package/components/number-format/NumberFormatDocs.js.map +1 -0
  325. package/components/number-format/NumberUtils.d.ts +21 -1
  326. package/components/number-format/NumberUtils.js +32 -8
  327. package/components/number-format/NumberUtils.js.map +1 -1
  328. package/components/pagination/Pagination.d.ts +1 -1
  329. package/components/section/style/dnb-section.css +2 -2
  330. package/components/section/style/dnb-section.min.css +2 -2
  331. package/components/space/style/dnb-space.css +2 -2
  332. package/components/space/style/dnb-space.min.css +1 -1
  333. package/components/switch/Switch.d.ts +100 -91
  334. package/components/switch/Switch.js +165 -238
  335. package/components/switch/Switch.js.map +1 -1
  336. package/components/switch/SwitchDocs.d.ts +3 -0
  337. package/components/switch/SwitchDocs.js +85 -0
  338. package/components/switch/SwitchDocs.js.map +1 -0
  339. package/components/tabs/style/dnb-tabs.css +1 -0
  340. package/components/tabs/style/dnb-tabs.min.css +1 -1
  341. package/components/tabs/style/dnb-tabs.scss +1 -0
  342. package/components/toggle-button/style/dnb-toggle-button.css +1 -1
  343. package/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  344. package/es/components/accordion/style/dnb-accordion.css +3 -3
  345. package/es/components/accordion/style/dnb-accordion.min.css +1 -1
  346. package/es/components/autocomplete/style/dnb-autocomplete.css +1 -1
  347. package/es/components/autocomplete/style/dnb-autocomplete.min.css +1 -1
  348. package/es/components/breadcrumb/style/dnb-breadcrumb.css +1 -1
  349. package/es/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  350. package/es/components/button/Button.d.ts +2 -2
  351. package/es/components/card/style/dnb-card.css +1 -1
  352. package/es/components/card/style/dnb-card.min.css +1 -1
  353. package/es/components/date-picker/DatePicker.d.ts +13 -4
  354. package/es/components/drawer/style/dnb-drawer.css +3 -3
  355. package/es/components/drawer/style/dnb-drawer.min.css +1 -1
  356. package/es/components/dropdown/Dropdown.js +1 -1
  357. package/es/components/dropdown/Dropdown.js.map +1 -1
  358. package/es/components/dropdown/style/dnb-dropdown.css +8 -7
  359. package/es/components/dropdown/style/dnb-dropdown.min.css +1 -1
  360. package/es/components/dropdown/style/dnb-dropdown.scss +17 -17
  361. package/es/components/form-row/style/dnb-form-row.css +1 -1
  362. package/es/components/form-row/style/dnb-form-row.min.css +1 -1
  363. package/es/components/form-status/FormStatus.d.ts +1 -1
  364. package/es/components/grid/style/dnb-grid.css +6 -6
  365. package/es/components/grid/style/dnb-grid.min.css +1 -1
  366. package/es/components/icon/Icon.d.ts +1 -1
  367. package/es/components/icon/Icon.js.map +1 -1
  368. package/es/components/input-masked/InputMasked.d.ts +1 -1
  369. package/es/components/input-masked/InputMaskedDocs.js +1 -1
  370. package/es/components/input-masked/InputMaskedDocs.js.map +1 -1
  371. package/es/components/number-format/NumberFormat.d.ts +14 -28
  372. package/es/components/number-format/NumberFormat.js +6 -2
  373. package/es/components/number-format/NumberFormat.js.map +1 -1
  374. package/es/components/number-format/NumberFormatDocs.d.ts +3 -0
  375. package/es/components/number-format/NumberFormatDocs.js +150 -0
  376. package/es/components/number-format/NumberFormatDocs.js.map +1 -0
  377. package/es/components/number-format/NumberUtils.d.ts +21 -1
  378. package/es/components/number-format/NumberUtils.js +31 -7
  379. package/es/components/number-format/NumberUtils.js.map +1 -1
  380. package/es/components/pagination/Pagination.d.ts +1 -1
  381. package/es/components/section/style/dnb-section.css +2 -2
  382. package/es/components/section/style/dnb-section.min.css +2 -2
  383. package/es/components/space/style/dnb-space.css +2 -2
  384. package/es/components/space/style/dnb-space.min.css +1 -1
  385. package/es/components/switch/Switch.d.ts +100 -91
  386. package/es/components/switch/Switch.js +164 -238
  387. package/es/components/switch/Switch.js.map +1 -1
  388. package/es/components/switch/SwitchDocs.d.ts +3 -0
  389. package/es/components/switch/SwitchDocs.js +85 -0
  390. package/es/components/switch/SwitchDocs.js.map +1 -0
  391. package/es/components/tabs/style/dnb-tabs.css +1 -0
  392. package/es/components/tabs/style/dnb-tabs.min.css +1 -1
  393. package/es/components/tabs/style/dnb-tabs.scss +1 -0
  394. package/es/components/toggle-button/style/dnb-toggle-button.css +1 -1
  395. package/es/components/toggle-button/style/dnb-toggle-button.min.css +1 -1
  396. package/es/extensions/forms/DataContext/At/At.js +1 -1
  397. package/es/extensions/forms/DataContext/At/At.js.map +1 -1
  398. package/es/extensions/forms/DataContext/Context.d.ts +20 -9
  399. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  400. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +1 -1
  401. package/es/extensions/forms/DataContext/Provider/Provider.js +100 -58
  402. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  403. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +1 -1
  404. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  405. package/es/extensions/forms/Field/Date/Date.d.ts +6 -0
  406. package/es/extensions/forms/Field/Date/Date.js +20 -4
  407. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  408. package/{cjs/extensions/forms/Form/FieldProps/FieldPropsDocs.d.ts → es/extensions/forms/Field/Date/DateDocs.d.ts} +1 -1
  409. package/es/extensions/forms/Field/Date/DateDocs.js +13 -0
  410. package/es/extensions/forms/Field/Date/DateDocs.js.map +1 -0
  411. package/es/extensions/forms/Field/Indeterminate/useDependencePaths.js +1 -1
  412. package/es/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -1
  413. package/{extensions/forms/Form/FieldProps/FieldProps.d.ts → es/extensions/forms/Field/Provider/FieldProvider.d.ts} +5 -7
  414. package/es/extensions/forms/Field/Provider/FieldProvider.js +24 -0
  415. package/es/extensions/forms/Field/Provider/FieldProvider.js.map +1 -0
  416. package/{extensions/forms/Form/FieldProps/FieldPropsContext.d.ts → es/extensions/forms/Field/Provider/FieldProviderContext.d.ts} +3 -3
  417. package/es/extensions/forms/Field/Provider/FieldProviderContext.js +7 -0
  418. package/es/extensions/forms/Field/Provider/FieldProviderContext.js.map +1 -0
  419. package/es/extensions/forms/Field/Provider/FieldProviderDocs.d.ts +2 -0
  420. package/{extensions/forms/Form/FieldProps/FieldPropsDocs.js → es/extensions/forms/Field/Provider/FieldProviderDocs.js} +2 -2
  421. package/es/extensions/forms/Field/Provider/FieldProviderDocs.js.map +1 -0
  422. package/es/extensions/forms/Field/Provider/index.d.ts +2 -0
  423. package/es/extensions/forms/Field/Provider/index.js +3 -0
  424. package/es/extensions/forms/Field/Provider/index.js.map +1 -0
  425. package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +121 -0
  426. package/es/extensions/forms/{Form/FieldProps/FieldProps.js → Field/Provider/useFieldProvider.js} +34 -32
  427. package/es/extensions/forms/Field/Provider/useFieldProvider.js.map +1 -0
  428. package/es/extensions/forms/Field/index.d.ts +1 -0
  429. package/es/extensions/forms/Field/index.js +1 -0
  430. package/es/extensions/forms/Field/index.js.map +1 -1
  431. package/es/extensions/forms/FieldBlock/FieldBlock.js +12 -1
  432. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  433. package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +3 -3
  434. package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  435. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +1 -1
  436. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  437. package/es/extensions/forms/Form/Element/Element.js +4 -4
  438. package/es/extensions/forms/Form/Element/Element.js.map +1 -1
  439. package/es/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  440. package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
  441. package/es/extensions/forms/Form/Isolation/Isolation.d.ts +2 -2
  442. package/es/extensions/forms/Form/Isolation/Isolation.js +1 -1
  443. package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  444. package/es/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +1 -1
  445. package/es/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
  446. package/es/extensions/forms/Form/Section/Section.d.ts +2 -1
  447. package/es/extensions/forms/Form/Section/Section.js +1 -1
  448. package/es/extensions/forms/Form/Section/Section.js.map +1 -1
  449. package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.d.ts +25 -0
  450. package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +140 -0
  451. package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -0
  452. package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmationDocs.d.ts +2 -0
  453. package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmationDocs.js +23 -0
  454. package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmationDocs.js.map +1 -0
  455. package/es/extensions/forms/Form/SubmitConfirmation/index.d.ts +2 -0
  456. package/es/extensions/forms/Form/SubmitConfirmation/index.js +3 -0
  457. package/es/extensions/forms/Form/SubmitConfirmation/index.js.map +1 -0
  458. package/es/extensions/forms/Form/Visibility/Visibility.js +3 -3
  459. package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  460. package/es/extensions/forms/Form/Visibility/VisibilityContext.d.ts +1 -0
  461. package/es/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -1
  462. package/es/extensions/forms/Form/Visibility/useVisibility.js +1 -1
  463. package/es/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  464. package/es/extensions/forms/Form/data-context/getData.js +1 -1
  465. package/es/extensions/forms/Form/data-context/getData.js.map +1 -1
  466. package/es/extensions/forms/Form/data-context/useData.d.ts +3 -2
  467. package/es/extensions/forms/Form/data-context/useData.js +13 -15
  468. package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
  469. package/{extensions/forms/Form/data-context/useError.d.ts → es/extensions/forms/Form/data-context/useValidation.d.ts} +3 -1
  470. package/es/extensions/forms/Form/data-context/useValidation.js +52 -0
  471. package/es/extensions/forms/Form/data-context/useValidation.js.map +1 -0
  472. package/es/extensions/forms/Form/index.d.ts +13 -2
  473. package/es/extensions/forms/Form/index.js +5 -2
  474. package/es/extensions/forms/Form/index.js.map +1 -1
  475. package/es/extensions/forms/Iterate/Array/Array.js +4 -12
  476. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  477. package/es/extensions/forms/Iterate/Count/Count.js +1 -1
  478. package/es/extensions/forms/Iterate/Count/Count.js.map +1 -1
  479. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js +2 -2
  480. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  481. package/es/extensions/forms/Tools/GenerateSchema.d.ts +1 -1
  482. package/es/extensions/forms/Tools/GenerateSchema.js +1 -1
  483. package/es/extensions/forms/Tools/GenerateSchema.js.map +1 -1
  484. package/es/extensions/forms/Tools/ListAllProps.d.ts +1 -1
  485. package/es/extensions/forms/Tools/ListAllProps.js +1 -1
  486. package/es/extensions/forms/Tools/ListAllProps.js.map +1 -1
  487. package/es/extensions/forms/Value/ArraySelection/ArraySelection.d.ts +3 -3
  488. package/es/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -1
  489. package/es/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js +2 -2
  490. package/es/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js.map +1 -1
  491. package/es/extensions/forms/Value/Currency/CurrencyDocs.d.ts +2 -0
  492. package/es/extensions/forms/Value/Currency/CurrencyDocs.js +19 -0
  493. package/es/extensions/forms/Value/Currency/CurrencyDocs.js.map +1 -0
  494. package/es/extensions/forms/Value/Date/Date.js +25 -16
  495. package/es/extensions/forms/Value/Date/Date.js.map +1 -1
  496. package/es/extensions/forms/Value/Number/NumberDocs.js +7 -2
  497. package/es/extensions/forms/Value/Number/NumberDocs.js.map +1 -1
  498. package/es/extensions/forms/Value/Provider/ValueProvider.d.ts +13 -0
  499. package/es/extensions/forms/Value/Provider/ValueProvider.js +18 -0
  500. package/es/extensions/forms/Value/Provider/ValueProvider.js.map +1 -0
  501. package/es/extensions/forms/Value/Provider/ValueProviderContext.d.ts +9 -0
  502. package/es/extensions/forms/Value/Provider/ValueProviderContext.js +7 -0
  503. package/es/extensions/forms/Value/Provider/ValueProviderContext.js.map +1 -0
  504. package/es/extensions/forms/Value/Provider/ValueProviderDocs.d.ts +3 -0
  505. package/es/extensions/forms/Value/Provider/ValueProviderDocs.js +13 -0
  506. package/es/extensions/forms/Value/Provider/ValueProviderDocs.js.map +1 -0
  507. package/es/extensions/forms/Value/Provider/index.d.ts +2 -0
  508. package/es/extensions/forms/Value/Provider/index.js +3 -0
  509. package/es/extensions/forms/Value/Provider/index.js.map +1 -0
  510. package/es/extensions/forms/Value/Provider/useValueProvider.d.ts +31 -0
  511. package/es/extensions/forms/Value/Provider/useValueProvider.js +40 -0
  512. package/es/extensions/forms/Value/Provider/useValueProvider.js.map +1 -0
  513. package/es/extensions/forms/Value/SummaryList/SummaryList.d.ts +4 -1
  514. package/es/extensions/forms/Value/SummaryList/SummaryList.js +11 -3
  515. package/es/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -1
  516. package/es/extensions/forms/Value/SummaryList/SummaryListDocs.d.ts +3 -0
  517. package/es/extensions/forms/Value/SummaryList/SummaryListDocs.js +29 -0
  518. package/es/extensions/forms/Value/SummaryList/SummaryListDocs.js.map +1 -0
  519. package/es/extensions/forms/Value/index.d.ts +3 -2
  520. package/es/extensions/forms/Value/index.js +3 -2
  521. package/es/extensions/forms/Value/index.js.map +1 -1
  522. package/es/extensions/forms/ValueBlock/style/dnb-value-block.css +2 -2
  523. package/es/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  524. package/es/extensions/forms/Wizard/Container/WizardContainer.js +2 -1
  525. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  526. package/es/extensions/forms/Wizard/Step/Step.js +2 -2
  527. package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
  528. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.css +2 -5
  529. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  530. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.scss +0 -4
  531. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.d.ts +1 -2
  532. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +13 -15
  533. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  534. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeDocs.js +0 -5
  535. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeDocs.js.map +1 -1
  536. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.d.ts +0 -2
  537. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js +0 -2
  538. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js.map +1 -1
  539. package/es/extensions/forms/hooks/useDataValue.d.ts +1 -1
  540. package/es/extensions/forms/hooks/useDataValue.js +1 -1
  541. package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
  542. package/es/extensions/forms/hooks/useExternalValue.js +1 -1
  543. package/es/extensions/forms/hooks/useExternalValue.js.map +1 -1
  544. package/es/extensions/forms/hooks/useFieldProps.d.ts +2 -1
  545. package/es/extensions/forms/hooks/useFieldProps.js +111 -56
  546. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  547. package/es/extensions/forms/hooks/usePath.js +7 -4
  548. package/es/extensions/forms/hooks/usePath.js.map +1 -1
  549. package/es/extensions/forms/hooks/useValueProps.d.ts +1 -1
  550. package/es/extensions/forms/hooks/useValueProps.js +7 -2
  551. package/es/extensions/forms/hooks/useValueProps.js.map +1 -1
  552. package/es/extensions/forms/style/dnb-forms.css +10 -21
  553. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  554. package/es/extensions/forms/types.d.ts +7 -3
  555. package/es/extensions/forms/types.js.map +1 -1
  556. package/es/extensions/forms/utils/ajv.d.ts +2 -1
  557. package/es/extensions/forms/utils/ajv.js +1 -1
  558. package/es/extensions/forms/utils/ajv.js.map +1 -1
  559. package/es/extensions/forms/utils/index.d.ts +1 -0
  560. package/es/extensions/forms/utils/index.js +1 -0
  561. package/es/extensions/forms/utils/index.js.map +1 -1
  562. package/es/extensions/forms/utils/json-pointer/export.d.ts +1 -0
  563. package/es/extensions/forms/utils/json-pointer/export.js +1 -0
  564. package/es/extensions/forms/utils/json-pointer/export.js.map +1 -0
  565. package/es/extensions/forms/utils/json-pointer/json-pointer.d.ts +43 -0
  566. package/es/extensions/forms/utils/json-pointer/json-pointer.js +122 -0
  567. package/es/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -0
  568. package/es/extensions/forms/utils/json-pointer.d.ts +3 -0
  569. package/es/extensions/forms/utils/json-pointer.js +4 -0
  570. package/es/extensions/forms/utils/json-pointer.js.map +1 -0
  571. package/es/shared/Context.d.ts +2 -0
  572. package/es/shared/Context.js +1 -1
  573. package/es/shared/Context.js.map +1 -1
  574. package/es/shared/Eufemia.d.ts +1 -1
  575. package/es/shared/Eufemia.js +2 -2
  576. package/es/shared/Eufemia.js.map +1 -1
  577. package/es/shared/MediaQueryUtils.d.ts +0 -1
  578. package/es/shared/MediaQueryUtils.js +17 -14
  579. package/es/shared/MediaQueryUtils.js.map +1 -1
  580. package/es/shared/helpers/extendPropsWithContext.js +3 -3
  581. package/es/shared/helpers/extendPropsWithContext.js.map +1 -1
  582. package/es/shared/helpers/withSnakeCaseProps.js.map +1 -1
  583. package/es/style/core/scopes.scss +1 -1
  584. package/es/style/core/utilities.scss +10 -5
  585. package/es/style/dnb-ui-basis.css +1 -1
  586. package/es/style/dnb-ui-basis.min.css +1 -1
  587. package/es/style/dnb-ui-body.css +1 -1
  588. package/es/style/dnb-ui-body.min.css +1 -1
  589. package/es/style/dnb-ui-components.css +42 -51
  590. package/es/style/dnb-ui-components.min.css +5 -5
  591. package/es/style/dnb-ui-core.css +1 -1
  592. package/es/style/dnb-ui-core.min.css +1 -1
  593. package/es/style/dnb-ui-elements.css +1 -1
  594. package/es/style/dnb-ui-elements.min.css +1 -1
  595. package/es/style/dnb-ui-extensions.css +10 -21
  596. package/es/style/dnb-ui-extensions.min.css +1 -1
  597. package/es/style/dnb-ui-forms.css +10 -21
  598. package/es/style/dnb-ui-forms.min.css +1 -1
  599. package/es/style/dnb-ui-forms.scss +0 -1
  600. package/es/style/dnb-ui-fragments.css +2 -2
  601. package/es/style/dnb-ui-fragments.min.css +1 -1
  602. package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +1 -1
  603. package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  604. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +53 -73
  605. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +6 -6
  606. package/es/style/themes/theme-eiendom/eiendom-theme-elements.css +1 -1
  607. package/es/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  608. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +10 -21
  609. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  610. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +10 -21
  611. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  612. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +1 -1
  613. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  614. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +53 -73
  615. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +7 -7
  616. package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -1
  617. package/es/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  618. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +10 -21
  619. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  620. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +10 -21
  621. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  622. package/es/style/themes/theme-ui/ui-theme-basis.css +1 -1
  623. package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  624. package/es/style/themes/theme-ui/ui-theme-components.css +53 -73
  625. package/es/style/themes/theme-ui/ui-theme-components.min.css +6 -6
  626. package/es/style/themes/theme-ui/ui-theme-elements.css +1 -1
  627. package/es/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  628. package/es/style/themes/theme-ui/ui-theme-extensions.css +10 -21
  629. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  630. package/es/style/themes/theme-ui/ui-theme-forms.css +10 -21
  631. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  632. package/es/style/themes/theme-ui/ui-theme-tags.css +1 -1
  633. package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  634. package/esm/dnb-ui-basis.min.mjs +1 -1
  635. package/esm/dnb-ui-components.min.mjs +1 -1
  636. package/esm/dnb-ui-elements.min.mjs +1 -1
  637. package/esm/dnb-ui-extensions.min.mjs +5 -5
  638. package/esm/dnb-ui-lib.min.mjs +1 -1
  639. package/extensions/forms/DataContext/At/At.js +1 -1
  640. package/extensions/forms/DataContext/At/At.js.map +1 -1
  641. package/extensions/forms/DataContext/Context.d.ts +20 -9
  642. package/extensions/forms/DataContext/Context.js.map +1 -1
  643. package/extensions/forms/DataContext/Provider/Provider.d.ts +1 -1
  644. package/extensions/forms/DataContext/Provider/Provider.js +104 -59
  645. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  646. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +1 -1
  647. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  648. package/extensions/forms/Field/Date/Date.d.ts +6 -0
  649. package/extensions/forms/Field/Date/Date.js +20 -4
  650. package/extensions/forms/Field/Date/Date.js.map +1 -1
  651. package/{es/extensions/forms/Form/FieldProps/FieldPropsDocs.d.ts → extensions/forms/Field/Date/DateDocs.d.ts} +1 -1
  652. package/extensions/forms/Field/Date/DateDocs.js +13 -0
  653. package/extensions/forms/Field/Date/DateDocs.js.map +1 -0
  654. package/extensions/forms/Field/Indeterminate/useDependencePaths.js +1 -1
  655. package/extensions/forms/Field/Indeterminate/useDependencePaths.js.map +1 -1
  656. package/{cjs/extensions/forms/Form/FieldProps/FieldProps.d.ts → extensions/forms/Field/Provider/FieldProvider.d.ts} +5 -7
  657. package/extensions/forms/Field/Provider/FieldProvider.js +24 -0
  658. package/extensions/forms/Field/Provider/FieldProvider.js.map +1 -0
  659. package/{es/extensions/forms/Form/FieldProps/FieldPropsContext.d.ts → extensions/forms/Field/Provider/FieldProviderContext.d.ts} +3 -3
  660. package/extensions/forms/Field/Provider/FieldProviderContext.js +7 -0
  661. package/extensions/forms/Field/Provider/FieldProviderContext.js.map +1 -0
  662. package/extensions/forms/Field/Provider/FieldProviderDocs.d.ts +2 -0
  663. package/{es/extensions/forms/Form/FieldProps/FieldPropsDocs.js → extensions/forms/Field/Provider/FieldProviderDocs.js} +2 -2
  664. package/extensions/forms/Field/Provider/FieldProviderDocs.js.map +1 -0
  665. package/extensions/forms/Field/Provider/index.d.ts +2 -0
  666. package/extensions/forms/Field/Provider/index.js +3 -0
  667. package/extensions/forms/Field/Provider/index.js.map +1 -0
  668. package/extensions/forms/Field/Provider/useFieldProvider.d.ts +121 -0
  669. package/extensions/forms/{Form/FieldProps/FieldProps.js → Field/Provider/useFieldProvider.js} +34 -32
  670. package/extensions/forms/Field/Provider/useFieldProvider.js.map +1 -0
  671. package/extensions/forms/Field/index.d.ts +1 -0
  672. package/extensions/forms/Field/index.js +1 -0
  673. package/extensions/forms/Field/index.js.map +1 -1
  674. package/extensions/forms/FieldBlock/FieldBlock.js +12 -1
  675. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  676. package/extensions/forms/FieldBlock/style/dnb-field-block.css +3 -3
  677. package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  678. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +1 -1
  679. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  680. package/extensions/forms/Form/Element/Element.js +4 -4
  681. package/extensions/forms/Form/Element/Element.js.map +1 -1
  682. package/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  683. package/extensions/forms/Form/Handler/Handler.js.map +1 -1
  684. package/extensions/forms/Form/Isolation/Isolation.d.ts +2 -2
  685. package/extensions/forms/Form/Isolation/Isolation.js +1 -1
  686. package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  687. package/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.css +1 -1
  688. package/extensions/forms/Form/MainHeading/style/dnb-form-main-heading.min.css +1 -1
  689. package/extensions/forms/Form/Section/Section.d.ts +2 -1
  690. package/extensions/forms/Form/Section/Section.js +1 -1
  691. package/extensions/forms/Form/Section/Section.js.map +1 -1
  692. package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.d.ts +25 -0
  693. package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +142 -0
  694. package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -0
  695. package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmationDocs.d.ts +2 -0
  696. package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmationDocs.js +23 -0
  697. package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmationDocs.js.map +1 -0
  698. package/extensions/forms/Form/SubmitConfirmation/index.d.ts +2 -0
  699. package/extensions/forms/Form/SubmitConfirmation/index.js +3 -0
  700. package/extensions/forms/Form/SubmitConfirmation/index.js.map +1 -0
  701. package/extensions/forms/Form/Visibility/Visibility.js +3 -3
  702. package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  703. package/extensions/forms/Form/Visibility/VisibilityContext.d.ts +1 -0
  704. package/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -1
  705. package/extensions/forms/Form/Visibility/useVisibility.js +1 -1
  706. package/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  707. package/extensions/forms/Form/data-context/getData.js +1 -1
  708. package/extensions/forms/Form/data-context/getData.js.map +1 -1
  709. package/extensions/forms/Form/data-context/useData.d.ts +3 -2
  710. package/extensions/forms/Form/data-context/useData.js +13 -15
  711. package/extensions/forms/Form/data-context/useData.js.map +1 -1
  712. package/{cjs/extensions/forms/Form/data-context/useError.d.ts → extensions/forms/Form/data-context/useValidation.d.ts} +3 -1
  713. package/extensions/forms/Form/data-context/useValidation.js +54 -0
  714. package/extensions/forms/Form/data-context/useValidation.js.map +1 -0
  715. package/extensions/forms/Form/index.d.ts +13 -2
  716. package/extensions/forms/Form/index.js +5 -2
  717. package/extensions/forms/Form/index.js.map +1 -1
  718. package/extensions/forms/Iterate/Array/Array.js +4 -12
  719. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  720. package/extensions/forms/Iterate/Count/Count.js +1 -1
  721. package/extensions/forms/Iterate/Count/Count.js.map +1 -1
  722. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js +2 -2
  723. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  724. package/extensions/forms/Tools/GenerateSchema.d.ts +1 -1
  725. package/extensions/forms/Tools/GenerateSchema.js +1 -1
  726. package/extensions/forms/Tools/GenerateSchema.js.map +1 -1
  727. package/extensions/forms/Tools/ListAllProps.d.ts +1 -1
  728. package/extensions/forms/Tools/ListAllProps.js +1 -1
  729. package/extensions/forms/Tools/ListAllProps.js.map +1 -1
  730. package/extensions/forms/Value/ArraySelection/ArraySelection.d.ts +3 -3
  731. package/extensions/forms/Value/ArraySelection/ArraySelection.js.map +1 -1
  732. package/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js +2 -2
  733. package/extensions/forms/Value/ArraySelection/ArraySelectionDocs.js.map +1 -1
  734. package/extensions/forms/Value/Currency/CurrencyDocs.d.ts +2 -0
  735. package/extensions/forms/Value/Currency/CurrencyDocs.js +19 -0
  736. package/extensions/forms/Value/Currency/CurrencyDocs.js.map +1 -0
  737. package/extensions/forms/Value/Date/Date.js +25 -16
  738. package/extensions/forms/Value/Date/Date.js.map +1 -1
  739. package/extensions/forms/Value/Number/NumberDocs.js +7 -2
  740. package/extensions/forms/Value/Number/NumberDocs.js.map +1 -1
  741. package/extensions/forms/Value/Provider/ValueProvider.d.ts +13 -0
  742. package/extensions/forms/Value/Provider/ValueProvider.js +18 -0
  743. package/extensions/forms/Value/Provider/ValueProvider.js.map +1 -0
  744. package/extensions/forms/Value/Provider/ValueProviderContext.d.ts +9 -0
  745. package/extensions/forms/Value/Provider/ValueProviderContext.js +7 -0
  746. package/extensions/forms/Value/Provider/ValueProviderContext.js.map +1 -0
  747. package/extensions/forms/Value/Provider/ValueProviderDocs.d.ts +3 -0
  748. package/extensions/forms/Value/Provider/ValueProviderDocs.js +13 -0
  749. package/extensions/forms/Value/Provider/ValueProviderDocs.js.map +1 -0
  750. package/extensions/forms/Value/Provider/index.d.ts +2 -0
  751. package/extensions/forms/Value/Provider/index.js +3 -0
  752. package/extensions/forms/Value/Provider/index.js.map +1 -0
  753. package/extensions/forms/Value/Provider/useValueProvider.d.ts +31 -0
  754. package/extensions/forms/Value/Provider/useValueProvider.js +40 -0
  755. package/extensions/forms/Value/Provider/useValueProvider.js.map +1 -0
  756. package/extensions/forms/Value/SummaryList/SummaryList.d.ts +4 -1
  757. package/extensions/forms/Value/SummaryList/SummaryList.js +11 -3
  758. package/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -1
  759. package/extensions/forms/Value/SummaryList/SummaryListDocs.d.ts +3 -0
  760. package/extensions/forms/Value/SummaryList/SummaryListDocs.js +29 -0
  761. package/extensions/forms/Value/SummaryList/SummaryListDocs.js.map +1 -0
  762. package/extensions/forms/Value/index.d.ts +3 -2
  763. package/extensions/forms/Value/index.js +3 -2
  764. package/extensions/forms/Value/index.js.map +1 -1
  765. package/extensions/forms/ValueBlock/style/dnb-value-block.css +2 -2
  766. package/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  767. package/extensions/forms/Wizard/Container/WizardContainer.js +2 -1
  768. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  769. package/extensions/forms/Wizard/Step/Step.js +2 -2
  770. package/extensions/forms/Wizard/Step/Step.js.map +1 -1
  771. package/extensions/forms/Wizard/style/dnb-wizard-layout.css +2 -5
  772. package/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  773. package/extensions/forms/Wizard/style/dnb-wizard-layout.scss +0 -4
  774. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.d.ts +1 -2
  775. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +13 -15
  776. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  777. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeDocs.js +0 -5
  778. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeDocs.js.map +1 -1
  779. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.d.ts +0 -2
  780. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js +0 -2
  781. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js.map +1 -1
  782. package/extensions/forms/hooks/useDataValue.d.ts +1 -1
  783. package/extensions/forms/hooks/useDataValue.js +1 -1
  784. package/extensions/forms/hooks/useDataValue.js.map +1 -1
  785. package/extensions/forms/hooks/useExternalValue.js +1 -1
  786. package/extensions/forms/hooks/useExternalValue.js.map +1 -1
  787. package/extensions/forms/hooks/useFieldProps.d.ts +2 -1
  788. package/extensions/forms/hooks/useFieldProps.js +111 -56
  789. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  790. package/extensions/forms/hooks/usePath.js +7 -4
  791. package/extensions/forms/hooks/usePath.js.map +1 -1
  792. package/extensions/forms/hooks/useValueProps.d.ts +1 -1
  793. package/extensions/forms/hooks/useValueProps.js +7 -2
  794. package/extensions/forms/hooks/useValueProps.js.map +1 -1
  795. package/extensions/forms/style/dnb-forms.css +10 -21
  796. package/extensions/forms/style/dnb-forms.min.css +1 -1
  797. package/extensions/forms/types.d.ts +7 -3
  798. package/extensions/forms/types.js.map +1 -1
  799. package/extensions/forms/utils/ajv.d.ts +2 -1
  800. package/extensions/forms/utils/ajv.js +1 -1
  801. package/extensions/forms/utils/ajv.js.map +1 -1
  802. package/extensions/forms/utils/index.d.ts +1 -0
  803. package/extensions/forms/utils/index.js +1 -0
  804. package/extensions/forms/utils/index.js.map +1 -1
  805. package/extensions/forms/utils/json-pointer/export.d.ts +1 -0
  806. package/extensions/forms/utils/json-pointer/export.js +1 -0
  807. package/extensions/forms/utils/json-pointer/export.js.map +1 -0
  808. package/extensions/forms/utils/json-pointer/json-pointer.d.ts +43 -0
  809. package/extensions/forms/utils/json-pointer/json-pointer.js +124 -0
  810. package/extensions/forms/utils/json-pointer/json-pointer.js.map +1 -0
  811. package/extensions/forms/utils/json-pointer.d.ts +3 -0
  812. package/extensions/forms/utils/json-pointer.js +4 -0
  813. package/extensions/forms/utils/json-pointer.js.map +1 -0
  814. package/package.json +1 -2
  815. package/shared/Context.d.ts +2 -0
  816. package/shared/Context.js +1 -1
  817. package/shared/Context.js.map +1 -1
  818. package/shared/Eufemia.d.ts +1 -1
  819. package/shared/Eufemia.js +2 -2
  820. package/shared/Eufemia.js.map +1 -1
  821. package/shared/MediaQueryUtils.d.ts +0 -1
  822. package/shared/MediaQueryUtils.js +17 -14
  823. package/shared/MediaQueryUtils.js.map +1 -1
  824. package/shared/helpers/extendPropsWithContext.js +3 -3
  825. package/shared/helpers/extendPropsWithContext.js.map +1 -1
  826. package/shared/helpers/withSnakeCaseProps.js.map +1 -1
  827. package/style/core/scopes.scss +1 -1
  828. package/style/core/utilities.scss +10 -5
  829. package/style/dnb-ui-basis.css +1 -1
  830. package/style/dnb-ui-basis.min.css +1 -1
  831. package/style/dnb-ui-body.css +1 -1
  832. package/style/dnb-ui-body.min.css +1 -1
  833. package/style/dnb-ui-components.css +42 -51
  834. package/style/dnb-ui-components.min.css +5 -5
  835. package/style/dnb-ui-core.css +1 -1
  836. package/style/dnb-ui-core.min.css +1 -1
  837. package/style/dnb-ui-elements.css +1 -1
  838. package/style/dnb-ui-elements.min.css +1 -1
  839. package/style/dnb-ui-extensions.css +10 -21
  840. package/style/dnb-ui-extensions.min.css +1 -1
  841. package/style/dnb-ui-forms.css +10 -21
  842. package/style/dnb-ui-forms.min.css +1 -1
  843. package/style/dnb-ui-forms.scss +0 -1
  844. package/style/dnb-ui-fragments.css +2 -2
  845. package/style/dnb-ui-fragments.min.css +1 -1
  846. package/style/themes/theme-eiendom/eiendom-theme-basis.css +1 -1
  847. package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  848. package/style/themes/theme-eiendom/eiendom-theme-components.css +53 -73
  849. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +6 -6
  850. package/style/themes/theme-eiendom/eiendom-theme-elements.css +1 -1
  851. package/style/themes/theme-eiendom/eiendom-theme-elements.min.css +1 -1
  852. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +10 -21
  853. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  854. package/style/themes/theme-eiendom/eiendom-theme-forms.css +10 -21
  855. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  856. package/style/themes/theme-sbanken/sbanken-theme-basis.css +1 -1
  857. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  858. package/style/themes/theme-sbanken/sbanken-theme-components.css +53 -73
  859. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +7 -7
  860. package/style/themes/theme-sbanken/sbanken-theme-elements.css +1 -1
  861. package/style/themes/theme-sbanken/sbanken-theme-elements.min.css +1 -1
  862. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +10 -21
  863. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  864. package/style/themes/theme-sbanken/sbanken-theme-forms.css +10 -21
  865. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  866. package/style/themes/theme-ui/ui-theme-basis.css +1 -1
  867. package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  868. package/style/themes/theme-ui/ui-theme-components.css +53 -73
  869. package/style/themes/theme-ui/ui-theme-components.min.css +6 -6
  870. package/style/themes/theme-ui/ui-theme-elements.css +1 -1
  871. package/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  872. package/style/themes/theme-ui/ui-theme-extensions.css +10 -21
  873. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  874. package/style/themes/theme-ui/ui-theme-forms.css +10 -21
  875. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  876. package/style/themes/theme-ui/ui-theme-tags.css +1 -1
  877. package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  878. package/umd/dnb-ui-basis.min.js +1 -1
  879. package/umd/dnb-ui-components.min.js +1 -1
  880. package/umd/dnb-ui-elements.min.js +1 -1
  881. package/umd/dnb-ui-extensions.min.js +5 -5
  882. package/umd/dnb-ui-lib.min.js +1 -1
  883. package/cjs/extensions/forms/Form/Element/style/dnb-form-element.css +0 -7
  884. package/cjs/extensions/forms/Form/Element/style/dnb-form-element.min.css +0 -1
  885. package/cjs/extensions/forms/Form/Element/style/dnb-form-element.scss +0 -9
  886. package/cjs/extensions/forms/Form/FieldProps/FieldProps.js.map +0 -1
  887. package/cjs/extensions/forms/Form/FieldProps/FieldPropsContext.js.map +0 -1
  888. package/cjs/extensions/forms/Form/FieldProps/FieldPropsDocs.js.map +0 -1
  889. package/cjs/extensions/forms/Form/FieldProps/index.d.ts +0 -2
  890. package/cjs/extensions/forms/Form/FieldProps/index.js.map +0 -1
  891. package/cjs/extensions/forms/Form/data-context/useError.js +0 -33
  892. package/cjs/extensions/forms/Form/data-context/useError.js.map +0 -1
  893. package/es/extensions/forms/Form/Element/style/dnb-form-element.css +0 -7
  894. package/es/extensions/forms/Form/Element/style/dnb-form-element.min.css +0 -1
  895. package/es/extensions/forms/Form/Element/style/dnb-form-element.scss +0 -9
  896. package/es/extensions/forms/Form/FieldProps/FieldProps.js.map +0 -1
  897. package/es/extensions/forms/Form/FieldProps/FieldPropsContext.js +0 -7
  898. package/es/extensions/forms/Form/FieldProps/FieldPropsContext.js.map +0 -1
  899. package/es/extensions/forms/Form/FieldProps/FieldPropsDocs.js.map +0 -1
  900. package/es/extensions/forms/Form/FieldProps/index.d.ts +0 -2
  901. package/es/extensions/forms/Form/FieldProps/index.js +0 -3
  902. package/es/extensions/forms/Form/FieldProps/index.js.map +0 -1
  903. package/es/extensions/forms/Form/data-context/useError.js +0 -26
  904. package/es/extensions/forms/Form/data-context/useError.js.map +0 -1
  905. package/extensions/forms/Form/Element/style/dnb-form-element.css +0 -7
  906. package/extensions/forms/Form/Element/style/dnb-form-element.min.css +0 -1
  907. package/extensions/forms/Form/Element/style/dnb-form-element.scss +0 -9
  908. package/extensions/forms/Form/FieldProps/FieldProps.js.map +0 -1
  909. package/extensions/forms/Form/FieldProps/FieldPropsContext.js +0 -7
  910. package/extensions/forms/Form/FieldProps/FieldPropsContext.js.map +0 -1
  911. package/extensions/forms/Form/FieldProps/FieldPropsDocs.js.map +0 -1
  912. package/extensions/forms/Form/FieldProps/index.d.ts +0 -2
  913. package/extensions/forms/Form/FieldProps/index.js +0 -3
  914. package/extensions/forms/Form/FieldProps/index.js.map +0 -1
  915. package/extensions/forms/Form/data-context/useError.js +0 -27
  916. package/extensions/forms/Form/data-context/useError.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.js","names":["React","useRef","useMemo","useCallback","useReducer","useEffect","useContext","pointer","makeAjvInstance","ajvErrorsToFormErrors","debounce","FieldPropsProvider","useUpdateEffect","isAsync","useSharedState","useTranslation","Context","structuredClone","useLayoutEffect","window","isArrayJsonPointer","Provider","props","_sharedAttachments$da","_sharedData$data3","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","contextErrorMessages","isolate","children","rest","_objectWithoutProperties","_excluded","undefined","Error","hasContext","translation","Field","ajvRef","mountedFieldsRef","hasVisibleErrorRef","errorsRef","showAllErrorsRef","setShowAllErrors","showAllErrors","current","setVisibleError","path","hasError","submitStateRef","setSubmitState","state","Object","assign","formStateRef","setFormState","formState","fieldErrorRef","fieldStateRef","initialData","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","internalDataRef","ajvValidatorRef","executeAjvValidator","_ajvValidatorRef$curr","call","errors","validateData","checkFieldStateFor","_errorsRef$current","Boolean","hasFieldState","item","isMounted","hasFieldError","p","hasErrors","setFieldError","error","setFieldState","fieldState","mutateDataHandler","filter","remove","mutate","result","set","entries","fieldPropsRef","forEach","exists","has","_fieldErrorRef$curren","value","get","internal","runFilter","condition","_fieldPropsRef$curren","_fieldErrorRef$curren2","wildcardPaths","includes","parts","split","traverse","subData","subPath","idx","length","push","list","Array","isArray","_","i","visibleDataHandler","keepPaths","removePaths","visibleData","isVisible","isPreMounted","wasStepChange","filterDataHandler","filterData","valuePropsRef","setFieldProps","setValueProps","hasFieldWithAsyncValidator","_mountedFieldsRef$cur","validator","onBlurValidator","sharedData","sharedAttachments","setSharedData","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","internalData","update","_objectSpread","_sharedData$data","clearForm","clear","clearedData","_sharedData$data2","storeInSession","_window$sessionStorag2","setItem","stringify","process","env","NODE_ENV","setData","newData","updateDataValue","_internalDataRef$curr","givenData","match","e","handlePathChangeUnvalidated","itm","fieldEventListenersRef","type","callback","handlePathChange","options","transformedData","cb","changeHandlerStackRef","addOnChangeHandler","some","setMountedFieldState","scrollToTop","_window","_window$scrollTo","scrollTo","top","behavior","clearData","handleSubmitCall","args","enableAsyncBehavior","skipFieldValidation","skipErrorCheck","asyncBehaviorIsEnabled","_mountedFieldsRef$cur2","warning","info","requestAnimationFrame","onSubmitContinueRef","handleSubmitListenersRef","setHandleSubmit","handleSubmitListeners","stop","preventSubmit","handleSubmit","formElement","mutatedData","filteredData","reduceToVisibleFields","resetForm","_formElement$reset","reset","removeItem","completeResult","keys","setFieldEventListener","t","c","_onSubmitContinueRef$","_ajvRef$current","compile","_ajvRef$current2","onTimeout","bufferedFormState","useFormStatusBuffer","waitFor","submitState","disabled","createElement","hasVisibleError","FormStatus","globalStatus","title","errorSummaryTitle","show","stateRef","nowRef","timeoutRef","setState","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 'json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport {\n Ajv,\n makeAjvInstance,\n ajvErrorsToFormErrors,\n} from '../../utils/ajv'\nimport {\n FormError,\n CustomErrorMessagesWithPaths,\n AllJSONSchemaVersions,\n FieldProps,\n SubmitState,\n Path,\n EventStateObject,\n OnSubmit,\n OnChange,\n EventReturnWithStateObject,\n ValueProps,\n} from '../../types'\nimport type { IsolationProviderProps } from '../../Form/Isolation/Isolation'\nimport { debounce } from '../../../../shared/helpers'\nimport FieldPropsProvider from '../../Form/FieldProps'\nimport useUpdateEffect from '../../../../shared/helpers/useUpdateEffect'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport { useSharedState } from '../../../../shared/helpers/useSharedState'\nimport { ContextProps } from '../../../../shared/Context'\nimport useTranslation from '../../hooks/useTranslation'\nimport Context, {\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 interface Props<Data extends JsonObject>\n extends IsolationProviderProps<Data> {\n /**\n * Unique ID to communicate with the hook Form.useData\n */\n id?: string\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?: CustomErrorMessagesWithPaths\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: contextErrorMessages,\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(Context) || {}\n\n if (hasContext && !isolate) {\n throw new Error('DataContext (Form.Handler) can not be nested')\n }\n\n // - Locale\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 // - 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 Object.assign(submitStateRef.current, state)\n forceUpdate()\n }, [])\n\n // - Progress\n const formStateRef = useRef<SubmitState>()\n const setFormState = useCallback((formState: SubmitState) => {\n formStateRef.current = formState\n forceUpdate()\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\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 = useCallback(\n (path: Path, error: Error | FormError) => {\n fieldErrorRef.current[path] = error\n },\n []\n )\n\n /**\n * Sets the field state for a specific path\n */\n const setFieldState = useCallback(\n (path: Path, fieldState: SubmitState) => {\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, filter: FilterData | TransformData, 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 filter === '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 internal = {\n error: fieldErrorRef.current?.[path],\n }\n const result = filter({\n path,\n value,\n data: internalDataRef.current,\n props,\n internal,\n })\n mutate(path, result)\n }\n })\n\n return data\n } else if (filter) {\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(filter).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 fieldPropsRef = useRef<Record<Path, FieldProps>>({})\n const valuePropsRef = useRef<Record<Path, ValueProps<unknown>>>({})\n const setFieldProps = useCallback(\n (path: Path, props: Record<string, unknown>) => {\n fieldPropsRef.current[path] = props\n },\n []\n )\n const setValueProps = useCallback(\n (path: Path, props: Record<string, unknown>) => {\n valuePropsRef.current[path] = props\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 (isAsync(props.validator) || isAsync(props.onBlurValidator)) {\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<{\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 }>(id + '-attachments')\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 ) {\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 ) {\n cacheRef.current.shared = sharedData.data\n\n // Reset the shared state, if clearForm is set\n if (sharedData.data?.clearForm) {\n const clear = (cacheRef.current.shared = clearedData as Data)\n setSharedData(clear)\n return clear\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, setSharedData])\n\n internalDataRef.current =\n props.path && pointer.has(internalData, props.path)\n ? pointer.get(internalData, props.path)\n : internalData\n\n useEffect(() => {\n if (sharedData.data?.clearForm) {\n onClear?.()\n }\n }, [onClear, sharedData.data?.clearForm])\n\n useLayoutEffect(() => {\n // Set the shared state, if initialData was given\n if (id && initialData && !sharedData.data) {\n extendSharedData?.(initialData)\n }\n }, [id, initialData, extendSharedData, sharedData.data])\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 useLayoutEffect(() => {\n if (id) {\n extendAttachment?.({\n visibleDataHandler,\n filterDataHandler,\n hasErrors,\n hasFieldError,\n setShowAllErrors,\n setSubmitState,\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 ])\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) => {\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)\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n\n if (sessionStorageId && typeof window !== 'undefined') {\n storeInSession()\n }\n\n forceUpdate() // Will rerender the whole form initially\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) => {\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)\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 const clearData = useCallback(() => {\n internalDataRef.current = (emptyData ?? clearedData) as Data\n\n if (id) {\n setSharedData?.(internalDataRef.current)\n } else {\n forceUpdate()\n }\n onClear?.()\n }, [emptyData, id, onClear, setSharedData])\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 })\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 if (\n !(skipErrorCheck ? false : hasErrors()) &&\n !hasFieldState('pending') &&\n (skipFieldValidation ? true : !hasFieldState('error'))\n ) {\n let result: EventStateObject | unknown\n\n try {\n if (isolate) {\n result = await onCommit?.(internalDataRef.current, {\n clearData,\n })\n } else {\n result = await onSubmit()\n }\n\n if (result instanceof Error) {\n throw result\n }\n } catch (error) {\n result = { error }\n }\n\n const state = result as EventStateObject\n\n if (asyncBehaviorIsEnabled) {\n setFormState(state?.error ? 'abort' : 'complete')\n }\n\n // Force the state to be set by a custom status\n if (state?.['status']) {\n setFormState(state?.['status'])\n }\n\n if (state?.error || state?.warning || state?.info) {\n setSubmitState(state)\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 [\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) => {\n if (!handleSubmitListenersRef.current.includes(callback)) {\n handleSubmitListenersRef.current.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 /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback<ContextState['handleSubmit']>(\n async ({ formElement = null } = {}) => {\n handleSubmitCall({\n enableAsyncBehavior: isAsync(onSubmit),\n onSubmit: async () => {\n if (handleSubmitListeners()) {\n return // stop here\n }\n\n // - Mutate the data context\n const data = internalDataRef.current\n const mutatedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n const filteredData = filterSubmitData\n ? filterDataHandler(mutatedData, filterSubmitData)\n : mutatedData // @deprecated – can be removed in v11\n\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 options = {\n filterData,\n reduceToVisibleFields,\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 let result = undefined\n\n if (isAsync(onSubmit)) {\n result = await onSubmit(filteredData, options)\n } else {\n result = onSubmit?.(filteredData, options)\n }\n\n const completeResult = await onSubmitComplete?.(\n filteredData,\n result\n )\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 [\n clearData,\n filterData,\n filterDataHandler,\n filterSubmitData,\n handleSubmitCall,\n handleSubmitListeners,\n mutateDataHandler,\n onSubmit,\n onSubmitComplete,\n scrollToTop,\n scrollTopOnSubmit,\n sessionStorageId,\n transformOut,\n visibleDataHandler,\n ]\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 })\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\n return (\n <Context.Provider\n value={{\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 setFieldProps,\n setValueProps,\n hasErrors,\n hasFieldError,\n hasFieldState,\n validateData,\n updateDataValue,\n setData,\n clearData,\n visibleDataHandler,\n filterDataHandler,\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:\n Object.keys(hasVisibleErrorRef.current).length > 0,\n fieldPropsRef,\n valuePropsRef,\n mountedFieldsRef,\n ajvInstance: ajvRef.current,\n\n /** Additional */\n id,\n data: internalDataRef.current,\n internalDataRef,\n props,\n ...rest,\n }}\n >\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 </Context.Provider>\n )\n}\n\ntype FormStatusBufferProps = {\n minimumAsyncBehaviorTime?: Props<unknown>['minimumAsyncBehaviorTime']\n asyncSubmitTimeout?: Props<unknown>['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","useSharedState","useTranslation","Context","structuredClone","useLayoutEffect","window","isArrayJsonPointer","Provider","props","_sharedAttachments$da","_sharedData$data3","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","contextErrorMessages","isolate","children","rest","_objectWithoutProperties","_excluded","undefined","Error","hasContext","formElementRef","translation","Field","ajvRef","mountedFieldsRef","hasVisibleErrorRef","errorsRef","showAllErrorsRef","setShowAllErrors","showAllErrors","current","setVisibleError","path","hasError","submitStateRef","setSubmitState","state","_objectSpread","formStateRef","keepPending","setFormState","formState","options","fieldErrorRef","fieldStateRef","initialData","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","internalDataRef","ajvValidatorRef","executeAjvValidator","_ajvValidatorRef$curr","call","errors","validateData","checkFieldStateFor","_errorsRef$current","Boolean","hasFieldState","item","isMounted","hasFieldError","p","hasErrors","setFieldError","error","setFieldState","fieldState","mutateDataHandler","filter","remove","mutate","result","set","Object","entries","fieldPropsRef","forEach","exists","has","_fieldErrorRef$curren","value","get","internal","runFilter","condition","_fieldPropsRef$curren","_fieldErrorRef$curren2","wildcardPaths","includes","parts","split","traverse","subData","subPath","idx","length","push","list","Array","isArray","_","i","visibleDataHandler","keepPaths","removePaths","visibleData","isVisible","isPreMounted","wasStepChange","filterDataHandler","filterData","fieldConnectionsRef","setFieldConnection","connections","setFieldProps","valuePropsRef","setValueProps","hasFieldWithAsyncValidator","_mountedFieldsRef$cur","validator","onBlurValidator","sharedData","sharedAttachments","setSharedData","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","internalData","update","_sharedData$data","clearForm","clear","clearedData","_sharedData$data2","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","clearData","handleSubmitCall","args","enableAsyncBehavior","skipFieldValidation","skipErrorCheck","customStatus","asyncBehaviorIsEnabled","_mountedFieldsRef$cur2","_result2","_result4","_result5","_result6","_result7","submitResult","_result","_result3","warning","info","requestAnimationFrame","onSubmitContinueRef","handleSubmitListenersRef","setHandleSubmit","listeners","handleSubmitListeners","stop","preventSubmit","getSubmitData","mutatedData","filteredData","getSubmitOptions","reduceToVisibleFields","formElement","resetForm","_formElement$reset","reset","removeItem","handleSubmit","completeResult","keys","setFieldEventListener","t","c","_onSubmitContinueRef$","_ajvRef$current","compile","_ajvRef$current2","onTimeout","bufferedFormState","useFormStatusBuffer","waitFor","submitState","disabled","createElement","hasVisibleError","FormStatus","globalStatus","title","errorSummaryTitle","show","stateRef","nowRef","timeoutRef","setState","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} from '../../utils/ajv'\nimport {\n FormError,\n CustomErrorMessagesWithPaths,\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 { useSharedState } from '../../../../shared/helpers/useSharedState'\nimport { ContextProps } from '../../../../shared/Context'\nimport useTranslation from '../../hooks/useTranslation'\nimport Context, {\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 interface Props<Data extends JsonObject>\n extends IsolationProviderProps<Data> {\n /**\n * Unique ID to communicate with the hook Form.useData\n */\n id?: string\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?: CustomErrorMessagesWithPaths\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: contextErrorMessages,\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(Context) || {}\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 translation = useTranslation().Field\n\n // - Ajv\n const ajvRef = useRef<Ajv>(makeAjvInstance(ajvInstance))\n\n // - Paths\n const mountedFieldsRef: ContextState['mountedFieldsRef'] = useRef({})\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\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 = useCallback(\n (path: Path, error: Error | FormError) => {\n fieldErrorRef.current[path] = error\n },\n []\n )\n\n /**\n * Sets the field state for a specific path\n */\n const setFieldState = useCallback(\n (path: Path, fieldState: SubmitState) => {\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, filter: FilterData | TransformData, 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 filter === '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 internal = {\n error: fieldErrorRef.current?.[path],\n }\n const result = filter({\n path,\n value,\n data: internalDataRef.current,\n props,\n internal,\n })\n mutate(path, result)\n }\n })\n\n return data\n } else if (filter) {\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(filter).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 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 const valuePropsRef = useRef<Record<Path, ValueProps<unknown>>>({})\n const setValueProps = useCallback(\n (path: Path, props: Record<string, unknown>) => {\n valuePropsRef.current[path] = props\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 (isAsync(props.validator) || isAsync(props.onBlurValidator)) {\n return true\n }\n }\n }\n\n return false\n }, [])\n\n // - Shared state\n const sharedData = useSharedState<Data & { clearForm?: () => void }>(id)\n const sharedAttachments = useSharedState<{\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 fieldConnectionsRef?: ContextState['fieldConnectionsRef']\n }>(id + '-attachments')\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 // Reset the shared state, if clearForm is set\n if (sharedData.data?.clearForm) {\n const clear = (cacheRef.current.shared = clearedData as Data)\n setSharedData(clear)\n return clear\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, setSharedData])\n\n internalDataRef.current =\n props.path && pointer.has(internalData, props.path)\n ? pointer.get(internalData, props.path)\n : internalData\n\n useEffect(() => {\n if (sharedData.data?.clearForm) {\n onClear?.()\n }\n }, [onClear, sharedData.data?.clearForm])\n\n useLayoutEffect(() => {\n // Set the shared state, if initialData was given\n if (id && initialData && !sharedData.data) {\n extendSharedData?.(initialData)\n }\n }, [id, initialData, extendSharedData, sharedData.data])\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 useLayoutEffect(() => {\n if (id) {\n extendAttachment?.({\n visibleDataHandler,\n filterDataHandler,\n hasErrors,\n hasFieldError,\n setShowAllErrors,\n setSubmitState,\n fieldConnectionsRef,\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 ])\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)\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 const clearData = useCallback(() => {\n internalDataRef.current = (emptyData ?? clearedData) as Data\n\n if (id) {\n setSharedData?.(internalDataRef.current)\n } else {\n forceUpdate()\n }\n onClear?.()\n }, [emptyData, id, onClear, setSharedData])\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 getSubmitOptions = 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 const formElement = formElementRef.current\n const options: OnSubmitParams = {\n filterData,\n reduceToVisibleFields,\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 options\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 = getSubmitOptions()\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 getSubmitOptions,\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\n return (\n <Context.Provider\n value={{\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 getSubmitOptions,\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:\n Object.keys(hasVisibleErrorRef.current).length > 0,\n fieldConnectionsRef,\n fieldPropsRef,\n valuePropsRef,\n mountedFieldsRef,\n formElementRef,\n ajvInstance: ajvRef.current,\n\n /** Additional */\n id,\n data: internalDataRef.current,\n internalDataRef,\n props,\n ...rest,\n }}\n >\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 </Context.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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"}
@@ -25,7 +25,7 @@
25
25
  column-gap: var(--spacing-small);
26
26
  row-gap: var(--row-gap);
27
27
  }
28
- @media screen and (min-width: 40.0625em) {
28
+ @media screen and (min-width: 40.00625em) {
29
29
  .dnb-forms-field-array-selection .dnb-forms-field-block--layout-horizontal .dnb-form-label {
30
30
  line-height: 2.5rem;
31
31
  margin-bottom: 0;
@@ -1 +1 @@
1
- .dnb-forms-field-array-selection{--row-gap:var(--spacing-x-small)}.dnb-forms-field-array-selection--options-layout-vertical .dnb-forms-field-array-selection__options{display:flex;flex-flow:column;row-gap:var(--row-gap)}.dnb-forms-field-array-selection--options-layout-vertical.dnb-forms-field-array-selection--layout-horizontal .dnb-forms-field-block__label{align-items:flex-start}.dnb-forms-field-array-selection--variant-checkbox.dnb-forms-field-array-selection--layout-horizontal .dnb-forms-field-array-selection__options{row-gap:0}.dnb-forms-field-array-selection--variant-button.dnb-forms-field-array-selection--options-layout-vertical.dnb-forms-field-array-selection--layout-horizontal .dnb-forms-field-block__label{line-height:2.5rem}.dnb-forms-field-array-selection--options-layout-horizontal .dnb-forms-field-array-selection__options{-moz-column-gap:var(--spacing-small);column-gap:var(--spacing-small);display:flex;flex-flow:row wrap;row-gap:var(--row-gap)}@media screen and (min-width:40.0625em){.dnb-forms-field-array-selection .dnb-forms-field-block--layout-horizontal .dnb-form-label{line-height:2.5rem;margin-bottom:0}}
1
+ .dnb-forms-field-array-selection{--row-gap:var(--spacing-x-small)}.dnb-forms-field-array-selection--options-layout-vertical .dnb-forms-field-array-selection__options{display:flex;flex-flow:column;row-gap:var(--row-gap)}.dnb-forms-field-array-selection--options-layout-vertical.dnb-forms-field-array-selection--layout-horizontal .dnb-forms-field-block__label{align-items:flex-start}.dnb-forms-field-array-selection--variant-checkbox.dnb-forms-field-array-selection--layout-horizontal .dnb-forms-field-array-selection__options{row-gap:0}.dnb-forms-field-array-selection--variant-button.dnb-forms-field-array-selection--options-layout-vertical.dnb-forms-field-array-selection--layout-horizontal .dnb-forms-field-block__label{line-height:2.5rem}.dnb-forms-field-array-selection--options-layout-horizontal .dnb-forms-field-array-selection__options{-moz-column-gap:var(--spacing-small);column-gap:var(--spacing-small);display:flex;flex-flow:row wrap;row-gap:var(--row-gap)}@media screen and (min-width:40.00625em){.dnb-forms-field-array-selection .dnb-forms-field-block--layout-horizontal .dnb-form-label{line-height:2.5rem;margin-bottom:0}}
@@ -1,6 +1,12 @@
1
1
  import { FieldProps, FieldHelpProps } from '../../types';
2
2
  export type Props = FieldHelpProps & FieldProps<string, undefined | string> & {
3
3
  pattern?: string;
4
+ /**
5
+ * Defines if the Date field should support a value of two dates (starting and ending date).
6
+ * The value needs to be a string containing two dates, separated by a pipe character (`|`) i.e. (`01-09-2024|30-09-2024`) when this is set to `true`.
7
+ * Defaults to `false`.
8
+ */
9
+ range?: boolean;
4
10
  };
5
11
  declare function DateComponent(props: Props): import("react/jsx-runtime").JSX.Element;
6
12
  declare namespace DateComponent {
@@ -37,9 +37,11 @@ function DateComponent(props) {
37
37
  errorMessages,
38
38
  schema,
39
39
  fromInput: ({
40
- date
40
+ date,
41
+ start_date,
42
+ end_date
41
43
  }) => {
42
- return date;
44
+ return range ? `${start_date}|${end_date}` : date;
43
45
  },
44
46
  validateRequired
45
47
  });
@@ -58,8 +60,19 @@ function DateComponent(props) {
58
60
  htmlAttributes,
59
61
  handleFocus,
60
62
  handleBlur,
61
- handleChange
63
+ handleChange,
64
+ range
62
65
  } = useFieldProps(preparedProps);
66
+ const rangeValue = useMemo(() => {
67
+ if (!range) {
68
+ return;
69
+ }
70
+ const [startDate, endDate] = value.split('|');
71
+ return {
72
+ startDate,
73
+ endDate
74
+ };
75
+ }, [range, value]);
63
76
  return React.createElement(FieldBlock, _extends({
64
77
  className: classnames('dnb-forms-field-string', className),
65
78
  forId: id,
@@ -71,15 +84,18 @@ function DateComponent(props) {
71
84
  error: error
72
85
  }, pickSpacingProps(props)), React.createElement(DatePicker, _extends({
73
86
  id: id,
74
- date: value,
87
+ date: !range ? value : undefined,
75
88
  disabled: disabled,
76
89
  show_input: true,
77
90
  show_cancel_button: true,
78
91
  show_reset_button: true,
92
+ start_date: range ? rangeValue.startDate : undefined,
93
+ end_date: range ? rangeValue.endDate : undefined,
79
94
  status: hasError ? 'error' : undefined,
80
95
  suffix: help ? React.createElement(HelpButton, {
81
96
  title: help.title
82
97
  }, help.content) : undefined,
98
+ range: range,
83
99
  on_change: handleChange,
84
100
  on_reset: handleChange,
85
101
  onFocus: handleFocus,
@@ -1 +1 @@
1
- {"version":3,"file":"Date.js","names":["React","useCallback","useMemo","DatePicker","HelpButton","useFieldProps","pickSpacingProps","classnames","FieldBlock","parseISO","isValid","useErrorMessage","useTranslation","DateComponent","props","translations","errorMessages","path","required","Date","errorRequired","pattern","Field","schema","_props$schema","type","validateRequired","value","error","undefined","preparedProps","_objectSpread","fromInput","date","id","className","label","labelDescription","help","info","warning","hasError","disabled","htmlAttributes","handleFocus","handleBlur","handleChange","createElement","_extends","forId","show_input","show_cancel_button","show_reset_button","status","suffix","title","content","on_change","on_reset","onFocus","onBlur","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Date/Date.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react'\nimport { DatePicker, HelpButton } from '../../../../components'\nimport { useFieldProps } from '../../hooks'\nimport {\n FieldProps,\n FieldHelpProps,\n AllJSONSchemaVersions,\n} from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport classnames from 'classnames'\nimport FieldBlock from '../../FieldBlock'\nimport { parseISO, isValid } from 'date-fns'\nimport useErrorMessage from '../../hooks/useErrorMessage'\nimport useTranslation from '../../hooks/useTranslation'\n\nexport type Props = FieldHelpProps &\n FieldProps<string, undefined | string> & {\n // Validation\n pattern?: string\n }\n\nfunction DateComponent(props: Props) {\n const translations = useTranslation()\n\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: translations.Date.errorRequired,\n pattern: translations.Field.errorRequired,\n })\n\n const schema = useMemo<AllJSONSchemaVersions>(\n () =>\n props.schema ?? {\n type: 'string',\n pattern: props.pattern,\n },\n [props.schema, props.pattern]\n )\n\n const validateRequired = useCallback(\n (value: string, { required, error }) => {\n if (required && (!value || !isValid(parseISO(value)))) {\n return error\n }\n\n return undefined\n },\n []\n )\n\n const preparedProps: Props = {\n ...props,\n errorMessages,\n schema,\n fromInput: ({ date }: { date: string }) => {\n return date\n },\n validateRequired,\n }\n\n const {\n id,\n className,\n label,\n labelDescription,\n value,\n help,\n info,\n warning,\n error,\n hasError,\n disabled,\n htmlAttributes,\n handleFocus,\n handleBlur,\n handleChange,\n } = useFieldProps(preparedProps)\n\n return (\n <FieldBlock\n className={classnames('dnb-forms-field-string', className)}\n forId={id}\n label={label ?? translations.Date.label}\n labelDescription={labelDescription}\n info={info}\n warning={warning}\n disabled={disabled}\n error={error}\n {...pickSpacingProps(props)}\n >\n <DatePicker\n id={id}\n date={value}\n disabled={disabled}\n show_input={true}\n show_cancel_button={true}\n show_reset_button={true}\n status={hasError ? 'error' : undefined}\n suffix={\n help ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined\n }\n on_change={handleChange}\n on_reset={handleChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n}\n\nDateComponent._supportsSpacingProps = true\nexport default DateComponent\n"],"mappings":"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"}
1
+ {"version":3,"file":"Date.js","names":["React","useCallback","useMemo","DatePicker","HelpButton","useFieldProps","pickSpacingProps","classnames","FieldBlock","parseISO","isValid","useErrorMessage","useTranslation","DateComponent","props","translations","errorMessages","path","required","Date","errorRequired","pattern","Field","schema","_props$schema","type","validateRequired","value","error","undefined","preparedProps","_objectSpread","fromInput","date","start_date","end_date","range","id","className","label","labelDescription","help","info","warning","hasError","disabled","htmlAttributes","handleFocus","handleBlur","handleChange","rangeValue","startDate","endDate","split","createElement","_extends","forId","show_input","show_cancel_button","show_reset_button","status","suffix","title","content","on_change","on_reset","onFocus","onBlur","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Date/Date.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react'\nimport { DatePicker, HelpButton } from '../../../../components'\nimport { useFieldProps } from '../../hooks'\nimport {\n FieldProps,\n FieldHelpProps,\n AllJSONSchemaVersions,\n} from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport classnames from 'classnames'\nimport FieldBlock from '../../FieldBlock'\nimport { parseISO, isValid } from 'date-fns'\nimport useErrorMessage from '../../hooks/useErrorMessage'\nimport useTranslation from '../../hooks/useTranslation'\nimport { DatePickerEvent } from '../../../../components/DatePicker'\n\nexport type Props = FieldHelpProps &\n FieldProps<string, undefined | string> & {\n // Validation\n pattern?: string\n /**\n * Defines if the Date field should support a value of two dates (starting and ending date).\n * The value needs to be a string containing two dates, separated by a pipe character (`|`) i.e. (`01-09-2024|30-09-2024`) when this is set to `true`.\n * Defaults to `false`.\n */\n range?: boolean\n }\n\nfunction DateComponent(props: Props) {\n const translations = useTranslation()\n\n const errorMessages = useErrorMessage(props.path, props.errorMessages, {\n required: translations.Date.errorRequired,\n pattern: translations.Field.errorRequired,\n })\n\n const schema = useMemo<AllJSONSchemaVersions>(\n () =>\n props.schema ?? {\n type: 'string',\n pattern: props.pattern,\n },\n [props.schema, props.pattern]\n )\n\n const validateRequired = useCallback(\n (value: string, { required, error }) => {\n if (required && (!value || !isValid(parseISO(value)))) {\n return error\n }\n\n return undefined\n },\n []\n )\n\n const preparedProps: Props = {\n ...props,\n errorMessages,\n schema,\n fromInput: ({\n date,\n start_date,\n end_date,\n }: DatePickerEvent<React.ChangeEvent<HTMLInputElement>>) => {\n return range ? `${start_date}|${end_date}` : date\n },\n validateRequired,\n }\n\n const {\n id,\n className,\n label,\n labelDescription,\n value,\n help,\n info,\n warning,\n error,\n hasError,\n disabled,\n htmlAttributes,\n handleFocus,\n handleBlur,\n handleChange,\n range,\n } = useFieldProps(preparedProps)\n\n const rangeValue = useMemo(() => {\n if (!range) {\n return\n }\n\n const [startDate, endDate] = value.split('|')\n\n return { startDate, endDate }\n }, [range, value])\n\n return (\n <FieldBlock\n className={classnames('dnb-forms-field-string', className)}\n forId={id}\n label={label ?? translations.Date.label}\n labelDescription={labelDescription}\n info={info}\n warning={warning}\n disabled={disabled}\n error={error}\n {...pickSpacingProps(props)}\n >\n <DatePicker\n id={id}\n date={!range ? value : undefined}\n disabled={disabled}\n show_input={true}\n show_cancel_button={true}\n show_reset_button={true}\n start_date={range ? rangeValue.startDate : undefined}\n end_date={range ? rangeValue.endDate : undefined}\n status={hasError ? 'error' : undefined}\n suffix={\n help ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined\n }\n range={range}\n on_change={handleChange}\n on_reset={handleChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n}\n\nDateComponent._supportsSpacingProps = true\nexport default DateComponent\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  import { PropertiesTableProps } from '../../../../shared/types';
2
- export declare const FieldPropsProperties: PropertiesTableProps;
2
+ export declare const DateProperties: PropertiesTableProps;
@@ -0,0 +1,13 @@
1
+ export const DateProperties = {
2
+ help: {
3
+ doc: 'Provide a help button. Object consisting of `title` and `content`.',
4
+ type: 'object',
5
+ status: 'optional'
6
+ },
7
+ range: {
8
+ doc: 'Defines if the Date field should support a value of two dates (starting and ending date). ' + 'The `value` needs to be a string containing two dates, separated by a pipe character (`|`) (`01-09-2024|30-09-2024`) when this is set to `true`. ' + 'Defaults to `false`.',
9
+ type: 'boolean',
10
+ status: 'optional'
11
+ }
12
+ };
13
+ //# sourceMappingURL=DateDocs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateDocs.js","names":["DateProperties","help","doc","type","status","range"],"sources":["../../../../../../src/extensions/forms/Field/Date/DateDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const DateProperties: PropertiesTableProps = {\n help: {\n doc: 'Provide a help button. Object consisting of `title` and `content`.',\n type: 'object',\n status: 'optional',\n },\n range: {\n doc:\n 'Defines if the Date field should support a value of two dates (starting and ending date). ' +\n 'The `value` needs to be a string containing two dates, separated by a pipe character (`|`) (`01-09-2024|30-09-2024`) when this is set to `true`. ' +\n 'Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,cAAoC,GAAG;EAClDC,IAAI,EAAE;IACJC,GAAG,EAAE,oEAAoE;IACzEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,KAAK,EAAE;IACLH,GAAG,EACD,4FAA4F,GAC5F,mJAAmJ,GACnJ,sBAAsB;IACxBC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV;AACF,CAAC"}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
 
3
3
  import { useCallback, useContext, useMemo, useRef } from 'react';
4
- import pointer from 'json-pointer';
4
+ import pointer from '../../utils/json-pointer';
5
5
  import DataContext from '../../DataContext/Context';
6
6
  export default function useDependencePaths(dependencePaths, propagateIndeterminateState) {
7
7
  const {
@@ -1 +1 @@
1
- {"version":3,"file":"useDependencePaths.js","names":["useCallback","useContext","useMemo","useRef","pointer","DataContext","useDependencePaths","dependencePaths","propagateIndeterminateState","data","fieldPropsRef","handlePathChange","allOn","allOff","indeterminate","check","key","whenUndefined","every","path","has","_fieldPropsRef$curren","_fieldPropsRef$curren2","value","get","current","keepStateRef","setAllStates","checked","forEach","_fieldPropsRef$curren3","_fieldPropsRef$curren4","fieldProp","internalValue"],"sources":["../../../../../../src/extensions/forms/Field/Indeterminate/useDependencePaths.tsx"],"sourcesContent":["import { useCallback, useContext, useMemo, useRef } from 'react'\nimport pointer from 'json-pointer'\nimport DataContext from '../../DataContext/Context'\nimport { Props } from './Indeterminate'\n\nexport default function useDependencePaths(\n dependencePaths: Props['dependencePaths'],\n propagateIndeterminateState: Props['propagateIndeterminateState']\n) {\n const { data, fieldPropsRef, handlePathChange } =\n useContext(DataContext) || {}\n\n const { allOn, allOff, indeterminate } = useMemo(() => {\n if (!dependencePaths || !data) {\n return {}\n }\n\n const check = ({ key, whenUndefined = false }) => {\n return dependencePaths?.every((path) => {\n if (pointer.has(data, path)) {\n const value = pointer.get(data, path)\n if (\n // When value is undefined, we should also consider it as off\n (whenUndefined ? typeof value === 'undefined' : false) ||\n value === fieldPropsRef?.current?.[path]?.[key]\n ) {\n return true\n }\n }\n })\n }\n\n const allOn = check({ key: 'valueOn' })\n const allOff = check({ key: 'valueOff', whenUndefined: true })\n const indeterminate = !allOn && !allOff\n\n return {\n allOn,\n allOff,\n indeterminate,\n }\n }, [data, dependencePaths, fieldPropsRef])\n\n const keepStateRef = useRef<boolean>()\n useMemo(() => {\n if (allOn && !keepStateRef.current) {\n keepStateRef.current = true\n } else if (allOff && keepStateRef.current) {\n keepStateRef.current = false\n } else {\n if (propagateIndeterminateState !== 'auto' && indeterminate) {\n keepStateRef.current = propagateIndeterminateState === 'unchecked'\n }\n }\n }, [allOn, allOff, propagateIndeterminateState, indeterminate])\n\n const setAllStates = useCallback(\n (checked: boolean) => {\n dependencePaths?.forEach((path) => {\n const fieldProp = checked ? 'valueOn' : 'valueOff'\n const value = fieldPropsRef?.current?.[path]?.[fieldProp]\n handlePathChange?.(path, value)\n })\n },\n [dependencePaths, fieldPropsRef, handlePathChange]\n )\n\n return {\n setAllStates,\n indeterminate,\n internalValue: keepStateRef.current,\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useDependencePaths.js","names":["useCallback","useContext","useMemo","useRef","pointer","DataContext","useDependencePaths","dependencePaths","propagateIndeterminateState","data","fieldPropsRef","handlePathChange","allOn","allOff","indeterminate","check","key","whenUndefined","every","path","has","_fieldPropsRef$curren","_fieldPropsRef$curren2","value","get","current","keepStateRef","setAllStates","checked","forEach","_fieldPropsRef$curren3","_fieldPropsRef$curren4","fieldProp","internalValue"],"sources":["../../../../../../src/extensions/forms/Field/Indeterminate/useDependencePaths.tsx"],"sourcesContent":["import { useCallback, useContext, useMemo, useRef } from 'react'\nimport pointer from '../../utils/json-pointer'\nimport DataContext from '../../DataContext/Context'\nimport { Props } from './Indeterminate'\n\nexport default function useDependencePaths(\n dependencePaths: Props['dependencePaths'],\n propagateIndeterminateState: Props['propagateIndeterminateState']\n) {\n const { data, fieldPropsRef, handlePathChange } =\n useContext(DataContext) || {}\n\n const { allOn, allOff, indeterminate } = useMemo(() => {\n if (!dependencePaths || !data) {\n return {}\n }\n\n const check = ({ key, whenUndefined = false }) => {\n return dependencePaths?.every((path) => {\n if (pointer.has(data, path)) {\n const value = pointer.get(data, path)\n if (\n // When value is undefined, we should also consider it as off\n (whenUndefined ? typeof value === 'undefined' : false) ||\n value === fieldPropsRef?.current?.[path]?.[key]\n ) {\n return true\n }\n }\n })\n }\n\n const allOn = check({ key: 'valueOn' })\n const allOff = check({ key: 'valueOff', whenUndefined: true })\n const indeterminate = !allOn && !allOff\n\n return {\n allOn,\n allOff,\n indeterminate,\n }\n }, [data, dependencePaths, fieldPropsRef])\n\n const keepStateRef = useRef<boolean>()\n useMemo(() => {\n if (allOn && !keepStateRef.current) {\n keepStateRef.current = true\n } else if (allOff && keepStateRef.current) {\n keepStateRef.current = false\n } else {\n if (propagateIndeterminateState !== 'auto' && indeterminate) {\n keepStateRef.current = propagateIndeterminateState === 'unchecked'\n }\n }\n }, [allOn, allOff, propagateIndeterminateState, indeterminate])\n\n const setAllStates = useCallback(\n (checked: boolean) => {\n dependencePaths?.forEach((path) => {\n const fieldProp = checked ? 'valueOn' : 'valueOff'\n const value = fieldPropsRef?.current?.[path]?.[fieldProp]\n handlePathChange?.(path, value)\n })\n },\n [dependencePaths, fieldPropsRef, handlePathChange]\n )\n\n return {\n setAllStates,\n indeterminate,\n internalValue: keepStateRef.current,\n }\n}\n"],"mappings":"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"}
@@ -2,8 +2,8 @@ import React from 'react';
2
2
  import { Props as DataContextProps } from '../../DataContext/Provider';
3
3
  import { FormStatusProps } from '../../../../components/FormStatus';
4
4
  import { ContextProps } from '../../../../shared/Context';
5
- import type { FieldProps, Path } from '../../types';
6
- export type FieldPropsProps = FieldProps & {
5
+ import { FieldProps, Path } from '../../types';
6
+ export type FieldProviderProps = FieldProps & {
7
7
  children: React.ReactNode;
8
8
  /**
9
9
  * Locale to use for all nested Eufemia components
@@ -18,16 +18,14 @@ export type FieldPropsProps = FieldProps & {
18
18
  [key: Path]: FieldProps;
19
19
  };
20
20
  /** For internal use only */
21
- deep?: boolean;
22
- /** For internal use only */
23
21
  formElement?: ContextProps['formElement'];
24
22
  /** For internal use only */
25
23
  FormStatus?: {
26
24
  globalStatus: FormStatusProps;
27
25
  };
28
26
  };
29
- declare function FieldPropsProvider(props: FieldPropsProps): import("react/jsx-runtime").JSX.Element;
30
- declare namespace FieldPropsProvider {
27
+ declare function FieldProviderProvider(props: FieldProviderProps): import("react/jsx-runtime").JSX.Element;
28
+ declare namespace FieldProviderProvider {
31
29
  var _supportsSpacingProps: string;
32
30
  }
33
- export default FieldPropsProvider;
31
+ export default FieldProviderProvider;