@dnb/eufemia 10.69.0 → 10.69.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (276) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/cjs/components/global-error/GlobalError.d.ts +1 -1
  3. package/cjs/components/global-error/GlobalError.js +1 -1
  4. package/cjs/components/global-error/GlobalError.js.map +1 -1
  5. package/cjs/components/global-error/GlobalErrorDocs.d.ts +2 -0
  6. package/cjs/components/global-error/GlobalErrorDocs.js +64 -0
  7. package/cjs/components/global-error/GlobalErrorDocs.js.map +1 -0
  8. package/cjs/components/info-card/InfoCardDocs.d.ts +3 -0
  9. package/cjs/components/info-card/InfoCardDocs.js +101 -0
  10. package/cjs/components/info-card/InfoCardDocs.js.map +1 -0
  11. package/cjs/components/tabs/Tabs.js +2 -2
  12. package/cjs/components/tabs/Tabs.js.map +1 -1
  13. package/cjs/components/upload/UploadFileList.js +2 -3
  14. package/cjs/components/upload/UploadFileList.js.map +1 -1
  15. package/cjs/extensions/forms/DataContext/Context.d.ts +2 -2
  16. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  17. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +4 -4
  18. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  19. package/cjs/extensions/forms/DataContext/Provider/Provider.js +35 -41
  20. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  21. package/cjs/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
  22. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +2 -2
  23. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  24. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
  25. package/cjs/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  26. package/cjs/extensions/forms/Form/Isolation/Isolation.js +3 -4
  27. package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  28. package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +1 -10
  29. package/cjs/extensions/forms/Form/Visibility/Visibility.js +1 -0
  30. package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  31. package/cjs/extensions/forms/Form/Visibility/VisibilityContext.d.ts +2 -1
  32. package/cjs/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -1
  33. package/cjs/extensions/forms/Form/Visibility/useVisibility.js +1 -1
  34. package/cjs/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  35. package/cjs/extensions/forms/Iterate/Array/ArrayItemArea.d.ts +3 -2
  36. package/cjs/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
  37. package/cjs/extensions/forms/Iterate/EditContainer/CancelButton.js +5 -2
  38. package/cjs/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
  39. package/cjs/extensions/forms/Iterate/EditContainer/DoneButton.js +1 -1
  40. package/cjs/extensions/forms/Iterate/EditContainer/DoneButton.js.map +1 -1
  41. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -2
  42. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  43. package/cjs/extensions/forms/Iterate/PushContainer/OpenButton.js +1 -1
  44. package/cjs/extensions/forms/Iterate/PushContainer/OpenButton.js.map +1 -1
  45. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +9 -2
  46. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  47. package/cjs/extensions/forms/Iterate/ViewContainer/EditButton.js +1 -1
  48. package/cjs/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -1
  49. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +1 -1
  50. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  51. package/cjs/extensions/forms/Wizard/Buttons/Buttons.js +2 -2
  52. package/cjs/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -1
  53. package/cjs/extensions/forms/Wizard/Container/DisplaySteps.js +6 -5
  54. package/cjs/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -1
  55. package/cjs/extensions/forms/Wizard/Container/IterateOverSteps.d.ts +4 -3
  56. package/cjs/extensions/forms/Wizard/Container/IterateOverSteps.js +36 -35
  57. package/cjs/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -1
  58. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +104 -57
  59. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  60. package/cjs/extensions/forms/Wizard/Container/useCollectStepsData.d.ts +10 -0
  61. package/cjs/extensions/forms/Wizard/Container/useCollectStepsData.js +66 -0
  62. package/cjs/extensions/forms/Wizard/Container/useCollectStepsData.js.map +1 -0
  63. package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +17 -4
  64. package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  65. package/cjs/extensions/forms/Wizard/Context/types.d.ts +9 -6
  66. package/cjs/extensions/forms/Wizard/Context/types.js.map +1 -1
  67. package/cjs/extensions/forms/Wizard/Step/Step.d.ts +1 -1
  68. package/cjs/extensions/forms/Wizard/Step/Step.js +65 -22
  69. package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
  70. package/cjs/extensions/forms/Wizard/Step/StepDocs.js +2 -2
  71. package/cjs/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  72. package/cjs/extensions/forms/Wizard/hooks/useStep.js +10 -18
  73. package/cjs/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  74. package/cjs/extensions/forms/hooks/useFieldProps.js +16 -8
  75. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  76. package/cjs/extensions/forms/hooks/useValueProps.js +1 -1
  77. package/cjs/extensions/forms/hooks/useValueProps.js.map +1 -1
  78. package/cjs/shared/Eufemia.d.ts +1 -1
  79. package/cjs/shared/Eufemia.js +2 -2
  80. package/cjs/shared/Eufemia.js.map +1 -1
  81. package/cjs/shared/component-helper.js +1 -1
  82. package/cjs/shared/component-helper.js.map +1 -1
  83. package/cjs/style/core/scopes.scss +1 -1
  84. package/cjs/style/dnb-ui-basis.css +1 -1
  85. package/cjs/style/dnb-ui-basis.min.css +1 -1
  86. package/cjs/style/dnb-ui-body.css +1 -1
  87. package/cjs/style/dnb-ui-body.min.css +1 -1
  88. package/cjs/style/dnb-ui-core.css +1 -1
  89. package/cjs/style/dnb-ui-core.min.css +1 -1
  90. package/components/global-error/GlobalError.d.ts +1 -1
  91. package/components/global-error/GlobalError.js +1 -1
  92. package/components/global-error/GlobalError.js.map +1 -1
  93. package/components/global-error/GlobalErrorDocs.d.ts +2 -0
  94. package/components/global-error/GlobalErrorDocs.js +58 -0
  95. package/components/global-error/GlobalErrorDocs.js.map +1 -0
  96. package/components/info-card/InfoCardDocs.d.ts +3 -0
  97. package/components/info-card/InfoCardDocs.js +95 -0
  98. package/components/info-card/InfoCardDocs.js.map +1 -0
  99. package/components/tabs/Tabs.js +2 -2
  100. package/components/tabs/Tabs.js.map +1 -1
  101. package/components/upload/UploadFileList.js +2 -3
  102. package/components/upload/UploadFileList.js.map +1 -1
  103. package/es/components/global-error/GlobalError.d.ts +1 -1
  104. package/es/components/global-error/GlobalError.js +1 -1
  105. package/es/components/global-error/GlobalError.js.map +1 -1
  106. package/es/components/global-error/GlobalErrorDocs.d.ts +2 -0
  107. package/es/components/global-error/GlobalErrorDocs.js +58 -0
  108. package/es/components/global-error/GlobalErrorDocs.js.map +1 -0
  109. package/es/components/info-card/InfoCardDocs.d.ts +3 -0
  110. package/es/components/info-card/InfoCardDocs.js +95 -0
  111. package/es/components/info-card/InfoCardDocs.js.map +1 -0
  112. package/es/components/tabs/Tabs.js +2 -2
  113. package/es/components/tabs/Tabs.js.map +1 -1
  114. package/es/components/upload/UploadFileList.js +2 -3
  115. package/es/components/upload/UploadFileList.js.map +1 -1
  116. package/es/extensions/forms/DataContext/Context.d.ts +2 -2
  117. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  118. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +4 -4
  119. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  120. package/es/extensions/forms/DataContext/Provider/Provider.js +21 -29
  121. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  122. package/es/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
  123. package/es/extensions/forms/FieldBlock/FieldBlock.js +2 -2
  124. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  125. package/es/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
  126. package/es/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  127. package/es/extensions/forms/Form/Isolation/Isolation.js +3 -4
  128. package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  129. package/es/extensions/forms/Form/Visibility/Visibility.d.ts +1 -10
  130. package/es/extensions/forms/Form/Visibility/Visibility.js +1 -0
  131. package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  132. package/es/extensions/forms/Form/Visibility/VisibilityContext.d.ts +2 -1
  133. package/es/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -1
  134. package/es/extensions/forms/Form/Visibility/useVisibility.js +1 -1
  135. package/es/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  136. package/es/extensions/forms/Iterate/Array/ArrayItemArea.d.ts +3 -2
  137. package/es/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
  138. package/es/extensions/forms/Iterate/EditContainer/CancelButton.js +5 -2
  139. package/es/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
  140. package/es/extensions/forms/Iterate/EditContainer/DoneButton.js +1 -1
  141. package/es/extensions/forms/Iterate/EditContainer/DoneButton.js.map +1 -1
  142. package/es/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -2
  143. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  144. package/es/extensions/forms/Iterate/PushContainer/OpenButton.js +1 -1
  145. package/es/extensions/forms/Iterate/PushContainer/OpenButton.js.map +1 -1
  146. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +9 -2
  147. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  148. package/es/extensions/forms/Iterate/ViewContainer/EditButton.js +1 -1
  149. package/es/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -1
  150. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +1 -1
  151. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  152. package/es/extensions/forms/Wizard/Buttons/Buttons.js +2 -2
  153. package/es/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -1
  154. package/es/extensions/forms/Wizard/Container/DisplaySteps.js +6 -5
  155. package/es/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -1
  156. package/es/extensions/forms/Wizard/Container/IterateOverSteps.d.ts +4 -3
  157. package/es/extensions/forms/Wizard/Container/IterateOverSteps.js +35 -34
  158. package/es/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -1
  159. package/es/extensions/forms/Wizard/Container/WizardContainer.js +101 -58
  160. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  161. package/es/extensions/forms/Wizard/Container/useCollectStepsData.d.ts +10 -0
  162. package/es/extensions/forms/Wizard/Container/useCollectStepsData.js +59 -0
  163. package/es/extensions/forms/Wizard/Container/useCollectStepsData.js.map +1 -0
  164. package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +17 -4
  165. package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  166. package/es/extensions/forms/Wizard/Context/types.d.ts +9 -6
  167. package/es/extensions/forms/Wizard/Context/types.js.map +1 -1
  168. package/es/extensions/forms/Wizard/Step/Step.d.ts +1 -1
  169. package/es/extensions/forms/Wizard/Step/Step.js +64 -22
  170. package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
  171. package/es/extensions/forms/Wizard/Step/StepDocs.js +2 -2
  172. package/es/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  173. package/es/extensions/forms/Wizard/hooks/useStep.js +10 -18
  174. package/es/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  175. package/es/extensions/forms/hooks/useFieldProps.js +16 -8
  176. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  177. package/es/extensions/forms/hooks/useValueProps.js +1 -1
  178. package/es/extensions/forms/hooks/useValueProps.js.map +1 -1
  179. package/es/shared/Eufemia.d.ts +1 -1
  180. package/es/shared/Eufemia.js +2 -2
  181. package/es/shared/Eufemia.js.map +1 -1
  182. package/es/shared/component-helper.js +1 -1
  183. package/es/shared/component-helper.js.map +1 -1
  184. package/es/style/core/scopes.scss +1 -1
  185. package/es/style/dnb-ui-basis.css +1 -1
  186. package/es/style/dnb-ui-basis.min.css +1 -1
  187. package/es/style/dnb-ui-body.css +1 -1
  188. package/es/style/dnb-ui-body.min.css +1 -1
  189. package/es/style/dnb-ui-core.css +1 -1
  190. package/es/style/dnb-ui-core.min.css +1 -1
  191. package/esm/dnb-ui-basis.min.mjs +1 -1
  192. package/esm/dnb-ui-components.min.mjs +1 -1
  193. package/esm/dnb-ui-elements.min.mjs +1 -1
  194. package/esm/dnb-ui-extensions.min.mjs +1 -1
  195. package/esm/dnb-ui-lib.min.mjs +1 -1
  196. package/extensions/forms/DataContext/Context.d.ts +2 -2
  197. package/extensions/forms/DataContext/Context.js.map +1 -1
  198. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +4 -4
  199. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  200. package/extensions/forms/DataContext/Provider/Provider.js +35 -41
  201. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  202. package/extensions/forms/Field/Provider/useFieldProvider.d.ts +3 -3
  203. package/extensions/forms/FieldBlock/FieldBlock.js +2 -2
  204. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  205. package/extensions/forms/FieldBlock/FieldBlockContext.d.ts +1 -1
  206. package/extensions/forms/FieldBlock/FieldBlockContext.js.map +1 -1
  207. package/extensions/forms/Form/Isolation/Isolation.js +3 -4
  208. package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  209. package/extensions/forms/Form/Visibility/Visibility.d.ts +1 -10
  210. package/extensions/forms/Form/Visibility/Visibility.js +1 -0
  211. package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  212. package/extensions/forms/Form/Visibility/VisibilityContext.d.ts +2 -1
  213. package/extensions/forms/Form/Visibility/VisibilityContext.js.map +1 -1
  214. package/extensions/forms/Form/Visibility/useVisibility.js +1 -1
  215. package/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  216. package/extensions/forms/Iterate/Array/ArrayItemArea.d.ts +3 -2
  217. package/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
  218. package/extensions/forms/Iterate/EditContainer/CancelButton.js +5 -2
  219. package/extensions/forms/Iterate/EditContainer/CancelButton.js.map +1 -1
  220. package/extensions/forms/Iterate/EditContainer/DoneButton.js +1 -1
  221. package/extensions/forms/Iterate/EditContainer/DoneButton.js.map +1 -1
  222. package/extensions/forms/Iterate/EditContainer/EditContainer.d.ts +2 -2
  223. package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  224. package/extensions/forms/Iterate/PushContainer/OpenButton.js +1 -1
  225. package/extensions/forms/Iterate/PushContainer/OpenButton.js.map +1 -1
  226. package/extensions/forms/Iterate/PushContainer/PushContainer.js +9 -2
  227. package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  228. package/extensions/forms/Iterate/ViewContainer/EditButton.js +1 -1
  229. package/extensions/forms/Iterate/ViewContainer/EditButton.js.map +1 -1
  230. package/extensions/forms/Iterate/ViewContainer/ViewContainer.d.ts +1 -1
  231. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  232. package/extensions/forms/Wizard/Buttons/Buttons.js +2 -2
  233. package/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -1
  234. package/extensions/forms/Wizard/Container/DisplaySteps.js +6 -5
  235. package/extensions/forms/Wizard/Container/DisplaySteps.js.map +1 -1
  236. package/extensions/forms/Wizard/Container/IterateOverSteps.d.ts +4 -3
  237. package/extensions/forms/Wizard/Container/IterateOverSteps.js +36 -34
  238. package/extensions/forms/Wizard/Container/IterateOverSteps.js.map +1 -1
  239. package/extensions/forms/Wizard/Container/WizardContainer.js +105 -58
  240. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  241. package/extensions/forms/Wizard/Container/useCollectStepsData.d.ts +10 -0
  242. package/extensions/forms/Wizard/Container/useCollectStepsData.js +60 -0
  243. package/extensions/forms/Wizard/Container/useCollectStepsData.js.map +1 -0
  244. package/extensions/forms/Wizard/Context/WizardContext.d.ts +17 -4
  245. package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  246. package/extensions/forms/Wizard/Context/types.d.ts +9 -6
  247. package/extensions/forms/Wizard/Context/types.js.map +1 -1
  248. package/extensions/forms/Wizard/Step/Step.d.ts +1 -1
  249. package/extensions/forms/Wizard/Step/Step.js +66 -22
  250. package/extensions/forms/Wizard/Step/Step.js.map +1 -1
  251. package/extensions/forms/Wizard/Step/StepDocs.js +2 -2
  252. package/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  253. package/extensions/forms/Wizard/hooks/useStep.js +10 -18
  254. package/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  255. package/extensions/forms/hooks/useFieldProps.js +16 -8
  256. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  257. package/extensions/forms/hooks/useValueProps.js +1 -1
  258. package/extensions/forms/hooks/useValueProps.js.map +1 -1
  259. package/package.json +1 -1
  260. package/shared/Eufemia.d.ts +1 -1
  261. package/shared/Eufemia.js +2 -2
  262. package/shared/Eufemia.js.map +1 -1
  263. package/shared/component-helper.js +1 -1
  264. package/shared/component-helper.js.map +1 -1
  265. package/style/core/scopes.scss +1 -1
  266. package/style/dnb-ui-basis.css +1 -1
  267. package/style/dnb-ui-basis.min.css +1 -1
  268. package/style/dnb-ui-body.css +1 -1
  269. package/style/dnb-ui-body.min.css +1 -1
  270. package/style/dnb-ui-core.css +1 -1
  271. package/style/dnb-ui-core.min.css +1 -1
  272. package/umd/dnb-ui-basis.min.js +1 -1
  273. package/umd/dnb-ui-components.min.js +1 -1
  274. package/umd/dnb-ui-elements.min.js +1 -1
  275. package/umd/dnb-ui-extensions.min.js +1 -1
  276. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ArrayItemArea.js","names":["React","useCallback","useContext","useReducer","useRef","classnames","Card","HeightAnimation","IterateItemContext","ArrayItemAreaContext","FieldBoundaryContext","useLayoutEffect","window","useEffect","ArrayItemArea","props","forceUpdate","mode","open","ariaLabel","onAnimationEnd","className","children","openDelay","variant","toolbarVariant","restProps","_objectWithoutProperties","_excluded","localContextRef","hasError","hasSubmitError","current","nextFocusElementRef","isNew","determineMode","value","initialContainerMode","Object","keys","length","containerMode","modeOptions","omitFocusManagement","editMode","switchContainerMode","preventUpdate","handleRemove","index","previousContainerMode","openRef","isRemoving","setOpenState","setTimeout","setFocus","state","_localContextRef$curr","_localContextRef$curr2","_localContextRef$curr3","_localContextRef$curr4","elementRef","focus","call","_nextFocusElementRef$","_nextFocusElementRef$2","handleAnimationEnd","_localContextRef$curr5","_localContextRef$curr6","fulfillRemove","handleRemoveItem","Array","from","parentElement","childNodes","at","e","keepItems","createElement","Provider","divider","duration","keepInDOM","_extends","stack","filled","innerSpace","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/Array/ArrayItemArea.tsx"],"sourcesContent":["import React, { useCallback, useContext, useReducer, useRef } from 'react'\nimport classnames from 'classnames'\nimport { Card, HeightAnimation } from '../../../../components'\nimport IterateItemContext, {\n IterateItemContextState,\n} from '../IterateItemContext'\nimport ArrayItemAreaContext from './ArrayItemAreaContext'\nimport FieldBoundaryContext from '../../DataContext/FieldBoundary/FieldBoundaryContext'\nimport { Props as FlexContainerProps } from '../../../../components/flex/Container'\nimport { ContainerMode } from './types'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type ArrayItemAreaProps = {\n /**\n * Defines the variant of the ViewContainer, EditContainer or PushContainer. Can be `outline`, `filled` or `basic`.\n * Defaults to `outline`.\n */\n variant?: 'outline' | 'basic' | 'filled'\n toolbarVariant?: 'minimumOneItem' | 'custom'\n}\n\nexport type Props = {\n mode: ContainerMode\n open?: boolean | undefined\n ariaLabel?: string\n openDelay?: number\n} & ArrayItemAreaProps\n\nfunction ArrayItemArea(props: Props & FlexContainerProps) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const {\n mode,\n open,\n ariaLabel,\n onAnimationEnd,\n className,\n children,\n openDelay = 100,\n variant = 'outline',\n toolbarVariant,\n ...restProps\n } = props\n\n const localContextRef = useRef<IterateItemContextState>()\n const { hasError, hasSubmitError } =\n useContext(FieldBoundaryContext) || {}\n localContextRef.current = useContext(IterateItemContext) || {}\n const nextFocusElementRef = useRef<HTMLElement>()\n const { isNew } = localContextRef.current\n\n const determineMode = useCallback(() => {\n const { value, initialContainerMode } = localContextRef.current\n if (initialContainerMode === 'auto') {\n // - Set the container mode to \"edit\" if we have an error\n if (\n hasSubmitError ||\n hasError ||\n !value ||\n (typeof value === 'object' && Object.keys(value).length === 0)\n ) {\n return 'edit'\n }\n }\n }, [hasError, hasSubmitError])\n\n if (determineMode() === 'edit') {\n localContextRef.current.containerMode = 'edit'\n if (!localContextRef.current.modeOptions) {\n localContextRef.current.modeOptions = {}\n }\n localContextRef.current.modeOptions.omitFocusManagement = true\n }\n if (localContextRef.current.containerMode === 'auto') {\n localContextRef.current.containerMode = 'view'\n }\n\n useLayoutEffect(() => {\n if (mode === 'edit') {\n const editMode = determineMode()\n if (editMode) {\n const { switchContainerMode } = localContextRef.current\n switchContainerMode?.(editMode, {\n omitFocusManagement: true,\n preventUpdate: true,\n })\n }\n }\n }, [determineMode, mode])\n\n const { handleRemove, index, previousContainerMode, containerMode } =\n localContextRef.current\n\n const openRef = useRef(open ?? (containerMode === mode && !isNew))\n const isRemoving = useRef(false)\n\n const setOpenState = useCallback((open: boolean) => {\n openRef.current = open\n forceUpdate()\n }, [])\n\n useLayoutEffect(() => {\n if (!isRemoving.current) {\n // - Set the open state, if it's controlled\n if (typeof open !== 'undefined') {\n setOpenState(open)\n } else {\n // - Open the block with animation, if it's in the right mode\n if (openRef.current !== (containerMode === mode)) {\n if (isNew) {\n setTimeout(() => {\n setOpenState(containerMode === mode)\n }, openDelay) // in order to apply the animation\n } else {\n setOpenState(containerMode === mode)\n }\n }\n }\n }\n }, [containerMode, isNew, mode, open, openDelay, setOpenState])\n\n const setFocus = useCallback(\n (state) => {\n if (\n localContextRef.current.modeOptions?.omitFocusManagement !==\n true &&\n !hasSubmitError &&\n containerMode === mode && // ensure we match the correct mode\n containerMode !== previousContainerMode // ensure we have a new mode\n ) {\n if (state === 'opened') {\n localContextRef.current.elementRef?.current?.focus?.()\n } else if (state === 'closed') {\n nextFocusElementRef.current?.focus?.()\n }\n }\n },\n [containerMode, hasSubmitError, mode, previousContainerMode]\n )\n\n // - Remove the block with animation, if it's in the right mode\n const handleAnimationEnd = useCallback(\n (state) => {\n if (!openRef.current && isRemoving.current) {\n isRemoving.current = false\n localContextRef.current.fulfillRemove?.()\n }\n\n setFocus(state)\n onAnimationEnd?.(state)\n },\n [onAnimationEnd, setFocus]\n )\n\n const handleRemoveItem = useCallback(() => {\n try {\n // Because \"previousElementSibling\" did not work in Jest/JSDOM\n nextFocusElementRef.current = Array.from(\n localContextRef.current.elementRef.current.parentElement.childNodes\n ).at(index - 1) as HTMLElement\n } catch (e) {\n //\n }\n isRemoving.current = true\n setOpenState(false)\n handleRemove?.({ keepItems: true })\n }, [handleRemove, index, setOpenState])\n\n return (\n <ArrayItemAreaContext.Provider\n value={{\n handleRemoveItem,\n variant,\n toolbarVariant,\n divider: restProps.divider,\n }}\n >\n <HeightAnimation\n className={classnames(\n 'dnb-forms-section-block',\n variant && `dnb-forms-section-block--variant-${variant}`,\n isNew && 'dnb-forms-section-block--new',\n hasSubmitError && 'dnb-forms-section-block--error',\n className\n )}\n open={openRef.current}\n onAnimationEnd={handleAnimationEnd}\n duration={450}\n keepInDOM // Ensure fields get mounted so they will sync with the data context\n >\n <Card\n stack\n filled={variant === 'filled'}\n innerSpace={variant === 'basic' ? false : 'small'}\n className=\"dnb-forms-section-block__inner\"\n {...restProps}\n aria-label={ariaLabel}\n >\n {children}\n </Card>\n </HeightAnimation>\n </ArrayItemAreaContext.Provider>\n )\n}\n\nArrayItemArea._supportsSpacingProps = true\nexport default ArrayItemArea\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ArrayItemArea.js","names":["React","useCallback","useContext","useReducer","useRef","classnames","Card","HeightAnimation","IterateItemContext","ArrayItemAreaContext","FieldBoundaryContext","useLayoutEffect","window","useEffect","ArrayItemArea","props","forceUpdate","mode","open","ariaLabel","onAnimationEnd","className","children","openDelay","variant","toolbarVariant","restProps","_objectWithoutProperties","_excluded","localContextRef","hasError","hasSubmitError","current","nextFocusElementRef","isNew","determineMode","value","initialContainerMode","Object","keys","length","containerMode","modeOptions","omitFocusManagement","editMode","switchContainerMode","preventUpdate","handleRemove","index","previousContainerMode","openRef","isRemoving","setOpenState","setTimeout","setFocus","state","_localContextRef$curr","_localContextRef$curr2","_localContextRef$curr3","_localContextRef$curr4","elementRef","focus","call","_nextFocusElementRef$","_nextFocusElementRef$2","handleAnimationEnd","_localContextRef$curr5","_localContextRef$curr6","fulfillRemove","handleRemoveItem","Array","from","parentElement","childNodes","at","e","keepItems","createElement","Provider","divider","duration","keepInDOM","_extends","stack","filled","innerSpace","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/Array/ArrayItemArea.tsx"],"sourcesContent":["import React, { useCallback, useContext, useReducer, useRef } from 'react'\nimport classnames from 'classnames'\nimport { Card, HeightAnimation } from '../../../../components'\nimport { HeightAnimationOnEndStates } from '../../../../components/height-animation/HeightAnimationInstance'\nimport { HeightAnimationProps } from '../../../../components/HeightAnimation'\nimport IterateItemContext, {\n IterateItemContextState,\n} from '../IterateItemContext'\nimport ArrayItemAreaContext from './ArrayItemAreaContext'\nimport FieldBoundaryContext from '../../DataContext/FieldBoundary/FieldBoundaryContext'\nimport { Props as FlexContainerProps } from '../../../../components/flex/Container'\nimport { ContainerMode } from './types'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport type ArrayItemAreaProps = {\n /**\n * Defines the variant of the ViewContainer, EditContainer or PushContainer. Can be `outline`, `filled` or `basic`.\n * Defaults to `outline`.\n */\n variant?: 'outline' | 'basic' | 'filled'\n toolbarVariant?: 'minimumOneItem' | 'custom'\n}\n\nexport type Props = {\n mode: ContainerMode\n open?: boolean | undefined\n ariaLabel?: string\n openDelay?: number\n} & ArrayItemAreaProps &\n Pick<HeightAnimationProps, 'onAnimationEnd'>\n\nfunction ArrayItemArea(\n props: Props & Omit<FlexContainerProps, 'onAnimationEnd'>\n) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const {\n mode,\n open,\n ariaLabel,\n onAnimationEnd,\n className,\n children,\n openDelay = 100,\n variant = 'outline',\n toolbarVariant,\n ...restProps\n } = props\n\n const localContextRef = useRef<IterateItemContextState>()\n const { hasError, hasSubmitError } =\n useContext(FieldBoundaryContext) || {}\n localContextRef.current = useContext(IterateItemContext) || {}\n const nextFocusElementRef = useRef<HTMLElement>()\n const { isNew } = localContextRef.current\n\n const determineMode = useCallback(() => {\n const { value, initialContainerMode } = localContextRef.current\n if (initialContainerMode === 'auto') {\n // - Set the container mode to \"edit\" if we have an error\n if (\n hasSubmitError ||\n hasError ||\n !value ||\n (typeof value === 'object' && Object.keys(value).length === 0)\n ) {\n return 'edit'\n }\n }\n }, [hasError, hasSubmitError])\n\n if (determineMode() === 'edit') {\n localContextRef.current.containerMode = 'edit'\n if (!localContextRef.current.modeOptions) {\n localContextRef.current.modeOptions = {}\n }\n localContextRef.current.modeOptions.omitFocusManagement = true\n }\n if (localContextRef.current.containerMode === 'auto') {\n localContextRef.current.containerMode = 'view'\n }\n\n useLayoutEffect(() => {\n if (mode === 'edit') {\n const editMode = determineMode()\n if (editMode) {\n const { switchContainerMode } = localContextRef.current\n switchContainerMode?.(editMode, {\n omitFocusManagement: true,\n preventUpdate: true,\n })\n }\n }\n }, [determineMode, mode])\n\n const { handleRemove, index, previousContainerMode, containerMode } =\n localContextRef.current\n\n const openRef = useRef(open ?? (containerMode === mode && !isNew))\n const isRemoving = useRef(false)\n\n const setOpenState = useCallback((open: boolean) => {\n openRef.current = open\n forceUpdate()\n }, [])\n\n useLayoutEffect(() => {\n if (!isRemoving.current) {\n // - Set the open state, if it's controlled\n if (typeof open !== 'undefined') {\n setOpenState(open)\n } else {\n // - Open the block with animation, if it's in the right mode\n if (openRef.current !== (containerMode === mode)) {\n if (isNew) {\n setTimeout(() => {\n setOpenState(containerMode === mode)\n }, openDelay) // in order to apply the animation\n } else {\n setOpenState(containerMode === mode)\n }\n }\n }\n }\n }, [containerMode, isNew, mode, open, openDelay, setOpenState])\n\n const setFocus = useCallback(\n (state: HeightAnimationOnEndStates) => {\n if (\n localContextRef.current.modeOptions?.omitFocusManagement !==\n true &&\n !hasSubmitError &&\n containerMode === mode && // ensure we match the correct mode\n containerMode !== previousContainerMode // ensure we have a new mode\n ) {\n if (state === 'opened') {\n localContextRef.current.elementRef?.current?.focus?.()\n } else if (state === 'closed') {\n nextFocusElementRef.current?.focus?.()\n }\n }\n },\n [containerMode, hasSubmitError, mode, previousContainerMode]\n )\n\n // - Remove the block with animation, if it's in the right mode\n const handleAnimationEnd = useCallback(\n (state: HeightAnimationOnEndStates) => {\n if (!openRef.current && isRemoving.current) {\n isRemoving.current = false\n localContextRef.current.fulfillRemove?.()\n }\n\n setFocus(state)\n onAnimationEnd?.(state)\n },\n [onAnimationEnd, setFocus]\n )\n\n const handleRemoveItem = useCallback(() => {\n try {\n // Because \"previousElementSibling\" did not work in Jest/JSDOM\n nextFocusElementRef.current = Array.from(\n localContextRef.current.elementRef.current.parentElement.childNodes\n ).at(index - 1) as HTMLElement\n } catch (e) {\n //\n }\n isRemoving.current = true\n setOpenState(false)\n handleRemove?.({ keepItems: true })\n }, [handleRemove, index, setOpenState])\n\n return (\n <ArrayItemAreaContext.Provider\n value={{\n handleRemoveItem,\n variant,\n toolbarVariant,\n divider: restProps.divider,\n }}\n >\n <HeightAnimation\n className={classnames(\n 'dnb-forms-section-block',\n variant && `dnb-forms-section-block--variant-${variant}`,\n isNew && 'dnb-forms-section-block--new',\n hasSubmitError && 'dnb-forms-section-block--error',\n className\n )}\n open={openRef.current}\n onAnimationEnd={handleAnimationEnd}\n duration={450}\n keepInDOM // Ensure fields get mounted so they will sync with the data context\n >\n <Card\n stack\n filled={variant === 'filled'}\n innerSpace={variant === 'basic' ? false : 'small'}\n className=\"dnb-forms-section-block__inner\"\n {...restProps}\n aria-label={ariaLabel}\n >\n {children}\n </Card>\n </HeightAnimation>\n </ArrayItemAreaContext.Provider>\n )\n}\n\nArrayItemArea._supportsSpacingProps = true\nexport default ArrayItemArea\n"],"mappings":"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","ignoreList":[]}
@@ -3,8 +3,9 @@
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
5
5
  var _Fragment;
6
- const _excluded = ["onClick"];
6
+ const _excluded = ["onClick", "className"];
7
7
  import React, { useCallback, useContext, useEffect, useRef } from 'react';
8
+ import classnames from 'classnames';
8
9
  import { Button } from '../../../../components';
9
10
  import useTranslation from '../../hooks/useTranslation';
10
11
  import IterateItemContext from '../IterateItemContext';
@@ -14,7 +15,8 @@ import { close } from '../../../../icons';
14
15
  import RemoveButton from '../RemoveButton';
15
16
  export default function CancelButton(props) {
16
17
  const {
17
- onClick
18
+ onClick,
19
+ className
18
20
  } = props,
19
21
  rest = _objectWithoutProperties(props, _excluded);
20
22
  const {
@@ -68,6 +70,7 @@ export default function CancelButton(props) {
68
70
  }
69
71
  return React.createElement(Button, _extends({
70
72
  variant: "tertiary",
73
+ className: classnames('dnb-forms-iterate__cancel-button', className),
71
74
  icon: close,
72
75
  icon_position: "left",
73
76
  on_click: cancelHandler
@@ -1 +1 @@
1
- {"version":3,"file":"CancelButton.js","names":["React","useCallback","useContext","useEffect","useRef","Button","useTranslation","IterateItemContext","ToolbarContext","FieldBoundaryContext","close","RemoveButton","CancelButton","props","onClick","rest","_objectWithoutProperties","_excluded","restoreOriginalValue","switchContainerMode","containerMode","arrayValue","isNew","index","setShowBoundaryErrors","setShowError","cancelButton","removeButton","IterateEditContainer","valueBackupRef","current","cancelHandler","event","wasNew","useWasNew","length","_Fragment","createElement","Fragment","_extends","text","variant","icon","icon_position","on_click","wasNewRef"],"sources":["../../../../../../src/extensions/forms/Iterate/EditContainer/CancelButton.tsx"],"sourcesContent":["import React, { useCallback, useContext, useEffect, useRef } from 'react'\nimport { Button } from '../../../../components'\nimport useTranslation from '../../hooks/useTranslation'\nimport IterateItemContext from '../IterateItemContext'\nimport ToolbarContext from '../Toolbar/ToolbarContext'\nimport FieldBoundaryContext from '../../DataContext/FieldBoundary/FieldBoundaryContext'\nimport { close } from '../../../../icons'\nimport { ButtonProps } from '../../../../components/Button'\nimport RemoveButton, { Props as RemoveButtonProps } from '../RemoveButton'\nimport { ContainerMode } from '../Array'\n\ntype Props = ButtonProps\n\nexport default function CancelButton(props: Props) {\n const { onClick, ...rest } = props\n const {\n restoreOriginalValue,\n switchContainerMode,\n containerMode,\n arrayValue,\n isNew,\n index,\n } = useContext(IterateItemContext) || {}\n const { setShowBoundaryErrors } = useContext(FieldBoundaryContext) || {}\n const { setShowError } = useContext(ToolbarContext) || {}\n\n const { cancelButton, removeButton } =\n useTranslation().IterateEditContainer\n const valueBackupRef = useRef<unknown>()\n\n useEffect(() => {\n if (containerMode === 'edit' && !valueBackupRef.current) {\n valueBackupRef.current = arrayValue?.[index]\n }\n if (containerMode === 'view') {\n valueBackupRef.current = null\n }\n }, [arrayValue, containerMode, index])\n\n const cancelHandler = useCallback(\n ({ event }: { event: React.MouseEvent<HTMLButtonElement> }) => {\n onClick?.(event)\n restoreOriginalValue?.(valueBackupRef.current)\n setShowError(false)\n setShowBoundaryErrors?.(false)\n switchContainerMode?.('view')\n },\n [\n onClick,\n restoreOriginalValue,\n setShowBoundaryErrors,\n setShowError,\n switchContainerMode,\n ]\n )\n\n const wasNew = useWasNew({ isNew, containerMode })\n\n if (containerMode === 'edit' && arrayValue?.length === 0) {\n return <></>\n }\n\n if (wasNew) {\n return (\n <RemoveButton\n text={removeButton}\n onClick={onClick}\n {...(rest as RemoveButtonProps)}\n />\n )\n }\n\n return (\n <Button\n variant=\"tertiary\"\n icon={close}\n icon_position=\"left\"\n on_click={cancelHandler}\n {...rest}\n >\n {cancelButton}\n </Button>\n )\n}\n\nexport function useWasNew({\n isNew,\n containerMode,\n}: {\n isNew: boolean\n containerMode: ContainerMode\n}) {\n const wasNewRef = useRef<unknown>(isNew)\n\n useEffect(() => {\n if (containerMode === 'view') {\n wasNewRef.current = false\n }\n }, [isNew, containerMode])\n\n return wasNewRef.current\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"CancelButton.js","names":["React","useCallback","useContext","useEffect","useRef","classnames","Button","useTranslation","IterateItemContext","ToolbarContext","FieldBoundaryContext","close","RemoveButton","CancelButton","props","onClick","className","rest","_objectWithoutProperties","_excluded","restoreOriginalValue","switchContainerMode","containerMode","arrayValue","isNew","index","setShowBoundaryErrors","setShowError","cancelButton","removeButton","IterateEditContainer","valueBackupRef","current","cancelHandler","event","wasNew","useWasNew","length","_Fragment","createElement","Fragment","_extends","text","variant","icon","icon_position","on_click","wasNewRef"],"sources":["../../../../../../src/extensions/forms/Iterate/EditContainer/CancelButton.tsx"],"sourcesContent":["import React, { useCallback, useContext, useEffect, useRef } from 'react'\nimport classnames from 'classnames'\nimport { Button } from '../../../../components'\nimport useTranslation from '../../hooks/useTranslation'\nimport IterateItemContext from '../IterateItemContext'\nimport ToolbarContext from '../Toolbar/ToolbarContext'\nimport FieldBoundaryContext from '../../DataContext/FieldBoundary/FieldBoundaryContext'\nimport { close } from '../../../../icons'\nimport { ButtonProps } from '../../../../components/Button'\nimport RemoveButton, { Props as RemoveButtonProps } from '../RemoveButton'\nimport { ContainerMode } from '../Array'\n\ntype Props = ButtonProps\n\nexport default function CancelButton(props: Props) {\n const { onClick, className, ...rest } = props\n const {\n restoreOriginalValue,\n switchContainerMode,\n containerMode,\n arrayValue,\n isNew,\n index,\n } = useContext(IterateItemContext) || {}\n const { setShowBoundaryErrors } = useContext(FieldBoundaryContext) || {}\n const { setShowError } = useContext(ToolbarContext) || {}\n\n const { cancelButton, removeButton } =\n useTranslation().IterateEditContainer\n const valueBackupRef = useRef<unknown>()\n\n useEffect(() => {\n if (containerMode === 'edit' && !valueBackupRef.current) {\n valueBackupRef.current = arrayValue?.[index]\n }\n if (containerMode === 'view') {\n valueBackupRef.current = null\n }\n }, [arrayValue, containerMode, index])\n\n const cancelHandler = useCallback(\n ({ event }: { event: React.MouseEvent<HTMLButtonElement> }) => {\n onClick?.(event)\n restoreOriginalValue?.(valueBackupRef.current)\n setShowError(false)\n setShowBoundaryErrors?.(false)\n switchContainerMode?.('view')\n },\n [\n onClick,\n restoreOriginalValue,\n setShowBoundaryErrors,\n setShowError,\n switchContainerMode,\n ]\n )\n\n const wasNew = useWasNew({ isNew, containerMode })\n\n if (containerMode === 'edit' && arrayValue?.length === 0) {\n return <></>\n }\n\n if (wasNew) {\n return (\n <RemoveButton\n text={removeButton}\n onClick={onClick}\n {...(rest as RemoveButtonProps)}\n />\n )\n }\n\n return (\n <Button\n variant=\"tertiary\"\n className={classnames('dnb-forms-iterate__cancel-button', className)}\n icon={close}\n icon_position=\"left\"\n on_click={cancelHandler}\n {...rest}\n >\n {cancelButton}\n </Button>\n )\n}\n\nexport function useWasNew({\n isNew,\n containerMode,\n}: {\n isNew: boolean\n containerMode: ContainerMode\n}) {\n const wasNewRef = useRef<unknown>(isNew)\n\n useEffect(() => {\n if (containerMode === 'view') {\n wasNewRef.current = false\n }\n }, [isNew, containerMode])\n\n return wasNewRef.current\n}\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACzE,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,MAAM,QAAQ,wBAAwB;AAC/C,OAAOC,cAAc,MAAM,4BAA4B;AACvD,OAAOC,kBAAkB,MAAM,uBAAuB;AACtD,OAAOC,cAAc,MAAM,2BAA2B;AACtD,OAAOC,oBAAoB,MAAM,sDAAsD;AACvF,SAASC,KAAK,QAAQ,mBAAmB;AAEzC,OAAOC,YAAY,MAAsC,iBAAiB;AAK1E,eAAe,SAASC,YAAYA,CAACC,KAAY,EAAE;EACjD,MAAM;MAAEC,OAAO;MAAEC;IAAmB,CAAC,GAAGF,KAAK;IAAdG,IAAI,GAAAC,wBAAA,CAAKJ,KAAK,EAAAK,SAAA;EAC7C,MAAM;IACJC,oBAAoB;IACpBC,mBAAmB;IACnBC,aAAa;IACbC,UAAU;IACVC,KAAK;IACLC;EACF,CAAC,GAAGvB,UAAU,CAACM,kBAAkB,CAAC,IAAI,CAAC,CAAC;EACxC,MAAM;IAAEkB;EAAsB,CAAC,GAAGxB,UAAU,CAACQ,oBAAoB,CAAC,IAAI,CAAC,CAAC;EACxE,MAAM;IAAEiB;EAAa,CAAC,GAAGzB,UAAU,CAACO,cAAc,CAAC,IAAI,CAAC,CAAC;EAEzD,MAAM;IAAEmB,YAAY;IAAEC;EAAa,CAAC,GAClCtB,cAAc,CAAC,CAAC,CAACuB,oBAAoB;EACvC,MAAMC,cAAc,GAAG3B,MAAM,CAAU,CAAC;EAExCD,SAAS,CAAC,MAAM;IACd,IAAImB,aAAa,KAAK,MAAM,IAAI,CAACS,cAAc,CAACC,OAAO,EAAE;MACvDD,cAAc,CAACC,OAAO,GAAGT,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAGE,KAAK,CAAC;IAC9C;IACA,IAAIH,aAAa,KAAK,MAAM,EAAE;MAC5BS,cAAc,CAACC,OAAO,GAAG,IAAI;IAC/B;EACF,CAAC,EAAE,CAACT,UAAU,EAAED,aAAa,EAAEG,KAAK,CAAC,CAAC;EAEtC,MAAMQ,aAAa,GAAGhC,WAAW,CAC/B,CAAC;IAAEiC;EAAsD,CAAC,KAAK;IAC7DnB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAGmB,KAAK,CAAC;IAChBd,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAGW,cAAc,CAACC,OAAO,CAAC;IAC9CL,YAAY,CAAC,KAAK,CAAC;IACnBD,qBAAqB,aAArBA,qBAAqB,uBAArBA,qBAAqB,CAAG,KAAK,CAAC;IAC9BL,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAG,MAAM,CAAC;EAC/B,CAAC,EACD,CACEN,OAAO,EACPK,oBAAoB,EACpBM,qBAAqB,EACrBC,YAAY,EACZN,mBAAmB,CAEvB,CAAC;EAED,MAAMc,MAAM,GAAGC,SAAS,CAAC;IAAEZ,KAAK;IAAEF;EAAc,CAAC,CAAC;EAElD,IAAIA,aAAa,KAAK,MAAM,IAAI,CAAAC,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEc,MAAM,MAAK,CAAC,EAAE;IACxD,OAAAC,SAAA,KAAAA,SAAA,GAAOtC,KAAA,CAAAuC,aAAA,CAAAvC,KAAA,CAAAwC,QAAA,MAAI,CAAC;EACd;EAEA,IAAIL,MAAM,EAAE;IACV,OACEnC,KAAA,CAAAuC,aAAA,CAAC3B,YAAY,EAAA6B,QAAA;MACXC,IAAI,EAAEb,YAAa;MACnBd,OAAO,EAAEA;IAAQ,GACZE,IAAI,CACV,CAAC;EAEN;EAEA,OACEjB,KAAA,CAAAuC,aAAA,CAACjC,MAAM,EAAAmC,QAAA;IACLE,OAAO,EAAC,UAAU;IAClB3B,SAAS,EAAEX,UAAU,CAAC,kCAAkC,EAAEW,SAAS,CAAE;IACrE4B,IAAI,EAAEjC,KAAM;IACZkC,aAAa,EAAC,MAAM;IACpBC,QAAQ,EAAEb;EAAc,GACpBhB,IAAI,GAEPW,YACK,CAAC;AAEb;AAEA,OAAO,SAASQ,SAASA,CAAC;EACxBZ,KAAK;EACLF;AAIF,CAAC,EAAE;EACD,MAAMyB,SAAS,GAAG3C,MAAM,CAAUoB,KAAK,CAAC;EAExCrB,SAAS,CAAC,MAAM;IACd,IAAImB,aAAa,KAAK,MAAM,EAAE;MAC5ByB,SAAS,CAACf,OAAO,GAAG,KAAK;IAC3B;EACF,CAAC,EAAE,CAACR,KAAK,EAAEF,aAAa,CAAC,CAAC;EAE1B,OAAOyB,SAAS,CAACf,OAAO;AAC1B","ignoreList":[]}
@@ -65,7 +65,7 @@ export default function DoneButton(props) {
65
65
  }, [commitHandleRef, hasError, hasVisibleError, setShowBoundaryErrors, setShowError, switchContainerMode]);
66
66
  return React.createElement(Button, _extends({
67
67
  variant: "tertiary",
68
- className: classnames('dnb-push-container__done-button', className),
68
+ className: classnames('dnb-forms-iterate__done-button', className),
69
69
  icon: check,
70
70
  icon_position: "left",
71
71
  on_click: doneHandler
@@ -1 +1 @@
1
- {"version":3,"file":"DoneButton.js","names":["React","useCallback","useContext","useEffect","useRef","classnames","Button","useTranslation","IterateItemContext","ToolbarContext","FieldBoundaryContext","PushContainerContext","check","DoneButton","props","className","restProps","_objectWithoutProperties","_excluded","switchContainerMode","containerMode","arrayValue","index","hasError","hasVisibleError","setShowBoundaryErrors","commitHandleRef","setShowError","doneButton","IterateEditContainer","valueBackupRef","current","doneHandler","_commitHandleRef$curr","call","createElement","_extends","variant","icon","icon_position","on_click"],"sources":["../../../../../../src/extensions/forms/Iterate/EditContainer/DoneButton.tsx"],"sourcesContent":["import React, { useCallback, useContext, useEffect, useRef } from 'react'\nimport classnames from 'classnames'\nimport { Button } from '../../../../components'\nimport useTranslation from '../../hooks/useTranslation'\nimport IterateItemContext from '../IterateItemContext'\nimport ToolbarContext from '../Toolbar/ToolbarContext'\nimport FieldBoundaryContext from '../../DataContext/FieldBoundary/FieldBoundaryContext'\nimport PushContainerContext from '../PushContainer/PushContainerContext'\nimport { check } from '../../../../icons'\nimport { ButtonProps } from '../../../../components/Button'\n\ntype Props = ButtonProps\n\nexport default function DoneButton(props: Props) {\n const { className, ...restProps } = props\n const { switchContainerMode, containerMode, arrayValue, index } =\n useContext(IterateItemContext) || {}\n const { hasError, hasVisibleError, setShowBoundaryErrors } =\n useContext(FieldBoundaryContext) || {}\n const { commitHandleRef } = useContext(PushContainerContext) || {}\n const { setShowError } = useContext(ToolbarContext) || {}\n\n const { doneButton } = useTranslation().IterateEditContainer\n const valueBackupRef = useRef<unknown>()\n\n useEffect(() => {\n if (containerMode === 'edit' && !valueBackupRef.current) {\n valueBackupRef.current = arrayValue?.[index]\n }\n if (containerMode === 'view') {\n valueBackupRef.current = null\n }\n }, [arrayValue, containerMode, index])\n\n const doneHandler = useCallback(() => {\n if (hasError) {\n setShowBoundaryErrors?.(true)\n if (hasVisibleError) {\n setShowError(true)\n }\n } else {\n setShowBoundaryErrors?.(false)\n setShowError(false)\n if (commitHandleRef) {\n commitHandleRef.current?.()\n } else {\n switchContainerMode?.('view')\n }\n }\n }, [\n commitHandleRef,\n hasError,\n hasVisibleError,\n setShowBoundaryErrors,\n setShowError,\n switchContainerMode,\n ])\n\n return (\n <Button\n variant=\"tertiary\"\n className={classnames('dnb-push-container__done-button', className)}\n icon={check}\n icon_position=\"left\"\n on_click={doneHandler}\n {...restProps}\n >\n {doneButton}\n </Button>\n )\n}\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACzE,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,MAAM,QAAQ,wBAAwB;AAC/C,OAAOC,cAAc,MAAM,4BAA4B;AACvD,OAAOC,kBAAkB,MAAM,uBAAuB;AACtD,OAAOC,cAAc,MAAM,2BAA2B;AACtD,OAAOC,oBAAoB,MAAM,sDAAsD;AACvF,OAAOC,oBAAoB,MAAM,uCAAuC;AACxE,SAASC,KAAK,QAAQ,mBAAmB;AAKzC,eAAe,SAASC,UAAUA,CAACC,KAAY,EAAE;EAC/C,MAAM;MAAEC;IAAwB,CAAC,GAAGD,KAAK;IAAnBE,SAAS,GAAAC,wBAAA,CAAKH,KAAK,EAAAI,SAAA;EACzC,MAAM;IAAEC,mBAAmB;IAAEC,aAAa;IAAEC,UAAU;IAAEC;EAAM,CAAC,GAC7DpB,UAAU,CAACM,kBAAkB,CAAC,IAAI,CAAC,CAAC;EACtC,MAAM;IAAEe,QAAQ;IAAEC,eAAe;IAAEC;EAAsB,CAAC,GACxDvB,UAAU,CAACQ,oBAAoB,CAAC,IAAI,CAAC,CAAC;EACxC,MAAM;IAAEgB;EAAgB,CAAC,GAAGxB,UAAU,CAACS,oBAAoB,CAAC,IAAI,CAAC,CAAC;EAClE,MAAM;IAAEgB;EAAa,CAAC,GAAGzB,UAAU,CAACO,cAAc,CAAC,IAAI,CAAC,CAAC;EAEzD,MAAM;IAAEmB;EAAW,CAAC,GAAGrB,cAAc,CAAC,CAAC,CAACsB,oBAAoB;EAC5D,MAAMC,cAAc,GAAG1B,MAAM,CAAU,CAAC;EAExCD,SAAS,CAAC,MAAM;IACd,IAAIiB,aAAa,KAAK,MAAM,IAAI,CAACU,cAAc,CAACC,OAAO,EAAE;MACvDD,cAAc,CAACC,OAAO,GAAGV,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAGC,KAAK,CAAC;IAC9C;IACA,IAAIF,aAAa,KAAK,MAAM,EAAE;MAC5BU,cAAc,CAACC,OAAO,GAAG,IAAI;IAC/B;EACF,CAAC,EAAE,CAACV,UAAU,EAAED,aAAa,EAAEE,KAAK,CAAC,CAAC;EAEtC,MAAMU,WAAW,GAAG/B,WAAW,CAAC,MAAM;IACpC,IAAIsB,QAAQ,EAAE;MACZE,qBAAqB,aAArBA,qBAAqB,uBAArBA,qBAAqB,CAAG,IAAI,CAAC;MAC7B,IAAID,eAAe,EAAE;QACnBG,YAAY,CAAC,IAAI,CAAC;MACpB;IACF,CAAC,MAAM;MACLF,qBAAqB,aAArBA,qBAAqB,uBAArBA,qBAAqB,CAAG,KAAK,CAAC;MAC9BE,YAAY,CAAC,KAAK,CAAC;MACnB,IAAID,eAAe,EAAE;QAAA,IAAAO,qBAAA;QACnB,CAAAA,qBAAA,GAAAP,eAAe,CAACK,OAAO,cAAAE,qBAAA,uBAAvBA,qBAAA,CAAAC,IAAA,CAAAR,eAA0B,CAAC;MAC7B,CAAC,MAAM;QACLP,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAG,MAAM,CAAC;MAC/B;IACF;EACF,CAAC,EAAE,CACDO,eAAe,EACfH,QAAQ,EACRC,eAAe,EACfC,qBAAqB,EACrBE,YAAY,EACZR,mBAAmB,CACpB,CAAC;EAEF,OACEnB,KAAA,CAAAmC,aAAA,CAAC7B,MAAM,EAAA8B,QAAA;IACLC,OAAO,EAAC,UAAU;IAClBtB,SAAS,EAAEV,UAAU,CAAC,iCAAiC,EAAEU,SAAS,CAAE;IACpEuB,IAAI,EAAE1B,KAAM;IACZ2B,aAAa,EAAC,MAAM;IACpBC,QAAQ,EAAER;EAAY,GAClBhB,SAAS,GAEZY,UACK,CAAC;AAEb","ignoreList":[]}
1
+ {"version":3,"file":"DoneButton.js","names":["React","useCallback","useContext","useEffect","useRef","classnames","Button","useTranslation","IterateItemContext","ToolbarContext","FieldBoundaryContext","PushContainerContext","check","DoneButton","props","className","restProps","_objectWithoutProperties","_excluded","switchContainerMode","containerMode","arrayValue","index","hasError","hasVisibleError","setShowBoundaryErrors","commitHandleRef","setShowError","doneButton","IterateEditContainer","valueBackupRef","current","doneHandler","_commitHandleRef$curr","call","createElement","_extends","variant","icon","icon_position","on_click"],"sources":["../../../../../../src/extensions/forms/Iterate/EditContainer/DoneButton.tsx"],"sourcesContent":["import React, { useCallback, useContext, useEffect, useRef } from 'react'\nimport classnames from 'classnames'\nimport { Button } from '../../../../components'\nimport useTranslation from '../../hooks/useTranslation'\nimport IterateItemContext from '../IterateItemContext'\nimport ToolbarContext from '../Toolbar/ToolbarContext'\nimport FieldBoundaryContext from '../../DataContext/FieldBoundary/FieldBoundaryContext'\nimport PushContainerContext from '../PushContainer/PushContainerContext'\nimport { check } from '../../../../icons'\nimport { ButtonProps } from '../../../../components/Button'\n\ntype Props = ButtonProps\n\nexport default function DoneButton(props: Props) {\n const { className, ...restProps } = props\n const { switchContainerMode, containerMode, arrayValue, index } =\n useContext(IterateItemContext) || {}\n const { hasError, hasVisibleError, setShowBoundaryErrors } =\n useContext(FieldBoundaryContext) || {}\n const { commitHandleRef } = useContext(PushContainerContext) || {}\n const { setShowError } = useContext(ToolbarContext) || {}\n\n const { doneButton } = useTranslation().IterateEditContainer\n const valueBackupRef = useRef<unknown>()\n\n useEffect(() => {\n if (containerMode === 'edit' && !valueBackupRef.current) {\n valueBackupRef.current = arrayValue?.[index]\n }\n if (containerMode === 'view') {\n valueBackupRef.current = null\n }\n }, [arrayValue, containerMode, index])\n\n const doneHandler = useCallback(() => {\n if (hasError) {\n setShowBoundaryErrors?.(true)\n if (hasVisibleError) {\n setShowError(true)\n }\n } else {\n setShowBoundaryErrors?.(false)\n setShowError(false)\n if (commitHandleRef) {\n commitHandleRef.current?.()\n } else {\n switchContainerMode?.('view')\n }\n }\n }, [\n commitHandleRef,\n hasError,\n hasVisibleError,\n setShowBoundaryErrors,\n setShowError,\n switchContainerMode,\n ])\n\n return (\n <Button\n variant=\"tertiary\"\n className={classnames('dnb-forms-iterate__done-button', className)}\n icon={check}\n icon_position=\"left\"\n on_click={doneHandler}\n {...restProps}\n >\n {doneButton}\n </Button>\n )\n}\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACzE,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,MAAM,QAAQ,wBAAwB;AAC/C,OAAOC,cAAc,MAAM,4BAA4B;AACvD,OAAOC,kBAAkB,MAAM,uBAAuB;AACtD,OAAOC,cAAc,MAAM,2BAA2B;AACtD,OAAOC,oBAAoB,MAAM,sDAAsD;AACvF,OAAOC,oBAAoB,MAAM,uCAAuC;AACxE,SAASC,KAAK,QAAQ,mBAAmB;AAKzC,eAAe,SAASC,UAAUA,CAACC,KAAY,EAAE;EAC/C,MAAM;MAAEC;IAAwB,CAAC,GAAGD,KAAK;IAAnBE,SAAS,GAAAC,wBAAA,CAAKH,KAAK,EAAAI,SAAA;EACzC,MAAM;IAAEC,mBAAmB;IAAEC,aAAa;IAAEC,UAAU;IAAEC;EAAM,CAAC,GAC7DpB,UAAU,CAACM,kBAAkB,CAAC,IAAI,CAAC,CAAC;EACtC,MAAM;IAAEe,QAAQ;IAAEC,eAAe;IAAEC;EAAsB,CAAC,GACxDvB,UAAU,CAACQ,oBAAoB,CAAC,IAAI,CAAC,CAAC;EACxC,MAAM;IAAEgB;EAAgB,CAAC,GAAGxB,UAAU,CAACS,oBAAoB,CAAC,IAAI,CAAC,CAAC;EAClE,MAAM;IAAEgB;EAAa,CAAC,GAAGzB,UAAU,CAACO,cAAc,CAAC,IAAI,CAAC,CAAC;EAEzD,MAAM;IAAEmB;EAAW,CAAC,GAAGrB,cAAc,CAAC,CAAC,CAACsB,oBAAoB;EAC5D,MAAMC,cAAc,GAAG1B,MAAM,CAAU,CAAC;EAExCD,SAAS,CAAC,MAAM;IACd,IAAIiB,aAAa,KAAK,MAAM,IAAI,CAACU,cAAc,CAACC,OAAO,EAAE;MACvDD,cAAc,CAACC,OAAO,GAAGV,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAGC,KAAK,CAAC;IAC9C;IACA,IAAIF,aAAa,KAAK,MAAM,EAAE;MAC5BU,cAAc,CAACC,OAAO,GAAG,IAAI;IAC/B;EACF,CAAC,EAAE,CAACV,UAAU,EAAED,aAAa,EAAEE,KAAK,CAAC,CAAC;EAEtC,MAAMU,WAAW,GAAG/B,WAAW,CAAC,MAAM;IACpC,IAAIsB,QAAQ,EAAE;MACZE,qBAAqB,aAArBA,qBAAqB,uBAArBA,qBAAqB,CAAG,IAAI,CAAC;MAC7B,IAAID,eAAe,EAAE;QACnBG,YAAY,CAAC,IAAI,CAAC;MACpB;IACF,CAAC,MAAM;MACLF,qBAAqB,aAArBA,qBAAqB,uBAArBA,qBAAqB,CAAG,KAAK,CAAC;MAC9BE,YAAY,CAAC,KAAK,CAAC;MACnB,IAAID,eAAe,EAAE;QAAA,IAAAO,qBAAA;QACnB,CAAAA,qBAAA,GAAAP,eAAe,CAACK,OAAO,cAAAE,qBAAA,uBAAvBA,qBAAA,CAAAC,IAAA,CAAAR,eAA0B,CAAC;MAC7B,CAAC,MAAM;QACLP,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAG,MAAM,CAAC;MAC/B;IACF;EACF,CAAC,EAAE,CACDO,eAAe,EACfH,QAAQ,EACRC,eAAe,EACfC,qBAAqB,EACrBE,YAAY,EACZR,mBAAmB,CACpB,CAAC;EAEF,OACEnB,KAAA,CAAAmC,aAAA,CAAC7B,MAAM,EAAA8B,QAAA;IACLC,OAAO,EAAC,UAAU;IAClBtB,SAAS,EAAEV,UAAU,CAAC,gCAAgC,EAAEU,SAAS,CAAE;IACnEuB,IAAI,EAAE1B,KAAM;IACZ2B,aAAa,EAAC,MAAM;IACpBC,QAAQ,EAAER;EAAY,GAClBhB,SAAS,GAEZY,UACK,CAAC;AAEb","ignoreList":[]}
@@ -23,7 +23,7 @@ export type Props = {
23
23
  */
24
24
  toolbarVariant?: ArrayItemAreaProps['toolbarVariant'];
25
25
  };
26
- export type AllProps = Props & FlexContainerProps & ArrayItemAreaProps;
26
+ export type AllProps = Props & Omit<FlexContainerProps, 'onAnimationEnd'> & ArrayItemAreaProps;
27
27
  declare function EditContainer(props: AllProps): import("react/jsx-runtime").JSX.Element;
28
28
  declare namespace EditContainer {
29
29
  var DoneButton: typeof import("./DoneButton").default;
@@ -31,7 +31,7 @@ declare namespace EditContainer {
31
31
  var _supportsSpacingProps: boolean;
32
32
  }
33
33
  export default EditContainer;
34
- export declare function EditContainerWithoutToolbar(props: Props & FlexContainerProps & {
34
+ export declare function EditContainerWithoutToolbar(props: Props & Omit<FlexContainerProps, 'onAnimationEnd'> & {
35
35
  toolbar?: React.ReactNode;
36
36
  }): import("react/jsx-runtime").JSX.Element;
37
37
  export declare namespace EditContainerWithoutToolbar {
@@ -1 +1 @@
1
- {"version":3,"file":"EditContainer.js","names":["React","useContext","useMemo","classnames","convertJsxToString","Lead","IterateItemContext","ArrayItemArea","Toolbar","useSwitchContainerMode","DoneButton","CancelButton","useWasNew","replaceItemNo","EditContainer","props","toolbar","toolbarVariant","children","rest","_objectWithoutProperties","_excluded","arrayValue","toolbarElement","length","_Fragment","createElement","Fragment","hasToolbar","Children","toArray","some","child","EditContainerWithoutToolbar","_extends","_Toolbar","containerMode","isNew","index","path","_ref","className","title","titleWhenNew","restProps","_excluded2","wasNew","itemTitle","mode","ariaLabel","size","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/EditContainer/EditContainer.tsx"],"sourcesContent":["import React, { useContext, useMemo } from 'react'\nimport classnames from 'classnames'\nimport { convertJsxToString } from '../../../../shared/component-helper'\nimport { Lead } from '../../../../elements'\nimport { Props as FlexContainerProps } from '../../../../components/flex/Container'\nimport IterateItemContext from '../IterateItemContext'\nimport ArrayItemArea, { ArrayItemAreaProps } from '../Array/ArrayItemArea'\nimport Toolbar from '../Toolbar'\nimport { useSwitchContainerMode } from '../hooks'\nimport DoneButton from './DoneButton'\nimport CancelButton, { useWasNew } from './CancelButton'\nimport { replaceItemNo } from '../ItemNo'\n\nexport type Props = {\n /**\n * The title of the EditContainer.\n */\n title?: React.ReactNode\n\n /**\n * The title for a new item show within the EditContainer.\n */\n titleWhenNew?: React.ReactNode\n\n /**\n * If the EditContainer is open or not.\n */\n open?: boolean\n\n /**\n * An alternative toolbar to be shown in the EditContainer.\n */\n toolbar?: React.ReactNode\n\n /**\n * The variant of the toolbar.\n */\n toolbarVariant?: ArrayItemAreaProps['toolbarVariant']\n}\n\nexport type AllProps = Props & FlexContainerProps & ArrayItemAreaProps\n\nexport default function EditContainer(props: AllProps) {\n const { toolbar, toolbarVariant, children, ...rest } = props\n const { arrayValue } = useContext(IterateItemContext)\n\n let toolbarElement = toolbar\n if (toolbarVariant === 'minimumOneItem' && arrayValue.length <= 1) {\n toolbarElement = <></>\n }\n\n const hasToolbar =\n !toolbarElement &&\n React.Children.toArray(children).some((child) => {\n return child?.['type'] === Toolbar\n })\n\n return (\n <EditContainerWithoutToolbar\n toolbar={\n hasToolbar\n ? null\n : toolbarElement ??\n (toolbarVariant !== 'custom' && (\n <Toolbar>\n <DoneButton />\n <CancelButton />\n </Toolbar>\n ))\n }\n toolbarVariant={toolbarVariant}\n {...rest}\n >\n {children}\n </EditContainerWithoutToolbar>\n )\n}\n\nexport function EditContainerWithoutToolbar(\n props: Props & FlexContainerProps & { toolbar?: React.ReactNode }\n) {\n const { containerMode, isNew, index, path } =\n useContext(IterateItemContext)\n\n const {\n children,\n className,\n title,\n titleWhenNew,\n toolbar,\n toolbarVariant,\n ...restProps\n } = props || {}\n\n const wasNew = useWasNew({ isNew, containerMode })\n const itemTitle = useMemo(() => {\n return replaceItemNo(\n wasNew && titleWhenNew ? titleWhenNew : title,\n index\n )\n }, [index, title, titleWhenNew, wasNew])\n\n useSwitchContainerMode(path)\n\n return (\n <ArrayItemArea\n mode=\"edit\"\n className={classnames('dnb-forms-section-edit-block', className)}\n ariaLabel={convertJsxToString(itemTitle)}\n toolbarVariant={toolbarVariant}\n {...restProps}\n >\n {itemTitle && <Lead size=\"basis\">{itemTitle}</Lead>}\n {children}\n {toolbar}\n </ArrayItemArea>\n )\n}\n\nEditContainer.DoneButton = DoneButton\nEditContainer.CancelButton = CancelButton\n\nEditContainer._supportsSpacingProps = true\nEditContainerWithoutToolbar._supportsSpacingProps = true\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"EditContainer.js","names":["React","useContext","useMemo","classnames","convertJsxToString","Lead","IterateItemContext","ArrayItemArea","Toolbar","useSwitchContainerMode","DoneButton","CancelButton","useWasNew","replaceItemNo","EditContainer","props","toolbar","toolbarVariant","children","rest","_objectWithoutProperties","_excluded","arrayValue","toolbarElement","length","_Fragment","createElement","Fragment","hasToolbar","Children","toArray","some","child","EditContainerWithoutToolbar","_extends","_Toolbar","containerMode","isNew","index","path","_ref","className","title","titleWhenNew","restProps","_excluded2","wasNew","itemTitle","mode","ariaLabel","size","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/EditContainer/EditContainer.tsx"],"sourcesContent":["import React, { useContext, useMemo } from 'react'\nimport classnames from 'classnames'\nimport { convertJsxToString } from '../../../../shared/component-helper'\nimport { Lead } from '../../../../elements'\nimport { Props as FlexContainerProps } from '../../../../components/flex/Container'\nimport IterateItemContext from '../IterateItemContext'\nimport ArrayItemArea, { ArrayItemAreaProps } from '../Array/ArrayItemArea'\nimport Toolbar from '../Toolbar'\nimport { useSwitchContainerMode } from '../hooks'\nimport DoneButton from './DoneButton'\nimport CancelButton, { useWasNew } from './CancelButton'\nimport { replaceItemNo } from '../ItemNo'\n\nexport type Props = {\n /**\n * The title of the EditContainer.\n */\n title?: React.ReactNode\n\n /**\n * The title for a new item show within the EditContainer.\n */\n titleWhenNew?: React.ReactNode\n\n /**\n * If the EditContainer is open or not.\n */\n open?: boolean\n\n /**\n * An alternative toolbar to be shown in the EditContainer.\n */\n toolbar?: React.ReactNode\n\n /**\n * The variant of the toolbar.\n */\n toolbarVariant?: ArrayItemAreaProps['toolbarVariant']\n}\n\nexport type AllProps = Props &\n Omit<FlexContainerProps, 'onAnimationEnd'> &\n ArrayItemAreaProps\n\nexport default function EditContainer(props: AllProps) {\n const { toolbar, toolbarVariant, children, ...rest } = props\n const { arrayValue } = useContext(IterateItemContext)\n\n let toolbarElement = toolbar\n if (toolbarVariant === 'minimumOneItem' && arrayValue.length <= 1) {\n toolbarElement = <></>\n }\n\n const hasToolbar =\n !toolbarElement &&\n React.Children.toArray(children).some((child) => {\n return child?.['type'] === Toolbar\n })\n\n return (\n <EditContainerWithoutToolbar\n toolbar={\n hasToolbar\n ? null\n : toolbarElement ??\n (toolbarVariant !== 'custom' && (\n <Toolbar>\n <DoneButton />\n <CancelButton />\n </Toolbar>\n ))\n }\n toolbarVariant={toolbarVariant}\n {...rest}\n >\n {children}\n </EditContainerWithoutToolbar>\n )\n}\n\nexport function EditContainerWithoutToolbar(\n props: Props &\n Omit<FlexContainerProps, 'onAnimationEnd'> & {\n toolbar?: React.ReactNode\n }\n) {\n const { containerMode, isNew, index, path } =\n useContext(IterateItemContext)\n\n const {\n children,\n className,\n title,\n titleWhenNew,\n toolbar,\n toolbarVariant,\n ...restProps\n } = props || {}\n\n const wasNew = useWasNew({ isNew, containerMode })\n const itemTitle = useMemo(() => {\n return replaceItemNo(\n wasNew && titleWhenNew ? titleWhenNew : title,\n index\n )\n }, [index, title, titleWhenNew, wasNew])\n\n useSwitchContainerMode(path)\n\n return (\n <ArrayItemArea\n mode=\"edit\"\n className={classnames('dnb-forms-section-edit-block', className)}\n ariaLabel={convertJsxToString(itemTitle)}\n toolbarVariant={toolbarVariant}\n {...restProps}\n >\n {itemTitle && <Lead size=\"basis\">{itemTitle}</Lead>}\n {children}\n {toolbar}\n </ArrayItemArea>\n )\n}\n\nEditContainer.DoneButton = DoneButton\nEditContainer.CancelButton = CancelButton\n\nEditContainer._supportsSpacingProps = true\nEditContainerWithoutToolbar._supportsSpacingProps = true\n"],"mappings":"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","ignoreList":[]}
@@ -37,7 +37,7 @@ function OpenButton(props) {
37
37
  return children || text;
38
38
  }, [entries === null || entries === void 0 ? void 0 : entries.length, children, text]);
39
39
  return React.createElement(Button, _extends({
40
- className: classnames('dnb-forms-iterate-open-button', className),
40
+ className: classnames('dnb-forms-iterate__open-button', className),
41
41
  variant: "secondary",
42
42
  icon: add,
43
43
  icon_position: "left",
@@ -1 +1 @@
1
- {"version":3,"file":"OpenButton.js","names":["React","useCallback","useContext","useMemo","classnames","Button","add","IterateItemContext","PushContainerContext","convertJsxToString","OpenButton","props","className","text","children","restProps","_objectWithoutProperties","_excluded","switchContainerMode","entries","handleClick","content","str","includes","nextItemNo","length","replace","String","createElement","_extends","variant","icon","icon_position","on_click"],"sources":["../../../../../../src/extensions/forms/Iterate/PushContainer/OpenButton.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo } from 'react'\nimport classnames from 'classnames'\nimport Button, { ButtonProps } from '../../../../components/Button'\nimport { add } from '../../../../icons'\nimport IterateItemContext from '../IterateItemContext'\nimport PushContainerContext from './PushContainerContext'\nimport { convertJsxToString } from '../../../../shared/component-helper'\n\ntype Props = ButtonProps\n\nfunction OpenButton(props: Props) {\n const { className, text, children, ...restProps } = props\n const { switchContainerMode } = useContext(IterateItemContext) || {}\n const { entries } = useContext(PushContainerContext) || {}\n\n const handleClick = useCallback(() => {\n switchContainerMode?.('edit')\n }, [switchContainerMode])\n\n const content = useMemo(() => {\n if (children || text) {\n const str = convertJsxToString(children || text)\n\n if (str.includes('{nextItemNo}')) {\n const nextItemNo = (entries?.length || 0) + 1\n return str.replace('{nextItemNo}', String(nextItemNo))\n }\n }\n\n return children || text\n }, [entries?.length, children, text])\n\n return (\n <Button\n className={classnames('dnb-forms-iterate-open-button', className)}\n variant=\"secondary\"\n icon={add}\n icon_position=\"left\"\n on_click={handleClick}\n {...restProps}\n >\n {content}\n </Button>\n )\n}\n\nexport default OpenButton\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAC/D,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,MAAM,MAAuB,+BAA+B;AACnE,SAASC,GAAG,QAAQ,mBAAmB;AACvC,OAAOC,kBAAkB,MAAM,uBAAuB;AACtD,OAAOC,oBAAoB,MAAM,wBAAwB;AACzD,SAASC,kBAAkB,QAAQ,qCAAqC;AAIxE,SAASC,UAAUA,CAACC,KAAY,EAAE;EAChC,MAAM;MAAEC,SAAS;MAAEC,IAAI;MAAEC;IAAuB,CAAC,GAAGH,KAAK;IAAnBI,SAAS,GAAAC,wBAAA,CAAKL,KAAK,EAAAM,SAAA;EACzD,MAAM;IAAEC;EAAoB,CAAC,GAAGhB,UAAU,CAACK,kBAAkB,CAAC,IAAI,CAAC,CAAC;EACpE,MAAM;IAAEY;EAAQ,CAAC,GAAGjB,UAAU,CAACM,oBAAoB,CAAC,IAAI,CAAC,CAAC;EAE1D,MAAMY,WAAW,GAAGnB,WAAW,CAAC,MAAM;IACpCiB,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAG,MAAM,CAAC;EAC/B,CAAC,EAAE,CAACA,mBAAmB,CAAC,CAAC;EAEzB,MAAMG,OAAO,GAAGlB,OAAO,CAAC,MAAM;IAC5B,IAAIW,QAAQ,IAAID,IAAI,EAAE;MACpB,MAAMS,GAAG,GAAGb,kBAAkB,CAACK,QAAQ,IAAID,IAAI,CAAC;MAEhD,IAAIS,GAAG,CAACC,QAAQ,CAAC,cAAc,CAAC,EAAE;QAChC,MAAMC,UAAU,GAAG,CAAC,CAAAL,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEM,MAAM,KAAI,CAAC,IAAI,CAAC;QAC7C,OAAOH,GAAG,CAACI,OAAO,CAAC,cAAc,EAAEC,MAAM,CAACH,UAAU,CAAC,CAAC;MACxD;IACF;IAEA,OAAOV,QAAQ,IAAID,IAAI;EACzB,CAAC,EAAE,CAACM,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEM,MAAM,EAAEX,QAAQ,EAAED,IAAI,CAAC,CAAC;EAErC,OACEb,KAAA,CAAA4B,aAAA,CAACvB,MAAM,EAAAwB,QAAA;IACLjB,SAAS,EAAER,UAAU,CAAC,+BAA+B,EAAEQ,SAAS,CAAE;IAClEkB,OAAO,EAAC,WAAW;IACnBC,IAAI,EAAEzB,GAAI;IACV0B,aAAa,EAAC,MAAM;IACpBC,QAAQ,EAAEb;EAAY,GAClBL,SAAS,GAEZM,OACK,CAAC;AAEb;AAEA,eAAeX,UAAU","ignoreList":[]}
1
+ {"version":3,"file":"OpenButton.js","names":["React","useCallback","useContext","useMemo","classnames","Button","add","IterateItemContext","PushContainerContext","convertJsxToString","OpenButton","props","className","text","children","restProps","_objectWithoutProperties","_excluded","switchContainerMode","entries","handleClick","content","str","includes","nextItemNo","length","replace","String","createElement","_extends","variant","icon","icon_position","on_click"],"sources":["../../../../../../src/extensions/forms/Iterate/PushContainer/OpenButton.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo } from 'react'\nimport classnames from 'classnames'\nimport Button, { ButtonProps } from '../../../../components/Button'\nimport { add } from '../../../../icons'\nimport IterateItemContext from '../IterateItemContext'\nimport PushContainerContext from './PushContainerContext'\nimport { convertJsxToString } from '../../../../shared/component-helper'\n\ntype Props = ButtonProps\n\nfunction OpenButton(props: Props) {\n const { className, text, children, ...restProps } = props\n const { switchContainerMode } = useContext(IterateItemContext) || {}\n const { entries } = useContext(PushContainerContext) || {}\n\n const handleClick = useCallback(() => {\n switchContainerMode?.('edit')\n }, [switchContainerMode])\n\n const content = useMemo(() => {\n if (children || text) {\n const str = convertJsxToString(children || text)\n\n if (str.includes('{nextItemNo}')) {\n const nextItemNo = (entries?.length || 0) + 1\n return str.replace('{nextItemNo}', String(nextItemNo))\n }\n }\n\n return children || text\n }, [entries?.length, children, text])\n\n return (\n <Button\n className={classnames('dnb-forms-iterate__open-button', className)}\n variant=\"secondary\"\n icon={add}\n icon_position=\"left\"\n on_click={handleClick}\n {...restProps}\n >\n {content}\n </Button>\n )\n}\n\nexport default OpenButton\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAC/D,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,MAAM,MAAuB,+BAA+B;AACnE,SAASC,GAAG,QAAQ,mBAAmB;AACvC,OAAOC,kBAAkB,MAAM,uBAAuB;AACtD,OAAOC,oBAAoB,MAAM,wBAAwB;AACzD,SAASC,kBAAkB,QAAQ,qCAAqC;AAIxE,SAASC,UAAUA,CAACC,KAAY,EAAE;EAChC,MAAM;MAAEC,SAAS;MAAEC,IAAI;MAAEC;IAAuB,CAAC,GAAGH,KAAK;IAAnBI,SAAS,GAAAC,wBAAA,CAAKL,KAAK,EAAAM,SAAA;EACzD,MAAM;IAAEC;EAAoB,CAAC,GAAGhB,UAAU,CAACK,kBAAkB,CAAC,IAAI,CAAC,CAAC;EACpE,MAAM;IAAEY;EAAQ,CAAC,GAAGjB,UAAU,CAACM,oBAAoB,CAAC,IAAI,CAAC,CAAC;EAE1D,MAAMY,WAAW,GAAGnB,WAAW,CAAC,MAAM;IACpCiB,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAG,MAAM,CAAC;EAC/B,CAAC,EAAE,CAACA,mBAAmB,CAAC,CAAC;EAEzB,MAAMG,OAAO,GAAGlB,OAAO,CAAC,MAAM;IAC5B,IAAIW,QAAQ,IAAID,IAAI,EAAE;MACpB,MAAMS,GAAG,GAAGb,kBAAkB,CAACK,QAAQ,IAAID,IAAI,CAAC;MAEhD,IAAIS,GAAG,CAACC,QAAQ,CAAC,cAAc,CAAC,EAAE;QAChC,MAAMC,UAAU,GAAG,CAAC,CAAAL,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEM,MAAM,KAAI,CAAC,IAAI,CAAC;QAC7C,OAAOH,GAAG,CAACI,OAAO,CAAC,cAAc,EAAEC,MAAM,CAACH,UAAU,CAAC,CAAC;MACxD;IACF;IAEA,OAAOV,QAAQ,IAAID,IAAI;EACzB,CAAC,EAAE,CAACM,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEM,MAAM,EAAEX,QAAQ,EAAED,IAAI,CAAC,CAAC;EAErC,OACEb,KAAA,CAAA4B,aAAA,CAACvB,MAAM,EAAAwB,QAAA;IACLjB,SAAS,EAAER,UAAU,CAAC,gCAAgC,EAAEQ,SAAS,CAAE;IACnEkB,OAAO,EAAC,WAAW;IACnBC,IAAI,EAAEzB,GAAI;IACV0B,aAAa,EAAC,MAAM;IACpBC,QAAQ,EAAEb;EAAY,GAClBL,SAAS,GAEZM,OACK,CAAC;AAEb;AAEA,eAAeX,UAAU","ignoreList":[]}
@@ -12,6 +12,7 @@ import Isolation from '../../Form/Isolation';
12
12
  import PushContainerContext from './PushContainerContext';
13
13
  import IterateItemContext from '../IterateItemContext';
14
14
  import DataContext from '../../DataContext/Context';
15
+ import VisibilityContext from '../../Form/Visibility/VisibilityContext';
15
16
  import useDataValue from '../../hooks/useDataValue';
16
17
  import EditContainer, { CancelButton, DoneButton } from '../EditContainer';
17
18
  import IterateArray from '../Array';
@@ -167,6 +168,7 @@ function NewContainer(_ref) {
167
168
  rerenderPushContainer();
168
169
  }, [containerMode, rerenderPushContainer]);
169
170
  switchContainerModeRef.current = switchContainerMode;
171
+ const isVisible = Boolean(!showOpenButton || containerMode === 'edit');
170
172
  const {
171
173
  createButton
172
174
  } = useTranslation().IteratePushContainer;
@@ -190,8 +192,13 @@ function NewContainer(_ref) {
190
192
  onClick: cancelHandler
191
193
  })))));
192
194
  }));
193
- return React.createElement(React.Fragment, null, React.createElement(EditContainer, _extends({
194
- open: !showOpenButton || containerMode === 'edit',
195
+ return React.createElement(VisibilityContext.Provider, {
196
+ value: {
197
+ isVisible,
198
+ keepInDOM: false
199
+ }
200
+ }, React.createElement(EditContainer, _extends({
201
+ open: isVisible,
195
202
  title: title,
196
203
  toolbar: toolbar
197
204
  }, rest), children), openButton && typeof showOpenButton === 'boolean' && React.createElement(HeightAnimation, {
@@ -1 +1 @@
1
- {"version":3,"file":"PushContainer.js","names":["React","useCallback","useContext","useEffect","useMemo","useReducer","useRef","Isolation","PushContainerContext","IterateItemContext","DataContext","useDataValue","EditContainer","CancelButton","DoneButton","IterateArray","OpenButton","Flex","HeightAnimation","useArrayLimit","useItemPath","useSwitchContainerMode","Toolbar","useTranslation","clearedData","structuredClone","PushContainer","props","forceUpdate","data","outerData","required","requiredInherited","dataProp","defaultData","defaultDataProp","isolatedData","bubbleValidation","path","itemPath","insertAt","title","children","openButton","showOpenButtonWhen","onCommit","rest","_objectWithoutProperties","_excluded","absolutePath","commitHandleRef","switchContainerModeRef","containerModeRef","value","entries","moveValueToPath","getValueByPath","setNextContainerMode","hasReachedLimit","setShowStatus","cancelHandler","showOpenButton","newItemContextProps","switchContainerMode","current","_objectSpread","pushContainerItems","Object","assign","emptyData","_data$pushContainerIt","firstItem","createElement","transformOnCommit","slice","options","clearData","preventCommit","_switchContainerModeR","call","Provider","containerMode","withoutFlex","NewContainer","_extends","rerenderPushContainer","_ref","_DoneButton","_CancelButton","_excluded2","createButton","IteratePushContainer","restoreOriginalValue","toolbar","Consumer","context","Horizontal","gap","text","onClick","Fragment","open","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/PushContainer/PushContainer.tsx"],"sourcesContent":["import React, {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport Isolation from '../../Form/Isolation'\nimport PushContainerContext from './PushContainerContext'\nimport IterateItemContext from '../IterateItemContext'\nimport DataContext from '../../DataContext/Context'\nimport useDataValue from '../../hooks/useDataValue'\nimport EditContainer, { CancelButton, DoneButton } from '../EditContainer'\nimport IterateArray, { ContainerMode } from '../Array'\nimport OpenButton from './OpenButton'\nimport { Flex, HeightAnimation } from '../../../../components'\nimport { OnCommit, Path } from '../../types'\nimport { SpacingProps } from '../../../../shared/types'\nimport {\n useArrayLimit,\n useItemPath,\n useSwitchContainerMode,\n} from '../hooks'\nimport Toolbar from '../Toolbar'\nimport { useTranslation } from '../../hooks'\nimport { ArrayItemAreaProps } from '../Array/ArrayItemArea'\nimport { clearedData } from '../../DataContext/Provider'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So it's a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\ntype OnlyPathRequired = {\n /**\n * The path to the array to add the new item to.\n */\n path: Path\n\n /** The sub path to the array to add the new item to. */\n itemPath?: Path\n}\n\ntype OnlyItemPathRequired = {\n /**\n * The path to the array to add the new item to.\n */\n path?: Path\n\n /** The sub path to the array to add the new item to. */\n itemPath: Path\n}\n\nexport type Props = (OnlyPathRequired | OnlyItemPathRequired) & {\n /**\n * The title of the container.\n */\n title?: React.ReactNode\n\n /**\n * If the fields inside the container are required.\n */\n required?: boolean\n\n /**\n * The index to insert the new item at.\n */\n insertAt?: number\n\n /**\n * The button to open container.\n */\n openButton?: React.ReactNode\n\n /**\n * Define when the \"open button\" should be shown.\n * Should be a function that returns a boolean.\n */\n showOpenButtonWhen?: (list: unknown[]) => boolean\n\n /**\n * Prefilled data to add to the fields. The data will be put into this path: \"/pushContainerItems/0\".\n */\n data?: unknown | Record<string, unknown>\n\n /**\n * Prefilled data to add to the fields. The data will be put into this path: \"/pushContainerItems/0\".\n */\n defaultData?: unknown | Record<string, unknown>\n\n /**\n * Provide additional data that will be put into the root of the isolated data context (parallel to \"/pushContainerItems/0\").\n */\n isolatedData?: Record<string, unknown>\n\n /**\n * Prevent the form from being submitted when there are fields with errors inside the PushContainer.\n */\n bubbleValidation?: boolean\n\n /**\n * A custom toolbar to be shown below the container.\n */\n toolbar?: React.ReactNode\n\n /**\n * Will be called when the user clicks on the \"Done\" button.\n */\n onCommit?: OnCommit\n\n /**\n * The container contents.\n */\n children: React.ReactNode\n}\n\nexport type AllProps = Props & SpacingProps & ArrayItemAreaProps\n\nfunction PushContainer(props: AllProps) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n const { data: outerData, required: requiredInherited } =\n useContext(DataContext) || {}\n\n const {\n data: dataProp,\n defaultData: defaultDataProp,\n isolatedData,\n bubbleValidation,\n path,\n itemPath,\n insertAt,\n title,\n required = requiredInherited,\n children,\n openButton,\n showOpenButtonWhen,\n onCommit,\n ...rest\n } = props\n\n const { absolutePath } = useItemPath(itemPath)\n const commitHandleRef = useRef<() => void>()\n const switchContainerModeRef = useRef<(mode: ContainerMode) => void>()\n const containerModeRef = useRef<ContainerMode>()\n const {\n value: entries = [],\n moveValueToPath,\n getValueByPath,\n } = useDataValue<Array<unknown>>(path || itemPath)\n\n const { setNextContainerMode } = useSwitchContainerMode(\n path || absolutePath\n )\n const { hasReachedLimit, setShowStatus } = useArrayLimit(\n path || absolutePath\n )\n const cancelHandler = useCallback(() => {\n if (hasReachedLimit) {\n setShowStatus(false)\n }\n }, [hasReachedLimit, setShowStatus])\n\n const showOpenButton = showOpenButtonWhen?.(entries)\n const newItemContextProps: PushContainerContext = {\n path,\n itemPath,\n entries,\n commitHandleRef,\n switchContainerMode: switchContainerModeRef.current,\n }\n\n const data = useMemo(() => {\n if (defaultDataProp) {\n return // don't return a fallback, because we want to use the defaultData\n }\n return {\n ...isolatedData,\n pushContainerItems: [dataProp ?? clearedData],\n }\n }, [dataProp, defaultDataProp, isolatedData])\n\n if (outerData) {\n // Use assign to avoid mutating the original data object.\n // Because changes from outside should only silently be applied to the\n // data object, without triggering a rerender.\n // This way \"pushContainerItems\" will not clear/unset changed data.\n Object.assign(data, outerData)\n }\n\n const defaultData = useMemo(() => {\n return {\n ...(!dataProp ? isolatedData : null),\n pushContainerItems: [defaultDataProp ?? clearedData],\n }\n }, [dataProp, defaultDataProp, isolatedData])\n\n const emptyData = useCallback(\n (data: { pushContainerItems: unknown[] }) => {\n const firstItem = data.pushContainerItems?.[0]\n if (firstItem === null || typeof firstItem !== 'object') {\n return {\n ...isolatedData,\n pushContainerItems: [null],\n }\n }\n return defaultData\n },\n [defaultData, isolatedData]\n )\n\n return (\n <Isolation\n data={data}\n defaultData={defaultData}\n required={required}\n emptyData={emptyData}\n bubbleValidation={\n containerModeRef.current === 'view' ? false : bubbleValidation\n }\n commitHandleRef={commitHandleRef}\n transformOnCommit={({ pushContainerItems }) => {\n return moveValueToPath(\n path || absolutePath,\n typeof insertAt === 'number'\n ? [\n ...entries.slice(0, insertAt),\n ...pushContainerItems,\n ...entries.slice(insertAt),\n ]\n : [...entries, ...pushContainerItems],\n absolutePath ? structuredClone(getValueByPath('/')) : {}\n )\n }}\n onCommit={(data, options) => {\n const { clearData, preventCommit } = options\n if (hasReachedLimit) {\n preventCommit()\n setShowStatus(true)\n } else {\n setNextContainerMode('view')\n switchContainerModeRef.current?.('view')\n clearData()\n }\n onCommit?.(data, options)\n }}\n >\n <PushContainerContext.Provider value={newItemContextProps}>\n <IterateArray\n path=\"/pushContainerItems\"\n containerMode={showOpenButton ? 'view' : 'edit'}\n withoutFlex\n >\n <NewContainer\n title={title}\n openButton={openButton}\n switchContainerModeRef={switchContainerModeRef}\n showOpenButton={showOpenButton}\n cancelHandler={cancelHandler}\n containerModeRef={containerModeRef}\n rerenderPushContainer={forceUpdate}\n {...rest}\n >\n {children}\n </NewContainer>\n </IterateArray>\n </PushContainerContext.Provider>\n </Isolation>\n )\n}\n\nfunction NewContainer({\n title,\n openButton,\n showOpenButton,\n switchContainerModeRef,\n cancelHandler,\n containerModeRef,\n rerenderPushContainer,\n children,\n ...rest\n}) {\n const { containerMode, switchContainerMode } =\n useContext(IterateItemContext) || {}\n containerModeRef.current = containerMode\n\n useEffect(() => {\n rerenderPushContainer()\n }, [containerMode, rerenderPushContainer])\n\n switchContainerModeRef.current = switchContainerMode\n const { createButton } = useTranslation().IteratePushContainer\n const { clearData } = useContext(DataContext) || {}\n const restoreOriginalValue = useCallback(() => {\n clearData?.()\n }, [clearData])\n\n const toolbar = (\n <Toolbar>\n <IterateItemContext.Consumer>\n {(context) => {\n const newItemContextProps = {\n ...context,\n restoreOriginalValue,\n }\n return (\n <IterateItemContext.Provider value={newItemContextProps}>\n <Flex.Horizontal gap=\"large\">\n <DoneButton text={createButton} />\n {showOpenButton && (\n <CancelButton onClick={cancelHandler} />\n )}\n </Flex.Horizontal>\n </IterateItemContext.Provider>\n )\n }}\n </IterateItemContext.Consumer>\n </Toolbar>\n )\n\n return (\n <>\n <EditContainer\n open={!showOpenButton || containerMode === 'edit'}\n title={title}\n toolbar={toolbar}\n {...rest}\n >\n {children}\n </EditContainer>\n\n {openButton && typeof showOpenButton === 'boolean' && (\n <HeightAnimation open={showOpenButton && containerMode === 'view'}>\n {openButton}\n </HeightAnimation>\n )}\n </>\n )\n}\n\nPushContainer.OpenButton = OpenButton\nPushContainer._supportsSpacingProps = true\n\nexport default PushContainer\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"PushContainer.js","names":["React","useCallback","useContext","useEffect","useMemo","useReducer","useRef","Isolation","PushContainerContext","IterateItemContext","DataContext","VisibilityContext","useDataValue","EditContainer","CancelButton","DoneButton","IterateArray","OpenButton","Flex","HeightAnimation","useArrayLimit","useItemPath","useSwitchContainerMode","Toolbar","useTranslation","clearedData","structuredClone","PushContainer","props","forceUpdate","data","outerData","required","requiredInherited","dataProp","defaultData","defaultDataProp","isolatedData","bubbleValidation","path","itemPath","insertAt","title","children","openButton","showOpenButtonWhen","onCommit","rest","_objectWithoutProperties","_excluded","absolutePath","commitHandleRef","switchContainerModeRef","containerModeRef","value","entries","moveValueToPath","getValueByPath","setNextContainerMode","hasReachedLimit","setShowStatus","cancelHandler","showOpenButton","newItemContextProps","switchContainerMode","current","_objectSpread","pushContainerItems","Object","assign","emptyData","_data$pushContainerIt","firstItem","createElement","transformOnCommit","slice","options","clearData","preventCommit","_switchContainerModeR","call","Provider","containerMode","withoutFlex","NewContainer","_extends","rerenderPushContainer","_ref","_DoneButton","_CancelButton","_excluded2","isVisible","Boolean","createButton","IteratePushContainer","restoreOriginalValue","toolbar","Consumer","context","Horizontal","gap","text","onClick","keepInDOM","open","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/PushContainer/PushContainer.tsx"],"sourcesContent":["import React, {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport Isolation from '../../Form/Isolation'\nimport PushContainerContext from './PushContainerContext'\nimport IterateItemContext from '../IterateItemContext'\nimport DataContext from '../../DataContext/Context'\nimport VisibilityContext from '../../Form/Visibility/VisibilityContext'\nimport useDataValue from '../../hooks/useDataValue'\nimport EditContainer, { CancelButton, DoneButton } from '../EditContainer'\nimport IterateArray, { ContainerMode } from '../Array'\nimport OpenButton from './OpenButton'\nimport { Flex, HeightAnimation } from '../../../../components'\nimport { OnCommit, Path } from '../../types'\nimport { SpacingProps } from '../../../../shared/types'\nimport {\n useArrayLimit,\n useItemPath,\n useSwitchContainerMode,\n} from '../hooks'\nimport Toolbar from '../Toolbar'\nimport { useTranslation } from '../../hooks'\nimport { ArrayItemAreaProps } from '../Array/ArrayItemArea'\nimport { clearedData } from '../../DataContext/Provider'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So it's a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\ntype OnlyPathRequired = {\n /**\n * The path to the array to add the new item to.\n */\n path: Path\n\n /** The sub path to the array to add the new item to. */\n itemPath?: Path\n}\n\ntype OnlyItemPathRequired = {\n /**\n * The path to the array to add the new item to.\n */\n path?: Path\n\n /** The sub path to the array to add the new item to. */\n itemPath: Path\n}\n\nexport type Props = (OnlyPathRequired | OnlyItemPathRequired) & {\n /**\n * The title of the container.\n */\n title?: React.ReactNode\n\n /**\n * If the fields inside the container are required.\n */\n required?: boolean\n\n /**\n * The index to insert the new item at.\n */\n insertAt?: number\n\n /**\n * The button to open container.\n */\n openButton?: React.ReactNode\n\n /**\n * Define when the \"open button\" should be shown.\n * Should be a function that returns a boolean.\n */\n showOpenButtonWhen?: (list: unknown[]) => boolean\n\n /**\n * Prefilled data to add to the fields. The data will be put into this path: \"/pushContainerItems/0\".\n */\n data?: unknown | Record<string, unknown>\n\n /**\n * Prefilled data to add to the fields. The data will be put into this path: \"/pushContainerItems/0\".\n */\n defaultData?: unknown | Record<string, unknown>\n\n /**\n * Provide additional data that will be put into the root of the isolated data context (parallel to \"/pushContainerItems/0\").\n */\n isolatedData?: Record<string, unknown>\n\n /**\n * Prevent the form from being submitted when there are fields with errors inside the PushContainer.\n */\n bubbleValidation?: boolean\n\n /**\n * A custom toolbar to be shown below the container.\n */\n toolbar?: React.ReactNode\n\n /**\n * Will be called when the user clicks on the \"Done\" button.\n */\n onCommit?: OnCommit\n\n /**\n * The container contents.\n */\n children: React.ReactNode\n}\n\nexport type AllProps = Props & SpacingProps & ArrayItemAreaProps\n\nfunction PushContainer(props: AllProps) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n const { data: outerData, required: requiredInherited } =\n useContext(DataContext) || {}\n\n const {\n data: dataProp,\n defaultData: defaultDataProp,\n isolatedData,\n bubbleValidation,\n path,\n itemPath,\n insertAt,\n title,\n required = requiredInherited,\n children,\n openButton,\n showOpenButtonWhen,\n onCommit,\n ...rest\n } = props\n\n const { absolutePath } = useItemPath(itemPath)\n const commitHandleRef = useRef<() => void>()\n const switchContainerModeRef = useRef<(mode: ContainerMode) => void>()\n const containerModeRef = useRef<ContainerMode>()\n const {\n value: entries = [],\n moveValueToPath,\n getValueByPath,\n } = useDataValue<Array<unknown>>(path || itemPath)\n\n const { setNextContainerMode } = useSwitchContainerMode(\n path || absolutePath\n )\n const { hasReachedLimit, setShowStatus } = useArrayLimit(\n path || absolutePath\n )\n const cancelHandler = useCallback(() => {\n if (hasReachedLimit) {\n setShowStatus(false)\n }\n }, [hasReachedLimit, setShowStatus])\n\n const showOpenButton = showOpenButtonWhen?.(entries)\n const newItemContextProps: PushContainerContext = {\n path,\n itemPath,\n entries,\n commitHandleRef,\n switchContainerMode: switchContainerModeRef.current,\n }\n\n const data = useMemo(() => {\n if (defaultDataProp) {\n return // don't return a fallback, because we want to use the defaultData\n }\n return {\n ...isolatedData,\n pushContainerItems: [dataProp ?? clearedData],\n }\n }, [dataProp, defaultDataProp, isolatedData])\n\n if (outerData) {\n // Use assign to avoid mutating the original data object.\n // Because changes from outside should only silently be applied to the\n // data object, without triggering a rerender.\n // This way \"pushContainerItems\" will not clear/unset changed data.\n Object.assign(data, outerData)\n }\n\n const defaultData = useMemo(() => {\n return {\n ...(!dataProp ? isolatedData : null),\n pushContainerItems: [defaultDataProp ?? clearedData],\n }\n }, [dataProp, defaultDataProp, isolatedData])\n\n const emptyData = useCallback(\n (data: { pushContainerItems: unknown[] }) => {\n const firstItem = data.pushContainerItems?.[0]\n if (firstItem === null || typeof firstItem !== 'object') {\n return {\n ...isolatedData,\n pushContainerItems: [null],\n }\n }\n return defaultData\n },\n [defaultData, isolatedData]\n )\n\n return (\n <Isolation\n data={data}\n defaultData={defaultData}\n required={required}\n emptyData={emptyData}\n bubbleValidation={\n containerModeRef.current === 'view' ? false : bubbleValidation\n }\n commitHandleRef={commitHandleRef}\n transformOnCommit={({ pushContainerItems }) => {\n return moveValueToPath(\n path || absolutePath,\n typeof insertAt === 'number'\n ? [\n ...entries.slice(0, insertAt),\n ...pushContainerItems,\n ...entries.slice(insertAt),\n ]\n : [...entries, ...pushContainerItems],\n absolutePath ? structuredClone(getValueByPath('/')) : {}\n )\n }}\n onCommit={(data, options) => {\n const { clearData, preventCommit } = options\n if (hasReachedLimit) {\n preventCommit()\n setShowStatus(true)\n } else {\n setNextContainerMode('view')\n switchContainerModeRef.current?.('view')\n clearData()\n }\n onCommit?.(data, options)\n }}\n >\n <PushContainerContext.Provider value={newItemContextProps}>\n <IterateArray\n path=\"/pushContainerItems\"\n containerMode={showOpenButton ? 'view' : 'edit'}\n withoutFlex\n >\n <NewContainer\n title={title}\n openButton={openButton}\n switchContainerModeRef={switchContainerModeRef}\n showOpenButton={showOpenButton}\n cancelHandler={cancelHandler}\n containerModeRef={containerModeRef}\n rerenderPushContainer={forceUpdate}\n {...rest}\n >\n {children}\n </NewContainer>\n </IterateArray>\n </PushContainerContext.Provider>\n </Isolation>\n )\n}\n\nfunction NewContainer({\n title,\n openButton,\n showOpenButton,\n switchContainerModeRef,\n cancelHandler,\n containerModeRef,\n rerenderPushContainer,\n children,\n ...rest\n}) {\n const { containerMode, switchContainerMode } =\n useContext(IterateItemContext) || {}\n containerModeRef.current = containerMode\n\n useEffect(() => {\n rerenderPushContainer()\n }, [containerMode, rerenderPushContainer])\n\n switchContainerModeRef.current = switchContainerMode\n const isVisible = Boolean(!showOpenButton || containerMode === 'edit')\n const { createButton } = useTranslation().IteratePushContainer\n const { clearData } = useContext(DataContext) || {}\n const restoreOriginalValue = useCallback(() => {\n clearData?.()\n }, [clearData])\n\n const toolbar = (\n <Toolbar>\n <IterateItemContext.Consumer>\n {(context) => {\n const newItemContextProps = {\n ...context,\n restoreOriginalValue,\n }\n return (\n <IterateItemContext.Provider value={newItemContextProps}>\n <Flex.Horizontal gap=\"large\">\n <DoneButton text={createButton} />\n {showOpenButton && (\n <CancelButton onClick={cancelHandler} />\n )}\n </Flex.Horizontal>\n </IterateItemContext.Provider>\n )\n }}\n </IterateItemContext.Consumer>\n </Toolbar>\n )\n\n return (\n <VisibilityContext.Provider value={{ isVisible, keepInDOM: false }}>\n <EditContainer\n open={isVisible}\n title={title}\n toolbar={toolbar}\n {...rest}\n >\n {children}\n </EditContainer>\n\n {openButton && typeof showOpenButton === 'boolean' && (\n <HeightAnimation open={showOpenButton && containerMode === 'view'}>\n {openButton}\n </HeightAnimation>\n )}\n </VisibilityContext.Provider>\n )\n}\n\nPushContainer.OpenButton = OpenButton\nPushContainer._supportsSpacingProps = true\n\nexport default PushContainer\n"],"mappings":"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","ignoreList":[]}
@@ -18,7 +18,7 @@ export default function EditButton() {
18
18
  }, [switchContainerMode]);
19
19
  return React.createElement(Button, {
20
20
  variant: "tertiary",
21
- className: "dnb-push-container__edit-button",
21
+ className: "dnb-forms-iterate__edit-button",
22
22
  icon: edit,
23
23
  icon_position: "left",
24
24
  on_click: editHandler
@@ -1 +1 @@
1
- {"version":3,"file":"EditButton.js","names":["React","useCallback","useContext","Button","useTranslation","IterateItemContext","edit","EditButton","iterateItemContext","switchContainerMode","editButton","IterateViewContainer","editHandler","createElement","variant","className","icon","icon_position","on_click"],"sources":["../../../../../../src/extensions/forms/Iterate/ViewContainer/EditButton.tsx"],"sourcesContent":["import React, { useCallback, useContext } from 'react'\nimport { Button } from '../../../../components'\nimport useTranslation from '../../hooks/useTranslation'\nimport IterateItemContext from '../IterateItemContext'\nimport { edit } from '../../../../icons'\n\nexport default function EditButton() {\n const iterateItemContext = useContext(IterateItemContext)\n const { switchContainerMode } = iterateItemContext ?? {}\n const { editButton } = useTranslation().IterateViewContainer\n\n const editHandler = useCallback(() => {\n switchContainerMode?.('edit')\n }, [switchContainerMode])\n\n return (\n <Button\n variant=\"tertiary\"\n className=\"dnb-push-container__edit-button\"\n icon={edit}\n icon_position=\"left\"\n on_click={editHandler}\n >\n {editButton}\n </Button>\n )\n}\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,QAAQ,OAAO;AACtD,SAASC,MAAM,QAAQ,wBAAwB;AAC/C,OAAOC,cAAc,MAAM,4BAA4B;AACvD,OAAOC,kBAAkB,MAAM,uBAAuB;AACtD,SAASC,IAAI,QAAQ,mBAAmB;AAExC,eAAe,SAASC,UAAUA,CAAA,EAAG;EACnC,MAAMC,kBAAkB,GAAGN,UAAU,CAACG,kBAAkB,CAAC;EACzD,MAAM;IAAEI;EAAoB,CAAC,GAAGD,kBAAkB,aAAlBA,kBAAkB,cAAlBA,kBAAkB,GAAI,CAAC,CAAC;EACxD,MAAM;IAAEE;EAAW,CAAC,GAAGN,cAAc,CAAC,CAAC,CAACO,oBAAoB;EAE5D,MAAMC,WAAW,GAAGX,WAAW,CAAC,MAAM;IACpCQ,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAG,MAAM,CAAC;EAC/B,CAAC,EAAE,CAACA,mBAAmB,CAAC,CAAC;EAEzB,OACET,KAAA,CAAAa,aAAA,CAACV,MAAM;IACLW,OAAO,EAAC,UAAU;IAClBC,SAAS,EAAC,iCAAiC;IAC3CC,IAAI,EAAEV,IAAK;IACXW,aAAa,EAAC,MAAM;IACpBC,QAAQ,EAAEN;EAAY,GAErBF,UACK,CAAC;AAEb","ignoreList":[]}
1
+ {"version":3,"file":"EditButton.js","names":["React","useCallback","useContext","Button","useTranslation","IterateItemContext","edit","EditButton","iterateItemContext","switchContainerMode","editButton","IterateViewContainer","editHandler","createElement","variant","className","icon","icon_position","on_click"],"sources":["../../../../../../src/extensions/forms/Iterate/ViewContainer/EditButton.tsx"],"sourcesContent":["import React, { useCallback, useContext } from 'react'\nimport { Button } from '../../../../components'\nimport useTranslation from '../../hooks/useTranslation'\nimport IterateItemContext from '../IterateItemContext'\nimport { edit } from '../../../../icons'\n\nexport default function EditButton() {\n const iterateItemContext = useContext(IterateItemContext)\n const { switchContainerMode } = iterateItemContext ?? {}\n const { editButton } = useTranslation().IterateViewContainer\n\n const editHandler = useCallback(() => {\n switchContainerMode?.('edit')\n }, [switchContainerMode])\n\n return (\n <Button\n variant=\"tertiary\"\n className=\"dnb-forms-iterate__edit-button\"\n icon={edit}\n icon_position=\"left\"\n on_click={editHandler}\n >\n {editButton}\n </Button>\n )\n}\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,QAAQ,OAAO;AACtD,SAASC,MAAM,QAAQ,wBAAwB;AAC/C,OAAOC,cAAc,MAAM,4BAA4B;AACvD,OAAOC,kBAAkB,MAAM,uBAAuB;AACtD,SAASC,IAAI,QAAQ,mBAAmB;AAExC,eAAe,SAASC,UAAUA,CAAA,EAAG;EACnC,MAAMC,kBAAkB,GAAGN,UAAU,CAACG,kBAAkB,CAAC;EACzD,MAAM;IAAEI;EAAoB,CAAC,GAAGD,kBAAkB,aAAlBA,kBAAkB,cAAlBA,kBAAkB,GAAI,CAAC,CAAC;EACxD,MAAM;IAAEE;EAAW,CAAC,GAAGN,cAAc,CAAC,CAAC,CAACO,oBAAoB;EAE5D,MAAMC,WAAW,GAAGX,WAAW,CAAC,MAAM;IACpCQ,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAG,MAAM,CAAC;EAC/B,CAAC,EAAE,CAACA,mBAAmB,CAAC,CAAC;EAEzB,OACET,KAAA,CAAAa,aAAA,CAACV,MAAM;IACLW,OAAO,EAAC,UAAU;IAClBC,SAAS,EAAC,gCAAgC;IAC1CC,IAAI,EAAEV,IAAK;IACXW,aAAa,EAAC,MAAM;IACpBC,QAAQ,EAAEN;EAAY,GAErBF,UACK,CAAC;AAEb","ignoreList":[]}
@@ -15,7 +15,7 @@ export type Props = {
15
15
  */
16
16
  toolbarVariant?: ArrayItemAreaProps['toolbarVariant'];
17
17
  };
18
- export type AllProps = Props & FlexContainerProps & ArrayItemAreaProps;
18
+ export type AllProps = Props & Omit<FlexContainerProps, 'onAnimationEnd'> & ArrayItemAreaProps;
19
19
  declare function ViewContainer(props: AllProps): import("react/jsx-runtime").JSX.Element;
20
20
  declare namespace ViewContainer {
21
21
  var EditButton: typeof import("./EditButton").default;
@@ -1 +1 @@
1
- {"version":3,"file":"ViewContainer.js","names":["React","useContext","useMemo","classnames","convertJsxToString","Lead","ArrayItemArea","IterateItemContext","Toolbar","EditButton","RemoveButton","replaceItemNo","ViewContainer","props","_ref","children","className","title","toolbar","toolbarVariant","restProps","_objectWithoutProperties","_excluded","index","arrayValue","itemTitle","toolbarElement","length","_Toolbar","createElement","hasToolbar","Children","toArray","some","child","_extends","mode","ariaLabel","size","_Toolbar2","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/ViewContainer/ViewContainer.tsx"],"sourcesContent":["import React, { useContext, useMemo } from 'react'\nimport classnames from 'classnames'\nimport { convertJsxToString } from '../../../../shared/component-helper'\nimport { Props as FlexContainerProps } from '../../../../components/flex/Container'\nimport { Lead } from '../../../../elements'\nimport ArrayItemArea, { ArrayItemAreaProps } from '../Array/ArrayItemArea'\nimport IterateItemContext from '../IterateItemContext'\nimport Toolbar from '../Toolbar'\nimport EditButton from './EditButton'\nimport RemoveButton from './RemoveButton'\nimport { replaceItemNo } from '../ItemNo'\n\nexport type Props = {\n /**\n * The title of the ViewContainer.\n */\n title?: React.ReactNode\n\n /**\n * An alternative toolbar to be shown in the ViewContainer.\n */\n toolbar?: React.ReactNode\n\n /**\n * The variant of the toolbar.\n */\n toolbarVariant?: ArrayItemAreaProps['toolbarVariant']\n}\n\nexport type AllProps = Props & FlexContainerProps & ArrayItemAreaProps\n\nfunction ViewContainer(props: AllProps) {\n const {\n children,\n className,\n title,\n toolbar,\n toolbarVariant,\n ...restProps\n } = props || {}\n const { index, arrayValue } = useContext(IterateItemContext)\n const itemTitle = useMemo(() => {\n return replaceItemNo(title, index)\n }, [index, title])\n\n let toolbarElement = toolbar\n if (toolbarVariant === 'minimumOneItem' && arrayValue.length <= 1) {\n toolbarElement = (\n <Toolbar>\n <EditButton />\n </Toolbar>\n )\n }\n\n const hasToolbar =\n !toolbarElement &&\n React.Children.toArray(children).some((child) => {\n return child?.['type'] === Toolbar\n })\n\n return (\n <ArrayItemArea\n mode=\"view\"\n ariaLabel={convertJsxToString(itemTitle)}\n className={classnames('dnb-forms-section-view-block', className)}\n toolbarVariant={toolbarVariant}\n {...restProps}\n >\n {itemTitle && <Lead size=\"basis\">{itemTitle}</Lead>}\n {children}\n {hasToolbar\n ? null\n : toolbarElement ??\n (toolbarVariant !== 'custom' && (\n <Toolbar>\n <EditButton />\n <RemoveButton />\n </Toolbar>\n ))}\n </ArrayItemArea>\n )\n}\n\nViewContainer.EditButton = EditButton\nViewContainer.RemoveButton = RemoveButton\n\nViewContainer._supportsSpacingProps = true\nexport default ViewContainer\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAClD,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,kBAAkB,QAAQ,qCAAqC;AAExE,SAASC,IAAI,QAAQ,sBAAsB;AAC3C,OAAOC,aAAa,MAA8B,wBAAwB;AAC1E,OAAOC,kBAAkB,MAAM,uBAAuB;AACtD,OAAOC,OAAO,MAAM,YAAY;AAChC,OAAOC,UAAU,MAAM,cAAc;AACrC,OAAOC,YAAY,MAAM,gBAAgB;AACzC,SAASC,aAAa,QAAQ,WAAW;AAqBzC,SAASC,aAAaA,CAACC,KAAe,EAAE;EACtC,MAAAC,IAAA,GAOID,KAAK,IAAI,CAAC,CAAC;IAPT;MACJE,QAAQ;MACRC,SAAS;MACTC,KAAK;MACLC,OAAO;MACPC;IAEF,CAAC,GAAAL,IAAA;IADIM,SAAS,GAAAC,wBAAA,CAAAP,IAAA,EAAAQ,SAAA;EAEd,MAAM;IAAEC,KAAK;IAAEC;EAAW,CAAC,GAAGvB,UAAU,CAACM,kBAAkB,CAAC;EAC5D,MAAMkB,SAAS,GAAGvB,OAAO,CAAC,MAAM;IAC9B,OAAOS,aAAa,CAACM,KAAK,EAAEM,KAAK,CAAC;EACpC,CAAC,EAAE,CAACA,KAAK,EAAEN,KAAK,CAAC,CAAC;EAElB,IAAIS,cAAc,GAAGR,OAAO;EAC5B,IAAIC,cAAc,KAAK,gBAAgB,IAAIK,UAAU,CAACG,MAAM,IAAI,CAAC,EAAE;IACjED,cAAc,GAAAE,QAAA,KAAAA,QAAA,GACZ5B,KAAA,CAAA6B,aAAA,CAACrB,OAAO,QACNR,KAAA,CAAA6B,aAAA,CAACpB,UAAU,MAAE,CACN,CAAC,CACX;EACH;EAEA,MAAMqB,UAAU,GACd,CAACJ,cAAc,IACf1B,KAAK,CAAC+B,QAAQ,CAACC,OAAO,CAACjB,QAAQ,CAAC,CAACkB,IAAI,CAAEC,KAAK,IAAK;IAC/C,OAAO,CAAAA,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAG,MAAM,CAAC,MAAK1B,OAAO;EACpC,CAAC,CAAC;EAEJ,OACER,KAAA,CAAA6B,aAAA,CAACvB,aAAa,EAAA6B,QAAA;IACZC,IAAI,EAAC,MAAM;IACXC,SAAS,EAAEjC,kBAAkB,CAACqB,SAAS,CAAE;IACzCT,SAAS,EAAEb,UAAU,CAAC,8BAA8B,EAAEa,SAAS,CAAE;IACjEG,cAAc,EAAEA;EAAe,GAC3BC,SAAS,GAEZK,SAAS,IAAIzB,KAAA,CAAA6B,aAAA,CAACxB,IAAI;IAACiC,IAAI,EAAC;EAAO,GAAEb,SAAgB,CAAC,EAClDV,QAAQ,EACRe,UAAU,GACP,IAAI,GACJJ,cAAc,aAAdA,cAAc,cAAdA,cAAc,GACbP,cAAc,KAAK,QAAQ,KAAAoB,SAAA,KAAAA,SAAA,GAC1BvC,KAAA,CAAA6B,aAAA,CAACrB,OAAO,QACNR,KAAA,CAAA6B,aAAA,CAACpB,UAAU,MAAE,CAAC,EACdT,KAAA,CAAA6B,aAAA,CAACnB,YAAY,MAAE,CACR,CAAC,EAEH,CAAC;AAEpB;AAEAE,aAAa,CAACH,UAAU,GAAGA,UAAU;AACrCG,aAAa,CAACF,YAAY,GAAGA,YAAY;AAEzCE,aAAa,CAAC4B,qBAAqB,GAAG,IAAI;AAC1C,eAAe5B,aAAa","ignoreList":[]}
1
+ {"version":3,"file":"ViewContainer.js","names":["React","useContext","useMemo","classnames","convertJsxToString","Lead","ArrayItemArea","IterateItemContext","Toolbar","EditButton","RemoveButton","replaceItemNo","ViewContainer","props","_ref","children","className","title","toolbar","toolbarVariant","restProps","_objectWithoutProperties","_excluded","index","arrayValue","itemTitle","toolbarElement","length","_Toolbar","createElement","hasToolbar","Children","toArray","some","child","_extends","mode","ariaLabel","size","_Toolbar2","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Iterate/ViewContainer/ViewContainer.tsx"],"sourcesContent":["import React, { useContext, useMemo } from 'react'\nimport classnames from 'classnames'\nimport { convertJsxToString } from '../../../../shared/component-helper'\nimport { Props as FlexContainerProps } from '../../../../components/flex/Container'\nimport { Lead } from '../../../../elements'\nimport ArrayItemArea, { ArrayItemAreaProps } from '../Array/ArrayItemArea'\nimport IterateItemContext from '../IterateItemContext'\nimport Toolbar from '../Toolbar'\nimport EditButton from './EditButton'\nimport RemoveButton from './RemoveButton'\nimport { replaceItemNo } from '../ItemNo'\n\nexport type Props = {\n /**\n * The title of the ViewContainer.\n */\n title?: React.ReactNode\n\n /**\n * An alternative toolbar to be shown in the ViewContainer.\n */\n toolbar?: React.ReactNode\n\n /**\n * The variant of the toolbar.\n */\n toolbarVariant?: ArrayItemAreaProps['toolbarVariant']\n}\n\nexport type AllProps = Props &\n Omit<FlexContainerProps, 'onAnimationEnd'> &\n ArrayItemAreaProps\n\nfunction ViewContainer(props: AllProps) {\n const {\n children,\n className,\n title,\n toolbar,\n toolbarVariant,\n ...restProps\n } = props || {}\n const { index, arrayValue } = useContext(IterateItemContext)\n const itemTitle = useMemo(() => {\n return replaceItemNo(title, index)\n }, [index, title])\n\n let toolbarElement = toolbar\n if (toolbarVariant === 'minimumOneItem' && arrayValue.length <= 1) {\n toolbarElement = (\n <Toolbar>\n <EditButton />\n </Toolbar>\n )\n }\n\n const hasToolbar =\n !toolbarElement &&\n React.Children.toArray(children).some((child) => {\n return child?.['type'] === Toolbar\n })\n\n return (\n <ArrayItemArea\n mode=\"view\"\n ariaLabel={convertJsxToString(itemTitle)}\n className={classnames('dnb-forms-section-view-block', className)}\n toolbarVariant={toolbarVariant}\n {...restProps}\n >\n {itemTitle && <Lead size=\"basis\">{itemTitle}</Lead>}\n {children}\n {hasToolbar\n ? null\n : toolbarElement ??\n (toolbarVariant !== 'custom' && (\n <Toolbar>\n <EditButton />\n <RemoveButton />\n </Toolbar>\n ))}\n </ArrayItemArea>\n )\n}\n\nViewContainer.EditButton = EditButton\nViewContainer.RemoveButton = RemoveButton\n\nViewContainer._supportsSpacingProps = true\nexport default ViewContainer\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAClD,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,kBAAkB,QAAQ,qCAAqC;AAExE,SAASC,IAAI,QAAQ,sBAAsB;AAC3C,OAAOC,aAAa,MAA8B,wBAAwB;AAC1E,OAAOC,kBAAkB,MAAM,uBAAuB;AACtD,OAAOC,OAAO,MAAM,YAAY;AAChC,OAAOC,UAAU,MAAM,cAAc;AACrC,OAAOC,YAAY,MAAM,gBAAgB;AACzC,SAASC,aAAa,QAAQ,WAAW;AAuBzC,SAASC,aAAaA,CAACC,KAAe,EAAE;EACtC,MAAAC,IAAA,GAOID,KAAK,IAAI,CAAC,CAAC;IAPT;MACJE,QAAQ;MACRC,SAAS;MACTC,KAAK;MACLC,OAAO;MACPC;IAEF,CAAC,GAAAL,IAAA;IADIM,SAAS,GAAAC,wBAAA,CAAAP,IAAA,EAAAQ,SAAA;EAEd,MAAM;IAAEC,KAAK;IAAEC;EAAW,CAAC,GAAGvB,UAAU,CAACM,kBAAkB,CAAC;EAC5D,MAAMkB,SAAS,GAAGvB,OAAO,CAAC,MAAM;IAC9B,OAAOS,aAAa,CAACM,KAAK,EAAEM,KAAK,CAAC;EACpC,CAAC,EAAE,CAACA,KAAK,EAAEN,KAAK,CAAC,CAAC;EAElB,IAAIS,cAAc,GAAGR,OAAO;EAC5B,IAAIC,cAAc,KAAK,gBAAgB,IAAIK,UAAU,CAACG,MAAM,IAAI,CAAC,EAAE;IACjED,cAAc,GAAAE,QAAA,KAAAA,QAAA,GACZ5B,KAAA,CAAA6B,aAAA,CAACrB,OAAO,QACNR,KAAA,CAAA6B,aAAA,CAACpB,UAAU,MAAE,CACN,CAAC,CACX;EACH;EAEA,MAAMqB,UAAU,GACd,CAACJ,cAAc,IACf1B,KAAK,CAAC+B,QAAQ,CAACC,OAAO,CAACjB,QAAQ,CAAC,CAACkB,IAAI,CAAEC,KAAK,IAAK;IAC/C,OAAO,CAAAA,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAG,MAAM,CAAC,MAAK1B,OAAO;EACpC,CAAC,CAAC;EAEJ,OACER,KAAA,CAAA6B,aAAA,CAACvB,aAAa,EAAA6B,QAAA;IACZC,IAAI,EAAC,MAAM;IACXC,SAAS,EAAEjC,kBAAkB,CAACqB,SAAS,CAAE;IACzCT,SAAS,EAAEb,UAAU,CAAC,8BAA8B,EAAEa,SAAS,CAAE;IACjEG,cAAc,EAAEA;EAAe,GAC3BC,SAAS,GAEZK,SAAS,IAAIzB,KAAA,CAAA6B,aAAA,CAACxB,IAAI;IAACiC,IAAI,EAAC;EAAO,GAAEb,SAAgB,CAAC,EAClDV,QAAQ,EACRe,UAAU,GACP,IAAI,GACJJ,cAAc,aAAdA,cAAc,cAAdA,cAAc,GACbP,cAAc,KAAK,QAAQ,KAAAoB,SAAA,KAAAA,SAAA,GAC1BvC,KAAA,CAAA6B,aAAA,CAACrB,OAAO,QACNR,KAAA,CAAA6B,aAAA,CAACpB,UAAU,MAAE,CAAC,EACdT,KAAA,CAAA6B,aAAA,CAACnB,YAAY,MAAE,CACR,CAAC,EAEH,CAAC;AAEpB;AAEAE,aAAa,CAACH,UAAU,GAAGA,UAAU;AACrCG,aAAa,CAACF,YAAY,GAAGA,YAAY;AAEzCE,aAAa,CAAC4B,qBAAqB,GAAG,IAAI;AAC1C,eAAe5B,aAAa","ignoreList":[]}
@@ -14,9 +14,9 @@ function Buttons(props) {
14
14
  } = props;
15
15
  const {
16
16
  activeIndex,
17
- stepsRef
17
+ totalStepsRef
18
18
  } = useContext(WizardContext) || {};
19
- const totalSteps = Object.keys((stepsRef === null || stepsRef === void 0 ? void 0 : stepsRef.current) || {}).length || 0;
19
+ const totalSteps = (totalStepsRef === null || totalStepsRef === void 0 ? void 0 : totalStepsRef.current) || 0;
20
20
  const showPreviousButton = activeIndex > 0;
21
21
  const showNextButton = activeIndex < totalSteps - 1;
22
22
  if (!showPreviousButton && !showNextButton) {
@@ -1 +1 @@
1
- {"version":3,"file":"Buttons.js","names":["React","useContext","classnames","ButtonRow","NextButton","PreviousButton","WizardContext","Buttons","props","className","activeIndex","stepsRef","totalSteps","Object","keys","current","length","showPreviousButton","showNextButton","createElement","_extends","_PreviousButton","_NextButton","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Wizard/Buttons/Buttons.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport classnames from 'classnames'\nimport { ComponentProps } from '../../types'\nimport ButtonRow from '../../Form/ButtonRow'\nimport NextButton from '../NextButton'\nimport PreviousButton from '../PreviousButton'\nimport WizardContext from '../Context'\n\nexport type Props = ComponentProps & {\n children?: string\n}\n\nfunction Buttons(props: Props) {\n const { className } = props\n const { activeIndex, stepsRef } = useContext(WizardContext) || {}\n\n const totalSteps = Object.keys(stepsRef?.current || {}).length || 0\n const showPreviousButton = activeIndex > 0\n const showNextButton = activeIndex < totalSteps - 1\n\n if (!showPreviousButton && !showNextButton) {\n return null\n }\n\n return (\n <ButtonRow\n className={classnames('dnb-forms-buttons', className)}\n {...props}\n >\n {showPreviousButton && <PreviousButton />}\n {showNextButton && <NextButton />}\n </ButtonRow>\n )\n}\n\nButtons._supportsSpacingProps = true\nexport default Buttons\n"],"mappings":";;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,UAAU,MAAM,YAAY;AAEnC,OAAOC,SAAS,MAAM,sBAAsB;AAC5C,OAAOC,UAAU,MAAM,eAAe;AACtC,OAAOC,cAAc,MAAM,mBAAmB;AAC9C,OAAOC,aAAa,MAAM,YAAY;AAMtC,SAASC,OAAOA,CAACC,KAAY,EAAE;EAC7B,MAAM;IAAEC;EAAU,CAAC,GAAGD,KAAK;EAC3B,MAAM;IAAEE,WAAW;IAAEC;EAAS,CAAC,GAAGV,UAAU,CAACK,aAAa,CAAC,IAAI,CAAC,CAAC;EAEjE,MAAMM,UAAU,GAAGC,MAAM,CAACC,IAAI,CAAC,CAAAH,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEI,OAAO,KAAI,CAAC,CAAC,CAAC,CAACC,MAAM,IAAI,CAAC;EACnE,MAAMC,kBAAkB,GAAGP,WAAW,GAAG,CAAC;EAC1C,MAAMQ,cAAc,GAAGR,WAAW,GAAGE,UAAU,GAAG,CAAC;EAEnD,IAAI,CAACK,kBAAkB,IAAI,CAACC,cAAc,EAAE;IAC1C,OAAO,IAAI;EACb;EAEA,OACElB,KAAA,CAAAmB,aAAA,CAAChB,SAAS,EAAAiB,QAAA;IACRX,SAAS,EAAEP,UAAU,CAAC,mBAAmB,EAAEO,SAAS;EAAE,GAClDD,KAAK,GAERS,kBAAkB,KAAAI,eAAA,KAAAA,eAAA,GAAIrB,KAAA,CAAAmB,aAAA,CAACd,cAAc,MAAE,CAAC,IACxCa,cAAc,KAAAI,WAAA,KAAAA,WAAA,GAAItB,KAAA,CAAAmB,aAAA,CAACf,UAAU,MAAE,CAAC,EACxB,CAAC;AAEhB;AAEAG,OAAO,CAACgB,qBAAqB,GAAG,IAAI;AACpC,eAAehB,OAAO","ignoreList":[]}
1
+ {"version":3,"file":"Buttons.js","names":["React","useContext","classnames","ButtonRow","NextButton","PreviousButton","WizardContext","Buttons","props","className","activeIndex","totalStepsRef","totalSteps","current","showPreviousButton","showNextButton","createElement","_extends","_PreviousButton","_NextButton","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Wizard/Buttons/Buttons.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport classnames from 'classnames'\nimport { ComponentProps } from '../../types'\nimport ButtonRow from '../../Form/ButtonRow'\nimport NextButton from '../NextButton'\nimport PreviousButton from '../PreviousButton'\nimport WizardContext from '../Context'\n\nexport type Props = ComponentProps & {\n children?: string\n}\n\nfunction Buttons(props: Props) {\n const { className } = props\n const { activeIndex, totalStepsRef } = useContext(WizardContext) || {}\n\n const totalSteps = totalStepsRef?.current || 0\n const showPreviousButton = activeIndex > 0\n const showNextButton = activeIndex < totalSteps - 1\n\n if (!showPreviousButton && !showNextButton) {\n return null\n }\n\n return (\n <ButtonRow\n className={classnames('dnb-forms-buttons', className)}\n {...props}\n >\n {showPreviousButton && <PreviousButton />}\n {showNextButton && <NextButton />}\n </ButtonRow>\n )\n}\n\nButtons._supportsSpacingProps = true\nexport default Buttons\n"],"mappings":";;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,UAAU,MAAM,YAAY;AAEnC,OAAOC,SAAS,MAAM,sBAAsB;AAC5C,OAAOC,UAAU,MAAM,eAAe;AACtC,OAAOC,cAAc,MAAM,mBAAmB;AAC9C,OAAOC,aAAa,MAAM,YAAY;AAMtC,SAASC,OAAOA,CAACC,KAAY,EAAE;EAC7B,MAAM;IAAEC;EAAU,CAAC,GAAGD,KAAK;EAC3B,MAAM;IAAEE,WAAW;IAAEC;EAAc,CAAC,GAAGV,UAAU,CAACK,aAAa,CAAC,IAAI,CAAC,CAAC;EAEtE,MAAMM,UAAU,GAAG,CAAAD,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEE,OAAO,KAAI,CAAC;EAC9C,MAAMC,kBAAkB,GAAGJ,WAAW,GAAG,CAAC;EAC1C,MAAMK,cAAc,GAAGL,WAAW,GAAGE,UAAU,GAAG,CAAC;EAEnD,IAAI,CAACE,kBAAkB,IAAI,CAACC,cAAc,EAAE;IAC1C,OAAO,IAAI;EACb;EAEA,OACEf,KAAA,CAAAgB,aAAA,CAACb,SAAS,EAAAc,QAAA;IACRR,SAAS,EAAEP,UAAU,CAAC,mBAAmB,EAAEO,SAAS;EAAE,GAClDD,KAAK,GAERM,kBAAkB,KAAAI,eAAA,KAAAA,eAAA,GAAIlB,KAAA,CAAAgB,aAAA,CAACX,cAAc,MAAE,CAAC,IACxCU,cAAc,KAAAI,WAAA,KAAAA,WAAA,GAAInB,KAAA,CAAAgB,aAAA,CAACZ,UAAU,MAAE,CAAC,EACxB,CAAC;AAEhB;AAEAG,OAAO,CAACa,qBAAqB,GAAG,IAAI;AACpC,eAAeb,OAAO","ignoreList":[]}
@@ -29,19 +29,19 @@ export function DisplaySteps({
29
29
  if (!hasErrorInOtherStepRef.current) {
30
30
  return;
31
31
  }
32
- if (hasInvalidStepsState(['error'])) {
32
+ if (hasInvalidStepsState(undefined, ['error'])) {
33
33
  return {
34
34
  status: translations.Step.stepHasError,
35
35
  status_state: 'error'
36
36
  };
37
37
  }
38
- if (hasInvalidStepsState(['unknown'])) {
38
+ if (hasInvalidStepsState(undefined, ['unknown'])) {
39
39
  return {
40
40
  status: 'Unknown state',
41
41
  status_state: 'warn'
42
42
  };
43
43
  }
44
- }, [hasInvalidStepsState, translations.Step.stepHasError]);
44
+ }, [hasErrorInOtherStepRef, hasInvalidStepsState, translations.Step.stepHasError]);
45
45
  return React.createElement("aside", {
46
46
  className: "dnb-forms-wizard-layout__indicator"
47
47
  }, React.createElement(StepIndicator.Sidebar, {
@@ -49,13 +49,14 @@ export function DisplaySteps({
49
49
  }), React.createElement(StepIndicator, {
50
50
  bottom: true,
51
51
  current_step: activeIndexRef.current,
52
- data: Object.values(stepsRef.current).map(({
52
+ data: Array.from(stepsRef.current.values()).map(({
53
+ stringifiedTitle,
53
54
  title,
54
55
  inactive,
55
56
  status,
56
57
  statusState
57
58
  }) => ({
58
- title,
59
+ title: stringifiedTitle || title,
59
60
  inactive,
60
61
  status,
61
62
  status_state: statusState
@@ -1 +1 @@
1
- {"version":3,"file":"DisplaySteps.js","names":["React","useCallback","useContext","useReducer","WizardContext","StepIndicator","useTranslation","DisplaySteps","mode","variant","noAnimation","handleChange","sidebarId","forceUpdate","id","activeIndexRef","stepsRef","updateTitlesRef","hasErrorInOtherStepRef","hasInvalidStepsState","current","translations","sidebar_id","undefined","getTriggerStatus","status","Step","stepHasError","status_state","createElement","className","Sidebar","bottom","current_step","data","Object","values","map","title","inactive","statusState","no_animation","on_change","triggerButtonProps"],"sources":["../../../../../../src/extensions/forms/Wizard/Container/DisplaySteps.tsx"],"sourcesContent":["import React, { useCallback, useContext, useReducer } from 'react'\nimport WizardContext from '../Context'\nimport StepIndicator from '../../../../components/StepIndicator'\nimport { StepIndicatorItemProps } from '../../../../components/step-indicator/StepIndicatorItem'\nimport { useTranslation } from '../../hooks'\n\nexport function DisplaySteps({\n mode,\n variant,\n noAnimation,\n handleChange,\n sidebarId,\n}) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n const {\n id,\n activeIndexRef,\n stepsRef,\n updateTitlesRef,\n hasErrorInOtherStepRef,\n hasInvalidStepsState,\n } = useContext(WizardContext) || {}\n updateTitlesRef.current = () => {\n forceUpdate()\n }\n const translations = useTranslation()\n\n const sidebar_id =\n variant === 'drawer' && !sidebarId ? undefined : sidebarId ?? id\n\n const getTriggerStatus = useCallback(() => {\n if (!hasErrorInOtherStepRef.current) {\n return // stop here\n }\n if (hasInvalidStepsState(['error'])) {\n return {\n status: translations.Step.stepHasError,\n status_state: 'error',\n } satisfies Omit<StepIndicatorItemProps, 'title' | 'currentItemNum'>\n }\n if (hasInvalidStepsState(['unknown'])) {\n return {\n status: 'Unknown state',\n status_state: 'warn',\n } satisfies Omit<StepIndicatorItemProps, 'title' | 'currentItemNum'>\n }\n }, [hasInvalidStepsState, translations.Step.stepHasError])\n\n return (\n <aside className=\"dnb-forms-wizard-layout__indicator\">\n <StepIndicator.Sidebar sidebar_id={sidebar_id} />\n <StepIndicator\n bottom\n current_step={activeIndexRef.current}\n data={Object.values(stepsRef.current).map(\n ({ title, inactive, status, statusState }) =>\n ({\n title,\n inactive,\n status,\n status_state: statusState,\n }) satisfies Omit<StepIndicatorItemProps, 'currentItemNum'>\n )}\n mode={mode}\n no_animation={noAnimation}\n on_change={handleChange}\n sidebar_id={sidebar_id}\n triggerButtonProps={getTriggerStatus()}\n />\n </aside>\n )\n}\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,EAAEC,UAAU,QAAQ,OAAO;AAClE,OAAOC,aAAa,MAAM,YAAY;AACtC,OAAOC,aAAa,MAAM,sCAAsC;AAEhE,SAASC,cAAc,QAAQ,aAAa;AAE5C,OAAO,SAASC,YAAYA,CAAC;EAC3BC,IAAI;EACJC,OAAO;EACPC,WAAW;EACXC,YAAY;EACZC;AACF,CAAC,EAAE;EACD,MAAM,GAAGC,WAAW,CAAC,GAAGV,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAClD,MAAM;IACJW,EAAE;IACFC,cAAc;IACdC,QAAQ;IACRC,eAAe;IACfC,sBAAsB;IACtBC;EACF,CAAC,GAAGjB,UAAU,CAACE,aAAa,CAAC,IAAI,CAAC,CAAC;EACnCa,eAAe,CAACG,OAAO,GAAG,MAAM;IAC9BP,WAAW,CAAC,CAAC;EACf,CAAC;EACD,MAAMQ,YAAY,GAAGf,cAAc,CAAC,CAAC;EAErC,MAAMgB,UAAU,GACdb,OAAO,KAAK,QAAQ,IAAI,CAACG,SAAS,GAAGW,SAAS,GAAGX,SAAS,aAATA,SAAS,cAATA,SAAS,GAAIE,EAAE;EAElE,MAAMU,gBAAgB,GAAGvB,WAAW,CAAC,MAAM;IACzC,IAAI,CAACiB,sBAAsB,CAACE,OAAO,EAAE;MACnC;IACF;IACA,IAAID,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE;MACnC,OAAO;QACLM,MAAM,EAAEJ,YAAY,CAACK,IAAI,CAACC,YAAY;QACtCC,YAAY,EAAE;MAChB,CAAC;IACH;IACA,IAAIT,oBAAoB,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE;MACrC,OAAO;QACLM,MAAM,EAAE,eAAe;QACvBG,YAAY,EAAE;MAChB,CAAC;IACH;EACF,CAAC,EAAE,CAACT,oBAAoB,EAAEE,YAAY,CAACK,IAAI,CAACC,YAAY,CAAC,CAAC;EAE1D,OACE3B,KAAA,CAAA6B,aAAA;IAAOC,SAAS,EAAC;EAAoC,GACnD9B,KAAA,CAAA6B,aAAA,CAACxB,aAAa,CAAC0B,OAAO;IAACT,UAAU,EAAEA;EAAW,CAAE,CAAC,EACjDtB,KAAA,CAAA6B,aAAA,CAACxB,aAAa;IACZ2B,MAAM;IACNC,YAAY,EAAElB,cAAc,CAACK,OAAQ;IACrCc,IAAI,EAAEC,MAAM,CAACC,MAAM,CAACpB,QAAQ,CAACI,OAAO,CAAC,CAACiB,GAAG,CACvC,CAAC;MAAEC,KAAK;MAAEC,QAAQ;MAAEd,MAAM;MAAEe;IAAY,CAAC,MACtC;MACCF,KAAK;MACLC,QAAQ;MACRd,MAAM;MACNG,YAAY,EAAEY;IAChB,CAAC,CACL,CAAE;IACFhC,IAAI,EAAEA,IAAK;IACXiC,YAAY,EAAE/B,WAAY;IAC1BgC,SAAS,EAAE/B,YAAa;IACxBW,UAAU,EAAEA,UAAW;IACvBqB,kBAAkB,EAAEnB,gBAAgB,CAAC;EAAE,CACxC,CACI,CAAC;AAEZ","ignoreList":[]}
1
+ {"version":3,"file":"DisplaySteps.js","names":["React","useCallback","useContext","useReducer","WizardContext","StepIndicator","useTranslation","DisplaySteps","mode","variant","noAnimation","handleChange","sidebarId","forceUpdate","id","activeIndexRef","stepsRef","updateTitlesRef","hasErrorInOtherStepRef","hasInvalidStepsState","current","translations","sidebar_id","undefined","getTriggerStatus","status","Step","stepHasError","status_state","createElement","className","Sidebar","bottom","current_step","data","Array","from","values","map","stringifiedTitle","title","inactive","statusState","no_animation","on_change","triggerButtonProps"],"sources":["../../../../../../src/extensions/forms/Wizard/Container/DisplaySteps.tsx"],"sourcesContent":["import React, { useCallback, useContext, useReducer } from 'react'\nimport WizardContext from '../Context'\nimport StepIndicator from '../../../../components/StepIndicator'\nimport { StepIndicatorItemProps } from '../../../../components/step-indicator/StepIndicatorItem'\nimport { useTranslation } from '../../hooks'\n\nexport function DisplaySteps({\n mode,\n variant,\n noAnimation,\n handleChange,\n sidebarId,\n}) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n const {\n id,\n activeIndexRef,\n stepsRef,\n updateTitlesRef,\n hasErrorInOtherStepRef,\n hasInvalidStepsState,\n } = useContext(WizardContext) || {}\n updateTitlesRef.current = () => {\n forceUpdate()\n }\n const translations = useTranslation()\n\n const sidebar_id =\n variant === 'drawer' && !sidebarId ? undefined : sidebarId ?? id\n\n const getTriggerStatus = useCallback(() => {\n if (!hasErrorInOtherStepRef.current) {\n return // stop here\n }\n if (hasInvalidStepsState(undefined, ['error'])) {\n return {\n status: translations.Step.stepHasError,\n status_state: 'error',\n } satisfies Omit<StepIndicatorItemProps, 'title' | 'currentItemNum'>\n }\n if (hasInvalidStepsState(undefined, ['unknown'])) {\n return {\n status: 'Unknown state',\n status_state: 'warn',\n } satisfies Omit<StepIndicatorItemProps, 'title' | 'currentItemNum'>\n }\n }, [\n hasErrorInOtherStepRef,\n hasInvalidStepsState,\n translations.Step.stepHasError,\n ])\n\n return (\n <aside className=\"dnb-forms-wizard-layout__indicator\">\n <StepIndicator.Sidebar sidebar_id={sidebar_id} />\n <StepIndicator\n bottom\n current_step={activeIndexRef.current}\n data={Array.from(stepsRef.current.values()).map(\n ({ stringifiedTitle, title, inactive, status, statusState }) =>\n ({\n title: stringifiedTitle || title,\n inactive,\n status,\n status_state: statusState,\n }) satisfies Omit<StepIndicatorItemProps, 'currentItemNum'>\n )}\n mode={mode}\n no_animation={noAnimation}\n on_change={handleChange}\n sidebar_id={sidebar_id}\n triggerButtonProps={getTriggerStatus()}\n />\n </aside>\n )\n}\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,EAAEC,UAAU,QAAQ,OAAO;AAClE,OAAOC,aAAa,MAAM,YAAY;AACtC,OAAOC,aAAa,MAAM,sCAAsC;AAEhE,SAASC,cAAc,QAAQ,aAAa;AAE5C,OAAO,SAASC,YAAYA,CAAC;EAC3BC,IAAI;EACJC,OAAO;EACPC,WAAW;EACXC,YAAY;EACZC;AACF,CAAC,EAAE;EACD,MAAM,GAAGC,WAAW,CAAC,GAAGV,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAClD,MAAM;IACJW,EAAE;IACFC,cAAc;IACdC,QAAQ;IACRC,eAAe;IACfC,sBAAsB;IACtBC;EACF,CAAC,GAAGjB,UAAU,CAACE,aAAa,CAAC,IAAI,CAAC,CAAC;EACnCa,eAAe,CAACG,OAAO,GAAG,MAAM;IAC9BP,WAAW,CAAC,CAAC;EACf,CAAC;EACD,MAAMQ,YAAY,GAAGf,cAAc,CAAC,CAAC;EAErC,MAAMgB,UAAU,GACdb,OAAO,KAAK,QAAQ,IAAI,CAACG,SAAS,GAAGW,SAAS,GAAGX,SAAS,aAATA,SAAS,cAATA,SAAS,GAAIE,EAAE;EAElE,MAAMU,gBAAgB,GAAGvB,WAAW,CAAC,MAAM;IACzC,IAAI,CAACiB,sBAAsB,CAACE,OAAO,EAAE;MACnC;IACF;IACA,IAAID,oBAAoB,CAACI,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE;MAC9C,OAAO;QACLE,MAAM,EAAEJ,YAAY,CAACK,IAAI,CAACC,YAAY;QACtCC,YAAY,EAAE;MAChB,CAAC;IACH;IACA,IAAIT,oBAAoB,CAACI,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE;MAChD,OAAO;QACLE,MAAM,EAAE,eAAe;QACvBG,YAAY,EAAE;MAChB,CAAC;IACH;EACF,CAAC,EAAE,CACDV,sBAAsB,EACtBC,oBAAoB,EACpBE,YAAY,CAACK,IAAI,CAACC,YAAY,CAC/B,CAAC;EAEF,OACE3B,KAAA,CAAA6B,aAAA;IAAOC,SAAS,EAAC;EAAoC,GACnD9B,KAAA,CAAA6B,aAAA,CAACxB,aAAa,CAAC0B,OAAO;IAACT,UAAU,EAAEA;EAAW,CAAE,CAAC,EACjDtB,KAAA,CAAA6B,aAAA,CAACxB,aAAa;IACZ2B,MAAM;IACNC,YAAY,EAAElB,cAAc,CAACK,OAAQ;IACrCc,IAAI,EAAEC,KAAK,CAACC,IAAI,CAACpB,QAAQ,CAACI,OAAO,CAACiB,MAAM,CAAC,CAAC,CAAC,CAACC,GAAG,CAC7C,CAAC;MAAEC,gBAAgB;MAAEC,KAAK;MAAEC,QAAQ;MAAEhB,MAAM;MAAEiB;IAAY,CAAC,MACxD;MACCF,KAAK,EAAED,gBAAgB,IAAIC,KAAK;MAChCC,QAAQ;MACRhB,MAAM;MACNG,YAAY,EAAEc;IAChB,CAAC,CACL,CAAE;IACFlC,IAAI,EAAEA,IAAK;IACXmC,YAAY,EAAEjC,WAAY;IAC1BkC,SAAS,EAAEjC,YAAa;IACxBW,UAAU,EAAEA,UAAW;IACvBuB,kBAAkB,EAAErB,gBAAgB,CAAC;EAAE,CACxC,CACI,CAAC;AAEZ","ignoreList":[]}
@@ -1,3 +1,4 @@
1
- export declare function IterateOverSteps({ children }: {
2
- children: any;
3
- }): any;
1
+ import React from 'react';
2
+ export declare function IterateOverSteps({ children, }: {
3
+ children: React.ReactNode;
4
+ }): React.ReactNode;