@dnb/eufemia 10.51.2 → 10.52.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 (603) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/cjs/components/autocomplete/Autocomplete.js +4 -0
  3. package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
  4. package/cjs/components/avatar/style/themes/dnb-avatar-theme-sbanken.css +2 -2
  5. package/cjs/components/avatar/style/themes/dnb-avatar-theme-sbanken.min.css +1 -1
  6. package/cjs/components/avatar/style/themes/dnb-avatar-theme-sbanken.scss +2 -2
  7. package/cjs/components/dialog/style/themes/dnb-dialog-theme-sbanken.css +6 -0
  8. package/cjs/components/dialog/style/themes/dnb-dialog-theme-sbanken.min.css +1 -1
  9. package/cjs/components/dialog/style/themes/dnb-dialog-theme-sbanken.scss +7 -0
  10. package/cjs/components/form-status/FormStatus.d.ts +5 -0
  11. package/cjs/components/icon/Icon.d.ts +2 -1
  12. package/cjs/components/icon/Icon.js.map +1 -1
  13. package/cjs/components/logo/Logo.js.map +1 -1
  14. package/cjs/components/number-format/NumberUtils.d.ts +14 -0
  15. package/cjs/components/number-format/NumberUtils.js +7 -8
  16. package/cjs/components/number-format/NumberUtils.js.map +1 -1
  17. package/cjs/components/skeleton/style/dnb-skeleton.css +3 -1
  18. package/cjs/components/skeleton/style/dnb-skeleton.min.css +1 -1
  19. package/cjs/components/skeleton/style/dnb-skeleton.scss +4 -2
  20. package/cjs/elements/typography/style/themes/dnb-typography-theme-sbanken.scss +21 -2
  21. package/cjs/extensions/forms/DataContext/Context.d.ts +5 -0
  22. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  23. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +12 -1
  24. package/cjs/extensions/forms/DataContext/Provider/Provider.js +86 -77
  25. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  26. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +6 -1
  27. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +112 -23
  28. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  29. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js +5 -0
  30. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js.map +1 -1
  31. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.d.ts +3 -1
  32. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +28 -16
  33. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  34. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.d.ts +2 -0
  35. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js +25 -0
  36. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js.map +1 -0
  37. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -3
  38. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  39. package/cjs/extensions/forms/Form/Isolation/Isolation.d.ts +4 -0
  40. package/cjs/extensions/forms/Form/Isolation/Isolation.js +26 -0
  41. package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  42. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js +5 -0
  43. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  44. package/cjs/extensions/forms/Form/Snapshot/Snapshot.d.ts +12 -0
  45. package/cjs/extensions/forms/Form/Snapshot/Snapshot.js +45 -0
  46. package/cjs/extensions/forms/Form/Snapshot/Snapshot.js.map +1 -0
  47. package/cjs/extensions/forms/Form/Snapshot/SnapshotContext.d.ts +12 -0
  48. package/cjs/extensions/forms/Form/Snapshot/SnapshotContext.js +12 -0
  49. package/cjs/extensions/forms/Form/Snapshot/SnapshotContext.js.map +1 -0
  50. package/cjs/extensions/forms/Form/Snapshot/SnapshotDocs.d.ts +3 -0
  51. package/cjs/extensions/forms/Form/Snapshot/SnapshotDocs.js +17 -0
  52. package/cjs/extensions/forms/Form/Snapshot/SnapshotDocs.js.map +1 -0
  53. package/cjs/extensions/forms/Form/Snapshot/index.d.ts +2 -0
  54. package/cjs/extensions/forms/Form/Snapshot/index.js +27 -0
  55. package/cjs/extensions/forms/Form/Snapshot/index.js.map +1 -0
  56. package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +2 -2
  57. package/cjs/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -1
  58. package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +10 -2
  59. package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  60. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js +10 -10
  61. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  62. package/cjs/extensions/forms/Form/Visibility/useVisibility.js +26 -14
  63. package/cjs/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  64. package/cjs/extensions/forms/Form/data-context/clearData.js +2 -5
  65. package/cjs/extensions/forms/Form/data-context/clearData.js.map +1 -1
  66. package/cjs/extensions/forms/Form/data-context/getData.js.map +1 -1
  67. package/cjs/extensions/forms/Form/data-context/useData.js +3 -2
  68. package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
  69. package/cjs/extensions/forms/Form/data-context/useValidation.js.map +1 -1
  70. package/cjs/extensions/forms/Form/index.d.ts +2 -0
  71. package/cjs/extensions/forms/Form/index.js +14 -0
  72. package/cjs/extensions/forms/Form/index.js.map +1 -1
  73. package/cjs/extensions/forms/Iterate/Array/Array.js +3 -1
  74. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  75. package/cjs/extensions/forms/Iterate/Array/ArrayItemArea.js +30 -17
  76. package/cjs/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
  77. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js +5 -6
  78. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  79. package/cjs/extensions/forms/Iterate/ItemNo/ItemNo.d.ts +9 -0
  80. package/cjs/extensions/forms/Iterate/ItemNo/ItemNo.js +33 -0
  81. package/cjs/extensions/forms/Iterate/ItemNo/ItemNo.js.map +1 -0
  82. package/cjs/extensions/forms/Iterate/ItemNo/index.d.ts +2 -0
  83. package/cjs/extensions/forms/Iterate/ItemNo/index.js +27 -0
  84. package/cjs/extensions/forms/Iterate/ItemNo/index.js.map +1 -0
  85. package/cjs/extensions/forms/Iterate/IterateItemContext.d.ts +1 -0
  86. package/cjs/extensions/forms/Iterate/IterateItemContext.js.map +1 -1
  87. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +18 -2
  88. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js +44 -18
  89. package/cjs/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  90. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +24 -1
  91. package/cjs/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  92. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js +5 -6
  93. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  94. package/cjs/extensions/forms/Iterate/index.d.ts +1 -0
  95. package/cjs/extensions/forms/Iterate/index.js +7 -0
  96. package/cjs/extensions/forms/Iterate/index.js.map +1 -1
  97. package/cjs/extensions/forms/Tools/Log.d.ts +7 -2
  98. package/cjs/extensions/forms/Tools/Log.js +36 -4
  99. package/cjs/extensions/forms/Tools/Log.js.map +1 -1
  100. package/cjs/extensions/forms/Value/Provider/useValueProvider.d.ts +1 -0
  101. package/cjs/extensions/forms/Value/SummaryList/SummaryList.d.ts +4 -2
  102. package/cjs/extensions/forms/Value/SummaryList/SummaryList.js +3 -1
  103. package/cjs/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -1
  104. package/cjs/extensions/forms/Value/SummaryList/SummaryListDocs.js +5 -0
  105. package/cjs/extensions/forms/Value/SummaryList/SummaryListDocs.js.map +1 -1
  106. package/cjs/extensions/forms/Value/ValueDocs.js +5 -0
  107. package/cjs/extensions/forms/Value/ValueDocs.js.map +1 -1
  108. package/cjs/extensions/forms/Wizard/Buttons/Buttons.js +2 -2
  109. package/cjs/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -1
  110. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +78 -31
  111. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  112. package/cjs/extensions/forms/Wizard/Container/WizardContainerDocs.js +1 -1
  113. package/cjs/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
  114. package/cjs/extensions/forms/Wizard/Container/useHandleLayoutEffect.d.ts +1 -2
  115. package/cjs/extensions/forms/Wizard/Container/useHandleLayoutEffect.js +0 -7
  116. package/cjs/extensions/forms/Wizard/Container/useHandleLayoutEffect.js.map +1 -1
  117. package/cjs/extensions/forms/Wizard/Container/useStepAnimation.d.ts +2 -1
  118. package/cjs/extensions/forms/Wizard/Container/useStepAnimation.js +11 -6
  119. package/cjs/extensions/forms/Wizard/Container/useStepAnimation.js.map +1 -1
  120. package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +14 -3
  121. package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  122. package/cjs/extensions/forms/Wizard/Step/Step.js +4 -4
  123. package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
  124. package/cjs/extensions/forms/Wizard/hooks/useStep.js +4 -4
  125. package/cjs/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  126. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +77 -58
  127. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  128. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.d.ts +12 -12
  129. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js +24 -24
  130. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js.map +1 -1
  131. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +6 -1
  132. package/cjs/extensions/forms/constants/locales/en-GB.js +9 -4
  133. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  134. package/cjs/extensions/forms/constants/locales/en-US.d.ts +6 -1
  135. package/cjs/extensions/forms/constants/locales/en-US.js +2 -1
  136. package/cjs/extensions/forms/constants/locales/en-US.js.map +1 -1
  137. package/cjs/extensions/forms/constants/locales/index.d.ts +12 -2
  138. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +6 -1
  139. package/cjs/extensions/forms/constants/locales/nb-NO.js +9 -4
  140. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  141. package/cjs/extensions/forms/hooks/useDataContext.d.ts +6 -0
  142. package/cjs/extensions/forms/hooks/useDataContext.js +31 -0
  143. package/cjs/extensions/forms/hooks/useDataContext.js.map +1 -0
  144. package/cjs/extensions/forms/hooks/useExternalValue.js +12 -6
  145. package/cjs/extensions/forms/hooks/useExternalValue.js.map +1 -1
  146. package/cjs/extensions/forms/hooks/useFieldProps.js +82 -43
  147. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  148. package/cjs/extensions/forms/hooks/useSnapshot.d.ts +9 -0
  149. package/cjs/extensions/forms/hooks/useSnapshot.js +87 -0
  150. package/cjs/extensions/forms/hooks/useSnapshot.js.map +1 -0
  151. package/cjs/extensions/forms/hooks/useValueProps.js +6 -1
  152. package/cjs/extensions/forms/hooks/useValueProps.js.map +1 -1
  153. package/cjs/extensions/forms/types.d.ts +4 -0
  154. package/cjs/extensions/forms/types.js.map +1 -1
  155. package/cjs/extensions/payment-card/style/dnb-payment-card.css +3 -2
  156. package/cjs/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
  157. package/cjs/shared/Eufemia.d.ts +1 -1
  158. package/cjs/shared/Eufemia.js +2 -2
  159. package/cjs/shared/Eufemia.js.map +1 -1
  160. package/cjs/shared/component-helper.js +1 -1
  161. package/cjs/shared/component-helper.js.map +1 -1
  162. package/cjs/style/core/scopes.scss +1 -1
  163. package/cjs/style/dnb-ui-basis.css +1 -1
  164. package/cjs/style/dnb-ui-basis.min.css +1 -1
  165. package/cjs/style/dnb-ui-body.css +1 -1
  166. package/cjs/style/dnb-ui-body.min.css +1 -1
  167. package/cjs/style/dnb-ui-components.css +3 -1
  168. package/cjs/style/dnb-ui-components.min.css +1 -1
  169. package/cjs/style/dnb-ui-core.css +1 -1
  170. package/cjs/style/dnb-ui-core.min.css +1 -1
  171. package/cjs/style/dnb-ui-extensions.css +3 -2
  172. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  173. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +3 -1
  174. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  175. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +3 -2
  176. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  177. package/cjs/style/themes/theme-eiendom/properties.d.ts +1 -0
  178. package/cjs/style/themes/theme-eiendom/properties.js +3 -2
  179. package/cjs/style/themes/theme-eiendom/properties.js.map +1 -1
  180. package/cjs/style/themes/theme-sbanken/properties.d.ts +1 -0
  181. package/cjs/style/themes/theme-sbanken/properties.js +3 -2
  182. package/cjs/style/themes/theme-sbanken/properties.js.map +1 -1
  183. package/cjs/style/themes/theme-sbanken/properties.scss +9 -8
  184. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +20 -4
  185. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +3 -1
  186. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +11 -3
  187. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  188. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +17 -2
  189. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.min.css +3 -1
  190. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +3 -2
  191. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  192. package/cjs/style/themes/theme-ui/properties.d.ts +1 -0
  193. package/cjs/style/themes/theme-ui/properties.js +3 -2
  194. package/cjs/style/themes/theme-ui/properties.js.map +1 -1
  195. package/cjs/style/themes/theme-ui/ui-theme-components.css +3 -1
  196. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  197. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +3 -2
  198. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  199. package/components/autocomplete/Autocomplete.js +4 -0
  200. package/components/autocomplete/Autocomplete.js.map +1 -1
  201. package/components/avatar/style/themes/dnb-avatar-theme-sbanken.css +2 -2
  202. package/components/avatar/style/themes/dnb-avatar-theme-sbanken.min.css +1 -1
  203. package/components/avatar/style/themes/dnb-avatar-theme-sbanken.scss +2 -2
  204. package/components/dialog/style/themes/dnb-dialog-theme-sbanken.css +6 -0
  205. package/components/dialog/style/themes/dnb-dialog-theme-sbanken.min.css +1 -1
  206. package/components/dialog/style/themes/dnb-dialog-theme-sbanken.scss +7 -0
  207. package/components/form-status/FormStatus.d.ts +5 -0
  208. package/components/icon/Icon.d.ts +2 -1
  209. package/components/icon/Icon.js.map +1 -1
  210. package/components/logo/Logo.js.map +1 -1
  211. package/components/number-format/NumberUtils.d.ts +14 -0
  212. package/components/number-format/NumberUtils.js +7 -8
  213. package/components/number-format/NumberUtils.js.map +1 -1
  214. package/components/skeleton/style/dnb-skeleton.css +3 -1
  215. package/components/skeleton/style/dnb-skeleton.min.css +1 -1
  216. package/components/skeleton/style/dnb-skeleton.scss +4 -2
  217. package/elements/typography/style/themes/dnb-typography-theme-sbanken.scss +21 -2
  218. package/es/components/autocomplete/Autocomplete.js +4 -0
  219. package/es/components/autocomplete/Autocomplete.js.map +1 -1
  220. package/es/components/avatar/style/themes/dnb-avatar-theme-sbanken.css +2 -2
  221. package/es/components/avatar/style/themes/dnb-avatar-theme-sbanken.min.css +1 -1
  222. package/es/components/avatar/style/themes/dnb-avatar-theme-sbanken.scss +2 -2
  223. package/es/components/dialog/style/themes/dnb-dialog-theme-sbanken.css +6 -0
  224. package/es/components/dialog/style/themes/dnb-dialog-theme-sbanken.min.css +1 -1
  225. package/es/components/dialog/style/themes/dnb-dialog-theme-sbanken.scss +7 -0
  226. package/es/components/form-status/FormStatus.d.ts +5 -0
  227. package/es/components/icon/Icon.d.ts +2 -1
  228. package/es/components/icon/Icon.js.map +1 -1
  229. package/es/components/logo/Logo.js.map +1 -1
  230. package/es/components/number-format/NumberUtils.d.ts +14 -0
  231. package/es/components/number-format/NumberUtils.js +7 -8
  232. package/es/components/number-format/NumberUtils.js.map +1 -1
  233. package/es/components/skeleton/style/dnb-skeleton.css +3 -1
  234. package/es/components/skeleton/style/dnb-skeleton.min.css +1 -1
  235. package/es/components/skeleton/style/dnb-skeleton.scss +4 -2
  236. package/es/elements/typography/style/themes/dnb-typography-theme-sbanken.scss +21 -2
  237. package/es/extensions/forms/DataContext/Context.d.ts +5 -0
  238. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  239. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +12 -1
  240. package/es/extensions/forms/DataContext/Provider/Provider.js +84 -75
  241. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  242. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +6 -1
  243. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +109 -23
  244. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  245. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js +5 -0
  246. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js.map +1 -1
  247. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.d.ts +3 -1
  248. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +28 -16
  249. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  250. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.d.ts +2 -0
  251. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js +18 -0
  252. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js.map +1 -0
  253. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -3
  254. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  255. package/es/extensions/forms/Form/Isolation/Isolation.d.ts +4 -0
  256. package/es/extensions/forms/Form/Isolation/Isolation.js +28 -3
  257. package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  258. package/es/extensions/forms/Form/Isolation/IsolationDocs.js +5 -0
  259. package/es/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  260. package/es/extensions/forms/Form/Snapshot/Snapshot.d.ts +12 -0
  261. package/es/extensions/forms/Form/Snapshot/Snapshot.js +36 -0
  262. package/es/extensions/forms/Form/Snapshot/Snapshot.js.map +1 -0
  263. package/es/extensions/forms/Form/Snapshot/SnapshotContext.d.ts +12 -0
  264. package/es/extensions/forms/Form/Snapshot/SnapshotContext.js +6 -0
  265. package/es/extensions/forms/Form/Snapshot/SnapshotContext.js.map +1 -0
  266. package/es/extensions/forms/Form/Snapshot/SnapshotDocs.d.ts +3 -0
  267. package/es/extensions/forms/Form/Snapshot/SnapshotDocs.js +9 -0
  268. package/es/extensions/forms/Form/Snapshot/SnapshotDocs.js.map +1 -0
  269. package/es/extensions/forms/Form/Snapshot/index.d.ts +2 -0
  270. package/es/extensions/forms/Form/Snapshot/index.js +3 -0
  271. package/es/extensions/forms/Form/Snapshot/index.js.map +1 -0
  272. package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +2 -2
  273. package/es/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -1
  274. package/es/extensions/forms/Form/Visibility/Visibility.d.ts +10 -2
  275. package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  276. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js +10 -10
  277. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  278. package/es/extensions/forms/Form/Visibility/useVisibility.js +26 -14
  279. package/es/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  280. package/es/extensions/forms/Form/data-context/clearData.js +2 -5
  281. package/es/extensions/forms/Form/data-context/clearData.js.map +1 -1
  282. package/es/extensions/forms/Form/data-context/getData.js.map +1 -1
  283. package/es/extensions/forms/Form/data-context/useData.js +1 -0
  284. package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
  285. package/es/extensions/forms/Form/data-context/useValidation.js.map +1 -1
  286. package/es/extensions/forms/Form/index.d.ts +2 -0
  287. package/es/extensions/forms/Form/index.js +2 -0
  288. package/es/extensions/forms/Form/index.js.map +1 -1
  289. package/es/extensions/forms/Iterate/Array/Array.js +3 -1
  290. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  291. package/es/extensions/forms/Iterate/Array/ArrayItemArea.js +31 -18
  292. package/es/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
  293. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js +5 -6
  294. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  295. package/es/extensions/forms/Iterate/ItemNo/ItemNo.d.ts +9 -0
  296. package/es/extensions/forms/Iterate/ItemNo/ItemNo.js +22 -0
  297. package/es/extensions/forms/Iterate/ItemNo/ItemNo.js.map +1 -0
  298. package/es/extensions/forms/Iterate/ItemNo/index.d.ts +2 -0
  299. package/es/extensions/forms/Iterate/ItemNo/index.js +3 -0
  300. package/es/extensions/forms/Iterate/ItemNo/index.js.map +1 -0
  301. package/es/extensions/forms/Iterate/IterateItemContext.d.ts +1 -0
  302. package/es/extensions/forms/Iterate/IterateItemContext.js.map +1 -1
  303. package/es/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +18 -2
  304. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js +43 -16
  305. package/es/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  306. package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +24 -1
  307. package/es/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  308. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js +5 -6
  309. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  310. package/es/extensions/forms/Iterate/index.d.ts +1 -0
  311. package/es/extensions/forms/Iterate/index.js +1 -0
  312. package/es/extensions/forms/Iterate/index.js.map +1 -1
  313. package/es/extensions/forms/Tools/Log.d.ts +7 -2
  314. package/es/extensions/forms/Tools/Log.js +26 -3
  315. package/es/extensions/forms/Tools/Log.js.map +1 -1
  316. package/es/extensions/forms/Value/Provider/useValueProvider.d.ts +1 -0
  317. package/es/extensions/forms/Value/SummaryList/SummaryList.d.ts +4 -2
  318. package/es/extensions/forms/Value/SummaryList/SummaryList.js +3 -1
  319. package/es/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -1
  320. package/es/extensions/forms/Value/SummaryList/SummaryListDocs.js +5 -0
  321. package/es/extensions/forms/Value/SummaryList/SummaryListDocs.js.map +1 -1
  322. package/es/extensions/forms/Value/ValueDocs.js +5 -0
  323. package/es/extensions/forms/Value/ValueDocs.js.map +1 -1
  324. package/es/extensions/forms/Wizard/Buttons/Buttons.js +2 -2
  325. package/es/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -1
  326. package/es/extensions/forms/Wizard/Container/WizardContainer.js +67 -23
  327. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  328. package/es/extensions/forms/Wizard/Container/WizardContainerDocs.js +1 -1
  329. package/es/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
  330. package/es/extensions/forms/Wizard/Container/useHandleLayoutEffect.d.ts +1 -2
  331. package/es/extensions/forms/Wizard/Container/useHandleLayoutEffect.js +0 -6
  332. package/es/extensions/forms/Wizard/Container/useHandleLayoutEffect.js.map +1 -1
  333. package/es/extensions/forms/Wizard/Container/useStepAnimation.d.ts +2 -1
  334. package/es/extensions/forms/Wizard/Container/useStepAnimation.js +12 -7
  335. package/es/extensions/forms/Wizard/Container/useStepAnimation.js.map +1 -1
  336. package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +14 -3
  337. package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  338. package/es/extensions/forms/Wizard/Step/Step.js +4 -4
  339. package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
  340. package/es/extensions/forms/Wizard/hooks/useStep.js +4 -4
  341. package/es/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  342. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +77 -58
  343. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  344. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.d.ts +12 -12
  345. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js +24 -24
  346. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js.map +1 -1
  347. package/es/extensions/forms/constants/locales/en-GB.d.ts +6 -1
  348. package/es/extensions/forms/constants/locales/en-GB.js +9 -4
  349. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  350. package/es/extensions/forms/constants/locales/en-US.d.ts +6 -1
  351. package/es/extensions/forms/constants/locales/en-US.js +2 -1
  352. package/es/extensions/forms/constants/locales/en-US.js.map +1 -1
  353. package/es/extensions/forms/constants/locales/index.d.ts +12 -2
  354. package/es/extensions/forms/constants/locales/nb-NO.d.ts +6 -1
  355. package/es/extensions/forms/constants/locales/nb-NO.js +9 -4
  356. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  357. package/es/extensions/forms/hooks/useDataContext.d.ts +6 -0
  358. package/es/extensions/forms/hooks/useDataContext.js +24 -0
  359. package/es/extensions/forms/hooks/useDataContext.js.map +1 -0
  360. package/es/extensions/forms/hooks/useExternalValue.js +12 -6
  361. package/es/extensions/forms/hooks/useExternalValue.js.map +1 -1
  362. package/es/extensions/forms/hooks/useFieldProps.js +83 -44
  363. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  364. package/es/extensions/forms/hooks/useSnapshot.d.ts +9 -0
  365. package/es/extensions/forms/hooks/useSnapshot.js +73 -0
  366. package/es/extensions/forms/hooks/useSnapshot.js.map +1 -0
  367. package/es/extensions/forms/hooks/useValueProps.js +6 -1
  368. package/es/extensions/forms/hooks/useValueProps.js.map +1 -1
  369. package/es/extensions/forms/types.d.ts +4 -0
  370. package/es/extensions/forms/types.js.map +1 -1
  371. package/es/extensions/payment-card/style/dnb-payment-card.css +3 -2
  372. package/es/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
  373. package/es/shared/Eufemia.d.ts +1 -1
  374. package/es/shared/Eufemia.js +2 -2
  375. package/es/shared/Eufemia.js.map +1 -1
  376. package/es/shared/component-helper.js +1 -1
  377. package/es/shared/component-helper.js.map +1 -1
  378. package/es/style/core/scopes.scss +1 -1
  379. package/es/style/dnb-ui-basis.css +1 -1
  380. package/es/style/dnb-ui-basis.min.css +1 -1
  381. package/es/style/dnb-ui-body.css +1 -1
  382. package/es/style/dnb-ui-body.min.css +1 -1
  383. package/es/style/dnb-ui-components.css +3 -1
  384. package/es/style/dnb-ui-components.min.css +1 -1
  385. package/es/style/dnb-ui-core.css +1 -1
  386. package/es/style/dnb-ui-core.min.css +1 -1
  387. package/es/style/dnb-ui-extensions.css +3 -2
  388. package/es/style/dnb-ui-extensions.min.css +1 -1
  389. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +3 -1
  390. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  391. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +3 -2
  392. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  393. package/es/style/themes/theme-eiendom/properties.d.ts +1 -0
  394. package/es/style/themes/theme-eiendom/properties.js +3 -2
  395. package/es/style/themes/theme-eiendom/properties.js.map +1 -1
  396. package/es/style/themes/theme-sbanken/properties.d.ts +1 -0
  397. package/es/style/themes/theme-sbanken/properties.js +3 -2
  398. package/es/style/themes/theme-sbanken/properties.js.map +1 -1
  399. package/es/style/themes/theme-sbanken/properties.scss +9 -8
  400. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +20 -4
  401. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +3 -1
  402. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +11 -3
  403. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  404. package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +17 -2
  405. package/es/style/themes/theme-sbanken/sbanken-theme-elements.min.css +3 -1
  406. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +3 -2
  407. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  408. package/es/style/themes/theme-ui/properties.d.ts +1 -0
  409. package/es/style/themes/theme-ui/properties.js +3 -2
  410. package/es/style/themes/theme-ui/properties.js.map +1 -1
  411. package/es/style/themes/theme-ui/ui-theme-components.css +3 -1
  412. package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  413. package/es/style/themes/theme-ui/ui-theme-extensions.css +3 -2
  414. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  415. package/esm/dnb-ui-basis.min.mjs +1 -1
  416. package/esm/dnb-ui-components.min.mjs +1 -1
  417. package/esm/dnb-ui-elements.min.mjs +1 -1
  418. package/esm/dnb-ui-extensions.min.mjs +2 -2
  419. package/esm/dnb-ui-lib.min.mjs +1 -1
  420. package/extensions/forms/DataContext/Context.d.ts +5 -0
  421. package/extensions/forms/DataContext/Context.js.map +1 -1
  422. package/extensions/forms/DataContext/Provider/Provider.d.ts +12 -1
  423. package/extensions/forms/DataContext/Provider/Provider.js +86 -77
  424. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  425. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +6 -1
  426. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +109 -23
  427. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  428. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js +5 -0
  429. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumberDocs.js.map +1 -1
  430. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.d.ts +3 -1
  431. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +28 -16
  432. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  433. package/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.d.ts +2 -0
  434. package/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js +18 -0
  435. package/extensions/forms/Field/OrganizationNumber/OrganizationNumberDocs.js.map +1 -0
  436. package/extensions/forms/Field/SelectCountry/SelectCountry.js +4 -3
  437. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  438. package/extensions/forms/Form/Isolation/Isolation.d.ts +4 -0
  439. package/extensions/forms/Form/Isolation/Isolation.js +29 -3
  440. package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  441. package/extensions/forms/Form/Isolation/IsolationDocs.js +5 -0
  442. package/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  443. package/extensions/forms/Form/Snapshot/Snapshot.d.ts +12 -0
  444. package/extensions/forms/Form/Snapshot/Snapshot.js +36 -0
  445. package/extensions/forms/Form/Snapshot/Snapshot.js.map +1 -0
  446. package/extensions/forms/Form/Snapshot/SnapshotContext.d.ts +12 -0
  447. package/extensions/forms/Form/Snapshot/SnapshotContext.js +6 -0
  448. package/extensions/forms/Form/Snapshot/SnapshotContext.js.map +1 -0
  449. package/extensions/forms/Form/Snapshot/SnapshotDocs.d.ts +3 -0
  450. package/extensions/forms/Form/Snapshot/SnapshotDocs.js +9 -0
  451. package/extensions/forms/Form/Snapshot/SnapshotDocs.js.map +1 -0
  452. package/extensions/forms/Form/Snapshot/index.d.ts +2 -0
  453. package/extensions/forms/Form/Snapshot/index.js +3 -0
  454. package/extensions/forms/Form/Snapshot/index.js.map +1 -0
  455. package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js +2 -2
  456. package/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.js.map +1 -1
  457. package/extensions/forms/Form/Visibility/Visibility.d.ts +10 -2
  458. package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  459. package/extensions/forms/Form/Visibility/VisibilityDocs.js +10 -10
  460. package/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  461. package/extensions/forms/Form/Visibility/useVisibility.js +26 -14
  462. package/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  463. package/extensions/forms/Form/data-context/clearData.js +2 -5
  464. package/extensions/forms/Form/data-context/clearData.js.map +1 -1
  465. package/extensions/forms/Form/data-context/getData.js.map +1 -1
  466. package/extensions/forms/Form/data-context/useData.js +1 -0
  467. package/extensions/forms/Form/data-context/useData.js.map +1 -1
  468. package/extensions/forms/Form/data-context/useValidation.js.map +1 -1
  469. package/extensions/forms/Form/index.d.ts +2 -0
  470. package/extensions/forms/Form/index.js +2 -0
  471. package/extensions/forms/Form/index.js.map +1 -1
  472. package/extensions/forms/Iterate/Array/Array.js +3 -1
  473. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  474. package/extensions/forms/Iterate/Array/ArrayItemArea.js +31 -18
  475. package/extensions/forms/Iterate/Array/ArrayItemArea.js.map +1 -1
  476. package/extensions/forms/Iterate/EditContainer/EditContainer.js +5 -6
  477. package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  478. package/extensions/forms/Iterate/ItemNo/ItemNo.d.ts +9 -0
  479. package/extensions/forms/Iterate/ItemNo/ItemNo.js +23 -0
  480. package/extensions/forms/Iterate/ItemNo/ItemNo.js.map +1 -0
  481. package/extensions/forms/Iterate/ItemNo/index.d.ts +2 -0
  482. package/extensions/forms/Iterate/ItemNo/index.js +3 -0
  483. package/extensions/forms/Iterate/ItemNo/index.js.map +1 -0
  484. package/extensions/forms/Iterate/IterateItemContext.d.ts +1 -0
  485. package/extensions/forms/Iterate/IterateItemContext.js.map +1 -1
  486. package/extensions/forms/Iterate/PushContainer/PushContainer.d.ts +18 -2
  487. package/extensions/forms/Iterate/PushContainer/PushContainer.js +44 -18
  488. package/extensions/forms/Iterate/PushContainer/PushContainer.js.map +1 -1
  489. package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js +24 -1
  490. package/extensions/forms/Iterate/PushContainer/PushContainerDocs.js.map +1 -1
  491. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js +5 -6
  492. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  493. package/extensions/forms/Iterate/index.d.ts +1 -0
  494. package/extensions/forms/Iterate/index.js +1 -0
  495. package/extensions/forms/Iterate/index.js.map +1 -1
  496. package/extensions/forms/Tools/Log.d.ts +7 -2
  497. package/extensions/forms/Tools/Log.js +30 -3
  498. package/extensions/forms/Tools/Log.js.map +1 -1
  499. package/extensions/forms/Value/Provider/useValueProvider.d.ts +1 -0
  500. package/extensions/forms/Value/SummaryList/SummaryList.d.ts +4 -2
  501. package/extensions/forms/Value/SummaryList/SummaryList.js +3 -1
  502. package/extensions/forms/Value/SummaryList/SummaryList.js.map +1 -1
  503. package/extensions/forms/Value/SummaryList/SummaryListDocs.js +5 -0
  504. package/extensions/forms/Value/SummaryList/SummaryListDocs.js.map +1 -1
  505. package/extensions/forms/Value/ValueDocs.js +5 -0
  506. package/extensions/forms/Value/ValueDocs.js.map +1 -1
  507. package/extensions/forms/Wizard/Buttons/Buttons.js +2 -2
  508. package/extensions/forms/Wizard/Buttons/Buttons.js.map +1 -1
  509. package/extensions/forms/Wizard/Container/WizardContainer.js +78 -31
  510. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  511. package/extensions/forms/Wizard/Container/WizardContainerDocs.js +1 -1
  512. package/extensions/forms/Wizard/Container/WizardContainerDocs.js.map +1 -1
  513. package/extensions/forms/Wizard/Container/useHandleLayoutEffect.d.ts +1 -2
  514. package/extensions/forms/Wizard/Container/useHandleLayoutEffect.js +0 -6
  515. package/extensions/forms/Wizard/Container/useHandleLayoutEffect.js.map +1 -1
  516. package/extensions/forms/Wizard/Container/useStepAnimation.d.ts +2 -1
  517. package/extensions/forms/Wizard/Container/useStepAnimation.js +12 -7
  518. package/extensions/forms/Wizard/Container/useStepAnimation.js.map +1 -1
  519. package/extensions/forms/Wizard/Context/WizardContext.d.ts +14 -3
  520. package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  521. package/extensions/forms/Wizard/Step/Step.js +4 -4
  522. package/extensions/forms/Wizard/Step/Step.js.map +1 -1
  523. package/extensions/forms/Wizard/hooks/useStep.js +4 -4
  524. package/extensions/forms/Wizard/hooks/useStep.js.map +1 -1
  525. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +77 -58
  526. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  527. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.d.ts +12 -12
  528. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js +24 -24
  529. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAgeTranslations.js.map +1 -1
  530. package/extensions/forms/constants/locales/en-GB.d.ts +6 -1
  531. package/extensions/forms/constants/locales/en-GB.js +9 -4
  532. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  533. package/extensions/forms/constants/locales/en-US.d.ts +6 -1
  534. package/extensions/forms/constants/locales/en-US.js +2 -1
  535. package/extensions/forms/constants/locales/en-US.js.map +1 -1
  536. package/extensions/forms/constants/locales/index.d.ts +12 -2
  537. package/extensions/forms/constants/locales/nb-NO.d.ts +6 -1
  538. package/extensions/forms/constants/locales/nb-NO.js +9 -4
  539. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  540. package/extensions/forms/hooks/useDataContext.d.ts +6 -0
  541. package/extensions/forms/hooks/useDataContext.js +25 -0
  542. package/extensions/forms/hooks/useDataContext.js.map +1 -0
  543. package/extensions/forms/hooks/useExternalValue.js +12 -6
  544. package/extensions/forms/hooks/useExternalValue.js.map +1 -1
  545. package/extensions/forms/hooks/useFieldProps.js +83 -44
  546. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  547. package/extensions/forms/hooks/useSnapshot.d.ts +9 -0
  548. package/extensions/forms/hooks/useSnapshot.js +81 -0
  549. package/extensions/forms/hooks/useSnapshot.js.map +1 -0
  550. package/extensions/forms/hooks/useValueProps.js +6 -1
  551. package/extensions/forms/hooks/useValueProps.js.map +1 -1
  552. package/extensions/forms/types.d.ts +4 -0
  553. package/extensions/forms/types.js.map +1 -1
  554. package/extensions/payment-card/style/dnb-payment-card.css +3 -2
  555. package/extensions/payment-card/style/dnb-payment-card.min.css +1 -1
  556. package/package.json +1 -1
  557. package/shared/Eufemia.d.ts +1 -1
  558. package/shared/Eufemia.js +2 -2
  559. package/shared/Eufemia.js.map +1 -1
  560. package/shared/component-helper.js +1 -1
  561. package/shared/component-helper.js.map +1 -1
  562. package/style/core/scopes.scss +1 -1
  563. package/style/dnb-ui-basis.css +1 -1
  564. package/style/dnb-ui-basis.min.css +1 -1
  565. package/style/dnb-ui-body.css +1 -1
  566. package/style/dnb-ui-body.min.css +1 -1
  567. package/style/dnb-ui-components.css +3 -1
  568. package/style/dnb-ui-components.min.css +1 -1
  569. package/style/dnb-ui-core.css +1 -1
  570. package/style/dnb-ui-core.min.css +1 -1
  571. package/style/dnb-ui-extensions.css +3 -2
  572. package/style/dnb-ui-extensions.min.css +1 -1
  573. package/style/themes/theme-eiendom/eiendom-theme-components.css +3 -1
  574. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  575. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +3 -2
  576. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  577. package/style/themes/theme-eiendom/properties.d.ts +1 -0
  578. package/style/themes/theme-eiendom/properties.js +3 -2
  579. package/style/themes/theme-eiendom/properties.js.map +1 -1
  580. package/style/themes/theme-sbanken/properties.d.ts +1 -0
  581. package/style/themes/theme-sbanken/properties.js +3 -2
  582. package/style/themes/theme-sbanken/properties.js.map +1 -1
  583. package/style/themes/theme-sbanken/properties.scss +9 -8
  584. package/style/themes/theme-sbanken/sbanken-theme-basis.css +20 -4
  585. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +3 -1
  586. package/style/themes/theme-sbanken/sbanken-theme-components.css +11 -3
  587. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  588. package/style/themes/theme-sbanken/sbanken-theme-elements.css +17 -2
  589. package/style/themes/theme-sbanken/sbanken-theme-elements.min.css +3 -1
  590. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +3 -2
  591. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  592. package/style/themes/theme-ui/properties.d.ts +1 -0
  593. package/style/themes/theme-ui/properties.js +3 -2
  594. package/style/themes/theme-ui/properties.js.map +1 -1
  595. package/style/themes/theme-ui/ui-theme-components.css +3 -1
  596. package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  597. package/style/themes/theme-ui/ui-theme-extensions.css +3 -2
  598. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  599. package/umd/dnb-ui-basis.min.js +1 -1
  600. package/umd/dnb-ui-components.min.js +1 -1
  601. package/umd/dnb-ui-elements.min.js +1 -1
  602. package/umd/dnb-ui-extensions.min.js +2 -2
  603. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Isolation.js","names":["React","useCallback","useContext","useEffect","useMemo","useReducer","useRef","pointer","extendDeep","isAsync","useDataValue","Context","Provider","SectionContext","IsolationCommitButton","clearedData","structuredClone","IsolationProvider","props","children","onPathChange","onCommit","onCommitProp","onClear","onClearProp","transformOnCommit","transformOnCommitProp","commitHandleRef","data","defaultData","forceUpdate","internalDataRef","localDataRef","dataContextRef","outerContext","path","pathSection","handlePathChange","handlePathChangeOuter","dataOuter","moveValueToPath","onPathChangeHandler","value","current","set","replace","removeSectionPath","has","get","getMountedData","mounterData","_dataContextRef$curre","mountedFieldsRef","field","isMounted","localData","Object","assign","additionalArgs","_props$path","mountedData","outerData","isolatedData","stop","preventCommit","commitData","result","Array","isArray","providerProps","_objectSpread","isolate","createElement","Consumer","dataContext","handleSubmit","CommitButton","_supportsSpacingProps","undefined"],"sources":["../../../../../../src/extensions/forms/Form/Isolation/Isolation.tsx"],"sourcesContent":["import React, {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport pointer, { JsonObject } from '../../utils/json-pointer'\nimport { extendDeep } from '../../../../shared/component-helper'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport useDataValue from '../../hooks/useDataValue'\nimport { Context, ContextState, Provider } from '../../DataContext'\nimport SectionContext from '../Section/SectionContext'\nimport IsolationCommitButton from './IsolationCommitButton'\nimport {\n clearedData,\n type Props as ProviderProps,\n} from '../../DataContext/Provider'\nimport type { OnCommit, Path } from '../../types'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So its a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\nexport type IsolationProviderProps<Data> = {\n /**\n * Form.Isolation: Will be called when the isolated context is committed.\n */\n onCommit?: OnCommit<Data>\n /**\n * Form.Isolation: Will be called when the form is cleared via Form.clearData\n */\n onClear?: () => void\n /**\n * Form.Isolation: A function that will be called when the isolated context is committed.\n * It will receive the data from the isolated context and the data from the outer context.\n * You can use this to transform the data before it is committed.\n */\n transformOnCommit?: (\n isolatedData: JsonObject,\n handlerData: JsonObject\n ) => unknown\n /**\n * Used internally by the Form.Isolation component\n */\n path?: Path\n /**\n * Used internally by the Form.Isolation component\n */\n isolate?: boolean\n}\n\nexport type IsolationProps<Data> = Omit<\n ProviderProps<Data>,\n | 'onSubmit'\n | 'onSubmitRequest'\n | 'onSubmitComplete'\n | 'minimumAsyncBehaviorTime'\n | 'asyncSubmitTimeout'\n | 'scrollTopOnSubmit'\n | 'sessionStorageId'\n | 'globalStatusId'\n> & {\n /**\n * A ref (function) that you can call in order to commit the data programmatically to the outer context.\n */\n commitHandleRef?: React.MutableRefObject<() => void>\n}\n\nfunction IsolationProvider<Data extends JsonObject>(\n props: IsolationProps<Data>\n) {\n const {\n children,\n onPathChange,\n onCommit: onCommitProp,\n onClear: onClearProp,\n transformOnCommit: transformOnCommitProp,\n commitHandleRef,\n data,\n defaultData,\n } = props\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const internalDataRef = useRef<Data>()\n const localDataRef = useRef<Partial<Data>>({})\n const dataContextRef = useRef<ContextState>(null)\n const outerContext = useContext(Context)\n const { path: pathSection } = useContext(SectionContext) || {}\n const { handlePathChange: handlePathChangeOuter, data: dataOuter } =\n outerContext || {}\n const { moveValueToPath } = useDataValue()\n\n const onPathChangeHandler = useCallback(\n async (path: Path, value: unknown) => {\n if (localDataRef.current === clearedData) {\n localDataRef.current = {}\n }\n\n pointer.set(localDataRef.current, path, value)\n\n if (pathSection) {\n path = path.replace(pathSection, '')\n }\n\n return await onPathChange?.(path, value)\n },\n [onPathChange, pathSection]\n )\n\n const removeSectionPath = useCallback(\n (data: Data) => {\n return pathSection && pointer.has(data, pathSection)\n ? pointer.get(data, pathSection)\n : data\n },\n [pathSection]\n )\n\n const getMountedData = useCallback((data: Data) => {\n const mounterData = {} as Data\n for (const path in dataContextRef.current?.mountedFieldsRef.current) {\n const field = dataContextRef.current.mountedFieldsRef.current[path]\n if (field.isMounted && pointer.has(data, path)) {\n pointer.set(mounterData, path, pointer.get(data, path))\n }\n }\n return mounterData\n }, [])\n\n useEffect(() => {\n localDataRef.current = getMountedData(internalDataRef.current)\n }, [getMountedData])\n\n // Update the isolated data with the outside context data\n useMemo(() => {\n if (localDataRef.current === clearedData) {\n return // stop here\n }\n\n let localData = data ?? defaultData\n\n if (\n localData &&\n pathSection &&\n !pointer.has(localDataRef.current, pathSection)\n ) {\n localData = moveValueToPath<Data>(pathSection, localData)\n }\n\n internalDataRef.current = Object.assign(\n {},\n localData || dataOuter || {},\n localDataRef.current\n )\n }, [data, defaultData, pathSection, dataOuter, moveValueToPath])\n\n const onCommit: IsolationProps<Data>['onCommit'] = useCallback(\n async (data: Data, additionalArgs) => {\n const mountedData = getMountedData(data)\n const path = props.path ?? '/'\n const outerData =\n props.path && pointer.has(dataOuter, path)\n ? pointer.get(dataOuter, path)\n : dataOuter\n\n localDataRef.current = mountedData\n let isolatedData = structuredClone(mountedData)\n\n if (typeof transformOnCommitProp === 'function') {\n isolatedData = transformOnCommitProp(isolatedData, outerData)\n }\n\n let stop = false\n additionalArgs.preventCommit = () => (stop = true)\n\n const commitData = removeSectionPath(isolatedData)\n const result = isAsync(onCommitProp)\n ? await onCommitProp?.(commitData, additionalArgs)\n : onCommitProp?.(commitData, additionalArgs)\n\n if (stop) {\n return // stop here\n }\n\n // Commit the internal data to the nested context data\n await handlePathChangeOuter?.(\n path,\n Array.isArray(isolatedData)\n ? isolatedData\n : extendDeep({}, outerData, isolatedData)\n )\n\n return result\n },\n [\n getMountedData,\n props.path,\n dataOuter,\n transformOnCommitProp,\n handlePathChangeOuter,\n onCommitProp,\n removeSectionPath,\n ]\n )\n\n const onClear = useCallback(() => {\n localDataRef.current = clearedData\n internalDataRef.current = clearedData as Data\n forceUpdate()\n onClearProp?.()\n }, [onClearProp])\n\n const providerProps: IsolationProps<Data> = {\n ...props,\n [defaultData ? 'defaultData' : 'data']: internalDataRef.current,\n onPathChange: onPathChangeHandler,\n onCommit,\n onClear,\n isolate: true,\n }\n\n return (\n <Provider {...providerProps}>\n <Context.Consumer>\n {(dataContext) => {\n dataContextRef.current = dataContext\n\n if (commitHandleRef) {\n commitHandleRef.current = dataContext?.handleSubmit\n }\n\n return children\n }}\n </Context.Consumer>\n </Provider>\n )\n}\n\nIsolationProvider.CommitButton = IsolationCommitButton\nIsolationProvider._supportsSpacingProps = undefined\n\nexport default IsolationProvider\n"],"mappings":"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"}
1
+ {"version":3,"file":"Isolation.js","names":["React","useCallback","useContext","useEffect","useMemo","useReducer","useRef","pointer","extendDeep","isAsync","useId","useDataValue","Context","DataContext","Provider","SectionContext","IsolationCommitButton","clearedData","structuredClone","IsolationProvider","props","children","onPathChange","onCommit","onCommitProp","onClear","onClearProp","transformOnCommit","transformOnCommitProp","commitHandleRef","bubbleValidation","data","defaultData","forceUpdate","internalDataRef","localDataRef","dataContextRef","outerContext","path","pathSection","handlePathChange","handlePathChangeOuter","dataOuter","moveValueToPath","onPathChangeHandler","value","current","set","replace","removeSectionPath","has","get","getMountedData","mounterData","_dataContextRef$curre","mountedFieldsRef","field","isMounted","localData","Object","assign","additionalArgs","_props$path","mountedData","outerData","isolatedData","stop","preventCommit","commitData","result","Array","isArray","providerProps","_objectSpread","isolate","createElement","Consumer","dataContext","handleSubmit","BubbleValidation","setMountedFieldState","setFieldError","id","errors","hasErrors","Error","undefined","CommitButton","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/Isolation/Isolation.tsx"],"sourcesContent":["import React, {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport pointer, { JsonObject } from '../../utils/json-pointer'\nimport { extendDeep } from '../../../../shared/component-helper'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport useId from '../../../../shared/helpers/useId'\nimport useDataValue from '../../hooks/useDataValue'\nimport {\n Context as DataContext,\n ContextState,\n Provider,\n} from '../../DataContext'\nimport SectionContext from '../Section/SectionContext'\nimport IsolationCommitButton from './IsolationCommitButton'\nimport {\n clearedData,\n type Props as ProviderProps,\n} from '../../DataContext/Provider'\nimport type { OnCommit, Path } from '../../types'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So its a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\nexport type IsolationProviderProps<Data> = {\n /**\n * Form.Isolation: Will be called when the isolated context is committed.\n */\n onCommit?: OnCommit<Data>\n /**\n * Form.Isolation: Will be called when the form is cleared via Form.clearData\n */\n onClear?: () => void\n /**\n * Form.Isolation: A function that will be called when the isolated context is committed.\n * It will receive the data from the isolated context and the data from the outer context.\n * You can use this to transform the data before it is committed.\n */\n transformOnCommit?: (\n isolatedData: JsonObject,\n handlerData: JsonObject\n ) => unknown\n /**\n * Prevent the form from being submitted when there are fields with errors inside the Form.Isolation.\n */\n bubbleValidation?: boolean\n /**\n * Used internally by the Form.Isolation component\n */\n path?: Path\n /**\n * Used internally by the Form.Isolation component\n */\n isolate?: boolean\n}\n\nexport type IsolationProps<Data> = Omit<\n ProviderProps<Data>,\n | 'onSubmit'\n | 'onSubmitRequest'\n | 'onSubmitComplete'\n | 'minimumAsyncBehaviorTime'\n | 'asyncSubmitTimeout'\n | 'scrollTopOnSubmit'\n | 'sessionStorageId'\n | 'globalStatusId'\n> & {\n /**\n * A ref (function) that you can call in order to commit the data programmatically to the outer context.\n */\n commitHandleRef?: React.MutableRefObject<() => void>\n}\n\nfunction IsolationProvider<Data extends JsonObject>(\n props: IsolationProps<Data>\n) {\n const {\n children,\n onPathChange,\n onCommit: onCommitProp,\n onClear: onClearProp,\n transformOnCommit: transformOnCommitProp,\n commitHandleRef,\n bubbleValidation,\n data,\n defaultData,\n } = props\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const internalDataRef = useRef<Data>()\n const localDataRef = useRef<Partial<Data>>({})\n const dataContextRef = useRef<ContextState>(null)\n const outerContext = useContext(DataContext)\n const { path: pathSection } = useContext(SectionContext) || {}\n const { handlePathChange: handlePathChangeOuter, data: dataOuter } =\n outerContext || {}\n const { moveValueToPath } = useDataValue()\n\n const onPathChangeHandler = useCallback(\n async (path: Path, value: unknown) => {\n if (localDataRef.current === clearedData) {\n localDataRef.current = {}\n }\n\n pointer.set(localDataRef.current, path, value)\n\n if (pathSection) {\n path = path.replace(pathSection, '')\n }\n\n return await onPathChange?.(path, value)\n },\n [onPathChange, pathSection]\n )\n\n const removeSectionPath = useCallback(\n (data: Data) => {\n return pathSection && pointer.has(data, pathSection)\n ? pointer.get(data, pathSection)\n : data\n },\n [pathSection]\n )\n\n const getMountedData = useCallback((data: Data) => {\n const mounterData = {} as Data\n for (const path in dataContextRef.current?.mountedFieldsRef.current) {\n const field = dataContextRef.current.mountedFieldsRef.current[path]\n if (field.isMounted && pointer.has(data, path)) {\n pointer.set(mounterData, path, pointer.get(data, path))\n }\n }\n return mounterData\n }, [])\n\n useEffect(() => {\n localDataRef.current = getMountedData(internalDataRef.current)\n }, [getMountedData])\n\n // Update the isolated data with the outside context data\n useMemo(() => {\n if (localDataRef.current === clearedData) {\n return // stop here\n }\n\n let localData = data ?? defaultData\n\n if (\n localData &&\n pathSection &&\n !pointer.has(localDataRef.current, pathSection)\n ) {\n localData = moveValueToPath<Data>(pathSection, localData)\n }\n\n internalDataRef.current = Object.assign(\n {},\n localData || dataOuter || {},\n localDataRef.current\n )\n }, [data, defaultData, pathSection, dataOuter, moveValueToPath])\n\n const onCommit: IsolationProps<Data>['onCommit'] = useCallback(\n async (data: Data, additionalArgs) => {\n const mountedData = getMountedData(data)\n const path = props.path ?? '/'\n const outerData =\n props.path && pointer.has(dataOuter, path)\n ? pointer.get(dataOuter, path)\n : dataOuter\n\n localDataRef.current = mountedData\n let isolatedData = structuredClone(mountedData)\n\n if (typeof transformOnCommitProp === 'function') {\n isolatedData = transformOnCommitProp(isolatedData, outerData)\n }\n\n let stop = false\n additionalArgs.preventCommit = () => (stop = true)\n\n const commitData = removeSectionPath(isolatedData)\n const result = isAsync(onCommitProp)\n ? await onCommitProp?.(commitData, additionalArgs)\n : onCommitProp?.(commitData, additionalArgs)\n\n if (stop) {\n return // stop here\n }\n\n // Commit the internal data to the nested context data\n await handlePathChangeOuter?.(\n path,\n Array.isArray(isolatedData)\n ? isolatedData\n : extendDeep({}, outerData, isolatedData)\n )\n\n return result\n },\n [\n getMountedData,\n props.path,\n dataOuter,\n transformOnCommitProp,\n handlePathChangeOuter,\n onCommitProp,\n removeSectionPath,\n ]\n )\n\n const onClear = useCallback(() => {\n localDataRef.current = clearedData\n internalDataRef.current = clearedData as Data\n forceUpdate()\n onClearProp?.()\n }, [onClearProp])\n\n const providerProps: IsolationProps<Data> = {\n ...props,\n [defaultData ? 'defaultData' : 'data']: internalDataRef.current,\n onPathChange: onPathChangeHandler,\n onCommit,\n onClear,\n isolate: true,\n }\n\n return (\n <Provider {...providerProps}>\n <DataContext.Consumer>\n {(dataContext) => {\n dataContextRef.current = dataContext\n\n if (commitHandleRef) {\n commitHandleRef.current = dataContext?.handleSubmit\n }\n\n return children\n }}\n </DataContext.Consumer>\n\n {bubbleValidation && (\n <BubbleValidation outerContext={outerContext} />\n )}\n </Provider>\n )\n}\n\nfunction BubbleValidation({ outerContext }) {\n const { setMountedFieldState, setFieldError } = outerContext || {}\n const dataContext = useContext(DataContext)\n\n const id = useId()\n useEffect(() => {\n const path = `/${id}`\n const errors = dataContext.hasErrors()\n if (errors) {\n setMountedFieldState?.(path, {\n isMounted: true,\n })\n }\n setFieldError?.(path, errors ? new Error('Form.Isolation') : undefined)\n }, [dataContext, id, setFieldError, setMountedFieldState])\n\n return null\n}\n\nIsolationProvider.CommitButton = IsolationCommitButton\nIsolationProvider._supportsSpacingProps = undefined\n\nexport default IsolationProvider\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IACVC,WAAW,EACXC,UAAU,EACVC,SAAS,EACTC,OAAO,EACPC,UAAU,EACVC,MAAM,QACD,OAAO;AACd,OAAOC,OAAO,MAAsB,0BAA0B;AAC9D,SAASC,UAAU,QAAQ,qCAAqC;AAChE,SAASC,OAAO,QAAQ,oCAAoC;AAC5D,OAAOC,KAAK,MAAM,kCAAkC;AACpD,OAAOC,YAAY,MAAM,0BAA0B;AACnD,SACEC,OAAO,IAAIC,WAAW,EAEtBC,QAAQ,QACH,mBAAmB;AAC1B,OAAOC,cAAc,MAAM,2BAA2B;AACtD,OAAOC,qBAAqB,MAAM,yBAAyB;AAC3D,SACEC,WAAW,QAEN,4BAA4B;AAOnC,OAAOC,eAAe,MAAM,yBAAyB;AAmDrD,SAASC,iBAAiBA,CACxBC,KAA2B,EAC3B;EACA,MAAM;IACJC,QAAQ;IACRC,YAAY;IACZC,QAAQ,EAAEC,YAAY;IACtBC,OAAO,EAAEC,WAAW;IACpBC,iBAAiB,EAAEC,qBAAqB;IACxCC,eAAe;IACfC,gBAAgB;IAChBC,IAAI;IACJC;EACF,CAAC,GAAGZ,KAAK;EAET,MAAM,GAAGa,WAAW,CAAC,GAAG5B,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAClD,MAAM6B,eAAe,GAAG5B,MAAM,CAAO,CAAC;EACtC,MAAM6B,YAAY,GAAG7B,MAAM,CAAgB,CAAC,CAAC,CAAC;EAC9C,MAAM8B,cAAc,GAAG9B,MAAM,CAAe,IAAI,CAAC;EACjD,MAAM+B,YAAY,GAAGnC,UAAU,CAACW,WAAW,CAAC;EAC5C,MAAM;IAAEyB,IAAI,EAAEC;EAAY,CAAC,GAAGrC,UAAU,CAACa,cAAc,CAAC,IAAI,CAAC,CAAC;EAC9D,MAAM;IAAEyB,gBAAgB,EAAEC,qBAAqB;IAAEV,IAAI,EAAEW;EAAU,CAAC,GAChEL,YAAY,IAAI,CAAC,CAAC;EACpB,MAAM;IAAEM;EAAgB,CAAC,GAAGhC,YAAY,CAAC,CAAC;EAE1C,MAAMiC,mBAAmB,GAAG3C,WAAW,CACrC,OAAOqC,IAAU,EAAEO,KAAc,KAAK;IACpC,IAAIV,YAAY,CAACW,OAAO,KAAK7B,WAAW,EAAE;MACxCkB,YAAY,CAACW,OAAO,GAAG,CAAC,CAAC;IAC3B;IAEAvC,OAAO,CAACwC,GAAG,CAACZ,YAAY,CAACW,OAAO,EAAER,IAAI,EAAEO,KAAK,CAAC;IAE9C,IAAIN,WAAW,EAAE;MACfD,IAAI,GAAGA,IAAI,CAACU,OAAO,CAACT,WAAW,EAAE,EAAE,CAAC;IACtC;IAEA,OAAO,OAAMjB,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAGgB,IAAI,EAAEO,KAAK,CAAC;EAC1C,CAAC,EACD,CAACvB,YAAY,EAAEiB,WAAW,CAC5B,CAAC;EAED,MAAMU,iBAAiB,GAAGhD,WAAW,CAClC8B,IAAU,IAAK;IACd,OAAOQ,WAAW,IAAIhC,OAAO,CAAC2C,GAAG,CAACnB,IAAI,EAAEQ,WAAW,CAAC,GAChDhC,OAAO,CAAC4C,GAAG,CAACpB,IAAI,EAAEQ,WAAW,CAAC,GAC9BR,IAAI;EACV,CAAC,EACD,CAACQ,WAAW,CACd,CAAC;EAED,MAAMa,cAAc,GAAGnD,WAAW,CAAE8B,IAAU,IAAK;IACjD,MAAMsB,WAAW,GAAG,CAAC,CAAS;IAC9B,KAAK,MAAMf,IAAI,KAAAgB,qBAAA,GAAIlB,cAAc,CAACU,OAAO,cAAAQ,qBAAA,uBAAtBA,qBAAA,CAAwBC,gBAAgB,CAACT,OAAO,EAAE;MAAA,IAAAQ,qBAAA;MACnE,MAAME,KAAK,GAAGpB,cAAc,CAACU,OAAO,CAACS,gBAAgB,CAACT,OAAO,CAACR,IAAI,CAAC;MACnE,IAAIkB,KAAK,CAACC,SAAS,IAAIlD,OAAO,CAAC2C,GAAG,CAACnB,IAAI,EAAEO,IAAI,CAAC,EAAE;QAC9C/B,OAAO,CAACwC,GAAG,CAACM,WAAW,EAAEf,IAAI,EAAE/B,OAAO,CAAC4C,GAAG,CAACpB,IAAI,EAAEO,IAAI,CAAC,CAAC;MACzD;IACF;IACA,OAAOe,WAAW;EACpB,CAAC,EAAE,EAAE,CAAC;EAENlD,SAAS,CAAC,MAAM;IACdgC,YAAY,CAACW,OAAO,GAAGM,cAAc,CAAClB,eAAe,CAACY,OAAO,CAAC;EAChE,CAAC,EAAE,CAACM,cAAc,CAAC,CAAC;EAGpBhD,OAAO,CAAC,MAAM;IACZ,IAAI+B,YAAY,CAACW,OAAO,KAAK7B,WAAW,EAAE;MACxC;IACF;IAEA,IAAIyC,SAAS,GAAG3B,IAAI,aAAJA,IAAI,cAAJA,IAAI,GAAIC,WAAW;IAEnC,IACE0B,SAAS,IACTnB,WAAW,IACX,CAAChC,OAAO,CAAC2C,GAAG,CAACf,YAAY,CAACW,OAAO,EAAEP,WAAW,CAAC,EAC/C;MACAmB,SAAS,GAAGf,eAAe,CAAOJ,WAAW,EAAEmB,SAAS,CAAC;IAC3D;IAEAxB,eAAe,CAACY,OAAO,GAAGa,MAAM,CAACC,MAAM,CACrC,CAAC,CAAC,EACFF,SAAS,IAAIhB,SAAS,IAAI,CAAC,CAAC,EAC5BP,YAAY,CAACW,OACf,CAAC;EACH,CAAC,EAAE,CAACf,IAAI,EAAEC,WAAW,EAAEO,WAAW,EAAEG,SAAS,EAAEC,eAAe,CAAC,CAAC;EAEhE,MAAMpB,QAA0C,GAAGtB,WAAW,CAC5D,OAAO8B,IAAU,EAAE8B,cAAc,KAAK;IAAA,IAAAC,WAAA;IACpC,MAAMC,WAAW,GAAGX,cAAc,CAACrB,IAAI,CAAC;IACxC,MAAMO,IAAI,IAAAwB,WAAA,GAAG1C,KAAK,CAACkB,IAAI,cAAAwB,WAAA,cAAAA,WAAA,GAAI,GAAG;IAC9B,MAAME,SAAS,GACb5C,KAAK,CAACkB,IAAI,IAAI/B,OAAO,CAAC2C,GAAG,CAACR,SAAS,EAAEJ,IAAI,CAAC,GACtC/B,OAAO,CAAC4C,GAAG,CAACT,SAAS,EAAEJ,IAAI,CAAC,GAC5BI,SAAS;IAEfP,YAAY,CAACW,OAAO,GAAGiB,WAAW;IAClC,IAAIE,YAAY,GAAG/C,eAAe,CAAC6C,WAAW,CAAC;IAE/C,IAAI,OAAOnC,qBAAqB,KAAK,UAAU,EAAE;MAC/CqC,YAAY,GAAGrC,qBAAqB,CAACqC,YAAY,EAAED,SAAS,CAAC;IAC/D;IAEA,IAAIE,IAAI,GAAG,KAAK;IAChBL,cAAc,CAACM,aAAa,GAAG,MAAOD,IAAI,GAAG,IAAK;IAElD,MAAME,UAAU,GAAGnB,iBAAiB,CAACgB,YAAY,CAAC;IAClD,MAAMI,MAAM,GAAG5D,OAAO,CAACe,YAAY,CAAC,GAChC,OAAMA,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAG4C,UAAU,EAAEP,cAAc,CAAC,IAChDrC,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAG4C,UAAU,EAAEP,cAAc,CAAC;IAE9C,IAAIK,IAAI,EAAE;MACR;IACF;IAGA,OAAMzB,qBAAqB,aAArBA,qBAAqB,uBAArBA,qBAAqB,CACzBH,IAAI,EACJgC,KAAK,CAACC,OAAO,CAACN,YAAY,CAAC,GACvBA,YAAY,GACZzD,UAAU,CAAC,CAAC,CAAC,EAAEwD,SAAS,EAAEC,YAAY,CAC5C,CAAC;IAED,OAAOI,MAAM;EACf,CAAC,EACD,CACEjB,cAAc,EACdhC,KAAK,CAACkB,IAAI,EACVI,SAAS,EACTd,qBAAqB,EACrBa,qBAAqB,EACrBjB,YAAY,EACZyB,iBAAiB,CAErB,CAAC;EAED,MAAMxB,OAAO,GAAGxB,WAAW,CAAC,MAAM;IAChCkC,YAAY,CAACW,OAAO,GAAG7B,WAAW;IAClCiB,eAAe,CAACY,OAAO,GAAG7B,WAAmB;IAC7CgB,WAAW,CAAC,CAAC;IACbP,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAG,CAAC;EACjB,CAAC,EAAE,CAACA,WAAW,CAAC,CAAC;EAEjB,MAAM8C,aAAmC,GAAAC,aAAA,CAAAA,aAAA,KACpCrD,KAAK;IACR,CAACY,WAAW,GAAG,aAAa,GAAG,MAAM,GAAGE,eAAe,CAACY,OAAO;IAC/DxB,YAAY,EAAEsB,mBAAmB;IACjCrB,QAAQ;IACRE,OAAO;IACPiD,OAAO,EAAE;EAAI,EACd;EAED,OACE1E,KAAA,CAAA2E,aAAA,CAAC7D,QAAQ,EAAK0D,aAAa,EACzBxE,KAAA,CAAA2E,aAAA,CAAC9D,WAAW,CAAC+D,QAAQ,QACjBC,WAAW,IAAK;IAChBzC,cAAc,CAACU,OAAO,GAAG+B,WAAW;IAEpC,IAAIhD,eAAe,EAAE;MACnBA,eAAe,CAACiB,OAAO,GAAG+B,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEC,YAAY;IACrD;IAEA,OAAOzD,QAAQ;EACjB,CACoB,CAAC,EAEtBS,gBAAgB,IACf9B,KAAA,CAAA2E,aAAA,CAACI,gBAAgB;IAAC1C,YAAY,EAAEA;EAAa,CAAE,CAEzC,CAAC;AAEf;AAEA,SAAS0C,gBAAgBA,CAAC;EAAE1C;AAAa,CAAC,EAAE;EAC1C,MAAM;IAAE2C,oBAAoB;IAAEC;EAAc,CAAC,GAAG5C,YAAY,IAAI,CAAC,CAAC;EAClE,MAAMwC,WAAW,GAAG3E,UAAU,CAACW,WAAW,CAAC;EAE3C,MAAMqE,EAAE,GAAGxE,KAAK,CAAC,CAAC;EAClBP,SAAS,CAAC,MAAM;IACd,MAAMmC,IAAI,GAAI,IAAG4C,EAAG,EAAC;IACrB,MAAMC,MAAM,GAAGN,WAAW,CAACO,SAAS,CAAC,CAAC;IACtC,IAAID,MAAM,EAAE;MACVH,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAG1C,IAAI,EAAE;QAC3BmB,SAAS,EAAE;MACb,CAAC,CAAC;IACJ;IACAwB,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAG3C,IAAI,EAAE6C,MAAM,GAAG,IAAIE,KAAK,CAAC,gBAAgB,CAAC,GAAGC,SAAS,CAAC;EACzE,CAAC,EAAE,CAACT,WAAW,EAAEK,EAAE,EAAED,aAAa,EAAED,oBAAoB,CAAC,CAAC;EAE1D,OAAO,IAAI;AACb;AAEA7D,iBAAiB,CAACoE,YAAY,GAAGvE,qBAAqB;AACtDG,iBAAiB,CAACqE,qBAAqB,GAAGF,SAAS;AAEnD,eAAenE,iBAAiB"}
@@ -17,6 +17,11 @@ export const IsolationProperties = _objectSpread(_objectSpread({
17
17
  doc: 'Provide a ref to a function that can be called from any location to commit the data to the form.',
18
18
  type: 'React.Ref',
19
19
  status: 'optional'
20
+ },
21
+ bubbleValidation: {
22
+ doc: 'Prevent the form from being submitted when there are fields with errors inside the Form.Isolation.',
23
+ type: 'boolean',
24
+ status: 'optional'
20
25
  }
21
26
  }, ProviderProperties), {}, {
22
27
  minimumAsyncBehaviorTime: undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"IsolationDocs.js","names":["ProviderEvents","ProviderProperties","IsolationProperties","_objectSpread","path","doc","type","status","transformOnCommit","commitHandleRef","minimumAsyncBehaviorTime","undefined","asyncSubmitTimeout","scrollTopOnSubmit","sessionStorageId","globalStatusId","IsolationEvents","onCommit","onSubmit","onSubmitRequest","onSubmitComplete"],"sources":["../../../../../../src/extensions/forms/Form/Isolation/IsolationDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\nimport {\n ProviderEvents,\n ProviderProperties,\n} from '../../DataContext/Provider/ProviderDocs'\n\nexport const IsolationProperties: PropertiesTableProps = {\n path: {\n doc: 'JSON Pointer to define the object key for all the generated nested field data.',\n type: 'string',\n status: 'optional',\n },\n transformOnCommit: {\n doc: 'Transform the data before it gets committed to the form. The first parameter is the isolated data object. The second parameter is the outer context data object (Form.Handler).',\n type: 'function',\n status: 'optional',\n },\n commitHandleRef: {\n doc: 'Provide a ref to a function that can be called from any location to commit the data to the form.',\n type: 'React.Ref',\n status: 'optional',\n },\n ...ProviderProperties,\n minimumAsyncBehaviorTime: undefined,\n asyncSubmitTimeout: undefined,\n scrollTopOnSubmit: undefined,\n sessionStorageId: undefined,\n globalStatusId: undefined,\n}\n\nexport const IsolationEvents: PropertiesTableProps = {\n onCommit: {\n doc: 'Will be called on a nested form context commit – if validation has passed. The first parameter is the committed data object. The second parameter is an object containing a method to clear the internal data `{ clearData }`.',\n type: 'function',\n status: 'optional',\n },\n ...ProviderEvents,\n onSubmit: undefined,\n onSubmitRequest: undefined,\n onSubmitComplete: undefined,\n}\n"],"mappings":";;;AACA,SACEA,cAAc,EACdC,kBAAkB,QACb,yCAAyC;AAEhD,OAAO,MAAMC,mBAAyC,GAAAC,aAAA,CAAAA,aAAA;EACpDC,IAAI,EAAE;IACJC,GAAG,EAAE,gFAAgF;IACrFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,iBAAiB,EAAE;IACjBH,GAAG,EAAE,iLAAiL;IACtLC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDE,eAAe,EAAE;IACfJ,GAAG,EAAE,kGAAkG;IACvGC,IAAI,EAAE,WAAW;IACjBC,MAAM,EAAE;EACV;AAAC,GACEN,kBAAkB;EACrBS,wBAAwB,EAAEC,SAAS;EACnCC,kBAAkB,EAAED,SAAS;EAC7BE,iBAAiB,EAAEF,SAAS;EAC5BG,gBAAgB,EAAEH,SAAS;EAC3BI,cAAc,EAAEJ;AAAS,EAC1B;AAED,OAAO,MAAMK,eAAqC,GAAAb,aAAA,CAAAA,aAAA;EAChDc,QAAQ,EAAE;IACRZ,GAAG,EAAE,gOAAgO;IACrOC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AAAC,GACEP,cAAc;EACjBkB,QAAQ,EAAEP,SAAS;EACnBQ,eAAe,EAAER,SAAS;EAC1BS,gBAAgB,EAAET;AAAS,EAC5B"}
1
+ {"version":3,"file":"IsolationDocs.js","names":["ProviderEvents","ProviderProperties","IsolationProperties","_objectSpread","path","doc","type","status","transformOnCommit","commitHandleRef","bubbleValidation","minimumAsyncBehaviorTime","undefined","asyncSubmitTimeout","scrollTopOnSubmit","sessionStorageId","globalStatusId","IsolationEvents","onCommit","onSubmit","onSubmitRequest","onSubmitComplete"],"sources":["../../../../../../src/extensions/forms/Form/Isolation/IsolationDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\nimport {\n ProviderEvents,\n ProviderProperties,\n} from '../../DataContext/Provider/ProviderDocs'\n\nexport const IsolationProperties: PropertiesTableProps = {\n path: {\n doc: 'JSON Pointer to define the object key for all the generated nested field data.',\n type: 'string',\n status: 'optional',\n },\n transformOnCommit: {\n doc: 'Transform the data before it gets committed to the form. The first parameter is the isolated data object. The second parameter is the outer context data object (Form.Handler).',\n type: 'function',\n status: 'optional',\n },\n commitHandleRef: {\n doc: 'Provide a ref to a function that can be called from any location to commit the data to the form.',\n type: 'React.Ref',\n status: 'optional',\n },\n bubbleValidation: {\n doc: 'Prevent the form from being submitted when there are fields with errors inside the Form.Isolation.',\n type: 'boolean',\n status: 'optional',\n },\n ...ProviderProperties,\n minimumAsyncBehaviorTime: undefined,\n asyncSubmitTimeout: undefined,\n scrollTopOnSubmit: undefined,\n sessionStorageId: undefined,\n globalStatusId: undefined,\n}\n\nexport const IsolationEvents: PropertiesTableProps = {\n onCommit: {\n doc: 'Will be called on a nested form context commit – if validation has passed. The first parameter is the committed data object. The second parameter is an object containing a method to clear the internal data `{ clearData }`.',\n type: 'function',\n status: 'optional',\n },\n ...ProviderEvents,\n onSubmit: undefined,\n onSubmitRequest: undefined,\n onSubmitComplete: undefined,\n}\n"],"mappings":";;;AACA,SACEA,cAAc,EACdC,kBAAkB,QACb,yCAAyC;AAEhD,OAAO,MAAMC,mBAAyC,GAAAC,aAAA,CAAAA,aAAA;EACpDC,IAAI,EAAE;IACJC,GAAG,EAAE,gFAAgF;IACrFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,iBAAiB,EAAE;IACjBH,GAAG,EAAE,iLAAiL;IACtLC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDE,eAAe,EAAE;IACfJ,GAAG,EAAE,kGAAkG;IACvGC,IAAI,EAAE,WAAW;IACjBC,MAAM,EAAE;EACV,CAAC;EACDG,gBAAgB,EAAE;IAChBL,GAAG,EAAE,oGAAoG;IACzGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV;AAAC,GACEN,kBAAkB;EACrBU,wBAAwB,EAAEC,SAAS;EACnCC,kBAAkB,EAAED,SAAS;EAC7BE,iBAAiB,EAAEF,SAAS;EAC5BG,gBAAgB,EAAEH,SAAS;EAC3BI,cAAc,EAAEJ;AAAS,EAC1B;AAED,OAAO,MAAMK,eAAqC,GAAAd,aAAA,CAAAA,aAAA;EAChDe,QAAQ,EAAE;IACRb,GAAG,EAAE,gOAAgO;IACrOC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AAAC,GACEP,cAAc;EACjBmB,QAAQ,EAAEP,SAAS;EACnBQ,eAAe,EAAER,SAAS;EAC1BS,gBAAgB,EAAET;AAAS,EAC5B"}
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ export type SnapshotId = string | number;
3
+ export type SnapshotName = string;
4
+ export type SnapshotProps = {
5
+ name: SnapshotName;
6
+ children: React.ReactNode;
7
+ };
8
+ declare function SnapshotProvider(props: SnapshotProps): import("react/jsx-runtime").JSX.Element;
9
+ declare namespace SnapshotProvider {
10
+ var _supportsSpacingProps: any;
11
+ }
12
+ export default SnapshotProvider;
@@ -0,0 +1,36 @@
1
+ "use client";
2
+
3
+ import React, { useCallback, useContext, useEffect, useRef } from 'react';
4
+ import SnapshotContext from './SnapshotContext';
5
+ import DataContext from '../../DataContext/Context';
6
+ function SnapshotProvider(props) {
7
+ const {
8
+ name,
9
+ children
10
+ } = props;
11
+ const {
12
+ snapshotsRef
13
+ } = useContext(DataContext) || {};
14
+ const mountedFieldsRef = useRef();
15
+ if (!mountedFieldsRef.current) {
16
+ mountedFieldsRef.current = new Map();
17
+ }
18
+ const setMountedField = useCallback((path, state) => {
19
+ mountedFieldsRef.current.set(path, state);
20
+ }, []);
21
+ useEffect(() => {
22
+ if (snapshotsRef) {
23
+ snapshotsRef.current.set(name, mountedFieldsRef.current);
24
+ }
25
+ }, [snapshotsRef, name]);
26
+ const contextValue = {
27
+ name,
28
+ setMountedField
29
+ };
30
+ return React.createElement(SnapshotContext.Provider, {
31
+ value: contextValue
32
+ }, children);
33
+ }
34
+ SnapshotProvider._supportsSpacingProps = undefined;
35
+ export default SnapshotProvider;
36
+ //# sourceMappingURL=Snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Snapshot.js","names":["React","useCallback","useContext","useEffect","useRef","SnapshotContext","DataContext","SnapshotProvider","props","name","children","snapshotsRef","mountedFieldsRef","current","Map","setMountedField","path","state","set","contextValue","createElement","Provider","value","_supportsSpacingProps","undefined"],"sources":["../../../../../../src/extensions/forms/Form/Snapshot/Snapshot.tsx"],"sourcesContent":["import React, { useCallback, useContext, useEffect, useRef } from 'react'\nimport SnapshotContext, {\n SnapshotContextState,\n SnapshotMap,\n} from './SnapshotContext'\nimport DataContext from '../../DataContext/Context'\n\nexport type SnapshotId = string | number\nexport type SnapshotName = string\n\nexport type SnapshotProps = {\n name: SnapshotName\n children: React.ReactNode\n}\n\nfunction SnapshotProvider(props: SnapshotProps) {\n const { name, children } = props\n\n const { snapshotsRef } = useContext(DataContext) || {}\n const mountedFieldsRef: SnapshotMap = useRef()\n if (!mountedFieldsRef.current) {\n mountedFieldsRef.current = new Map()\n }\n\n const setMountedField: SnapshotContextState['setMountedField'] =\n useCallback((path, state) => {\n mountedFieldsRef.current.set(path, state)\n }, [])\n\n useEffect(() => {\n if (snapshotsRef) {\n snapshotsRef.current.set(name, mountedFieldsRef.current)\n }\n }, [snapshotsRef, name])\n\n const contextValue = { name, setMountedField }\n\n return (\n <SnapshotContext.Provider value={contextValue}>\n {children}\n </SnapshotContext.Provider>\n )\n}\n\nSnapshotProvider._supportsSpacingProps = undefined\n\nexport default SnapshotProvider\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACzE,OAAOC,eAAe,MAGf,mBAAmB;AAC1B,OAAOC,WAAW,MAAM,2BAA2B;AAUnD,SAASC,gBAAgBA,CAACC,KAAoB,EAAE;EAC9C,MAAM;IAAEC,IAAI;IAAEC;EAAS,CAAC,GAAGF,KAAK;EAEhC,MAAM;IAAEG;EAAa,CAAC,GAAGT,UAAU,CAACI,WAAW,CAAC,IAAI,CAAC,CAAC;EACtD,MAAMM,gBAA6B,GAAGR,MAAM,CAAC,CAAC;EAC9C,IAAI,CAACQ,gBAAgB,CAACC,OAAO,EAAE;IAC7BD,gBAAgB,CAACC,OAAO,GAAG,IAAIC,GAAG,CAAC,CAAC;EACtC;EAEA,MAAMC,eAAwD,GAC5Dd,WAAW,CAAC,CAACe,IAAI,EAAEC,KAAK,KAAK;IAC3BL,gBAAgB,CAACC,OAAO,CAACK,GAAG,CAACF,IAAI,EAAEC,KAAK,CAAC;EAC3C,CAAC,EAAE,EAAE,CAAC;EAERd,SAAS,CAAC,MAAM;IACd,IAAIQ,YAAY,EAAE;MAChBA,YAAY,CAACE,OAAO,CAACK,GAAG,CAACT,IAAI,EAAEG,gBAAgB,CAACC,OAAO,CAAC;IAC1D;EACF,CAAC,EAAE,CAACF,YAAY,EAAEF,IAAI,CAAC,CAAC;EAExB,MAAMU,YAAY,GAAG;IAAEV,IAAI;IAAEM;EAAgB,CAAC;EAE9C,OACEf,KAAA,CAAAoB,aAAA,CAACf,eAAe,CAACgB,QAAQ;IAACC,KAAK,EAAEH;EAAa,GAC3CT,QACuB,CAAC;AAE/B;AAEAH,gBAAgB,CAACgB,qBAAqB,GAAGC,SAAS;AAElD,eAAejB,gBAAgB"}
@@ -0,0 +1,12 @@
1
+ /// <reference types="react" />
2
+ import { Path } from '../../types';
3
+ import { SnapshotName } from './Snapshot';
4
+ export type SnapshotMap = React.MutableRefObject<Map<Path, unknown>>;
5
+ export type SnapshotContextState = {
6
+ name: SnapshotName;
7
+ setMountedField: (path: Path, { isMounted }: {
8
+ isMounted: boolean;
9
+ }) => void;
10
+ };
11
+ declare const SnapshotContext: import("react").Context<SnapshotContextState>;
12
+ export default SnapshotContext;
@@ -0,0 +1,6 @@
1
+ "use client";
2
+
3
+ import { createContext } from 'react';
4
+ const SnapshotContext = createContext(null);
5
+ export default SnapshotContext;
6
+ //# sourceMappingURL=SnapshotContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SnapshotContext.js","names":["createContext","SnapshotContext"],"sources":["../../../../../../src/extensions/forms/Form/Snapshot/SnapshotContext.tsx"],"sourcesContent":["import { createContext } from 'react'\nimport { Path } from '../../types'\nimport { SnapshotName } from './Snapshot'\n\nexport type SnapshotMap = React.MutableRefObject<Map<Path, unknown>>\n\nexport type SnapshotContextState = {\n name: SnapshotName\n setMountedField: (\n path: Path,\n { isMounted }: { isMounted: boolean }\n ) => void\n}\n\nconst SnapshotContext = createContext<SnapshotContextState>(null)\n\nexport default SnapshotContext\n"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,OAAO;AAcrC,MAAMC,eAAe,GAAGD,aAAa,CAAuB,IAAI,CAAC;AAEjE,eAAeC,eAAe"}
@@ -0,0 +1,3 @@
1
+ import { PropertiesTableProps } from '../../../../shared/types';
2
+ export declare const SnapshotProperties: PropertiesTableProps;
3
+ export declare const SnapshotEvents: PropertiesTableProps;
@@ -0,0 +1,9 @@
1
+ export const SnapshotProperties = {
2
+ name: {
3
+ doc: 'A unique name for the sliced snapshot area.',
4
+ type: 'string',
5
+ status: 'optional'
6
+ }
7
+ };
8
+ export const SnapshotEvents = {};
9
+ //# sourceMappingURL=SnapshotDocs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SnapshotDocs.js","names":["SnapshotProperties","name","doc","type","status","SnapshotEvents"],"sources":["../../../../../../src/extensions/forms/Form/Snapshot/SnapshotDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const SnapshotProperties: PropertiesTableProps = {\n name: {\n doc: 'A unique name for the sliced snapshot area.',\n type: 'string',\n status: 'optional',\n },\n}\n\nexport const SnapshotEvents: PropertiesTableProps = {}\n"],"mappings":"AAEA,OAAO,MAAMA,kBAAwC,GAAG;EACtDC,IAAI,EAAE;IACJC,GAAG,EAAE,6CAA6C;IAClDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMC,cAAoC,GAAG,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { default } from './Snapshot';
2
+ export * from './Snapshot';
@@ -0,0 +1,3 @@
1
+ export { default } from './Snapshot';
2
+ export * from './Snapshot';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["default"],"sources":["../../../../../../src/extensions/forms/Form/Snapshot/index.ts"],"sourcesContent":["export { default } from './Snapshot'\nexport * from './Snapshot'\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,YAAY;AACpC,cAAc,YAAY"}
@@ -78,7 +78,7 @@ function SubmitConfirmation(props) {
78
78
  }
79
79
  };
80
80
  return {
81
- data: internalDataRef.current,
81
+ data: internalDataRef === null || internalDataRef === void 0 ? void 0 : internalDataRef.current,
82
82
  confirmationState,
83
83
  setConfirmationState,
84
84
  submitHandler,
@@ -88,7 +88,7 @@ function SubmitConfirmation(props) {
88
88
  };
89
89
  });
90
90
  useMemo(() => {
91
- if (Object.keys(removeUndefinedProps(submitState)).length > 0) {
91
+ if (Object.keys(removeUndefinedProps(submitState) || {}).length > 0) {
92
92
  submitStateRef.current = _objectSpread({}, submitState);
93
93
  onSubmitResult === null || onSubmitResult === void 0 ? void 0 : onSubmitResult(getParamsRef.current());
94
94
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SubmitConfirmation.js","names":["React","useCallback","useContext","useMemo","useReducer","useRef","DataContext","SharedProvider","HeightAnimation","removeUndefinedProps","SubmitConfirmation","props","forceUpdate","preventSubmitWhen","onStateChange","onSubmitResult","renderWithState","children","setFormState","setHandleSubmit","handleSubmit","handleFinalSubmit","submitState","formElementRef","internalDataRef","confirmationStateRef","submitStateRef","preventSubmitRef","undefined","validatePreventSubmit","current","getParamsRef","setConfirmationState","state","window","requestAnimationFrame","keepPending","confirmationState","connectWithDialog","openState","onConfirm","submitHandler","onDecline","cancelHandler","onClose","triggeredBy","data","Object","keys","length","_objectSpread","setFocusOnButton","form","element","querySelector","focus","e","preventSubmit","remove","sharedProviderParams","formElement","disabled","createElement","Fragment","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.tsx"],"sourcesContent":["import React, {\n useCallback,\n useContext,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport DataContext from '../../DataContext/Context'\nimport SharedProvider from '../../../../shared/Provider'\nimport { ContextProps } from '../../../../shared/Context'\nimport { HeightAnimation } from '../../../../components'\nimport {\n DialogContentProps,\n DialogProps,\n} from '../../../../components/dialog/types'\nimport { EventStateObject } from '../../types'\nimport { removeUndefinedProps } from '../../../../shared/component-helper'\n\nexport type ConfirmationState =\n | 'idle'\n | 'readyToBeSubmitted'\n | 'submitInProgress'\n | 'submissionComplete'\n\nexport type ConfirmParams = {\n data: unknown\n confirmationState: ConfirmationState\n submitState: EventStateObject | undefined\n connectWithDialog: Pick<\n DialogProps & DialogContentProps,\n 'openState' | 'onConfirm' | 'onDecline' | 'onClose'\n >\n setConfirmationState: (state: ConfirmationState) => void\n submitHandler: () => void | Promise<void>\n cancelHandler: () => void | Promise<void>\n}\n\nexport type ConfirmProps = {\n preventSubmitWhen?: (params: ConfirmParams) => boolean\n onStateChange?: (params: ConfirmParams) => void | Promise<void>\n onSubmitResult?: (params: ConfirmParams) => void\n renderWithState?: (params: ConfirmParams) => React.ReactNode\n children?: React.ReactNode\n}\n\nfunction SubmitConfirmation(props: ConfirmProps) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const {\n preventSubmitWhen,\n onStateChange,\n onSubmitResult,\n renderWithState,\n children,\n } = props\n\n const {\n setFormState,\n setHandleSubmit,\n handleSubmit: handleFinalSubmit,\n submitState,\n formElementRef,\n internalDataRef,\n } = useContext(DataContext)\n\n const confirmationStateRef = useRef<ConfirmationState>('idle')\n const submitStateRef = useRef<EventStateObject>()\n const preventSubmitRef = useRef<boolean>(undefined)\n\n const validatePreventSubmit = useCallback(() => {\n return (preventSubmitRef.current = preventSubmitWhen?.(\n getParamsRef.current()\n ))\n }, [preventSubmitWhen])\n\n const setConfirmationState = useCallback(\n async (state: ConfirmationState) => {\n confirmationStateRef.current = state\n await onStateChange?.(getParamsRef.current())\n if (typeof window !== 'undefined') {\n window.requestAnimationFrame(() => {\n switch (state) {\n case 'idle':\n setFormState('complete', { keepPending: false })\n break\n case 'readyToBeSubmitted':\n setFormState('pending', { keepPending: true })\n break\n case 'submitInProgress':\n setFormState('pending', { keepPending: true })\n break\n case 'submissionComplete':\n setFormState('complete', { keepPending: false })\n break\n default:\n forceUpdate()\n }\n })\n }\n },\n [onStateChange, setFormState]\n )\n\n const getParamsRef = useRef(() => {\n const confirmationState = confirmationStateRef.current\n\n const connectWithDialog = {\n openState: confirmationState === 'readyToBeSubmitted',\n onConfirm: submitHandler,\n onDecline: cancelHandler,\n onClose: ({ triggeredBy }) => {\n if (triggeredBy === 'keyboard') {\n cancelHandler()\n }\n },\n }\n\n return {\n data: internalDataRef.current,\n confirmationState,\n setConfirmationState,\n submitHandler,\n cancelHandler,\n connectWithDialog,\n submitState: submitStateRef.current,\n } satisfies ConfirmParams\n })\n\n useMemo(() => {\n if (Object.keys(removeUndefinedProps(submitState)).length > 0) {\n submitStateRef.current = {\n ...submitState,\n } as EventStateObject\n onSubmitResult?.(getParamsRef.current())\n }\n }, [submitState, onSubmitResult])\n\n const setFocusOnButton = useCallback(() => {\n try {\n const form = formElementRef.current\n const element = (form.querySelector('.dnb-forms-submit-button') ||\n form) as HTMLElement\n element.focus()\n } catch (e) {\n //\n }\n }, [formElementRef])\n\n const cancelHandler = useCallback(async () => {\n await setConfirmationState('idle')\n setFocusOnButton()\n }, [setFocusOnButton, setConfirmationState])\n\n const handleSubmit = useCallback(\n async ({ preventSubmit }) => {\n if (confirmationStateRef.current === 'submitInProgress') {\n return // stop here\n }\n\n if (validatePreventSubmit() !== true) {\n await setConfirmationState('submitInProgress')\n return // stop here\n }\n\n submitStateRef.current = undefined\n\n // Prevent the form form from being submitted\n preventSubmit()\n\n await setConfirmationState('readyToBeSubmitted')\n },\n [setConfirmationState, validatePreventSubmit]\n )\n setHandleSubmit?.(handleSubmit)\n\n const submitHandler = useCallback(async () => {\n setHandleSubmit?.(handleSubmit, { remove: true })\n\n await setConfirmationState('submitInProgress')\n await handleFinalSubmit()\n await setConfirmationState('submissionComplete')\n\n setFocusOnButton()\n }, [\n handleFinalSubmit,\n handleSubmit,\n setFocusOnButton,\n setHandleSubmit,\n setConfirmationState,\n ])\n\n const sharedProviderParams: ContextProps = {\n formElement: {\n disabled: false,\n },\n }\n\n return (\n <>\n {children}\n\n <SharedProvider {...sharedProviderParams}>\n <HeightAnimation>\n {renderWithState?.(getParamsRef.current())}\n </HeightAnimation>\n </SharedProvider>\n </>\n )\n}\n\nSubmitConfirmation._supportsSpacingProps = 'children'\nexport default SubmitConfirmation\n"],"mappings":"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"}
1
+ {"version":3,"file":"SubmitConfirmation.js","names":["React","useCallback","useContext","useMemo","useReducer","useRef","DataContext","SharedProvider","HeightAnimation","removeUndefinedProps","SubmitConfirmation","props","forceUpdate","preventSubmitWhen","onStateChange","onSubmitResult","renderWithState","children","setFormState","setHandleSubmit","handleSubmit","handleFinalSubmit","submitState","formElementRef","internalDataRef","confirmationStateRef","submitStateRef","preventSubmitRef","undefined","validatePreventSubmit","current","getParamsRef","setConfirmationState","state","window","requestAnimationFrame","keepPending","confirmationState","connectWithDialog","openState","onConfirm","submitHandler","onDecline","cancelHandler","onClose","triggeredBy","data","Object","keys","length","_objectSpread","setFocusOnButton","form","element","querySelector","focus","e","preventSubmit","remove","sharedProviderParams","formElement","disabled","createElement","Fragment","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/SubmitConfirmation/SubmitConfirmation.tsx"],"sourcesContent":["import React, {\n useCallback,\n useContext,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport DataContext from '../../DataContext/Context'\nimport SharedProvider from '../../../../shared/Provider'\nimport { ContextProps } from '../../../../shared/Context'\nimport { HeightAnimation } from '../../../../components'\nimport {\n DialogContentProps,\n DialogProps,\n} from '../../../../components/dialog/types'\nimport { EventStateObject } from '../../types'\nimport { removeUndefinedProps } from '../../../../shared/component-helper'\n\nexport type ConfirmationState =\n | 'idle'\n | 'readyToBeSubmitted'\n | 'submitInProgress'\n | 'submissionComplete'\n\nexport type ConfirmParams = {\n data: unknown\n confirmationState: ConfirmationState\n submitState: EventStateObject | undefined\n connectWithDialog: Pick<\n DialogProps & DialogContentProps,\n 'openState' | 'onConfirm' | 'onDecline' | 'onClose'\n >\n setConfirmationState: (state: ConfirmationState) => void\n submitHandler: () => void | Promise<void>\n cancelHandler: () => void | Promise<void>\n}\n\nexport type ConfirmProps = {\n preventSubmitWhen?: (params: ConfirmParams) => boolean\n onStateChange?: (params: ConfirmParams) => void | Promise<void>\n onSubmitResult?: (params: ConfirmParams) => void\n renderWithState?: (params: ConfirmParams) => React.ReactNode\n children?: React.ReactNode\n}\n\nfunction SubmitConfirmation(props: ConfirmProps) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const {\n preventSubmitWhen,\n onStateChange,\n onSubmitResult,\n renderWithState,\n children,\n } = props\n\n const {\n setFormState,\n setHandleSubmit,\n handleSubmit: handleFinalSubmit,\n submitState,\n formElementRef,\n internalDataRef,\n } = useContext(DataContext)\n\n const confirmationStateRef = useRef<ConfirmationState>('idle')\n const submitStateRef = useRef<EventStateObject>()\n const preventSubmitRef = useRef<boolean>(undefined)\n\n const validatePreventSubmit = useCallback(() => {\n return (preventSubmitRef.current = preventSubmitWhen?.(\n getParamsRef.current()\n ))\n }, [preventSubmitWhen])\n\n const setConfirmationState = useCallback(\n async (state: ConfirmationState) => {\n confirmationStateRef.current = state\n await onStateChange?.(getParamsRef.current())\n if (typeof window !== 'undefined') {\n window.requestAnimationFrame(() => {\n switch (state) {\n case 'idle':\n setFormState('complete', { keepPending: false })\n break\n case 'readyToBeSubmitted':\n setFormState('pending', { keepPending: true })\n break\n case 'submitInProgress':\n setFormState('pending', { keepPending: true })\n break\n case 'submissionComplete':\n setFormState('complete', { keepPending: false })\n break\n default:\n forceUpdate()\n }\n })\n }\n },\n [onStateChange, setFormState]\n )\n\n const getParamsRef = useRef(() => {\n const confirmationState = confirmationStateRef.current\n\n const connectWithDialog = {\n openState: confirmationState === 'readyToBeSubmitted',\n onConfirm: submitHandler,\n onDecline: cancelHandler,\n onClose: ({ triggeredBy }) => {\n if (triggeredBy === 'keyboard') {\n cancelHandler()\n }\n },\n }\n\n return {\n data: internalDataRef?.current,\n confirmationState,\n setConfirmationState,\n submitHandler,\n cancelHandler,\n connectWithDialog,\n submitState: submitStateRef.current,\n } satisfies ConfirmParams\n })\n\n useMemo(() => {\n if (Object.keys(removeUndefinedProps(submitState) || {}).length > 0) {\n submitStateRef.current = {\n ...submitState,\n } as EventStateObject\n onSubmitResult?.(getParamsRef.current())\n }\n }, [submitState, onSubmitResult])\n\n const setFocusOnButton = useCallback(() => {\n try {\n const form = formElementRef.current\n const element = (form.querySelector('.dnb-forms-submit-button') ||\n form) as HTMLElement\n element.focus()\n } catch (e) {\n //\n }\n }, [formElementRef])\n\n const cancelHandler = useCallback(async () => {\n await setConfirmationState('idle')\n setFocusOnButton()\n }, [setFocusOnButton, setConfirmationState])\n\n const handleSubmit = useCallback(\n async ({ preventSubmit }) => {\n if (confirmationStateRef.current === 'submitInProgress') {\n return // stop here\n }\n\n if (validatePreventSubmit() !== true) {\n await setConfirmationState('submitInProgress')\n return // stop here\n }\n\n submitStateRef.current = undefined\n\n // Prevent the form form from being submitted\n preventSubmit()\n\n await setConfirmationState('readyToBeSubmitted')\n },\n [setConfirmationState, validatePreventSubmit]\n )\n setHandleSubmit?.(handleSubmit)\n\n const submitHandler = useCallback(async () => {\n setHandleSubmit?.(handleSubmit, { remove: true })\n\n await setConfirmationState('submitInProgress')\n await handleFinalSubmit()\n await setConfirmationState('submissionComplete')\n\n setFocusOnButton()\n }, [\n handleFinalSubmit,\n handleSubmit,\n setFocusOnButton,\n setHandleSubmit,\n setConfirmationState,\n ])\n\n const sharedProviderParams: ContextProps = {\n formElement: {\n disabled: false,\n },\n }\n\n return (\n <>\n {children}\n\n <SharedProvider {...sharedProviderParams}>\n <HeightAnimation>\n {renderWithState?.(getParamsRef.current())}\n </HeightAnimation>\n </SharedProvider>\n </>\n )\n}\n\nSubmitConfirmation._supportsSpacingProps = 'children'\nexport default SubmitConfirmation\n"],"mappings":"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"}
@@ -5,10 +5,18 @@ import type { DataAttributes } from '../../hooks/useFieldProps';
5
5
  import { FilterData } from '../../DataContext';
6
6
  export type VisibleWhen = {
7
7
  path: Path;
8
- hasValue: unknown;
8
+ hasValue: unknown | ((value: unknown) => boolean);
9
9
  } | {
10
10
  itemPath: Path;
11
- hasValue: unknown;
11
+ hasValue: unknown | ((value: unknown) => boolean);
12
+ } | {
13
+ path: Path;
14
+ isValid: boolean;
15
+ continuousValidation?: boolean;
16
+ } | {
17
+ itemPath: Path;
18
+ isValid: boolean;
19
+ continuousValidation?: boolean;
12
20
  }
13
21
  /**
14
22
  * @deprecated Will be removed in v11!
@@ -1 +1 @@
1
- {"version":3,"file":"Visibility.js","names":["React","warn","useMountEffect","HeightAnimation","FieldProvider","useVisibility","VisibilityContext","Visibility","_ref","visible","pathDefined","pathUndefined","pathTruthy","pathFalsy","pathTrue","pathFalse","pathValue","whenValue","visibleWhen","visibleWhenNot","inferData","filterData","animate","keepInDOM","compensateForGap","fieldPropsWhenHidden","children","rest","_objectWithoutProperties","_excluded","check","open","content","createElement","Provider","value","isVisible","props","_extends","Boolean","className","hidden","Fragment","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/Visibility/Visibility.tsx"],"sourcesContent":["import React, { AriaAttributes } from 'react'\n\nimport { warn } from '../../../../shared/helpers'\nimport useMountEffect from '../../../../shared/helpers/useMountEffect'\nimport HeightAnimation, {\n HeightAnimationProps,\n} from '../../../../components/HeightAnimation'\nimport FieldProvider from '../../Field/Provider'\nimport useVisibility from './useVisibility'\n\nimport type { Path, UseFieldProps } from '../../types'\nimport type { DataAttributes } from '../../hooks/useFieldProps'\nimport { FilterData } from '../../DataContext'\nimport VisibilityContext from './VisibilityContext'\n\nexport type VisibleWhen =\n | {\n path: Path\n hasValue: unknown\n }\n | {\n itemPath: Path\n hasValue: unknown\n }\n /**\n * @deprecated Will be removed in v11!\n */\n | {\n path: Path\n /** @deprecated Use `hasValue` instead */\n withValue: (value: unknown) => boolean\n }\n /**\n * @deprecated Will be removed in v11!\n */\n | {\n itemPath: Path\n /** @deprecated Use `hasValue` instead */\n withValue: (value: unknown) => boolean\n }\n\nexport type Props = {\n visible?: boolean\n /** Given data context path must be defined to show children */\n pathDefined?: Path\n /** Given data context path must be undefined to show children */\n pathUndefined?: Path\n /** Given data context path must be truthy to show children */\n pathTruthy?: Path\n /** Given data context path must be falsy to show children */\n pathFalsy?: Path\n /** Given data context path must be true to show children */\n pathTrue?: Path\n /** Given data context path must be false to show children */\n pathFalse?: Path\n /** Provide a `path` or `itemPath` and a `hasValue` method that returns a boolean or the excepted value in order to show children. The first parameter is the value of the path. */\n visibleWhen?: VisibleWhen\n /** Same as `visibleWhen`, but with inverted logic. */\n visibleWhenNot?: VisibleWhen\n /** Infer visibility calling given derivative function with the whole data set. Should return true/false for visibility. */\n inferData?: (data: unknown) => boolean\n /** Filter data based on provided criteria. The first parameter is the path, the second is the value, and the third is the props, and the fourth is the internal. Return false to filter out the data. */\n filterData?: FilterData\n /** Animate the visibility change */\n animate?: boolean\n /** Keep the content in the DOM, even if it's not visible */\n keepInDOM?: boolean\n /** To compensate for CSS gap between the rows, so animation does not jump during the animation. Provide a CSS unit or `auto`. Defaults to `null`. */\n compensateForGap?: HeightAnimationProps['compensateForGap']\n /** When visibility is hidden, and `keepInDOM` is true, pass these props to the children */\n fieldPropsWhenHidden?: UseFieldProps & DataAttributes & AriaAttributes\n element?: HeightAnimationProps['element']\n children: React.ReactNode\n\n /** @deprecated Use `visibleWhen` instead */\n pathValue?: string\n /** @deprecated Use `visibleWhen` instead */\n whenValue?: unknown\n}\n\nfunction Visibility({\n visible,\n pathDefined,\n pathUndefined,\n pathTruthy,\n pathFalsy,\n pathTrue,\n pathFalse,\n pathValue,\n whenValue,\n visibleWhen,\n visibleWhenNot,\n inferData,\n filterData,\n animate,\n keepInDOM,\n compensateForGap,\n fieldPropsWhenHidden,\n children,\n ...rest\n}: Props) {\n useMountEffect(() => {\n if (fieldPropsWhenHidden && !keepInDOM) {\n warn('Using \"fieldPropsWhenHidden\" requires \"keepInDOM\" to be true.')\n }\n })\n\n const { check } = useVisibility({\n visible,\n pathDefined,\n pathUndefined,\n pathTruthy,\n pathFalsy,\n pathTrue,\n pathFalse,\n pathValue,\n whenValue,\n visibleWhen,\n visibleWhenNot,\n inferData,\n filterData,\n })\n const open = check()\n const content = (\n <VisibilityContext.Provider\n value={{\n isVisible: open,\n }}\n >\n {children}\n </VisibilityContext.Provider>\n )\n\n if (animate) {\n const props = !open ? fieldPropsWhenHidden : null\n\n return (\n <HeightAnimation\n open={open}\n keepInDOM={Boolean(keepInDOM)}\n className=\"dnb-forms-visibility\"\n compensateForGap={compensateForGap}\n {...rest}\n >\n <FieldProvider {...props}>{content}</FieldProvider>\n </HeightAnimation>\n )\n }\n\n if (keepInDOM) {\n const props = !open ? fieldPropsWhenHidden : null\n return (\n <span className=\"dnb-forms-visibility\" hidden={!open}>\n <FieldProvider {...props}>{content}</FieldProvider>\n </span>\n )\n }\n\n return <>{open ? content : null}</>\n}\n\nVisibility._supportsSpacingProps = 'children'\nexport default Visibility\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAA0B,OAAO;AAE7C,SAASC,IAAI,QAAQ,4BAA4B;AACjD,OAAOC,cAAc,MAAM,2CAA2C;AACtE,OAAOC,eAAe,MAEf,wCAAwC;AAC/C,OAAOC,aAAa,MAAM,sBAAsB;AAChD,OAAOC,aAAa,MAAM,iBAAiB;AAK3C,OAAOC,iBAAiB,MAAM,qBAAqB;AAmEnD,SAASC,UAAUA,CAAAC,IAAA,EAoBT;EAAA,IApBU;MAClBC,OAAO;MACPC,WAAW;MACXC,aAAa;MACbC,UAAU;MACVC,SAAS;MACTC,QAAQ;MACRC,SAAS;MACTC,SAAS;MACTC,SAAS;MACTC,WAAW;MACXC,cAAc;MACdC,SAAS;MACTC,UAAU;MACVC,OAAO;MACPC,SAAS;MACTC,gBAAgB;MAChBC,oBAAoB;MACpBC;IAEK,CAAC,GAAAlB,IAAA;IADHmB,IAAI,GAAAC,wBAAA,CAAApB,IAAA,EAAAqB,SAAA;EAEP3B,cAAc,CAAC,MAAM;IACnB,IAAIuB,oBAAoB,IAAI,CAACF,SAAS,EAAE;MACtCtB,IAAI,CAAC,+DAA+D,CAAC;IACvE;EACF,CAAC,CAAC;EAEF,MAAM;IAAE6B;EAAM,CAAC,GAAGzB,aAAa,CAAC;IAC9BI,OAAO;IACPC,WAAW;IACXC,aAAa;IACbC,UAAU;IACVC,SAAS;IACTC,QAAQ;IACRC,SAAS;IACTC,SAAS;IACTC,SAAS;IACTC,WAAW;IACXC,cAAc;IACdC,SAAS;IACTC;EACF,CAAC,CAAC;EACF,MAAMU,IAAI,GAAGD,KAAK,CAAC,CAAC;EACpB,MAAME,OAAO,GACXhC,KAAA,CAAAiC,aAAA,CAAC3B,iBAAiB,CAAC4B,QAAQ;IACzBC,KAAK,EAAE;MACLC,SAAS,EAAEL;IACb;EAAE,GAEDL,QACyB,CAC7B;EAED,IAAIJ,OAAO,EAAE;IACX,MAAMe,KAAK,GAAG,CAACN,IAAI,GAAGN,oBAAoB,GAAG,IAAI;IAEjD,OACEzB,KAAA,CAAAiC,aAAA,CAAC9B,eAAe,EAAAmC,QAAA;MACdP,IAAI,EAAEA,IAAK;MACXR,SAAS,EAAEgB,OAAO,CAAChB,SAAS,CAAE;MAC9BiB,SAAS,EAAC,sBAAsB;MAChChB,gBAAgB,EAAEA;IAAiB,GAC/BG,IAAI,GAER3B,KAAA,CAAAiC,aAAA,CAAC7B,aAAa,EAAKiC,KAAK,EAAGL,OAAuB,CACnC,CAAC;EAEtB;EAEA,IAAIT,SAAS,EAAE;IACb,MAAMc,KAAK,GAAG,CAACN,IAAI,GAAGN,oBAAoB,GAAG,IAAI;IACjD,OACEzB,KAAA,CAAAiC,aAAA;MAAMO,SAAS,EAAC,sBAAsB;MAACC,MAAM,EAAE,CAACV;IAAK,GACnD/B,KAAA,CAAAiC,aAAA,CAAC7B,aAAa,EAAKiC,KAAK,EAAGL,OAAuB,CAC9C,CAAC;EAEX;EAEA,OAAOhC,KAAA,CAAAiC,aAAA,CAAAjC,KAAA,CAAA0C,QAAA,QAAGX,IAAI,GAAGC,OAAO,GAAG,IAAO,CAAC;AACrC;AAEAzB,UAAU,CAACoC,qBAAqB,GAAG,UAAU;AAC7C,eAAepC,UAAU"}
1
+ {"version":3,"file":"Visibility.js","names":["React","warn","useMountEffect","HeightAnimation","FieldProvider","useVisibility","VisibilityContext","Visibility","_ref","visible","pathDefined","pathUndefined","pathTruthy","pathFalsy","pathTrue","pathFalse","pathValue","whenValue","visibleWhen","visibleWhenNot","inferData","filterData","animate","keepInDOM","compensateForGap","fieldPropsWhenHidden","children","rest","_objectWithoutProperties","_excluded","check","open","content","createElement","Provider","value","isVisible","props","_extends","Boolean","className","hidden","Fragment","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/Visibility/Visibility.tsx"],"sourcesContent":["import React, { AriaAttributes } from 'react'\n\nimport { warn } from '../../../../shared/helpers'\nimport useMountEffect from '../../../../shared/helpers/useMountEffect'\nimport HeightAnimation, {\n HeightAnimationProps,\n} from '../../../../components/HeightAnimation'\nimport FieldProvider from '../../Field/Provider'\nimport useVisibility from './useVisibility'\n\nimport type { Path, UseFieldProps } from '../../types'\nimport type { DataAttributes } from '../../hooks/useFieldProps'\nimport { FilterData } from '../../DataContext'\nimport VisibilityContext from './VisibilityContext'\n\nexport type VisibleWhen =\n | {\n path: Path\n hasValue: unknown | ((value: unknown) => boolean)\n }\n | {\n itemPath: Path\n hasValue: unknown | ((value: unknown) => boolean)\n }\n | {\n path: Path\n isValid: boolean\n continuousValidation?: boolean\n }\n | {\n itemPath: Path\n isValid: boolean\n continuousValidation?: boolean\n }\n\n /**\n * @deprecated Will be removed in v11!\n */\n | {\n path: Path\n /** @deprecated Use `hasValue` instead */\n withValue: (value: unknown) => boolean\n }\n /**\n * @deprecated Will be removed in v11!\n */\n | {\n itemPath: Path\n /** @deprecated Use `hasValue` instead */\n withValue: (value: unknown) => boolean\n }\n\nexport type Props = {\n visible?: boolean\n /** Given data context path must be defined to show children */\n pathDefined?: Path\n /** Given data context path must be undefined to show children */\n pathUndefined?: Path\n /** Given data context path must be truthy to show children */\n pathTruthy?: Path\n /** Given data context path must be falsy to show children */\n pathFalsy?: Path\n /** Given data context path must be true to show children */\n pathTrue?: Path\n /** Given data context path must be false to show children */\n pathFalse?: Path\n /** Provide a `path` or `itemPath` and a `hasValue` method that returns a boolean or the excepted value in order to show children. The first parameter is the value of the path. */\n visibleWhen?: VisibleWhen\n /** Same as `visibleWhen`, but with inverted logic. */\n visibleWhenNot?: VisibleWhen\n /** Infer visibility calling given derivative function with the whole data set. Should return true/false for visibility. */\n inferData?: (data: unknown) => boolean\n /** Filter data based on provided criteria. The first parameter is the path, the second is the value, and the third is the props, and the fourth is the internal. Return false to filter out the data. */\n filterData?: FilterData\n /** Animate the visibility change */\n animate?: boolean\n /** Keep the content in the DOM, even if it's not visible */\n keepInDOM?: boolean\n /** To compensate for CSS gap between the rows, so animation does not jump during the animation. Provide a CSS unit or `auto`. Defaults to `null`. */\n compensateForGap?: HeightAnimationProps['compensateForGap']\n /** When visibility is hidden, and `keepInDOM` is true, pass these props to the children */\n fieldPropsWhenHidden?: UseFieldProps & DataAttributes & AriaAttributes\n element?: HeightAnimationProps['element']\n children: React.ReactNode\n\n /** @deprecated Use `visibleWhen` instead */\n pathValue?: string\n /** @deprecated Use `visibleWhen` instead */\n whenValue?: unknown\n}\n\nfunction Visibility({\n visible,\n pathDefined,\n pathUndefined,\n pathTruthy,\n pathFalsy,\n pathTrue,\n pathFalse,\n pathValue,\n whenValue,\n visibleWhen,\n visibleWhenNot,\n inferData,\n filterData,\n animate,\n keepInDOM,\n compensateForGap,\n fieldPropsWhenHidden,\n children,\n ...rest\n}: Props) {\n useMountEffect(() => {\n if (fieldPropsWhenHidden && !keepInDOM) {\n warn('Using \"fieldPropsWhenHidden\" requires \"keepInDOM\" to be true.')\n }\n })\n\n const { check } = useVisibility({\n visible,\n pathDefined,\n pathUndefined,\n pathTruthy,\n pathFalsy,\n pathTrue,\n pathFalse,\n pathValue,\n whenValue,\n visibleWhen,\n visibleWhenNot,\n inferData,\n filterData,\n })\n const open = check()\n const content = (\n <VisibilityContext.Provider\n value={{\n isVisible: open,\n }}\n >\n {children}\n </VisibilityContext.Provider>\n )\n\n if (animate) {\n const props = !open ? fieldPropsWhenHidden : null\n\n return (\n <HeightAnimation\n open={open}\n keepInDOM={Boolean(keepInDOM)}\n className=\"dnb-forms-visibility\"\n compensateForGap={compensateForGap}\n {...rest}\n >\n <FieldProvider {...props}>{content}</FieldProvider>\n </HeightAnimation>\n )\n }\n\n if (keepInDOM) {\n const props = !open ? fieldPropsWhenHidden : null\n return (\n <span className=\"dnb-forms-visibility\" hidden={!open}>\n <FieldProvider {...props}>{content}</FieldProvider>\n </span>\n )\n }\n\n return <>{open ? content : null}</>\n}\n\nVisibility._supportsSpacingProps = 'children'\nexport default Visibility\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAA0B,OAAO;AAE7C,SAASC,IAAI,QAAQ,4BAA4B;AACjD,OAAOC,cAAc,MAAM,2CAA2C;AACtE,OAAOC,eAAe,MAEf,wCAAwC;AAC/C,OAAOC,aAAa,MAAM,sBAAsB;AAChD,OAAOC,aAAa,MAAM,iBAAiB;AAK3C,OAAOC,iBAAiB,MAAM,qBAAqB;AA8EnD,SAASC,UAAUA,CAAAC,IAAA,EAoBT;EAAA,IApBU;MAClBC,OAAO;MACPC,WAAW;MACXC,aAAa;MACbC,UAAU;MACVC,SAAS;MACTC,QAAQ;MACRC,SAAS;MACTC,SAAS;MACTC,SAAS;MACTC,WAAW;MACXC,cAAc;MACdC,SAAS;MACTC,UAAU;MACVC,OAAO;MACPC,SAAS;MACTC,gBAAgB;MAChBC,oBAAoB;MACpBC;IAEK,CAAC,GAAAlB,IAAA;IADHmB,IAAI,GAAAC,wBAAA,CAAApB,IAAA,EAAAqB,SAAA;EAEP3B,cAAc,CAAC,MAAM;IACnB,IAAIuB,oBAAoB,IAAI,CAACF,SAAS,EAAE;MACtCtB,IAAI,CAAC,+DAA+D,CAAC;IACvE;EACF,CAAC,CAAC;EAEF,MAAM;IAAE6B;EAAM,CAAC,GAAGzB,aAAa,CAAC;IAC9BI,OAAO;IACPC,WAAW;IACXC,aAAa;IACbC,UAAU;IACVC,SAAS;IACTC,QAAQ;IACRC,SAAS;IACTC,SAAS;IACTC,SAAS;IACTC,WAAW;IACXC,cAAc;IACdC,SAAS;IACTC;EACF,CAAC,CAAC;EACF,MAAMU,IAAI,GAAGD,KAAK,CAAC,CAAC;EACpB,MAAME,OAAO,GACXhC,KAAA,CAAAiC,aAAA,CAAC3B,iBAAiB,CAAC4B,QAAQ;IACzBC,KAAK,EAAE;MACLC,SAAS,EAAEL;IACb;EAAE,GAEDL,QACyB,CAC7B;EAED,IAAIJ,OAAO,EAAE;IACX,MAAMe,KAAK,GAAG,CAACN,IAAI,GAAGN,oBAAoB,GAAG,IAAI;IAEjD,OACEzB,KAAA,CAAAiC,aAAA,CAAC9B,eAAe,EAAAmC,QAAA;MACdP,IAAI,EAAEA,IAAK;MACXR,SAAS,EAAEgB,OAAO,CAAChB,SAAS,CAAE;MAC9BiB,SAAS,EAAC,sBAAsB;MAChChB,gBAAgB,EAAEA;IAAiB,GAC/BG,IAAI,GAER3B,KAAA,CAAAiC,aAAA,CAAC7B,aAAa,EAAKiC,KAAK,EAAGL,OAAuB,CACnC,CAAC;EAEtB;EAEA,IAAIT,SAAS,EAAE;IACb,MAAMc,KAAK,GAAG,CAACN,IAAI,GAAGN,oBAAoB,GAAG,IAAI;IACjD,OACEzB,KAAA,CAAAiC,aAAA;MAAMO,SAAS,EAAC,sBAAsB;MAACC,MAAM,EAAE,CAACV;IAAK,GACnD/B,KAAA,CAAAiC,aAAA,CAAC7B,aAAa,EAAKiC,KAAK,EAAGL,OAAuB,CAC9C,CAAC;EAEX;EAEA,OAAOhC,KAAA,CAAAiC,aAAA,CAAAjC,KAAA,CAAA0C,QAAA,QAAGX,IAAI,GAAGC,OAAO,GAAG,IAAO,CAAC;AACrC;AAEAzB,UAAU,CAACoC,qBAAqB,GAAG,UAAU;AAC7C,eAAepC,UAAU"}
@@ -1,4 +1,14 @@
1
1
  export const VisibilityProperties = {
2
+ visibleWhen: {
3
+ doc: 'Provide a `path` or `itemPath` and a `hasValue` method that returns a boolean or the excepted value in order to show children. The first parameter is the value of the path. You can also use `isValid` instead of `hasValue` to only show the children when the field has no errors and has lost focus (blurred). You can change that behavior by using the `continuousValidation` property.',
4
+ type: 'object',
5
+ status: 'optional'
6
+ },
7
+ visibleWhenNot: {
8
+ doc: 'Same as `visibleWhen`, but with inverted logic.',
9
+ type: 'object',
10
+ status: 'optional'
11
+ },
2
12
  pathDefined: {
3
13
  doc: 'Given data context path must be defined to show children.',
4
14
  type: 'string',
@@ -29,16 +39,6 @@ export const VisibilityProperties = {
29
39
  type: 'string',
30
40
  status: 'optional'
31
41
  },
32
- visibleWhen: {
33
- doc: 'Provide a `path` or `itemPath` and a `hasValue` method that returns a boolean or the excepted value in order to show children. The first parameter is the value of the path.',
34
- type: 'object',
35
- status: 'optional'
36
- },
37
- visibleWhenNot: {
38
- doc: 'Same as `visibleWhen`, but with inverted logic.',
39
- type: 'object',
40
- status: 'optional'
41
- },
42
42
  inferData: {
43
43
  doc: 'Will be called to decide by external logic, and show/hide contents based on the return value.',
44
44
  type: 'function',
@@ -1 +1 @@
1
- {"version":3,"file":"VisibilityDocs.js","names":["VisibilityProperties","pathDefined","doc","type","status","pathUndefined","pathTruthy","pathFalsy","pathTrue","pathFalse","visibleWhen","visibleWhenNot","inferData","visible","animate","keepInDOM","compensateForGap","filterData","fieldPropsWhenHidden","element","children"],"sources":["../../../../../../src/extensions/forms/Form/Visibility/VisibilityDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const VisibilityProperties: PropertiesTableProps = {\n pathDefined: {\n doc: 'Given data context path must be defined to show children.',\n type: 'string',\n status: 'optional',\n },\n pathUndefined: {\n doc: 'Given data context path must be undefined to show children.',\n type: 'string',\n status: 'optional',\n },\n pathTruthy: {\n doc: 'Given data context path must be truthy to show children.',\n type: 'string',\n status: 'optional',\n },\n pathFalsy: {\n doc: 'Given data context path must be falsy to show children.',\n type: 'string',\n status: 'optional',\n },\n pathTrue: {\n doc: 'Given data context path must be true to show children.',\n type: 'string',\n status: 'optional',\n },\n pathFalse: {\n doc: 'Given data context path must be false to show children.',\n type: 'string',\n status: 'optional',\n },\n visibleWhen: {\n doc: 'Provide a `path` or `itemPath` and a `hasValue` method that returns a boolean or the excepted value in order to show children. The first parameter is the value of the path.',\n type: 'object',\n status: 'optional',\n },\n visibleWhenNot: {\n doc: 'Same as `visibleWhen`, but with inverted logic.',\n type: 'object',\n status: 'optional',\n },\n inferData: {\n doc: 'Will be called to decide by external logic, and show/hide contents based on the return value.',\n type: 'function',\n status: 'optional',\n },\n visible: {\n doc: 'Control visibility directly using the `visible` prop. When used alongside other conditions, the `visible` prop takes precedence.',\n type: 'boolean',\n status: 'optional',\n },\n animate: {\n doc: 'Define if the content should animate during show/hide.',\n type: 'boolean',\n status: 'optional',\n },\n keepInDOM: {\n doc: \"Keep the content in the DOM, even if it's not visible. Can be used to let fields run validation.\",\n type: 'boolean',\n status: 'optional',\n },\n compensateForGap: {\n doc: 'To compensate for CSS gap between the rows, so animation does not jump during the animation. Provide a CSS unit or `auto`. Defaults to `null`.',\n type: 'string',\n status: 'optional',\n },\n filterData: {\n doc: 'Filter data based on provided criteria. More info about `filterData` can be found in the [Getting Started](/uilib/extensions/forms/getting-started/#filter-data) documentation.',\n type: ['object', 'function'],\n status: 'optional',\n },\n fieldPropsWhenHidden: {\n doc: 'When visibility is hidden, and `keepInDOM` is true, pass these props to the children.',\n type: 'various',\n status: 'optional',\n },\n element: {\n doc: 'Define the type of element. Defaults to `div`. Only for when `animate` is true.',\n type: 'string or React.Element',\n status: 'optional',\n },\n children: {\n doc: 'Contents.',\n type: 'React.Node',\n status: 'required',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,oBAA0C,GAAG;EACxDC,WAAW,EAAE;IACXC,GAAG,EAAE,2DAA2D;IAChEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,aAAa,EAAE;IACbH,GAAG,EAAE,6DAA6D;IAClEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,UAAU,EAAE;IACVJ,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,SAAS,EAAE;IACTL,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,QAAQ,EAAE;IACRN,GAAG,EAAE,wDAAwD;IAC7DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDK,SAAS,EAAE;IACTP,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDM,WAAW,EAAE;IACXR,GAAG,EAAE,8KAA8K;IACnLC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDO,cAAc,EAAE;IACdT,GAAG,EAAE,iDAAiD;IACtDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,SAAS,EAAE;IACTV,GAAG,EAAE,+FAA+F;IACpGC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDS,OAAO,EAAE;IACPX,GAAG,EAAE,kIAAkI;IACvIC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDU,OAAO,EAAE;IACPZ,GAAG,EAAE,wDAAwD;IAC7DC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDW,SAAS,EAAE;IACTb,GAAG,EAAE,kGAAkG;IACvGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDY,gBAAgB,EAAE;IAChBd,GAAG,EAAE,gJAAgJ;IACrJC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDa,UAAU,EAAE;IACVf,GAAG,EAAE,iLAAiL;IACtLC,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC5BC,MAAM,EAAE;EACV,CAAC;EACDc,oBAAoB,EAAE;IACpBhB,GAAG,EAAE,uFAAuF;IAC5FC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDe,OAAO,EAAE;IACPjB,GAAG,EAAE,iFAAiF;IACtFC,IAAI,EAAE,yBAAyB;IAC/BC,MAAM,EAAE;EACV,CAAC;EACDgB,QAAQ,EAAE;IACRlB,GAAG,EAAE,WAAW;IAChBC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV;AACF,CAAC"}
1
+ {"version":3,"file":"VisibilityDocs.js","names":["VisibilityProperties","visibleWhen","doc","type","status","visibleWhenNot","pathDefined","pathUndefined","pathTruthy","pathFalsy","pathTrue","pathFalse","inferData","visible","animate","keepInDOM","compensateForGap","filterData","fieldPropsWhenHidden","element","children"],"sources":["../../../../../../src/extensions/forms/Form/Visibility/VisibilityDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const VisibilityProperties: PropertiesTableProps = {\n visibleWhen: {\n doc: 'Provide a `path` or `itemPath` and a `hasValue` method that returns a boolean or the excepted value in order to show children. The first parameter is the value of the path. You can also use `isValid` instead of `hasValue` to only show the children when the field has no errors and has lost focus (blurred). You can change that behavior by using the `continuousValidation` property.',\n type: 'object',\n status: 'optional',\n },\n visibleWhenNot: {\n doc: 'Same as `visibleWhen`, but with inverted logic.',\n type: 'object',\n status: 'optional',\n },\n pathDefined: {\n doc: 'Given data context path must be defined to show children.',\n type: 'string',\n status: 'optional',\n },\n pathUndefined: {\n doc: 'Given data context path must be undefined to show children.',\n type: 'string',\n status: 'optional',\n },\n pathTruthy: {\n doc: 'Given data context path must be truthy to show children.',\n type: 'string',\n status: 'optional',\n },\n pathFalsy: {\n doc: 'Given data context path must be falsy to show children.',\n type: 'string',\n status: 'optional',\n },\n pathTrue: {\n doc: 'Given data context path must be true to show children.',\n type: 'string',\n status: 'optional',\n },\n pathFalse: {\n doc: 'Given data context path must be false to show children.',\n type: 'string',\n status: 'optional',\n },\n inferData: {\n doc: 'Will be called to decide by external logic, and show/hide contents based on the return value.',\n type: 'function',\n status: 'optional',\n },\n visible: {\n doc: 'Control visibility directly using the `visible` prop. When used alongside other conditions, the `visible` prop takes precedence.',\n type: 'boolean',\n status: 'optional',\n },\n animate: {\n doc: 'Define if the content should animate during show/hide.',\n type: 'boolean',\n status: 'optional',\n },\n keepInDOM: {\n doc: \"Keep the content in the DOM, even if it's not visible. Can be used to let fields run validation.\",\n type: 'boolean',\n status: 'optional',\n },\n compensateForGap: {\n doc: 'To compensate for CSS gap between the rows, so animation does not jump during the animation. Provide a CSS unit or `auto`. Defaults to `null`.',\n type: 'string',\n status: 'optional',\n },\n filterData: {\n doc: 'Filter data based on provided criteria. More info about `filterData` can be found in the [Getting Started](/uilib/extensions/forms/getting-started/#filter-data) documentation.',\n type: ['object', 'function'],\n status: 'optional',\n },\n fieldPropsWhenHidden: {\n doc: 'When visibility is hidden, and `keepInDOM` is true, pass these props to the children.',\n type: 'various',\n status: 'optional',\n },\n element: {\n doc: 'Define the type of element. Defaults to `div`. Only for when `animate` is true.',\n type: 'string or React.Element',\n status: 'optional',\n },\n children: {\n doc: 'Contents.',\n type: 'React.Node',\n status: 'required',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,oBAA0C,GAAG;EACxDC,WAAW,EAAE;IACXC,GAAG,EAAE,+XAA+X;IACpYC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,cAAc,EAAE;IACdH,GAAG,EAAE,iDAAiD;IACtDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,WAAW,EAAE;IACXJ,GAAG,EAAE,2DAA2D;IAChEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,aAAa,EAAE;IACbL,GAAG,EAAE,6DAA6D;IAClEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,UAAU,EAAE;IACVN,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDK,SAAS,EAAE;IACTP,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDM,QAAQ,EAAE;IACRR,GAAG,EAAE,wDAAwD;IAC7DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDO,SAAS,EAAE;IACTT,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,SAAS,EAAE;IACTV,GAAG,EAAE,+FAA+F;IACpGC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDS,OAAO,EAAE;IACPX,GAAG,EAAE,kIAAkI;IACvIC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDU,OAAO,EAAE;IACPZ,GAAG,EAAE,wDAAwD;IAC7DC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDW,SAAS,EAAE;IACTb,GAAG,EAAE,kGAAkG;IACvGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDY,gBAAgB,EAAE;IAChBd,GAAG,EAAE,gJAAgJ;IACrJC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDa,UAAU,EAAE;IACVf,GAAG,EAAE,iLAAiL;IACtLC,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC5BC,MAAM,EAAE;EACV,CAAC;EACDc,oBAAoB,EAAE;IACpBhB,GAAG,EAAE,uFAAuF;IAC5FC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDe,OAAO,EAAE;IACPjB,GAAG,EAAE,iFAAiF;IACtFC,IAAI,EAAE,yBAAyB;IAC/BC,MAAM,EAAE;EACV,CAAC;EACDgB,QAAQ,EAAE;IACRlB,GAAG,EAAE,WAAW;IAChBC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV;AACF,CAAC"}
@@ -6,7 +6,9 @@ import DataContext from '../../DataContext/Context';
6
6
  import usePath from '../../hooks/usePath';
7
7
  export default function useVisibility(props) {
8
8
  const {
9
+ hasFieldError,
9
10
  filterDataHandler,
11
+ mountedFieldsRef,
10
12
  data: originalData
11
13
  } = useContext(DataContext);
12
14
  const {
@@ -39,24 +41,34 @@ export default function useVisibility(props) {
39
41
  visibleWhen = visibleWhenNot;
40
42
  }
41
43
  const path = 'itemPath' in visibleWhen ? makeIteratePath(visibleWhen.itemPath) : makePath(visibleWhen.path);
42
- const hasPath = pointer.has(data, path);
43
- if (hasPath) {
44
- var _visibleWhen, _visibleWhen$hasValue, _visibleWhen2, _visibleWhen3;
45
- const value = pointer.get(data, path);
46
- if ((_visibleWhen = visibleWhen) !== null && _visibleWhen !== void 0 && _visibleWhen['withValue']) {
47
- console.warn('VisibleWhen: "withValue" is deprecated, use "hasValue" instead');
44
+ if ('isValid' in visibleWhen) {
45
+ const item = mountedFieldsRef.current[path];
46
+ if (!item || item.isMounted !== true) {
47
+ return visibleWhenNot ? true : false;
48
48
  }
49
- const hasValue = (_visibleWhen$hasValue = (_visibleWhen2 = visibleWhen) === null || _visibleWhen2 === void 0 ? void 0 : _visibleWhen2['hasValue']) !== null && _visibleWhen$hasValue !== void 0 ? _visibleWhen$hasValue : (_visibleWhen3 = visibleWhen) === null || _visibleWhen3 === void 0 ? void 0 : _visibleWhen3['withValue'];
50
- const result = typeof hasValue === 'function' ? hasValue(value) === false : hasValue !== value;
51
- if (visibleWhenNot) {
52
- if (!result) {
49
+ const result = (visibleWhen.continuousValidation ? true : item.isFocused !== true) && hasFieldError(path) === false;
50
+ return visibleWhenNot ? !result : result;
51
+ }
52
+ if ('hasValue' in visibleWhen || 'withValue' in visibleWhen) {
53
+ const hasPath = pointer.has(data, path);
54
+ if (hasPath) {
55
+ var _visibleWhen, _visibleWhen$hasValue, _visibleWhen2, _visibleWhen3;
56
+ const value = pointer.get(data, path);
57
+ if ((_visibleWhen = visibleWhen) !== null && _visibleWhen !== void 0 && _visibleWhen['withValue']) {
58
+ console.warn('VisibleWhen: "withValue" is deprecated, use "hasValue" instead');
59
+ }
60
+ const hasValue = (_visibleWhen$hasValue = (_visibleWhen2 = visibleWhen) === null || _visibleWhen2 === void 0 ? void 0 : _visibleWhen2['hasValue']) !== null && _visibleWhen$hasValue !== void 0 ? _visibleWhen$hasValue : (_visibleWhen3 = visibleWhen) === null || _visibleWhen3 === void 0 ? void 0 : _visibleWhen3['withValue'];
61
+ const result = typeof hasValue === 'function' ? hasValue(value) === false : hasValue !== value;
62
+ if (visibleWhenNot) {
63
+ if (!result) {
64
+ return false;
65
+ }
66
+ } else if (result) {
53
67
  return false;
54
68
  }
55
- } else if (result) {
69
+ } else {
56
70
  return false;
57
71
  }
58
- } else {
59
- return false;
60
72
  }
61
73
  }
62
74
  if (pathDefined && !pointer.has(data, makePath(pathDefined))) {
@@ -89,7 +101,7 @@ export default function useVisibility(props) {
89
101
  return false;
90
102
  }
91
103
  return true;
92
- }, [filterDataHandler, originalData, makePath, makeIteratePath]);
104
+ }, [filterDataHandler, originalData, makePath, makeIteratePath, mountedFieldsRef, hasFieldError]);
93
105
  return {
94
106
  check
95
107
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useVisibility.js","names":["useCallback","useContext","useRef","pointer","DataContext","usePath","useVisibility","props","filterDataHandler","data","originalData","makePath","makeIteratePath","propsRef","current","check","visible","visibleWhen","visibleWhenNot","pathDefined","pathUndefined","pathTruthy","pathFalsy","pathTrue","pathFalse","pathValue","whenValue","inferData","filterData","path","itemPath","hasPath","has","_visibleWhen","_visibleWhen$hasValue","_visibleWhen2","_visibleWhen3","value","get","console","warn","hasValue","result","getValue","Boolean"],"sources":["../../../../../../src/extensions/forms/Form/Visibility/useVisibility.tsx"],"sourcesContent":["import { useCallback, useContext, useRef } from 'react'\nimport pointer from '../../utils/json-pointer'\nimport DataContext from '../../DataContext/Context'\nimport usePath from '../../hooks/usePath'\nimport { Path } from '../../types'\nimport { Props } from './Visibility'\n\nexport type { Props }\n\nexport default function useVisibility(props?: Partial<Props>) {\n const { filterDataHandler, data: originalData } = useContext(DataContext)\n\n const { makePath, makeIteratePath } = usePath()\n\n // Forward props to the \"check\" method with ref to avoid infinite loop\n const propsRef = useRef(props)\n propsRef.current = props\n\n const check = useCallback(\n (\n {\n visible,\n visibleWhen,\n visibleWhenNot,\n pathDefined,\n pathUndefined,\n pathTruthy,\n pathFalsy,\n pathTrue,\n pathFalse,\n pathValue,\n whenValue,\n inferData,\n filterData,\n }: Partial<Props> = propsRef.current\n ) => {\n if (typeof visible === 'boolean') {\n return visible\n }\n\n const data =\n (filterData && filterDataHandler?.(originalData, filterData)) ||\n originalData\n\n if (visibleWhen || visibleWhenNot) {\n if (visibleWhenNot) {\n visibleWhen = visibleWhenNot\n }\n\n const path =\n 'itemPath' in visibleWhen\n ? makeIteratePath(visibleWhen.itemPath)\n : makePath(visibleWhen.path)\n const hasPath = pointer.has(data, path)\n\n if (hasPath) {\n const value = pointer.get(data, path)\n\n if (visibleWhen?.['withValue']) {\n console.warn(\n 'VisibleWhen: \"withValue\" is deprecated, use \"hasValue\" instead'\n )\n }\n\n const hasValue =\n visibleWhen?.['hasValue'] ?? visibleWhen?.['withValue']\n const result =\n typeof hasValue === 'function'\n ? hasValue(value) === false\n : hasValue !== value\n\n if (visibleWhenNot) {\n if (!result) {\n return false\n }\n } else if (result) {\n return false\n }\n } else {\n return false\n }\n }\n\n if (pathDefined && !pointer.has(data, makePath(pathDefined))) {\n return false\n }\n if (pathUndefined && pointer.has(data, makePath(pathUndefined))) {\n return false\n }\n\n const getValue = (path: Path) => {\n if (pointer.has(data, path)) {\n return pointer.get(data, path)\n }\n }\n\n if (pathTrue && getValue(makePath(pathTrue)) !== true) {\n return false\n }\n if (pathFalse && getValue(makePath(pathFalse)) !== false) {\n return false\n }\n if (\n pathTruthy &&\n Boolean(getValue(makePath(pathTruthy))) === false\n ) {\n return false\n }\n if (pathFalsy && Boolean(getValue(makePath(pathFalsy))) === true) {\n return false\n }\n if (inferData && !inferData(data)) {\n return false\n }\n\n // Deprecated can be removed in v11\n if (pathValue && getValue(makePath(pathValue)) !== whenValue) {\n return false\n }\n\n return true\n },\n [filterDataHandler, originalData, makePath, makeIteratePath]\n )\n\n return { check }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useVisibility.js","names":["useCallback","useContext","useRef","pointer","DataContext","usePath","useVisibility","props","hasFieldError","filterDataHandler","mountedFieldsRef","data","originalData","makePath","makeIteratePath","propsRef","current","check","visible","visibleWhen","visibleWhenNot","pathDefined","pathUndefined","pathTruthy","pathFalsy","pathTrue","pathFalse","pathValue","whenValue","inferData","filterData","path","itemPath","item","isMounted","result","continuousValidation","isFocused","hasPath","has","_visibleWhen","_visibleWhen$hasValue","_visibleWhen2","_visibleWhen3","value","get","console","warn","hasValue","getValue","Boolean"],"sources":["../../../../../../src/extensions/forms/Form/Visibility/useVisibility.tsx"],"sourcesContent":["import { useCallback, useContext, useRef } from 'react'\nimport pointer from '../../utils/json-pointer'\nimport DataContext from '../../DataContext/Context'\nimport usePath from '../../hooks/usePath'\nimport { Path } from '../../types'\nimport { Props } from './Visibility'\n\nexport type { Props }\n\nexport default function useVisibility(props?: Partial<Props>) {\n const {\n hasFieldError,\n filterDataHandler,\n mountedFieldsRef,\n data: originalData,\n } = useContext(DataContext)\n\n const { makePath, makeIteratePath } = usePath()\n\n // Forward props to the \"check\" method with ref to avoid infinite loop\n const propsRef = useRef(props)\n propsRef.current = props\n\n const check = useCallback(\n (\n {\n visible,\n visibleWhen,\n visibleWhenNot,\n pathDefined,\n pathUndefined,\n pathTruthy,\n pathFalsy,\n pathTrue,\n pathFalse,\n pathValue,\n whenValue,\n inferData,\n filterData,\n }: Partial<Props> = propsRef.current\n ) => {\n if (typeof visible === 'boolean') {\n return visible\n }\n\n const data =\n (filterData && filterDataHandler?.(originalData, filterData)) ||\n originalData\n\n if (visibleWhen || visibleWhenNot) {\n if (visibleWhenNot) {\n visibleWhen = visibleWhenNot\n }\n\n const path =\n 'itemPath' in visibleWhen\n ? makeIteratePath(visibleWhen.itemPath)\n : makePath(visibleWhen.path)\n\n if ('isValid' in visibleWhen) {\n const item = mountedFieldsRef.current[path]\n if (!item || item.isMounted !== true) {\n return visibleWhenNot ? true : false\n }\n const result =\n (visibleWhen.continuousValidation\n ? true\n : item.isFocused !== true) && hasFieldError(path) === false\n return visibleWhenNot ? !result : result\n }\n\n if ('hasValue' in visibleWhen || 'withValue' in visibleWhen) {\n const hasPath = pointer.has(data, path)\n\n if (hasPath) {\n const value = pointer.get(data, path)\n\n if (visibleWhen?.['withValue']) {\n console.warn(\n 'VisibleWhen: \"withValue\" is deprecated, use \"hasValue\" instead'\n )\n }\n\n const hasValue =\n visibleWhen?.['hasValue'] ?? visibleWhen?.['withValue']\n const result =\n typeof hasValue === 'function'\n ? hasValue(value) === false\n : hasValue !== value\n\n if (visibleWhenNot) {\n if (!result) {\n return false\n }\n } else if (result) {\n return false\n }\n } else {\n return false\n }\n }\n }\n\n if (pathDefined && !pointer.has(data, makePath(pathDefined))) {\n return false\n }\n if (pathUndefined && pointer.has(data, makePath(pathUndefined))) {\n return false\n }\n\n const getValue = (path: Path) => {\n if (pointer.has(data, path)) {\n return pointer.get(data, path)\n }\n }\n\n if (pathTrue && getValue(makePath(pathTrue)) !== true) {\n return false\n }\n if (pathFalse && getValue(makePath(pathFalse)) !== false) {\n return false\n }\n if (\n pathTruthy &&\n Boolean(getValue(makePath(pathTruthy))) === false\n ) {\n return false\n }\n if (pathFalsy && Boolean(getValue(makePath(pathFalsy))) === true) {\n return false\n }\n if (inferData && !inferData(data)) {\n return false\n }\n\n // Deprecated can be removed in v11\n if (pathValue && getValue(makePath(pathValue)) !== whenValue) {\n return false\n }\n\n return true\n },\n [\n filterDataHandler,\n originalData,\n makePath,\n makeIteratePath,\n mountedFieldsRef,\n hasFieldError,\n ]\n )\n\n return { check }\n}\n"],"mappings":"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"}
@@ -1,10 +1,7 @@
1
1
  import { createSharedState } from '../../../../shared/helpers/useSharedState';
2
2
  export default function clearData(id) {
3
+ var _sharedAttachments$da, _sharedAttachments$da2;
3
4
  const sharedAttachments = createSharedState(id + '-attachments');
4
- sharedAttachments.set({});
5
- const sharedData = createSharedState(id);
6
- sharedData.update({
7
- clearForm: true
8
- });
5
+ (_sharedAttachments$da = (_sharedAttachments$da2 = sharedAttachments.data).clearData) === null || _sharedAttachments$da === void 0 ? void 0 : _sharedAttachments$da.call(_sharedAttachments$da2);
9
6
  }
10
7
  //# sourceMappingURL=clearData.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"clearData.js","names":["createSharedState","clearData","id","sharedAttachments","set","sharedData","update","clearForm"],"sources":["../../../../../../src/extensions/forms/Form/data-context/clearData.ts"],"sourcesContent":["import { createSharedState } from '../../../../shared/helpers/useSharedState'\n\nexport default function clearData(id: string) {\n const sharedAttachments = createSharedState(id + '-attachments')\n sharedAttachments.set({})\n\n const sharedData = createSharedState(id)\n sharedData.update({ clearForm: true })\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,2CAA2C;AAE7E,eAAe,SAASC,SAASA,CAACC,EAAU,EAAE;EAC5C,MAAMC,iBAAiB,GAAGH,iBAAiB,CAACE,EAAE,GAAG,cAAc,CAAC;EAChEC,iBAAiB,CAACC,GAAG,CAAC,CAAC,CAAC,CAAC;EAEzB,MAAMC,UAAU,GAAGL,iBAAiB,CAACE,EAAE,CAAC;EACxCG,UAAU,CAACC,MAAM,CAAC;IAAEC,SAAS,EAAE;EAAK,CAAC,CAAC;AACxC"}
1
+ {"version":3,"file":"clearData.js","names":["createSharedState","clearData","id","_sharedAttachments$da","_sharedAttachments$da2","sharedAttachments","data","call"],"sources":["../../../../../../src/extensions/forms/Form/data-context/clearData.ts"],"sourcesContent":["import { createSharedState } from '../../../../shared/helpers/useSharedState'\nimport { SharedAttachments } from '../../DataContext/Provider'\n\nexport default function clearData(id: string) {\n const sharedAttachments = createSharedState<SharedAttachments<unknown>>(\n id + '-attachments'\n )\n sharedAttachments.data.clearData?.()\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,2CAA2C;AAG7E,eAAe,SAASC,SAASA,CAACC,EAAU,EAAE;EAAA,IAAAC,qBAAA,EAAAC,sBAAA;EAC5C,MAAMC,iBAAiB,GAAGL,iBAAiB,CACzCE,EAAE,GAAG,cACP,CAAC;EACD,CAAAC,qBAAA,IAAAC,sBAAA,GAAAC,iBAAiB,CAACC,IAAI,EAACL,SAAS,cAAAE,qBAAA,uBAAhCA,qBAAA,CAAAI,IAAA,CAAAH,sBAAmC,CAAC;AACtC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getData.js","names":["pointer","createSharedState","getData","id","sharedState","sharedAttachments","data","get","filterData","filter","_sharedAttachments$da","_sharedAttachments$da2","filterDataHandler","call","reduceToVisibleFields","options","_sharedAttachments$da3","_sharedAttachments$da4","visibleDataHandler","getValue","path","has","undefined"],"sources":["../../../../../../src/extensions/forms/Form/data-context/getData.tsx"],"sourcesContent":["import pointer from '../../utils/json-pointer'\nimport {\n SharedStateId,\n createSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport type {\n FilterDataHandler,\n VisibleDataHandler,\n} from '../../DataContext/Context'\nimport type { Path } from '../../types'\nimport type {\n UseDataReturnGetValue,\n UseDataReturnFilterData,\n UseDataReturnVisibleData,\n} from './useData'\n\ntype SharedAttachment<Data> = {\n filterDataHandler: FilterDataHandler<Data>\n visibleDataHandler?: VisibleDataHandler<Data>\n}\n\ntype SetDataReturn<Data> = {\n data: Data\n getValue: UseDataReturnGetValue<Data>\n filterData: UseDataReturnFilterData<Data>\n reduceToVisibleFields: UseDataReturnVisibleData<Data>\n}\n\nexport default function getData<Data>(\n id: SharedStateId\n): SetDataReturn<Data> {\n const sharedState = createSharedState(id)\n const sharedAttachments = createSharedState<SharedAttachment<Data>>(\n id + '-attachments'\n )\n\n const data = sharedState.get() as Data\n\n const filterData: SetDataReturn<Data>['filterData'] = (filter) =>\n sharedAttachments.data?.filterDataHandler?.(data, filter)\n\n const reduceToVisibleFields: SetDataReturn<Data>['reduceToVisibleFields'] =\n (data, options) =>\n sharedAttachments.data?.visibleDataHandler?.(data, options)\n\n const getValue = (path: Path) => {\n if (pointer.has(data, path)) {\n return pointer.get(data, path)\n }\n\n return undefined\n }\n\n return {\n data,\n getValue,\n filterData,\n reduceToVisibleFields,\n }\n}\n"],"mappings":"AAAA,OAAOA,OAAO,MAAM,0BAA0B;AAC9C,SAEEC,iBAAiB,QACZ,2CAA2C;AAwBlD,eAAe,SAASC,OAAOA,CAC7BC,EAAiB,EACI;EACrB,MAAMC,WAAW,GAAGH,iBAAiB,CAACE,EAAE,CAAC;EACzC,MAAME,iBAAiB,GAAGJ,iBAAiB,CACzCE,EAAE,GAAG,cACP,CAAC;EAED,MAAMG,IAAI,GAAGF,WAAW,CAACG,GAAG,CAAC,CAAS;EAEtC,MAAMC,UAA6C,GAAIC,MAAM;IAAA,IAAAC,qBAAA,EAAAC,sBAAA;IAAA,QAAAD,qBAAA,GAC3DL,iBAAiB,CAACC,IAAI,cAAAI,qBAAA,wBAAAC,sBAAA,GAAtBD,qBAAA,CAAwBE,iBAAiB,cAAAD,sBAAA,uBAAzCA,sBAAA,CAAAE,IAAA,CAAAH,qBAAA,EAA4CJ,IAAI,EAAEG,MAAM,CAAC;EAAA;EAE3D,MAAMK,qBAAmE,GACvEA,CAACR,IAAI,EAAES,OAAO;IAAA,IAAAC,sBAAA,EAAAC,sBAAA;IAAA,QAAAD,sBAAA,GACZX,iBAAiB,CAACC,IAAI,cAAAU,sBAAA,wBAAAC,sBAAA,GAAtBD,sBAAA,CAAwBE,kBAAkB,cAAAD,sBAAA,uBAA1CA,sBAAA,CAAAJ,IAAA,CAAAG,sBAAA,EAA6CV,IAAI,EAAES,OAAO,CAAC;EAAA;EAE/D,MAAMI,QAAQ,GAAIC,IAAU,IAAK;IAC/B,IAAIpB,OAAO,CAACqB,GAAG,CAACf,IAAI,EAAEc,IAAI,CAAC,EAAE;MAC3B,OAAOpB,OAAO,CAACO,GAAG,CAACD,IAAI,EAAEc,IAAI,CAAC;IAChC;IAEA,OAAOE,SAAS;EAClB,CAAC;EAED,OAAO;IACLhB,IAAI;IACJa,QAAQ;IACRX,UAAU;IACVM;EACF,CAAC;AACH"}
1
+ {"version":3,"file":"getData.js","names":["pointer","createSharedState","getData","id","sharedState","sharedAttachments","data","get","filterData","filter","_sharedAttachments$da","_sharedAttachments$da2","filterDataHandler","call","reduceToVisibleFields","options","_sharedAttachments$da3","_sharedAttachments$da4","visibleDataHandler","getValue","path","has","undefined"],"sources":["../../../../../../src/extensions/forms/Form/data-context/getData.tsx"],"sourcesContent":["import pointer from '../../utils/json-pointer'\nimport {\n SharedStateId,\n createSharedState,\n} from '../../../../shared/helpers/useSharedState'\nimport { SharedAttachments } from '../../DataContext/Provider'\nimport type { Path } from '../../types'\nimport type {\n UseDataReturnGetValue,\n UseDataReturnFilterData,\n UseDataReturnVisibleData,\n} from './useData'\n\ntype SetDataReturn<Data> = {\n data: Data\n getValue: UseDataReturnGetValue<Data>\n filterData: UseDataReturnFilterData<Data>\n reduceToVisibleFields: UseDataReturnVisibleData<Data>\n}\n\nexport default function getData<Data>(\n id: SharedStateId\n): SetDataReturn<Data> {\n const sharedState = createSharedState(id)\n const sharedAttachments = createSharedState<SharedAttachments<Data>>(\n id + '-attachments'\n )\n\n const data = sharedState.get() as Data\n\n const filterData: SetDataReturn<Data>['filterData'] = (filter) =>\n sharedAttachments.data?.filterDataHandler?.(data, filter)\n\n const reduceToVisibleFields: SetDataReturn<Data>['reduceToVisibleFields'] =\n (data, options) =>\n sharedAttachments.data?.visibleDataHandler?.(data, options)\n\n const getValue = (path: Path) => {\n if (pointer.has(data, path)) {\n return pointer.get(data, path)\n }\n\n return undefined\n }\n\n return {\n data,\n getValue,\n filterData,\n reduceToVisibleFields,\n }\n}\n"],"mappings":"AAAA,OAAOA,OAAO,MAAM,0BAA0B;AAC9C,SAEEC,iBAAiB,QACZ,2CAA2C;AAgBlD,eAAe,SAASC,OAAOA,CAC7BC,EAAiB,EACI;EACrB,MAAMC,WAAW,GAAGH,iBAAiB,CAACE,EAAE,CAAC;EACzC,MAAME,iBAAiB,GAAGJ,iBAAiB,CACzCE,EAAE,GAAG,cACP,CAAC;EAED,MAAMG,IAAI,GAAGF,WAAW,CAACG,GAAG,CAAC,CAAS;EAEtC,MAAMC,UAA6C,GAAIC,MAAM;IAAA,IAAAC,qBAAA,EAAAC,sBAAA;IAAA,QAAAD,qBAAA,GAC3DL,iBAAiB,CAACC,IAAI,cAAAI,qBAAA,wBAAAC,sBAAA,GAAtBD,qBAAA,CAAwBE,iBAAiB,cAAAD,sBAAA,uBAAzCA,sBAAA,CAAAE,IAAA,CAAAH,qBAAA,EAA4CJ,IAAI,EAAEG,MAAM,CAAC;EAAA;EAE3D,MAAMK,qBAAmE,GACvEA,CAACR,IAAI,EAAES,OAAO;IAAA,IAAAC,sBAAA,EAAAC,sBAAA;IAAA,QAAAD,sBAAA,GACZX,iBAAiB,CAACC,IAAI,cAAAU,sBAAA,wBAAAC,sBAAA,GAAtBD,sBAAA,CAAwBE,kBAAkB,cAAAD,sBAAA,uBAA1CA,sBAAA,CAAAJ,IAAA,CAAAG,sBAAA,EAA6CV,IAAI,EAAES,OAAO,CAAC;EAAA;EAE/D,MAAMI,QAAQ,GAAIC,IAAU,IAAK;IAC/B,IAAIpB,OAAO,CAACqB,GAAG,CAACf,IAAI,EAAEc,IAAI,CAAC,EAAE;MAC3B,OAAOpB,OAAO,CAACO,GAAG,CAACD,IAAI,EAAEc,IAAI,CAAC;IAChC;IAEA,OAAOE,SAAS;EAClB,CAAC;EAED,OAAO;IACLhB,IAAI;IACJa,QAAQ;IACRX,UAAU;IACVM;EACF,CAAC;AACH"}