@dnb/eufemia 10.34.1 → 10.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (768) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/assets/images/sbanken/sbanken-compact-horizontal.svg +3 -0
  3. package/assets/images/sbanken/sbanken-compact.svg +3 -0
  4. package/assets/images/sbanken/sbanken.svg +3 -0
  5. package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
  6. package/cjs/components/autocomplete/style/themes/dnb-autocomplete-theme-sbanken.css +1 -1
  7. package/cjs/components/autocomplete/style/themes/dnb-autocomplete-theme-sbanken.scss +1 -1
  8. package/cjs/components/button/Button.js.map +1 -1
  9. package/cjs/components/dropdown/Dropdown.js.map +1 -1
  10. package/cjs/components/form-row/FormRow.js.map +1 -1
  11. package/cjs/components/form-set/FormSet.js.map +1 -1
  12. package/cjs/components/form-status/FormStatus.js.map +1 -1
  13. package/cjs/components/global-status/GlobalStatus.js.map +1 -1
  14. package/cjs/components/global-status/GlobalStatusController.js.map +1 -1
  15. package/cjs/components/global-status/GlobalStatusProvider.js.map +1 -1
  16. package/cjs/components/help-button/HelpButton.js +3 -0
  17. package/cjs/components/help-button/HelpButton.js.map +1 -1
  18. package/cjs/components/help-button/style/dnb-help-button.css +4 -1
  19. package/cjs/components/help-button/style/dnb-help-button.min.css +1 -0
  20. package/cjs/components/help-button/style/dnb-help-button.scss +6 -0
  21. package/cjs/components/icon/Icon.js.map +1 -1
  22. package/cjs/components/icon-primary/IconPrimary.js.map +1 -1
  23. package/cjs/components/input/Input.js.map +1 -1
  24. package/cjs/components/input-masked/InputMasked.js.map +1 -1
  25. package/cjs/components/logo/Logo.d.ts +47 -43
  26. package/cjs/components/logo/Logo.js +77 -221
  27. package/cjs/components/logo/Logo.js.map +1 -1
  28. package/cjs/components/logo/LogoDocs.d.ts +2 -0
  29. package/cjs/components/logo/LogoDocs.js +50 -0
  30. package/cjs/components/logo/LogoDocs.js.map +1 -0
  31. package/cjs/components/logo/LogoSvg.d.ts +7 -0
  32. package/cjs/components/logo/LogoSvg.js +81 -0
  33. package/cjs/components/logo/LogoSvg.js.map +1 -0
  34. package/cjs/components/modal/Modal.d.ts +2 -0
  35. package/cjs/components/modal/Modal.js +25 -10
  36. package/cjs/components/modal/Modal.js.map +1 -1
  37. package/cjs/components/number-format/NumberFormat.d.ts +4 -0
  38. package/cjs/components/number-format/NumberFormat.js +5 -2
  39. package/cjs/components/number-format/NumberFormat.js.map +1 -1
  40. package/cjs/components/number-format/style/dnb-number-format.css +3 -0
  41. package/cjs/components/number-format/style/dnb-number-format.min.css +1 -1
  42. package/cjs/components/number-format/style/dnb-number-format.scss +4 -0
  43. package/cjs/components/pagination/Pagination.js.map +1 -1
  44. package/cjs/components/pagination/PaginationHelpers.js.map +1 -1
  45. package/cjs/components/pagination/PaginationInfinity.js.map +1 -1
  46. package/cjs/components/pagination/PaginationProvider.js.map +1 -1
  47. package/cjs/components/progress-indicator/ProgressIndicatorDocs.js +1 -1
  48. package/cjs/components/progress-indicator/ProgressIndicatorDocs.js.map +1 -1
  49. package/cjs/components/progress-indicator/types.d.ts +1 -1
  50. package/cjs/components/progress-indicator/types.js.map +1 -1
  51. package/cjs/components/radio/Radio.js.map +1 -1
  52. package/cjs/components/radio/RadioGroup.js.map +1 -1
  53. package/cjs/components/skeleton/Skeleton.js.map +1 -1
  54. package/cjs/components/switch/Switch.js.map +1 -1
  55. package/cjs/components/table/Table.d.ts +6 -0
  56. package/cjs/components/table/Table.js +15 -3
  57. package/cjs/components/table/Table.js.map +1 -1
  58. package/cjs/components/table/TableAccordion.d.ts +7 -11
  59. package/cjs/components/table/TableAccordion.js +32 -21
  60. package/cjs/components/table/TableAccordion.js.map +1 -1
  61. package/cjs/components/table/TableTr.js +24 -25
  62. package/cjs/components/table/TableTr.js.map +1 -1
  63. package/cjs/components/tabs/Tabs.js +1 -5
  64. package/cjs/components/tabs/Tabs.js.map +1 -1
  65. package/cjs/components/tabs/TabsDocs.js +1 -1
  66. package/cjs/components/tabs/TabsDocs.js.map +1 -1
  67. package/cjs/components/textarea/Textarea.js.map +1 -1
  68. package/cjs/components/toggle-button/ToggleButton.js.map +1 -1
  69. package/cjs/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  70. package/cjs/extensions/forms/DataContext/Context.d.ts +2 -0
  71. package/cjs/extensions/forms/DataContext/Context.js +1 -0
  72. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  73. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +17 -1
  74. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
  75. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +5 -3
  76. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  77. package/cjs/extensions/forms/DataContext/Provider/Provider.js +50 -4
  78. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  79. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +2 -2
  80. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +7 -1
  81. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  82. package/cjs/extensions/forms/Field/Option/Option.d.ts +2 -2
  83. package/cjs/extensions/forms/Field/Option/Option.js.map +1 -1
  84. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +6 -6
  85. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  86. package/cjs/extensions/forms/Field/Selection/Selection.js +7 -2
  87. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  88. package/cjs/extensions/forms/Field/Toggle/Toggle.js +7 -3
  89. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  90. package/cjs/extensions/forms/Form/FieldProps/FieldProps.js +16 -36
  91. package/cjs/extensions/forms/Form/FieldProps/FieldProps.js.map +1 -1
  92. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.d.ts +12 -0
  93. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.js +44 -0
  94. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -0
  95. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainerDocs.d.ts +3 -0
  96. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +27 -0
  97. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -0
  98. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.d.ts +1 -0
  99. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +67 -0
  100. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -0
  101. package/cjs/extensions/forms/Form/Section/EditContainer/index.d.ts +2 -0
  102. package/cjs/extensions/forms/Form/Section/EditContainer/index.js +27 -0
  103. package/cjs/extensions/forms/Form/Section/EditContainer/index.js.map +1 -0
  104. package/cjs/extensions/forms/Form/Section/EditContainer/useContainerDataStore.d.ts +3 -0
  105. package/cjs/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js +54 -0
  106. package/cjs/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js.map +1 -0
  107. package/cjs/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.d.ts +1 -0
  108. package/cjs/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.js +25 -0
  109. package/cjs/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.js.map +1 -0
  110. package/cjs/extensions/forms/Form/Section/Section.d.ts +9 -1
  111. package/cjs/extensions/forms/Form/Section/Section.js +10 -2
  112. package/cjs/extensions/forms/Form/Section/Section.js.map +1 -1
  113. package/cjs/extensions/forms/Form/Section/SectionContext.d.ts +1 -2
  114. package/cjs/extensions/forms/Form/Section/SectionContext.js.map +1 -1
  115. package/cjs/extensions/forms/Form/Section/SectionDocs.js +6 -1
  116. package/cjs/extensions/forms/Form/Section/SectionDocs.js.map +1 -1
  117. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainer.d.ts +12 -0
  118. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainer.js +43 -0
  119. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainer.js.map +1 -0
  120. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.d.ts +3 -0
  121. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +27 -0
  122. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -0
  123. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.d.ts +1 -0
  124. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js +34 -0
  125. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js.map +1 -0
  126. package/cjs/extensions/forms/Form/Section/ViewContainer/index.d.ts +2 -0
  127. package/cjs/extensions/forms/Form/Section/ViewContainer/index.js +27 -0
  128. package/cjs/extensions/forms/Form/Section/ViewContainer/index.js.map +1 -0
  129. package/cjs/extensions/forms/Form/Section/containers/SectionContainer.d.ts +19 -0
  130. package/cjs/extensions/forms/Form/Section/containers/SectionContainer.js +93 -0
  131. package/cjs/extensions/forms/Form/Section/containers/SectionContainer.js.map +1 -0
  132. package/cjs/extensions/forms/Form/Section/containers/SectionContainerContext.d.ts +8 -0
  133. package/cjs/extensions/forms/Form/Section/containers/SectionContainerContext.js +12 -0
  134. package/cjs/extensions/forms/Form/Section/containers/SectionContainerContext.js.map +1 -0
  135. package/cjs/extensions/forms/Form/Section/containers/SectionContainerProvider.d.ts +8 -0
  136. package/cjs/extensions/forms/Form/Section/containers/SectionContainerProvider.js +33 -0
  137. package/cjs/extensions/forms/Form/Section/containers/SectionContainerProvider.js.map +1 -0
  138. package/cjs/extensions/forms/Form/Section/containers/Toolbar.d.ts +7 -0
  139. package/cjs/extensions/forms/Form/Section/containers/Toolbar.js +35 -0
  140. package/cjs/extensions/forms/Form/Section/containers/Toolbar.js.map +1 -0
  141. package/cjs/extensions/forms/Form/Section/style/dnb-form-section.css +45 -0
  142. package/cjs/extensions/forms/Form/Section/style/dnb-form-section.min.css +1 -0
  143. package/{extensions/forms/Iterate/style/dnb-form-iterate.scss → cjs/extensions/forms/Form/Section/style/dnb-form-section.scss} +4 -12
  144. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +8 -8
  145. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  146. package/cjs/extensions/forms/Iterate/Array/Array.js +1 -1
  147. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  148. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js +1 -1
  149. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  150. package/cjs/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +17 -8
  151. package/cjs/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
  152. package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js +1 -1
  153. package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  154. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js +1 -1
  155. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  156. package/cjs/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +1 -1
  157. package/cjs/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
  158. package/cjs/extensions/forms/Iterate/style/dnb-iterate.css +6 -0
  159. package/cjs/extensions/forms/Iterate/style/dnb-iterate.min.css +1 -0
  160. package/cjs/extensions/forms/Iterate/style/dnb-iterate.scss +12 -0
  161. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +2 -1
  162. package/cjs/extensions/forms/constants/locales/en-GB.js +3 -2
  163. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  164. package/cjs/extensions/forms/constants/locales/en-US.d.ts +2 -1
  165. package/cjs/extensions/forms/constants/locales/index.d.ts +4 -2
  166. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +2 -1
  167. package/cjs/extensions/forms/constants/locales/nb-NO.js +3 -2
  168. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  169. package/cjs/extensions/forms/hooks/useDataValue.d.ts +4 -0
  170. package/cjs/extensions/forms/hooks/useDataValue.js +30 -5
  171. package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
  172. package/cjs/extensions/forms/hooks/useFieldProps.js +14 -9
  173. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  174. package/cjs/extensions/forms/hooks/useTranslation.js +6 -11
  175. package/cjs/extensions/forms/hooks/useTranslation.js.map +1 -1
  176. package/cjs/extensions/forms/style/dnb-forms.css +46 -44
  177. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  178. package/cjs/extensions/payment-card/PaymentCard.js.map +1 -1
  179. package/cjs/fragments/drawer-list/DrawerList.js.map +1 -1
  180. package/cjs/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  181. package/cjs/fragments/drawer-list/DrawerListPortal.js.map +1 -1
  182. package/cjs/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  183. package/cjs/fragments/drawer-list/style/dnb-drawer-list.scss +4 -0
  184. package/cjs/fragments/text-counter/TextCounter.js +3 -2
  185. package/cjs/fragments/text-counter/TextCounter.js.map +1 -1
  186. package/cjs/shared/Context.d.ts +9 -5
  187. package/cjs/shared/Context.js +40 -35
  188. package/cjs/shared/Context.js.map +1 -1
  189. package/cjs/shared/Eufemia.d.ts +1 -1
  190. package/cjs/shared/Eufemia.js +2 -2
  191. package/cjs/shared/Eufemia.js.map +1 -1
  192. package/cjs/shared/Provider.d.ts +1 -1
  193. package/cjs/shared/Provider.js +49 -42
  194. package/cjs/shared/Provider.js.map +1 -1
  195. package/cjs/shared/Translation.d.ts +5 -5
  196. package/cjs/shared/Translation.js +6 -11
  197. package/cjs/shared/Translation.js.map +1 -1
  198. package/cjs/shared/index.d.ts +1 -0
  199. package/cjs/shared/index.js +26 -1
  200. package/cjs/shared/index.js.map +1 -1
  201. package/cjs/shared/locales/en-GB.d.ts +0 -3
  202. package/cjs/shared/locales/en-GB.js +0 -3
  203. package/cjs/shared/locales/en-GB.js.map +1 -1
  204. package/cjs/shared/locales/en-US.d.ts +0 -3
  205. package/cjs/shared/locales/index.d.ts +0 -6
  206. package/cjs/shared/locales/nb-NO.d.ts +0 -3
  207. package/cjs/shared/locales/nb-NO.js +0 -3
  208. package/cjs/shared/locales/nb-NO.js.map +1 -1
  209. package/cjs/shared/useTranslation.d.ts +5 -4
  210. package/cjs/shared/useTranslation.js +14 -12
  211. package/cjs/shared/useTranslation.js.map +1 -1
  212. package/cjs/style/core/scopes.scss +1 -1
  213. package/cjs/style/dnb-ui-basis.css +1 -1
  214. package/cjs/style/dnb-ui-basis.min.css +1 -1
  215. package/cjs/style/dnb-ui-body.css +1 -1
  216. package/cjs/style/dnb-ui-body.min.css +1 -1
  217. package/cjs/style/dnb-ui-components.css +57 -44
  218. package/cjs/style/dnb-ui-components.min.css +2 -2
  219. package/cjs/style/dnb-ui-core.css +1 -1
  220. package/cjs/style/dnb-ui-core.min.css +1 -1
  221. package/cjs/style/dnb-ui-extensions.css +46 -44
  222. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  223. package/cjs/style/dnb-ui-forms.css +46 -44
  224. package/cjs/style/dnb-ui-forms.min.css +1 -1
  225. package/cjs/style/dnb-ui-forms.scss +2 -1
  226. package/cjs/style/dnb-ui-fragments.css +4 -0
  227. package/cjs/style/dnb-ui-fragments.min.css +1 -1
  228. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +2 -2
  229. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  230. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +103 -88
  231. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
  232. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +46 -44
  233. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  234. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +46 -44
  235. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  236. package/cjs/style/themes/theme-sbanken/globals.scss +3 -2
  237. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +2 -2
  238. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  239. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +104 -89
  240. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
  241. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +46 -44
  242. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  243. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +46 -44
  244. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  245. package/cjs/style/themes/theme-ui/globals.scss +3 -2
  246. package/cjs/style/themes/theme-ui/ui-theme-basis.css +2 -2
  247. package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  248. package/cjs/style/themes/theme-ui/ui-theme-components.css +103 -88
  249. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +3 -3
  250. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +46 -44
  251. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  252. package/cjs/style/themes/theme-ui/ui-theme-forms.css +46 -44
  253. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  254. package/components/autocomplete/Autocomplete.js.map +1 -1
  255. package/components/autocomplete/style/themes/dnb-autocomplete-theme-sbanken.css +1 -1
  256. package/components/autocomplete/style/themes/dnb-autocomplete-theme-sbanken.scss +1 -1
  257. package/components/button/Button.js.map +1 -1
  258. package/components/dropdown/Dropdown.js.map +1 -1
  259. package/components/form-row/FormRow.js.map +1 -1
  260. package/components/form-set/FormSet.js.map +1 -1
  261. package/components/form-status/FormStatus.js.map +1 -1
  262. package/components/global-status/GlobalStatus.js.map +1 -1
  263. package/components/global-status/GlobalStatusController.js.map +1 -1
  264. package/components/global-status/GlobalStatusProvider.js.map +1 -1
  265. package/components/help-button/HelpButton.js +3 -0
  266. package/components/help-button/HelpButton.js.map +1 -1
  267. package/components/help-button/style/dnb-help-button.css +4 -1
  268. package/components/help-button/style/dnb-help-button.min.css +1 -0
  269. package/components/help-button/style/dnb-help-button.scss +6 -0
  270. package/components/icon/Icon.js.map +1 -1
  271. package/components/icon-primary/IconPrimary.js.map +1 -1
  272. package/components/input/Input.js.map +1 -1
  273. package/components/input-masked/InputMasked.js.map +1 -1
  274. package/components/logo/Logo.d.ts +47 -43
  275. package/components/logo/Logo.js +75 -221
  276. package/components/logo/Logo.js.map +1 -1
  277. package/components/logo/LogoDocs.d.ts +2 -0
  278. package/components/logo/LogoDocs.js +43 -0
  279. package/components/logo/LogoDocs.js.map +1 -0
  280. package/components/logo/LogoSvg.d.ts +7 -0
  281. package/components/logo/LogoSvg.js +73 -0
  282. package/components/logo/LogoSvg.js.map +1 -0
  283. package/components/modal/Modal.d.ts +2 -0
  284. package/components/modal/Modal.js +25 -10
  285. package/components/modal/Modal.js.map +1 -1
  286. package/components/number-format/NumberFormat.d.ts +4 -0
  287. package/components/number-format/NumberFormat.js +5 -2
  288. package/components/number-format/NumberFormat.js.map +1 -1
  289. package/components/number-format/style/dnb-number-format.css +3 -0
  290. package/components/number-format/style/dnb-number-format.min.css +1 -1
  291. package/components/number-format/style/dnb-number-format.scss +4 -0
  292. package/components/pagination/Pagination.js.map +1 -1
  293. package/components/pagination/PaginationHelpers.js.map +1 -1
  294. package/components/pagination/PaginationInfinity.js.map +1 -1
  295. package/components/pagination/PaginationProvider.js.map +1 -1
  296. package/components/progress-indicator/ProgressIndicatorDocs.js +1 -1
  297. package/components/progress-indicator/ProgressIndicatorDocs.js.map +1 -1
  298. package/components/progress-indicator/types.d.ts +1 -1
  299. package/components/progress-indicator/types.js.map +1 -1
  300. package/components/radio/Radio.js.map +1 -1
  301. package/components/radio/RadioGroup.js.map +1 -1
  302. package/components/skeleton/Skeleton.js.map +1 -1
  303. package/components/switch/Switch.js.map +1 -1
  304. package/components/table/Table.d.ts +6 -0
  305. package/components/table/Table.js +13 -3
  306. package/components/table/Table.js.map +1 -1
  307. package/components/table/TableAccordion.d.ts +7 -11
  308. package/components/table/TableAccordion.js +29 -20
  309. package/components/table/TableAccordion.js.map +1 -1
  310. package/components/table/TableTr.js +25 -26
  311. package/components/table/TableTr.js.map +1 -1
  312. package/components/tabs/Tabs.js +1 -5
  313. package/components/tabs/Tabs.js.map +1 -1
  314. package/components/tabs/TabsDocs.js +1 -1
  315. package/components/tabs/TabsDocs.js.map +1 -1
  316. package/components/textarea/Textarea.js.map +1 -1
  317. package/components/toggle-button/ToggleButton.js.map +1 -1
  318. package/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  319. package/es/components/autocomplete/Autocomplete.js.map +1 -1
  320. package/es/components/autocomplete/style/themes/dnb-autocomplete-theme-sbanken.css +1 -1
  321. package/es/components/autocomplete/style/themes/dnb-autocomplete-theme-sbanken.scss +1 -1
  322. package/es/components/button/Button.js.map +1 -1
  323. package/es/components/dropdown/Dropdown.js.map +1 -1
  324. package/es/components/form-row/FormRow.js.map +1 -1
  325. package/es/components/form-set/FormSet.js.map +1 -1
  326. package/es/components/form-status/FormStatus.js.map +1 -1
  327. package/es/components/global-status/GlobalStatus.js.map +1 -1
  328. package/es/components/global-status/GlobalStatusController.js.map +1 -1
  329. package/es/components/global-status/GlobalStatusProvider.js.map +1 -1
  330. package/es/components/help-button/HelpButton.js +3 -0
  331. package/es/components/help-button/HelpButton.js.map +1 -1
  332. package/es/components/help-button/style/dnb-help-button.css +4 -1
  333. package/es/components/help-button/style/dnb-help-button.min.css +1 -0
  334. package/es/components/help-button/style/dnb-help-button.scss +6 -0
  335. package/es/components/icon/Icon.js.map +1 -1
  336. package/es/components/icon-primary/IconPrimary.js.map +1 -1
  337. package/es/components/input/Input.js.map +1 -1
  338. package/es/components/input-masked/InputMasked.js.map +1 -1
  339. package/es/components/logo/Logo.d.ts +47 -43
  340. package/es/components/logo/Logo.js +75 -221
  341. package/es/components/logo/Logo.js.map +1 -1
  342. package/es/components/logo/LogoDocs.d.ts +2 -0
  343. package/es/components/logo/LogoDocs.js +43 -0
  344. package/es/components/logo/LogoDocs.js.map +1 -0
  345. package/es/components/logo/LogoSvg.d.ts +7 -0
  346. package/es/components/logo/LogoSvg.js +72 -0
  347. package/es/components/logo/LogoSvg.js.map +1 -0
  348. package/es/components/modal/Modal.d.ts +2 -0
  349. package/es/components/modal/Modal.js +25 -10
  350. package/es/components/modal/Modal.js.map +1 -1
  351. package/es/components/number-format/NumberFormat.d.ts +4 -0
  352. package/es/components/number-format/NumberFormat.js +5 -2
  353. package/es/components/number-format/NumberFormat.js.map +1 -1
  354. package/es/components/number-format/style/dnb-number-format.css +3 -0
  355. package/es/components/number-format/style/dnb-number-format.min.css +1 -1
  356. package/es/components/number-format/style/dnb-number-format.scss +4 -0
  357. package/es/components/pagination/Pagination.js.map +1 -1
  358. package/es/components/pagination/PaginationHelpers.js.map +1 -1
  359. package/es/components/pagination/PaginationInfinity.js.map +1 -1
  360. package/es/components/pagination/PaginationProvider.js.map +1 -1
  361. package/es/components/progress-indicator/ProgressIndicatorDocs.js +1 -1
  362. package/es/components/progress-indicator/ProgressIndicatorDocs.js.map +1 -1
  363. package/es/components/progress-indicator/types.d.ts +1 -1
  364. package/es/components/progress-indicator/types.js.map +1 -1
  365. package/es/components/radio/Radio.js.map +1 -1
  366. package/es/components/radio/RadioGroup.js.map +1 -1
  367. package/es/components/skeleton/Skeleton.js.map +1 -1
  368. package/es/components/switch/Switch.js.map +1 -1
  369. package/es/components/table/Table.d.ts +6 -0
  370. package/es/components/table/Table.js +13 -3
  371. package/es/components/table/Table.js.map +1 -1
  372. package/es/components/table/TableAccordion.d.ts +7 -11
  373. package/es/components/table/TableAccordion.js +29 -19
  374. package/es/components/table/TableAccordion.js.map +1 -1
  375. package/es/components/table/TableTr.js +25 -26
  376. package/es/components/table/TableTr.js.map +1 -1
  377. package/es/components/tabs/Tabs.js +1 -5
  378. package/es/components/tabs/Tabs.js.map +1 -1
  379. package/es/components/tabs/TabsDocs.js +1 -1
  380. package/es/components/tabs/TabsDocs.js.map +1 -1
  381. package/es/components/textarea/Textarea.js.map +1 -1
  382. package/es/components/toggle-button/ToggleButton.js.map +1 -1
  383. package/es/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  384. package/es/extensions/forms/DataContext/Context.d.ts +2 -0
  385. package/es/extensions/forms/DataContext/Context.js +1 -0
  386. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  387. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +17 -1
  388. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
  389. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +5 -3
  390. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  391. package/es/extensions/forms/DataContext/Provider/Provider.js +46 -1
  392. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  393. package/es/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +2 -2
  394. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +8 -2
  395. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  396. package/es/extensions/forms/Field/Option/Option.d.ts +2 -2
  397. package/es/extensions/forms/Field/Option/Option.js.map +1 -1
  398. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +6 -6
  399. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  400. package/es/extensions/forms/Field/Selection/Selection.js +7 -2
  401. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  402. package/es/extensions/forms/Field/Toggle/Toggle.js +7 -3
  403. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  404. package/es/extensions/forms/Form/FieldProps/FieldProps.js +16 -36
  405. package/es/extensions/forms/Form/FieldProps/FieldProps.js.map +1 -1
  406. package/es/extensions/forms/Form/Section/EditContainer/EditContainer.d.ts +12 -0
  407. package/es/extensions/forms/Form/Section/EditContainer/EditContainer.js +33 -0
  408. package/es/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -0
  409. package/es/extensions/forms/Form/Section/EditContainer/EditContainerDocs.d.ts +3 -0
  410. package/es/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +19 -0
  411. package/es/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -0
  412. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.d.ts +1 -0
  413. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +59 -0
  414. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -0
  415. package/es/extensions/forms/Form/Section/EditContainer/index.d.ts +2 -0
  416. package/es/extensions/forms/Form/Section/EditContainer/index.js +3 -0
  417. package/es/extensions/forms/Form/Section/EditContainer/index.js.map +1 -0
  418. package/es/extensions/forms/Form/Section/EditContainer/useContainerDataStore.d.ts +3 -0
  419. package/es/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js +46 -0
  420. package/es/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js.map +1 -0
  421. package/es/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.d.ts +1 -0
  422. package/es/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.js +19 -0
  423. package/es/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.js.map +1 -0
  424. package/es/extensions/forms/Form/Section/Section.d.ts +9 -1
  425. package/es/extensions/forms/Form/Section/Section.js +10 -2
  426. package/es/extensions/forms/Form/Section/Section.js.map +1 -1
  427. package/es/extensions/forms/Form/Section/SectionContext.d.ts +1 -2
  428. package/es/extensions/forms/Form/Section/SectionContext.js.map +1 -1
  429. package/es/extensions/forms/Form/Section/SectionDocs.js +6 -1
  430. package/es/extensions/forms/Form/Section/SectionDocs.js.map +1 -1
  431. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainer.d.ts +12 -0
  432. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainer.js +32 -0
  433. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainer.js.map +1 -0
  434. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.d.ts +3 -0
  435. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +19 -0
  436. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -0
  437. package/es/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.d.ts +1 -0
  438. package/es/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js +26 -0
  439. package/es/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js.map +1 -0
  440. package/es/extensions/forms/Form/Section/ViewContainer/index.d.ts +2 -0
  441. package/es/extensions/forms/Form/Section/ViewContainer/index.js +3 -0
  442. package/es/extensions/forms/Form/Section/ViewContainer/index.js.map +1 -0
  443. package/es/extensions/forms/Form/Section/containers/SectionContainer.d.ts +19 -0
  444. package/es/extensions/forms/Form/Section/containers/SectionContainer.js +83 -0
  445. package/es/extensions/forms/Form/Section/containers/SectionContainer.js.map +1 -0
  446. package/es/extensions/forms/Form/Section/containers/SectionContainerContext.d.ts +8 -0
  447. package/es/extensions/forms/Form/Section/containers/SectionContainerContext.js +4 -0
  448. package/es/extensions/forms/Form/Section/containers/SectionContainerContext.js.map +1 -0
  449. package/es/extensions/forms/Form/Section/containers/SectionContainerProvider.d.ts +8 -0
  450. package/es/extensions/forms/Form/Section/containers/SectionContainerProvider.js +24 -0
  451. package/es/extensions/forms/Form/Section/containers/SectionContainerProvider.js.map +1 -0
  452. package/es/extensions/forms/Form/Section/containers/Toolbar.d.ts +7 -0
  453. package/es/extensions/forms/Form/Section/containers/Toolbar.js +27 -0
  454. package/es/extensions/forms/Form/Section/containers/Toolbar.js.map +1 -0
  455. package/es/extensions/forms/Form/Section/style/dnb-form-section.css +45 -0
  456. package/es/extensions/forms/Form/Section/style/dnb-form-section.min.css +1 -0
  457. package/es/extensions/forms/{Iterate/style/dnb-form-iterate.scss → Form/Section/style/dnb-form-section.scss} +4 -12
  458. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +8 -8
  459. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  460. package/es/extensions/forms/Iterate/Array/Array.js +1 -1
  461. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  462. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js +1 -1
  463. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  464. package/es/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +19 -10
  465. package/es/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
  466. package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js +1 -1
  467. package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  468. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js +1 -1
  469. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  470. package/es/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +1 -1
  471. package/es/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
  472. package/es/extensions/forms/Iterate/style/dnb-iterate.css +6 -0
  473. package/es/extensions/forms/Iterate/style/dnb-iterate.min.css +1 -0
  474. package/es/extensions/forms/Iterate/style/dnb-iterate.scss +12 -0
  475. package/es/extensions/forms/constants/locales/en-GB.d.ts +2 -1
  476. package/es/extensions/forms/constants/locales/en-GB.js +3 -2
  477. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  478. package/es/extensions/forms/constants/locales/en-US.d.ts +2 -1
  479. package/es/extensions/forms/constants/locales/index.d.ts +4 -2
  480. package/es/extensions/forms/constants/locales/nb-NO.d.ts +2 -1
  481. package/es/extensions/forms/constants/locales/nb-NO.js +3 -2
  482. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  483. package/es/extensions/forms/hooks/useDataValue.d.ts +4 -0
  484. package/es/extensions/forms/hooks/useDataValue.js +30 -5
  485. package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
  486. package/es/extensions/forms/hooks/useFieldProps.js +14 -9
  487. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  488. package/es/extensions/forms/hooks/useTranslation.js +7 -12
  489. package/es/extensions/forms/hooks/useTranslation.js.map +1 -1
  490. package/es/extensions/forms/style/dnb-forms.css +46 -44
  491. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  492. package/es/extensions/payment-card/PaymentCard.js.map +1 -1
  493. package/es/fragments/drawer-list/DrawerList.js.map +1 -1
  494. package/es/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  495. package/es/fragments/drawer-list/DrawerListPortal.js.map +1 -1
  496. package/es/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  497. package/es/fragments/drawer-list/style/dnb-drawer-list.scss +4 -0
  498. package/es/fragments/text-counter/TextCounter.js +3 -2
  499. package/es/fragments/text-counter/TextCounter.js.map +1 -1
  500. package/es/shared/Context.d.ts +9 -5
  501. package/es/shared/Context.js +39 -35
  502. package/es/shared/Context.js.map +1 -1
  503. package/es/shared/Eufemia.d.ts +1 -1
  504. package/es/shared/Eufemia.js +2 -2
  505. package/es/shared/Eufemia.js.map +1 -1
  506. package/es/shared/Provider.d.ts +1 -1
  507. package/es/shared/Provider.js +49 -41
  508. package/es/shared/Provider.js.map +1 -1
  509. package/es/shared/Translation.d.ts +5 -5
  510. package/es/shared/Translation.js +8 -10
  511. package/es/shared/Translation.js.map +1 -1
  512. package/es/shared/index.d.ts +1 -0
  513. package/es/shared/index.js +1 -0
  514. package/es/shared/index.js.map +1 -1
  515. package/es/shared/locales/en-GB.d.ts +0 -3
  516. package/es/shared/locales/en-GB.js +0 -3
  517. package/es/shared/locales/en-GB.js.map +1 -1
  518. package/es/shared/locales/en-US.d.ts +0 -3
  519. package/es/shared/locales/index.d.ts +0 -6
  520. package/es/shared/locales/nb-NO.d.ts +0 -3
  521. package/es/shared/locales/nb-NO.js +0 -3
  522. package/es/shared/locales/nb-NO.js.map +1 -1
  523. package/es/shared/useTranslation.d.ts +5 -4
  524. package/es/shared/useTranslation.js +13 -11
  525. package/es/shared/useTranslation.js.map +1 -1
  526. package/es/style/core/scopes.scss +1 -1
  527. package/es/style/dnb-ui-basis.css +1 -1
  528. package/es/style/dnb-ui-basis.min.css +1 -1
  529. package/es/style/dnb-ui-body.css +1 -1
  530. package/es/style/dnb-ui-body.min.css +1 -1
  531. package/es/style/dnb-ui-components.css +57 -44
  532. package/es/style/dnb-ui-components.min.css +2 -2
  533. package/es/style/dnb-ui-core.css +1 -1
  534. package/es/style/dnb-ui-core.min.css +1 -1
  535. package/es/style/dnb-ui-extensions.css +46 -44
  536. package/es/style/dnb-ui-extensions.min.css +1 -1
  537. package/es/style/dnb-ui-forms.css +46 -44
  538. package/es/style/dnb-ui-forms.min.css +1 -1
  539. package/es/style/dnb-ui-forms.scss +2 -1
  540. package/es/style/dnb-ui-fragments.css +4 -0
  541. package/es/style/dnb-ui-fragments.min.css +1 -1
  542. package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +2 -2
  543. package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  544. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +103 -88
  545. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
  546. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +46 -44
  547. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  548. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +46 -44
  549. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  550. package/es/style/themes/theme-sbanken/globals.scss +3 -2
  551. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +2 -2
  552. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  553. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +104 -89
  554. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
  555. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +46 -44
  556. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  557. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +46 -44
  558. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  559. package/es/style/themes/theme-ui/globals.scss +3 -2
  560. package/es/style/themes/theme-ui/ui-theme-basis.css +2 -2
  561. package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  562. package/es/style/themes/theme-ui/ui-theme-components.css +103 -88
  563. package/es/style/themes/theme-ui/ui-theme-components.min.css +3 -3
  564. package/es/style/themes/theme-ui/ui-theme-extensions.css +46 -44
  565. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  566. package/es/style/themes/theme-ui/ui-theme-forms.css +46 -44
  567. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  568. package/esm/dnb-ui-basis.min.mjs +1 -1
  569. package/esm/dnb-ui-components.min.mjs +1 -1
  570. package/esm/dnb-ui-elements.min.mjs +1 -1
  571. package/esm/dnb-ui-extensions.min.mjs +5 -5
  572. package/esm/dnb-ui-lib.min.mjs +1 -1
  573. package/extensions/forms/DataContext/Context.d.ts +2 -0
  574. package/extensions/forms/DataContext/Context.js +1 -0
  575. package/extensions/forms/DataContext/Context.js.map +1 -1
  576. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +17 -1
  577. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
  578. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +5 -3
  579. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  580. package/extensions/forms/DataContext/Provider/Provider.js +50 -4
  581. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  582. package/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +2 -2
  583. package/extensions/forms/Field/ArraySelection/ArraySelection.js +8 -2
  584. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  585. package/extensions/forms/Field/Option/Option.d.ts +2 -2
  586. package/extensions/forms/Field/Option/Option.js.map +1 -1
  587. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +6 -6
  588. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  589. package/extensions/forms/Field/Selection/Selection.js +7 -2
  590. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  591. package/extensions/forms/Field/Toggle/Toggle.js +7 -3
  592. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  593. package/extensions/forms/Form/FieldProps/FieldProps.js +16 -36
  594. package/extensions/forms/Form/FieldProps/FieldProps.js.map +1 -1
  595. package/extensions/forms/Form/Section/EditContainer/EditContainer.d.ts +12 -0
  596. package/extensions/forms/Form/Section/EditContainer/EditContainer.js +33 -0
  597. package/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -0
  598. package/extensions/forms/Form/Section/EditContainer/EditContainerDocs.d.ts +3 -0
  599. package/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +19 -0
  600. package/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -0
  601. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.d.ts +1 -0
  602. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +59 -0
  603. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -0
  604. package/extensions/forms/Form/Section/EditContainer/index.d.ts +2 -0
  605. package/extensions/forms/Form/Section/EditContainer/index.js +3 -0
  606. package/extensions/forms/Form/Section/EditContainer/index.js.map +1 -0
  607. package/extensions/forms/Form/Section/EditContainer/useContainerDataStore.d.ts +3 -0
  608. package/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js +46 -0
  609. package/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js.map +1 -0
  610. package/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.d.ts +1 -0
  611. package/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.js +19 -0
  612. package/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.js.map +1 -0
  613. package/extensions/forms/Form/Section/Section.d.ts +9 -1
  614. package/extensions/forms/Form/Section/Section.js +10 -2
  615. package/extensions/forms/Form/Section/Section.js.map +1 -1
  616. package/extensions/forms/Form/Section/SectionContext.d.ts +1 -2
  617. package/extensions/forms/Form/Section/SectionContext.js.map +1 -1
  618. package/extensions/forms/Form/Section/SectionDocs.js +6 -1
  619. package/extensions/forms/Form/Section/SectionDocs.js.map +1 -1
  620. package/extensions/forms/Form/Section/ViewContainer/ViewContainer.d.ts +12 -0
  621. package/extensions/forms/Form/Section/ViewContainer/ViewContainer.js +32 -0
  622. package/extensions/forms/Form/Section/ViewContainer/ViewContainer.js.map +1 -0
  623. package/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.d.ts +3 -0
  624. package/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +19 -0
  625. package/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -0
  626. package/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.d.ts +1 -0
  627. package/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js +26 -0
  628. package/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js.map +1 -0
  629. package/extensions/forms/Form/Section/ViewContainer/index.d.ts +2 -0
  630. package/extensions/forms/Form/Section/ViewContainer/index.js +3 -0
  631. package/extensions/forms/Form/Section/ViewContainer/index.js.map +1 -0
  632. package/extensions/forms/Form/Section/containers/SectionContainer.d.ts +19 -0
  633. package/extensions/forms/Form/Section/containers/SectionContainer.js +83 -0
  634. package/extensions/forms/Form/Section/containers/SectionContainer.js.map +1 -0
  635. package/extensions/forms/Form/Section/containers/SectionContainerContext.d.ts +8 -0
  636. package/extensions/forms/Form/Section/containers/SectionContainerContext.js +4 -0
  637. package/extensions/forms/Form/Section/containers/SectionContainerContext.js.map +1 -0
  638. package/extensions/forms/Form/Section/containers/SectionContainerProvider.d.ts +8 -0
  639. package/extensions/forms/Form/Section/containers/SectionContainerProvider.js +24 -0
  640. package/extensions/forms/Form/Section/containers/SectionContainerProvider.js.map +1 -0
  641. package/extensions/forms/Form/Section/containers/Toolbar.d.ts +7 -0
  642. package/extensions/forms/Form/Section/containers/Toolbar.js +27 -0
  643. package/extensions/forms/Form/Section/containers/Toolbar.js.map +1 -0
  644. package/extensions/forms/Form/Section/style/dnb-form-section.css +45 -0
  645. package/extensions/forms/Form/Section/style/dnb-form-section.min.css +1 -0
  646. package/{cjs/extensions/forms/Iterate/style/dnb-form-iterate.scss → extensions/forms/Form/Section/style/dnb-form-section.scss} +4 -12
  647. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +8 -8
  648. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  649. package/extensions/forms/Iterate/Array/Array.js +1 -1
  650. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  651. package/extensions/forms/Iterate/EditContainer/EditContainer.js +1 -1
  652. package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  653. package/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +19 -10
  654. package/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
  655. package/extensions/forms/Iterate/RemoveButton/RemoveButton.js +1 -1
  656. package/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  657. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js +1 -1
  658. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  659. package/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +1 -1
  660. package/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
  661. package/extensions/forms/Iterate/style/dnb-iterate.css +6 -0
  662. package/extensions/forms/Iterate/style/dnb-iterate.min.css +1 -0
  663. package/extensions/forms/Iterate/style/dnb-iterate.scss +12 -0
  664. package/extensions/forms/constants/locales/en-GB.d.ts +2 -1
  665. package/extensions/forms/constants/locales/en-GB.js +3 -2
  666. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  667. package/extensions/forms/constants/locales/en-US.d.ts +2 -1
  668. package/extensions/forms/constants/locales/index.d.ts +4 -2
  669. package/extensions/forms/constants/locales/nb-NO.d.ts +2 -1
  670. package/extensions/forms/constants/locales/nb-NO.js +3 -2
  671. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  672. package/extensions/forms/hooks/useDataValue.d.ts +4 -0
  673. package/extensions/forms/hooks/useDataValue.js +30 -5
  674. package/extensions/forms/hooks/useDataValue.js.map +1 -1
  675. package/extensions/forms/hooks/useFieldProps.js +14 -9
  676. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  677. package/extensions/forms/hooks/useTranslation.js +7 -12
  678. package/extensions/forms/hooks/useTranslation.js.map +1 -1
  679. package/extensions/forms/style/dnb-forms.css +46 -44
  680. package/extensions/forms/style/dnb-forms.min.css +1 -1
  681. package/extensions/payment-card/PaymentCard.js.map +1 -1
  682. package/fragments/drawer-list/DrawerList.js.map +1 -1
  683. package/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  684. package/fragments/drawer-list/DrawerListPortal.js.map +1 -1
  685. package/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  686. package/fragments/drawer-list/style/dnb-drawer-list.scss +4 -0
  687. package/fragments/text-counter/TextCounter.js +3 -2
  688. package/fragments/text-counter/TextCounter.js.map +1 -1
  689. package/package.json +1 -1
  690. package/shared/Context.d.ts +9 -5
  691. package/shared/Context.js +40 -35
  692. package/shared/Context.js.map +1 -1
  693. package/shared/Eufemia.d.ts +1 -1
  694. package/shared/Eufemia.js +2 -2
  695. package/shared/Eufemia.js.map +1 -1
  696. package/shared/Provider.d.ts +1 -1
  697. package/shared/Provider.js +49 -41
  698. package/shared/Provider.js.map +1 -1
  699. package/shared/Translation.d.ts +5 -5
  700. package/shared/Translation.js +8 -10
  701. package/shared/Translation.js.map +1 -1
  702. package/shared/index.d.ts +1 -0
  703. package/shared/index.js +1 -0
  704. package/shared/index.js.map +1 -1
  705. package/shared/locales/en-GB.d.ts +0 -3
  706. package/shared/locales/en-GB.js +0 -3
  707. package/shared/locales/en-GB.js.map +1 -1
  708. package/shared/locales/en-US.d.ts +0 -3
  709. package/shared/locales/index.d.ts +0 -6
  710. package/shared/locales/nb-NO.d.ts +0 -3
  711. package/shared/locales/nb-NO.js +0 -3
  712. package/shared/locales/nb-NO.js.map +1 -1
  713. package/shared/useTranslation.d.ts +5 -4
  714. package/shared/useTranslation.js +13 -11
  715. package/shared/useTranslation.js.map +1 -1
  716. package/style/core/scopes.scss +1 -1
  717. package/style/dnb-ui-basis.css +1 -1
  718. package/style/dnb-ui-basis.min.css +1 -1
  719. package/style/dnb-ui-body.css +1 -1
  720. package/style/dnb-ui-body.min.css +1 -1
  721. package/style/dnb-ui-components.css +57 -44
  722. package/style/dnb-ui-components.min.css +2 -2
  723. package/style/dnb-ui-core.css +1 -1
  724. package/style/dnb-ui-core.min.css +1 -1
  725. package/style/dnb-ui-extensions.css +46 -44
  726. package/style/dnb-ui-extensions.min.css +1 -1
  727. package/style/dnb-ui-forms.css +46 -44
  728. package/style/dnb-ui-forms.min.css +1 -1
  729. package/style/dnb-ui-forms.scss +2 -1
  730. package/style/dnb-ui-fragments.css +4 -0
  731. package/style/dnb-ui-fragments.min.css +1 -1
  732. package/style/themes/theme-eiendom/eiendom-theme-basis.css +2 -2
  733. package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  734. package/style/themes/theme-eiendom/eiendom-theme-components.css +103 -88
  735. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
  736. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +46 -44
  737. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  738. package/style/themes/theme-eiendom/eiendom-theme-forms.css +46 -44
  739. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  740. package/style/themes/theme-sbanken/globals.scss +3 -2
  741. package/style/themes/theme-sbanken/sbanken-theme-basis.css +2 -2
  742. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  743. package/style/themes/theme-sbanken/sbanken-theme-components.css +104 -89
  744. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
  745. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +46 -44
  746. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  747. package/style/themes/theme-sbanken/sbanken-theme-forms.css +46 -44
  748. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  749. package/style/themes/theme-ui/globals.scss +3 -2
  750. package/style/themes/theme-ui/ui-theme-basis.css +2 -2
  751. package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  752. package/style/themes/theme-ui/ui-theme-components.css +103 -88
  753. package/style/themes/theme-ui/ui-theme-components.min.css +3 -3
  754. package/style/themes/theme-ui/ui-theme-extensions.css +46 -44
  755. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  756. package/style/themes/theme-ui/ui-theme-forms.css +46 -44
  757. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  758. package/umd/dnb-ui-basis.min.js +1 -1
  759. package/umd/dnb-ui-components.min.js +1 -1
  760. package/umd/dnb-ui-elements.min.js +1 -1
  761. package/umd/dnb-ui-extensions.min.js +5 -5
  762. package/umd/dnb-ui-lib.min.js +1 -1
  763. package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.css +0 -50
  764. package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.min.css +0 -1
  765. package/es/extensions/forms/Iterate/style/dnb-form-iterate.css +0 -50
  766. package/es/extensions/forms/Iterate/style/dnb-form-iterate.min.css +0 -1
  767. package/extensions/forms/Iterate/style/dnb-form-iterate.css +0 -50
  768. package/extensions/forms/Iterate/style/dnb-form-iterate.min.css +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.js","names":["React","useRef","useMemo","useCallback","useReducer","useEffect","useContext","pointer","makeAjvInstance","ajvErrorsToFormErrors","debounce","FieldPropsProvider","useMountEffect","useUpdateEffect","isAsync","useSharedState","useTranslation","Context","structuredClone","useLayoutEffect","window","isArrayJsonPointer","Provider","props","_sharedAttachments$da","forceUpdate","id","globalStatusId","defaultData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","scrollTopOnSubmit","minimumAsyncBehaviorTime","asyncSubmitTimeout","sessionStorageId","ajvInstance","transformIn","transformOut","filterSubmitData","filterData","locale","translations","required","errorMessages","contextErrorMessages","children","rest","_objectWithoutProperties","_excluded","undefined","Error","nestedContext","hasContext","translation","Form","ajvRef","mountedFieldPathsRef","errorsRef","showAllErrorsRef","setShowAllErrors","showAllErrors","current","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","path","_errorsRef$current","Boolean","hasFieldState","some","hasFieldError","p","hasErrors","setFieldError","error","setFieldState","fieldState","mutateDataHandler","filter","remove","mutate","result","set","entries","fieldPropsRef","forEach","exists","has","_fieldErrorRef$curren","value","get","internal","condition","_fieldPropsRef$curren","_fieldErrorRef$curren2","filterDataHandler","valuePropsRef","setFieldProps","setValueProps","hasFieldWithAsyncValidator","includes","validator","onBlurValidator","sharedData","sharedAttachments","setSharedData","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","update","_objectSpread","storeInSession","_window$sessionStorag2","setItem","stringify","process","env","NODE_ENV","updateDataValue","_internalDataRef$curr","givenData","match","newData","e","setData","handlePathChangeUnvalidated","handlePathChange","transformedData","cb","changeHandlerStackRef","addOnChangeHandler","callback","push","handleMountField","addListPath","handleUnMountField","removeListPath","scrollToTop","_window","_window$scrollTo","scrollTo","top","behavior","handleSubmitCall","args","enableAsyncBehaviour","skipFieldValidation","skipErrorCheck","asyncBehaviorIsEnabled","type","fieldEventListenersRef","warning","info","requestAnimationFrame","onSubmitContinueRef","handleSubmit","formElement","filteredData","opts","resetForm","_formElement$reset","reset","removeItem","clearData","completeResult","keys","length","setFieldEventListener","t","_onSubmitContinueRef$","_ajvRef$current","compile","_ajvRef$current2","onTimeout","bufferedFormState","useFormStatusBuffer","waitFor","submitState","disabled","createElement","FormStatus","globalStatus","title","errorSummaryTitle","show","paths","concat","thisPath","stateRef","nowRef","timeoutRef","setState","clear","key","clearTimeout","hadCompleteRef","activeElementRef","isTest","minimum","setTimeout","document","activeElement","Date","now","offset","Math","max","delay","complete","_activeElementRef$cur","_activeElementRef$cur2","focus","timeout"],"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 { debounce } from '../../../../shared/helpers'\nimport FieldPropsProvider from '../../Form/FieldProps'\nimport useMountEffect from '../../../../shared/helpers/useMountEffect'\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 TransformData,\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 /**\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 * 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 * Source data, will be used instead of defaultData, and leading to updates if changed after mount\n */\n data?: Data\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 * Filter the `onSubmit` output data, based on your criteria: `({ path, value, data, props, internal }) => !props?.disabled`. It will iterate on each data entry (/path). Return false to exclude the entry.\n */\n filterSubmitData?: FilterData\n /**\n * @deprecated Use `filterSubmitData` instead\n */\n filterData?: 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: any\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 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 data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n scrollTopOnSubmit,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n sessionStorageId,\n ajvInstance,\n transformIn,\n transformOut,\n filterSubmitData,\n filterData,\n locale,\n translations,\n required,\n errorMessages: contextErrorMessages,\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 nestedContext = useContext(Context)\n if (nestedContext?.hasContext) {\n throw new Error('DataContext (Form.Handler) can not be nested')\n }\n\n // - Locale\n const translation = useTranslation().Form\n\n // - Ajv\n const ajvRef = useRef<Ajv>(makeAjvInstance(ajvInstance))\n\n // - Paths\n const mountedFieldPathsRef = useRef<Path[]>([])\n\n // - Errors from provider validation (the whole data set)\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 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 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 return mountedFieldPathsRef.current.some((path) => {\n return checkFieldStateFor(path, state)\n })\n },\n [checkFieldStateFor]\n )\n const hasFieldError = useCallback(\n (path: Path) => {\n return mountedFieldPathsRef.current.some((p) => {\n return p === path && checkFieldStateFor(p, 'error')\n })\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 Object.entries(filter).forEach(([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 return data\n }\n\n return data\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 || filterSubmitData) => {\n if (filter) {\n return mutateDataHandler(data, filter, true)\n }\n\n return data\n },\n [filterData, filterSubmitData, mutateDataHandler]\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 (mountedFieldPathsRef.current.includes(path)) {\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 filterDataHandler?: Props<Data>['filterSubmitData']\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 internalDataRef.current = 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 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 }, [data, id, initialData, sharedData])\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 filterDataHandler,\n hasErrors,\n hasFieldError,\n setShowAllErrors,\n setSubmitState,\n })\n if (filterData || filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n }, [\n extendAttachment,\n filterData,\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 /**\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 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 // - 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 (filterData || filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n\n if (sessionStorageId && typeof window !== 'undefined') {\n storeInSession()\n }\n\n forceUpdate()\n },\n [\n extendSharedData,\n filterData,\n filterSubmitData,\n id,\n mutateDataHandler,\n rerenderUseDataHook,\n sessionStorageId,\n storeInSession,\n transformIn,\n ]\n )\n\n const setData = useCallback((newData: Data) => {\n internalDataRef.current = newData\n forceUpdate()\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 [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 transformedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n for (const cb of changeHandlerStackRef.current) {\n if (isAsync(onChange)) {\n await cb(transformedData)\n } else {\n cb(transformedData)\n }\n }\n\n if (isAsync(onChange)) {\n return await onChange(transformedData)\n }\n\n return onChange?.(transformedData)\n },\n [\n handlePathChangeUnvalidated,\n mutateDataHandler,\n onChange,\n transformOut,\n validateData,\n ]\n )\n\n const changeHandlerStackRef = useRef<Array<OnChange<Data>>>([])\n const addOnChangeHandler = useCallback(\n (callback: (data: unknown) => void) => {\n const exists = changeHandlerStackRef.current.some((cb) => {\n return callback === cb\n })\n if (!exists) {\n changeHandlerStackRef.current.push(callback)\n }\n },\n []\n )\n\n // - Mounted fields\n const handleMountField = useCallback((path: Path) => {\n mountedFieldPathsRef.current = addListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n const handleUnMountField = useCallback((path: Path) => {\n mountedFieldPathsRef.current = removeListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n // - Features\n const scrollToTop = useCallback(() => {\n if (typeof window !== 'undefined') {\n window?.scrollTo?.({ top: 0, behavior: 'smooth' })\n }\n }, [])\n\n /**\n * Shared logic dedicated to submit the whole form\n */\n const handleSubmitCall = useCallback<ContextState['handleSubmitCall']>(\n async (args) => {\n const {\n onSubmit,\n enableAsyncBehaviour,\n skipFieldValidation,\n skipErrorCheck,\n } = args\n\n setSubmitState({ error: undefined })\n\n const asyncBehaviorIsEnabled =\n (skipErrorCheck\n ? true\n : // Don't enable async behaviour if we have errors, but when we have a pending state\n !hasErrors() || hasFieldState('pending')) &&\n (enableAsyncBehaviour || 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 {\n path,\n type,\n callback,\n } of fieldEventListenersRef.current) {\n if (\n type === 'onSubmit' &&\n mountedFieldPathsRef.current.includes(path)\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 result = await onSubmit()\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 return internalDataRef.current\n },\n [\n setSubmitState,\n hasErrors,\n hasFieldWithAsyncValidator,\n hasFieldState,\n setFormState,\n onSubmitRequest,\n setShowAllErrors,\n ]\n )\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback<ContextState['handleSubmit']>(\n async ({ formElement = null } = {}) => {\n handleSubmitCall({\n enableAsyncBehaviour: isAsync(onSubmit),\n onSubmit: async () => {\n // - Mutate the data context\n const data = internalDataRef.current\n const filteredData = filterDataHandler(\n transformOut ? mutateDataHandler(data, transformOut) : data\n )\n const opts = {\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 internalDataRef.current = {} as Data\n if (id) {\n setSharedData?.({} as Data)\n } else {\n forceUpdate()\n }\n },\n }\n\n let result = undefined\n\n if (isAsync(onSubmit)) {\n result = await onSubmit(filteredData, opts)\n } else {\n result = onSubmit?.(filteredData, opts)\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 filterDataHandler,\n handleSubmitCall,\n id,\n mutateDataHandler,\n onSubmit,\n onSubmitComplete,\n scrollToTop,\n scrollTopOnSubmit,\n sessionStorageId,\n setSharedData,\n transformOut,\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(({ path: p, type: t }) => {\n return !(p === path && t === type)\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 useMountEffect(() => {\n if (schema) {\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n }\n\n // Validate the initial data\n validateData()\n })\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 handleMountField,\n handleUnMountField,\n handleSubmitCall,\n setFormState,\n setSubmitState,\n setShowAllErrors,\n setFieldEventListener,\n setFieldState,\n setFieldError,\n setFieldProps,\n setValueProps,\n hasErrors,\n hasFieldError,\n hasFieldState,\n validateData,\n updateDataValue,\n setData,\n filterDataHandler,\n addOnChangeHandler,\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 fieldPropsRef,\n valuePropsRef,\n ajvInstance: ajvRef.current,\n\n /** Additional */\n id,\n data: internalDataRef.current,\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 PathList = string[]\n\nexport function addListPath(paths: PathList, path: Path): PathList {\n return paths.includes(path) ? paths : paths.concat(path)\n}\n\nexport function removeListPath(paths: PathList, path: Path): PathList {\n return paths.filter((thisPath) => thisPath !== path)\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"],"mappings":";;;;;;;AAAA,OAAOA,KAAK,IACVC,MAAM,EACNC,OAAO,EACPC,WAAW,EACXC,UAAU,EACVC,SAAS,EACTC,UAAU,QACL,OAAO;AACd,OAAOC,OAAO,MAAsB,cAAc;AAElD,SAEEC,eAAe,EACfC,qBAAqB,QAChB,iBAAiB;AAcxB,SAASC,QAAQ,QAAQ,4BAA4B;AACrD,OAAOC,kBAAkB,MAAM,uBAAuB;AACtD,OAAOC,cAAc,MAAM,2CAA2C;AACtE,OAAOC,eAAe,MAAM,4CAA4C;AACxE,SAASC,OAAO,QAAQ,oCAAoC;AAC5D,SAASC,cAAc,QAAQ,2CAA2C;AAE1E,OAAOC,cAAc,MAAM,4BAA4B;AACvD,OAAOC,OAAO,MAKP,YAAY;AAMnB,OAAOC,eAAe,MAAM,yBAAyB;AAGrD,MAAMC,eAAe,GACnB,OAAOC,MAAM,KAAK,WAAW,GAAGpB,KAAK,CAACK,SAAS,GAAGL,KAAK,CAACmB,eAAe;AAoHzE,MAAME,kBAAkB,GAAG,cAAc;AAEzC,eAAe,SAASC,QAAQA,CAC9BC,KAAkB,EAClB;EAAA,IAAAC,qBAAA;EACA,MAAM,GAAGC,WAAW,CAAC,GAAGrB,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAElD,MAAM;MACJsB,EAAE;MACFC,cAAc,GAAG,MAAM;MACvBC,WAAW;MACXC,IAAI;MACJC,MAAM;MACNC,QAAQ;MACRC,YAAY;MACZC,QAAQ;MACRC,eAAe;MACfC,gBAAgB;MAChBC,iBAAiB;MACjBC,wBAAwB;MACxBC,kBAAkB;MAClBC,gBAAgB;MAChBC,WAAW;MACXC,WAAW;MACXC,YAAY;MACZC,gBAAgB;MAChBC,UAAU;MACVC,MAAM;MACNC,YAAY;MACZC,QAAQ;MACRC,aAAa,EAAEC,oBAAoB;MACnCC;IAEF,CAAC,GAAG3B,KAAK;IADJ4B,IAAI,GAAAC,wBAAA,CACL7B,KAAK,EAAA8B,SAAA;EAGT,IAAIxB,IAAI,KAAKyB,SAAS,IAAIf,gBAAgB,KAAKe,SAAS,EAAE;IACxD,MAAM,IAAIC,KAAK,CACb,iEACF,CAAC;EACH;EAEA,MAAMC,aAAa,GAAGlD,UAAU,CAACW,OAAO,CAAC;EACzC,IAAIuC,aAAa,aAAbA,aAAa,eAAbA,aAAa,CAAEC,UAAU,EAAE;IAC7B,MAAM,IAAIF,KAAK,CAAC,8CAA8C,CAAC;EACjE;EAGA,MAAMG,WAAW,GAAG1C,cAAc,CAAC,CAAC,CAAC2C,IAAI;EAGzC,MAAMC,MAAM,GAAG3D,MAAM,CAAMO,eAAe,CAACgC,WAAW,CAAC,CAAC;EAGxD,MAAMqB,oBAAoB,GAAG5D,MAAM,CAAS,EAAE,CAAC;EAG/C,MAAM6D,SAAS,GAAG7D,MAAM,CAAsC,CAAC;EAC/D,MAAM8D,gBAAgB,GAAG9D,MAAM,CAAU,KAAK,CAAC;EAC/C,MAAM+D,gBAAgB,GAAG7D,WAAW,CAAE8D,aAAsB,IAAK;IAC/DF,gBAAgB,CAACG,OAAO,GAAGD,aAAa;IACxCxC,WAAW,CAAC,CAAC;EACf,CAAC,EAAE,EAAE,CAAC;EACN,MAAM0C,cAAc,GAAGlE,MAAM,CAA4B,CAAC,CAAC,CAAC;EAC5D,MAAMmE,cAAc,GAAGjE,WAAW,CAAEkE,KAAuB,IAAK;IAC9DC,MAAM,CAACC,MAAM,CAACJ,cAAc,CAACD,OAAO,EAAEG,KAAK,CAAC;IAC5C5C,WAAW,CAAC,CAAC;EACf,CAAC,EAAE,EAAE,CAAC;EAGN,MAAM+C,YAAY,GAAGvE,MAAM,CAAc,CAAC;EAC1C,MAAMwE,YAAY,GAAGtE,WAAW,CAAEuE,SAAsB,IAAK;IAC3DF,YAAY,CAACN,OAAO,GAAGQ,SAAS;IAChCjD,WAAW,CAAC,CAAC;EACf,CAAC,EAAE,EAAE,CAAC;EAGN,MAAMkD,aAAa,GAAG1E,MAAM,CAAsB,CAAC,CAAC,CAAC;EACrD,MAAM2E,aAAa,GAAG3E,MAAM,CAA4B,CAAC,CAAC,CAAC;EAG3D,MAAM4E,WAAW,GAAG3E,OAAO,CAAO,MAAM;IACtC,IAAIqC,gBAAgB,IAAI,OAAOnB,MAAM,KAAK,WAAW,EAAE;MAAA,IAAA0D,qBAAA;MACrD,MAAMC,eAAe,IAAAD,qBAAA,GACnB1D,MAAM,CAAC4D,cAAc,cAAAF,qBAAA,uBAArBA,qBAAA,CAAuBG,OAAO,CAAC1C,gBAAgB,CAAC;MAClD,IAAIwC,eAAe,EAAE;QACnB,OAAOG,IAAI,CAACC,KAAK,CAACJ,eAAe,CAAC;MACpC;IACF;IACA,OAAOlD,IAAI,aAAJA,IAAI,cAAJA,IAAI,GAAID,WAAW;EAE5B,CAAC,EAAE,EAAE,CAAC;EACN,MAAMwD,eAAe,GAAGnF,MAAM,CAAO4E,WAAW,CAAC;EAGjD,MAAMQ,eAAe,GAAGpF,MAAM,CAAmB,CAAC;EAClD,MAAMqF,mBAAmB,GAAGnF,WAAW,CAAC,MAAM;IAAA,IAAAoF,qBAAA;IAC5C,IAAI,CAACF,eAAe,CAACnB,OAAO,EAAE;MAE5B;IACF;IAEA,IAAI,GAAAqB,qBAAA,GAACF,eAAe,CAACnB,OAAO,cAAAqB,qBAAA,eAAvBA,qBAAA,CAAAC,IAAA,CAAAH,eAAe,EAAWD,eAAe,CAAClB,OAAO,CAAC,GAAE;MAEvDJ,SAAS,CAACI,OAAO,GAAGzD,qBAAqB,CACvC4E,eAAe,CAACnB,OAAO,CAACuB,MAAM,EAC9BL,eAAe,CAAClB,OAClB,CAAC;IACH,CAAC,MAAM;MACLJ,SAAS,CAACI,OAAO,GAAGZ,SAAS;IAC/B;EACF,CAAC,EAAE,EAAE,CAAC;EACN,MAAMoC,YAAY,GAAGvF,WAAW,CAAC,MAAM;IACrC,IAAI,CAACkF,eAAe,CAACnB,OAAO,EAAE;MAE5B;IACF;IAEAoB,mBAAmB,CAAC,CAAC;IACrB7D,WAAW,CAAC,CAAC;EACf,CAAC,EAAE,CAAC6D,mBAAmB,CAAC,CAAC;EAGzB,MAAMK,kBAAkB,GAAGxF,WAAW,CACpC,CAACyF,IAAU,EAAEvB,KAAkB,KAAK;IAAA,IAAAwB,kBAAA;IAClC,OAAOC,OAAO,CACZzB,KAAK,KAAK,OAAO,GACb,EAAAwB,kBAAA,GAAA/B,SAAS,CAACI,OAAO,cAAA2B,kBAAA,uBAAjBA,kBAAA,CAAoBD,IAAI,CAAC,aAAYrC,KAAK,IACxCoB,aAAa,CAACT,OAAO,CAAC0B,IAAI,CAAC,YAAYrC,KAAK,GAC9CqB,aAAa,CAACV,OAAO,CAAC0B,IAAI,CAAC,KAAKvB,KACtC,CAAC;EACH,CAAC,EACD,EACF,CAAC;EACD,MAAM0B,aAAa,GAAG5F,WAAW,CAC9BkE,KAAkB,IAAK;IACtB,OAAOR,oBAAoB,CAACK,OAAO,CAAC8B,IAAI,CAAEJ,IAAI,IAAK;MACjD,OAAOD,kBAAkB,CAACC,IAAI,EAAEvB,KAAK,CAAC;IACxC,CAAC,CAAC;EACJ,CAAC,EACD,CAACsB,kBAAkB,CACrB,CAAC;EACD,MAAMM,aAAa,GAAG9F,WAAW,CAC9ByF,IAAU,IAAK;IACd,OAAO/B,oBAAoB,CAACK,OAAO,CAAC8B,IAAI,CAAEE,CAAC,IAAK;MAC9C,OAAOA,CAAC,KAAKN,IAAI,IAAID,kBAAkB,CAACO,CAAC,EAAE,OAAO,CAAC;IACrD,CAAC,CAAC;EACJ,CAAC,EACD,CAACP,kBAAkB,CACrB,CAAC;EACD,MAAMQ,SAAS,GAAGhG,WAAW,CAAC,MAAM;IAClC,OAAO4F,aAAa,CAAC,OAAO,CAAC;EAC/B,CAAC,EAAE,CAACA,aAAa,CAAC,CAAC;EAKnB,MAAMK,aAAa,GAAGjG,WAAW,CAC/B,CAACyF,IAAU,EAAES,KAAwB,KAAK;IACxC1B,aAAa,CAACT,OAAO,CAAC0B,IAAI,CAAC,GAAGS,KAAK;EACrC,CAAC,EACD,EACF,CAAC;EAKD,MAAMC,aAAa,GAAGnG,WAAW,CAC/B,CAACyF,IAAU,EAAEW,UAAuB,KAAK;IACvC,IAAIA,UAAU,KAAK3B,aAAa,CAACV,OAAO,CAAC0B,IAAI,CAAC,EAAE;MAE9ChB,aAAa,CAACV,OAAO,CAAC0B,IAAI,CAAC,GAAGW,UAAU;MACxC9E,WAAW,CAAC,CAAC;IACf;EACF,CAAC,EACD,EACF,CAAC;EAKD,MAAM+E,iBAAiB,GAAGrG,WAAW,CACnC,CAAC0B,IAAU,EAAE4E,MAAkC,EAAEC,MAAM,GAAG,KAAK,KAAK;IAClE,MAAMC,MAAM,GAAGA,CAACf,IAAU,EAAEgB,MAAyB,KAAK;MACxD,IAAIF,MAAM,EAAE;QACV,IAAIE,MAAM,KAAK,KAAK,EAAE;UACpB/E,IAAI,GAAGX,eAAe,CAACW,IAAI,CAAC;UAC5BtB,OAAO,CAACmG,MAAM,CAAC7E,IAAI,EAAE+D,IAAI,CAAC;QAC5B;MACF,CAAC,MAAM;QACL,IAAI,OAAOgB,MAAM,KAAK,WAAW,EAAE;UACjC/E,IAAI,GAAGX,eAAe,CAACW,IAAI,CAAC;UAC5BtB,OAAO,CAACsG,GAAG,CAAChF,IAAI,EAAE+D,IAAI,EAAEgB,MAAM,CAAC;QACjC;MACF;IACF,CAAC;IAED,IAAI,OAAOH,MAAM,KAAK,UAAU,EAAE;MAChCnC,MAAM,CAACwC,OAAO,CAACC,aAAa,CAAC7C,OAAO,CAAC,CAAC8C,OAAO,CAAC,CAAC,CAACpB,IAAI,EAAErE,KAAK,CAAC,KAAK;QAC/D,MAAM0F,MAAM,GAAG1G,OAAO,CAAC2G,GAAG,CAACrF,IAAI,EAAE+D,IAAI,CAAC;QACtC,IAAIqB,MAAM,EAAE;UAAA,IAAAE,qBAAA;UACV,MAAMC,KAAK,GAAG7G,OAAO,CAAC8G,GAAG,CAACxF,IAAI,EAAE+D,IAAI,CAAC;UACrC,MAAM0B,QAAQ,GAAG;YACfjB,KAAK,GAAAc,qBAAA,GAAExC,aAAa,CAACT,OAAO,cAAAiD,qBAAA,uBAArBA,qBAAA,CAAwBvB,IAAI;UACrC,CAAC;UACD,MAAMgB,MAAM,GAAGH,MAAM,CAAC;YACpBb,IAAI;YACJwB,KAAK;YACLvF,IAAI,EAAEuD,eAAe,CAAClB,OAAO;YAC7B3C,KAAK;YACL+F;UACF,CAAC,CAAC;UACFX,MAAM,CAACf,IAAI,EAAEgB,MAAM,CAAC;QACtB;MACF,CAAC,CAAC;MAEF,OAAO/E,IAAI;IACb,CAAC,MAAM,IAAI4E,MAAM,EAAE;MACjBnC,MAAM,CAACwC,OAAO,CAACL,MAAM,CAAC,CAACO,OAAO,CAAC,CAAC,CAACpB,IAAI,EAAE2B,SAAS,CAAC,KAAK;QACpD,MAAMN,MAAM,GAAG1G,OAAO,CAAC2G,GAAG,CAACrF,IAAI,EAAE+D,IAAI,CAAC;QACtC,IAAIqB,MAAM,EAAE;UAAA,IAAAO,qBAAA,EAAAC,sBAAA;UACV,MAAML,KAAK,GAAG7G,OAAO,CAAC8G,GAAG,CAACxF,IAAI,EAAE+D,IAAI,CAAC;UACrC,MAAMrE,KAAK,IAAAiG,qBAAA,GAAGT,aAAa,CAAC7C,OAAO,cAAAsD,qBAAA,uBAArBA,qBAAA,CAAwB5B,IAAI,CAAC;UAC3C,MAAM0B,QAAQ,GAAG;YAAEjB,KAAK,GAAAoB,sBAAA,GAAE9C,aAAa,CAACT,OAAO,cAAAuD,sBAAA,uBAArBA,sBAAA,CAAwB7B,IAAI;UAAE,CAAC;UACzD,MAAMgB,MAAM,GACV,OAAOW,SAAS,KAAK,UAAU,GAC3BA,SAAS,CAAC;YACRH,KAAK;YACLvF,IAAI,EAAEuD,eAAe,CAAClB,OAAO;YAC7B3C,KAAK;YACL+F;UACF,CAAC,CAAC,GACFC,SAAS;UACfZ,MAAM,CAACf,IAAI,EAAEgB,MAAM,CAAC;QACtB;MACF,CAAC,CAAC;MACF,OAAO/E,IAAI;IACb;IAEA,OAAOA,IAAI;EACb,CAAC,EACD,EACF,CAAC;EAKD,MAAM6F,iBAAiB,GAAGvH,WAAW,CACnC,CAAC0B,IAAU,EAAE4E,MAAM,GAAG7D,UAAU,IAAID,gBAAgB,KAAK;IACvD,IAAI8D,MAAM,EAAE;MACV,OAAOD,iBAAiB,CAAC3E,IAAI,EAAE4E,MAAM,EAAE,IAAI,CAAC;IAC9C;IAEA,OAAO5E,IAAI;EACb,CAAC,EACD,CAACe,UAAU,EAAED,gBAAgB,EAAE6D,iBAAiB,CAClD,CAAC;EAED,MAAMO,aAAa,GAAG9G,MAAM,CAA2B,CAAC,CAAC,CAAC;EAC1D,MAAM0H,aAAa,GAAG1H,MAAM,CAAoC,CAAC,CAAC,CAAC;EACnE,MAAM2H,aAAa,GAAGzH,WAAW,CAC/B,CAACyF,IAAU,EAAErE,KAA8B,KAAK;IAC9CwF,aAAa,CAAC7C,OAAO,CAAC0B,IAAI,CAAC,GAAGrE,KAAK;EACrC,CAAC,EACD,EACF,CAAC;EACD,MAAMsG,aAAa,GAAG1H,WAAW,CAC/B,CAACyF,IAAU,EAAErE,KAA8B,KAAK;IAC9CoG,aAAa,CAACzD,OAAO,CAAC0B,IAAI,CAAC,GAAGrE,KAAK;EACrC,CAAC,EACD,EACF,CAAC;EACD,MAAMuG,0BAA0B,GAAG3H,WAAW,CAAC,MAAM;IACnD,KAAK,MAAMyF,IAAI,IAAImB,aAAa,CAAC7C,OAAO,EAAE;MACxC,IAAIL,oBAAoB,CAACK,OAAO,CAAC6D,QAAQ,CAACnC,IAAI,CAAC,EAAE;QAC/C,MAAMrE,KAAK,GAAGwF,aAAa,CAAC7C,OAAO,CAAC0B,IAAI,CAAC;QACzC,IAAI9E,OAAO,CAACS,KAAK,CAACyG,SAAS,CAAC,IAAIlH,OAAO,CAACS,KAAK,CAAC0G,eAAe,CAAC,EAAE;UAC9D,OAAO,IAAI;QACb;MACF;IACF;IAEA,OAAO,KAAK;EACd,CAAC,EAAE,EAAE,CAAC;EAGN,MAAMC,UAAU,GAAGnH,cAAc,CAAOW,EAAE,CAAC;EAC3C,MAAMyG,iBAAiB,GAAGpH,cAAc,CAOrCW,EAAE,GAAG,cAAc,CAAC;EAEvB,MAAM0G,aAAa,GAAGF,UAAU,CAACrB,GAAG;EACpC,MAAMwB,gBAAgB,GAAGH,UAAU,CAACI,MAAM;EAC1C,MAAMC,gBAAgB,GAAGJ,iBAAiB,CAACG,MAAM;EACjD,MAAME,mBAAmB,IAAAhH,qBAAA,GAAG2G,iBAAiB,CAACtG,IAAI,cAAAL,qBAAA,uBAAtBA,qBAAA,CAAwBgH,mBAAmB;EAEvE,MAAMC,QAAQ,GAAGxI,MAAM,CAAC;IACtB4B,IAAI;IACJC,MAAM;IACN4G,MAAM,EAAER,UAAU,CAACrG,IAAI;IACvB8G,kBAAkB,EAAE;EACtB,CAAC,CAAC;EAEFvD,eAAe,CAAClB,OAAO,GAAGhE,OAAO,CAAC,MAAM;IAItC,IAAIwB,EAAE,IAAImD,WAAW,IAAI,CAACqD,UAAU,CAACrG,IAAI,EAAE;MACzCqG,UAAU,CAACU,MAAM,CAAC/D,WAAW,CAAC;IAChC;IAGA,IACEnD,EAAE,IACFmD,WAAW,IACXqD,UAAU,CAACrG,IAAI,IACf4G,QAAQ,CAACvE,OAAO,CAACwE,MAAM,KAAKR,UAAU,CAACrG,IAAI,IAC3CuD,eAAe,CAAClB,OAAO,KAAKW,WAAW,EACvC;MACA,OAAAgE,aAAA,CAAAA,aAAA,KACKzD,eAAe,CAAClB,OAAO,GACvBgE,UAAU,CAACrG,IAAI;IAEtB;IAGA,IACEH,EAAE,IACF,CAACmD,WAAW,IACZ,CAACO,eAAe,CAAClB,OAAO,IACxBgE,UAAU,CAACrG,IAAI,IACf4G,QAAQ,CAACvE,OAAO,CAACwE,MAAM,KAAKR,UAAU,CAACrG,IAAI,EAC3C;MACA,OAAOqG,UAAU,CAACrG,IAAI;IACxB;IAGA,IACEH,EAAE,IACFwG,UAAU,CAACrG,IAAI,IACf4G,QAAQ,CAACvE,OAAO,CAACwE,MAAM,KAAKR,UAAU,CAACrG,IAAI,IAC3CqG,UAAU,CAACrG,IAAI,KAAKuD,eAAe,CAAClB,OAAO,EAC3C;MACAuE,QAAQ,CAACvE,OAAO,CAACwE,MAAM,GAAGR,UAAU,CAACrG,IAAI;MACzC,OAAAgH,aAAA,CAAAA,aAAA,KACKzD,eAAe,CAAClB,OAAO,GACvBgE,UAAU,CAACrG,IAAI;IAEtB;IAGA,IAAIA,IAAI,KAAK4G,QAAQ,CAACvE,OAAO,CAACrC,IAAI,EAAE;MAClC4G,QAAQ,CAACvE,OAAO,CAACrC,IAAI,GAAGA,IAAI;MAC5B,OAAOA,IAAI;IACb;IAEA,OAAOuD,eAAe,CAAClB,OAAO;EAChC,CAAC,EAAE,CAACrC,IAAI,EAAEH,EAAE,EAAEmD,WAAW,EAAEqD,UAAU,CAAC,CAAC;EAEvC/G,eAAe,CAAC,MAAM;IAEpB,IAAIO,EAAE,IAAImD,WAAW,IAAI,CAACqD,UAAU,CAACrG,IAAI,EAAE;MACzCwG,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAGxD,WAAW,CAAC;IACjC;EACF,CAAC,EAAE,CAACnD,EAAE,EAAEmD,WAAW,EAAEwD,gBAAgB,EAAEH,UAAU,CAACrG,IAAI,CAAC,CAAC;EAExD3B,OAAO,CAAC,MAAM;IACZoF,mBAAmB,CAAC,CAAC;EAGvB,CAAC,EAAE,CAACF,eAAe,CAAClB,OAAO,CAAC,CAAC;EAE7B/C,eAAe,CAAC,MAAM;IACpB,IAAIO,EAAE,EAAE;MACN6G,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAG;QACjBb,iBAAiB;QACjBvB,SAAS;QACTF,aAAa;QACbjC,gBAAgB;QAChBI;MACF,CAAC,CAAC;MACF,IAAIxB,UAAU,IAAID,gBAAgB,EAAE;QAClC6F,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAG,CAAC;MACzB;IACF;EACF,CAAC,EAAE,CACDD,gBAAgB,EAChB3F,UAAU,EACV8E,iBAAiB,EACjB/E,gBAAgB,EAChBwD,SAAS,EACTF,aAAa,EACbvE,EAAE,EACF8G,mBAAmB,EACnBxE,gBAAgB,EAChBI,cAAc,CACf,CAAC;EAEF,MAAM0E,cAAc,GAAG5I,OAAO,CAAC,MAAM;IACnC,OAAOQ,QAAQ,CACb,MAAM;MAAA,IAAAqI,sBAAA;MACJ,CAAAA,sBAAA,GAAA3H,MAAM,CAAC4D,cAAc,cAAA+D,sBAAA,uBAArBA,sBAAA,CAAuBC,OAAO,CAC5BzG,gBAAgB,EAChB2C,IAAI,CAAC+D,SAAS,CAAC7D,eAAe,CAAClB,OAAO,CACxC,CAAC;IACH,CAAC,EACDgF,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,MAAM,GAAG,CAAC,GAAG,GACxC,CAAC;EACH,CAAC,EAAE,CAAC7G,gBAAgB,CAAC,CAAC;EAKtB,MAAM8G,eAAgD,GAAGlJ,WAAW,CAClE,CAACyF,IAAI,EAAEwB,KAAK,KAAK;IAAA,IAAAkC,qBAAA;IACf,IAAI,CAAC1D,IAAI,EAAE;MACT;IACF;IAEA,MAAM2D,SAAS,GACb3D,IAAI,KAAK,GAAG,GAERwB,KAAK,IAAAkC,qBAAA,GAELlE,eAAe,CAAClB,OAAO,cAAAoF,qBAAA,cAAAA,qBAAA,GACtB1D,IAAI,CAAC4D,KAAK,CAACnI,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CACrC;IAET,IAAIoI,OAAa,GAAG,IAAI;IACxB,IAAI;MAEFA,OAAO,GAAGvI,eAAe,CAACqI,SAAS,CAAC;IACtC,CAAC,CAAC,OAAOG,CAAC,EAAE;MACVD,OAAO,GAAGF,SAAS;IACrB;IAEA,IAAI3D,IAAI,KAAK,GAAG,EAAE;MAChBrF,OAAO,CAACsG,GAAG,CAAC4C,OAAO,EAAE7D,IAAI,EAAEwB,KAAK,CAAC;IACnC;IAGA,IAAI3E,WAAW,EAAE;MACfgH,OAAO,GAAGjD,iBAAiB,CAACiD,OAAO,EAAEhH,WAAW,CAAC;IACnD;IAEA2C,eAAe,CAAClB,OAAO,GAAGuF,OAAO;IAEjC,IAAI/H,EAAE,EAAE;MAEN2G,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAGoB,OAAO,CAAC;MAC3B,IAAI7G,UAAU,IAAID,gBAAgB,EAAE;QAClC6F,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAG,CAAC;MACzB;IACF;IAEA,IAAIjG,gBAAgB,IAAI,OAAOnB,MAAM,KAAK,WAAW,EAAE;MACrD0H,cAAc,CAAC,CAAC;IAClB;IAEArH,WAAW,CAAC,CAAC;EACf,CAAC,EACD,CACE4G,gBAAgB,EAChBzF,UAAU,EACVD,gBAAgB,EAChBjB,EAAE,EACF8E,iBAAiB,EACjBgC,mBAAmB,EACnBjG,gBAAgB,EAChBuG,cAAc,EACdrG,WAAW,CAEf,CAAC;EAED,MAAMkH,OAAO,GAAGxJ,WAAW,CAAEsJ,OAAa,IAAK;IAC7CrE,eAAe,CAAClB,OAAO,GAAGuF,OAAO;IACjChI,WAAW,CAAC,CAAC;EACf,CAAC,EAAE,EAAE,CAAC;EAKN,MAAMmI,2BAA6D,GACjEzJ,WAAW,CACT,OAAOyF,IAAI,EAAEwB,KAAK,KAAK;IACrB,IAAI,CAACxB,IAAI,EAAE;MACT,OAAO,IAAI;IACb;IAEAyD,eAAe,CAACzD,IAAI,EAAEwB,KAAK,CAAC;IAE5B,IAAItG,OAAO,CAACkB,YAAY,CAAC,EAAE;MACzB,OAAMA,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAG4D,IAAI,EAAEwB,KAAK,CAAC;IACnC,CAAC,MAAM;MACLpF,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAG4D,IAAI,EAAEwB,KAAK,CAAC;IAC7B;EACF,CAAC,EACD,CAACpF,YAAY,EAAEqH,eAAe,CAChC,CAAC;EAKH,MAAMQ,gBAAkD,GAAG1J,WAAW,CACpE,OAAOyF,IAAI,EAAEwB,KAAK,GAAG,aAAa,KAAK;IACrC,IAAI,CAACxB,IAAI,EAAE;MACT,OAAO,IAAI;IACb;IAEA,IAAIwB,KAAK,KAAK,aAAa,EAAE;MAC3BwC,2BAA2B,CAAChE,IAAI,EAAEwB,KAAK,CAAC;IAC1C;IAEArD,gBAAgB,CAACG,OAAO,GAAG,KAAK;IAEhCwB,YAAY,CAAC,CAAC;IAEd,MAAM7D,IAAI,GAAGuD,eAAe,CAAClB,OAAe;IAC5C,MAAM4F,eAAe,GAAGpH,YAAY,GAChC8D,iBAAiB,CAAC3E,IAAI,EAAEa,YAAY,CAAC,GACrCb,IAAI;IAER,KAAK,MAAMkI,EAAE,IAAIC,qBAAqB,CAAC9F,OAAO,EAAE;MAC9C,IAAIpD,OAAO,CAACiB,QAAQ,CAAC,EAAE;QACrB,MAAMgI,EAAE,CAACD,eAAe,CAAC;MAC3B,CAAC,MAAM;QACLC,EAAE,CAACD,eAAe,CAAC;MACrB;IACF;IAEA,IAAIhJ,OAAO,CAACiB,QAAQ,CAAC,EAAE;MACrB,OAAO,MAAMA,QAAQ,CAAC+H,eAAe,CAAC;IACxC;IAEA,OAAO/H,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAG+H,eAAe,CAAC;EACpC,CAAC,EACD,CACEF,2BAA2B,EAC3BpD,iBAAiB,EACjBzE,QAAQ,EACRW,YAAY,EACZgD,YAAY,CAEhB,CAAC;EAED,MAAMsE,qBAAqB,GAAG/J,MAAM,CAAwB,EAAE,CAAC;EAC/D,MAAMgK,kBAAkB,GAAG9J,WAAW,CACnC+J,QAAiC,IAAK;IACrC,MAAMjD,MAAM,GAAG+C,qBAAqB,CAAC9F,OAAO,CAAC8B,IAAI,CAAE+D,EAAE,IAAK;MACxD,OAAOG,QAAQ,KAAKH,EAAE;IACxB,CAAC,CAAC;IACF,IAAI,CAAC9C,MAAM,EAAE;MACX+C,qBAAqB,CAAC9F,OAAO,CAACiG,IAAI,CAACD,QAAQ,CAAC;IAC9C;EACF,CAAC,EACD,EACF,CAAC;EAGD,MAAME,gBAAgB,GAAGjK,WAAW,CAAEyF,IAAU,IAAK;IACnD/B,oBAAoB,CAACK,OAAO,GAAGmG,WAAW,CACxCxG,oBAAoB,CAACK,OAAO,EAC5B0B,IACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,MAAM0E,kBAAkB,GAAGnK,WAAW,CAAEyF,IAAU,IAAK;IACrD/B,oBAAoB,CAACK,OAAO,GAAGqG,cAAc,CAC3C1G,oBAAoB,CAACK,OAAO,EAC5B0B,IACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAGN,MAAM4E,WAAW,GAAGrK,WAAW,CAAC,MAAM;IACpC,IAAI,OAAOiB,MAAM,KAAK,WAAW,EAAE;MAAA,IAAAqJ,OAAA,EAAAC,gBAAA;MACjC,CAAAD,OAAA,GAAArJ,MAAM,cAAAqJ,OAAA,wBAAAC,gBAAA,GAAND,OAAA,CAAQE,QAAQ,cAAAD,gBAAA,uBAAhBA,gBAAA,CAAAlF,IAAA,CAAAiF,OAAA,EAAmB;QAAEG,GAAG,EAAE,CAAC;QAAEC,QAAQ,EAAE;MAAS,CAAC,CAAC;IACpD;EACF,CAAC,EAAE,EAAE,CAAC;EAKN,MAAMC,gBAAgB,GAAG3K,WAAW,CAClC,MAAO4K,IAAI,IAAK;IACd,MAAM;MACJ9I,QAAQ;MACR+I,oBAAoB;MACpBC,mBAAmB;MACnBC;IACF,CAAC,GAAGH,IAAI;IAER3G,cAAc,CAAC;MAAEiC,KAAK,EAAE/C;IAAU,CAAC,CAAC;IAEpC,MAAM6H,sBAAsB,GAC1B,CAACD,cAAc,GACX,IAAI,GAEJ,CAAC/E,SAAS,CAAC,CAAC,IAAIJ,aAAa,CAAC,SAAS,CAAC,MAC3CiF,oBAAoB,IAAIlD,0BAA0B,CAAC,CAAC,CAAC;IAExD,IAAIqD,sBAAsB,EAAE;MAC1B1G,YAAY,CAAC,SAAS,CAAC;IACzB;IAGA,IAAI,CAACwG,mBAAmB,EAAE;MACxB,KAAK,MAAM;QACTrF,IAAI;QACJwF,IAAI;QACJlB;MACF,CAAC,IAAImB,sBAAsB,CAACnH,OAAO,EAAE;QACnC,IACEkH,IAAI,KAAK,UAAU,IACnBvH,oBAAoB,CAACK,OAAO,CAAC6D,QAAQ,CAACnC,IAAI,CAAC,EAC3C;UAEA,IAAIuF,sBAAsB,EAAE;YAC1B,MAAMjB,QAAQ,CAAC,CAAC;UAClB,CAAC,MAAM;YACLA,QAAQ,CAAC,CAAC;UACZ;QACF;MACF;IACF;IAEA,IACE,EAAEgB,cAAc,GAAG,KAAK,GAAG/E,SAAS,CAAC,CAAC,CAAC,IACvC,CAACJ,aAAa,CAAC,SAAS,CAAC,KACxBkF,mBAAmB,GAAG,IAAI,GAAG,CAAClF,aAAa,CAAC,OAAO,CAAC,CAAC,EACtD;MACA,IAAIa,MAAkC;MAEtC,IAAI;QACFA,MAAM,GAAG,MAAM3E,QAAQ,CAAC,CAAC;QAEzB,IAAI2E,MAAM,YAAYrD,KAAK,EAAE;UAC3B,MAAMqD,MAAM;QACd;MACF,CAAC,CAAC,OAAOP,KAAK,EAAE;QACdO,MAAM,GAAG;UAAEP;QAAM,CAAC;MACpB;MAEA,MAAMhC,KAAK,GAAGuC,MAA0B;MAExC,IAAIuE,sBAAsB,EAAE;QAC1B1G,YAAY,CAACJ,KAAK,aAALA,KAAK,eAALA,KAAK,CAAEgC,KAAK,GAAG,OAAO,GAAG,UAAU,CAAC;MACnD;MAGA,IAAIhC,KAAK,aAALA,KAAK,eAALA,KAAK,CAAG,QAAQ,CAAC,EAAE;QACrBI,YAAY,CAACJ,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAG,QAAQ,CAAC,CAAC;MACjC;MAEA,IAAIA,KAAK,aAALA,KAAK,eAALA,KAAK,CAAEgC,KAAK,IAAIhC,KAAK,aAALA,KAAK,eAALA,KAAK,CAAEiH,OAAO,IAAIjH,KAAK,aAALA,KAAK,eAALA,KAAK,CAAEkH,IAAI,EAAE;QACjDnH,cAAc,CAACC,KAAK,CAAC;MACvB;IACF,CAAC,MAAM;MACL,IAAI8G,sBAAsB,EAAE;QAC1B/J,MAAM,CAACoK,qBAAqB,CAAC,MAAM;UACjC/G,YAAY,CAACnB,SAAS,CAAC;QACzB,CAAC,CAAC;QAEF,IAAI,CAAC2H,mBAAmB,EAAE;UAExBQ,mBAAmB,CAACvH,OAAO,GAAG,MAAM;YAClC9C,MAAM,CAACoK,qBAAqB,CAAC,MAAM;cAIjCV,gBAAgB,CAAAjC,aAAA,CAAAA,aAAA,KAAMkC,IAAI;gBAAEE,mBAAmB,EAAE;cAAI,EAAE,CAAC;YAC1D,CAAC,CAAC;UACJ,CAAC;QACH;MACF;MAEA/I,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAG,CAAC;MAEnB8B,gBAAgB,CAAC,IAAI,CAAC;IACxB;IAEA,OAAOoB,eAAe,CAAClB,OAAO;EAChC,CAAC,EACD,CACEE,cAAc,EACd+B,SAAS,EACT2B,0BAA0B,EAC1B/B,aAAa,EACbtB,YAAY,EACZvC,eAAe,EACf8B,gBAAgB,CAEpB,CAAC;EAKD,MAAM0H,YAAY,GAAGvL,WAAW,CAC9B,OAAO;IAAEwL,WAAW,GAAG;EAAK,CAAC,GAAG,CAAC,CAAC,KAAK;IACrCb,gBAAgB,CAAC;MACfE,oBAAoB,EAAElK,OAAO,CAACmB,QAAQ,CAAC;MACvCA,QAAQ,EAAE,MAAAA,CAAA,KAAY;QAEpB,MAAMJ,IAAI,GAAGuD,eAAe,CAAClB,OAAO;QACpC,MAAM0H,YAAY,GAAGlE,iBAAiB,CACpChF,YAAY,GAAG8D,iBAAiB,CAAC3E,IAAI,EAAEa,YAAY,CAAC,GAAGb,IACzD,CAAC;QACD,MAAMgK,IAAI,GAAG;UACXC,SAAS,EAAEA,CAAA,KAAM;YAAA,IAAAC,kBAAA;YACfJ,WAAW,aAAXA,WAAW,wBAAAI,kBAAA,GAAXJ,WAAW,CAAEK,KAAK,cAAAD,kBAAA,uBAAlBA,kBAAA,CAAAvG,IAAA,CAAAmG,WAAqB,CAAC;YAEtB,IAAI,OAAOvK,MAAM,KAAK,WAAW,EAAE;cACjC,IAAImB,gBAAgB,EAAE;gBACpBnB,MAAM,CAAC4D,cAAc,CAACiH,UAAU,CAAC1J,gBAAgB,CAAC;cACpD;YACF;YAEAd,WAAW,CAAC,CAAC;UACf,CAAC;UACDyK,SAAS,EAAEA,CAAA,KAAM;YACf9G,eAAe,CAAClB,OAAO,GAAG,CAAC,CAAS;YACpC,IAAIxC,EAAE,EAAE;cACN0G,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAG,CAAC,CAAS,CAAC;YAC7B,CAAC,MAAM;cACL3G,WAAW,CAAC,CAAC;YACf;UACF;QACF,CAAC;QAED,IAAImF,MAAM,GAAGtD,SAAS;QAEtB,IAAIxC,OAAO,CAACmB,QAAQ,CAAC,EAAE;UACrB2E,MAAM,GAAG,MAAM3E,QAAQ,CAAC2J,YAAY,EAAEC,IAAI,CAAC;QAC7C,CAAC,MAAM;UACLjF,MAAM,GAAG3E,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAG2J,YAAY,EAAEC,IAAI,CAAC;QACzC;QAEA,MAAMM,cAAc,GAAG,OAAMhK,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAC3CyJ,YAAY,EACZhF,MACF,CAAC;QACD,IAAIuF,cAAc,EAAE;UAClBvF,MAAM,GACJtC,MAAM,CAAC8H,IAAI,CAACxF,MAAM,CAAC,CAACyF,MAAM,GAAG,CAAC,GAAAxD,aAAA,CAAAA,aAAA,KACrBjC,MAAM,GAAKuF,cAAc,IAC9BA,cAAc;QACtB;QAEA,IAAI/J,iBAAiB,EAAE;UACrBoI,WAAW,CAAC,CAAC;QACf;QAEA,OAAO5D,MAAM;MACf;IACF,CAAC,CAAC;EACJ,CAAC,EACD,CACEc,iBAAiB,EACjBoD,gBAAgB,EAChBpJ,EAAE,EACF8E,iBAAiB,EACjBvE,QAAQ,EACRE,gBAAgB,EAChBqI,WAAW,EACXpI,iBAAiB,EACjBG,gBAAgB,EAChB6F,aAAa,EACb1F,YAAY,CAEhB,CAAC;EAGD,MAAM2I,sBAAsB,GAAGpL,MAAM,CAA2B,EAAE,CAAC;EACnE,MAAMqM,qBAAqB,GAAGnM,WAAW,CACvC,CACEyF,IAA+B,EAC/BwF,IAA+B,EAC/BlB,QAAuC,KACpC;IACHmB,sBAAsB,CAACnH,OAAO,GAC5BmH,sBAAsB,CAACnH,OAAO,CAACuC,MAAM,CAAC,CAAC;MAAEb,IAAI,EAAEM,CAAC;MAAEkF,IAAI,EAAEmB;IAAE,CAAC,KAAK;MAC9D,OAAO,EAAErG,CAAC,KAAKN,IAAI,IAAI2G,CAAC,KAAKnB,IAAI,CAAC;IACpC,CAAC,CAAC;IACJC,sBAAsB,CAACnH,OAAO,CAACiG,IAAI,CAAC;MAAEvE,IAAI;MAAEwF,IAAI;MAAElB;IAAS,CAAC,CAAC;EAC/D,CAAC,EACD,EACF,CAAC;EAGD,MAAMuB,mBAAmB,GAAGxL,MAAM,CAAa,IAAI,CAAC;EACpD,IAAI,CAAC8F,aAAa,CAAC,SAAS,CAAC,EAAE;IAAA,IAAAyG,qBAAA;IAC7B,CAAAA,qBAAA,GAAAf,mBAAmB,CAACvH,OAAO,cAAAsI,qBAAA,uBAA3BA,qBAAA,CAAAhH,IAAA,CAAAiG,mBAA8B,CAAC;IAC/BA,mBAAmB,CAACvH,OAAO,GAAG,IAAI;EACpC;EAGAtD,cAAc,CAAC,MAAM;IACnB,IAAIkB,MAAM,EAAE;MAAA,IAAA2K,eAAA;MACVpH,eAAe,CAACnB,OAAO,IAAAuI,eAAA,GAAG7I,MAAM,CAACM,OAAO,cAAAuI,eAAA,uBAAdA,eAAA,CAAgBC,OAAO,CAAC5K,MAAM,CAAC;IAC3D;IAGA4D,YAAY,CAAC,CAAC;EAChB,CAAC,CAAC;EACF7E,eAAe,CAAC,MAAM;IACpB,IAAIiB,MAAM,IAAIA,MAAM,KAAK2G,QAAQ,CAACvE,OAAO,CAACpC,MAAM,EAAE;MAAA,IAAA6K,gBAAA;MAChDlE,QAAQ,CAACvE,OAAO,CAACpC,MAAM,GAAGA,MAAM;MAChCuD,eAAe,CAACnB,OAAO,IAAAyI,gBAAA,GAAG/I,MAAM,CAACM,OAAO,cAAAyI,gBAAA,uBAAdA,gBAAA,CAAgBD,OAAO,CAAC5K,MAAM,CAAC;MAEzD4D,YAAY,CAAC,CAAC;MACdjE,WAAW,CAAC,CAAC;IACf;EACF,CAAC,EAAE,CAACK,MAAM,EAAE4D,YAAY,EAAEjE,WAAW,CAAC,CAAC;EAEvC,MAAMmL,SAAS,GAAGzM,WAAW,CAAC,MAAM;IAClCsE,YAAY,CAACnB,SAAS,CAAC;IACvBc,cAAc,CAAC;MACbmH,IAAI,EAAEjI,SAAS;MACfgI,OAAO,EAAEhI,SAAS;MAClB+C,KAAK,EAAE/C;IACT,CAAC,CAAC;EACJ,CAAC,EAAE,CAACmB,YAAY,EAAEL,cAAc,CAAC,CAAC;EAElC,MAAM;IAAEyI,iBAAiB,EAAEnI;EAAU,CAAC,GAAGoI,mBAAmB,CAAC;IAC3DpI,SAAS,EAAEF,YAAY,CAACN,OAAO;IAC/B6I,OAAO,EAAEhH,aAAa,CAAC,SAAS,CAAC;IACjC1D,wBAAwB;IACxBC,kBAAkB;IAClBsK;EACF,CAAC,CAAC;EAEF,MAAMI,WAAW,GAAG7I,cAAc,CAACD,OAAO;EAC1C,MAAM+I,QAAQ,GACZ,QAAO9J,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAG,UAAU,CAAC,MAAK,SAAS,GACnCA,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAG,UAAU,CAAC,GACjBuB,SAAS,KAAK,SAAS,KAAM,IAAI,GAClC,IAAI,GACJpB,SAAS;EAEf,OACEtD,KAAA,CAAAkN,aAAA,CAACjM,OAAO,CAACK,QAAQ;IACf8F,KAAK,EAAAyB,aAAA;MAEHgB,gBAAgB;MAChBD,2BAA2B;MAC3B8B,YAAY;MACZtB,gBAAgB;MAChBE,kBAAkB;MAClBQ,gBAAgB;MAChBrG,YAAY;MACZL,cAAc;MACdJ,gBAAgB;MAChBsI,qBAAqB;MACrBhG,aAAa;MACbF,aAAa;MACbwB,aAAa;MACbC,aAAa;MACb1B,SAAS;MACTF,aAAa;MACbF,aAAa;MACbL,YAAY;MACZ2D,eAAe;MACfM,OAAO;MACPjC,iBAAiB;MACjBuC,kBAAkB;MAClBO,WAAW;MAGX1I,MAAM;MACNmL,QAAQ;MACRlK,QAAQ;MACR2B,SAAS;MACTsI,WAAW;MACX/J,oBAAoB;MACpBQ,UAAU,EAAE,IAAI;MAChBgC,MAAM,EAAE3B,SAAS,CAACI,OAAO;MACzBD,aAAa,EAAEF,gBAAgB,CAACG,OAAO;MACvC6C,aAAa;MACbY,aAAa;MACbnF,WAAW,EAAEoB,MAAM,CAACM,OAAO;MAG3BxC,EAAE;MACFG,IAAI,EAAEuD,eAAe,CAAClB,OAAO;MAC7B3C;IAAK,GACF4B,IAAI;EACP,GAEFnD,KAAA,CAAAkN,aAAA,CAACvM,kBAAkB;IACjBwM,UAAU,EACRxL,cAAc,GACV;MACEyL,YAAY,EAAE;QACZ1L,EAAE,EAAEC,cAAc;QAClB0L,KAAK,EAAE3J,WAAW,CAAC4J,iBAAiB;QACpCC,IAAI,EAAExJ,gBAAgB,CAACG;MACzB;IACF,CAAC,GACDZ,SACL;IACDqI,WAAW,EAAEsB,QAAQ,GAAG;MAAEA,QAAQ,EAAE;IAAK,CAAC,GAAG3J,SAAU;IACvDT,MAAM,EAAEA,MAAM,GAAGA,MAAM,GAAGS,SAAU;IACpCR,YAAY,EAAEA,YAAY,GAAGA,YAAY,GAAGQ;EAAU,GAErDJ,QACiB,CACJ,CAAC;AAEvB;AAIA,OAAO,SAASmH,WAAWA,CAACmD,KAAe,EAAE5H,IAAU,EAAY;EACjE,OAAO4H,KAAK,CAACzF,QAAQ,CAACnC,IAAI,CAAC,GAAG4H,KAAK,GAAGA,KAAK,CAACC,MAAM,CAAC7H,IAAI,CAAC;AAC1D;AAEA,OAAO,SAAS2E,cAAcA,CAACiD,KAAe,EAAE5H,IAAU,EAAY;EACpE,OAAO4H,KAAK,CAAC/G,MAAM,CAAEiH,QAAQ,IAAKA,QAAQ,KAAK9H,IAAI,CAAC;AACtD;AAUA,SAASkH,mBAAmBA,CAACvL,KAA4B,EAAE;EACzD,MAAM;IACJmD,SAAS;IACTqI,OAAO;IACP1K,wBAAwB;IACxBC,kBAAkB;IAClBsK;EACF,CAAC,GAAGrL,KAAK,IAAI,CAAC,CAAC;EAEf,MAAM,GAAGE,WAAW,CAAC,GAAGrB,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAClD,MAAMuN,QAAQ,GAAG1N,MAAM,CAAc,CAAC;EACtC,MAAM2N,MAAM,GAAG3N,MAAM,CAAgB,IAAI,CAAC;EAC1C,MAAM4N,UAAU,GAAG5N,MAAM,CAItB,CAAC,CAAC,CAAC;EAEN,MAAM6N,QAAQ,GAAG3N,WAAW,CACzBkE,KAAkB,IAAK;IACtBsJ,QAAQ,CAACzJ,OAAO,GAAGG,KAAK;IACxB5C,WAAW,CAAC,CAAC;EACf,CAAC,EACD,CAACA,WAAW,CACd,CAAC;EAED,MAAMsM,KAAK,GAAG5N,WAAW,CAAC,MAAM;IAC9B,KAAK,MAAM6N,GAAG,IAAIH,UAAU,CAAC3J,OAAO,EAAE;MACpC+J,YAAY,CAACJ,UAAU,CAAC3J,OAAO,CAAC8J,GAAG,CAAC,CAAC;IACvC;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAME,cAAc,GAAGjO,MAAM,CAAC,KAAK,CAAC;EACpC,MAAMkO,gBAAgB,GAAGlO,MAAM,CAAc,IAAI,CAAC;EAElDI,SAAS,CAAC,MAAM;IAKd,MAAM+N,MAAM,GAAGlF,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,MAAM;IAC9C,MAAMiF,OAAO,GACXhM,wBAAwB,aAAxBA,wBAAwB,cAAxBA,wBAAwB,GAEvB+L,MAAM,GAAG,CAAC,GAAG,IAAK;IAErB,IAAIT,QAAQ,CAACzJ,OAAO,IAAIQ,SAAS,KAAK,OAAO,EAAE;MAC7CqJ,KAAK,CAAC,CAAC;MACPD,QAAQ,CAACxK,SAAS,CAAC;MACnB;IACF;IAEA,IAAIoB,SAAS,KAAK,OAAO,EAAE;MACzBqJ,KAAK,CAAC,CAAC;MACPD,QAAQ,CAAC,OAAO,CAAC;MAEjBD,UAAU,CAAC3J,OAAO,CAAC8H,KAAK,GAAGsC,UAAU,CAAC,MAAM;QAC1CV,MAAM,CAAC1J,OAAO,GAAG,CAAC;QAClB4J,QAAQ,CAACxK,SAAS,CAAC;MACrB,CAAC,EAAE+K,OAAO,CAAC;MACX;IACF;IAEA,IAAI3J,SAAS,KAAK,UAAU,EAAE;MAC5BwJ,cAAc,CAAChK,OAAO,GAAG,IAAI;IAC/B;IAEA,IAAIQ,SAAS,KAAK,SAAS,IAAIiJ,QAAQ,CAACzJ,OAAO,KAAK,SAAS,EAAE;MAC7DiK,gBAAgB,CAACjK,OAAO,GAAGqK,QAAQ,CAACC,aAA4B;MAChET,KAAK,CAAC,CAAC;MACPH,MAAM,CAAC1J,OAAO,GAAGuK,IAAI,CAACC,GAAG,CAAC,CAAC;MAC3BR,cAAc,CAAChK,OAAO,GAAG,KAAK;MAC9B4J,QAAQ,CAAC,SAAS,CAAC;IACrB,CAAC,MAAM,IAAIH,QAAQ,CAACzJ,OAAO,KAAK,SAAS,EAAE;MACzC,MAAMyK,MAAM,GAAGC,IAAI,CAACC,GAAG,CAACJ,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGd,MAAM,CAAC1J,OAAO,CAAC;MACpD,MAAM4K,KAAK,GAAGV,MAAM,GAAGC,OAAO,GAAGO,IAAI,CAACC,GAAG,CAACR,OAAO,GAAGM,MAAM,EAAE,CAAC,CAAC;MAE9D,IAAI,CAAC5B,OAAO,EAAE;QACZc,UAAU,CAAC3J,OAAO,CAAC6K,QAAQ,GAAGT,UAAU,CAAC,MAAM;UAC7C,IAAIJ,cAAc,CAAChK,OAAO,EAAE;YAC1B4J,QAAQ,CAAC,UAAU,CAAC;UACtB;UACA1M,MAAM,CAACoK,qBAAqB,CAAC,MAAM;YAAA,IAAAwD,qBAAA,EAAAC,sBAAA;YACjC,CAAAD,qBAAA,GAAAb,gBAAgB,CAACjK,OAAO,cAAA8K,qBAAA,wBAAAC,sBAAA,GAAxBD,qBAAA,CAA0BE,KAAK,cAAAD,sBAAA,uBAA/BA,sBAAA,CAAAzJ,IAAA,CAAAwJ,qBAAkC,CAAC;UACrC,CAAC,CAAC;QACJ,CAAC,EAAEF,KAAK,CAAC;QAETjB,UAAU,CAAC3J,OAAO,CAAC8H,KAAK,GAAGsC,UAAU,CAAC,MAAM;UAC1CV,MAAM,CAAC1J,OAAO,GAAG,CAAC;UAClB4J,QAAQ,CAACxK,SAAS,CAAC;UACnByK,KAAK,CAAC,CAAC;QACT,CAAC,EAAEe,KAAK,GAAGT,OAAO,CAAC;MACrB;IACF;IAEA,IAAIV,QAAQ,CAACzJ,OAAO,KAAK,SAAS,EAAE;MAClC2J,UAAU,CAAC3J,OAAO,CAACiL,OAAO,GAAGb,UAAU,CAAC,MAAM;QAC5CP,KAAK,CAAC,CAAC;QACPD,QAAQ,CAACxK,SAAS,CAAC;QACnBsJ,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAG,CAAC;MACf,CAAC,EAAEtK,kBAAkB,aAAlBA,kBAAkB,cAAlBA,kBAAkB,GAAI,KAAK,CAAC;IACjC;IAEA,OAAOyL,KAAK;EACd,CAAC,EAAE,CACDA,KAAK,EACL1L,wBAAwB,EACxBqC,SAAS,EACToJ,QAAQ,EACRf,OAAO,EACPzK,kBAAkB,EAClBsK,SAAS,CACV,CAAC;EAEF,OAAO;IAAEC,iBAAiB,EAAEc,QAAQ,CAACzJ;EAAQ,CAAC;AAChD"}
1
+ {"version":3,"file":"Provider.js","names":["React","useRef","useMemo","useCallback","useReducer","useEffect","useContext","pointer","makeAjvInstance","ajvErrorsToFormErrors","debounce","FieldPropsProvider","useMountEffect","useUpdateEffect","isAsync","useSharedState","useTranslation","Context","structuredClone","useLayoutEffect","window","isArrayJsonPointer","Provider","props","_sharedAttachments$da","forceUpdate","id","globalStatusId","defaultData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","scrollTopOnSubmit","minimumAsyncBehaviorTime","asyncSubmitTimeout","sessionStorageId","ajvInstance","transformIn","transformOut","filterSubmitData","filterData","locale","translations","required","errorMessages","contextErrorMessages","children","rest","_objectWithoutProperties","_excluded","undefined","Error","nestedContext","hasContext","translation","Form","ajvRef","mountedFieldPathsRef","hasVisibleErrorRef","errorsRef","showAllErrorsRef","setShowAllErrors","showAllErrors","current","setHasVisibleError","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","some","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","filterDataHandler","valuePropsRef","setFieldProps","setValueProps","hasFieldWithAsyncValidator","validator","onBlurValidator","sharedData","sharedAttachments","setSharedData","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","update","_objectSpread","storeInSession","_window$sessionStorag2","setItem","stringify","process","env","NODE_ENV","updateDataValue","_internalDataRef$curr","givenData","match","newData","e","setData","handlePathChangeUnvalidated","handlePathChange","transformedData","cb","changeHandlerStackRef","addOnChangeHandler","callback","handleMountField","addListPath","handleUnMountField","removeListPath","scrollToTop","_window","_window$scrollTo","scrollTo","top","behavior","handleSubmitCall","args","enableAsyncBehaviour","skipFieldValidation","skipErrorCheck","asyncBehaviorIsEnabled","type","fieldEventListenersRef","warning","info","requestAnimationFrame","onSubmitContinueRef","handleSubmit","formElement","filteredData","opts","resetForm","_formElement$reset","reset","removeItem","clearData","completeResult","keys","setFieldEventListener","t","_onSubmitContinueRef$","_ajvRef$current","compile","_ajvRef$current2","onTimeout","bufferedFormState","useFormStatusBuffer","waitFor","submitState","disabled","createElement","hasVisibleError","FormStatus","globalStatus","title","errorSummaryTitle","show","paths","concat","thisPath","stateRef","nowRef","timeoutRef","setState","clear","key","clearTimeout","hadCompleteRef","activeElementRef","isTest","minimum","setTimeout","document","activeElement","Date","now","offset","Math","max","delay","complete","_activeElementRef$cur","_activeElementRef$cur2","focus","timeout"],"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 { debounce } from '../../../../shared/helpers'\nimport FieldPropsProvider from '../../Form/FieldProps'\nimport useMountEffect from '../../../../shared/helpers/useMountEffect'\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 TransformData,\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 /**\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 * 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 * Source data, will be used instead of defaultData, and leading to updates if changed after mount\n */\n data?: Data\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 * Filter the `onSubmit` output data, based on your criteria: `({ path, value, data, props, internal }) => !props?.disabled`. It will iterate on each data entry (/path). Return false to exclude the entry.\n */\n filterSubmitData?: FilterData\n /**\n * @deprecated Use `filterSubmitData` instead\n */\n filterData?: 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: any\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 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 data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n scrollTopOnSubmit,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n sessionStorageId,\n ajvInstance,\n transformIn,\n transformOut,\n filterSubmitData,\n filterData,\n locale,\n translations,\n required,\n errorMessages: contextErrorMessages,\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 nestedContext = useContext(Context)\n if (nestedContext?.hasContext) {\n throw new Error('DataContext (Form.Handler) can not be nested')\n }\n\n // - Locale\n const translation = useTranslation().Form\n\n // - Ajv\n const ajvRef = useRef<Ajv>(makeAjvInstance(ajvInstance))\n\n // - Paths\n const mountedFieldPathsRef = useRef<Path[]>([])\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 setHasVisibleError = useCallback(\n (path: Path, hasError: boolean) => {\n if (hasError) {\n hasVisibleErrorRef.current[path] = hasError\n } else {\n delete hasVisibleErrorRef.current[path]\n }\n forceUpdate()\n },\n []\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 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 return mountedFieldPathsRef.current.some((path) => {\n return checkFieldStateFor(path, state)\n })\n },\n [checkFieldStateFor]\n )\n const hasFieldError = useCallback(\n (path: Path) => {\n return mountedFieldPathsRef.current.some((p) => {\n return p === path && checkFieldStateFor(p, 'error')\n })\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 * Filter the data set based on the filterData function\n */\n const filterDataHandler = useCallback(\n (data: Data, filter = filterData || filterSubmitData) => {\n if (filter) {\n return mutateDataHandler(data, filter, true)\n }\n\n return data\n },\n [filterData, filterSubmitData, mutateDataHandler]\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 (mountedFieldPathsRef.current.includes(path)) {\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 filterDataHandler?: Props<Data>['filterSubmitData']\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 internalDataRef.current = 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 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 }, [data, id, initialData, sharedData])\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 filterDataHandler,\n hasErrors,\n hasFieldError,\n setShowAllErrors,\n setSubmitState,\n })\n if (filterData || filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n }, [\n extendAttachment,\n filterData,\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 /**\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 // - 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 (filterData || filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n\n if (sessionStorageId && typeof window !== 'undefined') {\n storeInSession()\n }\n\n forceUpdate()\n },\n [\n extendSharedData,\n filterData,\n filterSubmitData,\n id,\n mutateDataHandler,\n rerenderUseDataHook,\n sessionStorageId,\n storeInSession,\n transformIn,\n ]\n )\n\n const setData = useCallback((newData: Data) => {\n internalDataRef.current = newData\n forceUpdate()\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 [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 transformedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n for (const cb of changeHandlerStackRef.current) {\n if (isAsync(onChange)) {\n await cb(transformedData)\n } else {\n cb(transformedData)\n }\n }\n\n if (isAsync(onChange)) {\n return await onChange(transformedData)\n }\n\n return onChange?.(transformedData)\n },\n [\n handlePathChangeUnvalidated,\n mutateDataHandler,\n onChange,\n transformOut,\n validateData,\n ]\n )\n\n const changeHandlerStackRef = useRef<Array<OnChange<Data>>>([])\n const addOnChangeHandler = useCallback(\n (callback: (data: unknown) => void) => {\n const exists = changeHandlerStackRef.current.some((cb) => {\n return callback === cb\n })\n if (!exists) {\n changeHandlerStackRef.current.push(callback)\n }\n },\n []\n )\n\n // - Mounted fields\n const handleMountField = useCallback((path: Path) => {\n mountedFieldPathsRef.current = addListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n const handleUnMountField = useCallback((path: Path) => {\n mountedFieldPathsRef.current = removeListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n // - Features\n const scrollToTop = useCallback(() => {\n if (typeof window !== 'undefined') {\n window?.scrollTo?.({ top: 0, behavior: 'smooth' })\n }\n }, [])\n\n /**\n * Shared logic dedicated to submit the whole form\n */\n const handleSubmitCall = useCallback<ContextState['handleSubmitCall']>(\n async (args) => {\n const {\n onSubmit,\n enableAsyncBehaviour,\n skipFieldValidation,\n skipErrorCheck,\n } = args\n\n setSubmitState({ error: undefined })\n\n const asyncBehaviorIsEnabled =\n (skipErrorCheck\n ? true\n : // Don't enable async behaviour if we have errors, but when we have a pending state\n !hasErrors() || hasFieldState('pending')) &&\n (enableAsyncBehaviour || 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 {\n path,\n type,\n callback,\n } of fieldEventListenersRef.current) {\n if (\n type === 'onSubmit' &&\n mountedFieldPathsRef.current.includes(path)\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 result = await onSubmit()\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 return internalDataRef.current\n },\n [\n setSubmitState,\n hasErrors,\n hasFieldWithAsyncValidator,\n hasFieldState,\n setFormState,\n onSubmitRequest,\n setShowAllErrors,\n ]\n )\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback<ContextState['handleSubmit']>(\n async ({ formElement = null } = {}) => {\n handleSubmitCall({\n enableAsyncBehaviour: isAsync(onSubmit),\n onSubmit: async () => {\n // - Mutate the data context\n const data = internalDataRef.current\n const filteredData = filterDataHandler(\n transformOut ? mutateDataHandler(data, transformOut) : data\n )\n const opts = {\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 internalDataRef.current = {} as Data\n if (id) {\n setSharedData?.({} as Data)\n } else {\n forceUpdate()\n }\n },\n }\n\n let result = undefined\n\n if (isAsync(onSubmit)) {\n result = await onSubmit(filteredData, opts)\n } else {\n result = onSubmit?.(filteredData, opts)\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 filterDataHandler,\n handleSubmitCall,\n id,\n mutateDataHandler,\n onSubmit,\n onSubmitComplete,\n scrollToTop,\n scrollTopOnSubmit,\n sessionStorageId,\n setSharedData,\n transformOut,\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(({ path: p, type: t }) => {\n return !(p === path && t === type)\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 useMountEffect(() => {\n if (schema) {\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n }\n\n // Validate the initial data\n validateData()\n })\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 handleMountField,\n handleUnMountField,\n handleSubmitCall,\n setFormState,\n setSubmitState,\n setShowAllErrors,\n setHasVisibleError,\n setFieldEventListener,\n setFieldState,\n setFieldError,\n setFieldProps,\n setValueProps,\n hasErrors,\n hasFieldError,\n hasFieldState,\n validateData,\n updateDataValue,\n setData,\n filterDataHandler,\n addOnChangeHandler,\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 ajvInstance: ajvRef.current,\n\n /** Additional */\n id,\n data: internalDataRef.current,\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 PathList = string[]\n\nexport function addListPath(paths: PathList, path: Path): PathList {\n return paths.includes(path) ? paths : paths.concat(path)\n}\n\nexport function removeListPath(paths: PathList, path: Path): PathList {\n return paths.filter((thisPath) => thisPath !== path)\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"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import { FieldProps } from '../../types';
3
- export type Props = FieldProps<Array<string | number> | undefined> & {
2
+ import { FieldHelpProps, FieldProps } from '../../types';
3
+ export type Props = FieldHelpProps & FieldProps<Array<string | number> | undefined> & {
4
4
  children?: React.ReactNode;
5
5
  variant?: 'checkbox' | 'button';
6
6
  optionsLayout?: 'horizontal' | 'vertical';
@@ -2,7 +2,7 @@ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
2
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3
3
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
4
  import React, { useMemo } from 'react';
5
- import { Checkbox, ToggleButton } from '../../../../components';
5
+ import { Checkbox, HelpButton, ToggleButton } from '../../../../components';
6
6
  import classnames from 'classnames';
7
7
  import OptionField from '../Option';
8
8
  import FieldBlock from '../../FieldBlock';
@@ -21,6 +21,7 @@ function ArraySelection(props) {
21
21
  value,
22
22
  error,
23
23
  hasError,
24
+ help,
24
25
  info,
25
26
  warning,
26
27
  disabled,
@@ -32,12 +33,17 @@ function ArraySelection(props) {
32
33
  forId: id,
33
34
  className: classnames(`dnb-forms-field-array-selection dnb-forms-field-array-selection--layout-${layout} dnb-forms-field-array-selection--options-layout-${optionsLayout}`, className),
34
35
  contentClassName: 'dnb-forms-field-array-selection__options',
36
+ help,
35
37
  info,
36
38
  warning,
37
39
  error,
38
40
  layout,
39
41
  label,
40
- labelDescription
42
+ labelDescription: React.createElement(React.Fragment, null, labelDescription, help ? React.createElement(HelpButton, {
43
+ size: "small",
44
+ left: labelDescription ? 'x-small' : false,
45
+ title: help.title
46
+ }, help.content) : undefined)
41
47
  }, pickSpacingProps(props));
42
48
  const options = useMemo(() => React.Children.toArray(children).filter(child => React.isValidElement(child) && child.type === OptionField).map(option => {
43
49
  var _option$props$title;
@@ -1 +1 @@
1
- {"version":3,"file":"ArraySelection.js","names":["React","useMemo","Checkbox","ToggleButton","classnames","OptionField","FieldBlock","useFieldProps","pickSpacingProps","ToggleButtonGroupContext","ArraySelection","props","id","className","variant","layout","optionsLayout","label","labelDescription","value","error","hasError","info","warning","disabled","emptyValue","handleChange","children","fieldSectionProps","_objectSpread","forId","contentClassName","options","Children","toArray","filter","child","isValidElement","type","map","option","_option$props$title","title","handleSelect","selected","newValue","includes","length","createElement","Provider","status","undefined","i","key","text","checked","on_change","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/ArraySelection/ArraySelection.tsx"],"sourcesContent":["import React, { useMemo } from 'react'\nimport { Checkbox, ToggleButton } from '../../../../components'\nimport classnames from 'classnames'\nimport OptionField from '../Option'\nimport FieldBlock from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport { FieldProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport ToggleButtonGroupContext from '../../../../components/toggle-button/ToggleButtonGroupContext'\n\ninterface IOption {\n title: string\n value: number | string\n handleSelect: () => void\n}\n\nexport type Props = FieldProps<Array<string | number> | undefined> & {\n children?: React.ReactNode\n variant?: 'checkbox' | 'button'\n optionsLayout?: 'horizontal' | 'vertical'\n}\n\nfunction ArraySelection(props: Props) {\n const {\n id,\n className,\n variant = 'checkbox',\n layout = 'vertical',\n optionsLayout = 'vertical',\n label,\n labelDescription,\n value,\n error,\n hasError,\n info,\n warning,\n disabled,\n emptyValue,\n handleChange,\n children,\n } = useFieldProps(props)\n\n const fieldSectionProps = {\n forId: id,\n className: classnames(\n 'dnb-forms-field-array-selection',\n `dnb-forms-field-array-selection--layout-${layout}`,\n `dnb-forms-field-array-selection--options-layout-${optionsLayout}`,\n className\n ),\n contentClassName: 'dnb-forms-field-array-selection__options',\n info,\n warning,\n error,\n layout,\n label,\n labelDescription,\n ...pickSpacingProps(props),\n }\n\n const options: IOption[] = useMemo(\n () =>\n React.Children.toArray(children)\n .filter(\n (child) =>\n React.isValidElement(child) && child.type === OptionField\n )\n .map((option: React.ReactElement) => ({\n title: option.props.title ?? option.props.children,\n value: option.props.value,\n handleSelect: () => {\n const selected = option.props.value\n\n const newValue = value?.includes(selected)\n ? value.filter((value) => value !== selected)\n : [...(value ?? []), selected]\n\n handleChange?.(newValue.length === 0 ? emptyValue : newValue)\n },\n })),\n [children, value, emptyValue, handleChange]\n )\n\n switch (variant) {\n case 'button':\n return (\n <FieldBlock {...fieldSectionProps}>\n <ToggleButtonGroupContext.Provider\n value={{\n status: hasError ? 'error' : undefined,\n disabled,\n }}\n >\n {options.map((option, i) => (\n <ToggleButton\n key={`option-${i}-${option.value}`}\n text={option.title}\n checked={value?.includes(option.value)}\n on_change={option.handleSelect}\n />\n ))}\n </ToggleButtonGroupContext.Provider>\n </FieldBlock>\n )\n case 'checkbox':\n return (\n <FieldBlock {...fieldSectionProps}>\n {options.map((option, i) => (\n <Checkbox\n key={`option-${i}-${option.value}`}\n className=\"dnb-forms-field-array-selection__checkbox\"\n label={option.title}\n checked={value?.includes(option.value)}\n disabled={disabled}\n on_change={option.handleSelect}\n status={hasError ? 'error' : undefined}\n />\n ))}\n </FieldBlock>\n )\n }\n}\n\nArraySelection._supportsSpacingProps = true\nexport default ArraySelection\n"],"mappings":"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"}
1
+ {"version":3,"file":"ArraySelection.js","names":["React","useMemo","Checkbox","HelpButton","ToggleButton","classnames","OptionField","FieldBlock","useFieldProps","pickSpacingProps","ToggleButtonGroupContext","ArraySelection","props","id","className","variant","layout","optionsLayout","label","labelDescription","value","error","hasError","help","info","warning","disabled","emptyValue","handleChange","children","fieldSectionProps","_objectSpread","forId","contentClassName","createElement","Fragment","size","left","title","content","undefined","options","Children","toArray","filter","child","isValidElement","type","map","option","_option$props$title","handleSelect","selected","newValue","includes","length","Provider","status","i","key","text","checked","on_change","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/ArraySelection/ArraySelection.tsx"],"sourcesContent":["import React, { useMemo } from 'react'\nimport { Checkbox, HelpButton, ToggleButton } from '../../../../components'\nimport classnames from 'classnames'\nimport OptionField from '../Option'\nimport FieldBlock from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport { FieldHelpProps, FieldProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport ToggleButtonGroupContext from '../../../../components/toggle-button/ToggleButtonGroupContext'\n\ninterface IOption {\n title: string\n value: number | string\n handleSelect: () => void\n}\n\nexport type Props = FieldHelpProps &\n FieldProps<Array<string | number> | undefined> & {\n children?: React.ReactNode\n variant?: 'checkbox' | 'button'\n optionsLayout?: 'horizontal' | 'vertical'\n }\n\nfunction ArraySelection(props: Props) {\n const {\n id,\n className,\n variant = 'checkbox',\n layout = 'vertical',\n optionsLayout = 'vertical',\n label,\n labelDescription,\n value,\n error,\n hasError,\n help,\n info,\n warning,\n disabled,\n emptyValue,\n handleChange,\n children,\n } = useFieldProps(props)\n\n const fieldSectionProps = {\n forId: id,\n className: classnames(\n 'dnb-forms-field-array-selection',\n `dnb-forms-field-array-selection--layout-${layout}`,\n `dnb-forms-field-array-selection--options-layout-${optionsLayout}`,\n className\n ),\n contentClassName: 'dnb-forms-field-array-selection__options',\n help,\n info,\n warning,\n error,\n layout,\n label,\n labelDescription: (\n <>\n {labelDescription}\n {help ? (\n <HelpButton\n size=\"small\"\n left={labelDescription ? 'x-small' : false}\n title={help.title}\n >\n {help.content}\n </HelpButton>\n ) : undefined}\n </>\n ),\n ...pickSpacingProps(props),\n }\n\n const options: IOption[] = useMemo(\n () =>\n React.Children.toArray(children)\n .filter(\n (child) =>\n React.isValidElement(child) && child.type === OptionField\n )\n .map((option: React.ReactElement) => ({\n title: option.props.title ?? option.props.children,\n value: option.props.value,\n handleSelect: () => {\n const selected = option.props.value\n\n const newValue = value?.includes(selected)\n ? value.filter((value) => value !== selected)\n : [...(value ?? []), selected]\n\n handleChange?.(newValue.length === 0 ? emptyValue : newValue)\n },\n })),\n [children, value, emptyValue, handleChange]\n )\n\n switch (variant) {\n case 'button':\n return (\n <FieldBlock {...fieldSectionProps}>\n <ToggleButtonGroupContext.Provider\n value={{\n status: hasError ? 'error' : undefined,\n disabled,\n }}\n >\n {options.map((option, i) => (\n <ToggleButton\n key={`option-${i}-${option.value}`}\n text={option.title}\n checked={value?.includes(option.value)}\n on_change={option.handleSelect}\n />\n ))}\n </ToggleButtonGroupContext.Provider>\n </FieldBlock>\n )\n case 'checkbox':\n return (\n <FieldBlock {...fieldSectionProps}>\n {options.map((option, i) => (\n <Checkbox\n key={`option-${i}-${option.value}`}\n className=\"dnb-forms-field-array-selection__checkbox\"\n label={option.title}\n checked={value?.includes(option.value)}\n disabled={disabled}\n on_change={option.handleSelect}\n status={hasError ? 'error' : undefined}\n />\n ))}\n </FieldBlock>\n )\n }\n}\n\nArraySelection._supportsSpacingProps = true\nexport default ArraySelection\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
- import type { FieldProps } from '../../types';
2
+ import type { FieldHelpProps, FieldProps } from '../../types';
3
3
  import { DrawerListProps } from '../../../../fragments/DrawerList';
4
- export type Props = FieldProps<number | string> & {
4
+ export type Props = FieldHelpProps & FieldProps<number | string> & {
5
5
  title?: string;
6
6
  text?: string;
7
7
  children?: React.ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"Option.js","names":["React","classnames","Option","className","title","text","children","createElement","role","makeOptions","Children","map","child","isValidElement","type","_child$props$value","_ref","_child$props$children","_child$props$children2","props","selectedKey","String","value","content","_em","filter","Boolean"],"sources":["../../../../../../src/extensions/forms/Field/Option/Option.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport type { FieldProps } from '../../types'\nimport { DrawerListProps } from '../../../../fragments/DrawerList'\n\nexport type Props = FieldProps<number | string> & {\n title?: string\n text?: string\n children?: React.ReactNode\n}\n\nexport default function Option({\n className,\n title,\n text,\n children,\n}: Props) {\n return (\n <span\n className={classnames('dnb-forms-field-option', className)}\n // eslint-disable-next-line jsx-a11y/role-has-required-aria-props\n role=\"option\"\n >\n {children ?? title}\n {text}\n </span>\n )\n}\n\nexport function makeOptions<T = DrawerListProps['data']>(\n children: React.ReactNode\n): T {\n return React.Children.map(children, (child) => {\n if (React.isValidElement(child) && child.type === Option) {\n // Option components\n return child.props.text\n ? {\n selectedKey: String(child.props.value ?? ''),\n content: [\n child.props.children ?? child.props.title ?? (\n <em>Untitled</em>\n ),\n child.props.text,\n ],\n }\n : {\n selectedKey: child.props.value,\n content: child.props.children ?? child.props.title,\n }\n }\n\n if (child) {\n // For other children, just show them as content\n return {\n content: child,\n }\n }\n }).filter(Boolean) as T\n}\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AAUnC,eAAe,SAASC,MAAMA,CAAC;EAC7BC,SAAS;EACTC,KAAK;EACLC,IAAI;EACJC;AACK,CAAC,EAAE;EACR,OACEN,KAAA,CAAAO,aAAA;IACEJ,SAAS,EAAEF,UAAU,CAAC,wBAAwB,EAAEE,SAAS,CAAE;IAE3DK,IAAI,EAAC;EAAQ,GAEZF,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAIF,KAAK,EACjBC,IACG,CAAC;AAEX;AAEA,OAAO,SAASI,WAAWA,CACzBH,QAAyB,EACtB;EACH,OAAON,KAAK,CAACU,QAAQ,CAACC,GAAG,CAACL,QAAQ,EAAGM,KAAK,IAAK;IAC7C,IAAIZ,KAAK,CAACa,cAAc,CAACD,KAAK,CAAC,IAAIA,KAAK,CAACE,IAAI,KAAKZ,MAAM,EAAE;MAAA,IAAAa,kBAAA,EAAAC,IAAA,EAAAC,qBAAA,EAAAC,sBAAA;MAExD,OAAON,KAAK,CAACO,KAAK,CAACd,IAAI,GACnB;QACEe,WAAW,EAAEC,MAAM,EAAAN,kBAAA,GAACH,KAAK,CAACO,KAAK,CAACG,KAAK,cAAAP,kBAAA,cAAAA,kBAAA,GAAI,EAAE,CAAC;QAC5CQ,OAAO,EAAE,EAAAP,IAAA,IAAAC,qBAAA,GACPL,KAAK,CAACO,KAAK,CAACb,QAAQ,cAAAW,qBAAA,cAAAA,qBAAA,GAAIL,KAAK,CAACO,KAAK,CAACf,KAAK,cAAAY,IAAA,cAAAA,IAAA,GAAAQ,GAAA,KAAAA,GAAA,GACvCxB,KAAA,CAAAO,aAAA,aAAI,UAAY,CAAC,GAEnBK,KAAK,CAACO,KAAK,CAACd,IAAI;MAEpB,CAAC,GACD;QACEe,WAAW,EAAER,KAAK,CAACO,KAAK,CAACG,KAAK;QAC9BC,OAAO,GAAAL,sBAAA,GAAEN,KAAK,CAACO,KAAK,CAACb,QAAQ,cAAAY,sBAAA,cAAAA,sBAAA,GAAIN,KAAK,CAACO,KAAK,CAACf;MAC/C,CAAC;IACP;IAEA,IAAIQ,KAAK,EAAE;MAET,OAAO;QACLW,OAAO,EAAEX;MACX,CAAC;IACH;EACF,CAAC,CAAC,CAACa,MAAM,CAACC,OAAO,CAAC;AACpB"}
1
+ {"version":3,"file":"Option.js","names":["React","classnames","Option","className","title","text","children","createElement","role","makeOptions","Children","map","child","isValidElement","type","_child$props$value","_ref","_child$props$children","_child$props$children2","props","selectedKey","String","value","content","_em","filter","Boolean"],"sources":["../../../../../../src/extensions/forms/Field/Option/Option.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport type { FieldHelpProps, FieldProps } from '../../types'\nimport { DrawerListProps } from '../../../../fragments/DrawerList'\n\nexport type Props = FieldHelpProps &\n FieldProps<number | string> & {\n title?: string\n text?: string\n children?: React.ReactNode\n }\n\nexport default function Option({\n className,\n title,\n text,\n children,\n}: Props) {\n return (\n <span\n className={classnames('dnb-forms-field-option', className)}\n // eslint-disable-next-line jsx-a11y/role-has-required-aria-props\n role=\"option\"\n >\n {children ?? title}\n {text}\n </span>\n )\n}\n\nexport function makeOptions<T = DrawerListProps['data']>(\n children: React.ReactNode\n): T {\n return React.Children.map(children, (child) => {\n if (React.isValidElement(child) && child.type === Option) {\n // Option components\n return child.props.text\n ? {\n selectedKey: String(child.props.value ?? ''),\n content: [\n child.props.children ?? child.props.title ?? (\n <em>Untitled</em>\n ),\n child.props.text,\n ],\n }\n : {\n selectedKey: child.props.value,\n content: child.props.children ?? child.props.title,\n }\n }\n\n if (child) {\n // For other children, just show them as content\n return {\n content: child,\n }\n }\n }).filter(Boolean) as T\n}\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,UAAU,MAAM,YAAY;AAWnC,eAAe,SAASC,MAAMA,CAAC;EAC7BC,SAAS;EACTC,KAAK;EACLC,IAAI;EACJC;AACK,CAAC,EAAE;EACR,OACEN,KAAA,CAAAO,aAAA;IACEJ,SAAS,EAAEF,UAAU,CAAC,wBAAwB,EAAEE,SAAS,CAAE;IAE3DK,IAAI,EAAC;EAAQ,GAEZF,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAIF,KAAK,EACjBC,IACG,CAAC;AAEX;AAEA,OAAO,SAASI,WAAWA,CACzBH,QAAyB,EACtB;EACH,OAAON,KAAK,CAACU,QAAQ,CAACC,GAAG,CAACL,QAAQ,EAAGM,KAAK,IAAK;IAC7C,IAAIZ,KAAK,CAACa,cAAc,CAACD,KAAK,CAAC,IAAIA,KAAK,CAACE,IAAI,KAAKZ,MAAM,EAAE;MAAA,IAAAa,kBAAA,EAAAC,IAAA,EAAAC,qBAAA,EAAAC,sBAAA;MAExD,OAAON,KAAK,CAACO,KAAK,CAACd,IAAI,GACnB;QACEe,WAAW,EAAEC,MAAM,EAAAN,kBAAA,GAACH,KAAK,CAACO,KAAK,CAACG,KAAK,cAAAP,kBAAA,cAAAA,kBAAA,GAAI,EAAE,CAAC;QAC5CQ,OAAO,EAAE,EAAAP,IAAA,IAAAC,qBAAA,GACPL,KAAK,CAACO,KAAK,CAACb,QAAQ,cAAAW,qBAAA,cAAAA,qBAAA,GAAIL,KAAK,CAACO,KAAK,CAACf,KAAK,cAAAY,IAAA,cAAAA,IAAA,GAAAQ,GAAA,KAAAA,GAAA,GACvCxB,KAAA,CAAAO,aAAA,aAAI,UAAY,CAAC,GAEnBK,KAAK,CAACO,KAAK,CAACd,IAAI;MAEpB,CAAC,GACD;QACEe,WAAW,EAAER,KAAK,CAACO,KAAK,CAACG,KAAK;QAC9BC,OAAO,GAAAL,sBAAA,GAAEN,KAAK,CAACO,KAAK,CAACb,QAAQ,cAAAY,sBAAA,cAAAA,sBAAA,GAAIN,KAAK,CAACO,KAAK,CAACf;MAC/C,CAAC;IACP;IAEA,IAAIQ,KAAK,EAAE;MAET,OAAO;QACLW,OAAO,EAAEX;MACX,CAAC;IACH;EACF,CAAC,CAAC,CAACa,MAAM,CAACC,OAAO,CAAC;AACpB"}
@@ -116,7 +116,7 @@ function PhoneNumber(props) {
116
116
  const updateCurrentDataSet = useCallback(() => {
117
117
  dataRef.current = getCountryData({
118
118
  lang,
119
- filter: ccFilter === 'Prioritized' && !wasFilled.current ? country => `${formattCountryCode(country.cdc)}` === countryCodeRef.current : filterCountries,
119
+ filter: ccFilter === 'Prioritized' && !wasFilled.current ? country => `${formatCountryCode(country.cdc)}` === countryCodeRef.current : filterCountries,
120
120
  sort: ccFilter,
121
121
  makeObject
122
122
  });
@@ -184,7 +184,7 @@ function PhoneNumber(props) {
184
184
  cdc
185
185
  }) => cdc === cdcVal);
186
186
  if (country !== null && country !== void 0 && country.cdc) {
187
- const countryCode = countryCodeRef.current = formattCountryCode(country.cdc);
187
+ const countryCode = countryCodeRef.current = formatCountryCode(country.cdc);
188
188
  updateCurrentDataSet();
189
189
  updateData(dataRef.current);
190
190
  callOnChange({
@@ -256,12 +256,12 @@ function PhoneNumber(props) {
256
256
  function makeObject(country, lang) {
257
257
  var _country$i18n$lang;
258
258
  return {
259
- selectedKey: formattCountryCode(country.cdc),
260
- selected_value: `${country.iso} (${formattCountryCode(country.cdc)})`,
261
- content: `${formattCountryCode(country.cdc)} ${(_country$i18n$lang = country.i18n[lang]) !== null && _country$i18n$lang !== void 0 ? _country$i18n$lang : country.i18n.en}`
259
+ selectedKey: formatCountryCode(country.cdc),
260
+ selected_value: `${country.iso} (${formatCountryCode(country.cdc)})`,
261
+ content: `${formatCountryCode(country.cdc)} ${(_country$i18n$lang = country.i18n[lang]) !== null && _country$i18n$lang !== void 0 ? _country$i18n$lang : country.i18n.en}`
262
262
  };
263
263
  }
264
- function formattCountryCode(value) {
264
+ function formatCountryCode(value) {
265
265
  return `+${value}`;
266
266
  }
267
267
  function splitValue(value) {