@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
@@ -23,9 +23,9 @@ function Buttons(props) {
23
23
  } = props;
24
24
  const {
25
25
  activeIndex,
26
- stepsRef
26
+ totalStepsRef
27
27
  } = (0, _react.useContext)(_Context.default) || {};
28
- const totalSteps = Object.keys((stepsRef === null || stepsRef === void 0 ? void 0 : stepsRef.current) || {}).length || 0;
28
+ const totalSteps = (totalStepsRef === null || totalStepsRef === void 0 ? void 0 : totalStepsRef.current) || 0;
29
29
  const showPreviousButton = activeIndex > 0;
30
30
  const showNextButton = activeIndex < totalSteps - 1;
31
31
  if (!showPreviousButton && !showNextButton) {
@@ -1 +1 @@
1
- {"version":3,"file":"Buttons.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_ButtonRow","_NextButton2","_PreviousButton2","_Context","_PreviousButton","_NextButton","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","Buttons","props","className","activeIndex","stepsRef","useContext","WizardContext","totalSteps","keys","current","showPreviousButton","showNextButton","createElement","classnames","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Wizard/Buttons/Buttons.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport classnames from 'classnames'\nimport { ComponentProps } from '../../types'\nimport ButtonRow from '../../Form/ButtonRow'\nimport NextButton from '../NextButton'\nimport PreviousButton from '../PreviousButton'\nimport WizardContext from '../Context'\n\nexport type Props = ComponentProps & {\n children?: string\n}\n\nfunction Buttons(props: Props) {\n const { className } = props\n const { activeIndex, stepsRef } = useContext(WizardContext) || {}\n\n const totalSteps = Object.keys(stepsRef?.current || {}).length || 0\n const showPreviousButton = activeIndex > 0\n const showNextButton = activeIndex < totalSteps - 1\n\n if (!showPreviousButton && !showNextButton) {\n return null\n }\n\n return (\n <ButtonRow\n className={classnames('dnb-forms-buttons', className)}\n {...props}\n >\n {showPreviousButton && <PreviousButton />}\n {showNextButton && <NextButton />}\n </ButtonRow>\n )\n}\n\nButtons._supportsSpacingProps = true\nexport default Buttons\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Buttons.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_ButtonRow","_NextButton2","_PreviousButton2","_Context","_PreviousButton","_NextButton","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","Buttons","props","className","activeIndex","totalStepsRef","useContext","WizardContext","totalSteps","current","showPreviousButton","showNextButton","createElement","classnames","_supportsSpacingProps","_default","exports"],"sources":["../../../../../../src/extensions/forms/Wizard/Buttons/Buttons.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport classnames from 'classnames'\nimport { ComponentProps } from '../../types'\nimport ButtonRow from '../../Form/ButtonRow'\nimport NextButton from '../NextButton'\nimport PreviousButton from '../PreviousButton'\nimport WizardContext from '../Context'\n\nexport type Props = ComponentProps & {\n children?: string\n}\n\nfunction Buttons(props: Props) {\n const { className } = props\n const { activeIndex, totalStepsRef } = useContext(WizardContext) || {}\n\n const totalSteps = totalStepsRef?.current || 0\n const showPreviousButton = activeIndex > 0\n const showNextButton = activeIndex < totalSteps - 1\n\n if (!showPreviousButton && !showNextButton) {\n return null\n }\n\n return (\n <ButtonRow\n className={classnames('dnb-forms-buttons', className)}\n {...props}\n >\n {showPreviousButton && <PreviousButton />}\n {showNextButton && <NextButton />}\n </ButtonRow>\n )\n}\n\nButtons._supportsSpacingProps = true\nexport default Buttons\n"],"mappings":"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","ignoreList":[]}
@@ -39,19 +39,19 @@ function DisplaySteps(_ref) {
39
39
  if (!hasErrorInOtherStepRef.current) {
40
40
  return;
41
41
  }
42
- if (hasInvalidStepsState(['error'])) {
42
+ if (hasInvalidStepsState(undefined, ['error'])) {
43
43
  return {
44
44
  status: translations.Step.stepHasError,
45
45
  status_state: 'error'
46
46
  };
47
47
  }
48
- if (hasInvalidStepsState(['unknown'])) {
48
+ if (hasInvalidStepsState(undefined, ['unknown'])) {
49
49
  return {
50
50
  status: 'Unknown state',
51
51
  status_state: 'warn'
52
52
  };
53
53
  }
54
- }, [hasInvalidStepsState, translations.Step.stepHasError]);
54
+ }, [hasErrorInOtherStepRef, hasInvalidStepsState, translations.Step.stepHasError]);
55
55
  return _react.default.createElement("aside", {
56
56
  className: "dnb-forms-wizard-layout__indicator"
57
57
  }, _react.default.createElement(_StepIndicator.default.Sidebar, {
@@ -59,15 +59,16 @@ function DisplaySteps(_ref) {
59
59
  }), _react.default.createElement(_StepIndicator.default, {
60
60
  bottom: true,
61
61
  current_step: activeIndexRef.current,
62
- data: Object.values(stepsRef.current).map(_ref2 => {
62
+ data: Array.from(stepsRef.current.values()).map(_ref2 => {
63
63
  let {
64
+ stringifiedTitle,
64
65
  title,
65
66
  inactive,
66
67
  status,
67
68
  statusState
68
69
  } = _ref2;
69
70
  return {
70
- title,
71
+ title: stringifiedTitle || title,
71
72
  inactive,
72
73
  status,
73
74
  status_state: statusState
@@ -1 +1 @@
1
- {"version":3,"file":"DisplaySteps.js","names":["_react","_interopRequireWildcard","require","_Context","_interopRequireDefault","_StepIndicator","_hooks","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","DisplaySteps","_ref","mode","variant","noAnimation","handleChange","sidebarId","forceUpdate","useReducer","id","activeIndexRef","stepsRef","updateTitlesRef","hasErrorInOtherStepRef","hasInvalidStepsState","useContext","WizardContext","current","translations","useTranslation","sidebar_id","undefined","getTriggerStatus","useCallback","status","Step","stepHasError","status_state","createElement","className","Sidebar","bottom","current_step","data","values","map","_ref2","title","inactive","statusState","no_animation","on_change","triggerButtonProps"],"sources":["../../../../../../src/extensions/forms/Wizard/Container/DisplaySteps.tsx"],"sourcesContent":["import React, { useCallback, useContext, useReducer } from 'react'\nimport WizardContext from '../Context'\nimport StepIndicator from '../../../../components/StepIndicator'\nimport { StepIndicatorItemProps } from '../../../../components/step-indicator/StepIndicatorItem'\nimport { useTranslation } from '../../hooks'\n\nexport function DisplaySteps({\n mode,\n variant,\n noAnimation,\n handleChange,\n sidebarId,\n}) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n const {\n id,\n activeIndexRef,\n stepsRef,\n updateTitlesRef,\n hasErrorInOtherStepRef,\n hasInvalidStepsState,\n } = useContext(WizardContext) || {}\n updateTitlesRef.current = () => {\n forceUpdate()\n }\n const translations = useTranslation()\n\n const sidebar_id =\n variant === 'drawer' && !sidebarId ? undefined : sidebarId ?? id\n\n const getTriggerStatus = useCallback(() => {\n if (!hasErrorInOtherStepRef.current) {\n return // stop here\n }\n if (hasInvalidStepsState(['error'])) {\n return {\n status: translations.Step.stepHasError,\n status_state: 'error',\n } satisfies Omit<StepIndicatorItemProps, 'title' | 'currentItemNum'>\n }\n if (hasInvalidStepsState(['unknown'])) {\n return {\n status: 'Unknown state',\n status_state: 'warn',\n } satisfies Omit<StepIndicatorItemProps, 'title' | 'currentItemNum'>\n }\n }, [hasInvalidStepsState, translations.Step.stepHasError])\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(\n ({ title, inactive, status, statusState }) =>\n ({\n title,\n inactive,\n status,\n status_state: statusState,\n }) satisfies Omit<StepIndicatorItemProps, 'currentItemNum'>\n )}\n mode={mode}\n no_animation={noAnimation}\n on_change={handleChange}\n sidebar_id={sidebar_id}\n triggerButtonProps={getTriggerStatus()}\n />\n </aside>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DisplaySteps.js","names":["_react","_interopRequireWildcard","require","_Context","_interopRequireDefault","_StepIndicator","_hooks","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","DisplaySteps","_ref","mode","variant","noAnimation","handleChange","sidebarId","forceUpdate","useReducer","id","activeIndexRef","stepsRef","updateTitlesRef","hasErrorInOtherStepRef","hasInvalidStepsState","useContext","WizardContext","current","translations","useTranslation","sidebar_id","undefined","getTriggerStatus","useCallback","status","Step","stepHasError","status_state","createElement","className","Sidebar","bottom","current_step","data","Array","from","values","map","_ref2","stringifiedTitle","title","inactive","statusState","no_animation","on_change","triggerButtonProps"],"sources":["../../../../../../src/extensions/forms/Wizard/Container/DisplaySteps.tsx"],"sourcesContent":["import React, { useCallback, useContext, useReducer } from 'react'\nimport WizardContext from '../Context'\nimport StepIndicator from '../../../../components/StepIndicator'\nimport { StepIndicatorItemProps } from '../../../../components/step-indicator/StepIndicatorItem'\nimport { useTranslation } from '../../hooks'\n\nexport function DisplaySteps({\n mode,\n variant,\n noAnimation,\n handleChange,\n sidebarId,\n}) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n const {\n id,\n activeIndexRef,\n stepsRef,\n updateTitlesRef,\n hasErrorInOtherStepRef,\n hasInvalidStepsState,\n } = useContext(WizardContext) || {}\n updateTitlesRef.current = () => {\n forceUpdate()\n }\n const translations = useTranslation()\n\n const sidebar_id =\n variant === 'drawer' && !sidebarId ? undefined : sidebarId ?? id\n\n const getTriggerStatus = useCallback(() => {\n if (!hasErrorInOtherStepRef.current) {\n return // stop here\n }\n if (hasInvalidStepsState(undefined, ['error'])) {\n return {\n status: translations.Step.stepHasError,\n status_state: 'error',\n } satisfies Omit<StepIndicatorItemProps, 'title' | 'currentItemNum'>\n }\n if (hasInvalidStepsState(undefined, ['unknown'])) {\n return {\n status: 'Unknown state',\n status_state: 'warn',\n } satisfies Omit<StepIndicatorItemProps, 'title' | 'currentItemNum'>\n }\n }, [\n hasErrorInOtherStepRef,\n hasInvalidStepsState,\n translations.Step.stepHasError,\n ])\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={Array.from(stepsRef.current.values()).map(\n ({ stringifiedTitle, title, inactive, status, statusState }) =>\n ({\n title: stringifiedTitle || title,\n inactive,\n status,\n status_state: statusState,\n }) satisfies Omit<StepIndicatorItemProps, 'currentItemNum'>\n )}\n mode={mode}\n no_animation={noAnimation}\n on_change={handleChange}\n sidebar_id={sidebar_id}\n triggerButtonProps={getTriggerStatus()}\n />\n </aside>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,3 +1,4 @@
1
- export declare function IterateOverSteps({ children }: {
2
- children: any;
3
- }): any;
1
+ import React from 'react';
2
+ export declare function IterateOverSteps({ children, }: {
3
+ children: React.ReactNode;
4
+ }): React.ReactNode;
@@ -1,16 +1,16 @@
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.IterateOverSteps = IterateOverSteps;
8
+ require("core-js/modules/web.dom-collections.iterator.js");
9
9
  var _react = _interopRequireWildcard(require("react"));
10
- var _hooks = require("../../hooks");
11
- var _componentHelper = require("../../../../shared/component-helper");
12
10
  var _WizardContext = _interopRequireDefault(require("../Context/WizardContext"));
11
+ var _StepContext = _interopRequireDefault(require("../Step/StepContext"));
13
12
  var _Step = _interopRequireWildcard(require("../Step/Step"));
13
+ var _useCollectStepsData = require("./useCollectStepsData");
14
14
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
15
  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); }
16
16
  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; }
@@ -23,15 +23,19 @@ function IterateOverSteps(_ref) {
23
23
  stepsRef,
24
24
  activeIndexRef,
25
25
  totalStepsRef,
26
- stepStatusRef,
26
+ stepIndexRef,
27
27
  prerenderFieldProps,
28
28
  prerenderFieldPropsRef,
29
- hasErrorInOtherStepRef
29
+ hasErrorInOtherStepRef,
30
+ mapOverChildrenRef
30
31
  } = (0, _react.useContext)(_WizardContext.default);
32
+ const {
33
+ collectStepsData
34
+ } = (0, _useCollectStepsData.useCollectStepsData)();
35
+ stepsRef.current = new Map();
31
36
  hasErrorInOtherStepRef.current = false;
32
- stepsRef.current = {};
33
- let incrementIndex = -1;
34
- const translations = (0, _hooks.useTranslation)();
37
+ stepIndexRef.current = -1;
38
+ totalStepsRef.current = 0;
35
39
  const childrenArray = _react.default.Children.map(children, child => {
36
40
  if (_react.default.isValidElement(child)) {
37
41
  var _child, _child2;
@@ -45,7 +49,7 @@ function IterateOverSteps(_ref) {
45
49
  }
46
50
  if (((_child2 = child) === null || _child2 === void 0 ? void 0 : _child2.type) === _Step.default) {
47
51
  const {
48
- title: titleProp,
52
+ title,
49
53
  inactive,
50
54
  include,
51
55
  includeWhen,
@@ -59,45 +63,42 @@ function IterateOverSteps(_ref) {
59
63
  })) {
60
64
  return null;
61
65
  }
62
- incrementIndex++;
63
- const index = incrementIndex;
64
- const title = titleProp !== undefined ? (0, _componentHelper.convertJsxToString)(titleProp) : 'Title missing';
65
- const state = stepStatusRef.current[index];
66
- const status = index !== activeIndexRef.current ? state === 'error' ? translations.Step.stepHasError : state === 'unknown' ? 'Unknown state' : undefined : undefined;
67
- const statusState = state === 'error' ? 'error' : undefined;
68
- const key = `${index}-${activeIndexRef.current}`;
69
- if (status) {
70
- hasErrorInOtherStepRef.current = true;
71
- }
72
- stepsRef.current[index] = {
66
+ const index = totalStepsRef.current;
67
+ totalStepsRef.current = totalStepsRef.current + 1;
68
+ collectStepsData({
73
69
  id,
74
- title,
70
+ index,
75
71
  inactive,
76
- status,
77
- statusState
78
- };
79
- const clone = props => _react.default.cloneElement(child, props);
72
+ title
73
+ });
80
74
  if (prerenderFieldProps && typeof document !== 'undefined' && index !== activeIndexRef.current && typeof prerenderFieldPropsRef.current['step-' + index] === 'undefined') {
81
- prerenderFieldPropsRef.current['step-' + index] = () => clone({
75
+ const key = `${index}-${activeIndexRef.current}`;
76
+ prerenderFieldPropsRef.current['step-' + index] = () => _react.default.cloneElement(child, {
82
77
  key,
83
78
  index,
84
79
  prerenderFieldProps: true
85
80
  });
86
81
  }
87
- return clone({
88
- key,
89
- index
90
- });
82
+ return child;
91
83
  }
92
84
  }
93
85
  return child;
94
86
  });
95
- if ((childrenArray === null || childrenArray === void 0 ? void 0 : childrenArray.length) === 0) {
87
+ if (totalStepsRef.current === 0) {
96
88
  activeIndexRef.current = 0;
97
- } else if ((childrenArray === null || childrenArray === void 0 ? void 0 : childrenArray.length) < activeIndexRef.current + 1) {
98
- activeIndexRef.current = childrenArray.length - 1;
89
+ } else if (totalStepsRef.current < activeIndexRef.current + 1) {
90
+ activeIndexRef.current = totalStepsRef.current - 1;
91
+ }
92
+ if (mapOverChildrenRef.current) {
93
+ return childrenArray.map((child, index) => {
94
+ return _react.default.createElement(_StepContext.default.Provider, {
95
+ key: index,
96
+ value: {
97
+ index
98
+ }
99
+ }, child);
100
+ });
99
101
  }
100
- totalStepsRef.current = childrenArray === null || childrenArray === void 0 ? void 0 : childrenArray.length;
101
- return childrenArray;
102
+ return children;
102
103
  }
103
104
  //# sourceMappingURL=IterateOverSteps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IterateOverSteps.js","names":["_react","_interopRequireWildcard","require","_hooks","_componentHelper","_WizardContext","_interopRequireDefault","_Step","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","IterateOverSteps","_ref","children","check","stepsRef","activeIndexRef","totalStepsRef","stepStatusRef","prerenderFieldProps","prerenderFieldPropsRef","hasErrorInOtherStepRef","useContext","WizardContext","current","incrementIndex","translations","useTranslation","childrenArray","React","Children","map","child","isValidElement","_child","_child2","step","type","Step","_step","apply","props","title","titleProp","inactive","include","includeWhen","id","handleDeprecatedStepProps","visibleWhen","index","undefined","convertJsxToString","state","status","stepHasError","statusState","key","clone","cloneElement","document","length"],"sources":["../../../../../../src/extensions/forms/Wizard/Container/IterateOverSteps.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport { useTranslation } from '../../hooks'\nimport { convertJsxToString } from '../../../../shared/component-helper'\nimport WizardContext from '../Context/WizardContext'\nimport Step, {\n Props as StepProps,\n handleDeprecatedProps as handleDeprecatedStepProps,\n} from '../Step/Step'\n\nexport function IterateOverSteps({ children }) {\n const {\n check,\n stepsRef,\n activeIndexRef,\n totalStepsRef,\n stepStatusRef,\n prerenderFieldProps,\n prerenderFieldPropsRef,\n hasErrorInOtherStepRef,\n } = useContext(WizardContext)\n hasErrorInOtherStepRef.current = false\n\n stepsRef.current = {}\n let incrementIndex = -1\n\n const translations = useTranslation()\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 const {\n title: titleProp,\n inactive,\n include,\n includeWhen,\n id,\n } = handleDeprecatedStepProps(child.props)\n\n if (include === false) {\n return null\n }\n\n if (\n includeWhen &&\n !check({\n visibleWhen: includeWhen,\n })\n ) {\n return null\n }\n\n incrementIndex++\n\n const index = incrementIndex\n const title =\n titleProp !== undefined\n ? convertJsxToString(titleProp)\n : 'Title missing'\n const state = stepStatusRef.current[index]\n const status =\n index !== activeIndexRef.current\n ? state === 'error'\n ? translations.Step.stepHasError\n : state === 'unknown'\n ? 'Unknown state'\n : undefined\n : undefined\n const statusState = state === 'error' ? 'error' : undefined // undefined shows 'warn' by default\n const key = `${index}-${activeIndexRef.current}`\n\n if (status) {\n hasErrorInOtherStepRef.current = true\n }\n\n stepsRef.current[index] = {\n id,\n title,\n inactive,\n status,\n statusState,\n }\n\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"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"IterateOverSteps.js","names":["_react","_interopRequireWildcard","require","_WizardContext","_interopRequireDefault","_StepContext","_Step","_useCollectStepsData","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","IterateOverSteps","_ref","children","check","stepsRef","activeIndexRef","totalStepsRef","stepIndexRef","prerenderFieldProps","prerenderFieldPropsRef","hasErrorInOtherStepRef","mapOverChildrenRef","useContext","WizardContext","collectStepsData","useCollectStepsData","current","Map","childrenArray","React","Children","map","child","isValidElement","_child","_child2","step","type","Step","_step","apply","props","title","inactive","include","includeWhen","id","handleDeprecatedStepProps","visibleWhen","index","document","key","cloneElement","createElement","Provider","value"],"sources":["../../../../../../src/extensions/forms/Wizard/Container/IterateOverSteps.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport WizardContext from '../Context/WizardContext'\nimport WizardStepContext from '../Step/StepContext'\nimport Step, {\n Props as StepProps,\n handleDeprecatedProps as handleDeprecatedStepProps,\n} from '../Step/Step'\nimport { useCollectStepsData } from './useCollectStepsData'\n\nexport function IterateOverSteps({\n children,\n}: {\n children: React.ReactNode\n}): React.ReactNode {\n const {\n check,\n stepsRef,\n activeIndexRef,\n totalStepsRef,\n stepIndexRef,\n prerenderFieldProps,\n prerenderFieldPropsRef,\n hasErrorInOtherStepRef,\n mapOverChildrenRef,\n } = useContext(WizardContext)\n\n const { collectStepsData } = useCollectStepsData()\n\n // Reset before iterating and calling \"collectStepsData\" and other variables are collected.\n stepsRef.current = new Map()\n hasErrorInOtherStepRef.current = false\n stepIndexRef.current = -1\n totalStepsRef.current = 0\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 const { title, inactive, include, includeWhen, id } =\n handleDeprecatedStepProps(child.props)\n\n if (include === false) {\n return null\n }\n\n if (\n includeWhen &&\n !check({\n visibleWhen: includeWhen,\n })\n ) {\n return null\n }\n\n const index = totalStepsRef.current\n totalStepsRef.current = totalStepsRef.current + 1\n\n collectStepsData({\n id,\n index,\n inactive,\n title,\n })\n\n if (\n prerenderFieldProps &&\n typeof document !== 'undefined' &&\n index !== activeIndexRef.current &&\n typeof prerenderFieldPropsRef.current['step-' + index] ===\n 'undefined'\n ) {\n const key = `${index}-${activeIndexRef.current}`\n prerenderFieldPropsRef.current['step-' + index] = () =>\n React.cloneElement(child as React.ReactElement<StepProps>, {\n key,\n index,\n prerenderFieldProps: true,\n })\n }\n\n return child\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 (totalStepsRef.current === 0) {\n activeIndexRef.current = 0\n } else if (totalStepsRef.current < activeIndexRef.current + 1) {\n activeIndexRef.current = totalStepsRef.current - 1\n }\n\n if (mapOverChildrenRef.current) {\n return childrenArray.map((child, index) => {\n return (\n <WizardStepContext.Provider key={index} value={{ index }}>\n {child}\n </WizardStepContext.Provider>\n )\n })\n }\n\n return children\n}\n"],"mappings":"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","ignoreList":[]}
@@ -66,26 +66,24 @@ function WizardContainer(props) {
66
66
  const [, forceUpdate] = (0, _react.useReducer)(() => ({}), {});
67
67
  const activeIndexRef = (0, _react.useRef)(initialActiveIndex);
68
68
  const totalStepsRef = (0, _react.useRef)(NaN);
69
- const stepStatusRef = (0, _react.useRef)({});
70
- const hasVisibleErrorRef = (0, _react.useRef)({});
69
+ const submitCountRef = (0, _react.useRef)(0);
70
+ const visitedStepsRef = (0, _react.useRef)(new Map());
71
+ const fieldErrorRef = (0, _react.useRef)(new Map());
72
+ const storeStepStateRef = (0, _react.useRef)(new Map());
71
73
  const hasErrorInOtherStepRef = (0, _react.useRef)(false);
72
- const visitedStepsRef = (0, _react.useRef)({});
73
74
  const elementRef = (0, _react.useRef)();
74
75
  const stepElementRef = (0, _react.useRef)();
75
76
  const preventNextStepRef = (0, _react.useRef)(false);
76
- const stepsRef = (0, _react.useRef)({});
77
- const tmpStepsRef = (0, _react.useRef)({});
77
+ const stepsRef = (0, _react.useRef)(new Map());
78
+ const tmpStepsRef = (0, _react.useRef)();
79
+ const stepIndexRef = (0, _react.useRef)(-1);
78
80
  const updateTitlesRef = (0, _react.useRef)();
79
81
  const prerenderFieldPropsRef = (0, _react.useRef)({});
80
82
  const bypassOnNavigation = validationMode === 'bypassOnNavigation';
81
83
  const sharedStateRef = (0, _react.useRef)();
82
84
  sharedStateRef.current = (0, _useSharedState.useSharedState)(hasContext && id ? (0, _useSharedState.createReferenceKey)(id, 'wizard') : undefined);
83
- visitedStepsRef.current[activeIndexRef.current] = true;
84
- const setStepState = (0, _react.useCallback)((index, state) => {
85
- stepStatusRef.current[index] = state;
86
- }, []);
87
85
  const hasFieldErrorInStep = (0, _react.useCallback)(index => {
88
- return Object.values(hasVisibleErrorRef.current).some(_ref => {
86
+ return Array.from(fieldErrorRef.current.values()).some(_ref => {
89
87
  let {
90
88
  index: i,
91
89
  hasError
@@ -93,31 +91,77 @@ function WizardContainer(props) {
93
91
  return i === index && hasError;
94
92
  });
95
93
  }, []);
96
- const revealError = (0, _react.useCallback)((index, path, hasError) => {
97
- hasVisibleErrorRef.current[path] = {
98
- index,
99
- hasError
100
- };
101
- if (hasFieldErrorInStep(index)) {
102
- setStepState(index, 'error');
94
+ const setStepAsVisited = (0, _react.useCallback)(index => {
95
+ visitedStepsRef.current.set(index, true);
96
+ }, []);
97
+ (0, _react.useEffect)(() => {
98
+ if (!initialActiveIndex) {
99
+ setStepAsVisited(activeIndexRef.current);
103
100
  }
104
- }, [hasFieldErrorInStep, setStepState]);
105
- const activeIndex = activeIndexRef.current;
106
- const hasErrorInActiveStep = hasFieldErrorInStep(activeIndex);
107
- (0, _react.useMemo)(() => {
108
- const currentState = stepStatusRef.current[activeIndex];
109
- if (!hasErrorInActiveStep && ['error', 'valid'].includes(currentState)) {
110
- setStepState(activeIndex, 'valid');
111
- } else {
112
- setStepState(activeIndex, hasErrorInActiveStep ? 'error' : undefined);
101
+ }, [initialActiveIndex, setStepAsVisited]);
102
+ const writeStepsState = (0, _react.useCallback)(function () {
103
+ let index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;
104
+ let forStates = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ['unknown', 'error'];
105
+ for (let i = 0; i < totalStepsRef.current; i++) {
106
+ if (index !== undefined && index !== i) {
107
+ continue;
108
+ }
109
+ let result = undefined;
110
+ const existingState = storeStepStateRef.current.get(i);
111
+ if (forStates.includes('unknown')) {
112
+ const state = i < activeIndexRef.current && visitedStepsRef.current.get(i) === undefined;
113
+ if (state) {
114
+ result = 'unknown';
115
+ }
116
+ }
117
+ if (forStates.includes('error')) {
118
+ const state = hasFieldErrorInStep(i);
119
+ if (state) {
120
+ result = 'error';
121
+ } else if (existingState === 'error') {
122
+ if (i === activeIndexRef.current) {
123
+ result = undefined;
124
+ } else {
125
+ result = existingState;
126
+ }
127
+ }
128
+ }
129
+ storeStepStateRef.current.set(i, result);
130
+ }
131
+ }, [hasFieldErrorInStep]);
132
+ const hasInvalidStepsState = (0, _react.useCallback)(function () {
133
+ let index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;
134
+ let forStates = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ['unknown', 'error'];
135
+ for (let i = 0; i < totalStepsRef.current; i++) {
136
+ if (index !== undefined && index !== i) {
137
+ continue;
138
+ }
139
+ const state = storeStepStateRef.current.get(i);
140
+ if (forStates.includes('unknown')) {
141
+ if (state === 'unknown') {
142
+ return true;
143
+ }
144
+ }
145
+ if (forStates.includes('error')) {
146
+ if (state === 'error') {
147
+ return true;
148
+ }
149
+ }
113
150
  }
114
- }, [activeIndex, hasErrorInActiveStep, setStepState]);
151
+ return false;
152
+ }, []);
153
+ const setFieldError = (0, _react.useCallback)((index, path, hasError) => {
154
+ fieldErrorRef.current.set(path, {
155
+ index,
156
+ hasError
157
+ });
158
+ }, []);
115
159
  const preventNavigation = (0, _react.useCallback)(function () {
116
160
  let shouldPrevent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
117
161
  preventNextStepRef.current = shouldPrevent;
118
162
  }, []);
119
163
  const getStepChangeOptions = (0, _react.useCallback)(index => {
120
- var _stepsRef$current$ind;
164
+ var _stepsRef$current$get;
121
165
  const previousIndex = activeIndexRef.current;
122
166
  const options = {
123
167
  preventNavigation,
@@ -125,10 +169,10 @@ function WizardContainer(props) {
125
169
  index: previousIndex
126
170
  }
127
171
  };
128
- const id = (_stepsRef$current$ind = stepsRef.current[index]) === null || _stepsRef$current$ind === void 0 ? void 0 : _stepsRef$current$ind.id;
172
+ const id = (_stepsRef$current$get = stepsRef.current.get(index)) === null || _stepsRef$current$get === void 0 ? void 0 : _stepsRef$current$get.id;
129
173
  if (id) {
130
- var _stepsRef$current$pre;
131
- const previousId = (_stepsRef$current$pre = stepsRef.current[previousIndex]) === null || _stepsRef$current$pre === void 0 ? void 0 : _stepsRef$current$pre.id;
174
+ var _stepsRef$current$get2;
175
+ const previousId = (_stepsRef$current$get2 = stepsRef.current.get(previousIndex)) === null || _stepsRef$current$get2 === void 0 ? void 0 : _stepsRef$current$get2.id;
132
176
  Object.assign(options, {
133
177
  id
134
178
  });
@@ -186,10 +230,11 @@ function WizardContainer(props) {
186
230
  result = await callOnStepChange(index, mode);
187
231
  }
188
232
  setFormState('abort');
189
- setShowAllErrors(bypassOnNavigation ? false : stepStatusRef.current[index] === 'error');
233
+ setShowAllErrors(bypassOnNavigation ? false : hasInvalidStepsState(index, ['error']));
190
234
  if (!preventNextStepRef.current && !(result instanceof Error)) {
191
235
  handleLayoutEffect();
192
236
  activeIndexRef.current = index;
237
+ setStepAsVisited(activeIndexRef.current);
193
238
  forceUpdate();
194
239
  }
195
240
  preventNextStepRef.current = false;
@@ -206,13 +251,15 @@ function WizardContainer(props) {
206
251
  if (bypassOnNavigation) {
207
252
  await onSubmit();
208
253
  } else {
209
- const state = stepStatusRef.current[activeIndexRef.current];
210
- if (mode === 'next' && state === 'valid') {
211
- await onSubmit();
254
+ if (mode === 'next') {
255
+ writeStepsState(activeIndexRef.current, ['error']);
256
+ if (!hasInvalidStepsState(activeIndexRef.current)) {
257
+ await onSubmit();
258
+ }
212
259
  }
213
260
  }
214
261
  }
215
- }, [bypassOnNavigation, callOnStepChange, getStepChangeOptions, handleLayoutEffect, handleSubmitCall, isInteractionRef, onStepChange, setFormState, setShowAllErrors]);
262
+ }, [bypassOnNavigation, callOnStepChange, getStepChangeOptions, handleLayoutEffect, handleSubmitCall, hasInvalidStepsState, isInteractionRef, onStepChange, setFormState, setShowAllErrors, setStepAsVisited, writeStepsState]);
216
263
  const setActiveIndex = (0, _react.useCallback)((index, options) => {
217
264
  if (index === activeIndexRef.current) {
218
265
  return;
@@ -243,23 +290,11 @@ function WizardContainer(props) {
243
290
  error
244
291
  });
245
292
  }, [setSubmitState]);
246
- const handleUnknownStepsState = (0, _react.useCallback)(() => {
247
- const index = activeIndexRef.current;
248
- for (let i = 0; i < totalStepsRef.current; i++) {
249
- if (!visitedStepsRef.current[i] && stepStatusRef.current[i] === undefined && i < index && i !== index) {
250
- setStepState(i, 'unknown');
251
- }
252
- }
253
- }, [setStepState]);
254
- const hasInvalidStepsState = (0, _react.useCallback)(forStates => {
255
- const steps = Object.values(stepStatusRef.current);
256
- return (forStates || ['unknown', 'error']).some(state => steps.includes(state));
257
- }, []);
258
293
  const handleSubmit = (0, _react.useCallback)(_ref4 => {
259
294
  let {
260
295
  preventSubmit
261
296
  } = _ref4;
262
- handleUnknownStepsState();
297
+ submitCountRef.current += 1;
263
298
  if (hasInvalidStepsState()) {
264
299
  return preventSubmit();
265
300
  }
@@ -267,11 +302,16 @@ function WizardContainer(props) {
267
302
  handleNext();
268
303
  preventSubmit();
269
304
  }
270
- }, [handleUnknownStepsState, hasInvalidStepsState, handleNext]);
305
+ }, [hasInvalidStepsState, handleNext]);
271
306
  (_dataContext$setHandl = dataContext.setHandleSubmit) === null || _dataContext$setHandl === void 0 ? void 0 : _dataContext$setHandl.call(dataContext, handleSubmit);
272
307
  const {
273
308
  check
274
309
  } = (0, _useVisibility.default)();
310
+ const mapOverChildrenRef = (0, _react.useRef)(false);
311
+ const enableMapOverChildren = (0, _react.useCallback)(() => {
312
+ mapOverChildrenRef.current = true;
313
+ }, []);
314
+ const activeIndex = activeIndexRef.current;
275
315
  const providerValue = (0, _react.useMemo)(() => {
276
316
  return {
277
317
  id,
@@ -281,21 +321,25 @@ function WizardContainer(props) {
281
321
  stepsRef,
282
322
  updateTitlesRef,
283
323
  activeIndexRef,
324
+ stepIndexRef,
284
325
  totalStepsRef,
285
- stepStatusRef,
326
+ submitCountRef,
286
327
  prerenderFieldProps,
287
328
  prerenderFieldPropsRef,
288
329
  hasErrorInOtherStepRef,
289
330
  keepInDOM,
331
+ enableMapOverChildren,
332
+ mapOverChildrenRef,
290
333
  check,
291
334
  setActiveIndex,
292
335
  handlePrevious,
293
336
  hasInvalidStepsState,
294
- revealError,
337
+ writeStepsState,
338
+ setFieldError,
295
339
  handleNext,
296
340
  setFormError
297
341
  };
298
- }, [id, activeIndex, initialActiveIndex, prerenderFieldProps, keepInDOM, check, setActiveIndex, handlePrevious, hasInvalidStepsState, revealError, handleNext, setFormError]);
342
+ }, [id, activeIndex, initialActiveIndex, prerenderFieldProps, keepInDOM, enableMapOverChildren, check, setActiveIndex, handlePrevious, hasInvalidStepsState, writeStepsState, setFieldError, handleNext, setFormError]);
299
343
  useLayoutEffect(() => {
300
344
  if (id && hasContext) {
301
345
  sharedStateRef.current.extend(providerValue);
@@ -306,8 +350,11 @@ function WizardContainer(props) {
306
350
  (_updateTitlesRef$curr = updateTitlesRef.current) === null || _updateTitlesRef$curr === void 0 ? void 0 : _updateTitlesRef$curr.call(updateTitlesRef);
307
351
  }, [stepsRef.current]);
308
352
  const stepsLengthDidChange = (0, _react.useCallback)(() => {
309
- const count = Object.keys(stepsRef.current).length;
310
- const tmpCount = Object.keys(tmpStepsRef.current).length;
353
+ const tmpCount = tmpStepsRef.current;
354
+ if (tmpCount === undefined) {
355
+ return false;
356
+ }
357
+ const count = totalStepsRef.current;
311
358
  return count !== 0 && tmpCount !== 0 && count !== tmpCount;
312
359
  }, []);
313
360
  useLayoutEffect(() => {
@@ -316,8 +363,8 @@ function WizardContainer(props) {
316
363
  callOnStepChange(activeIndexRef.current, 'stepListModified');
317
364
  (_executeLayoutAnimati = executeLayoutAnimationRef.current) === null || _executeLayoutAnimati === void 0 ? void 0 : _executeLayoutAnimati.call(executeLayoutAnimationRef);
318
365
  }
319
- tmpStepsRef.current = stepsRef.current;
320
- }, [stepsRef.current, callOnStepChange, stepsLengthDidChange]);
366
+ tmpStepsRef.current = totalStepsRef.current;
367
+ }, [totalStepsRef.current, callOnStepChange, stepsLengthDidChange]);
321
368
  if (!hasContext) {
322
369
  (0, _componentHelper.warn)('You may wrap Wizard.Container in Form.Handler');
323
370
  return _react.default.createElement(_Handler.default, null, _react.default.createElement(WizardContainer, _extends({}, props, {