@dnb/eufemia 10.69.0 → 10.69.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (276) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/cjs/components/global-error/GlobalError.d.ts +1 -1
  3. package/cjs/components/global-error/GlobalError.js +1 -1
  4. package/cjs/components/global-error/GlobalError.js.map +1 -1
  5. package/cjs/components/global-error/GlobalErrorDocs.d.ts +2 -0
  6. package/cjs/components/global-error/GlobalErrorDocs.js +64 -0
  7. package/cjs/components/global-error/GlobalErrorDocs.js.map +1 -0
  8. package/cjs/components/info-card/InfoCardDocs.d.ts +3 -0
  9. package/cjs/components/info-card/InfoCardDocs.js +101 -0
  10. package/cjs/components/info-card/InfoCardDocs.js.map +1 -0
  11. package/cjs/components/tabs/Tabs.js +2 -2
  12. package/cjs/components/tabs/Tabs.js.map +1 -1
  13. package/cjs/components/upload/UploadFileList.js +2 -3
  14. package/cjs/components/upload/UploadFileList.js.map +1 -1
  15. package/cjs/extensions/forms/DataContext/Context.d.ts +2 -2
  16. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  17. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +4 -4
  18. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  19. package/cjs/extensions/forms/DataContext/Provider/Provider.js +35 -41
  20. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  21. package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
  22. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +2 -2
  23. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  24. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
  25. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  26. package/cjs/extensions/forms/Form/Isolation/Isolation.js +3 -4
  27. package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  28. package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +1 -10
  29. package/cjs/extensions/forms/Form/Visibility/Visibility.js +1 -0
  30. package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  31. package/cjs/extensions/forms/Form/Visibility/VisibilityContext.d.ts +2 -1
  32. package/cjs/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -1
  33. package/cjs/extensions/forms/Form/Visibility/useVisibility.js +1 -1
  34. package/cjs/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  35. package/cjs/extensions/forms/Iterate/Array/ArrayItemArea.d.ts +3 -2
  36. package/cjs/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
  37. package/cjs/extensions/forms/Iterate/EditContainer/CancelButton.js +5 -2
  38. package/cjs/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
  39. package/cjs/extensions/forms/Iterate/EditContainer/DoneButton.js +1 -1
  40. package/cjs/extensions/forms/Iterate/EditContainer/DoneButton.js.map +1 -1
  41. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -2
  42. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  43. package/cjs/extensions/forms/Iterate/PushContainer/OpenButton.js +1 -1
  44. package/cjs/extensions/forms/Iterate/PushContainer/OpenButton.js.map +1 -1
  45. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +9 -2
  46. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  47. package/cjs/extensions/forms/Iterate/ViewContainer/EditButton.js +1 -1
  48. package/cjs/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -1
  49. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +1 -1
  50. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  51. package/cjs/extensions/forms/Wizard/Buttons/Buttons.js +2 -2
  52. package/cjs/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -1
  53. package/cjs/extensions/forms/Wizard/Container/DisplaySteps.js +6 -5
  54. package/cjs/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -1
  55. package/cjs/extensions/forms/Wizard/Container/IterateOverSteps.d.ts +4 -3
  56. package/cjs/extensions/forms/Wizard/Container/IterateOverSteps.js +36 -35
  57. package/cjs/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -1
  58. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +104 -57
  59. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  60. package/cjs/extensions/forms/Wizard/Container/useCollectStepsData.d.ts +10 -0
  61. package/cjs/extensions/forms/Wizard/Container/useCollectStepsData.js +66 -0
  62. package/cjs/extensions/forms/Wizard/Container/useCollectStepsData.js.map +1 -0
  63. package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +17 -4
  64. package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  65. package/cjs/extensions/forms/Wizard/Context/types.d.ts +9 -6
  66. package/cjs/extensions/forms/Wizard/Context/types.js.map +1 -1
  67. package/cjs/extensions/forms/Wizard/Step/Step.d.ts +1 -1
  68. package/cjs/extensions/forms/Wizard/Step/Step.js +65 -22
  69. package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
  70. package/cjs/extensions/forms/Wizard/Step/StepDocs.js +2 -2
  71. package/cjs/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  72. package/cjs/extensions/forms/Wizard/hooks/useStep.js +10 -18
  73. package/cjs/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  74. package/cjs/extensions/forms/hooks/useFieldProps.js +16 -8
  75. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  76. package/cjs/extensions/forms/hooks/useValueProps.js +1 -1
  77. package/cjs/extensions/forms/hooks/useValueProps.js.map +1 -1
  78. package/cjs/shared/Eufemia.d.ts +1 -1
  79. package/cjs/shared/Eufemia.js +2 -2
  80. package/cjs/shared/Eufemia.js.map +1 -1
  81. package/cjs/shared/component-helper.js +1 -1
  82. package/cjs/shared/component-helper.js.map +1 -1
  83. package/cjs/style/core/scopes.scss +1 -1
  84. package/cjs/style/dnb-ui-basis.css +1 -1
  85. package/cjs/style/dnb-ui-basis.min.css +1 -1
  86. package/cjs/style/dnb-ui-body.css +1 -1
  87. package/cjs/style/dnb-ui-body.min.css +1 -1
  88. package/cjs/style/dnb-ui-core.css +1 -1
  89. package/cjs/style/dnb-ui-core.min.css +1 -1
  90. package/components/global-error/GlobalError.d.ts +1 -1
  91. package/components/global-error/GlobalError.js +1 -1
  92. package/components/global-error/GlobalError.js.map +1 -1
  93. package/components/global-error/GlobalErrorDocs.d.ts +2 -0
  94. package/components/global-error/GlobalErrorDocs.js +58 -0
  95. package/components/global-error/GlobalErrorDocs.js.map +1 -0
  96. package/components/info-card/InfoCardDocs.d.ts +3 -0
  97. package/components/info-card/InfoCardDocs.js +95 -0
  98. package/components/info-card/InfoCardDocs.js.map +1 -0
  99. package/components/tabs/Tabs.js +2 -2
  100. package/components/tabs/Tabs.js.map +1 -1
  101. package/components/upload/UploadFileList.js +2 -3
  102. package/components/upload/UploadFileList.js.map +1 -1
  103. package/es/components/global-error/GlobalError.d.ts +1 -1
  104. package/es/components/global-error/GlobalError.js +1 -1
  105. package/es/components/global-error/GlobalError.js.map +1 -1
  106. package/es/components/global-error/GlobalErrorDocs.d.ts +2 -0
  107. package/es/components/global-error/GlobalErrorDocs.js +58 -0
  108. package/es/components/global-error/GlobalErrorDocs.js.map +1 -0
  109. package/es/components/info-card/InfoCardDocs.d.ts +3 -0
  110. package/es/components/info-card/InfoCardDocs.js +95 -0
  111. package/es/components/info-card/InfoCardDocs.js.map +1 -0
  112. package/es/components/tabs/Tabs.js +2 -2
  113. package/es/components/tabs/Tabs.js.map +1 -1
  114. package/es/components/upload/UploadFileList.js +2 -3
  115. package/es/components/upload/UploadFileList.js.map +1 -1
  116. package/es/extensions/forms/DataContext/Context.d.ts +2 -2
  117. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  118. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +4 -4
  119. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  120. package/es/extensions/forms/DataContext/Provider/Provider.js +21 -29
  121. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  122. package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
  123. package/es/extensions/forms/FieldBlock/FieldBlock.js +2 -2
  124. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  125. package/es/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
  126. package/es/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  127. package/es/extensions/forms/Form/Isolation/Isolation.js +3 -4
  128. package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  129. package/es/extensions/forms/Form/Visibility/Visibility.d.ts +1 -10
  130. package/es/extensions/forms/Form/Visibility/Visibility.js +1 -0
  131. package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  132. package/es/extensions/forms/Form/Visibility/VisibilityContext.d.ts +2 -1
  133. package/es/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -1
  134. package/es/extensions/forms/Form/Visibility/useVisibility.js +1 -1
  135. package/es/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  136. package/es/extensions/forms/Iterate/Array/ArrayItemArea.d.ts +3 -2
  137. package/es/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
  138. package/es/extensions/forms/Iterate/EditContainer/CancelButton.js +5 -2
  139. package/es/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
  140. package/es/extensions/forms/Iterate/EditContainer/DoneButton.js +1 -1
  141. package/es/extensions/forms/Iterate/EditContainer/DoneButton.js.map +1 -1
  142. package/es/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -2
  143. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  144. package/es/extensions/forms/Iterate/PushContainer/OpenButton.js +1 -1
  145. package/es/extensions/forms/Iterate/PushContainer/OpenButton.js.map +1 -1
  146. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +9 -2
  147. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  148. package/es/extensions/forms/Iterate/ViewContainer/EditButton.js +1 -1
  149. package/es/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -1
  150. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +1 -1
  151. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  152. package/es/extensions/forms/Wizard/Buttons/Buttons.js +2 -2
  153. package/es/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -1
  154. package/es/extensions/forms/Wizard/Container/DisplaySteps.js +6 -5
  155. package/es/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -1
  156. package/es/extensions/forms/Wizard/Container/IterateOverSteps.d.ts +4 -3
  157. package/es/extensions/forms/Wizard/Container/IterateOverSteps.js +35 -34
  158. package/es/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -1
  159. package/es/extensions/forms/Wizard/Container/WizardContainer.js +101 -58
  160. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  161. package/es/extensions/forms/Wizard/Container/useCollectStepsData.d.ts +10 -0
  162. package/es/extensions/forms/Wizard/Container/useCollectStepsData.js +59 -0
  163. package/es/extensions/forms/Wizard/Container/useCollectStepsData.js.map +1 -0
  164. package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +17 -4
  165. package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  166. package/es/extensions/forms/Wizard/Context/types.d.ts +9 -6
  167. package/es/extensions/forms/Wizard/Context/types.js.map +1 -1
  168. package/es/extensions/forms/Wizard/Step/Step.d.ts +1 -1
  169. package/es/extensions/forms/Wizard/Step/Step.js +64 -22
  170. package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
  171. package/es/extensions/forms/Wizard/Step/StepDocs.js +2 -2
  172. package/es/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  173. package/es/extensions/forms/Wizard/hooks/useStep.js +10 -18
  174. package/es/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  175. package/es/extensions/forms/hooks/useFieldProps.js +16 -8
  176. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  177. package/es/extensions/forms/hooks/useValueProps.js +1 -1
  178. package/es/extensions/forms/hooks/useValueProps.js.map +1 -1
  179. package/es/shared/Eufemia.d.ts +1 -1
  180. package/es/shared/Eufemia.js +2 -2
  181. package/es/shared/Eufemia.js.map +1 -1
  182. package/es/shared/component-helper.js +1 -1
  183. package/es/shared/component-helper.js.map +1 -1
  184. package/es/style/core/scopes.scss +1 -1
  185. package/es/style/dnb-ui-basis.css +1 -1
  186. package/es/style/dnb-ui-basis.min.css +1 -1
  187. package/es/style/dnb-ui-body.css +1 -1
  188. package/es/style/dnb-ui-body.min.css +1 -1
  189. package/es/style/dnb-ui-core.css +1 -1
  190. package/es/style/dnb-ui-core.min.css +1 -1
  191. package/esm/dnb-ui-basis.min.mjs +1 -1
  192. package/esm/dnb-ui-components.min.mjs +1 -1
  193. package/esm/dnb-ui-elements.min.mjs +1 -1
  194. package/esm/dnb-ui-extensions.min.mjs +1 -1
  195. package/esm/dnb-ui-lib.min.mjs +1 -1
  196. package/extensions/forms/DataContext/Context.d.ts +2 -2
  197. package/extensions/forms/DataContext/Context.js.map +1 -1
  198. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +4 -4
  199. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  200. package/extensions/forms/DataContext/Provider/Provider.js +35 -41
  201. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  202. package/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
  203. package/extensions/forms/FieldBlock/FieldBlock.js +2 -2
  204. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  205. package/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
  206. package/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  207. package/extensions/forms/Form/Isolation/Isolation.js +3 -4
  208. package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  209. package/extensions/forms/Form/Visibility/Visibility.d.ts +1 -10
  210. package/extensions/forms/Form/Visibility/Visibility.js +1 -0
  211. package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  212. package/extensions/forms/Form/Visibility/VisibilityContext.d.ts +2 -1
  213. package/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -1
  214. package/extensions/forms/Form/Visibility/useVisibility.js +1 -1
  215. package/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  216. package/extensions/forms/Iterate/Array/ArrayItemArea.d.ts +3 -2
  217. package/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
  218. package/extensions/forms/Iterate/EditContainer/CancelButton.js +5 -2
  219. package/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
  220. package/extensions/forms/Iterate/EditContainer/DoneButton.js +1 -1
  221. package/extensions/forms/Iterate/EditContainer/DoneButton.js.map +1 -1
  222. package/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -2
  223. package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  224. package/extensions/forms/Iterate/PushContainer/OpenButton.js +1 -1
  225. package/extensions/forms/Iterate/PushContainer/OpenButton.js.map +1 -1
  226. package/extensions/forms/Iterate/PushContainer/PushContainer.js +9 -2
  227. package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  228. package/extensions/forms/Iterate/ViewContainer/EditButton.js +1 -1
  229. package/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -1
  230. package/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +1 -1
  231. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  232. package/extensions/forms/Wizard/Buttons/Buttons.js +2 -2
  233. package/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -1
  234. package/extensions/forms/Wizard/Container/DisplaySteps.js +6 -5
  235. package/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -1
  236. package/extensions/forms/Wizard/Container/IterateOverSteps.d.ts +4 -3
  237. package/extensions/forms/Wizard/Container/IterateOverSteps.js +36 -34
  238. package/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -1
  239. package/extensions/forms/Wizard/Container/WizardContainer.js +105 -58
  240. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  241. package/extensions/forms/Wizard/Container/useCollectStepsData.d.ts +10 -0
  242. package/extensions/forms/Wizard/Container/useCollectStepsData.js +60 -0
  243. package/extensions/forms/Wizard/Container/useCollectStepsData.js.map +1 -0
  244. package/extensions/forms/Wizard/Context/WizardContext.d.ts +17 -4
  245. package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  246. package/extensions/forms/Wizard/Context/types.d.ts +9 -6
  247. package/extensions/forms/Wizard/Context/types.js.map +1 -1
  248. package/extensions/forms/Wizard/Step/Step.d.ts +1 -1
  249. package/extensions/forms/Wizard/Step/Step.js +66 -22
  250. package/extensions/forms/Wizard/Step/Step.js.map +1 -1
  251. package/extensions/forms/Wizard/Step/StepDocs.js +2 -2
  252. package/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  253. package/extensions/forms/Wizard/hooks/useStep.js +10 -18
  254. package/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  255. package/extensions/forms/hooks/useFieldProps.js +16 -8
  256. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  257. package/extensions/forms/hooks/useValueProps.js +1 -1
  258. package/extensions/forms/hooks/useValueProps.js.map +1 -1
  259. package/package.json +1 -1
  260. package/shared/Eufemia.d.ts +1 -1
  261. package/shared/Eufemia.js +2 -2
  262. package/shared/Eufemia.js.map +1 -1
  263. package/shared/component-helper.js +1 -1
  264. package/shared/component-helper.js.map +1 -1
  265. package/style/core/scopes.scss +1 -1
  266. package/style/dnb-ui-basis.css +1 -1
  267. package/style/dnb-ui-basis.min.css +1 -1
  268. package/style/dnb-ui-body.css +1 -1
  269. package/style/dnb-ui-body.min.css +1 -1
  270. package/style/dnb-ui-core.css +1 -1
  271. package/style/dnb-ui-core.min.css +1 -1
  272. package/umd/dnb-ui-basis.min.js +1 -1
  273. package/umd/dnb-ui-components.min.js +1 -1
  274. package/umd/dnb-ui-elements.min.js +1 -1
  275. package/umd/dnb-ui-extensions.min.js +1 -1
  276. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"WizardContainer.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_components","_componentHelper","_isAsync","_useId","_WizardContext","_Context","_Handler","_useSharedState","_useHandleLayoutEffect","_useStepAnimation","_useVisibility","_DisplaySteps","_IterateOverSteps","_PrerenderFieldPropsOfOtherSteps","_excluded","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_objectWithoutProperties","_objectWithoutPropertiesLoose","indexOf","propertyIsEnumerable","useLayoutEffect","window","React","useEffect","WizardContainer","props","_dataContext$setHandl","className","id","idProp","mode","initialActiveIndex","omitScrollManagement","omitFocusManagement","onStepChange","children","noAnimation","prerenderFieldProps","keepInDOM","validationMode","variant","sidebarId","rest","dataContext","useContext","DataContext","hasContext","setFormState","handleSubmitCall","setShowAllErrors","setSubmitState","useId","forceUpdate","useReducer","activeIndexRef","useRef","totalStepsRef","NaN","stepStatusRef","hasVisibleErrorRef","hasErrorInOtherStepRef","visitedStepsRef","elementRef","stepElementRef","preventNextStepRef","stepsRef","tmpStepsRef","updateTitlesRef","prerenderFieldPropsRef","bypassOnNavigation","sharedStateRef","current","useSharedState","createReferenceKey","undefined","setStepState","useCallback","index","state","hasFieldErrorInStep","values","some","_ref","hasError","revealError","path","activeIndex","hasErrorInActiveStep","useMemo","currentState","includes","preventNavigation","shouldPrevent","getStepChangeOptions","_stepsRef$current$ind","previousIndex","options","previousStep","_stepsRef$current$pre","previousId","callOnStepChange","isAsync","setFocus","scrollToTop","isInteractionRef","useHandleLayoutEffect","executeLayoutAnimationRef","useStepAnimation","handleLayoutEffect","handleStepChange","_ref2","skipErrorCheck","skipStepChangeCall","skipStepChangeCallBeforeMounted","skipStepChangeCallFromHook","didSubmit","onSubmit","_sharedStateRef$curre","_sharedStateRef$curre2","_sharedStateRef$curre3","data","result","Error","skipFieldValidation","enableAsyncBehavior","setActiveIndex","handlePrevious","handleNext","handleChange","_ref3","current_step","setFormError","error","handleUnknownStepsState","hasInvalidStepsState","forStates","steps","handleSubmit","_ref4","preventSubmit","setHandleSubmit","check","useVisibility","providerValue","extend","_updateTitlesRef$curr","stepsLengthDidChange","count","tmpCount","_executeLayoutAnimati","warn","createElement","Provider","Space","classnames","innerRef","DisplaySteps","IterateOverSteps","PrerenderFieldPropsOfOtherSteps","_supportsSpacingProps","_default","exports"],"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 classnames from 'classnames'\nimport { Space } from '../../../../components'\nimport { warn } from '../../../../shared/component-helper'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport useId from '../../../../shared/helpers/useId'\nimport WizardContext, {\n WizardContextState,\n} from '../Context/WizardContext'\nimport type {\n OnStepChange,\n OnStepChangeOptions,\n OnStepsChangeMode,\n SetActiveIndexOptions,\n StepIndex,\n Steps,\n InternalFieldError,\n InternalStepStatus,\n InternalStepStatuses,\n InternalVisitedSteps,\n} from '../Context/types'\nimport DataContext from '../../DataContext/Context'\nimport Handler from '../../Form/Handler/Handler'\nimport {\n SharedStateReturn,\n createReferenceKey,\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'\nimport { DisplaySteps } from './DisplaySteps'\nimport { IterateOverSteps } from './IterateOverSteps'\nimport { PrerenderFieldPropsOfOtherSteps } from './PrerenderFieldPropsOfOtherSteps'\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 will not unmount the steps when navigating back and forth.\n */\n keepInDOM?: 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 * Determines if and how the validation will be bypassed.\n */\n validationMode?: 'bypassOnNavigation'\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 keepInDOM,\n validationMode,\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 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 stepStatusRef = useRef<InternalStepStatuses>({})\n const hasVisibleErrorRef = useRef<InternalFieldError>({})\n const hasErrorInOtherStepRef = useRef<boolean>(false)\n const visitedStepsRef = useRef<InternalVisitedSteps>({})\n const elementRef = useRef<HTMLElement>()\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 const bypassOnNavigation = validationMode === 'bypassOnNavigation'\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 ? createReferenceKey(id, 'wizard') : undefined\n )\n\n visitedStepsRef.current[activeIndexRef.current] = true\n\n const setStepState = useCallback(\n (index: number, state: InternalStepStatus) => {\n stepStatusRef.current[index] = state\n },\n []\n )\n const hasFieldErrorInStep = useCallback((index: StepIndex) => {\n return Object.values(hasVisibleErrorRef.current).some(\n ({ index: i, hasError }) => {\n return i === index && hasError\n }\n )\n }, [])\n const revealError: WizardContextState['revealError'] = useCallback(\n (index, path, hasError) => {\n hasVisibleErrorRef.current[path] = { index, hasError }\n\n if (hasFieldErrorInStep(index)) {\n setStepState(index, 'error')\n }\n },\n [hasFieldErrorInStep, setStepState]\n )\n\n const activeIndex = activeIndexRef.current\n const hasErrorInActiveStep = hasFieldErrorInStep(activeIndex)\n useMemo(() => {\n const currentState = stepStatusRef.current[activeIndex]\n if (\n !hasErrorInActiveStep &&\n ['error', 'valid'].includes(currentState)\n ) {\n setStepState(activeIndex, 'valid')\n } else {\n setStepState(activeIndex, hasErrorInActiveStep ? 'error' : undefined)\n }\n }, [activeIndex, hasErrorInActiveStep, setStepState])\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({ elementRef, stepElementRef })\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 async ({\n index,\n skipErrorCheck,\n skipStepChangeCall,\n skipStepChangeCallBeforeMounted,\n skipStepChangeCallFromHook,\n mode,\n }: {\n index: StepIndex\n mode: OnStepsChangeMode\n } & SetActiveIndexOptions) => {\n let didSubmit = false\n const 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 // Set the \"showAllErrors\" to the step we got to\n setShowAllErrors(\n bypassOnNavigation\n ? false\n : stepStatusRef.current[index] === 'error'\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 didSubmit = true\n\n return result\n }\n\n await handleSubmitCall({\n skipErrorCheck,\n skipFieldValidation: skipErrorCheck,\n enableAsyncBehavior: isAsync(onStepChange),\n onSubmit: bypassOnNavigation ? () => null : onSubmit,\n })\n\n if (!didSubmit) {\n if (bypassOnNavigation) {\n await onSubmit()\n } else {\n // In case steps were visited before, or they use the \"keepInDOM\" prop,\n // we need to check the step status, because other steps may report an error,\n // so the user will not be able to navigate to the next step,\n // because the form contains errors. Thats why onSubmit will not be called via handleSubmitCall.\n const state = stepStatusRef.current[activeIndexRef.current]\n if (mode === 'next' && state === 'valid') {\n await onSubmit()\n }\n }\n }\n },\n [\n bypassOnNavigation,\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(\n current_step,\n mode === 'loose' ? { skipErrorCheck: true } : undefined\n )\n },\n [mode, setActiveIndex]\n )\n\n const setFormError = useCallback(\n (error: Error) => {\n setSubmitState?.({ error })\n },\n [setSubmitState]\n )\n\n const handleUnknownStepsState = useCallback(() => {\n const index = activeIndexRef.current\n for (let i = 0; i < totalStepsRef.current; i++) {\n // - Check if the step was visited before,\n // - if, not check if the step has already an state,\n // - if, not check if the step is before the active step and and below.\n // - Only then set the state to \"unknown\"\n if (\n !visitedStepsRef.current[i] &&\n stepStatusRef.current[i] === undefined &&\n i < index &&\n i !== index\n ) {\n setStepState(i, 'unknown')\n }\n }\n }, [setStepState])\n\n const hasInvalidStepsState: WizardContextState['hasInvalidStepsState'] =\n useCallback((forStates) => {\n const steps = Object.values(stepStatusRef.current)\n return (forStates || ['unknown', 'error']).some((state) =>\n steps.includes(state)\n )\n }, [])\n\n const handleSubmit = useCallback(\n ({ preventSubmit }) => {\n handleUnknownStepsState()\n\n // - If there is an unknown step state, we need to prevent the submit\n if (hasInvalidStepsState()) {\n return preventSubmit()\n }\n\n if (activeIndexRef.current + 1 < totalStepsRef.current) {\n handleNext()\n preventSubmit()\n }\n },\n [handleUnknownStepsState, hasInvalidStepsState, handleNext]\n )\n dataContext.setHandleSubmit?.(handleSubmit)\n\n const { check } = useVisibility()\n\n const providerValue = useMemo<WizardContextState>(() => {\n return {\n id,\n activeIndex,\n initialActiveIndex,\n stepElementRef,\n stepsRef,\n updateTitlesRef,\n activeIndexRef,\n totalStepsRef,\n stepStatusRef,\n prerenderFieldProps,\n prerenderFieldPropsRef,\n hasErrorInOtherStepRef,\n keepInDOM,\n check,\n setActiveIndex,\n handlePrevious,\n hasInvalidStepsState,\n revealError,\n handleNext,\n setFormError,\n }\n }, [\n id,\n activeIndex,\n initialActiveIndex,\n prerenderFieldProps,\n keepInDOM,\n check,\n setActiveIndex,\n handlePrevious,\n hasInvalidStepsState,\n revealError,\n handleNext,\n setFormError,\n ])\n\n // - Handle shared state\n useLayoutEffect(() => {\n if (id && hasContext) {\n sharedStateRef.current.extend(providerValue)\n }\n }, [hasContext, id, providerValue])\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 includeWhen)\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 innerRef={elementRef}\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 && !keepInDOM && (\n <PrerenderFieldPropsOfOtherSteps\n prerenderFieldPropsRef={prerenderFieldPropsRef}\n />\n )}\n </WizardContext.Provider>\n )\n}\n\nWizardContainer._supportsSpacingProps = true\n\nexport default WizardContainer\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"WizardContainer.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_components","_componentHelper","_isAsync","_useId","_WizardContext","_Context","_Handler","_useSharedState","_useHandleLayoutEffect","_useStepAnimation","_useVisibility","_DisplaySteps","_IterateOverSteps","_PrerenderFieldPropsOfOtherSteps","_excluded","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_objectWithoutProperties","_objectWithoutPropertiesLoose","indexOf","propertyIsEnumerable","useLayoutEffect","window","React","useEffect","WizardContainer","props","_dataContext$setHandl","className","id","idProp","mode","initialActiveIndex","omitScrollManagement","omitFocusManagement","onStepChange","children","noAnimation","prerenderFieldProps","keepInDOM","validationMode","variant","sidebarId","rest","dataContext","useContext","DataContext","hasContext","setFormState","handleSubmitCall","setShowAllErrors","setSubmitState","useId","forceUpdate","useReducer","activeIndexRef","useRef","totalStepsRef","NaN","submitCountRef","visitedStepsRef","Map","fieldErrorRef","storeStepStateRef","hasErrorInOtherStepRef","elementRef","stepElementRef","preventNextStepRef","stepsRef","tmpStepsRef","stepIndexRef","updateTitlesRef","prerenderFieldPropsRef","bypassOnNavigation","sharedStateRef","current","useSharedState","createReferenceKey","undefined","hasFieldErrorInStep","useCallback","index","Array","from","values","some","_ref","hasError","setStepAsVisited","writeStepsState","forStates","result","existingState","includes","state","hasInvalidStepsState","setFieldError","path","preventNavigation","shouldPrevent","getStepChangeOptions","_stepsRef$current$get","previousIndex","options","previousStep","_stepsRef$current$get2","previousId","callOnStepChange","isAsync","setFocus","scrollToTop","isInteractionRef","useHandleLayoutEffect","executeLayoutAnimationRef","useStepAnimation","handleLayoutEffect","handleStepChange","_ref2","skipErrorCheck","skipStepChangeCall","skipStepChangeCallBeforeMounted","skipStepChangeCallFromHook","didSubmit","onSubmit","_sharedStateRef$curre","_sharedStateRef$curre2","_sharedStateRef$curre3","data","Error","skipFieldValidation","enableAsyncBehavior","setActiveIndex","handlePrevious","handleNext","handleChange","_ref3","current_step","setFormError","error","handleSubmit","_ref4","preventSubmit","setHandleSubmit","check","useVisibility","mapOverChildrenRef","enableMapOverChildren","activeIndex","providerValue","useMemo","extend","_updateTitlesRef$curr","stepsLengthDidChange","tmpCount","count","_executeLayoutAnimati","warn","createElement","Provider","Space","classnames","innerRef","DisplaySteps","IterateOverSteps","PrerenderFieldPropsOfOtherSteps","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Wizard/Container/WizardContainer.tsx"],"sourcesContent":["import React, {\n useContext,\n useCallback,\n useRef,\n useReducer,\n useMemo,\n useEffect,\n} from 'react'\nimport classnames from 'classnames'\nimport { Space } from '../../../../components'\nimport { warn } from '../../../../shared/component-helper'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport useId from '../../../../shared/helpers/useId'\nimport WizardContext, {\n WizardContextState,\n} from '../Context/WizardContext'\nimport type {\n OnStepChange,\n OnStepChangeOptions,\n OnStepsChangeMode,\n SetActiveIndexOptions,\n StepIndex,\n Steps,\n InternalFieldError,\n InternalVisitedSteps,\n InternalStepStatus,\n InternalStepStatuses,\n} from '../Context/types'\nimport DataContext from '../../DataContext/Context'\nimport Handler from '../../Form/Handler/Handler'\nimport {\n SharedStateReturn,\n createReferenceKey,\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'\nimport { DisplaySteps } from './DisplaySteps'\nimport { IterateOverSteps } from './IterateOverSteps'\nimport { PrerenderFieldPropsOfOtherSteps } from './PrerenderFieldPropsOfOtherSteps'\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 will not unmount the steps when navigating back and forth.\n */\n keepInDOM?: 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 * Determines if and how the validation will be bypassed.\n */\n validationMode?: 'bypassOnNavigation'\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 keepInDOM,\n validationMode,\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 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 submitCountRef = useRef(0)\n const visitedStepsRef = useRef<InternalVisitedSteps>(new Map())\n const fieldErrorRef = useRef<InternalFieldError>(new Map())\n const storeStepStateRef = useRef<InternalStepStatuses>(new Map())\n const hasErrorInOtherStepRef = useRef<boolean>(false)\n const elementRef = useRef<HTMLElement>()\n const stepElementRef = useRef<HTMLElement>()\n const preventNextStepRef = useRef(false)\n const stepsRef = useRef<Steps>(new Map())\n const tmpStepsRef = useRef<number>()\n const stepIndexRef = useRef<number>(-1)\n const updateTitlesRef = useRef<() => void>()\n const prerenderFieldPropsRef = useRef<\n Record<string, () => React.ReactElement>\n >({})\n\n const bypassOnNavigation = validationMode === 'bypassOnNavigation'\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 ? createReferenceKey(id, 'wizard') : undefined\n )\n\n const hasFieldErrorInStep = useCallback((index: StepIndex) => {\n return Array.from(fieldErrorRef.current.values()).some(\n ({ index: i, hasError }) => {\n return i === index && hasError\n }\n )\n }, [])\n\n const setStepAsVisited = useCallback((index: StepIndex) => {\n visitedStepsRef.current.set(index, true)\n }, [])\n\n useEffect(() => {\n if (!initialActiveIndex) {\n setStepAsVisited(activeIndexRef.current)\n }\n }, [initialActiveIndex, setStepAsVisited])\n\n /**\n * - This method is used to check if a step (or any step) has an invalid state.\n *\n * If a step was not visited before, it will be set to \"unknown\".\n * If a step was visited before, but has an invalid state, it will be set to \"error\".\n * If an index is given, it will check if the step, with the given index, has an invalid state.\n */\n const writeStepsState: WizardContextState['writeStepsState'] =\n useCallback(\n (index = undefined, forStates = ['unknown', 'error']) => {\n for (let i = 0; i < totalStepsRef.current; i++) {\n if (index !== undefined && index !== i) {\n continue\n }\n\n let result: InternalStepStatus = undefined\n const existingState = storeStepStateRef.current.get(i)\n\n if (forStates.includes('unknown')) {\n const state =\n i < activeIndexRef.current &&\n visitedStepsRef.current.get(i) === undefined\n if (state) {\n result = 'unknown'\n }\n }\n\n if (forStates.includes('error')) {\n const state = hasFieldErrorInStep(i)\n if (state) {\n result = 'error'\n } else if (existingState === 'error') {\n if (i === activeIndexRef.current) {\n result = undefined\n } else {\n result = existingState\n }\n }\n }\n\n storeStepStateRef.current.set(i, result)\n }\n },\n [hasFieldErrorInStep]\n )\n\n const hasInvalidStepsState: WizardContextState['hasInvalidStepsState'] =\n useCallback((index = undefined, forStates = ['unknown', 'error']) => {\n for (let i = 0; i < totalStepsRef.current; i++) {\n if (index !== undefined && index !== i) {\n continue\n }\n\n const state = storeStepStateRef.current.get(i)\n\n if (forStates.includes('unknown')) {\n if (state === 'unknown') {\n return true\n }\n }\n\n if (forStates.includes('error')) {\n if (state === 'error') {\n return true\n }\n }\n }\n\n return false\n }, [])\n\n const setFieldError: WizardContextState['setFieldError'] = useCallback(\n (index, path, hasError) => {\n fieldErrorRef.current.set(path, { index, hasError })\n },\n []\n )\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.get(index)?.id\n if (id) {\n const previousId = stepsRef.current.get(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({ elementRef, stepElementRef })\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 async ({\n index,\n skipErrorCheck,\n skipStepChangeCall,\n skipStepChangeCallBeforeMounted,\n skipStepChangeCallFromHook,\n mode,\n }: {\n index: StepIndex\n mode: OnStepsChangeMode\n } & SetActiveIndexOptions) => {\n let didSubmit = false\n const 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 // Set the \"showAllErrors\" to the step we got to\n setShowAllErrors(\n bypassOnNavigation\n ? false\n : hasInvalidStepsState(index, ['error'])\n )\n\n if (!preventNextStepRef.current && !(result instanceof Error)) {\n handleLayoutEffect()\n\n activeIndexRef.current = index\n setStepAsVisited(activeIndexRef.current)\n forceUpdate()\n }\n\n preventNextStepRef.current = false\n didSubmit = true\n\n return result\n }\n\n await handleSubmitCall({\n skipErrorCheck,\n skipFieldValidation: skipErrorCheck,\n enableAsyncBehavior: isAsync(onStepChange),\n onSubmit: bypassOnNavigation ? () => null : onSubmit,\n })\n\n if (!didSubmit) {\n if (bypassOnNavigation) {\n await onSubmit()\n } else {\n if (mode === 'next') {\n // First we need to write the steps state for the current active index.\n writeStepsState(activeIndexRef.current, ['error'])\n\n // In case steps were visited before, or they use the \"keepInDOM\" prop,\n // we need to check the step status, because other steps may report an error,\n // so the user will not be able to navigate to the next step,\n // because the form contains errors. Thats why onSubmit will not be called via handleSubmitCall.\n if (!hasInvalidStepsState(activeIndexRef.current)) {\n await onSubmit()\n }\n }\n }\n }\n },\n [\n bypassOnNavigation,\n callOnStepChange,\n getStepChangeOptions,\n handleLayoutEffect,\n handleSubmitCall,\n hasInvalidStepsState,\n isInteractionRef,\n onStepChange,\n setFormState,\n setShowAllErrors,\n setStepAsVisited,\n writeStepsState,\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(\n current_step,\n mode === 'loose' ? { skipErrorCheck: true } : undefined\n )\n },\n [mode, 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 submitCountRef.current += 1\n\n // - If there is an unknown step state, we need to prevent the submit\n if (hasInvalidStepsState()) {\n return preventSubmit()\n }\n\n if (activeIndexRef.current + 1 < totalStepsRef.current) {\n handleNext()\n preventSubmit()\n }\n },\n [hasInvalidStepsState, handleNext]\n )\n dataContext.setHandleSubmit?.(handleSubmit)\n\n // NB: useVisibility needs to be imported here,\n // because it need the outer context to be available.\n const { check } = useVisibility()\n\n // This is used to map over the children and to give them the correct index,\n // in case it could be given properly, like if no id or title was given in React.StrictMode.\n const mapOverChildrenRef = useRef(false)\n const enableMapOverChildren = useCallback(() => {\n mapOverChildrenRef.current = true\n }, [])\n\n const activeIndex = activeIndexRef.current\n const providerValue = useMemo<WizardContextState>(() => {\n return {\n id,\n activeIndex,\n initialActiveIndex,\n stepElementRef,\n stepsRef,\n updateTitlesRef,\n activeIndexRef,\n stepIndexRef,\n totalStepsRef,\n submitCountRef,\n prerenderFieldProps,\n prerenderFieldPropsRef,\n hasErrorInOtherStepRef,\n keepInDOM,\n enableMapOverChildren,\n mapOverChildrenRef,\n check,\n setActiveIndex,\n handlePrevious,\n hasInvalidStepsState,\n writeStepsState,\n setFieldError,\n handleNext,\n setFormError,\n } satisfies WizardContextState\n }, [\n id,\n activeIndex,\n initialActiveIndex,\n prerenderFieldProps,\n keepInDOM,\n enableMapOverChildren,\n check,\n setActiveIndex,\n handlePrevious,\n hasInvalidStepsState,\n writeStepsState,\n setFieldError,\n handleNext,\n setFormError,\n ])\n\n // - Handle shared state\n useLayoutEffect(() => {\n if (id && hasContext) {\n sharedStateRef.current.extend(providerValue)\n }\n }, [hasContext, id, providerValue])\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 tmpCount = tmpStepsRef.current\n if (tmpCount === undefined) {\n return false\n }\n const count = totalStepsRef.current\n return count !== 0 && tmpCount !== 0 && count !== tmpCount\n }, [])\n\n // - Call onStepChange when step gets replaced or added (e.g. via includeWhen)\n useLayoutEffect(() => {\n if (stepsLengthDidChange()) {\n callOnStepChange(activeIndexRef.current, 'stepListModified')\n executeLayoutAnimationRef.current?.()\n }\n\n tmpStepsRef.current = totalStepsRef.current\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n totalStepsRef.current, // Include the totalStepsRef.current to trigger the useEffect on change\n callOnStepChange,\n stepsLengthDidChange,\n ])\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 innerRef={elementRef}\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 && !keepInDOM && (\n <PrerenderFieldPropsOfOtherSteps\n prerenderFieldPropsRef={prerenderFieldPropsRef}\n />\n )}\n </WizardContext.Provider>\n )\n}\n\nWizardContainer._supportsSpacingProps = true\n\nexport default WizardContainer\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ export declare function useCollectStepsData(): {
2
+ collectStepsData: ({ id, index, inactive, title }: {
3
+ id: any;
4
+ index: any;
5
+ inactive: any;
6
+ title: any;
7
+ }) => {
8
+ title: any;
9
+ };
10
+ };
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ "use client";
3
+
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useCollectStepsData = useCollectStepsData;
8
+ var _react = require("react");
9
+ var _componentHelper = require("../../../../shared/component-helper");
10
+ var _WizardContext = _interopRequireDefault(require("../Context/WizardContext"));
11
+ var _hooks = require("../../hooks");
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ function useCollectStepsData() {
14
+ const {
15
+ activeIndexRef,
16
+ hasErrorInOtherStepRef,
17
+ stepsRef,
18
+ submitCountRef,
19
+ writeStepsState,
20
+ hasInvalidStepsState
21
+ } = (0, _react.useContext)(_WizardContext.default) || {};
22
+ const translations = (0, _hooks.useTranslation)();
23
+ const collectStepsData = (0, _react.useCallback)(_ref => {
24
+ let {
25
+ id,
26
+ index,
27
+ inactive,
28
+ title
29
+ } = _ref;
30
+ if (!hasInvalidStepsState) {
31
+ return;
32
+ }
33
+ writeStepsState(index);
34
+ const stringifiedTitle = title !== undefined ? (0, _componentHelper.convertJsxToString)(title) : 'Title missing';
35
+ let status = undefined;
36
+ let statusState = undefined;
37
+ if (index !== activeIndexRef.current && !inactive) {
38
+ if (hasInvalidStepsState(index, ['error'])) {
39
+ status = translations.Step.stepHasError;
40
+ statusState = 'error';
41
+ } else if (submitCountRef.current > 0 && hasInvalidStepsState(index, ['unknown'])) {
42
+ status = 'Unknown state';
43
+ statusState = 'warn';
44
+ }
45
+ }
46
+ if (status) {
47
+ hasErrorInOtherStepRef.current = true;
48
+ }
49
+ stepsRef.current.set(index, {
50
+ index,
51
+ id,
52
+ title,
53
+ stringifiedTitle,
54
+ inactive,
55
+ status,
56
+ statusState
57
+ });
58
+ return {
59
+ title
60
+ };
61
+ }, [activeIndexRef, hasErrorInOtherStepRef, hasInvalidStepsState, stepsRef, submitCountRef, translations.Step.stepHasError, writeStepsState]);
62
+ return {
63
+ collectStepsData
64
+ };
65
+ }
66
+ //# sourceMappingURL=useCollectStepsData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCollectStepsData.js","names":["_react","require","_componentHelper","_WizardContext","_interopRequireDefault","_hooks","e","__esModule","default","useCollectStepsData","activeIndexRef","hasErrorInOtherStepRef","stepsRef","submitCountRef","writeStepsState","hasInvalidStepsState","useContext","WizardContext","translations","useTranslation","collectStepsData","useCallback","_ref","id","index","inactive","title","stringifiedTitle","undefined","convertJsxToString","status","statusState","current","Step","stepHasError","set"],"sources":["../../../../../../src/extensions/forms/Wizard/Container/useCollectStepsData.tsx"],"sourcesContent":["import { useCallback, useContext } from 'react'\nimport { convertJsxToString } from '../../../../shared/component-helper'\nimport WizardContext from '../Context/WizardContext'\nimport { useTranslation } from '../../hooks'\n\nexport function useCollectStepsData() {\n const {\n activeIndexRef,\n hasErrorInOtherStepRef,\n stepsRef,\n submitCountRef,\n writeStepsState,\n hasInvalidStepsState,\n } = useContext(WizardContext) || {}\n\n const translations = useTranslation()\n\n const collectStepsData = useCallback(\n ({ id, index, inactive, title }) => {\n if (!hasInvalidStepsState) {\n return // stop here\n }\n\n writeStepsState(index)\n\n const stringifiedTitle =\n title !== undefined ? convertJsxToString(title) : 'Title missing'\n\n let status = undefined\n let statusState = undefined\n if (index !== activeIndexRef.current && !inactive) {\n if (hasInvalidStepsState(index, ['error'])) {\n status = translations.Step.stepHasError\n statusState = 'error'\n } else if (\n submitCountRef.current > 0 &&\n hasInvalidStepsState(index, ['unknown'])\n ) {\n status = 'Unknown state'\n statusState = 'warn'\n }\n }\n\n if (status) {\n hasErrorInOtherStepRef.current = true\n }\n\n stepsRef.current.set(index, {\n index,\n id,\n title,\n stringifiedTitle,\n inactive,\n status,\n statusState,\n })\n\n return { title }\n },\n [\n activeIndexRef,\n hasErrorInOtherStepRef,\n hasInvalidStepsState,\n stepsRef,\n submitCountRef,\n translations.Step.stepHasError,\n writeStepsState,\n ]\n )\n\n return { collectStepsData }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAA4C,SAAAG,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAErC,SAASG,mBAAmBA,CAAA,EAAG;EACpC,MAAM;IACJC,cAAc;IACdC,sBAAsB;IACtBC,QAAQ;IACRC,cAAc;IACdC,eAAe;IACfC;EACF,CAAC,GAAG,IAAAC,iBAAU,EAACC,sBAAa,CAAC,IAAI,CAAC,CAAC;EAEnC,MAAMC,YAAY,GAAG,IAAAC,qBAAc,EAAC,CAAC;EAErC,MAAMC,gBAAgB,GAAG,IAAAC,kBAAW,EAClCC,IAAA,IAAoC;IAAA,IAAnC;MAAEC,EAAE;MAAEC,KAAK;MAAEC,QAAQ;MAAEC;IAAM,CAAC,GAAAJ,IAAA;IAC7B,IAAI,CAACP,oBAAoB,EAAE;MACzB;IACF;IAEAD,eAAe,CAACU,KAAK,CAAC;IAEtB,MAAMG,gBAAgB,GACpBD,KAAK,KAAKE,SAAS,GAAG,IAAAC,mCAAkB,EAACH,KAAK,CAAC,GAAG,eAAe;IAEnE,IAAII,MAAM,GAAGF,SAAS;IACtB,IAAIG,WAAW,GAAGH,SAAS;IAC3B,IAAIJ,KAAK,KAAKd,cAAc,CAACsB,OAAO,IAAI,CAACP,QAAQ,EAAE;MACjD,IAAIV,oBAAoB,CAACS,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE;QAC1CM,MAAM,GAAGZ,YAAY,CAACe,IAAI,CAACC,YAAY;QACvCH,WAAW,GAAG,OAAO;MACvB,CAAC,MAAM,IACLlB,cAAc,CAACmB,OAAO,GAAG,CAAC,IAC1BjB,oBAAoB,CAACS,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC,EACxC;QACAM,MAAM,GAAG,eAAe;QACxBC,WAAW,GAAG,MAAM;MACtB;IACF;IAEA,IAAID,MAAM,EAAE;MACVnB,sBAAsB,CAACqB,OAAO,GAAG,IAAI;IACvC;IAEApB,QAAQ,CAACoB,OAAO,CAACG,GAAG,CAACX,KAAK,EAAE;MAC1BA,KAAK;MACLD,EAAE;MACFG,KAAK;MACLC,gBAAgB;MAChBF,QAAQ;MACRK,MAAM;MACNC;IACF,CAAC,CAAC;IAEF,OAAO;MAAEL;IAAM,CAAC;EAClB,CAAC,EACD,CACEhB,cAAc,EACdC,sBAAsB,EACtBI,oBAAoB,EACpBH,QAAQ,EACRC,cAAc,EACdK,YAAY,CAACe,IAAI,CAACC,YAAY,EAC9BpB,eAAe,CAEnB,CAAC;EAED,OAAO;IAAEM;EAAiB,CAAC;AAC7B","ignoreList":[]}
@@ -1,7 +1,13 @@
1
1
  import React from 'react';
2
2
  import { Path } from '../../types';
3
3
  import { VisibleWhen } from '../../Form/Visibility';
4
- import { InternalStepStatus, InternalStepStatuses, SetActiveIndexOptions, StepIndex, Steps } from './types';
4
+ import { InternalStepStatus, SetActiveIndexOptions, StepIndex, Steps } from './types';
5
+ export type HandleStatusArgs = {
6
+ id: string;
7
+ index: StepIndex;
8
+ inactive: boolean;
9
+ titleProp: React.ReactNode;
10
+ };
5
11
  export interface WizardContextState {
6
12
  id?: string;
7
13
  totalSteps?: number;
@@ -11,8 +17,9 @@ export interface WizardContextState {
11
17
  stepsRef?: React.MutableRefObject<Steps>;
12
18
  updateTitlesRef?: React.MutableRefObject<() => void>;
13
19
  activeIndexRef?: React.MutableRefObject<StepIndex>;
20
+ stepIndexRef?: React.MutableRefObject<StepIndex>;
14
21
  totalStepsRef?: React.MutableRefObject<number>;
15
- stepStatusRef?: React.MutableRefObject<InternalStepStatuses>;
22
+ submitCountRef?: React.MutableRefObject<number>;
16
23
  prerenderFieldPropsRef?: React.MutableRefObject<Record<string, () => React.ReactElement>>;
17
24
  hasErrorInOtherStepRef?: React.MutableRefObject<boolean>;
18
25
  prerenderFieldProps?: boolean;
@@ -21,11 +28,17 @@ export interface WizardContextState {
21
28
  handleNext?: () => void;
22
29
  setActiveIndex?: (index: StepIndex, { skipStepChangeCall, skipStepChangeCallBeforeMounted, skipStepChangeCallFromHook, }?: SetActiveIndexOptions) => void;
23
30
  setFormError?: (error: Error) => void;
24
- revealError?: (index: StepIndex, path: Path, hasError: boolean) => void;
25
- hasInvalidStepsState?: (forStates?: Array<InternalStepStatus>) => boolean;
31
+ setFieldError?: (index: StepIndex, path: Path, hasError: boolean) => void;
32
+ writeStepsState?: (index?: StepIndex, forStates?: Array<InternalStepStatus>) => void;
33
+ hasInvalidStepsState?: (index?: StepIndex, forStates?: Array<InternalStepStatus>) => boolean;
26
34
  check?: ({ visibleWhen }: {
27
35
  visibleWhen: VisibleWhen;
28
36
  }) => boolean;
37
+ collectStepsData?: (args: HandleStatusArgs) => {
38
+ title: string;
39
+ };
40
+ enableMapOverChildren?: () => void;
41
+ mapOverChildrenRef?: React.MutableRefObject<boolean>;
29
42
  }
30
43
  declare const WizardContext: React.Context<WizardContextState>;
31
44
  export default WizardContext;
@@ -1 +1 @@
1
- {"version":3,"file":"WizardContext.js","names":["_react","_interopRequireDefault","require","e","__esModule","default","WizardContext","React","createContext","undefined","_default","exports"],"sources":["../../../../../../src/extensions/forms/Wizard/Context/WizardContext.ts"],"sourcesContent":["import React from 'react'\nimport { Path } from '../../types'\nimport { VisibleWhen } from '../../Form/Visibility'\nimport {\n InternalStepStatus,\n InternalStepStatuses,\n SetActiveIndexOptions,\n StepIndex,\n Steps,\n} from './types'\n\nexport interface WizardContextState {\n id?: string\n totalSteps?: number\n activeIndex?: StepIndex\n initialActiveIndex?: 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 stepStatusRef?: React.MutableRefObject<InternalStepStatuses>\n prerenderFieldPropsRef?: React.MutableRefObject<\n Record<string, () => React.ReactElement>\n >\n hasErrorInOtherStepRef?: React.MutableRefObject<boolean>\n prerenderFieldProps?: boolean\n keepInDOM?: 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 revealError?: (index: StepIndex, path: Path, hasError: boolean) => void\n hasInvalidStepsState?: (forStates?: Array<InternalStepStatus>) => boolean\n check?: ({ visibleWhen }: { visibleWhen: VisibleWhen }) => boolean\n}\n\nconst WizardContext = React.createContext<WizardContextState | undefined>(\n undefined\n)\n\nexport default WizardContext\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAyB,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AA4CzB,MAAMG,aAAa,GAAGC,cAAK,CAACC,aAAa,CACvCC,SACF,CAAC;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAAN,OAAA,GAEcC,aAAa","ignoreList":[]}
1
+ {"version":3,"file":"WizardContext.js","names":["_react","_interopRequireDefault","require","e","__esModule","default","WizardContext","React","createContext","undefined","_default","exports"],"sources":["../../../../../../src/extensions/forms/Wizard/Context/WizardContext.ts"],"sourcesContent":["import React from 'react'\nimport { Path } from '../../types'\nimport { VisibleWhen } from '../../Form/Visibility'\nimport {\n InternalStepStatus,\n SetActiveIndexOptions,\n StepIndex,\n Steps,\n} from './types'\n\nexport type HandleStatusArgs = {\n id: string\n index: StepIndex\n inactive: boolean\n titleProp: React.ReactNode\n}\n\nexport interface WizardContextState {\n id?: string\n totalSteps?: number\n activeIndex?: StepIndex\n initialActiveIndex?: StepIndex\n stepElementRef?: React.MutableRefObject<HTMLElement>\n stepsRef?: React.MutableRefObject<Steps>\n updateTitlesRef?: React.MutableRefObject<() => void>\n activeIndexRef?: React.MutableRefObject<StepIndex>\n stepIndexRef?: React.MutableRefObject<StepIndex>\n totalStepsRef?: React.MutableRefObject<number>\n submitCountRef?: React.MutableRefObject<number>\n prerenderFieldPropsRef?: React.MutableRefObject<\n Record<string, () => React.ReactElement>\n >\n hasErrorInOtherStepRef?: React.MutableRefObject<boolean>\n prerenderFieldProps?: boolean\n keepInDOM?: 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 setFieldError?: (index: StepIndex, path: Path, hasError: boolean) => void\n writeStepsState?: (\n index?: StepIndex,\n forStates?: Array<InternalStepStatus>\n ) => void\n hasInvalidStepsState?: (\n index?: StepIndex,\n forStates?: Array<InternalStepStatus>\n ) => boolean\n check?: ({ visibleWhen }: { visibleWhen: VisibleWhen }) => boolean\n collectStepsData?: (args: HandleStatusArgs) => { title: string }\n enableMapOverChildren?: () => void\n mapOverChildrenRef?: React.MutableRefObject<boolean>\n}\n\nconst WizardContext = React.createContext<WizardContextState | undefined>(\n undefined\n)\n\nexport default WizardContext\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAyB,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AA6DzB,MAAMG,aAAa,GAAGC,cAAK,CAACC,aAAa,CACvCC,SACF,CAAC;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAAN,OAAA,GAEcC,aAAa","ignoreList":[]}
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { StepIndicatorStatusState } from '../../../../components/step-indicator/StepIndicatorItem';
2
3
  import { EventReturnWithStateObject, Path } from '../../types';
3
4
  export type OnStepsChangeMode = 'previous' | 'next' | 'stepListModified';
@@ -11,9 +12,11 @@ export type OnStepChangeOptions = {
11
12
  };
12
13
  export type OnStepChange = (index: StepIndex, mode: OnStepsChangeMode, options: OnStepChangeOptions) => EventReturnWithStateObject | void | Promise<EventReturnWithStateObject | void>;
13
14
  export type StepIndex = number;
14
- export type Steps = Record<string, {
15
- title: string;
15
+ export type Steps = Map<StepIndex, {
16
+ index: StepIndex;
16
17
  id: string;
18
+ title: React.ReactNode;
19
+ stringifiedTitle: string;
17
20
  inactive?: boolean;
18
21
  /** Used internally to set the status */
19
22
  status?: string;
@@ -26,10 +29,10 @@ export type SetActiveIndexOptions = {
26
29
  skipStepChangeCallFromHook?: boolean;
27
30
  skipErrorCheck?: boolean;
28
31
  };
29
- export type InternalStepStatus = 'error' | 'valid' | 'unknown' | undefined;
30
- export type InternalStepStatuses = Record<StepIndex, InternalStepStatus>;
31
- export type InternalVisitedSteps = Record<StepIndex, boolean>;
32
- export type InternalFieldError = Record<Path, {
32
+ export type InternalStepStatus = 'error' | 'unknown' | undefined;
33
+ export type InternalStepStatuses = Map<StepIndex, InternalStepStatus>;
34
+ export type InternalVisitedSteps = Map<StepIndex, boolean>;
35
+ export type InternalFieldError = Map<Path, {
33
36
  index: StepIndex;
34
37
  hasError: boolean;
35
38
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../../../../src/extensions/forms/Wizard/Context/types.ts"],"sourcesContent":["import { StepIndicatorStatusState } from '../../../../components/step-indicator/StepIndicatorItem'\nimport { EventReturnWithStateObject, Path } from '../../types'\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<\n string,\n {\n title: string\n id: string\n inactive?: boolean\n\n /** Used internally to set the status */\n status?: string\n\n /** Used internally to set the statusState */\n statusState?: StepIndicatorStatusState\n }\n>\nexport type SetActiveIndexOptions = {\n skipStepChangeCall?: boolean\n skipStepChangeCallBeforeMounted?: boolean\n skipStepChangeCallFromHook?: boolean\n skipErrorCheck?: boolean\n}\n\nexport type InternalStepStatus = 'error' | 'valid' | 'unknown' | undefined\nexport type InternalStepStatuses = Record<StepIndex, InternalStepStatus>\nexport type InternalVisitedSteps = Record<StepIndex, boolean>\nexport type InternalFieldError = Record<\n Path,\n {\n index: StepIndex\n hasError: boolean\n }\n>\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../../../src/extensions/forms/Wizard/Context/types.ts"],"sourcesContent":["import { StepIndicatorStatusState } from '../../../../components/step-indicator/StepIndicatorItem'\nimport { EventReturnWithStateObject, Path } from '../../types'\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 = Map<\n StepIndex,\n {\n index: StepIndex\n id: string\n title: React.ReactNode\n stringifiedTitle: string\n inactive?: boolean\n\n /** Used internally to set the status */\n status?: string\n\n /** Used internally to set the statusState */\n statusState?: StepIndicatorStatusState\n }\n>\nexport type SetActiveIndexOptions = {\n skipStepChangeCall?: boolean\n skipStepChangeCallBeforeMounted?: boolean\n skipStepChangeCallFromHook?: boolean\n skipErrorCheck?: boolean\n}\n\nexport type InternalStepStatus = 'error' | 'unknown' | undefined\nexport type InternalStepStatuses = Map<StepIndex, InternalStepStatus>\nexport type InternalVisitedSteps = Map<StepIndex, boolean>\nexport type InternalFieldError = Map<\n Path,\n {\n index: StepIndex\n hasError: boolean\n }\n>\n"],"mappings":"","ignoreList":[]}
@@ -4,7 +4,7 @@ import { Props as FlexContainerProps } from '../../../../components/flex/Contain
4
4
  import type { VisibleWhen } from '../../Form/Visibility';
5
5
  export type Props = ComponentProps & FlexContainerProps & {
6
6
  /**
7
- * A title that will be displayed in the indicator.
7
+ * An unique title of the step.
8
8
  */
9
9
  title?: React.ReactNode;
10
10
  /**
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  "use client";
3
3
 
4
- require("core-js/modules/web.dom-collections.iterator.js");
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
8
  exports.handleDeprecatedProps = handleDeprecatedProps;
9
+ require("core-js/modules/web.dom-collections.iterator.js");
10
10
  var _react = _interopRequireWildcard(require("react"));
11
11
  var _classnames = _interopRequireDefault(require("classnames"));
12
12
  var _WizardContext = _interopRequireDefault(require("../Context/WizardContext"));
@@ -14,9 +14,9 @@ var _StepContext = _interopRequireDefault(require("./StepContext"));
14
14
  var _Flex = _interopRequireDefault(require("../../../../components/flex/Flex"));
15
15
  var _componentHelper = require("../../../../shared/component-helper");
16
16
  var _Provider = _interopRequireDefault(require("../../Field/Provider"));
17
- var _Fragment;
17
+ var _Fragment, _Fragment2, _Fragment3;
18
18
  const _excluded = ["active", "activeWhen", "include", "includeWhen"],
19
- _excluded2 = ["className", "title", "inactive", "index", "include", "includeWhen", "required", "keepInDOM", "prerenderFieldProps", "children"];
19
+ _excluded2 = ["id", "className", "title", "index", "inactive", "include", "includeWhen", "required", "keepInDOM", "prerenderFieldProps", "children"];
20
20
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
21
21
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
22
22
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -28,7 +28,6 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
28
28
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
29
29
  function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
30
30
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
31
- const useLayoutEffect = typeof window === 'undefined' ? _react.default.useEffect : _react.default.useLayoutEffect;
32
31
  function handleDeprecatedProps(_ref) {
33
32
  let {
34
33
  active,
@@ -45,10 +44,11 @@ function handleDeprecatedProps(_ref) {
45
44
  function Step(props) {
46
45
  const _handleDeprecatedProp = handleDeprecatedProps(props),
47
46
  {
47
+ id,
48
48
  className,
49
49
  title,
50
+ index: indexProp,
50
51
  inactive,
51
- index,
52
52
  include = true,
53
53
  includeWhen,
54
54
  required,
@@ -59,33 +59,76 @@ function Step(props) {
59
59
  restProps = _objectWithoutProperties(_handleDeprecatedProp, _excluded2);
60
60
  const {
61
61
  check,
62
+ enableMapOverChildren,
62
63
  activeIndex,
63
64
  initialActiveIndex,
64
- stepsRef,
65
+ totalStepsRef,
65
66
  stepElementRef,
67
+ stepIndexRef,
68
+ stepsRef,
66
69
  keepInDOM
67
70
  } = (0, _react.useContext)(_WizardContext.default) || {};
68
- const ariaLabel = (0, _react.useMemo)(() => {
69
- var _ref2, _stepsRef$current, _stepsRef$current$ind, _stepsRef$current2;
70
- return (_ref2 = !prerenderFieldProps && ((stepsRef === null || stepsRef === void 0 ? void 0 : (_stepsRef$current = stepsRef.current) === null || _stepsRef$current === void 0 ? void 0 : (_stepsRef$current$ind = _stepsRef$current[index]) === null || _stepsRef$current$ind === void 0 ? void 0 : _stepsRef$current$ind.title) || (stepsRef === null || stepsRef === void 0 ? void 0 : (_stepsRef$current2 = stepsRef.current) === null || _stepsRef$current2 === void 0 ? void 0 : _stepsRef$current2[index]))) !== null && _ref2 !== void 0 ? _ref2 : (0, _componentHelper.convertJsxToString)(title);
71
- }, [index, prerenderFieldProps, title, stepsRef]);
72
- const currentElementRef = (0, _react.useRef)();
73
- useLayoutEffect(() => {
74
- if (!prerenderFieldProps && typeof stepElementRef !== 'undefined') {
75
- if (currentElementRef.current) {
76
- stepElementRef.current = currentElementRef.current;
71
+ const wizardStepContext = (0, _react.useContext)(_StepContext.default) || {};
72
+ const indexFromContext = wizardStepContext.index;
73
+ const totalSteps = totalStepsRef === null || totalStepsRef === void 0 ? void 0 : totalStepsRef.current;
74
+ const ariaLabel = (0, _react.useMemo)(() => (0, _componentHelper.convertJsxToString)(title), [title]);
75
+ const index = (0, _react.useMemo)(() => {
76
+ if (indexProp !== undefined) {
77
+ return indexProp;
78
+ }
79
+ if (indexFromContext !== undefined) {
80
+ return indexFromContext;
81
+ }
82
+ if (stepsRef !== null && stepsRef !== void 0 && stepsRef.current) {
83
+ const {
84
+ index
85
+ } = Array.from(stepsRef.current.values()).find(_ref2 => {
86
+ var _originalTitleProp$pr;
87
+ let {
88
+ id: currentId,
89
+ title: originalTitleProp,
90
+ stringifiedTitle
91
+ } = _ref2;
92
+ if (id !== undefined) {
93
+ return id === currentId;
94
+ }
95
+ const translationId = originalTitleProp === null || originalTitleProp === void 0 ? void 0 : (_originalTitleProp$pr = originalTitleProp['props']) === null || _originalTitleProp$pr === void 0 ? void 0 : _originalTitleProp$pr.id;
96
+ if (translationId) {
97
+ var _title$props;
98
+ return translationId === (title === null || title === void 0 ? void 0 : (_title$props = title['props']) === null || _title$props === void 0 ? void 0 : _title$props.id);
99
+ }
100
+ if (stringifiedTitle) {
101
+ return stringifiedTitle === ariaLabel;
102
+ }
103
+ return originalTitleProp === title;
104
+ }) || {};
105
+ if (index !== undefined) {
106
+ return index;
77
107
  }
78
- return () => {
79
- stepElementRef.current = null;
80
- };
81
108
  }
82
- }, [prerenderFieldProps, stepElementRef]);
109
+ if (totalSteps && stepIndexRef) {
110
+ stepIndexRef.current += 1;
111
+ }
112
+ return stepIndexRef === null || stepIndexRef === void 0 ? void 0 : stepIndexRef.current;
113
+ }, [indexProp, stepsRef, totalSteps, stepIndexRef, indexFromContext, title, id, ariaLabel]);
114
+ if (index >= totalSteps) {
115
+ enableMapOverChildren();
116
+ }
83
117
  if (prerenderFieldProps) {
84
118
  return children;
85
119
  }
120
+ if (include === false) {
121
+ return _Fragment || (_Fragment = _react.default.createElement(_react.default.Fragment, null));
122
+ }
123
+ if (includeWhen && !check({
124
+ visibleWhen: includeWhen
125
+ })) {
126
+ return _Fragment2 || (_Fragment2 = _react.default.createElement(_react.default.Fragment, null));
127
+ }
86
128
  const fieldProps = typeof required === 'boolean' ? {
87
129
  required
88
130
  } : undefined;
131
+ const innerRef = !prerenderFieldProps && activeIndex === index ? stepElementRef : null;
89
132
  const content = _react.default.createElement(_StepContext.default.Provider, {
90
133
  value: {
91
134
  index
@@ -94,10 +137,10 @@ function Step(props) {
94
137
  className: (0, _classnames.default)('dnb-forms-step', className),
95
138
  element: "section",
96
139
  "aria-label": ariaLabel,
97
- innerRef: currentElementRef,
140
+ innerRef: innerRef,
98
141
  tabIndex: -1
99
142
  }, restProps), fieldProps ? _react.default.createElement(_Provider.default, fieldProps, children) : children));
100
- if (activeIndex !== index || include === false || includeWhen && !check({
143
+ if (activeIndex !== index || includeWhen && !check({
101
144
  visibleWhen: includeWhen
102
145
  })) {
103
146
  if (keepInDOMProp !== null && keepInDOMProp !== void 0 ? keepInDOMProp : keepInDOM) {
@@ -110,7 +153,7 @@ function Step(props) {
110
153
  (0, _componentHelper.warn)(`initialActiveIndex={${initialActiveIndex}} is used. Fields of previews steps may not validate. You can use "keepInDOM" to always run validation.`);
111
154
  }
112
155
  }
113
- return _Fragment || (_Fragment = _react.default.createElement(_react.default.Fragment, null));
156
+ return _Fragment3 || (_Fragment3 = _react.default.createElement(_react.default.Fragment, null));
114
157
  }
115
158
  return _react.default.createElement(_react.default.Fragment, null, content);
116
159
  }