@dnb/eufemia 10.51.2 → 10.52.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 (588) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/cjs/components/autocomplete/Autocomplete.js +4 -0
  3. package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
  4. package/cjs/components/avatar/style/themes/dnb-avatar-theme-sbanken.css +2 -2
  5. package/cjs/components/avatar/style/themes/dnb-avatar-theme-sbanken.min.css +1 -1
  6. package/cjs/components/avatar/style/themes/dnb-avatar-theme-sbanken.scss +2 -2
  7. package/cjs/components/dialog/style/themes/dnb-dialog-theme-sbanken.css +6 -0
  8. package/cjs/components/dialog/style/themes/dnb-dialog-theme-sbanken.min.css +1 -1
  9. package/cjs/components/dialog/style/themes/dnb-dialog-theme-sbanken.scss +7 -0
  10. package/cjs/components/form-status/FormStatus.d.ts +5 -0
  11. package/cjs/components/icon/Icon.d.ts +2 -1
  12. package/cjs/components/icon/Icon.js.map +1 -1
  13. package/cjs/components/logo/Logo.js.map +1 -1
  14. package/cjs/components/number-format/NumberUtils.d.ts +14 -0
  15. package/cjs/components/number-format/NumberUtils.js +7 -8
  16. package/cjs/components/number-format/NumberUtils.js.map +1 -1
  17. package/cjs/components/skeleton/style/dnb-skeleton.css +3 -1
  18. package/cjs/components/skeleton/style/dnb-skeleton.min.css +1 -1
  19. package/cjs/components/skeleton/style/dnb-skeleton.scss +4 -2
  20. package/cjs/elements/typography/style/themes/dnb-typography-theme-sbanken.scss +21 -2
  21. package/cjs/extensions/forms/DataContext/Context.d.ts +5 -0
  22. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  23. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +12 -1
  24. package/cjs/extensions/forms/DataContext/Provider/Provider.js +86 -77
  25. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  26. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +6 -1
  27. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +112 -23
  28. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  29. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js +5 -0
  30. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js.map +1 -1
  31. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.d.ts +3 -1
  32. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +28 -16
  33. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  34. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.d.ts +2 -0
  35. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js +25 -0
  36. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js.map +1 -0
  37. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -3
  38. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  39. package/cjs/extensions/forms/Form/Isolation/Isolation.d.ts +4 -0
  40. package/cjs/extensions/forms/Form/Isolation/Isolation.js +26 -0
  41. package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  42. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js +5 -0
  43. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  44. package/cjs/extensions/forms/Form/Snapshot/Snapshot.d.ts +12 -0
  45. package/cjs/extensions/forms/Form/Snapshot/Snapshot.js +45 -0
  46. package/cjs/extensions/forms/Form/Snapshot/Snapshot.js.map +1 -0
  47. package/cjs/extensions/forms/Form/Snapshot/SnapshotContext.d.ts +12 -0
  48. package/cjs/extensions/forms/Form/Snapshot/SnapshotContext.js +12 -0
  49. package/cjs/extensions/forms/Form/Snapshot/SnapshotContext.js.map +1 -0
  50. package/cjs/extensions/forms/Form/Snapshot/SnapshotDocs.d.ts +3 -0
  51. package/cjs/extensions/forms/Form/Snapshot/SnapshotDocs.js +17 -0
  52. package/cjs/extensions/forms/Form/Snapshot/SnapshotDocs.js.map +1 -0
  53. package/cjs/extensions/forms/Form/Snapshot/index.d.ts +2 -0
  54. package/cjs/extensions/forms/Form/Snapshot/index.js +27 -0
  55. package/cjs/extensions/forms/Form/Snapshot/index.js.map +1 -0
  56. package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +1 -1
  57. package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -1
  58. package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +10 -2
  59. package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  60. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js +10 -10
  61. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  62. package/cjs/extensions/forms/Form/Visibility/useVisibility.js +26 -14
  63. package/cjs/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  64. package/cjs/extensions/forms/Form/data-context/clearData.js +2 -5
  65. package/cjs/extensions/forms/Form/data-context/clearData.js.map +1 -1
  66. package/cjs/extensions/forms/Form/data-context/getData.js.map +1 -1
  67. package/cjs/extensions/forms/Form/data-context/useData.js +3 -2
  68. package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
  69. package/cjs/extensions/forms/Form/data-context/useValidation.js.map +1 -1
  70. package/cjs/extensions/forms/Form/index.d.ts +2 -0
  71. package/cjs/extensions/forms/Form/index.js +14 -0
  72. package/cjs/extensions/forms/Form/index.js.map +1 -1
  73. package/cjs/extensions/forms/Iterate/Array/Array.js +3 -1
  74. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  75. package/cjs/extensions/forms/Iterate/Array/ArrayItemArea.js +30 -17
  76. package/cjs/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
  77. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js +5 -6
  78. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  79. package/cjs/extensions/forms/Iterate/ItemNo/ItemNo.d.ts +9 -0
  80. package/cjs/extensions/forms/Iterate/ItemNo/ItemNo.js +33 -0
  81. package/cjs/extensions/forms/Iterate/ItemNo/ItemNo.js.map +1 -0
  82. package/cjs/extensions/forms/Iterate/ItemNo/index.d.ts +2 -0
  83. package/cjs/extensions/forms/Iterate/ItemNo/index.js +27 -0
  84. package/cjs/extensions/forms/Iterate/ItemNo/index.js.map +1 -0
  85. package/cjs/extensions/forms/Iterate/IterateItemContext.d.ts +1 -0
  86. package/cjs/extensions/forms/Iterate/IterateItemContext.js.map +1 -1
  87. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +18 -2
  88. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +44 -18
  89. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  90. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +24 -1
  91. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  92. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js +5 -6
  93. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  94. package/cjs/extensions/forms/Iterate/index.d.ts +1 -0
  95. package/cjs/extensions/forms/Iterate/index.js +7 -0
  96. package/cjs/extensions/forms/Iterate/index.js.map +1 -1
  97. package/cjs/extensions/forms/Tools/Log.d.ts +7 -2
  98. package/cjs/extensions/forms/Tools/Log.js +36 -4
  99. package/cjs/extensions/forms/Tools/Log.js.map +1 -1
  100. package/cjs/extensions/forms/Value/Provider/useValueProvider.d.ts +1 -0
  101. package/cjs/extensions/forms/Value/SummaryList/SummaryList.d.ts +4 -2
  102. package/cjs/extensions/forms/Value/SummaryList/SummaryList.js +3 -1
  103. package/cjs/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -1
  104. package/cjs/extensions/forms/Value/SummaryList/SummaryListDocs.js +5 -0
  105. package/cjs/extensions/forms/Value/SummaryList/SummaryListDocs.js.map +1 -1
  106. package/cjs/extensions/forms/Value/ValueDocs.js +5 -0
  107. package/cjs/extensions/forms/Value/ValueDocs.js.map +1 -1
  108. package/cjs/extensions/forms/Wizard/Buttons/Buttons.js +2 -2
  109. package/cjs/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -1
  110. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +78 -31
  111. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  112. package/cjs/extensions/forms/Wizard/Container/WizardContainerDocs.js +1 -1
  113. package/cjs/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
  114. package/cjs/extensions/forms/Wizard/Container/useHandleLayoutEffect.d.ts +1 -2
  115. package/cjs/extensions/forms/Wizard/Container/useHandleLayoutEffect.js +0 -7
  116. package/cjs/extensions/forms/Wizard/Container/useHandleLayoutEffect.js.map +1 -1
  117. package/cjs/extensions/forms/Wizard/Container/useStepAnimation.d.ts +2 -1
  118. package/cjs/extensions/forms/Wizard/Container/useStepAnimation.js +11 -6
  119. package/cjs/extensions/forms/Wizard/Container/useStepAnimation.js.map +1 -1
  120. package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +14 -3
  121. package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  122. package/cjs/extensions/forms/Wizard/Step/Step.js +4 -4
  123. package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
  124. package/cjs/extensions/forms/Wizard/hooks/useStep.js +4 -4
  125. package/cjs/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  126. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +6 -1
  127. package/cjs/extensions/forms/constants/locales/en-GB.js +9 -4
  128. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  129. package/cjs/extensions/forms/constants/locales/en-US.d.ts +6 -1
  130. package/cjs/extensions/forms/constants/locales/en-US.js +2 -1
  131. package/cjs/extensions/forms/constants/locales/en-US.js.map +1 -1
  132. package/cjs/extensions/forms/constants/locales/index.d.ts +12 -2
  133. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +6 -1
  134. package/cjs/extensions/forms/constants/locales/nb-NO.js +9 -4
  135. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  136. package/cjs/extensions/forms/hooks/useDataContext.d.ts +6 -0
  137. package/cjs/extensions/forms/hooks/useDataContext.js +31 -0
  138. package/cjs/extensions/forms/hooks/useDataContext.js.map +1 -0
  139. package/cjs/extensions/forms/hooks/useExternalValue.js +12 -6
  140. package/cjs/extensions/forms/hooks/useExternalValue.js.map +1 -1
  141. package/cjs/extensions/forms/hooks/useFieldProps.js +82 -43
  142. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  143. package/cjs/extensions/forms/hooks/useSnapshot.d.ts +9 -0
  144. package/cjs/extensions/forms/hooks/useSnapshot.js +87 -0
  145. package/cjs/extensions/forms/hooks/useSnapshot.js.map +1 -0
  146. package/cjs/extensions/forms/hooks/useValueProps.js +6 -1
  147. package/cjs/extensions/forms/hooks/useValueProps.js.map +1 -1
  148. package/cjs/extensions/forms/types.d.ts +4 -0
  149. package/cjs/extensions/forms/types.js.map +1 -1
  150. package/cjs/extensions/payment-card/style/dnb-payment-card.css +3 -2
  151. package/cjs/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
  152. package/cjs/shared/Eufemia.d.ts +1 -1
  153. package/cjs/shared/Eufemia.js +2 -2
  154. package/cjs/shared/Eufemia.js.map +1 -1
  155. package/cjs/shared/component-helper.js +1 -1
  156. package/cjs/shared/component-helper.js.map +1 -1
  157. package/cjs/style/core/scopes.scss +1 -1
  158. package/cjs/style/dnb-ui-basis.css +1 -1
  159. package/cjs/style/dnb-ui-basis.min.css +1 -1
  160. package/cjs/style/dnb-ui-body.css +1 -1
  161. package/cjs/style/dnb-ui-body.min.css +1 -1
  162. package/cjs/style/dnb-ui-components.css +3 -1
  163. package/cjs/style/dnb-ui-components.min.css +1 -1
  164. package/cjs/style/dnb-ui-core.css +1 -1
  165. package/cjs/style/dnb-ui-core.min.css +1 -1
  166. package/cjs/style/dnb-ui-extensions.css +3 -2
  167. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  168. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +3 -1
  169. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  170. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +3 -2
  171. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  172. package/cjs/style/themes/theme-eiendom/properties.d.ts +1 -0
  173. package/cjs/style/themes/theme-eiendom/properties.js +3 -2
  174. package/cjs/style/themes/theme-eiendom/properties.js.map +1 -1
  175. package/cjs/style/themes/theme-sbanken/properties.d.ts +1 -0
  176. package/cjs/style/themes/theme-sbanken/properties.js +3 -2
  177. package/cjs/style/themes/theme-sbanken/properties.js.map +1 -1
  178. package/cjs/style/themes/theme-sbanken/properties.scss +9 -8
  179. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +20 -4
  180. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +3 -1
  181. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +11 -3
  182. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  183. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +17 -2
  184. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.min.css +3 -1
  185. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +3 -2
  186. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  187. package/cjs/style/themes/theme-ui/properties.d.ts +1 -0
  188. package/cjs/style/themes/theme-ui/properties.js +3 -2
  189. package/cjs/style/themes/theme-ui/properties.js.map +1 -1
  190. package/cjs/style/themes/theme-ui/ui-theme-components.css +3 -1
  191. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  192. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +3 -2
  193. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  194. package/components/autocomplete/Autocomplete.js +4 -0
  195. package/components/autocomplete/Autocomplete.js.map +1 -1
  196. package/components/avatar/style/themes/dnb-avatar-theme-sbanken.css +2 -2
  197. package/components/avatar/style/themes/dnb-avatar-theme-sbanken.min.css +1 -1
  198. package/components/avatar/style/themes/dnb-avatar-theme-sbanken.scss +2 -2
  199. package/components/dialog/style/themes/dnb-dialog-theme-sbanken.css +6 -0
  200. package/components/dialog/style/themes/dnb-dialog-theme-sbanken.min.css +1 -1
  201. package/components/dialog/style/themes/dnb-dialog-theme-sbanken.scss +7 -0
  202. package/components/form-status/FormStatus.d.ts +5 -0
  203. package/components/icon/Icon.d.ts +2 -1
  204. package/components/icon/Icon.js.map +1 -1
  205. package/components/logo/Logo.js.map +1 -1
  206. package/components/number-format/NumberUtils.d.ts +14 -0
  207. package/components/number-format/NumberUtils.js +7 -8
  208. package/components/number-format/NumberUtils.js.map +1 -1
  209. package/components/skeleton/style/dnb-skeleton.css +3 -1
  210. package/components/skeleton/style/dnb-skeleton.min.css +1 -1
  211. package/components/skeleton/style/dnb-skeleton.scss +4 -2
  212. package/elements/typography/style/themes/dnb-typography-theme-sbanken.scss +21 -2
  213. package/es/components/autocomplete/Autocomplete.js +4 -0
  214. package/es/components/autocomplete/Autocomplete.js.map +1 -1
  215. package/es/components/avatar/style/themes/dnb-avatar-theme-sbanken.css +2 -2
  216. package/es/components/avatar/style/themes/dnb-avatar-theme-sbanken.min.css +1 -1
  217. package/es/components/avatar/style/themes/dnb-avatar-theme-sbanken.scss +2 -2
  218. package/es/components/dialog/style/themes/dnb-dialog-theme-sbanken.css +6 -0
  219. package/es/components/dialog/style/themes/dnb-dialog-theme-sbanken.min.css +1 -1
  220. package/es/components/dialog/style/themes/dnb-dialog-theme-sbanken.scss +7 -0
  221. package/es/components/form-status/FormStatus.d.ts +5 -0
  222. package/es/components/icon/Icon.d.ts +2 -1
  223. package/es/components/icon/Icon.js.map +1 -1
  224. package/es/components/logo/Logo.js.map +1 -1
  225. package/es/components/number-format/NumberUtils.d.ts +14 -0
  226. package/es/components/number-format/NumberUtils.js +7 -8
  227. package/es/components/number-format/NumberUtils.js.map +1 -1
  228. package/es/components/skeleton/style/dnb-skeleton.css +3 -1
  229. package/es/components/skeleton/style/dnb-skeleton.min.css +1 -1
  230. package/es/components/skeleton/style/dnb-skeleton.scss +4 -2
  231. package/es/elements/typography/style/themes/dnb-typography-theme-sbanken.scss +21 -2
  232. package/es/extensions/forms/DataContext/Context.d.ts +5 -0
  233. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  234. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +12 -1
  235. package/es/extensions/forms/DataContext/Provider/Provider.js +84 -75
  236. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  237. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +6 -1
  238. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +109 -23
  239. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  240. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js +5 -0
  241. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js.map +1 -1
  242. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.d.ts +3 -1
  243. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +28 -16
  244. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  245. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.d.ts +2 -0
  246. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js +18 -0
  247. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js.map +1 -0
  248. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -3
  249. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  250. package/es/extensions/forms/Form/Isolation/Isolation.d.ts +4 -0
  251. package/es/extensions/forms/Form/Isolation/Isolation.js +28 -3
  252. package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  253. package/es/extensions/forms/Form/Isolation/IsolationDocs.js +5 -0
  254. package/es/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  255. package/es/extensions/forms/Form/Snapshot/Snapshot.d.ts +12 -0
  256. package/es/extensions/forms/Form/Snapshot/Snapshot.js +36 -0
  257. package/es/extensions/forms/Form/Snapshot/Snapshot.js.map +1 -0
  258. package/es/extensions/forms/Form/Snapshot/SnapshotContext.d.ts +12 -0
  259. package/es/extensions/forms/Form/Snapshot/SnapshotContext.js +6 -0
  260. package/es/extensions/forms/Form/Snapshot/SnapshotContext.js.map +1 -0
  261. package/es/extensions/forms/Form/Snapshot/SnapshotDocs.d.ts +3 -0
  262. package/es/extensions/forms/Form/Snapshot/SnapshotDocs.js +9 -0
  263. package/es/extensions/forms/Form/Snapshot/SnapshotDocs.js.map +1 -0
  264. package/es/extensions/forms/Form/Snapshot/index.d.ts +2 -0
  265. package/es/extensions/forms/Form/Snapshot/index.js +3 -0
  266. package/es/extensions/forms/Form/Snapshot/index.js.map +1 -0
  267. package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +1 -1
  268. package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -1
  269. package/es/extensions/forms/Form/Visibility/Visibility.d.ts +10 -2
  270. package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  271. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js +10 -10
  272. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  273. package/es/extensions/forms/Form/Visibility/useVisibility.js +26 -14
  274. package/es/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  275. package/es/extensions/forms/Form/data-context/clearData.js +2 -5
  276. package/es/extensions/forms/Form/data-context/clearData.js.map +1 -1
  277. package/es/extensions/forms/Form/data-context/getData.js.map +1 -1
  278. package/es/extensions/forms/Form/data-context/useData.js +1 -0
  279. package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
  280. package/es/extensions/forms/Form/data-context/useValidation.js.map +1 -1
  281. package/es/extensions/forms/Form/index.d.ts +2 -0
  282. package/es/extensions/forms/Form/index.js +2 -0
  283. package/es/extensions/forms/Form/index.js.map +1 -1
  284. package/es/extensions/forms/Iterate/Array/Array.js +3 -1
  285. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  286. package/es/extensions/forms/Iterate/Array/ArrayItemArea.js +31 -18
  287. package/es/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
  288. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js +5 -6
  289. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  290. package/es/extensions/forms/Iterate/ItemNo/ItemNo.d.ts +9 -0
  291. package/es/extensions/forms/Iterate/ItemNo/ItemNo.js +22 -0
  292. package/es/extensions/forms/Iterate/ItemNo/ItemNo.js.map +1 -0
  293. package/es/extensions/forms/Iterate/ItemNo/index.d.ts +2 -0
  294. package/es/extensions/forms/Iterate/ItemNo/index.js +3 -0
  295. package/es/extensions/forms/Iterate/ItemNo/index.js.map +1 -0
  296. package/es/extensions/forms/Iterate/IterateItemContext.d.ts +1 -0
  297. package/es/extensions/forms/Iterate/IterateItemContext.js.map +1 -1
  298. package/es/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +18 -2
  299. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +43 -16
  300. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  301. package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +24 -1
  302. package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  303. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js +5 -6
  304. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  305. package/es/extensions/forms/Iterate/index.d.ts +1 -0
  306. package/es/extensions/forms/Iterate/index.js +1 -0
  307. package/es/extensions/forms/Iterate/index.js.map +1 -1
  308. package/es/extensions/forms/Tools/Log.d.ts +7 -2
  309. package/es/extensions/forms/Tools/Log.js +26 -3
  310. package/es/extensions/forms/Tools/Log.js.map +1 -1
  311. package/es/extensions/forms/Value/Provider/useValueProvider.d.ts +1 -0
  312. package/es/extensions/forms/Value/SummaryList/SummaryList.d.ts +4 -2
  313. package/es/extensions/forms/Value/SummaryList/SummaryList.js +3 -1
  314. package/es/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -1
  315. package/es/extensions/forms/Value/SummaryList/SummaryListDocs.js +5 -0
  316. package/es/extensions/forms/Value/SummaryList/SummaryListDocs.js.map +1 -1
  317. package/es/extensions/forms/Value/ValueDocs.js +5 -0
  318. package/es/extensions/forms/Value/ValueDocs.js.map +1 -1
  319. package/es/extensions/forms/Wizard/Buttons/Buttons.js +2 -2
  320. package/es/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -1
  321. package/es/extensions/forms/Wizard/Container/WizardContainer.js +67 -23
  322. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  323. package/es/extensions/forms/Wizard/Container/WizardContainerDocs.js +1 -1
  324. package/es/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
  325. package/es/extensions/forms/Wizard/Container/useHandleLayoutEffect.d.ts +1 -2
  326. package/es/extensions/forms/Wizard/Container/useHandleLayoutEffect.js +0 -6
  327. package/es/extensions/forms/Wizard/Container/useHandleLayoutEffect.js.map +1 -1
  328. package/es/extensions/forms/Wizard/Container/useStepAnimation.d.ts +2 -1
  329. package/es/extensions/forms/Wizard/Container/useStepAnimation.js +12 -7
  330. package/es/extensions/forms/Wizard/Container/useStepAnimation.js.map +1 -1
  331. package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +14 -3
  332. package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  333. package/es/extensions/forms/Wizard/Step/Step.js +4 -4
  334. package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
  335. package/es/extensions/forms/Wizard/hooks/useStep.js +4 -4
  336. package/es/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  337. package/es/extensions/forms/constants/locales/en-GB.d.ts +6 -1
  338. package/es/extensions/forms/constants/locales/en-GB.js +9 -4
  339. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  340. package/es/extensions/forms/constants/locales/en-US.d.ts +6 -1
  341. package/es/extensions/forms/constants/locales/en-US.js +2 -1
  342. package/es/extensions/forms/constants/locales/en-US.js.map +1 -1
  343. package/es/extensions/forms/constants/locales/index.d.ts +12 -2
  344. package/es/extensions/forms/constants/locales/nb-NO.d.ts +6 -1
  345. package/es/extensions/forms/constants/locales/nb-NO.js +9 -4
  346. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  347. package/es/extensions/forms/hooks/useDataContext.d.ts +6 -0
  348. package/es/extensions/forms/hooks/useDataContext.js +24 -0
  349. package/es/extensions/forms/hooks/useDataContext.js.map +1 -0
  350. package/es/extensions/forms/hooks/useExternalValue.js +12 -6
  351. package/es/extensions/forms/hooks/useExternalValue.js.map +1 -1
  352. package/es/extensions/forms/hooks/useFieldProps.js +83 -44
  353. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  354. package/es/extensions/forms/hooks/useSnapshot.d.ts +9 -0
  355. package/es/extensions/forms/hooks/useSnapshot.js +73 -0
  356. package/es/extensions/forms/hooks/useSnapshot.js.map +1 -0
  357. package/es/extensions/forms/hooks/useValueProps.js +6 -1
  358. package/es/extensions/forms/hooks/useValueProps.js.map +1 -1
  359. package/es/extensions/forms/types.d.ts +4 -0
  360. package/es/extensions/forms/types.js.map +1 -1
  361. package/es/extensions/payment-card/style/dnb-payment-card.css +3 -2
  362. package/es/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
  363. package/es/shared/Eufemia.d.ts +1 -1
  364. package/es/shared/Eufemia.js +2 -2
  365. package/es/shared/Eufemia.js.map +1 -1
  366. package/es/shared/component-helper.js +1 -1
  367. package/es/shared/component-helper.js.map +1 -1
  368. package/es/style/core/scopes.scss +1 -1
  369. package/es/style/dnb-ui-basis.css +1 -1
  370. package/es/style/dnb-ui-basis.min.css +1 -1
  371. package/es/style/dnb-ui-body.css +1 -1
  372. package/es/style/dnb-ui-body.min.css +1 -1
  373. package/es/style/dnb-ui-components.css +3 -1
  374. package/es/style/dnb-ui-components.min.css +1 -1
  375. package/es/style/dnb-ui-core.css +1 -1
  376. package/es/style/dnb-ui-core.min.css +1 -1
  377. package/es/style/dnb-ui-extensions.css +3 -2
  378. package/es/style/dnb-ui-extensions.min.css +1 -1
  379. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +3 -1
  380. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  381. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +3 -2
  382. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  383. package/es/style/themes/theme-eiendom/properties.d.ts +1 -0
  384. package/es/style/themes/theme-eiendom/properties.js +3 -2
  385. package/es/style/themes/theme-eiendom/properties.js.map +1 -1
  386. package/es/style/themes/theme-sbanken/properties.d.ts +1 -0
  387. package/es/style/themes/theme-sbanken/properties.js +3 -2
  388. package/es/style/themes/theme-sbanken/properties.js.map +1 -1
  389. package/es/style/themes/theme-sbanken/properties.scss +9 -8
  390. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +20 -4
  391. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +3 -1
  392. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +11 -3
  393. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  394. package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +17 -2
  395. package/es/style/themes/theme-sbanken/sbanken-theme-elements.min.css +3 -1
  396. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +3 -2
  397. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  398. package/es/style/themes/theme-ui/properties.d.ts +1 -0
  399. package/es/style/themes/theme-ui/properties.js +3 -2
  400. package/es/style/themes/theme-ui/properties.js.map +1 -1
  401. package/es/style/themes/theme-ui/ui-theme-components.css +3 -1
  402. package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  403. package/es/style/themes/theme-ui/ui-theme-extensions.css +3 -2
  404. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  405. package/esm/dnb-ui-basis.min.mjs +1 -1
  406. package/esm/dnb-ui-components.min.mjs +1 -1
  407. package/esm/dnb-ui-elements.min.mjs +1 -1
  408. package/esm/dnb-ui-extensions.min.mjs +2 -2
  409. package/esm/dnb-ui-lib.min.mjs +1 -1
  410. package/extensions/forms/DataContext/Context.d.ts +5 -0
  411. package/extensions/forms/DataContext/Context.js.map +1 -1
  412. package/extensions/forms/DataContext/Provider/Provider.d.ts +12 -1
  413. package/extensions/forms/DataContext/Provider/Provider.js +86 -77
  414. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  415. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +6 -1
  416. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +109 -23
  417. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  418. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js +5 -0
  419. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js.map +1 -1
  420. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.d.ts +3 -1
  421. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +28 -16
  422. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  423. package/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.d.ts +2 -0
  424. package/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js +18 -0
  425. package/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js.map +1 -0
  426. package/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -3
  427. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  428. package/extensions/forms/Form/Isolation/Isolation.d.ts +4 -0
  429. package/extensions/forms/Form/Isolation/Isolation.js +29 -3
  430. package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  431. package/extensions/forms/Form/Isolation/IsolationDocs.js +5 -0
  432. package/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  433. package/extensions/forms/Form/Snapshot/Snapshot.d.ts +12 -0
  434. package/extensions/forms/Form/Snapshot/Snapshot.js +36 -0
  435. package/extensions/forms/Form/Snapshot/Snapshot.js.map +1 -0
  436. package/extensions/forms/Form/Snapshot/SnapshotContext.d.ts +12 -0
  437. package/extensions/forms/Form/Snapshot/SnapshotContext.js +6 -0
  438. package/extensions/forms/Form/Snapshot/SnapshotContext.js.map +1 -0
  439. package/extensions/forms/Form/Snapshot/SnapshotDocs.d.ts +3 -0
  440. package/extensions/forms/Form/Snapshot/SnapshotDocs.js +9 -0
  441. package/extensions/forms/Form/Snapshot/SnapshotDocs.js.map +1 -0
  442. package/extensions/forms/Form/Snapshot/index.d.ts +2 -0
  443. package/extensions/forms/Form/Snapshot/index.js +3 -0
  444. package/extensions/forms/Form/Snapshot/index.js.map +1 -0
  445. package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +1 -1
  446. package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -1
  447. package/extensions/forms/Form/Visibility/Visibility.d.ts +10 -2
  448. package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  449. package/extensions/forms/Form/Visibility/VisibilityDocs.js +10 -10
  450. package/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  451. package/extensions/forms/Form/Visibility/useVisibility.js +26 -14
  452. package/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  453. package/extensions/forms/Form/data-context/clearData.js +2 -5
  454. package/extensions/forms/Form/data-context/clearData.js.map +1 -1
  455. package/extensions/forms/Form/data-context/getData.js.map +1 -1
  456. package/extensions/forms/Form/data-context/useData.js +1 -0
  457. package/extensions/forms/Form/data-context/useData.js.map +1 -1
  458. package/extensions/forms/Form/data-context/useValidation.js.map +1 -1
  459. package/extensions/forms/Form/index.d.ts +2 -0
  460. package/extensions/forms/Form/index.js +2 -0
  461. package/extensions/forms/Form/index.js.map +1 -1
  462. package/extensions/forms/Iterate/Array/Array.js +3 -1
  463. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  464. package/extensions/forms/Iterate/Array/ArrayItemArea.js +31 -18
  465. package/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
  466. package/extensions/forms/Iterate/EditContainer/EditContainer.js +5 -6
  467. package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  468. package/extensions/forms/Iterate/ItemNo/ItemNo.d.ts +9 -0
  469. package/extensions/forms/Iterate/ItemNo/ItemNo.js +23 -0
  470. package/extensions/forms/Iterate/ItemNo/ItemNo.js.map +1 -0
  471. package/extensions/forms/Iterate/ItemNo/index.d.ts +2 -0
  472. package/extensions/forms/Iterate/ItemNo/index.js +3 -0
  473. package/extensions/forms/Iterate/ItemNo/index.js.map +1 -0
  474. package/extensions/forms/Iterate/IterateItemContext.d.ts +1 -0
  475. package/extensions/forms/Iterate/IterateItemContext.js.map +1 -1
  476. package/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +18 -2
  477. package/extensions/forms/Iterate/PushContainer/PushContainer.js +44 -18
  478. package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  479. package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +24 -1
  480. package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  481. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js +5 -6
  482. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  483. package/extensions/forms/Iterate/index.d.ts +1 -0
  484. package/extensions/forms/Iterate/index.js +1 -0
  485. package/extensions/forms/Iterate/index.js.map +1 -1
  486. package/extensions/forms/Tools/Log.d.ts +7 -2
  487. package/extensions/forms/Tools/Log.js +30 -3
  488. package/extensions/forms/Tools/Log.js.map +1 -1
  489. package/extensions/forms/Value/Provider/useValueProvider.d.ts +1 -0
  490. package/extensions/forms/Value/SummaryList/SummaryList.d.ts +4 -2
  491. package/extensions/forms/Value/SummaryList/SummaryList.js +3 -1
  492. package/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -1
  493. package/extensions/forms/Value/SummaryList/SummaryListDocs.js +5 -0
  494. package/extensions/forms/Value/SummaryList/SummaryListDocs.js.map +1 -1
  495. package/extensions/forms/Value/ValueDocs.js +5 -0
  496. package/extensions/forms/Value/ValueDocs.js.map +1 -1
  497. package/extensions/forms/Wizard/Buttons/Buttons.js +2 -2
  498. package/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -1
  499. package/extensions/forms/Wizard/Container/WizardContainer.js +78 -31
  500. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  501. package/extensions/forms/Wizard/Container/WizardContainerDocs.js +1 -1
  502. package/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
  503. package/extensions/forms/Wizard/Container/useHandleLayoutEffect.d.ts +1 -2
  504. package/extensions/forms/Wizard/Container/useHandleLayoutEffect.js +0 -6
  505. package/extensions/forms/Wizard/Container/useHandleLayoutEffect.js.map +1 -1
  506. package/extensions/forms/Wizard/Container/useStepAnimation.d.ts +2 -1
  507. package/extensions/forms/Wizard/Container/useStepAnimation.js +12 -7
  508. package/extensions/forms/Wizard/Container/useStepAnimation.js.map +1 -1
  509. package/extensions/forms/Wizard/Context/WizardContext.d.ts +14 -3
  510. package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  511. package/extensions/forms/Wizard/Step/Step.js +4 -4
  512. package/extensions/forms/Wizard/Step/Step.js.map +1 -1
  513. package/extensions/forms/Wizard/hooks/useStep.js +4 -4
  514. package/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  515. package/extensions/forms/constants/locales/en-GB.d.ts +6 -1
  516. package/extensions/forms/constants/locales/en-GB.js +9 -4
  517. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  518. package/extensions/forms/constants/locales/en-US.d.ts +6 -1
  519. package/extensions/forms/constants/locales/en-US.js +2 -1
  520. package/extensions/forms/constants/locales/en-US.js.map +1 -1
  521. package/extensions/forms/constants/locales/index.d.ts +12 -2
  522. package/extensions/forms/constants/locales/nb-NO.d.ts +6 -1
  523. package/extensions/forms/constants/locales/nb-NO.js +9 -4
  524. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  525. package/extensions/forms/hooks/useDataContext.d.ts +6 -0
  526. package/extensions/forms/hooks/useDataContext.js +25 -0
  527. package/extensions/forms/hooks/useDataContext.js.map +1 -0
  528. package/extensions/forms/hooks/useExternalValue.js +12 -6
  529. package/extensions/forms/hooks/useExternalValue.js.map +1 -1
  530. package/extensions/forms/hooks/useFieldProps.js +83 -44
  531. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  532. package/extensions/forms/hooks/useSnapshot.d.ts +9 -0
  533. package/extensions/forms/hooks/useSnapshot.js +81 -0
  534. package/extensions/forms/hooks/useSnapshot.js.map +1 -0
  535. package/extensions/forms/hooks/useValueProps.js +6 -1
  536. package/extensions/forms/hooks/useValueProps.js.map +1 -1
  537. package/extensions/forms/types.d.ts +4 -0
  538. package/extensions/forms/types.js.map +1 -1
  539. package/extensions/payment-card/style/dnb-payment-card.css +3 -2
  540. package/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
  541. package/package.json +1 -1
  542. package/shared/Eufemia.d.ts +1 -1
  543. package/shared/Eufemia.js +2 -2
  544. package/shared/Eufemia.js.map +1 -1
  545. package/shared/component-helper.js +1 -1
  546. package/shared/component-helper.js.map +1 -1
  547. package/style/core/scopes.scss +1 -1
  548. package/style/dnb-ui-basis.css +1 -1
  549. package/style/dnb-ui-basis.min.css +1 -1
  550. package/style/dnb-ui-body.css +1 -1
  551. package/style/dnb-ui-body.min.css +1 -1
  552. package/style/dnb-ui-components.css +3 -1
  553. package/style/dnb-ui-components.min.css +1 -1
  554. package/style/dnb-ui-core.css +1 -1
  555. package/style/dnb-ui-core.min.css +1 -1
  556. package/style/dnb-ui-extensions.css +3 -2
  557. package/style/dnb-ui-extensions.min.css +1 -1
  558. package/style/themes/theme-eiendom/eiendom-theme-components.css +3 -1
  559. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  560. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +3 -2
  561. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  562. package/style/themes/theme-eiendom/properties.d.ts +1 -0
  563. package/style/themes/theme-eiendom/properties.js +3 -2
  564. package/style/themes/theme-eiendom/properties.js.map +1 -1
  565. package/style/themes/theme-sbanken/properties.d.ts +1 -0
  566. package/style/themes/theme-sbanken/properties.js +3 -2
  567. package/style/themes/theme-sbanken/properties.js.map +1 -1
  568. package/style/themes/theme-sbanken/properties.scss +9 -8
  569. package/style/themes/theme-sbanken/sbanken-theme-basis.css +20 -4
  570. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +3 -1
  571. package/style/themes/theme-sbanken/sbanken-theme-components.css +11 -3
  572. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  573. package/style/themes/theme-sbanken/sbanken-theme-elements.css +17 -2
  574. package/style/themes/theme-sbanken/sbanken-theme-elements.min.css +3 -1
  575. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +3 -2
  576. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  577. package/style/themes/theme-ui/properties.d.ts +1 -0
  578. package/style/themes/theme-ui/properties.js +3 -2
  579. package/style/themes/theme-ui/properties.js.map +1 -1
  580. package/style/themes/theme-ui/ui-theme-components.css +3 -1
  581. package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  582. package/style/themes/theme-ui/ui-theme-extensions.css +3 -2
  583. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  584. package/umd/dnb-ui-basis.min.js +1 -1
  585. package/umd/dnb-ui-components.min.js +1 -1
  586. package/umd/dnb-ui-elements.min.js +1 -1
  587. package/umd/dnb-ui-extensions.min.js +2 -2
  588. package/umd/dnb-ui-lib.min.js +1 -1
@@ -19,6 +19,7 @@ import DataContext, { defaultContextState } from '../../DataContext/Context';
19
19
  import Handler from '../../Form/Handler/Handler';
20
20
  import { useSharedState } from '../../../../shared/helpers/useSharedState';
21
21
  import useHandleLayoutEffect from './useHandleLayoutEffect';
22
+ import useStepAnimation from './useStepAnimation';
22
23
  import useVisibility from '../../Form/Visibility/useVisibility';
23
24
  const useLayoutEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;
24
25
  function WizardContainer(props) {
@@ -54,30 +55,57 @@ function WizardContainer(props) {
54
55
  const errorOnStepRef = useRef({});
55
56
  const stepElementRef = useRef();
56
57
  const preventNextStepRef = useRef(false);
58
+ const stepsRef = useRef({});
59
+ const tmpStepsRef = useRef({});
60
+ const updateTitlesRef = useRef();
61
+ const prerenderFieldPropsRef = useRef({});
57
62
  const sharedStateRef = useRef();
58
63
  sharedStateRef.current = useSharedState(hasContext && id ? id + '-wizard' : undefined);
59
64
  errorOnStepRef.current[activeIndexRef.current] = showAllErrors;
60
65
  const preventNavigation = useCallback((shouldPrevent = true) => {
61
66
  preventNextStepRef.current = shouldPrevent;
62
67
  }, []);
68
+ const getStepChangeOptions = useCallback(index => {
69
+ var _stepsRef$current$ind;
70
+ const previousIndex = activeIndexRef.current;
71
+ const options = {
72
+ preventNavigation,
73
+ previousStep: {
74
+ index: previousIndex
75
+ }
76
+ };
77
+ const id = (_stepsRef$current$ind = stepsRef.current[index]) === null || _stepsRef$current$ind === void 0 ? void 0 : _stepsRef$current$ind.id;
78
+ if (id) {
79
+ var _stepsRef$current$pre;
80
+ const previousId = (_stepsRef$current$pre = stepsRef.current[previousIndex]) === null || _stepsRef$current$pre === void 0 ? void 0 : _stepsRef$current$pre.id;
81
+ Object.assign(options, {
82
+ id
83
+ });
84
+ Object.assign(options.previousStep, {
85
+ id: previousId
86
+ });
87
+ }
88
+ return options;
89
+ }, [preventNavigation]);
63
90
  const callOnStepChange = useCallback(async (index, mode) => {
64
91
  if (isAsync(onStepChange)) {
65
- return await onStepChange(index, mode, {
66
- preventNavigation
67
- });
92
+ return await onStepChange(index, mode, getStepChangeOptions(index));
68
93
  }
69
- return onStepChange === null || onStepChange === void 0 ? void 0 : onStepChange(index, mode, {
70
- preventNavigation
71
- });
72
- }, [onStepChange, preventNavigation]);
94
+ return onStepChange === null || onStepChange === void 0 ? void 0 : onStepChange(index, mode, getStepChangeOptions(index));
95
+ }, [getStepChangeOptions, onStepChange]);
73
96
  const {
74
97
  setFocus,
75
98
  scrollToTop,
76
99
  isInteractionRef
77
100
  } = useHandleLayoutEffect({
78
- activeIndexRef,
79
101
  stepElementRef
80
102
  });
103
+ const executeLayoutAnimationRef = useRef();
104
+ useStepAnimation({
105
+ activeIndexRef,
106
+ stepElementRef,
107
+ executeLayoutAnimationRef
108
+ });
81
109
  const handleLayoutEffect = useCallback(() => {
82
110
  if (!omitFocusManagement) {
83
111
  setFocus();
@@ -101,11 +129,12 @@ function WizardContainer(props) {
101
129
  onSubmit: async () => {
102
130
  if (!skipStepChangeCallFromHook) {
103
131
  var _sharedStateRef$curre, _sharedStateRef$curre2, _sharedStateRef$curre3;
104
- (_sharedStateRef$curre = sharedStateRef.current) === null || _sharedStateRef$curre === void 0 ? void 0 : (_sharedStateRef$curre2 = _sharedStateRef$curre.data) === null || _sharedStateRef$curre2 === void 0 ? void 0 : (_sharedStateRef$curre3 = _sharedStateRef$curre2.onStepChange) === null || _sharedStateRef$curre3 === void 0 ? void 0 : _sharedStateRef$curre3.call(_sharedStateRef$curre2, index, mode, {
105
- preventNavigation
106
- });
132
+ (_sharedStateRef$curre = sharedStateRef.current) === null || _sharedStateRef$curre === void 0 ? void 0 : (_sharedStateRef$curre2 = _sharedStateRef$curre.data) === null || _sharedStateRef$curre2 === void 0 ? void 0 : (_sharedStateRef$curre3 = _sharedStateRef$curre2.onStepChange) === null || _sharedStateRef$curre3 === void 0 ? void 0 : _sharedStateRef$curre3.call(_sharedStateRef$curre2, index, mode, getStepChangeOptions(index));
133
+ }
134
+ let result = undefined;
135
+ if (!skipStepChangeCall && !(skipStepChangeCallBeforeMounted && !isInteractionRef.current)) {
136
+ result = await callOnStepChange(index, mode);
107
137
  }
108
- const result = skipStepChangeCall || skipStepChangeCallBeforeMounted && !isInteractionRef.current ? undefined : await callOnStepChange(index, mode);
109
138
  setFormState('abort');
110
139
  if (!skipErrorCheck) {
111
140
  setShowAllErrors(errorOnStepRef.current[index]);
@@ -119,7 +148,7 @@ function WizardContainer(props) {
119
148
  return result;
120
149
  }
121
150
  });
122
- }, [callOnStepChange, handleLayoutEffect, handleSubmitCall, isInteractionRef, onStepChange, preventNavigation, setFormState, setShowAllErrors]);
151
+ }, [callOnStepChange, getStepChangeOptions, handleLayoutEffect, handleSubmitCall, isInteractionRef, onStepChange, setFormState, setShowAllErrors]);
123
152
  const setActiveIndex = useCallback((index, options) => {
124
153
  if (index === activeIndexRef.current) {
125
154
  return;
@@ -158,9 +187,6 @@ function WizardContainer(props) {
158
187
  }
159
188
  }, [handleNext]);
160
189
  (_dataContext$setHandl = dataContext.setHandleSubmit) === null || _dataContext$setHandl === void 0 ? void 0 : _dataContext$setHandl.call(dataContext, handleSubmit);
161
- const titlesRef = useRef({});
162
- const updateTitlesRef = useRef();
163
- const prerenderFieldPropsRef = useRef({});
164
190
  const {
165
191
  check
166
192
  } = useVisibility();
@@ -170,7 +196,7 @@ function WizardContainer(props) {
170
196
  id,
171
197
  activeIndex,
172
198
  stepElementRef,
173
- titlesRef,
199
+ stepsRef,
174
200
  updateTitlesRef,
175
201
  activeIndexRef,
176
202
  totalStepsRef,
@@ -192,7 +218,20 @@ function WizardContainer(props) {
192
218
  useLayoutEffect(() => {
193
219
  var _updateTitlesRef$curr;
194
220
  (_updateTitlesRef$curr = updateTitlesRef.current) === null || _updateTitlesRef$curr === void 0 ? void 0 : _updateTitlesRef$curr.call(updateTitlesRef);
195
- }, [titlesRef.current]);
221
+ }, [stepsRef.current]);
222
+ const stepsLengthDidChange = useCallback(() => {
223
+ const count = Object.keys(stepsRef.current).length;
224
+ const tmpCount = Object.keys(tmpStepsRef.current).length;
225
+ return count !== 0 && tmpCount !== 0 && count !== tmpCount;
226
+ }, []);
227
+ useLayoutEffect(() => {
228
+ if (stepsLengthDidChange()) {
229
+ var _executeLayoutAnimati;
230
+ callOnStepChange(activeIndexRef.current, 'stepListModified');
231
+ (_executeLayoutAnimati = executeLayoutAnimationRef.current) === null || _executeLayoutAnimati === void 0 ? void 0 : _executeLayoutAnimati.call(executeLayoutAnimationRef);
232
+ }
233
+ tmpStepsRef.current = stepsRef.current;
234
+ }, [stepsRef.current, callOnStepChange, stepsLengthDidChange]);
196
235
  if (!hasContext) {
197
236
  warn('You may wrap Wizard.Container in Form.Handler');
198
237
  return React.createElement(Handler, null, React.createElement(WizardContainer, _extends({}, props, {
@@ -226,7 +265,7 @@ function DisplaySteps({
226
265
  const {
227
266
  id,
228
267
  activeIndexRef,
229
- titlesRef,
268
+ stepsRef,
230
269
  updateTitlesRef
231
270
  } = useContext(WizardContext) || {};
232
271
  updateTitlesRef.current = () => {
@@ -240,7 +279,9 @@ function DisplaySteps({
240
279
  }), React.createElement(StepIndicator, {
241
280
  bottom: true,
242
281
  current_step: activeIndexRef.current,
243
- data: Object.values(titlesRef.current),
282
+ data: Object.values(stepsRef.current).map(({
283
+ title
284
+ }) => title),
244
285
  mode: mode,
245
286
  no_animation: noAnimation,
246
287
  on_change: handleChange,
@@ -252,13 +293,13 @@ function IterateOverSteps({
252
293
  }) {
253
294
  const {
254
295
  check,
255
- titlesRef,
296
+ stepsRef,
256
297
  activeIndexRef,
257
298
  totalStepsRef,
258
299
  prerenderFieldProps,
259
300
  prerenderFieldPropsRef
260
301
  } = useContext(WizardContext);
261
- titlesRef.current = {};
302
+ stepsRef.current = {};
262
303
  let incrementIndex = -1;
263
304
  const childrenArray = React.Children.map(children, child => {
264
305
  if (React.isValidElement(child)) {
@@ -282,7 +323,10 @@ function IterateOverSteps({
282
323
  }
283
324
  incrementIndex++;
284
325
  const index = incrementIndex;
285
- titlesRef.current[index] = child.props.title !== undefined ? convertJsxToString(child.props.title) : 'Title missing';
326
+ stepsRef.current[index] = {
327
+ id: child.props.id,
328
+ title: child.props.title !== undefined ? convertJsxToString(child.props.title) : 'Title missing'
329
+ };
286
330
  const key = `${index}-${activeIndexRef.current}`;
287
331
  const clone = props => React.cloneElement(child, props);
288
332
  if (prerenderFieldProps && typeof document !== 'undefined' && index !== activeIndexRef.current && typeof prerenderFieldPropsRef.current['step-' + index] === 'undefined') {
@@ -1 +1 @@
1
- {"version":3,"file":"WizardContainer.js","names":["React","useContext","useCallback","useRef","useReducer","useMemo","ReactDOM","classnames","Space","StepIndicator","convertJsxToString","warn","isAsync","useId","Step","WizardContext","DataContext","defaultContextState","Handler","useSharedState","useHandleLayoutEffect","useVisibility","useLayoutEffect","window","useEffect","WizardContainer","props","_dataContext$setHandl","className","id","idProp","mode","initialActiveIndex","omitScrollManagement","omitFocusManagement","onStepChange","children","noAnimation","prerenderFieldProps","variant","sidebarId","rest","_objectWithoutProperties","_excluded","dataContext","hasContext","setFormState","handleSubmitCall","setShowAllErrors","showAllErrors","setSubmitState","forceUpdate","activeIndexRef","totalStepsRef","NaN","errorOnStepRef","stepElementRef","preventNextStepRef","sharedStateRef","current","undefined","preventNavigation","shouldPrevent","callOnStepChange","index","setFocus","scrollToTop","isInteractionRef","handleLayoutEffect","handleStepChange","skipErrorCheck","skipStepChangeCall","skipStepChangeCallBeforeMounted","skipStepChangeCallFromHook","skipFieldValidation","enableAsyncBehavior","onSubmit","_sharedStateRef$curre","_sharedStateRef$curre2","_sharedStateRef$curre3","data","call","result","Error","setActiveIndex","options","_objectSpread","handlePrevious","handleNext","handleChange","current_step","setFormError","error","handleSubmit","preventSubmit","setHandleSubmit","titlesRef","updateTitlesRef","prerenderFieldPropsRef","check","activeIndex","providerValue","_sharedStateRef$curre4","_sharedStateRef$curre5","extend","_updateTitlesRef$curr","createElement","_extends","Provider","value","DisplaySteps","IterateOverSteps","PrerenderFieldPropsOfOtherSteps","sidebar_id","Sidebar","bottom","Object","values","no_animation","on_change","incrementIndex","childrenArray","Children","map","child","isValidElement","_child","_child2","step","type","_step","apply","active","activeWhen","visibleWhen","title","key","clone","cloneElement","document","length","hasRenderedRef","WizardPortal","PrerenderFieldPropsProvider","hidden","Fn","i","createPortal","body","setFieldProps","updateDataValue","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Wizard/Container/WizardContainer.tsx"],"sourcesContent":["import React, {\n useContext,\n useCallback,\n useRef,\n useReducer,\n useMemo,\n} from 'react'\nimport ReactDOM from 'react-dom'\nimport classnames from 'classnames'\nimport { Space, StepIndicator } from '../../../../components'\nimport {\n convertJsxToString,\n warn,\n} from '../../../../shared/component-helper'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport useId from '../../../../shared/helpers/useId'\nimport Step, { Props as StepProps } from '../Step'\nimport WizardContext, {\n OnStepChange,\n SetActiveIndexOptions,\n StepIndex,\n WizardContextState,\n} from '../Context/WizardContext'\nimport DataContext, {\n defaultContextState,\n} from '../../DataContext/Context'\nimport Handler from '../../Form/Handler/Handler'\nimport {\n SharedStateReturn,\n useSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport useHandleLayoutEffect from './useHandleLayoutEffect'\nimport { ComponentProps } from '../../types'\nimport useVisibility from '../../Form/Visibility/useVisibility'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type Props = ComponentProps & {\n id?: string\n\n /**\n * The mode of the wizard.\n */\n mode?: 'static' | 'strict' | 'loose'\n\n /**\n * If set to `true`, the wizard will not scroll to the first step when the user clicks on the next button.\n */\n omitScrollManagement?: boolean\n\n /**\n * If set to `true`, the wizard will not focus on the next step when the user clicks on the next button.\n */\n omitFocusManagement?: boolean\n\n /**\n * The index of the first step to be rendered.\n */\n initialActiveIndex?: StepIndex\n\n /**\n * The callback function that will be called when the user clicks on the next button.\n */\n onStepChange?: OnStepChange\n\n /**\n * The sidebar variant.\n */\n variant?: 'sidebar' | 'drawer'\n sidebarId?: string\n\n /**\n * If set to `true`, the wizard will not animate the steps.\n */\n noAnimation?: boolean\n\n /**\n * If set to `true`, the wizard pre-render all steps so the props of each field is available in the data context.\n * Defaults to `true`.\n */\n prerenderFieldProps?: boolean\n\n /**\n * The children of the wizard container.\n */\n children: React.ReactNode\n\n /**\n * @deprecated Is enabled by default. You can disable it with \"omitScrollManagement\"\n */\n scrollTopOnStepChange?: boolean\n}\n\nfunction WizardContainer(props: Props) {\n const {\n className,\n id: idProp,\n mode = 'strict',\n initialActiveIndex = 0,\n omitScrollManagement,\n omitFocusManagement,\n onStepChange,\n children,\n noAnimation = true,\n prerenderFieldProps = true,\n variant = 'sidebar',\n sidebarId,\n ...rest\n } = props\n\n const dataContext = useContext(DataContext)\n const {\n hasContext,\n setFormState,\n handleSubmitCall,\n setShowAllErrors,\n showAllErrors,\n setSubmitState,\n } = dataContext\n\n const id = useId(idProp)\n const [, forceUpdate] = useReducer(() => ({}), {})\n const activeIndexRef = useRef<StepIndex>(initialActiveIndex)\n const totalStepsRef = useRef<number>(NaN)\n const errorOnStepRef = useRef<Record<StepIndex, boolean>>({})\n const stepElementRef = useRef<HTMLElement>()\n const preventNextStepRef = useRef(false)\n\n // - Handle shared state\n const sharedStateRef =\n useRef<\n SharedStateReturn<\n WizardContextState & { onStepChange?: OnStepChange }\n >\n >()\n sharedStateRef.current = useSharedState<WizardContextState>(\n hasContext && id ? id + '-wizard' : undefined\n )\n\n // Store the current state of showAllErrors\n errorOnStepRef.current[activeIndexRef.current] = showAllErrors\n\n const preventNavigation = useCallback((shouldPrevent = true) => {\n preventNextStepRef.current = shouldPrevent\n }, [])\n\n const callOnStepChange = useCallback(\n async (index: StepIndex, mode: 'previous' | 'next') => {\n if (isAsync(onStepChange)) {\n return await onStepChange(index, mode, { preventNavigation })\n }\n\n return onStepChange?.(index, mode, { preventNavigation })\n },\n [onStepChange, preventNavigation]\n )\n\n const { setFocus, scrollToTop, isInteractionRef } =\n useHandleLayoutEffect({ activeIndexRef, stepElementRef })\n\n const handleLayoutEffect = useCallback(() => {\n if (!omitFocusManagement) {\n setFocus()\n }\n if (!omitScrollManagement) {\n scrollToTop()\n }\n }, [omitScrollManagement, omitFocusManagement, setFocus, scrollToTop])\n\n const handleStepChange = useCallback(\n ({\n index,\n skipErrorCheck,\n skipStepChangeCall,\n skipStepChangeCallBeforeMounted,\n skipStepChangeCallFromHook,\n mode,\n }: {\n index: StepIndex\n mode: 'previous' | 'next'\n } & SetActiveIndexOptions) => {\n handleSubmitCall({\n skipErrorCheck,\n skipFieldValidation: skipErrorCheck,\n enableAsyncBehavior: isAsync(onStepChange),\n onSubmit: async () => {\n if (!skipStepChangeCallFromHook) {\n sharedStateRef.current?.data?.onStepChange?.(index, mode, {\n preventNavigation,\n })\n }\n\n const result =\n skipStepChangeCall ||\n (skipStepChangeCallBeforeMounted && !isInteractionRef.current)\n ? undefined\n : await callOnStepChange(index, mode)\n\n // Hide async indicator\n setFormState('abort')\n\n if (!skipErrorCheck) {\n // Set the showAllErrors to the step we got to\n setShowAllErrors(errorOnStepRef.current[index])\n }\n\n if (!preventNextStepRef.current && !(result instanceof Error)) {\n handleLayoutEffect()\n\n activeIndexRef.current = index\n forceUpdate()\n }\n\n preventNextStepRef.current = false\n\n return result\n },\n })\n },\n [\n callOnStepChange,\n handleLayoutEffect,\n handleSubmitCall,\n isInteractionRef,\n onStepChange,\n preventNavigation,\n setFormState,\n setShowAllErrors,\n ]\n )\n\n const setActiveIndex = useCallback(\n (index: StepIndex, options?: SetActiveIndexOptions) => {\n if (index === activeIndexRef.current) {\n return\n }\n\n const mode = index > activeIndexRef.current ? 'next' : 'previous'\n\n handleStepChange({\n index,\n skipErrorCheck: mode === 'previous',\n mode,\n ...options,\n })\n },\n [handleStepChange]\n )\n\n const handlePrevious = useCallback(() => {\n setActiveIndex(activeIndexRef.current - 1)\n }, [setActiveIndex])\n\n const handleNext = useCallback(() => {\n setActiveIndex(activeIndexRef.current + 1)\n }, [setActiveIndex])\n\n const handleChange = useCallback(\n ({ current_step }) => {\n setActiveIndex(current_step, { skipErrorCheck: true })\n },\n [setActiveIndex]\n )\n\n const setFormError = useCallback(\n (error: Error) => {\n setSubmitState?.({ error })\n },\n [setSubmitState]\n )\n\n const handleSubmit = useCallback(\n ({ preventSubmit }) => {\n if (activeIndexRef.current + 1 < totalStepsRef.current) {\n handleNext()\n preventSubmit()\n }\n },\n [handleNext]\n )\n dataContext.setHandleSubmit?.(handleSubmit)\n\n const titlesRef = useRef({})\n const updateTitlesRef = useRef<() => void>()\n const prerenderFieldPropsRef = useRef<\n Record<string, () => React.ReactElement>\n >({})\n\n const { check } = useVisibility()\n\n const activeIndex = activeIndexRef.current\n const providerValue = useMemo<WizardContextState>(() => {\n return {\n id,\n activeIndex,\n stepElementRef,\n titlesRef,\n updateTitlesRef,\n activeIndexRef,\n totalStepsRef,\n prerenderFieldProps,\n prerenderFieldPropsRef,\n check,\n setActiveIndex,\n handlePrevious,\n handleNext,\n setFormError,\n }\n }, [\n activeIndex,\n handleNext,\n handlePrevious,\n id,\n prerenderFieldProps,\n check,\n setActiveIndex,\n setFormError,\n ])\n\n // - Handle shared state\n useLayoutEffect(() => {\n if (id && hasContext) {\n sharedStateRef.current?.extend?.(providerValue)\n }\n }, [id, providerValue]) // eslint-disable-line react-hooks/exhaustive-deps\n\n useLayoutEffect(() => {\n updateTitlesRef.current?.()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [titlesRef.current])\n\n if (!hasContext) {\n warn('You may wrap Wizard.Container in Form.Handler')\n return (\n <Handler>\n <WizardContainer {...props} id={id} />\n </Handler>\n )\n }\n\n return (\n <WizardContext.Provider value={providerValue}>\n <Space\n className={classnames(\n 'dnb-forms-wizard-layout',\n `dnb-forms-wizard-layout--${variant}`,\n className\n )}\n {...rest}\n >\n <DisplaySteps\n mode={mode}\n variant={variant}\n noAnimation={noAnimation}\n handleChange={handleChange}\n sidebarId={sidebarId}\n />\n\n <div className=\"dnb-forms-wizard-layout__contents\">\n <IterateOverSteps>{children}</IterateOverSteps>\n </div>\n </Space>\n\n {prerenderFieldProps && (\n <PrerenderFieldPropsOfOtherSteps\n prerenderFieldPropsRef={prerenderFieldPropsRef}\n />\n )}\n </WizardContext.Provider>\n )\n}\n\nfunction DisplaySteps({\n mode,\n variant,\n noAnimation,\n handleChange,\n sidebarId,\n}) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n const { id, activeIndexRef, titlesRef, updateTitlesRef } =\n useContext(WizardContext) || {}\n updateTitlesRef.current = () => {\n forceUpdate()\n }\n\n const sidebar_id =\n variant === 'drawer' && !sidebarId ? undefined : sidebarId ?? id\n\n return (\n <aside className=\"dnb-forms-wizard-layout__indicator\">\n <StepIndicator.Sidebar sidebar_id={sidebar_id} />\n <StepIndicator\n bottom\n current_step={activeIndexRef.current}\n data={Object.values(titlesRef.current)}\n mode={mode}\n no_animation={noAnimation}\n on_change={handleChange}\n sidebar_id={sidebar_id}\n />\n </aside>\n )\n}\n\nfunction IterateOverSteps({ children }) {\n const {\n check,\n titlesRef,\n activeIndexRef,\n totalStepsRef,\n prerenderFieldProps,\n prerenderFieldPropsRef,\n } = useContext(WizardContext)\n\n titlesRef.current = {}\n let incrementIndex = -1\n\n const childrenArray = React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n let step = child\n\n if (child?.type !== Step && typeof child.type === 'function') {\n step = child.type.apply(child.type, [\n child.props,\n ]) as React.ReactElement\n\n if (step?.type === Step) {\n child = step\n }\n }\n\n if (child?.type === Step) {\n if (child.props.active === false) {\n return null\n }\n\n if (\n child.props.activeWhen &&\n !check({ visibleWhen: child.props.activeWhen })\n ) {\n return null\n }\n\n incrementIndex++\n const index = incrementIndex\n\n titlesRef.current[index] =\n child.props.title !== undefined\n ? convertJsxToString(child.props.title)\n : 'Title missing'\n const key = `${index}-${activeIndexRef.current}`\n const clone = (props) =>\n React.cloneElement(child as React.ReactElement<StepProps>, props)\n\n if (\n prerenderFieldProps &&\n typeof document !== 'undefined' &&\n index !== activeIndexRef.current &&\n typeof prerenderFieldPropsRef.current['step-' + index] ===\n 'undefined'\n ) {\n prerenderFieldPropsRef.current['step-' + index] = () =>\n clone({\n key,\n index,\n prerenderFieldProps: true,\n })\n }\n\n return clone({\n key,\n index,\n })\n }\n }\n\n return child\n })\n\n // Ensure we never have a higher index than the available children\n // else we get a white screen\n if (childrenArray?.length === 0) {\n activeIndexRef.current = 0\n } else if (childrenArray?.length < activeIndexRef.current + 1) {\n activeIndexRef.current = childrenArray.length - 1\n }\n\n totalStepsRef.current = childrenArray?.length\n\n return childrenArray\n}\n\nfunction PrerenderFieldPropsOfOtherSteps({\n prerenderFieldPropsRef,\n}: {\n prerenderFieldPropsRef: WizardContextState['prerenderFieldPropsRef']\n}) {\n const hasRenderedRef = useRef(true)\n if (!hasRenderedRef.current) {\n return null\n }\n hasRenderedRef.current = false\n\n return (\n <WizardPortal>\n <PrerenderFieldPropsProvider>\n <iframe title=\"Wizard Prerender\" hidden>\n {Object.values(prerenderFieldPropsRef.current).map((Fn, i) => (\n <Fn key={i} />\n ))}\n </iframe>\n </PrerenderFieldPropsProvider>\n </WizardPortal>\n )\n}\n\nfunction WizardPortal({ children }) {\n if (typeof document !== 'undefined') {\n return ReactDOM.createPortal(children, document.body)\n }\n}\n\nfunction PrerenderFieldPropsProvider({ children }) {\n const { data, setFieldProps, updateDataValue } = useContext(DataContext)\n\n return (\n <DataContext.Provider\n value={{\n ...defaultContextState,\n\n // Only update the props and the data value\n data,\n setFieldProps,\n updateDataValue,\n prerenderFieldProps: true,\n hasContext: true,\n }}\n >\n <WizardContext.Provider value={{ prerenderFieldProps: true }}>\n {children}\n </WizardContext.Provider>\n </DataContext.Provider>\n )\n}\n\nWizardContainer._supportsSpacingProps = true\n\nexport default WizardContainer\n"],"mappings":"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"}
1
+ {"version":3,"file":"WizardContainer.js","names":["React","useContext","useCallback","useRef","useReducer","useMemo","ReactDOM","classnames","Space","StepIndicator","convertJsxToString","warn","isAsync","useId","Step","WizardContext","DataContext","defaultContextState","Handler","useSharedState","useHandleLayoutEffect","useStepAnimation","useVisibility","useLayoutEffect","window","useEffect","WizardContainer","props","_dataContext$setHandl","className","id","idProp","mode","initialActiveIndex","omitScrollManagement","omitFocusManagement","onStepChange","children","noAnimation","prerenderFieldProps","variant","sidebarId","rest","_objectWithoutProperties","_excluded","dataContext","hasContext","setFormState","handleSubmitCall","setShowAllErrors","showAllErrors","setSubmitState","forceUpdate","activeIndexRef","totalStepsRef","NaN","errorOnStepRef","stepElementRef","preventNextStepRef","stepsRef","tmpStepsRef","updateTitlesRef","prerenderFieldPropsRef","sharedStateRef","current","undefined","preventNavigation","shouldPrevent","getStepChangeOptions","index","_stepsRef$current$ind","previousIndex","options","previousStep","_stepsRef$current$pre","previousId","Object","assign","callOnStepChange","setFocus","scrollToTop","isInteractionRef","executeLayoutAnimationRef","handleLayoutEffect","handleStepChange","skipErrorCheck","skipStepChangeCall","skipStepChangeCallBeforeMounted","skipStepChangeCallFromHook","skipFieldValidation","enableAsyncBehavior","onSubmit","_sharedStateRef$curre","_sharedStateRef$curre2","_sharedStateRef$curre3","data","call","result","Error","setActiveIndex","_objectSpread","handlePrevious","handleNext","handleChange","current_step","setFormError","error","handleSubmit","preventSubmit","setHandleSubmit","check","activeIndex","providerValue","_sharedStateRef$curre4","_sharedStateRef$curre5","extend","_updateTitlesRef$curr","stepsLengthDidChange","count","keys","length","tmpCount","_executeLayoutAnimati","createElement","_extends","Provider","value","DisplaySteps","IterateOverSteps","PrerenderFieldPropsOfOtherSteps","sidebar_id","Sidebar","bottom","values","map","title","no_animation","on_change","incrementIndex","childrenArray","Children","child","isValidElement","_child","_child2","step","type","_step","apply","active","activeWhen","visibleWhen","key","clone","cloneElement","document","hasRenderedRef","WizardPortal","PrerenderFieldPropsProvider","hidden","Fn","i","createPortal","body","setFieldProps","updateDataValue","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Wizard/Container/WizardContainer.tsx"],"sourcesContent":["import React, {\n useContext,\n useCallback,\n useRef,\n useReducer,\n useMemo,\n} from 'react'\nimport ReactDOM from 'react-dom'\nimport classnames from 'classnames'\nimport { Space, StepIndicator } from '../../../../components'\nimport {\n convertJsxToString,\n warn,\n} from '../../../../shared/component-helper'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport useId from '../../../../shared/helpers/useId'\nimport Step, { Props as StepProps } from '../Step'\nimport WizardContext, {\n OnStepChange,\n OnStepChangeOptions,\n OnStepsChangeMode,\n SetActiveIndexOptions,\n StepIndex,\n Steps,\n WizardContextState,\n} from '../Context/WizardContext'\nimport DataContext, {\n defaultContextState,\n} from '../../DataContext/Context'\nimport Handler from '../../Form/Handler/Handler'\nimport {\n SharedStateReturn,\n useSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport useHandleLayoutEffect from './useHandleLayoutEffect'\nimport useStepAnimation from './useStepAnimation'\nimport { ComponentProps } from '../../types'\nimport useVisibility from '../../Form/Visibility/useVisibility'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type Props = ComponentProps & {\n id?: string\n\n /**\n * The mode of the wizard.\n */\n mode?: 'static' | 'strict' | 'loose'\n\n /**\n * If set to `true`, the wizard will not scroll to the first step when the user clicks on the next button.\n */\n omitScrollManagement?: boolean\n\n /**\n * If set to `true`, the wizard will not focus on the next step when the user clicks on the next button.\n */\n omitFocusManagement?: boolean\n\n /**\n * The index of the first step to be rendered.\n */\n initialActiveIndex?: StepIndex\n\n /**\n * The callback function that will be called when the user clicks on the next button.\n */\n onStepChange?: OnStepChange\n\n /**\n * The sidebar variant.\n */\n variant?: 'sidebar' | 'drawer'\n sidebarId?: string\n\n /**\n * If set to `true`, the wizard will not animate the steps.\n */\n noAnimation?: boolean\n\n /**\n * If set to `true`, the wizard pre-render all steps so the props of each field is available in the data context.\n * Defaults to `true`.\n */\n prerenderFieldProps?: boolean\n\n /**\n * The children of the wizard container.\n */\n children: React.ReactNode\n\n /**\n * @deprecated Is enabled by default. You can disable it with \"omitScrollManagement\"\n */\n scrollTopOnStepChange?: boolean\n}\n\nfunction WizardContainer(props: Props) {\n const {\n className,\n id: idProp,\n mode = 'strict',\n initialActiveIndex = 0,\n omitScrollManagement,\n omitFocusManagement,\n onStepChange,\n children,\n noAnimation = true,\n prerenderFieldProps = true,\n variant = 'sidebar',\n sidebarId,\n ...rest\n } = props\n\n const dataContext = useContext(DataContext)\n const {\n hasContext,\n setFormState,\n handleSubmitCall,\n setShowAllErrors,\n showAllErrors,\n setSubmitState,\n } = dataContext\n\n const id = useId(idProp)\n const [, forceUpdate] = useReducer(() => ({}), {})\n const activeIndexRef = useRef<StepIndex>(initialActiveIndex)\n const totalStepsRef = useRef<number>(NaN)\n const errorOnStepRef = useRef<Record<StepIndex, boolean>>({})\n const stepElementRef = useRef<HTMLElement>()\n const preventNextStepRef = useRef(false)\n const stepsRef = useRef<Steps>({})\n const tmpStepsRef = useRef<Steps>({})\n const updateTitlesRef = useRef<() => void>()\n const prerenderFieldPropsRef = useRef<\n Record<string, () => React.ReactElement>\n >({})\n\n // - Handle shared state\n const sharedStateRef =\n useRef<\n SharedStateReturn<\n WizardContextState & { onStepChange?: OnStepChange }\n >\n >()\n sharedStateRef.current = useSharedState<WizardContextState>(\n hasContext && id ? id + '-wizard' : undefined\n )\n\n // Store the current state of showAllErrors\n errorOnStepRef.current[activeIndexRef.current] = showAllErrors\n\n const preventNavigation = useCallback((shouldPrevent = true) => {\n preventNextStepRef.current = shouldPrevent\n }, [])\n\n const getStepChangeOptions: (index: StepIndex) => OnStepChangeOptions =\n useCallback(\n (index) => {\n const previousIndex = activeIndexRef.current\n const options = {\n preventNavigation,\n previousStep: { index: previousIndex },\n }\n\n const id = stepsRef.current[index]?.id\n if (id) {\n const previousId = stepsRef.current[previousIndex]?.id\n Object.assign(options, { id })\n Object.assign(options.previousStep, { id: previousId })\n }\n\n return options\n },\n [preventNavigation]\n )\n\n const callOnStepChange = useCallback(\n async (index: StepIndex, mode: OnStepsChangeMode) => {\n if (isAsync(onStepChange)) {\n return await onStepChange(index, mode, getStepChangeOptions(index))\n }\n\n return onStepChange?.(index, mode, getStepChangeOptions(index))\n },\n [getStepChangeOptions, onStepChange]\n )\n\n const { setFocus, scrollToTop, isInteractionRef } =\n useHandleLayoutEffect({\n stepElementRef,\n })\n\n const executeLayoutAnimationRef = useRef<() => void>()\n useStepAnimation({\n activeIndexRef,\n stepElementRef,\n executeLayoutAnimationRef,\n })\n\n const handleLayoutEffect = useCallback(() => {\n if (!omitFocusManagement) {\n setFocus()\n }\n if (!omitScrollManagement) {\n scrollToTop()\n }\n }, [omitScrollManagement, omitFocusManagement, setFocus, scrollToTop])\n\n const handleStepChange = useCallback(\n ({\n index,\n skipErrorCheck,\n skipStepChangeCall,\n skipStepChangeCallBeforeMounted,\n skipStepChangeCallFromHook,\n mode,\n }: {\n index: StepIndex\n mode: OnStepsChangeMode\n } & SetActiveIndexOptions) => {\n handleSubmitCall({\n skipErrorCheck,\n skipFieldValidation: skipErrorCheck,\n enableAsyncBehavior: isAsync(onStepChange),\n onSubmit: async () => {\n if (!skipStepChangeCallFromHook) {\n sharedStateRef.current?.data?.onStepChange?.(\n index,\n mode,\n getStepChangeOptions(index)\n )\n }\n\n let result = undefined\n\n if (\n !skipStepChangeCall &&\n !(skipStepChangeCallBeforeMounted && !isInteractionRef.current)\n ) {\n result = await callOnStepChange(index, mode)\n }\n\n // Hide async indicator\n setFormState('abort')\n\n if (!skipErrorCheck) {\n // Set the showAllErrors to the step we got to\n setShowAllErrors(errorOnStepRef.current[index])\n }\n\n if (!preventNextStepRef.current && !(result instanceof Error)) {\n handleLayoutEffect()\n\n activeIndexRef.current = index\n forceUpdate()\n }\n\n preventNextStepRef.current = false\n\n return result\n },\n })\n },\n [\n callOnStepChange,\n getStepChangeOptions,\n handleLayoutEffect,\n handleSubmitCall,\n isInteractionRef,\n onStepChange,\n setFormState,\n setShowAllErrors,\n ]\n )\n\n const setActiveIndex = useCallback(\n (index: StepIndex, options?: SetActiveIndexOptions) => {\n if (index === activeIndexRef.current) {\n return\n }\n\n const mode = index > activeIndexRef.current ? 'next' : 'previous'\n\n handleStepChange({\n index,\n skipErrorCheck: mode === 'previous',\n mode,\n ...options,\n })\n },\n [handleStepChange]\n )\n\n const handlePrevious = useCallback(() => {\n setActiveIndex(activeIndexRef.current - 1)\n }, [setActiveIndex])\n\n const handleNext = useCallback(() => {\n setActiveIndex(activeIndexRef.current + 1)\n }, [setActiveIndex])\n\n const handleChange = useCallback(\n ({ current_step }) => {\n setActiveIndex(current_step, { skipErrorCheck: true })\n },\n [setActiveIndex]\n )\n\n const setFormError = useCallback(\n (error: Error) => {\n setSubmitState?.({ error })\n },\n [setSubmitState]\n )\n\n const handleSubmit = useCallback(\n ({ preventSubmit }) => {\n if (activeIndexRef.current + 1 < totalStepsRef.current) {\n handleNext()\n preventSubmit()\n }\n },\n [handleNext]\n )\n dataContext.setHandleSubmit?.(handleSubmit)\n\n const { check } = useVisibility()\n\n const activeIndex = activeIndexRef.current\n const providerValue = useMemo<WizardContextState>(() => {\n return {\n id,\n activeIndex,\n stepElementRef,\n stepsRef,\n updateTitlesRef,\n activeIndexRef,\n totalStepsRef,\n prerenderFieldProps,\n prerenderFieldPropsRef,\n check,\n setActiveIndex,\n handlePrevious,\n handleNext,\n setFormError,\n }\n }, [\n activeIndex,\n handleNext,\n handlePrevious,\n id,\n prerenderFieldProps,\n check,\n setActiveIndex,\n setFormError,\n ])\n\n // - Handle shared state\n useLayoutEffect(() => {\n if (id && hasContext) {\n sharedStateRef.current?.extend?.(providerValue)\n }\n }, [id, providerValue]) // eslint-disable-line react-hooks/exhaustive-deps\n\n useLayoutEffect(() => {\n updateTitlesRef.current?.()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [stepsRef.current])\n\n const stepsLengthDidChange = useCallback(() => {\n const count = Object.keys(stepsRef.current).length\n const tmpCount = Object.keys(tmpStepsRef.current).length\n return count !== 0 && tmpCount !== 0 && count !== tmpCount\n }, [])\n\n // - Call onStepChange when step gets replaced or added (e.g. via activeWhen)\n useLayoutEffect(() => {\n if (stepsLengthDidChange()) {\n callOnStepChange(activeIndexRef.current, 'stepListModified')\n executeLayoutAnimationRef.current?.()\n }\n tmpStepsRef.current = stepsRef.current\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [stepsRef.current, callOnStepChange, stepsLengthDidChange])\n\n if (!hasContext) {\n warn('You may wrap Wizard.Container in Form.Handler')\n return (\n <Handler>\n <WizardContainer {...props} id={id} />\n </Handler>\n )\n }\n\n return (\n <WizardContext.Provider value={providerValue}>\n <Space\n className={classnames(\n 'dnb-forms-wizard-layout',\n `dnb-forms-wizard-layout--${variant}`,\n className\n )}\n {...rest}\n >\n <DisplaySteps\n mode={mode}\n variant={variant}\n noAnimation={noAnimation}\n handleChange={handleChange}\n sidebarId={sidebarId}\n />\n\n <div className=\"dnb-forms-wizard-layout__contents\">\n <IterateOverSteps>{children}</IterateOverSteps>\n </div>\n </Space>\n\n {prerenderFieldProps && (\n <PrerenderFieldPropsOfOtherSteps\n prerenderFieldPropsRef={prerenderFieldPropsRef}\n />\n )}\n </WizardContext.Provider>\n )\n}\n\nfunction DisplaySteps({\n mode,\n variant,\n noAnimation,\n handleChange,\n sidebarId,\n}) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n const { id, activeIndexRef, stepsRef, updateTitlesRef } =\n useContext(WizardContext) || {}\n updateTitlesRef.current = () => {\n forceUpdate()\n }\n\n const sidebar_id =\n variant === 'drawer' && !sidebarId ? undefined : sidebarId ?? id\n\n return (\n <aside className=\"dnb-forms-wizard-layout__indicator\">\n <StepIndicator.Sidebar sidebar_id={sidebar_id} />\n <StepIndicator\n bottom\n current_step={activeIndexRef.current}\n data={Object.values(stepsRef.current).map(({ title }) => title)}\n mode={mode}\n no_animation={noAnimation}\n on_change={handleChange}\n sidebar_id={sidebar_id}\n />\n </aside>\n )\n}\n\nfunction IterateOverSteps({ children }) {\n const {\n check,\n stepsRef,\n activeIndexRef,\n totalStepsRef,\n prerenderFieldProps,\n prerenderFieldPropsRef,\n } = useContext(WizardContext)\n\n stepsRef.current = {}\n let incrementIndex = -1\n\n const childrenArray = React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n let step = child\n\n if (child?.type !== Step && typeof child.type === 'function') {\n step = child.type.apply(child.type, [\n child.props,\n ]) as React.ReactElement\n\n if (step?.type === Step) {\n child = step\n }\n }\n\n if (child?.type === Step) {\n if (child.props.active === false) {\n return null\n }\n\n if (\n child.props.activeWhen &&\n !check({ visibleWhen: child.props.activeWhen })\n ) {\n return null\n }\n\n incrementIndex++\n const index = incrementIndex\n\n stepsRef.current[index] = {\n id: child.props.id,\n title:\n child.props.title !== undefined\n ? convertJsxToString(child.props.title)\n : 'Title missing',\n }\n const key = `${index}-${activeIndexRef.current}`\n const clone = (props) =>\n React.cloneElement(child as React.ReactElement<StepProps>, props)\n\n if (\n prerenderFieldProps &&\n typeof document !== 'undefined' &&\n index !== activeIndexRef.current &&\n typeof prerenderFieldPropsRef.current['step-' + index] ===\n 'undefined'\n ) {\n prerenderFieldPropsRef.current['step-' + index] = () =>\n clone({\n key,\n index,\n prerenderFieldProps: true,\n })\n }\n\n return clone({\n key,\n index,\n })\n }\n }\n\n return child\n })\n\n // Ensure we never have a higher index than the available children\n // else we get a white screen\n if (childrenArray?.length === 0) {\n activeIndexRef.current = 0\n } else if (childrenArray?.length < activeIndexRef.current + 1) {\n activeIndexRef.current = childrenArray.length - 1\n }\n\n totalStepsRef.current = childrenArray?.length\n\n return childrenArray\n}\n\nfunction PrerenderFieldPropsOfOtherSteps({\n prerenderFieldPropsRef,\n}: {\n prerenderFieldPropsRef: WizardContextState['prerenderFieldPropsRef']\n}) {\n const hasRenderedRef = useRef(true)\n if (!hasRenderedRef.current) {\n return null\n }\n hasRenderedRef.current = false\n\n return (\n <WizardPortal>\n <PrerenderFieldPropsProvider>\n <iframe title=\"Wizard Prerender\" hidden>\n {Object.values(prerenderFieldPropsRef.current).map((Fn, i) => (\n <Fn key={i} />\n ))}\n </iframe>\n </PrerenderFieldPropsProvider>\n </WizardPortal>\n )\n}\n\nfunction WizardPortal({ children }) {\n if (typeof document !== 'undefined') {\n return ReactDOM.createPortal(children, document.body)\n }\n}\n\nfunction PrerenderFieldPropsProvider({ children }) {\n const { data, setFieldProps, updateDataValue } = useContext(DataContext)\n\n return (\n <DataContext.Provider\n value={{\n ...defaultContextState,\n\n // Only update the props and the data value\n data,\n setFieldProps,\n updateDataValue,\n prerenderFieldProps: true,\n hasContext: true,\n }}\n >\n <WizardContext.Provider value={{ prerenderFieldProps: true }}>\n {children}\n </WizardContext.Provider>\n </DataContext.Provider>\n )\n}\n\nWizardContainer._supportsSpacingProps = true\n\nexport default WizardContainer\n"],"mappings":";;;;;;;;AAAA,OAAOA,KAAK,IACVC,UAAU,EACVC,WAAW,EACXC,MAAM,EACNC,UAAU,EACVC,OAAO,QACF,OAAO;AACd,OAAOC,QAAQ,MAAM,WAAW;AAChC,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,KAAK,EAAEC,aAAa,QAAQ,wBAAwB;AAC7D,SACEC,kBAAkB,EAClBC,IAAI,QACC,qCAAqC;AAC5C,SAASC,OAAO,QAAQ,oCAAoC;AAC5D,OAAOC,KAAK,MAAM,kCAAkC;AACpD,OAAOC,IAAI,MAA8B,SAAS;AAClD,OAAOC,aAAa,MAQb,0BAA0B;AACjC,OAAOC,WAAW,IAChBC,mBAAmB,QACd,2BAA2B;AAClC,OAAOC,OAAO,MAAM,4BAA4B;AAChD,SAEEC,cAAc,QACT,2CAA2C;AAClD,OAAOC,qBAAqB,MAAM,yBAAyB;AAC3D,OAAOC,gBAAgB,MAAM,oBAAoB;AAEjD,OAAOC,aAAa,MAAM,qCAAqC;AAG/D,MAAMC,eAAe,GACnB,OAAOC,MAAM,KAAK,WAAW,GAAGxB,KAAK,CAACyB,SAAS,GAAGzB,KAAK,CAACuB,eAAe;AA0DzE,SAASG,eAAeA,CAACC,KAAY,EAAE;EAAA,IAAAC,qBAAA;EACrC,MAAM;MACJC,SAAS;MACTC,EAAE,EAAEC,MAAM;MACVC,IAAI,GAAG,QAAQ;MACfC,kBAAkB,GAAG,CAAC;MACtBC,oBAAoB;MACpBC,mBAAmB;MACnBC,YAAY;MACZC,QAAQ;MACRC,WAAW,GAAG,IAAI;MAClBC,mBAAmB,GAAG,IAAI;MAC1BC,OAAO,GAAG,SAAS;MACnBC;IAEF,CAAC,GAAGd,KAAK;IADJe,IAAI,GAAAC,wBAAA,CACLhB,KAAK,EAAAiB,SAAA;EAET,MAAMC,WAAW,GAAG5C,UAAU,CAACe,WAAW,CAAC;EAC3C,MAAM;IACJ8B,UAAU;IACVC,YAAY;IACZC,gBAAgB;IAChBC,gBAAgB;IAChBC,aAAa;IACbC;EACF,CAAC,GAAGN,WAAW;EAEf,MAAMf,EAAE,GAAGjB,KAAK,CAACkB,MAAM,CAAC;EACxB,MAAM,GAAGqB,WAAW,CAAC,GAAGhD,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAClD,MAAMiD,cAAc,GAAGlD,MAAM,CAAY8B,kBAAkB,CAAC;EAC5D,MAAMqB,aAAa,GAAGnD,MAAM,CAASoD,GAAG,CAAC;EACzC,MAAMC,cAAc,GAAGrD,MAAM,CAA6B,CAAC,CAAC,CAAC;EAC7D,MAAMsD,cAAc,GAAGtD,MAAM,CAAc,CAAC;EAC5C,MAAMuD,kBAAkB,GAAGvD,MAAM,CAAC,KAAK,CAAC;EACxC,MAAMwD,QAAQ,GAAGxD,MAAM,CAAQ,CAAC,CAAC,CAAC;EAClC,MAAMyD,WAAW,GAAGzD,MAAM,CAAQ,CAAC,CAAC,CAAC;EACrC,MAAM0D,eAAe,GAAG1D,MAAM,CAAa,CAAC;EAC5C,MAAM2D,sBAAsB,GAAG3D,MAAM,CAEnC,CAAC,CAAC,CAAC;EAGL,MAAM4D,cAAc,GAClB5D,MAAM,CAIJ,CAAC;EACL4D,cAAc,CAACC,OAAO,GAAG7C,cAAc,CACrC2B,UAAU,IAAIhB,EAAE,GAAGA,EAAE,GAAG,SAAS,GAAGmC,SACtC,CAAC;EAGDT,cAAc,CAACQ,OAAO,CAACX,cAAc,CAACW,OAAO,CAAC,GAAGd,aAAa;EAE9D,MAAMgB,iBAAiB,GAAGhE,WAAW,CAAC,CAACiE,aAAa,GAAG,IAAI,KAAK;IAC9DT,kBAAkB,CAACM,OAAO,GAAGG,aAAa;EAC5C,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,oBAA+D,GACnElE,WAAW,CACRmE,KAAK,IAAK;IAAA,IAAAC,qBAAA;IACT,MAAMC,aAAa,GAAGlB,cAAc,CAACW,OAAO;IAC5C,MAAMQ,OAAO,GAAG;MACdN,iBAAiB;MACjBO,YAAY,EAAE;QAAEJ,KAAK,EAAEE;MAAc;IACvC,CAAC;IAED,MAAMzC,EAAE,IAAAwC,qBAAA,GAAGX,QAAQ,CAACK,OAAO,CAACK,KAAK,CAAC,cAAAC,qBAAA,uBAAvBA,qBAAA,CAAyBxC,EAAE;IACtC,IAAIA,EAAE,EAAE;MAAA,IAAA4C,qBAAA;MACN,MAAMC,UAAU,IAAAD,qBAAA,GAAGf,QAAQ,CAACK,OAAO,CAACO,aAAa,CAAC,cAAAG,qBAAA,uBAA/BA,qBAAA,CAAiC5C,EAAE;MACtD8C,MAAM,CAACC,MAAM,CAACL,OAAO,EAAE;QAAE1C;MAAG,CAAC,CAAC;MAC9B8C,MAAM,CAACC,MAAM,CAACL,OAAO,CAACC,YAAY,EAAE;QAAE3C,EAAE,EAAE6C;MAAW,CAAC,CAAC;IACzD;IAEA,OAAOH,OAAO;EAChB,CAAC,EACD,CAACN,iBAAiB,CACpB,CAAC;EAEH,MAAMY,gBAAgB,GAAG5E,WAAW,CAClC,OAAOmE,KAAgB,EAAErC,IAAuB,KAAK;IACnD,IAAIpB,OAAO,CAACwB,YAAY,CAAC,EAAE;MACzB,OAAO,MAAMA,YAAY,CAACiC,KAAK,EAAErC,IAAI,EAAEoC,oBAAoB,CAACC,KAAK,CAAC,CAAC;IACrE;IAEA,OAAOjC,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAGiC,KAAK,EAAErC,IAAI,EAAEoC,oBAAoB,CAACC,KAAK,CAAC,CAAC;EACjE,CAAC,EACD,CAACD,oBAAoB,EAAEhC,YAAY,CACrC,CAAC;EAED,MAAM;IAAE2C,QAAQ;IAAEC,WAAW;IAAEC;EAAiB,CAAC,GAC/C7D,qBAAqB,CAAC;IACpBqC;EACF,CAAC,CAAC;EAEJ,MAAMyB,yBAAyB,GAAG/E,MAAM,CAAa,CAAC;EACtDkB,gBAAgB,CAAC;IACfgC,cAAc;IACdI,cAAc;IACdyB;EACF,CAAC,CAAC;EAEF,MAAMC,kBAAkB,GAAGjF,WAAW,CAAC,MAAM;IAC3C,IAAI,CAACiC,mBAAmB,EAAE;MACxB4C,QAAQ,CAAC,CAAC;IACZ;IACA,IAAI,CAAC7C,oBAAoB,EAAE;MACzB8C,WAAW,CAAC,CAAC;IACf;EACF,CAAC,EAAE,CAAC9C,oBAAoB,EAAEC,mBAAmB,EAAE4C,QAAQ,EAAEC,WAAW,CAAC,CAAC;EAEtE,MAAMI,gBAAgB,GAAGlF,WAAW,CAClC,CAAC;IACCmE,KAAK;IACLgB,cAAc;IACdC,kBAAkB;IAClBC,+BAA+B;IAC/BC,0BAA0B;IAC1BxD;EAIsB,CAAC,KAAK;IAC5BgB,gBAAgB,CAAC;MACfqC,cAAc;MACdI,mBAAmB,EAAEJ,cAAc;MACnCK,mBAAmB,EAAE9E,OAAO,CAACwB,YAAY,CAAC;MAC1CuD,QAAQ,EAAE,MAAAA,CAAA,KAAY;QACpB,IAAI,CAACH,0BAA0B,EAAE;UAAA,IAAAI,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA;UAC/B,CAAAF,qBAAA,GAAA7B,cAAc,CAACC,OAAO,cAAA4B,qBAAA,wBAAAC,sBAAA,GAAtBD,qBAAA,CAAwBG,IAAI,cAAAF,sBAAA,wBAAAC,sBAAA,GAA5BD,sBAAA,CAA8BzD,YAAY,cAAA0D,sBAAA,uBAA1CA,sBAAA,CAAAE,IAAA,CAAAH,sBAAA,EACExB,KAAK,EACLrC,IAAI,EACJoC,oBAAoB,CAACC,KAAK,CAC5B,CAAC;QACH;QAEA,IAAI4B,MAAM,GAAGhC,SAAS;QAEtB,IACE,CAACqB,kBAAkB,IACnB,EAAEC,+BAA+B,IAAI,CAACN,gBAAgB,CAACjB,OAAO,CAAC,EAC/D;UACAiC,MAAM,GAAG,MAAMnB,gBAAgB,CAACT,KAAK,EAAErC,IAAI,CAAC;QAC9C;QAGAe,YAAY,CAAC,OAAO,CAAC;QAErB,IAAI,CAACsC,cAAc,EAAE;UAEnBpC,gBAAgB,CAACO,cAAc,CAACQ,OAAO,CAACK,KAAK,CAAC,CAAC;QACjD;QAEA,IAAI,CAACX,kBAAkB,CAACM,OAAO,IAAI,EAAEiC,MAAM,YAAYC,KAAK,CAAC,EAAE;UAC7Df,kBAAkB,CAAC,CAAC;UAEpB9B,cAAc,CAACW,OAAO,GAAGK,KAAK;UAC9BjB,WAAW,CAAC,CAAC;QACf;QAEAM,kBAAkB,CAACM,OAAO,GAAG,KAAK;QAElC,OAAOiC,MAAM;MACf;IACF,CAAC,CAAC;EACJ,CAAC,EACD,CACEnB,gBAAgB,EAChBV,oBAAoB,EACpBe,kBAAkB,EAClBnC,gBAAgB,EAChBiC,gBAAgB,EAChB7C,YAAY,EACZW,YAAY,EACZE,gBAAgB,CAEpB,CAAC;EAED,MAAMkD,cAAc,GAAGjG,WAAW,CAChC,CAACmE,KAAgB,EAAEG,OAA+B,KAAK;IACrD,IAAIH,KAAK,KAAKhB,cAAc,CAACW,OAAO,EAAE;MACpC;IACF;IAEA,MAAMhC,IAAI,GAAGqC,KAAK,GAAGhB,cAAc,CAACW,OAAO,GAAG,MAAM,GAAG,UAAU;IAEjEoB,gBAAgB,CAAAgB,aAAA;MACd/B,KAAK;MACLgB,cAAc,EAAErD,IAAI,KAAK,UAAU;MACnCA;IAAI,GACDwC,OAAO,CACX,CAAC;EACJ,CAAC,EACD,CAACY,gBAAgB,CACnB,CAAC;EAED,MAAMiB,cAAc,GAAGnG,WAAW,CAAC,MAAM;IACvCiG,cAAc,CAAC9C,cAAc,CAACW,OAAO,GAAG,CAAC,CAAC;EAC5C,CAAC,EAAE,CAACmC,cAAc,CAAC,CAAC;EAEpB,MAAMG,UAAU,GAAGpG,WAAW,CAAC,MAAM;IACnCiG,cAAc,CAAC9C,cAAc,CAACW,OAAO,GAAG,CAAC,CAAC;EAC5C,CAAC,EAAE,CAACmC,cAAc,CAAC,CAAC;EAEpB,MAAMI,YAAY,GAAGrG,WAAW,CAC9B,CAAC;IAAEsG;EAAa,CAAC,KAAK;IACpBL,cAAc,CAACK,YAAY,EAAE;MAAEnB,cAAc,EAAE;IAAK,CAAC,CAAC;EACxD,CAAC,EACD,CAACc,cAAc,CACjB,CAAC;EAED,MAAMM,YAAY,GAAGvG,WAAW,CAC7BwG,KAAY,IAAK;IAChBvD,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAG;MAAEuD;IAAM,CAAC,CAAC;EAC7B,CAAC,EACD,CAACvD,cAAc,CACjB,CAAC;EAED,MAAMwD,YAAY,GAAGzG,WAAW,CAC9B,CAAC;IAAE0G;EAAc,CAAC,KAAK;IACrB,IAAIvD,cAAc,CAACW,OAAO,GAAG,CAAC,GAAGV,aAAa,CAACU,OAAO,EAAE;MACtDsC,UAAU,CAAC,CAAC;MACZM,aAAa,CAAC,CAAC;IACjB;EACF,CAAC,EACD,CAACN,UAAU,CACb,CAAC;EACD,CAAA1E,qBAAA,GAAAiB,WAAW,CAACgE,eAAe,cAAAjF,qBAAA,uBAA3BA,qBAAA,CAAAoE,IAAA,CAAAnD,WAAW,EAAmB8D,YAAY,CAAC;EAE3C,MAAM;IAAEG;EAAM,CAAC,GAAGxF,aAAa,CAAC,CAAC;EAEjC,MAAMyF,WAAW,GAAG1D,cAAc,CAACW,OAAO;EAC1C,MAAMgD,aAAa,GAAG3G,OAAO,CAAqB,MAAM;IACtD,OAAO;MACLyB,EAAE;MACFiF,WAAW;MACXtD,cAAc;MACdE,QAAQ;MACRE,eAAe;MACfR,cAAc;MACdC,aAAa;MACbf,mBAAmB;MACnBuB,sBAAsB;MACtBgD,KAAK;MACLX,cAAc;MACdE,cAAc;MACdC,UAAU;MACVG;IACF,CAAC;EACH,CAAC,EAAE,CACDM,WAAW,EACXT,UAAU,EACVD,cAAc,EACdvE,EAAE,EACFS,mBAAmB,EACnBuE,KAAK,EACLX,cAAc,EACdM,YAAY,CACb,CAAC;EAGFlF,eAAe,CAAC,MAAM;IACpB,IAAIO,EAAE,IAAIgB,UAAU,EAAE;MAAA,IAAAmE,sBAAA,EAAAC,sBAAA;MACpB,CAAAD,sBAAA,GAAAlD,cAAc,CAACC,OAAO,cAAAiD,sBAAA,wBAAAC,sBAAA,GAAtBD,sBAAA,CAAwBE,MAAM,cAAAD,sBAAA,uBAA9BA,sBAAA,CAAAlB,IAAA,CAAAiB,sBAAA,EAAiCD,aAAa,CAAC;IACjD;EACF,CAAC,EAAE,CAAClF,EAAE,EAAEkF,aAAa,CAAC,CAAC;EAEvBzF,eAAe,CAAC,MAAM;IAAA,IAAA6F,qBAAA;IACpB,CAAAA,qBAAA,GAAAvD,eAAe,CAACG,OAAO,cAAAoD,qBAAA,uBAAvBA,qBAAA,CAAApB,IAAA,CAAAnC,eAA0B,CAAC;EAE7B,CAAC,EAAE,CAACF,QAAQ,CAACK,OAAO,CAAC,CAAC;EAEtB,MAAMqD,oBAAoB,GAAGnH,WAAW,CAAC,MAAM;IAC7C,MAAMoH,KAAK,GAAG1C,MAAM,CAAC2C,IAAI,CAAC5D,QAAQ,CAACK,OAAO,CAAC,CAACwD,MAAM;IAClD,MAAMC,QAAQ,GAAG7C,MAAM,CAAC2C,IAAI,CAAC3D,WAAW,CAACI,OAAO,CAAC,CAACwD,MAAM;IACxD,OAAOF,KAAK,KAAK,CAAC,IAAIG,QAAQ,KAAK,CAAC,IAAIH,KAAK,KAAKG,QAAQ;EAC5D,CAAC,EAAE,EAAE,CAAC;EAGNlG,eAAe,CAAC,MAAM;IACpB,IAAI8F,oBAAoB,CAAC,CAAC,EAAE;MAAA,IAAAK,qBAAA;MAC1B5C,gBAAgB,CAACzB,cAAc,CAACW,OAAO,EAAE,kBAAkB,CAAC;MAC5D,CAAA0D,qBAAA,GAAAxC,yBAAyB,CAAClB,OAAO,cAAA0D,qBAAA,uBAAjCA,qBAAA,CAAA1B,IAAA,CAAAd,yBAAoC,CAAC;IACvC;IACAtB,WAAW,CAACI,OAAO,GAAGL,QAAQ,CAACK,OAAO;EAExC,CAAC,EAAE,CAACL,QAAQ,CAACK,OAAO,EAAEc,gBAAgB,EAAEuC,oBAAoB,CAAC,CAAC;EAE9D,IAAI,CAACvE,UAAU,EAAE;IACfnC,IAAI,CAAC,+CAA+C,CAAC;IACrD,OACEX,KAAA,CAAA2H,aAAA,CAACzG,OAAO,QACNlB,KAAA,CAAA2H,aAAA,CAACjG,eAAe,EAAAkG,QAAA,KAAKjG,KAAK;MAAEG,EAAE,EAAEA;IAAG,EAAE,CAC9B,CAAC;EAEd;EAEA,OACE9B,KAAA,CAAA2H,aAAA,CAAC5G,aAAa,CAAC8G,QAAQ;IAACC,KAAK,EAAEd;EAAc,GAC3ChH,KAAA,CAAA2H,aAAA,CAACnH,KAAK,EAAAoH,QAAA;IACJ/F,SAAS,EAAEtB,UAAU,qDAESiC,OAAQ,IACpCX,SACF;EAAE,GACEa,IAAI,GAER1C,KAAA,CAAA2H,aAAA,CAACI,YAAY;IACX/F,IAAI,EAAEA,IAAK;IACXQ,OAAO,EAAEA,OAAQ;IACjBF,WAAW,EAAEA,WAAY;IACzBiE,YAAY,EAAEA,YAAa;IAC3B9D,SAAS,EAAEA;EAAU,CACtB,CAAC,EAEFzC,KAAA,CAAA2H,aAAA;IAAK9F,SAAS,EAAC;EAAmC,GAChD7B,KAAA,CAAA2H,aAAA,CAACK,gBAAgB,QAAE3F,QAA2B,CAC3C,CACA,CAAC,EAEPE,mBAAmB,IAClBvC,KAAA,CAAA2H,aAAA,CAACM,+BAA+B;IAC9BnE,sBAAsB,EAAEA;EAAuB,CAChD,CAEmB,CAAC;AAE7B;AAEA,SAASiE,YAAYA,CAAC;EACpB/F,IAAI;EACJQ,OAAO;EACPF,WAAW;EACXiE,YAAY;EACZ9D;AACF,CAAC,EAAE;EACD,MAAM,GAAGW,WAAW,CAAC,GAAGhD,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAClD,MAAM;IAAE0B,EAAE;IAAEuB,cAAc;IAAEM,QAAQ;IAAEE;EAAgB,CAAC,GACrD5D,UAAU,CAACc,aAAa,CAAC,IAAI,CAAC,CAAC;EACjC8C,eAAe,CAACG,OAAO,GAAG,MAAM;IAC9BZ,WAAW,CAAC,CAAC;EACf,CAAC;EAED,MAAM8E,UAAU,GACd1F,OAAO,KAAK,QAAQ,IAAI,CAACC,SAAS,GAAGwB,SAAS,GAAGxB,SAAS,aAATA,SAAS,cAATA,SAAS,GAAIX,EAAE;EAElE,OACE9B,KAAA,CAAA2H,aAAA;IAAO9F,SAAS,EAAC;EAAoC,GACnD7B,KAAA,CAAA2H,aAAA,CAAClH,aAAa,CAAC0H,OAAO;IAACD,UAAU,EAAEA;EAAW,CAAE,CAAC,EACjDlI,KAAA,CAAA2H,aAAA,CAAClH,aAAa;IACZ2H,MAAM;IACN5B,YAAY,EAAEnD,cAAc,CAACW,OAAQ;IACrC+B,IAAI,EAAEnB,MAAM,CAACyD,MAAM,CAAC1E,QAAQ,CAACK,OAAO,CAAC,CAACsE,GAAG,CAAC,CAAC;MAAEC;IAAM,CAAC,KAAKA,KAAK,CAAE;IAChEvG,IAAI,EAAEA,IAAK;IACXwG,YAAY,EAAElG,WAAY;IAC1BmG,SAAS,EAAElC,YAAa;IACxB2B,UAAU,EAAEA;EAAW,CACxB,CACI,CAAC;AAEZ;AAEA,SAASF,gBAAgBA,CAAC;EAAE3F;AAAS,CAAC,EAAE;EACtC,MAAM;IACJyE,KAAK;IACLnD,QAAQ;IACRN,cAAc;IACdC,aAAa;IACbf,mBAAmB;IACnBuB;EACF,CAAC,GAAG7D,UAAU,CAACc,aAAa,CAAC;EAE7B4C,QAAQ,CAACK,OAAO,GAAG,CAAC,CAAC;EACrB,IAAI0E,cAAc,GAAG,CAAC,CAAC;EAEvB,MAAMC,aAAa,GAAG3I,KAAK,CAAC4I,QAAQ,CAACN,GAAG,CAACjG,QAAQ,EAAGwG,KAAK,IAAK;IAC5D,IAAI7I,KAAK,CAAC8I,cAAc,CAACD,KAAK,CAAC,EAAE;MAAA,IAAAE,MAAA,EAAAC,OAAA;MAC/B,IAAIC,IAAI,GAAGJ,KAAK;MAEhB,IAAI,EAAAE,MAAA,GAAAF,KAAK,cAAAE,MAAA,uBAALA,MAAA,CAAOG,IAAI,MAAKpI,IAAI,IAAI,OAAO+H,KAAK,CAACK,IAAI,KAAK,UAAU,EAAE;QAAA,IAAAC,KAAA;QAC5DF,IAAI,GAAGJ,KAAK,CAACK,IAAI,CAACE,KAAK,CAACP,KAAK,CAACK,IAAI,EAAE,CAClCL,KAAK,CAAClH,KAAK,CACZ,CAAuB;QAExB,IAAI,EAAAwH,KAAA,GAAAF,IAAI,cAAAE,KAAA,uBAAJA,KAAA,CAAMD,IAAI,MAAKpI,IAAI,EAAE;UACvB+H,KAAK,GAAGI,IAAI;QACd;MACF;MAEA,IAAI,EAAAD,OAAA,GAAAH,KAAK,cAAAG,OAAA,uBAALA,OAAA,CAAOE,IAAI,MAAKpI,IAAI,EAAE;QACxB,IAAI+H,KAAK,CAAClH,KAAK,CAAC0H,MAAM,KAAK,KAAK,EAAE;UAChC,OAAO,IAAI;QACb;QAEA,IACER,KAAK,CAAClH,KAAK,CAAC2H,UAAU,IACtB,CAACxC,KAAK,CAAC;UAAEyC,WAAW,EAAEV,KAAK,CAAClH,KAAK,CAAC2H;QAAW,CAAC,CAAC,EAC/C;UACA,OAAO,IAAI;QACb;QAEAZ,cAAc,EAAE;QAChB,MAAMrE,KAAK,GAAGqE,cAAc;QAE5B/E,QAAQ,CAACK,OAAO,CAACK,KAAK,CAAC,GAAG;UACxBvC,EAAE,EAAE+G,KAAK,CAAClH,KAAK,CAACG,EAAE;UAClByG,KAAK,EACHM,KAAK,CAAClH,KAAK,CAAC4G,KAAK,KAAKtE,SAAS,GAC3BvD,kBAAkB,CAACmI,KAAK,CAAClH,KAAK,CAAC4G,KAAK,CAAC,GACrC;QACR,CAAC;QACD,MAAMiB,GAAG,GAAI,GAAEnF,KAAM,IAAGhB,cAAc,CAACW,OAAQ,EAAC;QAChD,MAAMyF,KAAK,GAAI9H,KAAK,IAClB3B,KAAK,CAAC0J,YAAY,CAACb,KAAK,EAAmClH,KAAK,CAAC;QAEnE,IACEY,mBAAmB,IACnB,OAAOoH,QAAQ,KAAK,WAAW,IAC/BtF,KAAK,KAAKhB,cAAc,CAACW,OAAO,IAChC,OAAOF,sBAAsB,CAACE,OAAO,CAAC,OAAO,GAAGK,KAAK,CAAC,KACpD,WAAW,EACb;UACAP,sBAAsB,CAACE,OAAO,CAAC,OAAO,GAAGK,KAAK,CAAC,GAAG,MAChDoF,KAAK,CAAC;YACJD,GAAG;YACHnF,KAAK;YACL9B,mBAAmB,EAAE;UACvB,CAAC,CAAC;QACN;QAEA,OAAOkH,KAAK,CAAC;UACXD,GAAG;UACHnF;QACF,CAAC,CAAC;MACJ;IACF;IAEA,OAAOwE,KAAK;EACd,CAAC,CAAC;EAIF,IAAI,CAAAF,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEnB,MAAM,MAAK,CAAC,EAAE;IAC/BnE,cAAc,CAACW,OAAO,GAAG,CAAC;EAC5B,CAAC,MAAM,IAAI,CAAA2E,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEnB,MAAM,IAAGnE,cAAc,CAACW,OAAO,GAAG,CAAC,EAAE;IAC7DX,cAAc,CAACW,OAAO,GAAG2E,aAAa,CAACnB,MAAM,GAAG,CAAC;EACnD;EAEAlE,aAAa,CAACU,OAAO,GAAG2E,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEnB,MAAM;EAE7C,OAAOmB,aAAa;AACtB;AAEA,SAASV,+BAA+BA,CAAC;EACvCnE;AAGF,CAAC,EAAE;EACD,MAAM8F,cAAc,GAAGzJ,MAAM,CAAC,IAAI,CAAC;EACnC,IAAI,CAACyJ,cAAc,CAAC5F,OAAO,EAAE;IAC3B,OAAO,IAAI;EACb;EACA4F,cAAc,CAAC5F,OAAO,GAAG,KAAK;EAE9B,OACEhE,KAAA,CAAA2H,aAAA,CAACkC,YAAY,QACX7J,KAAA,CAAA2H,aAAA,CAACmC,2BAA2B,QAC1B9J,KAAA,CAAA2H,aAAA;IAAQY,KAAK,EAAC,kBAAkB;IAACwB,MAAM;EAAA,GACpCnF,MAAM,CAACyD,MAAM,CAACvE,sBAAsB,CAACE,OAAO,CAAC,CAACsE,GAAG,CAAC,CAAC0B,EAAE,EAAEC,CAAC,KACvDjK,KAAA,CAAA2H,aAAA,CAACqC,EAAE;IAACR,GAAG,EAAES;EAAE,CAAE,CACd,CACK,CACmB,CACjB,CAAC;AAEnB;AAEA,SAASJ,YAAYA,CAAC;EAAExH;AAAS,CAAC,EAAE;EAClC,IAAI,OAAOsH,QAAQ,KAAK,WAAW,EAAE;IACnC,OAAOrJ,QAAQ,CAAC4J,YAAY,CAAC7H,QAAQ,EAAEsH,QAAQ,CAACQ,IAAI,CAAC;EACvD;AACF;AAEA,SAASL,2BAA2BA,CAAC;EAAEzH;AAAS,CAAC,EAAE;EACjD,MAAM;IAAE0D,IAAI;IAAEqE,aAAa;IAAEC;EAAgB,CAAC,GAAGpK,UAAU,CAACe,WAAW,CAAC;EAExE,OACEhB,KAAA,CAAA2H,aAAA,CAAC3G,WAAW,CAAC6G,QAAQ;IACnBC,KAAK,EAAA1B,aAAA,CAAAA,aAAA,KACAnF,mBAAmB;MAGtB8E,IAAI;MACJqE,aAAa;MACbC,eAAe;MACf9H,mBAAmB,EAAE,IAAI;MACzBO,UAAU,EAAE;IAAI;EAChB,GAEF9C,KAAA,CAAA2H,aAAA,CAAC5G,aAAa,CAAC8G,QAAQ;IAACC,KAAK,EAAE;MAAEvF,mBAAmB,EAAE;IAAK;EAAE,GAC1DF,QACqB,CACJ,CAAC;AAE3B;AAEAX,eAAe,CAAC4I,qBAAqB,GAAG,IAAI;AAE5C,eAAe5I,eAAe"}
@@ -47,7 +47,7 @@ export const WizardContainerProperties = {
47
47
  };
48
48
  export const WizardContainerEvents = {
49
49
  onStepChange: {
50
- doc: 'Will be called when the user navigate to a different step, with step `index` as the first argument and `previous` or `next` (string) as the second argument, and an options object containing `preventNavigation` function as the third parameter. When an async function is provided, it will show an indicator on the submit button during the form submission. All form elements will be disabled during the submit. The indicator will be shown for minimum 1 second. Related Form.Handler props: `minimumAsyncBehaviorTime` and `asyncSubmitTimeout`.',
50
+ doc: 'Will be called when the user navigate to a different step, with step `index` as the first argument and `previous` or `next` (or `stepListModified` when a step gets replaced) as the second argument, and as the third parameter an options object containing a `preventNavigation` function, an `id` if given on the `Wizard.Step` and a `previousStep` object containing the previous `index` (and `id` if given on the `Wizard.Step`). When an async function is provided, it will show an indicator on the submit button during the form submission. All form elements will be disabled during the submit. The indicator will be shown for minimum 1 second. Related Form.Handler props: `minimumAsyncBehaviorTime` and `asyncSubmitTimeout`.',
51
51
  type: 'function',
52
52
  status: 'optional'
53
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WizardContainerDocs.js","names":["WizardContainerProperties","initialActiveIndex","doc","type","status","mode","variant","omitScrollManagement","omitFocusManagement","sidebarId","noAnimation","children","WizardContainerEvents","onStepChange"],"sources":["../../../../../../src/extensions/forms/Wizard/Container/WizardContainerDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const WizardContainerProperties: PropertiesTableProps = {\n initialActiveIndex: {\n doc: 'What step should show initially (defaults to 0 for the first one).',\n type: 'number',\n status: 'optional',\n },\n mode: {\n doc: 'How to show the wizard. Inherited from StepIndicator. Defaults to `strict`.',\n type: 'string',\n status: 'optional',\n },\n variant: {\n doc: 'Sets the StepIndicator to be either `sidebar` or `drawer`. Defaults to `sidebar`.',\n type: 'string',\n status: 'optional',\n },\n omitScrollManagement: {\n doc: 'True to omit scroll management.',\n type: 'boolean',\n status: 'optional',\n },\n omitFocusManagement: {\n doc: 'True to omit focus management.',\n type: 'boolean',\n status: 'optional',\n },\n sidebarId: {\n doc: 'Sets the id for `<StepIndicator.Sidebar />` Inherited from StepIndicator.',\n type: 'string',\n status: 'required',\n },\n noAnimation: {\n doc: 'Determines if the height animation for step items and the drawer button will run. Inherited from StepIndicator. Defaults to `true`.',\n type: 'boolean',\n status: 'optional',\n },\n children: {\n doc: 'Contents (Step components).',\n type: 'React.Node',\n status: 'required',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n\nexport const WizardContainerEvents: PropertiesTableProps = {\n onStepChange: {\n doc: 'Will be called when the user navigate to a different step, with step `index` as the first argument and `previous` or `next` (string) as the second argument, and an options object containing `preventNavigation` function as the third parameter. When an async function is provided, it will show an indicator on the submit button during the form submission. All form elements will be disabled during the submit. The indicator will be shown for minimum 1 second. Related Form.Handler props: `minimumAsyncBehaviorTime` and `asyncSubmitTimeout`.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,yBAA+C,GAAG;EAC7DC,kBAAkB,EAAE;IAClBC,GAAG,EAAE,oEAAoE;IACzEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJH,GAAG,EAAE,6EAA6E;IAClFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,OAAO,EAAE;IACPJ,GAAG,EAAE,mFAAmF;IACxFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,oBAAoB,EAAE;IACpBL,GAAG,EAAE,iCAAiC;IACtCC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDI,mBAAmB,EAAE;IACnBN,GAAG,EAAE,gCAAgC;IACrCC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDK,SAAS,EAAE;IACTP,GAAG,EAAE,2EAA2E;IAChFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDM,WAAW,EAAE;IACXR,GAAG,EAAE,qIAAqI;IAC1IC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDO,QAAQ,EAAE;IACRT,GAAG,EAAE,6BAA6B;IAClCC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCF,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMQ,qBAA2C,GAAG;EACzDC,YAAY,EAAE;IACZX,GAAG,EAAE,4hBAA4hB;IACjiBC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AACF,CAAC"}
1
+ {"version":3,"file":"WizardContainerDocs.js","names":["WizardContainerProperties","initialActiveIndex","doc","type","status","mode","variant","omitScrollManagement","omitFocusManagement","sidebarId","noAnimation","children","WizardContainerEvents","onStepChange"],"sources":["../../../../../../src/extensions/forms/Wizard/Container/WizardContainerDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const WizardContainerProperties: PropertiesTableProps = {\n initialActiveIndex: {\n doc: 'What step should show initially (defaults to 0 for the first one).',\n type: 'number',\n status: 'optional',\n },\n mode: {\n doc: 'How to show the wizard. Inherited from StepIndicator. Defaults to `strict`.',\n type: 'string',\n status: 'optional',\n },\n variant: {\n doc: 'Sets the StepIndicator to be either `sidebar` or `drawer`. Defaults to `sidebar`.',\n type: 'string',\n status: 'optional',\n },\n omitScrollManagement: {\n doc: 'True to omit scroll management.',\n type: 'boolean',\n status: 'optional',\n },\n omitFocusManagement: {\n doc: 'True to omit focus management.',\n type: 'boolean',\n status: 'optional',\n },\n sidebarId: {\n doc: 'Sets the id for `<StepIndicator.Sidebar />` Inherited from StepIndicator.',\n type: 'string',\n status: 'required',\n },\n noAnimation: {\n doc: 'Determines if the height animation for step items and the drawer button will run. Inherited from StepIndicator. Defaults to `true`.',\n type: 'boolean',\n status: 'optional',\n },\n children: {\n doc: 'Contents (Step components).',\n type: 'React.Node',\n status: 'required',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n\nexport const WizardContainerEvents: PropertiesTableProps = {\n onStepChange: {\n doc: 'Will be called when the user navigate to a different step, with step `index` as the first argument and `previous` or `next` (or `stepListModified` when a step gets replaced) as the second argument, and as the third parameter an options object containing a `preventNavigation` function, an `id` if given on the `Wizard.Step` and a `previousStep` object containing the previous `index` (and `id` if given on the `Wizard.Step`). When an async function is provided, it will show an indicator on the submit button during the form submission. All form elements will be disabled during the submit. The indicator will be shown for minimum 1 second. Related Form.Handler props: `minimumAsyncBehaviorTime` and `asyncSubmitTimeout`.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,yBAA+C,GAAG;EAC7DC,kBAAkB,EAAE;IAClBC,GAAG,EAAE,oEAAoE;IACzEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJH,GAAG,EAAE,6EAA6E;IAClFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,OAAO,EAAE;IACPJ,GAAG,EAAE,mFAAmF;IACxFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,oBAAoB,EAAE;IACpBL,GAAG,EAAE,iCAAiC;IACtCC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDI,mBAAmB,EAAE;IACnBN,GAAG,EAAE,gCAAgC;IACrCC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDK,SAAS,EAAE;IACTP,GAAG,EAAE,2EAA2E;IAChFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDM,WAAW,EAAE;IACXR,GAAG,EAAE,qIAAqI;IAC1IC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDO,QAAQ,EAAE;IACRT,GAAG,EAAE,6BAA6B;IAClCC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCF,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMQ,qBAA2C,GAAG;EACzDC,YAAY,EAAE;IACZX,GAAG,EAAE,mtBAAmtB;IACxtBC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AACF,CAAC"}
@@ -1,6 +1,5 @@
1
1
  /// <reference types="react" />
2
- export default function useHandleLayoutEffect({ activeIndexRef, stepElementRef, }: {
3
- activeIndexRef: any;
2
+ export default function useHandleLayoutEffect({ stepElementRef }: {
4
3
  stepElementRef: any;
5
4
  }): {
6
5
  setFocus: () => void;
@@ -1,9 +1,7 @@
1
1
  "use client";
2
2
 
3
3
  import { useCallback, useEffect, useRef } from 'react';
4
- import useStepAnimation from './useStepAnimation';
5
4
  export default function useHandleLayoutEffect({
6
- activeIndexRef,
7
5
  stepElementRef
8
6
  }) {
9
7
  const isInteractionRef = useRef(false);
@@ -14,10 +12,6 @@ export default function useHandleLayoutEffect({
14
12
  }, delay);
15
13
  return () => clearTimeout(timeout);
16
14
  });
17
- useStepAnimation({
18
- activeIndexRef,
19
- stepElementRef
20
- });
21
15
  const action = useCallback(fn => {
22
16
  window.requestAnimationFrame(() => window.requestAnimationFrame(() => {
23
17
  isInteractionRef.current && fn();
@@ -1 +1 @@
1
- {"version":3,"file":"useHandleLayoutEffect.js","names":["useCallback","useEffect","useRef","useStepAnimation","useHandleLayoutEffect","activeIndexRef","stepElementRef","isInteractionRef","delay","process","env","NODE_ENV","timeout","setTimeout","current","clearTimeout","action","fn","window","requestAnimationFrame","setFocus","_stepElementRef$curre","_stepElementRef$curre2","focus","call","preventScroll","scrollToTop","_stepElementRef$curre3","_stepElementRef$curre4","scrollIntoView"],"sources":["../../../../../../src/extensions/forms/Wizard/Container/useHandleLayoutEffect.tsx"],"sourcesContent":["import { useCallback, useEffect, useRef } from 'react'\nimport useStepAnimation from './useStepAnimation'\n\nexport default function useHandleLayoutEffect({\n activeIndexRef,\n stepElementRef,\n}) {\n const isInteractionRef = useRef(false)\n\n useEffect(() => {\n // Ensure we delay the mounting before layout effect is handled\n const delay = process.env.NODE_ENV === 'test' ? 8 : 100\n const timeout = setTimeout(() => {\n isInteractionRef.current = true\n }, delay)\n return () => clearTimeout(timeout)\n })\n\n useStepAnimation({ activeIndexRef, stepElementRef })\n\n const action = useCallback((fn: () => void) => {\n // Wait for the next render cycle\n window.requestAnimationFrame(() =>\n // Wait for the new stepElementRef to be set\n window.requestAnimationFrame(() => {\n isInteractionRef.current && fn()\n })\n )\n }, [])\n\n const setFocus = useCallback(() => {\n action(() => {\n stepElementRef.current?.focus?.({\n preventScroll: true,\n })\n })\n }, [action, stepElementRef])\n\n const scrollToTop = useCallback(() => {\n action(() => {\n stepElementRef.current?.scrollIntoView?.()\n })\n }, [action, stepElementRef])\n\n return { setFocus, scrollToTop, isInteractionRef }\n}\n"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACtD,OAAOC,gBAAgB,MAAM,oBAAoB;AAEjD,eAAe,SAASC,qBAAqBA,CAAC;EAC5CC,cAAc;EACdC;AACF,CAAC,EAAE;EACD,MAAMC,gBAAgB,GAAGL,MAAM,CAAC,KAAK,CAAC;EAEtCD,SAAS,CAAC,MAAM;IAEd,MAAMO,KAAK,GAAGC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,MAAM,GAAG,CAAC,GAAG,GAAG;IACvD,MAAMC,OAAO,GAAGC,UAAU,CAAC,MAAM;MAC/BN,gBAAgB,CAACO,OAAO,GAAG,IAAI;IACjC,CAAC,EAAEN,KAAK,CAAC;IACT,OAAO,MAAMO,YAAY,CAACH,OAAO,CAAC;EACpC,CAAC,CAAC;EAEFT,gBAAgB,CAAC;IAAEE,cAAc;IAAEC;EAAe,CAAC,CAAC;EAEpD,MAAMU,MAAM,GAAGhB,WAAW,CAAEiB,EAAc,IAAK;IAE7CC,MAAM,CAACC,qBAAqB,CAAC,MAE3BD,MAAM,CAACC,qBAAqB,CAAC,MAAM;MACjCZ,gBAAgB,CAACO,OAAO,IAAIG,EAAE,CAAC,CAAC;IAClC,CAAC,CACH,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMG,QAAQ,GAAGpB,WAAW,CAAC,MAAM;IACjCgB,MAAM,CAAC,MAAM;MAAA,IAAAK,qBAAA,EAAAC,sBAAA;MACX,CAAAD,qBAAA,GAAAf,cAAc,CAACQ,OAAO,cAAAO,qBAAA,wBAAAC,sBAAA,GAAtBD,qBAAA,CAAwBE,KAAK,cAAAD,sBAAA,uBAA7BA,sBAAA,CAAAE,IAAA,CAAAH,qBAAA,EAAgC;QAC9BI,aAAa,EAAE;MACjB,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,EAAE,CAACT,MAAM,EAAEV,cAAc,CAAC,CAAC;EAE5B,MAAMoB,WAAW,GAAG1B,WAAW,CAAC,MAAM;IACpCgB,MAAM,CAAC,MAAM;MAAA,IAAAW,sBAAA,EAAAC,sBAAA;MACX,CAAAD,sBAAA,GAAArB,cAAc,CAACQ,OAAO,cAAAa,sBAAA,wBAAAC,sBAAA,GAAtBD,sBAAA,CAAwBE,cAAc,cAAAD,sBAAA,uBAAtCA,sBAAA,CAAAJ,IAAA,CAAAG,sBAAyC,CAAC;IAC5C,CAAC,CAAC;EACJ,CAAC,EAAE,CAACX,MAAM,EAAEV,cAAc,CAAC,CAAC;EAE5B,OAAO;IAAEc,QAAQ;IAAEM,WAAW;IAAEnB;EAAiB,CAAC;AACpD"}
1
+ {"version":3,"file":"useHandleLayoutEffect.js","names":["useCallback","useEffect","useRef","useHandleLayoutEffect","stepElementRef","isInteractionRef","delay","process","env","NODE_ENV","timeout","setTimeout","current","clearTimeout","action","fn","window","requestAnimationFrame","setFocus","_stepElementRef$curre","_stepElementRef$curre2","focus","call","preventScroll","scrollToTop","_stepElementRef$curre3","_stepElementRef$curre4","scrollIntoView"],"sources":["../../../../../../src/extensions/forms/Wizard/Container/useHandleLayoutEffect.tsx"],"sourcesContent":["import { useCallback, useEffect, useRef } from 'react'\n\nexport default function useHandleLayoutEffect({ stepElementRef }) {\n const isInteractionRef = useRef(false)\n\n useEffect(() => {\n // Ensure we delay the mounting before layout effect is handled\n const delay = process.env.NODE_ENV === 'test' ? 8 : 100\n const timeout = setTimeout(() => {\n isInteractionRef.current = true\n }, delay)\n return () => clearTimeout(timeout)\n })\n\n const action = useCallback((fn: () => void) => {\n // Wait for the next render cycle\n window.requestAnimationFrame(() =>\n // Wait for the new stepElementRef to be set\n window.requestAnimationFrame(() => {\n isInteractionRef.current && fn()\n })\n )\n }, [])\n\n const setFocus = useCallback(() => {\n action(() => {\n stepElementRef.current?.focus?.({\n preventScroll: true,\n })\n })\n }, [action, stepElementRef])\n\n const scrollToTop = useCallback(() => {\n action(() => {\n stepElementRef.current?.scrollIntoView?.()\n })\n }, [action, stepElementRef])\n\n return { setFocus, scrollToTop, isInteractionRef }\n}\n"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAEtD,eAAe,SAASC,qBAAqBA,CAAC;EAAEC;AAAe,CAAC,EAAE;EAChE,MAAMC,gBAAgB,GAAGH,MAAM,CAAC,KAAK,CAAC;EAEtCD,SAAS,CAAC,MAAM;IAEd,MAAMK,KAAK,GAAGC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,MAAM,GAAG,CAAC,GAAG,GAAG;IACvD,MAAMC,OAAO,GAAGC,UAAU,CAAC,MAAM;MAC/BN,gBAAgB,CAACO,OAAO,GAAG,IAAI;IACjC,CAAC,EAAEN,KAAK,CAAC;IACT,OAAO,MAAMO,YAAY,CAACH,OAAO,CAAC;EACpC,CAAC,CAAC;EAEF,MAAMI,MAAM,GAAGd,WAAW,CAAEe,EAAc,IAAK;IAE7CC,MAAM,CAACC,qBAAqB,CAAC,MAE3BD,MAAM,CAACC,qBAAqB,CAAC,MAAM;MACjCZ,gBAAgB,CAACO,OAAO,IAAIG,EAAE,CAAC,CAAC;IAClC,CAAC,CACH,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMG,QAAQ,GAAGlB,WAAW,CAAC,MAAM;IACjCc,MAAM,CAAC,MAAM;MAAA,IAAAK,qBAAA,EAAAC,sBAAA;MACX,CAAAD,qBAAA,GAAAf,cAAc,CAACQ,OAAO,cAAAO,qBAAA,wBAAAC,sBAAA,GAAtBD,qBAAA,CAAwBE,KAAK,cAAAD,sBAAA,uBAA7BA,sBAAA,CAAAE,IAAA,CAAAH,qBAAA,EAAgC;QAC9BI,aAAa,EAAE;MACjB,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,EAAE,CAACT,MAAM,EAAEV,cAAc,CAAC,CAAC;EAE5B,MAAMoB,WAAW,GAAGxB,WAAW,CAAC,MAAM;IACpCc,MAAM,CAAC,MAAM;MAAA,IAAAW,sBAAA,EAAAC,sBAAA;MACX,CAAAD,sBAAA,GAAArB,cAAc,CAACQ,OAAO,cAAAa,sBAAA,wBAAAC,sBAAA,GAAtBD,sBAAA,CAAwBE,cAAc,cAAAD,sBAAA,uBAAtCA,sBAAA,CAAAJ,IAAA,CAAAG,sBAAyC,CAAC;IAC5C,CAAC,CAAC;EACJ,CAAC,EAAE,CAACX,MAAM,EAAEV,cAAc,CAAC,CAAC;EAE5B,OAAO;IAAEc,QAAQ;IAAEM,WAAW;IAAEnB;EAAiB,CAAC;AACpD"}
@@ -1,4 +1,5 @@
1
- export default function useStepAnimation({ activeIndexRef, stepElementRef, }: {
1
+ export default function useStepAnimation({ activeIndexRef, stepElementRef, executeLayoutAnimationRef, }: {
2
2
  activeIndexRef: any;
3
3
  stepElementRef: any;
4
+ executeLayoutAnimationRef: any;
4
5
  }): void;
@@ -1,20 +1,18 @@
1
1
  "use client";
2
2
 
3
- import React, { useEffect, useRef } from 'react';
3
+ import React, { useCallback, useEffect, useRef } from 'react';
4
4
  const useLayoutEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;
5
5
  export default function useStepAnimation({
6
6
  activeIndexRef,
7
- stepElementRef
7
+ stepElementRef,
8
+ executeLayoutAnimationRef
8
9
  }) {
9
10
  const activeIndex = activeIndexRef.current;
10
11
  const indexRef = useRef(activeIndex);
11
12
  useEffect(() => {
12
13
  indexRef.current = activeIndex;
13
14
  }, [activeIndex]);
14
- useLayoutEffect(() => {
15
- if (activeIndex === indexRef.current) {
16
- return;
17
- }
15
+ const executeLayoutAnimation = useCallback(() => {
18
16
  window.requestAnimationFrame(() => {
19
17
  try {
20
18
  const elements = stepElementRef.current.querySelectorAll('.dnb-forms-step > *, .dnb-forms-button-row > *');
@@ -24,6 +22,13 @@ export default function useStepAnimation({
24
22
  });
25
23
  } catch (error) {}
26
24
  });
27
- }, [activeIndex, stepElementRef]);
25
+ }, [stepElementRef]);
26
+ executeLayoutAnimationRef.current = executeLayoutAnimation;
27
+ useLayoutEffect(() => {
28
+ if (activeIndex === indexRef.current) {
29
+ return;
30
+ }
31
+ executeLayoutAnimation();
32
+ }, [activeIndex, executeLayoutAnimation]);
28
33
  }
29
34
  //# sourceMappingURL=useStepAnimation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useStepAnimation.js","names":["React","useEffect","useRef","useLayoutEffect","window","useStepAnimation","activeIndexRef","stepElementRef","activeIndex","current","indexRef","requestAnimationFrame","elements","querySelectorAll","forEach","element","i","style","setProperty","String","classList","add","error"],"sources":["../../../../../../src/extensions/forms/Wizard/Container/useStepAnimation.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport default function useStepAnimation({\n activeIndexRef,\n stepElementRef,\n}) {\n const activeIndex = activeIndexRef.current\n const indexRef = useRef(activeIndex)\n\n useEffect(() => {\n indexRef.current = activeIndex\n }, [activeIndex])\n\n useLayoutEffect(() => {\n // Use layout effect to compare the active step before we update the cached indexRef\n // This way we don't have an animation on the first render, but only on a step change.\n if (activeIndex === indexRef.current) {\n return // stop here\n }\n\n // Wait until \"stepElementRef.current = currentElementRef.current\" is set\n // So we actually get the correct elements when useStep is called,\n // as it rerenders the children\n window.requestAnimationFrame(() => {\n try {\n const elements: Array<HTMLElement> =\n stepElementRef.current.querySelectorAll(\n '.dnb-forms-step > *, .dnb-forms-button-row > *'\n )\n elements.forEach((element, i) => {\n element.style.setProperty('--element-index', String(i + 1))\n element.classList.add('appear-fx')\n })\n } catch (error) {\n //\n }\n })\n }, [activeIndex, stepElementRef])\n}\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAGhD,MAAMC,eAAe,GACnB,OAAOC,MAAM,KAAK,WAAW,GAAGJ,KAAK,CAACC,SAAS,GAAGD,KAAK,CAACG,eAAe;AAEzE,eAAe,SAASE,gBAAgBA,CAAC;EACvCC,cAAc;EACdC;AACF,CAAC,EAAE;EACD,MAAMC,WAAW,GAAGF,cAAc,CAACG,OAAO;EAC1C,MAAMC,QAAQ,GAAGR,MAAM,CAACM,WAAW,CAAC;EAEpCP,SAAS,CAAC,MAAM;IACdS,QAAQ,CAACD,OAAO,GAAGD,WAAW;EAChC,CAAC,EAAE,CAACA,WAAW,CAAC,CAAC;EAEjBL,eAAe,CAAC,MAAM;IAGpB,IAAIK,WAAW,KAAKE,QAAQ,CAACD,OAAO,EAAE;MACpC;IACF;IAKAL,MAAM,CAACO,qBAAqB,CAAC,MAAM;MACjC,IAAI;QACF,MAAMC,QAA4B,GAChCL,cAAc,CAACE,OAAO,CAACI,gBAAgB,CACrC,gDACF,CAAC;QACHD,QAAQ,CAACE,OAAO,CAAC,CAACC,OAAO,EAAEC,CAAC,KAAK;UAC/BD,OAAO,CAACE,KAAK,CAACC,WAAW,CAAC,iBAAiB,EAAEC,MAAM,CAACH,CAAC,GAAG,CAAC,CAAC,CAAC;UAC3DD,OAAO,CAACK,SAAS,CAACC,GAAG,CAAC,WAAW,CAAC;QACpC,CAAC,CAAC;MACJ,CAAC,CAAC,OAAOC,KAAK,EAAE,CAEhB;IACF,CAAC,CAAC;EACJ,CAAC,EAAE,CAACd,WAAW,EAAED,cAAc,CAAC,CAAC;AACnC"}
1
+ {"version":3,"file":"useStepAnimation.js","names":["React","useCallback","useEffect","useRef","useLayoutEffect","window","useStepAnimation","activeIndexRef","stepElementRef","executeLayoutAnimationRef","activeIndex","current","indexRef","executeLayoutAnimation","requestAnimationFrame","elements","querySelectorAll","forEach","element","i","style","setProperty","String","classList","add","error"],"sources":["../../../../../../src/extensions/forms/Wizard/Container/useStepAnimation.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef } from 'react'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport default function useStepAnimation({\n activeIndexRef,\n stepElementRef,\n executeLayoutAnimationRef,\n}) {\n const activeIndex = activeIndexRef.current\n const indexRef = useRef(activeIndex)\n\n useEffect(() => {\n indexRef.current = activeIndex\n }, [activeIndex])\n\n const executeLayoutAnimation = useCallback(() => {\n // Wait until \"stepElementRef.current = currentElementRef.current\" is set\n // So we actually get the correct elements when useStep is called,\n // as it rerenders the children\n window.requestAnimationFrame(() => {\n try {\n const elements: Array<HTMLElement> =\n stepElementRef.current.querySelectorAll(\n '.dnb-forms-step > *, .dnb-forms-button-row > *'\n )\n elements.forEach((element, i) => {\n element.style.setProperty('--element-index', String(i + 1))\n element.classList.add('appear-fx')\n })\n } catch (error) {\n //\n }\n })\n }, [stepElementRef])\n executeLayoutAnimationRef.current = executeLayoutAnimation\n\n useLayoutEffect(() => {\n // Use layout effect to compare the active step before we update the cached indexRef\n // This way we don't have an animation on the first render, but only on a step change.\n if (activeIndex === indexRef.current) {\n return // stop here\n }\n\n executeLayoutAnimation()\n }, [activeIndex, executeLayoutAnimation])\n}\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAG7D,MAAMC,eAAe,GACnB,OAAOC,MAAM,KAAK,WAAW,GAAGL,KAAK,CAACE,SAAS,GAAGF,KAAK,CAACI,eAAe;AAEzE,eAAe,SAASE,gBAAgBA,CAAC;EACvCC,cAAc;EACdC,cAAc;EACdC;AACF,CAAC,EAAE;EACD,MAAMC,WAAW,GAAGH,cAAc,CAACI,OAAO;EAC1C,MAAMC,QAAQ,GAAGT,MAAM,CAACO,WAAW,CAAC;EAEpCR,SAAS,CAAC,MAAM;IACdU,QAAQ,CAACD,OAAO,GAAGD,WAAW;EAChC,CAAC,EAAE,CAACA,WAAW,CAAC,CAAC;EAEjB,MAAMG,sBAAsB,GAAGZ,WAAW,CAAC,MAAM;IAI/CI,MAAM,CAACS,qBAAqB,CAAC,MAAM;MACjC,IAAI;QACF,MAAMC,QAA4B,GAChCP,cAAc,CAACG,OAAO,CAACK,gBAAgB,CACrC,gDACF,CAAC;QACHD,QAAQ,CAACE,OAAO,CAAC,CAACC,OAAO,EAAEC,CAAC,KAAK;UAC/BD,OAAO,CAACE,KAAK,CAACC,WAAW,CAAC,iBAAiB,EAAEC,MAAM,CAACH,CAAC,GAAG,CAAC,CAAC,CAAC;UAC3DD,OAAO,CAACK,SAAS,CAACC,GAAG,CAAC,WAAW,CAAC;QACpC,CAAC,CAAC;MACJ,CAAC,CAAC,OAAOC,KAAK,EAAE,CAEhB;IACF,CAAC,CAAC;EACJ,CAAC,EAAE,CAACjB,cAAc,CAAC,CAAC;EACpBC,yBAAyB,CAACE,OAAO,GAAGE,sBAAsB;EAE1DT,eAAe,CAAC,MAAM;IAGpB,IAAIM,WAAW,KAAKE,QAAQ,CAACD,OAAO,EAAE;MACpC;IACF;IAEAE,sBAAsB,CAAC,CAAC;EAC1B,CAAC,EAAE,CAACH,WAAW,EAAEG,sBAAsB,CAAC,CAAC;AAC3C"}
@@ -1,10 +1,21 @@
1
1
  import React from 'react';
2
2
  import { EventReturnWithStateObject } from '../../types';
3
3
  import { VisibleWhen } from '../../Form/Visibility';
4
- export type OnStepChange = (index: StepIndex, mode: 'previous' | 'next', options: {
4
+ export type OnStepsChangeMode = 'previous' | 'next' | 'stepListModified';
5
+ export type OnStepChangeOptions = {
5
6
  preventNavigation: (shouldPrevent?: boolean) => void;
6
- }) => EventReturnWithStateObject | void | Promise<EventReturnWithStateObject | void>;
7
+ id?: string;
8
+ previousStep: {
9
+ index: StepIndex;
10
+ id?: string;
11
+ };
12
+ };
13
+ export type OnStepChange = (index: StepIndex, mode: OnStepsChangeMode, options: OnStepChangeOptions) => EventReturnWithStateObject | void | Promise<EventReturnWithStateObject | void>;
7
14
  export type StepIndex = number;
15
+ export type Steps = Record<string, {
16
+ title: string;
17
+ id: string;
18
+ }>;
8
19
  export type SetActiveIndexOptions = {
9
20
  skipStepChangeCall?: boolean;
10
21
  skipStepChangeCallBeforeMounted?: boolean;
@@ -16,7 +27,7 @@ export interface WizardContextState {
16
27
  totalSteps?: number;
17
28
  activeIndex?: StepIndex;
18
29
  stepElementRef?: React.MutableRefObject<HTMLElement>;
19
- titlesRef?: React.MutableRefObject<Record<string, string>>;
30
+ stepsRef?: React.MutableRefObject<Steps>;
20
31
  updateTitlesRef?: React.MutableRefObject<() => void>;
21
32
  activeIndexRef?: React.MutableRefObject<StepIndex>;
22
33
  totalStepsRef?: React.MutableRefObject<number>;
@@ -1 +1 @@
1
- {"version":3,"file":"WizardContext.js","names":["React","WizardContext","createContext","undefined"],"sources":["../../../../../../src/extensions/forms/Wizard/Context/WizardContext.ts"],"sourcesContent":["import React from 'react'\nimport { EventReturnWithStateObject } from '../../types'\nimport { VisibleWhen } from '../../Form/Visibility'\n\nexport type OnStepChange = (\n index: StepIndex,\n mode: 'previous' | 'next',\n options: { preventNavigation: (shouldPrevent?: boolean) => void }\n) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n\nexport type StepIndex = number\nexport type SetActiveIndexOptions = {\n skipStepChangeCall?: boolean\n skipStepChangeCallBeforeMounted?: boolean\n skipStepChangeCallFromHook?: boolean\n skipErrorCheck?: boolean\n}\nexport interface WizardContextState {\n id?: string\n totalSteps?: number\n activeIndex?: StepIndex\n stepElementRef?: React.MutableRefObject<HTMLElement>\n titlesRef?: React.MutableRefObject<Record<string, string>>\n updateTitlesRef?: React.MutableRefObject<() => void>\n activeIndexRef?: React.MutableRefObject<StepIndex>\n totalStepsRef?: React.MutableRefObject<number>\n prerenderFieldPropsRef?: React.MutableRefObject<\n Record<string, () => React.ReactElement>\n >\n prerenderFieldProps?: boolean\n handlePrevious?: () => void\n handleNext?: () => void\n setActiveIndex?: (\n index: StepIndex,\n {\n skipStepChangeCall,\n skipStepChangeCallBeforeMounted,\n skipStepChangeCallFromHook,\n }?: SetActiveIndexOptions\n ) => void\n setFormError?: (error: Error) => void\n check?: ({ visibleWhen }: { visibleWhen: VisibleWhen }) => boolean\n}\n\nconst WizardContext = React.createContext<WizardContextState | undefined>(\n undefined\n)\n\nexport default WizardContext\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AA+CzB,MAAMC,aAAa,GAAGD,KAAK,CAACE,aAAa,CACvCC,SACF,CAAC;AAED,eAAeF,aAAa"}
1
+ {"version":3,"file":"WizardContext.js","names":["React","WizardContext","createContext","undefined"],"sources":["../../../../../../src/extensions/forms/Wizard/Context/WizardContext.ts"],"sourcesContent":["import React from 'react'\nimport { EventReturnWithStateObject } from '../../types'\nimport { VisibleWhen } from '../../Form/Visibility'\n\nexport type OnStepsChangeMode = 'previous' | 'next' | 'stepListModified'\nexport type OnStepChangeOptions = {\n preventNavigation: (shouldPrevent?: boolean) => void\n id?: string\n previousStep: {\n index: StepIndex\n id?: string\n }\n}\nexport type OnStepChange = (\n index: StepIndex,\n mode: OnStepsChangeMode,\n options: OnStepChangeOptions\n) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n\nexport type StepIndex = number\nexport type Steps = Record<string, { title: string; id: string }>\nexport type SetActiveIndexOptions = {\n skipStepChangeCall?: boolean\n skipStepChangeCallBeforeMounted?: boolean\n skipStepChangeCallFromHook?: boolean\n skipErrorCheck?: boolean\n}\nexport interface WizardContextState {\n id?: string\n totalSteps?: number\n activeIndex?: StepIndex\n stepElementRef?: React.MutableRefObject<HTMLElement>\n stepsRef?: React.MutableRefObject<Steps>\n updateTitlesRef?: React.MutableRefObject<() => void>\n activeIndexRef?: React.MutableRefObject<StepIndex>\n totalStepsRef?: React.MutableRefObject<number>\n prerenderFieldPropsRef?: React.MutableRefObject<\n Record<string, () => React.ReactElement>\n >\n prerenderFieldProps?: boolean\n handlePrevious?: () => void\n handleNext?: () => void\n setActiveIndex?: (\n index: StepIndex,\n {\n skipStepChangeCall,\n skipStepChangeCallBeforeMounted,\n skipStepChangeCallFromHook,\n }?: SetActiveIndexOptions\n ) => void\n setFormError?: (error: Error) => void\n check?: ({ visibleWhen }: { visibleWhen: VisibleWhen }) => boolean\n}\n\nconst WizardContext = React.createContext<WizardContextState | undefined>(\n undefined\n)\n\nexport default WizardContext\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAyDzB,MAAMC,aAAa,GAAGD,KAAK,CAACE,aAAa,CACvCC,SACF,CAAC;AAED,eAAeF,aAAa"}
@@ -25,13 +25,13 @@ function Step(props) {
25
25
  const {
26
26
  check,
27
27
  activeIndex,
28
- titlesRef,
28
+ stepsRef,
29
29
  stepElementRef
30
30
  } = useContext(WizardContext) || {};
31
31
  const ariaLabel = useMemo(() => {
32
- var _ref, _titlesRef$current;
33
- return (_ref = !prerenderFieldProps && (titlesRef === null || titlesRef === void 0 ? void 0 : (_titlesRef$current = titlesRef.current) === null || _titlesRef$current === void 0 ? void 0 : _titlesRef$current[index])) !== null && _ref !== void 0 ? _ref : convertJsxToString(title);
34
- }, [index, prerenderFieldProps, title, titlesRef]);
32
+ var _ref, _stepsRef$current;
33
+ return (_ref = !prerenderFieldProps && (stepsRef === null || stepsRef === void 0 ? void 0 : (_stepsRef$current = stepsRef.current) === null || _stepsRef$current === void 0 ? void 0 : _stepsRef$current[index])) !== null && _ref !== void 0 ? _ref : convertJsxToString(title);
34
+ }, [index, prerenderFieldProps, title, stepsRef]);
35
35
  const currentElementRef = useRef();
36
36
  useLayoutEffect(() => {
37
37
  if (!prerenderFieldProps && typeof stepElementRef !== 'undefined') {
@@ -1 +1 @@
1
- {"version":3,"file":"Step.js","names":["React","useContext","useMemo","useRef","classnames","WizardContext","Flex","convertJsxToString","FieldProvider","useLayoutEffect","window","useEffect","Step","props","className","title","index","active","activeWhen","required","prerenderFieldProps","children","restProps","_objectWithoutProperties","_excluded","check","activeIndex","titlesRef","stepElementRef","ariaLabel","_ref","_titlesRef$current","current","currentElementRef","visibleWhen","createElement","Fragment","fieldProps","undefined","Stack","_extends","element","innerRef","tabIndex","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Wizard/Step/Step.tsx"],"sourcesContent":["import React, { useContext, useMemo, useRef } from 'react'\nimport classnames from 'classnames'\nimport { ComponentProps } from '../../types'\nimport { Props as FlexContainerProps } from '../../../../components/flex/Container'\nimport WizardContext from '../Context/WizardContext'\nimport Flex from '../../../../components/flex/Flex'\nimport { convertJsxToString } from '../../../../shared/component-helper'\nimport FieldProvider from '../../Field/Provider'\nimport type { VisibleWhen } from '../../Form/Visibility'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type Props = ComponentProps &\n FlexContainerProps & {\n /**\n * A title that will be displayed in the indicator.\n */\n title?: React.ReactNode\n\n /**\n * To determine if the step should be rendered.\n * Used internally by the WizardContainer.\n */\n index?: number\n\n /**\n * Will make all the fields inside the step to be required.\n */\n required?: boolean\n\n /**\n * If set to `false`, the step will not be rendered.\n */\n active?: boolean\n\n /**\n * Provide a `path` and a `hasValue` property with the excepted value in order to enable the step. You can alternatively provide a `hasValue` function that returns a boolean. The first parameter is the value of the path.\n */\n activeWhen?: VisibleWhen\n\n /**\n * If set to `true`, the step will always be rendered.\n * For internal use only.\n */\n prerenderFieldProps?: boolean\n }\n\nfunction Step(props: Props): JSX.Element {\n const {\n className,\n title,\n index,\n active = true,\n activeWhen,\n required,\n prerenderFieldProps,\n children,\n ...restProps\n } = props\n const { check, activeIndex, titlesRef, stepElementRef } =\n useContext(WizardContext) || {}\n\n const ariaLabel = useMemo(() => {\n return (\n (!prerenderFieldProps && titlesRef?.current?.[index]) ??\n convertJsxToString(title)\n )\n }, [index, prerenderFieldProps, title, titlesRef])\n\n const currentElementRef = useRef<HTMLElement>()\n useLayoutEffect(() => {\n if (!prerenderFieldProps && typeof stepElementRef !== 'undefined') {\n if (currentElementRef.current) {\n stepElementRef.current = currentElementRef.current\n }\n return () => {\n stepElementRef.current = null\n }\n }\n }, [prerenderFieldProps, stepElementRef])\n\n if (prerenderFieldProps) {\n return children as JSX.Element\n }\n\n if (\n activeIndex !== index ||\n active === false ||\n (activeWhen && !check({ visibleWhen: activeWhen }))\n ) {\n // Another step is active\n return <></>\n }\n\n const fieldProps =\n typeof required === 'boolean' ? { required } : undefined\n\n return (\n <Flex.Stack\n className={classnames('dnb-forms-step', className)}\n element=\"section\"\n aria-label={ariaLabel}\n innerRef={currentElementRef}\n tabIndex={-1}\n {...restProps}\n >\n {fieldProps ? (\n <FieldProvider {...fieldProps}>{children}</FieldProvider>\n ) : (\n children\n )}\n </Flex.Stack>\n )\n}\n\nStep._supportsSpacingProps = true\nexport default Step\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AAC1D,OAAOC,UAAU,MAAM,YAAY;AAGnC,OAAOC,aAAa,MAAM,0BAA0B;AACpD,OAAOC,IAAI,MAAM,kCAAkC;AACnD,SAASC,kBAAkB,QAAQ,qCAAqC;AACxE,OAAOC,aAAa,MAAM,sBAAsB;AAIhD,MAAMC,eAAe,GACnB,OAAOC,MAAM,KAAK,WAAW,GAAGV,KAAK,CAACW,SAAS,GAAGX,KAAK,CAACS,eAAe;AAqCzE,SAASG,IAAIA,CAACC,KAAY,EAAe;EACvC,MAAM;MACJC,SAAS;MACTC,KAAK;MACLC,KAAK;MACLC,MAAM,GAAG,IAAI;MACbC,UAAU;MACVC,QAAQ;MACRC,mBAAmB;MACnBC;IAEF,CAAC,GAAGR,KAAK;IADJS,SAAS,GAAAC,wBAAA,CACVV,KAAK,EAAAW,SAAA;EACT,MAAM;IAAEC,KAAK;IAAEC,WAAW;IAAEC,SAAS;IAAEC;EAAe,CAAC,GACrD3B,UAAU,CAACI,aAAa,CAAC,IAAI,CAAC,CAAC;EAEjC,MAAMwB,SAAS,GAAG3B,OAAO,CAAC,MAAM;IAAA,IAAA4B,IAAA,EAAAC,kBAAA;IAC9B,QAAAD,IAAA,GACG,CAACV,mBAAmB,KAAIO,SAAS,aAATA,SAAS,wBAAAI,kBAAA,GAATJ,SAAS,CAAEK,OAAO,cAAAD,kBAAA,uBAAlBA,kBAAA,CAAqBf,KAAK,CAAC,eAAAc,IAAA,cAAAA,IAAA,GACpDvB,kBAAkB,CAACQ,KAAK,CAAC;EAE7B,CAAC,EAAE,CAACC,KAAK,EAAEI,mBAAmB,EAAEL,KAAK,EAAEY,SAAS,CAAC,CAAC;EAElD,MAAMM,iBAAiB,GAAG9B,MAAM,CAAc,CAAC;EAC/CM,eAAe,CAAC,MAAM;IACpB,IAAI,CAACW,mBAAmB,IAAI,OAAOQ,cAAc,KAAK,WAAW,EAAE;MACjE,IAAIK,iBAAiB,CAACD,OAAO,EAAE;QAC7BJ,cAAc,CAACI,OAAO,GAAGC,iBAAiB,CAACD,OAAO;MACpD;MACA,OAAO,MAAM;QACXJ,cAAc,CAACI,OAAO,GAAG,IAAI;MAC/B,CAAC;IACH;EACF,CAAC,EAAE,CAACZ,mBAAmB,EAAEQ,cAAc,CAAC,CAAC;EAEzC,IAAIR,mBAAmB,EAAE;IACvB,OAAOC,QAAQ;EACjB;EAEA,IACEK,WAAW,KAAKV,KAAK,IACrBC,MAAM,KAAK,KAAK,IACfC,UAAU,IAAI,CAACO,KAAK,CAAC;IAAES,WAAW,EAAEhB;EAAW,CAAC,CAAE,EACnD;IAEA,OAAOlB,KAAA,CAAAmC,aAAA,CAAAnC,KAAA,CAAAoC,QAAA,MAAI,CAAC;EACd;EAEA,MAAMC,UAAU,GACd,OAAOlB,QAAQ,KAAK,SAAS,GAAG;IAAEA;EAAS,CAAC,GAAGmB,SAAS;EAE1D,OACEtC,KAAA,CAAAmC,aAAA,CAAC7B,IAAI,CAACiC,KAAK,EAAAC,QAAA;IACT1B,SAAS,EAAEV,UAAU,CAAC,gBAAgB,EAAEU,SAAS,CAAE;IACnD2B,OAAO,EAAC,SAAS;IACjB,cAAYZ,SAAU;IACtBa,QAAQ,EAAET,iBAAkB;IAC5BU,QAAQ,EAAE,CAAC;EAAE,GACTrB,SAAS,GAEZe,UAAU,GACTrC,KAAA,CAAAmC,aAAA,CAAC3B,aAAa,EAAK6B,UAAU,EAAGhB,QAAwB,CAAC,GAEzDA,QAEQ,CAAC;AAEjB;AAEAT,IAAI,CAACgC,qBAAqB,GAAG,IAAI;AACjC,eAAehC,IAAI"}
1
+ {"version":3,"file":"Step.js","names":["React","useContext","useMemo","useRef","classnames","WizardContext","Flex","convertJsxToString","FieldProvider","useLayoutEffect","window","useEffect","Step","props","className","title","index","active","activeWhen","required","prerenderFieldProps","children","restProps","_objectWithoutProperties","_excluded","check","activeIndex","stepsRef","stepElementRef","ariaLabel","_ref","_stepsRef$current","current","currentElementRef","visibleWhen","createElement","Fragment","fieldProps","undefined","Stack","_extends","element","innerRef","tabIndex","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Wizard/Step/Step.tsx"],"sourcesContent":["import React, { useContext, useMemo, useRef } from 'react'\nimport classnames from 'classnames'\nimport { ComponentProps } from '../../types'\nimport { Props as FlexContainerProps } from '../../../../components/flex/Container'\nimport WizardContext from '../Context/WizardContext'\nimport Flex from '../../../../components/flex/Flex'\nimport { convertJsxToString } from '../../../../shared/component-helper'\nimport FieldProvider from '../../Field/Provider'\nimport type { VisibleWhen } from '../../Form/Visibility'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type Props = ComponentProps &\n FlexContainerProps & {\n /**\n * A title that will be displayed in the indicator.\n */\n title?: React.ReactNode\n\n /**\n * To determine if the step should be rendered.\n * Used internally by the WizardContainer.\n */\n index?: number\n\n /**\n * Will make all the fields inside the step to be required.\n */\n required?: boolean\n\n /**\n * If set to `false`, the step will not be rendered.\n */\n active?: boolean\n\n /**\n * Provide a `path` and a `hasValue` property with the excepted value in order to enable the step. You can alternatively provide a `hasValue` function that returns a boolean. The first parameter is the value of the path.\n */\n activeWhen?: VisibleWhen\n\n /**\n * If set to `true`, the step will always be rendered.\n * For internal use only.\n */\n prerenderFieldProps?: boolean\n }\n\nfunction Step(props: Props): JSX.Element {\n const {\n className,\n title,\n index,\n active = true,\n activeWhen,\n required,\n prerenderFieldProps,\n children,\n ...restProps\n } = props\n const { check, activeIndex, stepsRef, stepElementRef } =\n useContext(WizardContext) || {}\n\n const ariaLabel = useMemo(() => {\n return (\n (!prerenderFieldProps && stepsRef?.current?.[index]) ??\n convertJsxToString(title)\n )\n }, [index, prerenderFieldProps, title, stepsRef])\n\n const currentElementRef = useRef<HTMLElement>()\n useLayoutEffect(() => {\n if (!prerenderFieldProps && typeof stepElementRef !== 'undefined') {\n if (currentElementRef.current) {\n stepElementRef.current = currentElementRef.current\n }\n return () => {\n stepElementRef.current = null\n }\n }\n }, [prerenderFieldProps, stepElementRef])\n\n if (prerenderFieldProps) {\n return children as JSX.Element\n }\n\n if (\n activeIndex !== index ||\n active === false ||\n (activeWhen && !check({ visibleWhen: activeWhen }))\n ) {\n // Another step is active\n return <></>\n }\n\n const fieldProps =\n typeof required === 'boolean' ? { required } : undefined\n\n return (\n <Flex.Stack\n className={classnames('dnb-forms-step', className)}\n element=\"section\"\n aria-label={ariaLabel}\n innerRef={currentElementRef}\n tabIndex={-1}\n {...restProps}\n >\n {fieldProps ? (\n <FieldProvider {...fieldProps}>{children}</FieldProvider>\n ) : (\n children\n )}\n </Flex.Stack>\n )\n}\n\nStep._supportsSpacingProps = true\nexport default Step\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AAC1D,OAAOC,UAAU,MAAM,YAAY;AAGnC,OAAOC,aAAa,MAAM,0BAA0B;AACpD,OAAOC,IAAI,MAAM,kCAAkC;AACnD,SAASC,kBAAkB,QAAQ,qCAAqC;AACxE,OAAOC,aAAa,MAAM,sBAAsB;AAIhD,MAAMC,eAAe,GACnB,OAAOC,MAAM,KAAK,WAAW,GAAGV,KAAK,CAACW,SAAS,GAAGX,KAAK,CAACS,eAAe;AAqCzE,SAASG,IAAIA,CAACC,KAAY,EAAe;EACvC,MAAM;MACJC,SAAS;MACTC,KAAK;MACLC,KAAK;MACLC,MAAM,GAAG,IAAI;MACbC,UAAU;MACVC,QAAQ;MACRC,mBAAmB;MACnBC;IAEF,CAAC,GAAGR,KAAK;IADJS,SAAS,GAAAC,wBAAA,CACVV,KAAK,EAAAW,SAAA;EACT,MAAM;IAAEC,KAAK;IAAEC,WAAW;IAAEC,QAAQ;IAAEC;EAAe,CAAC,GACpD3B,UAAU,CAACI,aAAa,CAAC,IAAI,CAAC,CAAC;EAEjC,MAAMwB,SAAS,GAAG3B,OAAO,CAAC,MAAM;IAAA,IAAA4B,IAAA,EAAAC,iBAAA;IAC9B,QAAAD,IAAA,GACG,CAACV,mBAAmB,KAAIO,QAAQ,aAARA,QAAQ,wBAAAI,iBAAA,GAARJ,QAAQ,CAAEK,OAAO,cAAAD,iBAAA,uBAAjBA,iBAAA,CAAoBf,KAAK,CAAC,eAAAc,IAAA,cAAAA,IAAA,GACnDvB,kBAAkB,CAACQ,KAAK,CAAC;EAE7B,CAAC,EAAE,CAACC,KAAK,EAAEI,mBAAmB,EAAEL,KAAK,EAAEY,QAAQ,CAAC,CAAC;EAEjD,MAAMM,iBAAiB,GAAG9B,MAAM,CAAc,CAAC;EAC/CM,eAAe,CAAC,MAAM;IACpB,IAAI,CAACW,mBAAmB,IAAI,OAAOQ,cAAc,KAAK,WAAW,EAAE;MACjE,IAAIK,iBAAiB,CAACD,OAAO,EAAE;QAC7BJ,cAAc,CAACI,OAAO,GAAGC,iBAAiB,CAACD,OAAO;MACpD;MACA,OAAO,MAAM;QACXJ,cAAc,CAACI,OAAO,GAAG,IAAI;MAC/B,CAAC;IACH;EACF,CAAC,EAAE,CAACZ,mBAAmB,EAAEQ,cAAc,CAAC,CAAC;EAEzC,IAAIR,mBAAmB,EAAE;IACvB,OAAOC,QAAQ;EACjB;EAEA,IACEK,WAAW,KAAKV,KAAK,IACrBC,MAAM,KAAK,KAAK,IACfC,UAAU,IAAI,CAACO,KAAK,CAAC;IAAES,WAAW,EAAEhB;EAAW,CAAC,CAAE,EACnD;IAEA,OAAOlB,KAAA,CAAAmC,aAAA,CAAAnC,KAAA,CAAAoC,QAAA,MAAI,CAAC;EACd;EAEA,MAAMC,UAAU,GACd,OAAOlB,QAAQ,KAAK,SAAS,GAAG;IAAEA;EAAS,CAAC,GAAGmB,SAAS;EAE1D,OACEtC,KAAA,CAAAmC,aAAA,CAAC7B,IAAI,CAACiC,KAAK,EAAAC,QAAA;IACT1B,SAAS,EAAEV,UAAU,CAAC,gBAAgB,EAAEU,SAAS,CAAE;IACnD2B,OAAO,EAAC,SAAS;IACjB,cAAYZ,SAAU;IACtBa,QAAQ,EAAET,iBAAkB;IAC5BU,QAAQ,EAAE,CAAC;EAAE,GACTrB,SAAS,GAEZe,UAAU,GACTrC,KAAA,CAAAmC,aAAA,CAAC3B,aAAa,EAAK6B,UAAU,EAAGhB,QAAwB,CAAC,GAEzDA,QAEQ,CAAC;AAEjB;AAEAT,IAAI,CAACgC,qBAAqB,GAAG,IAAI;AACjC,eAAehC,IAAI"}
@@ -27,20 +27,20 @@ export default function useStep(id = null, {
27
27
  }
28
28
  const value = data || context;
29
29
  const {
30
- titlesRef
30
+ stepsRef
31
31
  } = value || {};
32
32
  const setTotalSteps = useCallback(() => {
33
- const totalSteps = Object.keys((titlesRef === null || titlesRef === void 0 ? void 0 : titlesRef.current) || {}).length || 0;
33
+ const totalSteps = Object.keys((stepsRef === null || stepsRef === void 0 ? void 0 : stepsRef.current) || {}).length || 0;
34
34
  if (value.totalSteps !== totalSteps) {
35
35
  value.totalSteps = totalSteps;
36
36
  }
37
- }, [titlesRef, value]);
37
+ }, [stepsRef, value]);
38
38
  if (data) {
39
39
  setTotalSteps();
40
40
  }
41
41
  useLayoutEffect(() => {
42
42
  setTotalSteps();
43
- }, [setTotalSteps, titlesRef, value]);
43
+ }, [setTotalSteps, stepsRef, value]);
44
44
  return value;
45
45
  }
46
46
  //# sourceMappingURL=useStep.js.map