@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,59 @@
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(({
18
+ id,
19
+ index,
20
+ inactive,
21
+ title
22
+ }) => {
23
+ if (!hasInvalidStepsState) {
24
+ return;
25
+ }
26
+ writeStepsState(index);
27
+ const stringifiedTitle = title !== undefined ? convertJsxToString(title) : 'Title missing';
28
+ let status = undefined;
29
+ let statusState = undefined;
30
+ if (index !== activeIndexRef.current && !inactive) {
31
+ if (hasInvalidStepsState(index, ['error'])) {
32
+ status = translations.Step.stepHasError;
33
+ statusState = 'error';
34
+ } else if (submitCountRef.current > 0 && hasInvalidStepsState(index, ['unknown'])) {
35
+ status = 'Unknown state';
36
+ statusState = 'warn';
37
+ }
38
+ }
39
+ if (status) {
40
+ hasErrorInOtherStepRef.current = true;
41
+ }
42
+ stepsRef.current.set(index, {
43
+ index,
44
+ id,
45
+ title,
46
+ stringifiedTitle,
47
+ inactive,
48
+ status,
49
+ statusState
50
+ });
51
+ return {
52
+ title
53
+ };
54
+ }, [activeIndexRef, hasErrorInOtherStepRef, hasInvalidStepsState, stepsRef, submitCountRef, translations.Step.stepHasError, writeStepsState]);
55
+ return {
56
+ collectStepsData
57
+ };
58
+ }
59
+ //# 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","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,CAClC,CAAC;IAAEc,EAAE;IAAEC,KAAK;IAAEC,QAAQ;IAAEC;EAAM,CAAC,KAAK;IAClC,IAAI,CAACN,oBAAoB,EAAE;MACzB;IACF;IAEAD,eAAe,CAACK,KAAK,CAAC;IAEtB,MAAMG,gBAAgB,GACpBD,KAAK,KAAKE,SAAS,GAAGjB,kBAAkB,CAACe,KAAK,CAAC,GAAG,eAAe;IAEnE,IAAIG,MAAM,GAAGD,SAAS;IACtB,IAAIE,WAAW,GAAGF,SAAS;IAC3B,IAAIJ,KAAK,KAAKT,cAAc,CAACgB,OAAO,IAAI,CAACN,QAAQ,EAAE;MACjD,IAAIL,oBAAoB,CAACI,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE;QAC1CK,MAAM,GAAGR,YAAY,CAACW,IAAI,CAACC,YAAY;QACvCH,WAAW,GAAG,OAAO;MACvB,CAAC,MAAM,IACLZ,cAAc,CAACa,OAAO,GAAG,CAAC,IAC1BX,oBAAoB,CAACI,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC,EACxC;QACAK,MAAM,GAAG,eAAe;QACxBC,WAAW,GAAG,MAAM;MACtB;IACF;IAEA,IAAID,MAAM,EAAE;MACVb,sBAAsB,CAACe,OAAO,GAAG,IAAI;IACvC;IAEAd,QAAQ,CAACc,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,CACEX,cAAc,EACdC,sBAAsB,EACtBI,oBAAoB,EACpBH,QAAQ,EACRC,cAAc,EACdG,YAAY,CAACW,IAAI,CAACC,YAAY,EAC9Bd,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,18 @@
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
9
  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
10
  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';
11
+ import React, { useContext, useMemo } from 'react';
12
12
  import classnames from 'classnames';
13
13
  import WizardContext from '../Context/WizardContext';
14
14
  import WizardStepContext from './StepContext';
15
15
  import Flex from '../../../../components/flex/Flex';
16
16
  import { convertJsxToString, warn } from '../../../../shared/component-helper';
17
17
  import FieldProvider from '../../Field/Provider';
18
- const useLayoutEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;
19
18
  export function handleDeprecatedProps(_ref) {
20
19
  let {
21
20
  active,
@@ -32,10 +31,11 @@ export function handleDeprecatedProps(_ref) {
32
31
  function Step(props) {
33
32
  const _handleDeprecatedProp = handleDeprecatedProps(props),
34
33
  {
34
+ id,
35
35
  className,
36
36
  title,
37
+ index: indexProp,
37
38
  inactive,
38
- index,
39
39
  include = true,
40
40
  includeWhen,
41
41
  required,
@@ -46,33 +46,75 @@ function Step(props) {
46
46
  restProps = _objectWithoutProperties(_handleDeprecatedProp, _excluded2);
47
47
  const {
48
48
  check,
49
+ enableMapOverChildren,
49
50
  activeIndex,
50
51
  initialActiveIndex,
51
- stepsRef,
52
+ totalStepsRef,
52
53
  stepElementRef,
54
+ stepIndexRef,
55
+ stepsRef,
53
56
  keepInDOM
54
57
  } = 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;
58
+ const wizardStepContext = useContext(WizardStepContext) || {};
59
+ const indexFromContext = wizardStepContext.index;
60
+ const totalSteps = totalStepsRef === null || totalStepsRef === void 0 ? void 0 : totalStepsRef.current;
61
+ const ariaLabel = useMemo(() => convertJsxToString(title), [title]);
62
+ const index = useMemo(() => {
63
+ if (indexProp !== undefined) {
64
+ return indexProp;
65
+ }
66
+ if (indexFromContext !== undefined) {
67
+ return indexFromContext;
68
+ }
69
+ if (stepsRef !== null && stepsRef !== void 0 && stepsRef.current) {
70
+ const {
71
+ index
72
+ } = Array.from(stepsRef.current.values()).find(({
73
+ id: currentId,
74
+ title: originalTitleProp,
75
+ stringifiedTitle
76
+ }) => {
77
+ var _originalTitleProp$pr;
78
+ if (id !== undefined) {
79
+ return id === currentId;
80
+ }
81
+ const translationId = originalTitleProp === null || originalTitleProp === void 0 ? void 0 : (_originalTitleProp$pr = originalTitleProp['props']) === null || _originalTitleProp$pr === void 0 ? void 0 : _originalTitleProp$pr.id;
82
+ if (translationId) {
83
+ var _title$props;
84
+ return translationId === (title === null || title === void 0 ? void 0 : (_title$props = title['props']) === null || _title$props === void 0 ? void 0 : _title$props.id);
85
+ }
86
+ if (stringifiedTitle) {
87
+ return stringifiedTitle === ariaLabel;
88
+ }
89
+ return originalTitleProp === title;
90
+ }) || {};
91
+ if (index !== undefined) {
92
+ return index;
64
93
  }
65
- return () => {
66
- stepElementRef.current = null;
67
- };
68
94
  }
69
- }, [prerenderFieldProps, stepElementRef]);
95
+ if (totalSteps && stepIndexRef) {
96
+ stepIndexRef.current += 1;
97
+ }
98
+ return stepIndexRef === null || stepIndexRef === void 0 ? void 0 : stepIndexRef.current;
99
+ }, [indexProp, stepsRef, totalSteps, stepIndexRef, indexFromContext, title, id, ariaLabel]);
100
+ if (index >= totalSteps) {
101
+ enableMapOverChildren();
102
+ }
70
103
  if (prerenderFieldProps) {
71
104
  return children;
72
105
  }
106
+ if (include === false) {
107
+ return _Fragment || (_Fragment = React.createElement(React.Fragment, null));
108
+ }
109
+ if (includeWhen && !check({
110
+ visibleWhen: includeWhen
111
+ })) {
112
+ return _Fragment2 || (_Fragment2 = React.createElement(React.Fragment, null));
113
+ }
73
114
  const fieldProps = typeof required === 'boolean' ? {
74
115
  required
75
116
  } : undefined;
117
+ const innerRef = !prerenderFieldProps && activeIndex === index ? stepElementRef : null;
76
118
  const content = React.createElement(WizardStepContext.Provider, {
77
119
  value: {
78
120
  index
@@ -81,10 +123,10 @@ function Step(props) {
81
123
  className: classnames('dnb-forms-step', className),
82
124
  element: "section",
83
125
  "aria-label": ariaLabel,
84
- innerRef: currentElementRef,
126
+ innerRef: innerRef,
85
127
  tabIndex: -1
86
128
  }, restProps), fieldProps ? React.createElement(FieldProvider, fieldProps, children) : children));
87
- if (activeIndex !== index || include === false || includeWhen && !check({
129
+ if (activeIndex !== index || includeWhen && !check({
88
130
  visibleWhen: includeWhen
89
131
  })) {
90
132
  if (keepInDOMProp !== null && keepInDOMProp !== void 0 ? keepInDOMProp : keepInDOM) {
@@ -97,7 +139,7 @@ function Step(props) {
97
139
  warn(`initialActiveIndex={${initialActiveIndex}} is used. Fields of previews steps may not validate. You can use "keepInDOM" to always run validation.`);
98
140
  }
99
141
  }
100
- return _Fragment || (_Fragment = React.createElement(React.Fragment, null));
142
+ return _Fragment3 || (_Fragment3 = React.createElement(React.Fragment, null));
101
143
  }
102
144
  return React.createElement(React.Fragment, null, content);
103
145
  }
@@ -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","currentId","originalTitleProp","stringifiedTitle","_originalTitleProp$pr","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":[]}
@@ -8,11 +8,11 @@ export default function useStep(id = null, {
8
8
  onStepChange
9
9
  } = {}) {
10
10
  const setFormError = useCallback(() => null, []);
11
- const context = useContext(WizardContext) || {
11
+ const wizardContext = useContext(WizardContext) || {
12
12
  setFormError
13
13
  };
14
- if (onStepChange && !id && context.id) {
15
- id = context.id;
14
+ if (onStepChange && !id && wizardContext.id) {
15
+ id = wizardContext.id;
16
16
  }
17
17
  const sharedDataRef = useRef(null);
18
18
  sharedDataRef.current = useSharedState(id ? createReferenceKey(id, 'wizard') : undefined);
@@ -25,22 +25,14 @@ export default function useStep(id = null, {
25
25
  if (data && !data.setFormError) {
26
26
  data.setFormError = setFormError;
27
27
  }
28
- const value = data || context;
28
+ const context = data || wizardContext;
29
29
  const {
30
- stepsRef
31
- } = value || {};
32
- const setTotalSteps = useCallback(() => {
33
- const totalSteps = Object.keys((stepsRef === null || stepsRef === void 0 ? void 0 : stepsRef.current) || {}).length || 0;
34
- if (value.totalSteps !== totalSteps) {
35
- value.totalSteps = totalSteps;
36
- }
37
- }, [stepsRef, value]);
38
- if (data) {
39
- setTotalSteps();
30
+ totalStepsRef
31
+ } = context || {};
32
+ const totalSteps = (totalStepsRef === null || totalStepsRef === void 0 ? void 0 : totalStepsRef.current) || 0;
33
+ if (context && context.totalSteps !== totalSteps) {
34
+ context.totalSteps = totalSteps;
40
35
  }
41
- useLayoutEffect(() => {
42
- setTotalSteps();
43
- }, [setTotalSteps, stepsRef, value]);
44
- return value;
36
+ return context;
45
37
  }
46
38
  //# 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","onStepChange","setFormError","context","sharedDataRef","current","undefined","extend","data","value","stepsRef","setTotalSteps","totalSteps","Object","keys","length"],"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,CAC7BC,EAAiB,GAAG,IAAI,EACxB;EAAEC;AAA8C,CAAC,GAAG,CAAC,CAAC,EACtD;EACA,MAAMC,YAAY,GAAGZ,WAAW,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;EAChD,MAAMa,OAAO,GAAGZ,UAAU,CAACE,aAAa,CAAC,IAAI;IAAES;EAAa,CAAC;EAI7D,IAAID,YAAY,IAAI,CAACD,EAAE,IAAIG,OAAO,CAACH,EAAE,EAAE;IACrCA,EAAE,GAAGG,OAAO,CAACH,EAAE;EACjB;EAEA,MAAMI,aAAa,GACjBZ,MAAM,CAAwD,IAAI,CAAC;EACrEY,aAAa,CAACC,OAAO,GAAGV,cAAc,CACpCK,EAAE,GAAGN,kBAAkB,CAACM,EAAE,EAAE,QAAQ,CAAC,GAAGM,SAC1C,CAAC;EAEDV,eAAe,CAAC,MAAM;IACpBQ,aAAa,CAACC,OAAO,CAACE,MAAM,CAAC;MAC3BN;IACF,CAAkC,CAAC;EACrC,CAAC,EAAE,CAACA,YAAY,CAAC,CAAC;EAElB,MAAMO,IAAI,GAAGJ,aAAa,CAACC,OAAO,CAACG,IAAI;EACvC,IAAIA,IAAI,IAAI,CAACA,IAAI,CAACN,YAAY,EAAE;IAC9BM,IAAI,CAACN,YAAY,GAAGA,YAAY;EAClC;EAEA,MAAMO,KAAK,GAAGD,IAAI,IAAIL,OAAO;EAC7B,MAAM;IAAEO;EAAS,CAAC,GAAGD,KAAK,IAAI,CAAC,CAAC;EAChC,MAAME,aAAa,GAAGrB,WAAW,CAAC,MAAM;IACtC,MAAMsB,UAAU,GAAGC,MAAM,CAACC,IAAI,CAAC,CAAAJ,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEL,OAAO,KAAI,CAAC,CAAC,CAAC,CAACU,MAAM,IAAI,CAAC;IACnE,IAAIN,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;EACAf,eAAe,CAAC,MAAM;IACpBe,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","onStepChange","setFormError","wizardContext","sharedDataRef","current","undefined","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,CAC7BC,EAAiB,GAAG,IAAI,EACxB;EAAEC;AAA8C,CAAC,GAAG,CAAC,CAAC,EACtD;EACA,MAAMC,YAAY,GAAGZ,WAAW,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;EAChD,MAAMa,aAAa,GAAGZ,UAAU,CAACE,aAAa,CAAC,IAAI;IAAES;EAAa,CAAC;EAInE,IAAID,YAAY,IAAI,CAACD,EAAE,IAAIG,aAAa,CAACH,EAAE,EAAE;IAC3CA,EAAE,GAAGG,aAAa,CAACH,EAAE;EACvB;EAEA,MAAMI,aAAa,GACjBZ,MAAM,CAAwD,IAAI,CAAC;EACrEY,aAAa,CAACC,OAAO,GAAGV,cAAc,CACpCK,EAAE,GAAGN,kBAAkB,CAACM,EAAE,EAAE,QAAQ,CAAC,GAAGM,SAC1C,CAAC;EAEDV,eAAe,CAAC,MAAM;IACpBQ,aAAa,CAACC,OAAO,CAACE,MAAM,CAAC;MAC3BN;IACF,CAAkC,CAAC;EACrC,CAAC,EAAE,CAACA,YAAY,CAAC,CAAC;EAElB,MAAMO,IAAI,GAAGJ,aAAa,CAACC,OAAO,CAACG,IAAI;EACvC,IAAIA,IAAI,IAAI,CAACA,IAAI,CAACN,YAAY,EAAE;IAC9BM,IAAI,CAACN,YAAY,GAAGA,YAAY;EAClC;EAEA,MAAMO,OAAO,GAAGD,IAAI,IAAIL,aAAa;EACrC,MAAM;IAAEO;EAAc,CAAC,GAAGD,OAAO,IAAI,CAAC,CAAC;EACvC,MAAME,UAAU,GAAG,CAAAD,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEL,OAAO,KAAI,CAAC;EAC9C,IAAII,OAAO,IAAIA,OAAO,CAACE,UAAU,KAAKA,UAAU,EAAE;IAChDF,OAAO,CAACE,UAAU,GAAGA,UAAU;EACjC;EAEA,OAAOF,OAAO;AAChB","ignoreList":[]}
@@ -101,8 +101,10 @@ export default function useFieldProps(localProps, {
101
101
  setMountedField: setMountedFieldSnapshot
102
102
  } = useContext(SnapshotContext) || {};
103
103
  const {
104
- isVisible
104
+ isVisible,
105
+ keepInDOM
105
106
  } = useContext(VisibilityContext) || {};
107
+ const handleFieldAsVisible = isVisible || keepInDOM;
106
108
  const {
107
109
  getValueByPath,
108
110
  getSourceValue
@@ -156,7 +158,7 @@ export default function useFieldProps(localProps, {
156
158
  activeIndex,
157
159
  activeIndexRef,
158
160
  prerenderFieldProps,
159
- revealError: revealErrorWizard
161
+ setFieldError: setFieldErrorWizard
160
162
  } = wizardContext || {};
161
163
  const {
162
164
  index: wizardIndex
@@ -383,10 +385,10 @@ export default function useFieldProps(localProps, {
383
385
  }, [setFieldStateDataContext, identifier, setFieldStateFieldBlock, validateInitially]);
384
386
  const setErrorState = useCallback(hasError => {
385
387
  showFieldErrorFieldBlock === null || showFieldErrorFieldBlock === void 0 ? void 0 : showFieldErrorFieldBlock(identifier, hasError);
386
- revealErrorWizard === null || revealErrorWizard === void 0 ? void 0 : revealErrorWizard(wizardIndex, identifier, hasError);
387
388
  revealErrorBoundary === null || revealErrorBoundary === void 0 ? void 0 : revealErrorBoundary(identifier, hasError);
388
389
  revealErrorDataContext === null || revealErrorDataContext === void 0 ? void 0 : revealErrorDataContext(identifier, hasError);
389
- }, [identifier, revealErrorBoundary, revealErrorDataContext, revealErrorWizard, showFieldErrorFieldBlock, wizardIndex]);
390
+ setFieldErrorWizard === null || setFieldErrorWizard === void 0 ? void 0 : setFieldErrorWizard(wizardIndex, identifier, handleFieldAsVisible !== false ? hasError : undefined);
391
+ }, [identifier, handleFieldAsVisible, revealErrorBoundary, revealErrorDataContext, setFieldErrorWizard, showFieldErrorFieldBlock, wizardIndex]);
390
392
  const revealError = useCallback(() => {
391
393
  if (validateInitially === false && revealErrorRef.current === false) {
392
394
  revealErrorRef.current = undefined;
@@ -616,6 +618,7 @@ export default function useFieldProps(localProps, {
616
618
  localErrorRef.current = error;
617
619
  setFieldErrorDataContext === null || setFieldErrorDataContext === void 0 ? void 0 : setFieldErrorDataContext(identifier, error);
618
620
  setFieldErrorBoundary === null || setFieldErrorBoundary === void 0 ? void 0 : setFieldErrorBoundary(identifier, error);
621
+ setFieldErrorWizard === null || setFieldErrorWizard === void 0 ? void 0 : setFieldErrorWizard(wizardIndex, identifier, handleFieldAsVisible !== false ? Boolean(error) : undefined);
619
622
  setBlockRecord === null || setBlockRecord === void 0 ? void 0 : setBlockRecord({
620
623
  stateId,
621
624
  identifier,
@@ -625,7 +628,7 @@ export default function useFieldProps(localProps, {
625
628
  });
626
629
  setFieldStateDataContext === null || setFieldStateDataContext === void 0 ? void 0 : setFieldStateDataContext(identifier, error ? 'error' : undefined);
627
630
  forceUpdate();
628
- }, [identifier, inFieldBlock, prepareError, setFieldErrorBoundary, setFieldErrorDataContext, setFieldStateDataContext, setBlockRecord, stateId, validateInitially]);
631
+ }, [handleFieldAsVisible, identifier, inFieldBlock, prepareError, setBlockRecord, setFieldErrorBoundary, setFieldErrorDataContext, setFieldErrorWizard, setFieldStateDataContext, stateId, validateInitially, wizardIndex]);
629
632
  const clearErrorState = useCallback(() => {
630
633
  var _schemaValidatorRef$c;
631
634
  persistErrorState('wipe', undefined);
@@ -1173,7 +1176,12 @@ export default function useFieldProps(localProps, {
1173
1176
  setFieldErrorBoundary === null || setFieldErrorBoundary === void 0 ? void 0 : setFieldErrorBoundary(identifier, undefined);
1174
1177
  localErrorRef.current = undefined;
1175
1178
  };
1176
- }, [identifier, setFieldErrorBoundary, setFieldErrorDataContext, setMountedFieldStateDataContext, wizardIndex]);
1179
+ }, [identifier, setFieldErrorBoundary, setFieldErrorDataContext]);
1180
+ useEffect(() => {
1181
+ return () => {
1182
+ setFieldErrorWizard === null || setFieldErrorWizard === void 0 ? void 0 : setFieldErrorWizard(wizardIndex, identifier, undefined);
1183
+ };
1184
+ }, [identifier, setFieldErrorWizard, wizardIndex]);
1177
1185
  useEffect(() => {
1178
1186
  validateValue();
1179
1187
  }, [validateValue]);
@@ -1382,7 +1390,7 @@ export default function useFieldProps(localProps, {
1382
1390
  });
1383
1391
  return () => {
1384
1392
  if (mountedFieldsRefFieldBlock) {
1385
- mountedFieldsRefFieldBlock.current[identifier] = true;
1393
+ mountedFieldsRefFieldBlock.current.set(identifier, true);
1386
1394
  }
1387
1395
  };
1388
1396
  }
@@ -1419,7 +1427,7 @@ export default function useFieldProps(localProps, {
1419
1427
  if (inFieldBlock) {
1420
1428
  var _fieldBlockContext$fi;
1421
1429
  if (mountedFieldsRefFieldBlock) {
1422
- mountedFieldsRefFieldBlock.current[identifier] = true;
1430
+ mountedFieldsRefFieldBlock.current.set(identifier, true);
1423
1431
  }
1424
1432
  const stateIds = (_fieldBlockContext$fi = fieldBlockContext.fieldStateIdsRef) === null || _fieldBlockContext$fi === void 0 ? void 0 : _fieldBlockContext$fi.current;
1425
1433
  if (stateIds) {