@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
@@ -0,0 +1,60 @@
1
+ "use client";
2
+
3
+ import { useCallback, useContext } from 'react';
4
+ import { convertJsxToString } from '../../../../shared/component-helper';
5
+ import WizardContext from '../Context/WizardContext';
6
+ import { useTranslation } from '../../hooks';
7
+ export function useCollectStepsData() {
8
+ const {
9
+ activeIndexRef,
10
+ hasErrorInOtherStepRef,
11
+ stepsRef,
12
+ submitCountRef,
13
+ writeStepsState,
14
+ hasInvalidStepsState
15
+ } = useContext(WizardContext) || {};
16
+ const translations = useTranslation();
17
+ const collectStepsData = useCallback(_ref => {
18
+ let {
19
+ id,
20
+ index,
21
+ inactive,
22
+ title
23
+ } = _ref;
24
+ if (!hasInvalidStepsState) {
25
+ return;
26
+ }
27
+ writeStepsState(index);
28
+ const stringifiedTitle = title !== undefined ? convertJsxToString(title) : 'Title missing';
29
+ let status = undefined;
30
+ let statusState = undefined;
31
+ if (index !== activeIndexRef.current && !inactive) {
32
+ if (hasInvalidStepsState(index, ['error'])) {
33
+ status = translations.Step.stepHasError;
34
+ statusState = 'error';
35
+ } else if (submitCountRef.current > 0 && hasInvalidStepsState(index, ['unknown'])) {
36
+ status = 'Unknown state';
37
+ statusState = 'warn';
38
+ }
39
+ }
40
+ if (status) {
41
+ hasErrorInOtherStepRef.current = true;
42
+ }
43
+ stepsRef.current.set(index, {
44
+ index,
45
+ id,
46
+ title,
47
+ stringifiedTitle,
48
+ inactive,
49
+ status,
50
+ statusState
51
+ });
52
+ return {
53
+ title
54
+ };
55
+ }, [activeIndexRef, hasErrorInOtherStepRef, hasInvalidStepsState, stepsRef, submitCountRef, translations.Step.stepHasError, writeStepsState]);
56
+ return {
57
+ collectStepsData
58
+ };
59
+ }
60
+ //# sourceMappingURL=useCollectStepsData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCollectStepsData.js","names":["useCallback","useContext","convertJsxToString","WizardContext","useTranslation","useCollectStepsData","activeIndexRef","hasErrorInOtherStepRef","stepsRef","submitCountRef","writeStepsState","hasInvalidStepsState","translations","collectStepsData","_ref","id","index","inactive","title","stringifiedTitle","undefined","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,SAASA,WAAW,EAAEC,UAAU,QAAQ,OAAO;AAC/C,SAASC,kBAAkB,QAAQ,qCAAqC;AACxE,OAAOC,aAAa,MAAM,0BAA0B;AACpD,SAASC,cAAc,QAAQ,aAAa;AAE5C,OAAO,SAASC,mBAAmBA,CAAA,EAAG;EACpC,MAAM;IACJC,cAAc;IACdC,sBAAsB;IACtBC,QAAQ;IACRC,cAAc;IACdC,eAAe;IACfC;EACF,CAAC,GAAGV,UAAU,CAACE,aAAa,CAAC,IAAI,CAAC,CAAC;EAEnC,MAAMS,YAAY,GAAGR,cAAc,CAAC,CAAC;EAErC,MAAMS,gBAAgB,GAAGb,WAAW,CAClCc,IAAA,IAAoC;IAAA,IAAnC;MAAEC,EAAE;MAAEC,KAAK;MAAEC,QAAQ;MAAEC;IAAM,CAAC,GAAAJ,IAAA;IAC7B,IAAI,CAACH,oBAAoB,EAAE;MACzB;IACF;IAEAD,eAAe,CAACM,KAAK,CAAC;IAEtB,MAAMG,gBAAgB,GACpBD,KAAK,KAAKE,SAAS,GAAGlB,kBAAkB,CAACgB,KAAK,CAAC,GAAG,eAAe;IAEnE,IAAIG,MAAM,GAAGD,SAAS;IACtB,IAAIE,WAAW,GAAGF,SAAS;IAC3B,IAAIJ,KAAK,KAAKV,cAAc,CAACiB,OAAO,IAAI,CAACN,QAAQ,EAAE;MACjD,IAAIN,oBAAoB,CAACK,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE;QAC1CK,MAAM,GAAGT,YAAY,CAACY,IAAI,CAACC,YAAY;QACvCH,WAAW,GAAG,OAAO;MACvB,CAAC,MAAM,IACLb,cAAc,CAACc,OAAO,GAAG,CAAC,IAC1BZ,oBAAoB,CAACK,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC,EACxC;QACAK,MAAM,GAAG,eAAe;QACxBC,WAAW,GAAG,MAAM;MACtB;IACF;IAEA,IAAID,MAAM,EAAE;MACVd,sBAAsB,CAACgB,OAAO,GAAG,IAAI;IACvC;IAEAf,QAAQ,CAACe,OAAO,CAACG,GAAG,CAACV,KAAK,EAAE;MAC1BA,KAAK;MACLD,EAAE;MACFG,KAAK;MACLC,gBAAgB;MAChBF,QAAQ;MACRI,MAAM;MACNC;IACF,CAAC,CAAC;IAEF,OAAO;MAAEJ;IAAM,CAAC;EAClB,CAAC,EACD,CACEZ,cAAc,EACdC,sBAAsB,EACtBI,oBAAoB,EACpBH,QAAQ,EACRC,cAAc,EACdG,YAAY,CAACY,IAAI,CAACC,YAAY,EAC9Bf,eAAe,CAEnB,CAAC;EAED,OAAO;IAAEG;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","WizardContext","createContext","undefined"],"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,OAAOA,KAAK,MAAM,OAAO;AA4CzB,MAAMC,aAAa,GAAGD,KAAK,CAACE,aAAa,CACvCC,SACF,CAAC;AAED,eAAeF,aAAa","ignoreList":[]}
1
+ {"version":3,"file":"WizardContext.js","names":["React","WizardContext","createContext","undefined"],"sources":["../../../../../../src/extensions/forms/Wizard/Context/WizardContext.ts"],"sourcesContent":["import React from 'react'\nimport { 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,OAAOA,KAAK,MAAM,OAAO;AA6DzB,MAAMC,aAAa,GAAGD,KAAK,CAACE,aAAa,CACvCC,SACF,CAAC;AAED,eAAeF,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
  /**
@@ -3,19 +3,19 @@
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
5
5
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
6
- var _Fragment;
6
+ var _Fragment, _Fragment2, _Fragment3;
7
7
  const _excluded = ["active", "activeWhen", "include", "includeWhen"],
8
- _excluded2 = ["className", "title", "inactive", "index", "include", "includeWhen", "required", "keepInDOM", "prerenderFieldProps", "children"];
8
+ _excluded2 = ["id", "className", "title", "index", "inactive", "include", "includeWhen", "required", "keepInDOM", "prerenderFieldProps", "children"];
9
+ import "core-js/modules/web.dom-collections.iterator.js";
9
10
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
10
11
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11
- import React, { useContext, useMemo, useRef } from 'react';
12
+ import React, { useContext, useMemo } from 'react';
12
13
  import classnames from 'classnames';
13
14
  import WizardContext from '../Context/WizardContext';
14
15
  import WizardStepContext from './StepContext';
15
16
  import Flex from '../../../../components/flex/Flex';
16
17
  import { convertJsxToString, warn } from '../../../../shared/component-helper';
17
18
  import FieldProvider from '../../Field/Provider';
18
- const useLayoutEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;
19
19
  export function handleDeprecatedProps(_ref) {
20
20
  let {
21
21
  active,
@@ -32,10 +32,11 @@ export function handleDeprecatedProps(_ref) {
32
32
  function Step(props) {
33
33
  const _handleDeprecatedProp = handleDeprecatedProps(props),
34
34
  {
35
+ id,
35
36
  className,
36
37
  title,
38
+ index: indexProp,
37
39
  inactive,
38
- index,
39
40
  include = true,
40
41
  includeWhen,
41
42
  required,
@@ -46,33 +47,76 @@ function Step(props) {
46
47
  restProps = _objectWithoutProperties(_handleDeprecatedProp, _excluded2);
47
48
  const {
48
49
  check,
50
+ enableMapOverChildren,
49
51
  activeIndex,
50
52
  initialActiveIndex,
51
- stepsRef,
53
+ totalStepsRef,
52
54
  stepElementRef,
55
+ stepIndexRef,
56
+ stepsRef,
53
57
  keepInDOM
54
58
  } = useContext(WizardContext) || {};
55
- const ariaLabel = useMemo(() => {
56
- var _ref2, _stepsRef$current, _stepsRef$current$ind, _stepsRef$current2;
57
- 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 : convertJsxToString(title);
58
- }, [index, prerenderFieldProps, title, stepsRef]);
59
- const currentElementRef = useRef();
60
- useLayoutEffect(() => {
61
- if (!prerenderFieldProps && typeof stepElementRef !== 'undefined') {
62
- if (currentElementRef.current) {
63
- stepElementRef.current = currentElementRef.current;
59
+ const wizardStepContext = useContext(WizardStepContext) || {};
60
+ const indexFromContext = wizardStepContext.index;
61
+ const totalSteps = totalStepsRef === null || totalStepsRef === void 0 ? void 0 : totalStepsRef.current;
62
+ const ariaLabel = useMemo(() => convertJsxToString(title), [title]);
63
+ const index = useMemo(() => {
64
+ if (indexProp !== undefined) {
65
+ return indexProp;
66
+ }
67
+ if (indexFromContext !== undefined) {
68
+ return indexFromContext;
69
+ }
70
+ if (stepsRef !== null && stepsRef !== void 0 && stepsRef.current) {
71
+ const {
72
+ index
73
+ } = Array.from(stepsRef.current.values()).find(_ref2 => {
74
+ var _originalTitleProp$pr;
75
+ let {
76
+ id: currentId,
77
+ title: originalTitleProp,
78
+ stringifiedTitle
79
+ } = _ref2;
80
+ if (id !== undefined) {
81
+ return id === currentId;
82
+ }
83
+ const translationId = originalTitleProp === null || originalTitleProp === void 0 ? void 0 : (_originalTitleProp$pr = originalTitleProp['props']) === null || _originalTitleProp$pr === void 0 ? void 0 : _originalTitleProp$pr.id;
84
+ if (translationId) {
85
+ var _title$props;
86
+ return translationId === (title === null || title === void 0 ? void 0 : (_title$props = title['props']) === null || _title$props === void 0 ? void 0 : _title$props.id);
87
+ }
88
+ if (stringifiedTitle) {
89
+ return stringifiedTitle === ariaLabel;
90
+ }
91
+ return originalTitleProp === title;
92
+ }) || {};
93
+ if (index !== undefined) {
94
+ return index;
64
95
  }
65
- return () => {
66
- stepElementRef.current = null;
67
- };
68
96
  }
69
- }, [prerenderFieldProps, stepElementRef]);
97
+ if (totalSteps && stepIndexRef) {
98
+ stepIndexRef.current += 1;
99
+ }
100
+ return stepIndexRef === null || stepIndexRef === void 0 ? void 0 : stepIndexRef.current;
101
+ }, [indexProp, stepsRef, totalSteps, stepIndexRef, indexFromContext, title, id, ariaLabel]);
102
+ if (index >= totalSteps) {
103
+ enableMapOverChildren();
104
+ }
70
105
  if (prerenderFieldProps) {
71
106
  return children;
72
107
  }
108
+ if (include === false) {
109
+ return _Fragment || (_Fragment = React.createElement(React.Fragment, null));
110
+ }
111
+ if (includeWhen && !check({
112
+ visibleWhen: includeWhen
113
+ })) {
114
+ return _Fragment2 || (_Fragment2 = React.createElement(React.Fragment, null));
115
+ }
73
116
  const fieldProps = typeof required === 'boolean' ? {
74
117
  required
75
118
  } : undefined;
119
+ const innerRef = !prerenderFieldProps && activeIndex === index ? stepElementRef : null;
76
120
  const content = React.createElement(WizardStepContext.Provider, {
77
121
  value: {
78
122
  index
@@ -81,10 +125,10 @@ function Step(props) {
81
125
  className: classnames('dnb-forms-step', className),
82
126
  element: "section",
83
127
  "aria-label": ariaLabel,
84
- innerRef: currentElementRef,
128
+ innerRef: innerRef,
85
129
  tabIndex: -1
86
130
  }, restProps), fieldProps ? React.createElement(FieldProvider, fieldProps, children) : children));
87
- if (activeIndex !== index || include === false || includeWhen && !check({
131
+ if (activeIndex !== index || includeWhen && !check({
88
132
  visibleWhen: includeWhen
89
133
  })) {
90
134
  if (keepInDOMProp !== null && keepInDOMProp !== void 0 ? keepInDOMProp : keepInDOM) {
@@ -97,7 +141,7 @@ function Step(props) {
97
141
  warn(`initialActiveIndex={${initialActiveIndex}} is used. Fields of previews steps may not validate. You can use "keepInDOM" to always run validation.`);
98
142
  }
99
143
  }
100
- return _Fragment || (_Fragment = React.createElement(React.Fragment, null));
144
+ return _Fragment3 || (_Fragment3 = React.createElement(React.Fragment, null));
101
145
  }
102
146
  return React.createElement(React.Fragment, null, content);
103
147
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Step.js","names":["React","useContext","useMemo","useRef","classnames","WizardContext","WizardStepContext","Flex","convertJsxToString","warn","FieldProvider","useLayoutEffect","window","useEffect","handleDeprecatedProps","_ref","active","activeWhen","include","includeWhen","rest","_objectWithoutProperties","_excluded","_objectSpread","Step","props","_handleDeprecatedProp","className","title","inactive","index","required","keepInDOM","keepInDOMProp","prerenderFieldProps","children","restProps","_excluded2","check","activeIndex","initialActiveIndex","stepsRef","stepElementRef","ariaLabel","_ref2","_stepsRef$current","_stepsRef$current$ind","_stepsRef$current2","current","currentElementRef","fieldProps","undefined","content","createElement","Provider","value","Stack","_extends","element","innerRef","tabIndex","visibleWhen","hidden","_Fragment","Fragment","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Wizard/Step/Step.tsx"],"sourcesContent":["import React, { useContext, useMemo, useRef } from 'react'\nimport classnames from 'classnames'\nimport { ComponentProps } from '../../types'\nimport { Props as FlexContainerProps } from '../../../../components/flex/Container'\nimport WizardContext from '../Context/WizardContext'\nimport WizardStepContext from './StepContext'\nimport Flex from '../../../../components/flex/Flex'\nimport {\n convertJsxToString,\n warn,\n} from '../../../../shared/component-helper'\nimport FieldProvider from '../../Field/Provider'\nimport type { VisibleWhen } from '../../Form/Visibility'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type Props = ComponentProps &\n FlexContainerProps & {\n /**\n * A title that will be displayed in the indicator.\n */\n title?: React.ReactNode\n /**\n * Will treat the step as non-navigable if set to `true`.\n */\n inactive?: boolean\n\n /**\n * To determine if the step should be rendered.\n * Used internally by the WizardContainer.\n */\n index?: number\n\n /**\n * Will make all the fields inside the step to be required.\n */\n required?: boolean\n\n /**\n * If set to `false`, the step will not be rendered.\n * @deprecated use `include` instead\n */\n active?: boolean\n\n /**\n * Provide a `path` and a `hasValue` property with the expected value in order to enable the step. You can alternatively provide a `hasValue` function that returns a boolean. The first parameter is the value of the path.\n * @deprecated use `includeWhen` instead\n */\n activeWhen?: VisibleWhen\n\n /**\n * If set to `false`, the step will not be rendered.\n */\n\n include?: boolean\n /**\n * Provide a `path` and a `hasValue` property with the expected value in order to enable the step. You can alternatively provide a `hasValue` function that returns a boolean. The first parameter is the value of the path.\n */\n includeWhen?: VisibleWhen\n\n /**\n * Determines if the step should be kept in the DOM. Defaults to `false`.\n */\n keepInDOM?: boolean\n\n /**\n * If set to `true`, the step will always be rendered.\n * For internal use only.\n */\n prerenderFieldProps?: boolean\n }\n\nexport function handleDeprecatedProps({\n active,\n activeWhen,\n include,\n includeWhen,\n ...rest\n}: Props): Omit<Props, 'active' | 'activeWhen'> {\n return {\n include: include ?? active,\n includeWhen: includeWhen ?? activeWhen,\n ...rest,\n }\n}\nfunction Step(props: Props): JSX.Element {\n const {\n className,\n title,\n inactive, // eslint-disable-line\n index,\n include = true,\n includeWhen,\n required,\n keepInDOM: keepInDOMProp,\n prerenderFieldProps,\n children,\n ...restProps\n } = handleDeprecatedProps(props)\n const {\n check,\n activeIndex,\n initialActiveIndex,\n stepsRef,\n stepElementRef,\n keepInDOM,\n } = useContext(WizardContext) || {}\n\n const ariaLabel = useMemo(() => {\n return (\n (!prerenderFieldProps &&\n (stepsRef?.current?.[index]?.title ||\n stepsRef?.current?.[index])) ??\n convertJsxToString(title)\n )\n }, [index, prerenderFieldProps, title, stepsRef])\n\n const currentElementRef = useRef<HTMLElement>()\n useLayoutEffect(() => {\n if (!prerenderFieldProps && typeof stepElementRef !== 'undefined') {\n if (currentElementRef.current) {\n stepElementRef.current = currentElementRef.current\n }\n return () => {\n stepElementRef.current = null\n }\n }\n }, [prerenderFieldProps, stepElementRef])\n\n if (prerenderFieldProps) {\n return children as JSX.Element\n }\n\n const fieldProps =\n typeof required === 'boolean' ? { required } : undefined\n\n const content = (\n <WizardStepContext.Provider value={{ index }}>\n <Flex.Stack\n className={classnames('dnb-forms-step', className)}\n element=\"section\"\n aria-label={ariaLabel}\n innerRef={currentElementRef}\n tabIndex={-1}\n {...restProps}\n >\n {fieldProps ? (\n <FieldProvider {...fieldProps}>{children}</FieldProvider>\n ) : (\n children\n )}\n </Flex.Stack>\n </WizardStepContext.Provider>\n )\n\n if (\n activeIndex !== index ||\n include === false ||\n (includeWhen && !check({ visibleWhen: includeWhen }))\n ) {\n if (keepInDOMProp ?? keepInDOM) {\n return (\n <div title=\"Wizard Step\" hidden>\n {content}\n </div>\n )\n } else {\n if (initialActiveIndex > 0) {\n warn(\n `initialActiveIndex={${initialActiveIndex}} is used. Fields of previews steps may not validate. You can use \"keepInDOM\" to always run validation.`\n )\n }\n }\n\n // Another step is active\n return <></>\n }\n\n return <>{content}</>\n}\n\nStep._supportsSpacingProps = true\nexport default Step\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Step.js","names":["React","useContext","useMemo","classnames","WizardContext","WizardStepContext","Flex","convertJsxToString","warn","FieldProvider","handleDeprecatedProps","_ref","active","activeWhen","include","includeWhen","rest","_objectWithoutProperties","_excluded","_objectSpread","Step","props","_handleDeprecatedProp","id","className","title","index","indexProp","inactive","required","keepInDOM","keepInDOMProp","prerenderFieldProps","children","restProps","_excluded2","check","enableMapOverChildren","activeIndex","initialActiveIndex","totalStepsRef","stepElementRef","stepIndexRef","stepsRef","wizardStepContext","indexFromContext","totalSteps","current","ariaLabel","undefined","Array","from","values","find","_ref2","_originalTitleProp$pr","currentId","originalTitleProp","stringifiedTitle","translationId","_title$props","_Fragment","createElement","Fragment","visibleWhen","_Fragment2","fieldProps","innerRef","content","Provider","value","Stack","_extends","element","tabIndex","hidden","_Fragment3","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Wizard/Step/Step.tsx"],"sourcesContent":["import React, { useContext, useMemo } from 'react'\nimport classnames from 'classnames'\nimport { ComponentProps } from '../../types'\nimport { Props as FlexContainerProps } from '../../../../components/flex/Container'\nimport WizardContext from '../Context/WizardContext'\nimport WizardStepContext from './StepContext'\nimport Flex from '../../../../components/flex/Flex'\nimport {\n convertJsxToString,\n warn,\n} from '../../../../shared/component-helper'\nimport FieldProvider from '../../Field/Provider'\nimport type { VisibleWhen } from '../../Form/Visibility'\n\nexport type Props = ComponentProps &\n FlexContainerProps & {\n /**\n * An unique title of the step.\n */\n title?: React.ReactNode\n\n /**\n * Will treat the step as non-navigable if set to `true`.\n */\n inactive?: boolean\n\n /**\n * To determine if the step should be rendered.\n * Used internally by the WizardContainer.\n */\n index?: number\n\n /**\n * Will make all the fields inside the step to be required.\n */\n required?: boolean\n\n /**\n * If set to `false`, the step will not be rendered.\n * @deprecated use `include` instead\n */\n active?: boolean\n\n /**\n * Provide a `path` and a `hasValue` property with the expected value in order to enable the step. You can alternatively provide a `hasValue` function that returns a boolean. The first parameter is the value of the path.\n * @deprecated use `includeWhen` instead\n */\n activeWhen?: VisibleWhen\n\n /**\n * If set to `false`, the step will not be rendered.\n */\n\n include?: boolean\n /**\n * Provide a `path` and a `hasValue` property with the expected value in order to enable the step. You can alternatively provide a `hasValue` function that returns a boolean. The first parameter is the value of the path.\n */\n includeWhen?: VisibleWhen\n\n /**\n * Determines if the step should be kept in the DOM. Defaults to `false`.\n */\n keepInDOM?: boolean\n\n /**\n * If set to `true`, the step will always be rendered.\n * For internal use only.\n */\n prerenderFieldProps?: boolean\n }\n\nexport function handleDeprecatedProps({\n active,\n activeWhen,\n include,\n includeWhen,\n ...rest\n}: Props): Omit<Props, 'active' | 'activeWhen'> {\n return {\n include: include ?? active,\n includeWhen: includeWhen ?? activeWhen,\n ...rest,\n }\n}\n\nfunction Step(props: Props): JSX.Element {\n const {\n id,\n className,\n title,\n index: indexProp,\n inactive, // eslint-disable-line\n include = true,\n includeWhen,\n required,\n keepInDOM: keepInDOMProp,\n prerenderFieldProps,\n children,\n ...restProps\n } = handleDeprecatedProps(props)\n\n const {\n check,\n enableMapOverChildren,\n activeIndex,\n initialActiveIndex,\n totalStepsRef,\n stepElementRef,\n stepIndexRef,\n stepsRef,\n keepInDOM,\n } = useContext(WizardContext) || {}\n\n const wizardStepContext = useContext(WizardStepContext) || {}\n const indexFromContext = wizardStepContext.index\n\n const totalSteps = totalStepsRef?.current\n const ariaLabel = useMemo(() => convertJsxToString(title), [title])\n const index = useMemo(() => {\n if (indexProp !== undefined) {\n return indexProp\n }\n\n // Try to use the index from the step context\n if (indexFromContext !== undefined) {\n return indexFromContext\n }\n\n if (stepsRef?.current) {\n // Try different ways to find the step index\n const { index } =\n Array.from(stepsRef.current.values()).find(\n ({\n id: currentId,\n title: originalTitleProp,\n stringifiedTitle,\n }) => {\n // Try to find the step by id\n if (id !== undefined) {\n return id === currentId\n }\n\n // Try to find the step by <Translation id=\"...\" />\n const translationId = originalTitleProp?.['props']?.id\n if (translationId) {\n return translationId === title?.['props']?.id\n }\n\n // Try to find the step by a string (with convertJsxToString) title\n if (stringifiedTitle) {\n return stringifiedTitle === ariaLabel\n }\n\n // Try to find the step by a JSX title\n return originalTitleProp === title\n }\n ) || {}\n\n if (index !== undefined) {\n return index\n }\n }\n\n if (\n totalSteps && // Is only used to make the deps ESLint happy.\n stepIndexRef\n ) {\n stepIndexRef.current += 1\n }\n\n return stepIndexRef?.current\n }, [\n indexProp,\n stepsRef,\n totalSteps, // \"totalSteps\" is needed to make dynamic steps work.\n stepIndexRef,\n indexFromContext,\n title,\n id,\n ariaLabel,\n ])\n\n // If the index is greater than the total steps,\n // its a sign that e.g. React.StrictMode is used.\n // And if no title or id is given,\n // we need to force an re-render and use an alternative render method,\n // using React.Children.map(children, ...).\n if (index >= totalSteps) {\n enableMapOverChildren()\n }\n\n if (prerenderFieldProps) {\n return children as JSX.Element\n }\n\n if (include === false) {\n return <></>\n }\n\n if (\n includeWhen &&\n !check({\n visibleWhen: includeWhen,\n })\n ) {\n return <></>\n }\n\n const fieldProps =\n typeof required === 'boolean' ? { required } : undefined\n const innerRef =\n !prerenderFieldProps && activeIndex === index ? stepElementRef : null\n\n const content = (\n <WizardStepContext.Provider value={{ index }}>\n <Flex.Stack\n className={classnames('dnb-forms-step', className)}\n element=\"section\"\n aria-label={ariaLabel}\n innerRef={innerRef}\n tabIndex={-1}\n {...restProps}\n >\n {fieldProps ? (\n <FieldProvider {...fieldProps}>{children}</FieldProvider>\n ) : (\n children\n )}\n </Flex.Stack>\n </WizardStepContext.Provider>\n )\n\n if (\n activeIndex !== index ||\n (includeWhen && !check({ visibleWhen: includeWhen }))\n ) {\n if (keepInDOMProp ?? keepInDOM) {\n return (\n <div title=\"Wizard Step\" hidden>\n {content}\n </div>\n )\n } else {\n if (initialActiveIndex > 0) {\n warn(\n `initialActiveIndex={${initialActiveIndex}} is used. Fields of previews steps may not validate. You can use \"keepInDOM\" to always run validation.`\n )\n }\n }\n\n // Another step is active\n return <></>\n }\n\n return <>{content}</>\n}\n\nStep._supportsSpacingProps = true\nexport default Step\n"],"mappings":"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","ignoreList":[]}
@@ -1,8 +1,8 @@
1
1
  export const StepProperties = {
2
2
  title: {
3
- doc: 'Title of the step.',
3
+ doc: 'An unique title of the step.',
4
4
  type: 'React.Node',
5
- status: 'optional'
5
+ status: 'required'
6
6
  },
7
7
  inactive: {
8
8
  doc: 'Will treat the step as non-navigable if set to `true`.',
@@ -1 +1 @@
1
- {"version":3,"file":"StepDocs.js","names":["StepProperties","title","doc","type","status","inactive","required","include","includeWhen","keepInDOM","children","active","activeWhen","StepEvents"],"sources":["../../../../../../src/extensions/forms/Wizard/Step/StepDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const StepProperties: PropertiesTableProps = {\n title: {\n doc: 'Title of the step.',\n type: 'React.Node',\n status: 'optional',\n },\n inactive: {\n doc: 'Will treat the step as non-navigable if set to `true`.',\n type: 'boolean',\n status: 'optional',\n },\n required: {\n doc: 'Will make all nested form fields required.',\n type: 'boolean',\n status: 'optional',\n },\n include: {\n doc: 'If set to `false`, the step will not be rendered.',\n type: 'boolean',\n status: 'optional',\n },\n includeWhen: {\n doc: 'Provide a `path` and a `hasValue` property with the expected value in order to enable the step. You can alternatively provide a `hasValue` function that returns a boolean. The first parameter is the value of the path.',\n type: 'object',\n status: 'optional',\n },\n keepInDOM: {\n doc: 'Determines if the step should be kept in the DOM. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n children: {\n doc: 'Contents.',\n type: 'React.Node',\n status: 'required',\n },\n '[Flex.Container](/uilib/layout/flex/container/properties)': {\n doc: 'Flex.Container properties.',\n type: 'Various',\n status: 'optional',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n active: {\n doc: 'Deprecated, use `include`. Old docs: If set to `false`, the step will not be rendered.',\n type: 'boolean',\n status: 'deprecated',\n },\n activeWhen: {\n doc: 'Deprecated, use `includeWhen`. Old docs: Provide a `path` and a `hasValue` property with the expected value in order to enable the step. You can alternatively provide a `hasValue` function that returns a boolean. The first parameter is the value of the path.',\n type: 'object',\n status: 'deprecated',\n },\n}\n\nexport const StepEvents: PropertiesTableProps = {}\n"],"mappings":"AAEA,OAAO,MAAMA,cAAoC,GAAG;EAClDC,KAAK,EAAE;IACLC,GAAG,EAAE,oBAAoB;IACzBC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV,CAAC;EACDC,QAAQ,EAAE;IACRH,GAAG,EAAE,wDAAwD;IAC7DC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDE,QAAQ,EAAE;IACRJ,GAAG,EAAE,4CAA4C;IACjDC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDG,OAAO,EAAE;IACPL,GAAG,EAAE,mDAAmD;IACxDC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDI,WAAW,EAAE;IACXN,GAAG,EAAE,2NAA2N;IAChOC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDK,SAAS,EAAE;IACTP,GAAG,EAAE,wEAAwE;IAC7EC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDM,QAAQ,EAAE;IACRR,GAAG,EAAE,WAAW;IAChBC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV,CAAC;EACD,2DAA2D,EAAE;IAC3DF,GAAG,EAAE,4BAA4B;IACjCC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCF,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV,CAAC;EACDO,MAAM,EAAE;IACNT,GAAG,EAAE,wFAAwF;IAC7FC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDQ,UAAU,EAAE;IACVV,GAAG,EAAE,oQAAoQ;IACzQC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMS,UAAgC,GAAG,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"StepDocs.js","names":["StepProperties","title","doc","type","status","inactive","required","include","includeWhen","keepInDOM","children","active","activeWhen","StepEvents"],"sources":["../../../../../../src/extensions/forms/Wizard/Step/StepDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const StepProperties: PropertiesTableProps = {\n title: {\n doc: 'An unique title of the step.',\n type: 'React.Node',\n status: 'required',\n },\n inactive: {\n doc: 'Will treat the step as non-navigable if set to `true`.',\n type: 'boolean',\n status: 'optional',\n },\n required: {\n doc: 'Will make all nested form fields required.',\n type: 'boolean',\n status: 'optional',\n },\n include: {\n doc: 'If set to `false`, the step will not be rendered.',\n type: 'boolean',\n status: 'optional',\n },\n includeWhen: {\n doc: 'Provide a `path` and a `hasValue` property with the expected value in order to enable the step. You can alternatively provide a `hasValue` function that returns a boolean. The first parameter is the value of the path.',\n type: 'object',\n status: 'optional',\n },\n keepInDOM: {\n doc: 'Determines if the step should be kept in the DOM. Defaults to `false`.',\n type: 'boolean',\n status: 'optional',\n },\n children: {\n doc: 'Contents.',\n type: 'React.Node',\n status: 'required',\n },\n '[Flex.Container](/uilib/layout/flex/container/properties)': {\n doc: 'Flex.Container properties.',\n type: 'Various',\n status: 'optional',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n active: {\n doc: 'Deprecated, use `include`. Old docs: If set to `false`, the step will not be rendered.',\n type: 'boolean',\n status: 'deprecated',\n },\n activeWhen: {\n doc: 'Deprecated, use `includeWhen`. Old docs: Provide a `path` and a `hasValue` property with the expected value in order to enable the step. You can alternatively provide a `hasValue` function that returns a boolean. The first parameter is the value of the path.',\n type: 'object',\n status: 'deprecated',\n },\n}\n\nexport const StepEvents: PropertiesTableProps = {}\n"],"mappings":"AAEA,OAAO,MAAMA,cAAoC,GAAG;EAClDC,KAAK,EAAE;IACLC,GAAG,EAAE,8BAA8B;IACnCC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV,CAAC;EACDC,QAAQ,EAAE;IACRH,GAAG,EAAE,wDAAwD;IAC7DC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDE,QAAQ,EAAE;IACRJ,GAAG,EAAE,4CAA4C;IACjDC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDG,OAAO,EAAE;IACPL,GAAG,EAAE,mDAAmD;IACxDC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDI,WAAW,EAAE;IACXN,GAAG,EAAE,2NAA2N;IAChOC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDK,SAAS,EAAE;IACTP,GAAG,EAAE,wEAAwE;IAC7EC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDM,QAAQ,EAAE;IACRR,GAAG,EAAE,WAAW;IAChBC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV,CAAC;EACD,2DAA2D,EAAE;IAC3DF,GAAG,EAAE,4BAA4B;IACjCC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCF,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV,CAAC;EACDO,MAAM,EAAE;IACNT,GAAG,EAAE,wFAAwF;IAC7FC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDQ,UAAU,EAAE;IACVV,GAAG,EAAE,oQAAoQ;IACzQC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMS,UAAgC,GAAG,CAAC,CAAC","ignoreList":[]}
@@ -10,11 +10,11 @@ export default function useStep() {
10
10
  onStepChange
11
11
  } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
12
12
  const setFormError = useCallback(() => null, []);
13
- const context = useContext(WizardContext) || {
13
+ const wizardContext = useContext(WizardContext) || {
14
14
  setFormError
15
15
  };
16
- if (onStepChange && !id && context.id) {
17
- id = context.id;
16
+ if (onStepChange && !id && wizardContext.id) {
17
+ id = wizardContext.id;
18
18
  }
19
19
  const sharedDataRef = useRef(null);
20
20
  sharedDataRef.current = useSharedState(id ? createReferenceKey(id, 'wizard') : undefined);
@@ -27,22 +27,14 @@ export default function useStep() {
27
27
  if (data && !data.setFormError) {
28
28
  data.setFormError = setFormError;
29
29
  }
30
- const value = data || context;
30
+ const context = data || wizardContext;
31
31
  const {
32
- stepsRef
33
- } = value || {};
34
- const setTotalSteps = useCallback(() => {
35
- const totalSteps = Object.keys((stepsRef === null || stepsRef === void 0 ? void 0 : stepsRef.current) || {}).length || 0;
36
- if (value.totalSteps !== totalSteps) {
37
- value.totalSteps = totalSteps;
38
- }
39
- }, [stepsRef, value]);
40
- if (data) {
41
- setTotalSteps();
32
+ totalStepsRef
33
+ } = context || {};
34
+ const totalSteps = (totalStepsRef === null || totalStepsRef === void 0 ? void 0 : totalStepsRef.current) || 0;
35
+ if (context && context.totalSteps !== totalSteps) {
36
+ context.totalSteps = totalSteps;
42
37
  }
43
- useLayoutEffect(() => {
44
- setTotalSteps();
45
- }, [setTotalSteps, stepsRef, value]);
46
- return value;
38
+ return context;
47
39
  }
48
40
  //# sourceMappingURL=useStep.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useStep.js","names":["React","useCallback","useContext","useRef","WizardContext","createReferenceKey","useSharedState","useLayoutEffect","window","useEffect","useStep","id","arguments","length","undefined","onStepChange","setFormError","context","sharedDataRef","current","extend","data","value","stepsRef","setTotalSteps","totalSteps","Object","keys"],"sources":["../../../../../../src/extensions/forms/Wizard/hooks/useStep.tsx"],"sourcesContent":["import React, { useCallback, useContext, useRef } from 'react'\nimport WizardContext, {\n WizardContextState,\n} from '../Context/WizardContext'\nimport type { OnStepChange } from '../Context/types'\nimport {\n SharedStateId,\n createReferenceKey,\n useSharedState,\n} from '../../../../shared/helpers/useSharedState'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport default function useStep(\n id: SharedStateId = null,\n { onStepChange }: { onStepChange?: OnStepChange } = {}\n) {\n const setFormError = useCallback(() => null, [])\n const context = useContext(WizardContext) || { setFormError }\n\n // In order to make it possible to add a \"onStepChange\" handler without an id,\n // we at least check if there is one from the context.\n if (onStepChange && !id && context.id) {\n id = context.id\n }\n\n const sharedDataRef =\n useRef<ReturnType<typeof useSharedState<WizardContextState>>>(null)\n sharedDataRef.current = useSharedState<WizardContextState>(\n id ? createReferenceKey(id, 'wizard') : undefined\n )\n\n useLayoutEffect(() => {\n sharedDataRef.current.extend({\n onStepChange,\n } as unknown as WizardContextState) // Internal type\n }, [onStepChange])\n\n const data = sharedDataRef.current.data\n if (data && !data.setFormError) {\n data.setFormError = setFormError\n }\n\n const value = data || context\n const { stepsRef } = value || {}\n const setTotalSteps = useCallback(() => {\n const totalSteps = Object.keys(stepsRef?.current || {}).length || 0\n if (value.totalSteps !== totalSteps) {\n value.totalSteps = totalSteps\n }\n }, [stepsRef, value])\n if (data) {\n setTotalSteps()\n }\n useLayoutEffect(() => {\n setTotalSteps()\n }, [setTotalSteps, stepsRef, value])\n\n return value\n}\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,EAAEC,MAAM,QAAQ,OAAO;AAC9D,OAAOC,aAAa,MAEb,0BAA0B;AAEjC,SAEEC,kBAAkB,EAClBC,cAAc,QACT,2CAA2C;AAGlD,MAAMC,eAAe,GACnB,OAAOC,MAAM,KAAK,WAAW,GAAGR,KAAK,CAACS,SAAS,GAAGT,KAAK,CAACO,eAAe;AAEzE,eAAe,SAASG,OAAOA,CAAA,EAG7B;EAAA,IAFAC,EAAiB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;EAAA,IACxB;IAAEG;EAA8C,CAAC,GAAAH,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAEtD,MAAMI,YAAY,GAAGf,WAAW,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;EAChD,MAAMgB,OAAO,GAAGf,UAAU,CAACE,aAAa,CAAC,IAAI;IAAEY;EAAa,CAAC;EAI7D,IAAID,YAAY,IAAI,CAACJ,EAAE,IAAIM,OAAO,CAACN,EAAE,EAAE;IACrCA,EAAE,GAAGM,OAAO,CAACN,EAAE;EACjB;EAEA,MAAMO,aAAa,GACjBf,MAAM,CAAwD,IAAI,CAAC;EACrEe,aAAa,CAACC,OAAO,GAAGb,cAAc,CACpCK,EAAE,GAAGN,kBAAkB,CAACM,EAAE,EAAE,QAAQ,CAAC,GAAGG,SAC1C,CAAC;EAEDP,eAAe,CAAC,MAAM;IACpBW,aAAa,CAACC,OAAO,CAACC,MAAM,CAAC;MAC3BL;IACF,CAAkC,CAAC;EACrC,CAAC,EAAE,CAACA,YAAY,CAAC,CAAC;EAElB,MAAMM,IAAI,GAAGH,aAAa,CAACC,OAAO,CAACE,IAAI;EACvC,IAAIA,IAAI,IAAI,CAACA,IAAI,CAACL,YAAY,EAAE;IAC9BK,IAAI,CAACL,YAAY,GAAGA,YAAY;EAClC;EAEA,MAAMM,KAAK,GAAGD,IAAI,IAAIJ,OAAO;EAC7B,MAAM;IAAEM;EAAS,CAAC,GAAGD,KAAK,IAAI,CAAC,CAAC;EAChC,MAAME,aAAa,GAAGvB,WAAW,CAAC,MAAM;IACtC,MAAMwB,UAAU,GAAGC,MAAM,CAACC,IAAI,CAAC,CAAAJ,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEJ,OAAO,KAAI,CAAC,CAAC,CAAC,CAACN,MAAM,IAAI,CAAC;IACnE,IAAIS,KAAK,CAACG,UAAU,KAAKA,UAAU,EAAE;MACnCH,KAAK,CAACG,UAAU,GAAGA,UAAU;IAC/B;EACF,CAAC,EAAE,CAACF,QAAQ,EAAED,KAAK,CAAC,CAAC;EACrB,IAAID,IAAI,EAAE;IACRG,aAAa,CAAC,CAAC;EACjB;EACAjB,eAAe,CAAC,MAAM;IACpBiB,aAAa,CAAC,CAAC;EACjB,CAAC,EAAE,CAACA,aAAa,EAAED,QAAQ,EAAED,KAAK,CAAC,CAAC;EAEpC,OAAOA,KAAK;AACd","ignoreList":[]}
1
+ {"version":3,"file":"useStep.js","names":["React","useCallback","useContext","useRef","WizardContext","createReferenceKey","useSharedState","useLayoutEffect","window","useEffect","useStep","id","arguments","length","undefined","onStepChange","setFormError","wizardContext","sharedDataRef","current","extend","data","context","totalStepsRef","totalSteps"],"sources":["../../../../../../src/extensions/forms/Wizard/hooks/useStep.tsx"],"sourcesContent":["import React, { useCallback, useContext, useRef } from 'react'\nimport WizardContext, {\n WizardContextState,\n} from '../Context/WizardContext'\nimport type { OnStepChange } from '../Context/types'\nimport {\n SharedStateId,\n createReferenceKey,\n useSharedState,\n} from '../../../../shared/helpers/useSharedState'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport default function useStep(\n id: SharedStateId = null,\n { onStepChange }: { onStepChange?: OnStepChange } = {}\n) {\n const setFormError = useCallback(() => null, [])\n const wizardContext = useContext(WizardContext) || { setFormError }\n\n // In order to make it possible to add a \"onStepChange\" handler without an id,\n // we at least check if there is one from the context.\n if (onStepChange && !id && wizardContext.id) {\n id = wizardContext.id\n }\n\n const sharedDataRef =\n useRef<ReturnType<typeof useSharedState<WizardContextState>>>(null)\n sharedDataRef.current = useSharedState<WizardContextState>(\n id ? createReferenceKey(id, 'wizard') : undefined\n )\n\n useLayoutEffect(() => {\n sharedDataRef.current.extend({\n onStepChange,\n } as unknown as WizardContextState) // Internal type\n }, [onStepChange])\n\n const data = sharedDataRef.current.data\n if (data && !data.setFormError) {\n data.setFormError = setFormError\n }\n\n const context = data || wizardContext\n const { totalStepsRef } = context || {}\n const totalSteps = totalStepsRef?.current || 0\n if (context && context.totalSteps !== totalSteps) {\n context.totalSteps = totalSteps\n }\n\n return context\n}\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,EAAEC,MAAM,QAAQ,OAAO;AAC9D,OAAOC,aAAa,MAEb,0BAA0B;AAEjC,SAEEC,kBAAkB,EAClBC,cAAc,QACT,2CAA2C;AAGlD,MAAMC,eAAe,GACnB,OAAOC,MAAM,KAAK,WAAW,GAAGR,KAAK,CAACS,SAAS,GAAGT,KAAK,CAACO,eAAe;AAEzE,eAAe,SAASG,OAAOA,CAAA,EAG7B;EAAA,IAFAC,EAAiB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;EAAA,IACxB;IAAEG;EAA8C,CAAC,GAAAH,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAEtD,MAAMI,YAAY,GAAGf,WAAW,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;EAChD,MAAMgB,aAAa,GAAGf,UAAU,CAACE,aAAa,CAAC,IAAI;IAAEY;EAAa,CAAC;EAInE,IAAID,YAAY,IAAI,CAACJ,EAAE,IAAIM,aAAa,CAACN,EAAE,EAAE;IAC3CA,EAAE,GAAGM,aAAa,CAACN,EAAE;EACvB;EAEA,MAAMO,aAAa,GACjBf,MAAM,CAAwD,IAAI,CAAC;EACrEe,aAAa,CAACC,OAAO,GAAGb,cAAc,CACpCK,EAAE,GAAGN,kBAAkB,CAACM,EAAE,EAAE,QAAQ,CAAC,GAAGG,SAC1C,CAAC;EAEDP,eAAe,CAAC,MAAM;IACpBW,aAAa,CAACC,OAAO,CAACC,MAAM,CAAC;MAC3BL;IACF,CAAkC,CAAC;EACrC,CAAC,EAAE,CAACA,YAAY,CAAC,CAAC;EAElB,MAAMM,IAAI,GAAGH,aAAa,CAACC,OAAO,CAACE,IAAI;EACvC,IAAIA,IAAI,IAAI,CAACA,IAAI,CAACL,YAAY,EAAE;IAC9BK,IAAI,CAACL,YAAY,GAAGA,YAAY;EAClC;EAEA,MAAMM,OAAO,GAAGD,IAAI,IAAIJ,aAAa;EACrC,MAAM;IAAEM;EAAc,CAAC,GAAGD,OAAO,IAAI,CAAC,CAAC;EACvC,MAAME,UAAU,GAAG,CAAAD,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEJ,OAAO,KAAI,CAAC;EAC9C,IAAIG,OAAO,IAAIA,OAAO,CAACE,UAAU,KAAKA,UAAU,EAAE;IAChDF,OAAO,CAACE,UAAU,GAAGA,UAAU;EACjC;EAEA,OAAOF,OAAO;AAChB","ignoreList":[]}
@@ -110,8 +110,10 @@ export default function useFieldProps(localProps) {
110
110
  setMountedField: setMountedFieldSnapshot
111
111
  } = useContext(SnapshotContext) || {};
112
112
  const {
113
- isVisible
113
+ isVisible,
114
+ keepInDOM
114
115
  } = useContext(VisibilityContext) || {};
116
+ const handleFieldAsVisible = isVisible || keepInDOM;
115
117
  const {
116
118
  getValueByPath,
117
119
  getSourceValue
@@ -165,7 +167,7 @@ export default function useFieldProps(localProps) {
165
167
  activeIndex,
166
168
  activeIndexRef,
167
169
  prerenderFieldProps,
168
- revealError: revealErrorWizard
170
+ setFieldError: setFieldErrorWizard
169
171
  } = wizardContext || {};
170
172
  const {
171
173
  index: wizardIndex
@@ -393,10 +395,10 @@ export default function useFieldProps(localProps) {
393
395
  }, [setFieldStateDataContext, identifier, setFieldStateFieldBlock, validateInitially]);
394
396
  const setErrorState = useCallback(hasError => {
395
397
  showFieldErrorFieldBlock === null || showFieldErrorFieldBlock === void 0 ? void 0 : showFieldErrorFieldBlock(identifier, hasError);
396
- revealErrorWizard === null || revealErrorWizard === void 0 ? void 0 : revealErrorWizard(wizardIndex, identifier, hasError);
397
398
  revealErrorBoundary === null || revealErrorBoundary === void 0 ? void 0 : revealErrorBoundary(identifier, hasError);
398
399
  revealErrorDataContext === null || revealErrorDataContext === void 0 ? void 0 : revealErrorDataContext(identifier, hasError);
399
- }, [identifier, revealErrorBoundary, revealErrorDataContext, revealErrorWizard, showFieldErrorFieldBlock, wizardIndex]);
400
+ setFieldErrorWizard === null || setFieldErrorWizard === void 0 ? void 0 : setFieldErrorWizard(wizardIndex, identifier, handleFieldAsVisible !== false ? hasError : undefined);
401
+ }, [identifier, handleFieldAsVisible, revealErrorBoundary, revealErrorDataContext, setFieldErrorWizard, showFieldErrorFieldBlock, wizardIndex]);
400
402
  const revealError = useCallback(() => {
401
403
  if (validateInitially === false && revealErrorRef.current === false) {
402
404
  revealErrorRef.current = undefined;
@@ -630,6 +632,7 @@ export default function useFieldProps(localProps) {
630
632
  localErrorRef.current = error;
631
633
  setFieldErrorDataContext === null || setFieldErrorDataContext === void 0 ? void 0 : setFieldErrorDataContext(identifier, error);
632
634
  setFieldErrorBoundary === null || setFieldErrorBoundary === void 0 ? void 0 : setFieldErrorBoundary(identifier, error);
635
+ setFieldErrorWizard === null || setFieldErrorWizard === void 0 ? void 0 : setFieldErrorWizard(wizardIndex, identifier, handleFieldAsVisible !== false ? Boolean(error) : undefined);
633
636
  setBlockRecord === null || setBlockRecord === void 0 ? void 0 : setBlockRecord({
634
637
  stateId,
635
638
  identifier,
@@ -639,7 +642,7 @@ export default function useFieldProps(localProps) {
639
642
  });
640
643
  setFieldStateDataContext === null || setFieldStateDataContext === void 0 ? void 0 : setFieldStateDataContext(identifier, error ? 'error' : undefined);
641
644
  forceUpdate();
642
- }, [identifier, inFieldBlock, prepareError, setFieldErrorBoundary, setFieldErrorDataContext, setFieldStateDataContext, setBlockRecord, stateId, validateInitially]);
645
+ }, [handleFieldAsVisible, identifier, inFieldBlock, prepareError, setBlockRecord, setFieldErrorBoundary, setFieldErrorDataContext, setFieldErrorWizard, setFieldStateDataContext, stateId, validateInitially, wizardIndex]);
643
646
  const clearErrorState = useCallback(() => {
644
647
  var _schemaValidatorRef$c;
645
648
  persistErrorState('wipe', undefined);
@@ -1195,7 +1198,12 @@ export default function useFieldProps(localProps) {
1195
1198
  setFieldErrorBoundary === null || setFieldErrorBoundary === void 0 ? void 0 : setFieldErrorBoundary(identifier, undefined);
1196
1199
  localErrorRef.current = undefined;
1197
1200
  };
1198
- }, [identifier, setFieldErrorBoundary, setFieldErrorDataContext, setMountedFieldStateDataContext, wizardIndex]);
1201
+ }, [identifier, setFieldErrorBoundary, setFieldErrorDataContext]);
1202
+ useEffect(() => {
1203
+ return () => {
1204
+ setFieldErrorWizard === null || setFieldErrorWizard === void 0 ? void 0 : setFieldErrorWizard(wizardIndex, identifier, undefined);
1205
+ };
1206
+ }, [identifier, setFieldErrorWizard, wizardIndex]);
1199
1207
  useEffect(() => {
1200
1208
  validateValue();
1201
1209
  }, [validateValue]);
@@ -1405,7 +1413,7 @@ export default function useFieldProps(localProps) {
1405
1413
  });
1406
1414
  return () => {
1407
1415
  if (mountedFieldsRefFieldBlock) {
1408
- mountedFieldsRefFieldBlock.current[identifier] = true;
1416
+ mountedFieldsRefFieldBlock.current.set(identifier, true);
1409
1417
  }
1410
1418
  };
1411
1419
  }
@@ -1442,7 +1450,7 @@ export default function useFieldProps(localProps) {
1442
1450
  if (inFieldBlock) {
1443
1451
  var _fieldBlockContext$fi;
1444
1452
  if (mountedFieldsRefFieldBlock) {
1445
- mountedFieldsRefFieldBlock.current[identifier] = true;
1453
+ mountedFieldsRefFieldBlock.current.set(identifier, true);
1446
1454
  }
1447
1455
  const stateIds = (_fieldBlockContext$fi = fieldBlockContext.fieldStateIdsRef) === null || _fieldBlockContext$fi === void 0 ? void 0 : _fieldBlockContext$fi.current;
1448
1456
  if (stateIds) {