@dnb/eufemia 10.42.0 → 10.44.0

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 (522) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/cjs/components/autocomplete/Autocomplete.d.ts +2 -2
  3. package/cjs/components/autocomplete/AutocompleteDocs.js +7 -7
  4. package/cjs/components/autocomplete/AutocompleteDocs.js.map +1 -1
  5. package/cjs/components/button/Button.d.ts +18 -1
  6. package/cjs/components/button/Button.js +6 -5
  7. package/cjs/components/button/Button.js.map +1 -1
  8. package/cjs/components/card/Card.d.ts +1 -1
  9. package/cjs/components/card/Card.js.map +1 -1
  10. package/cjs/components/input-masked/InputMaskedHooks.js +4 -0
  11. package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
  12. package/cjs/components/space/Space.d.ts +1 -1
  13. package/cjs/components/space/Space.js.map +1 -1
  14. package/cjs/components/table/table-accordion/TableAccordionHead.js.map +1 -1
  15. package/cjs/components/table/table-navigation/TableNavigationHead.js +1 -1
  16. package/cjs/components/table/table-navigation/TableNavigationHead.js.map +1 -1
  17. package/cjs/components/tabs/Tabs.js +1 -1
  18. package/cjs/components/tabs/Tabs.js.map +1 -1
  19. package/cjs/components/upload/UploadDocs.js +1 -1
  20. package/cjs/components/upload/UploadDocs.js.map +1 -1
  21. package/cjs/components/upload/UploadInfo.js +1 -1
  22. package/cjs/components/upload/UploadInfo.js.map +1 -1
  23. package/cjs/components/upload/UploadVerify.js +4 -1
  24. package/cjs/components/upload/UploadVerify.js.map +1 -1
  25. package/cjs/components/upload/types.d.ts +2 -2
  26. package/cjs/components/upload/types.js.map +1 -1
  27. package/cjs/extensions/forms/DataContext/Context.d.ts +3 -2
  28. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  29. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +7 -2
  30. package/cjs/extensions/forms/DataContext/Provider/Provider.js +52 -17
  31. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  32. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +6 -1
  33. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  34. package/cjs/extensions/forms/Field/Currency/CurrencyDocs.d.ts +2 -0
  35. package/cjs/extensions/forms/Field/Currency/CurrencyDocs.js +31 -0
  36. package/cjs/extensions/forms/Field/Currency/CurrencyDocs.js.map +1 -0
  37. package/cjs/extensions/forms/Field/Expiry/Expiry.d.ts +1 -1
  38. package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  39. package/cjs/extensions/forms/Field/FieldDocs.d.ts +7 -0
  40. package/cjs/extensions/forms/Field/FieldDocs.js +20 -1
  41. package/cjs/extensions/forms/Field/FieldDocs.js.map +1 -1
  42. package/cjs/extensions/forms/Field/Number/Number.js +21 -16
  43. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  44. package/cjs/extensions/forms/Field/Option/Option.d.ts +2 -4
  45. package/cjs/extensions/forms/Field/Option/Option.js +0 -21
  46. package/cjs/extensions/forms/Field/Option/Option.js.map +1 -1
  47. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +5 -2
  48. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +33 -15
  49. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  50. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +3 -0
  51. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +28 -0
  52. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -0
  53. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
  54. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +32 -16
  55. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  56. package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.d.ts +1 -0
  57. package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +16 -0
  58. package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -0
  59. package/cjs/extensions/forms/Field/Selection/Selection.d.ts +40 -16
  60. package/cjs/extensions/forms/Field/Selection/Selection.js +71 -16
  61. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  62. package/cjs/extensions/forms/Field/Selection/SelectionDocs.js +10 -0
  63. package/cjs/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  64. package/cjs/extensions/forms/Field/String/String.d.ts +1 -0
  65. package/cjs/extensions/forms/Field/String/String.js +21 -2
  66. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  67. package/cjs/extensions/forms/Field/Toggle/Toggle.js +1 -1
  68. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  69. package/cjs/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  70. package/cjs/extensions/forms/Form/Handler/Handler.js +3 -1
  71. package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
  72. package/cjs/extensions/forms/Form/Isolation/Isolation.d.ts +41 -0
  73. package/cjs/extensions/forms/Form/Isolation/Isolation.js +108 -0
  74. package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -0
  75. package/cjs/extensions/forms/Form/Isolation/IsolationCommitButton.d.ts +7 -0
  76. package/cjs/extensions/forms/Form/Isolation/IsolationCommitButton.js +53 -0
  77. package/cjs/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -0
  78. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.d.ts +3 -0
  79. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js +50 -0
  80. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -0
  81. package/cjs/extensions/forms/Form/Isolation/index.d.ts +2 -0
  82. package/cjs/extensions/forms/Form/Isolation/index.js +27 -0
  83. package/cjs/extensions/forms/Form/Isolation/index.js.map +1 -0
  84. package/cjs/extensions/forms/Form/Section/Section.js +2 -2
  85. package/cjs/extensions/forms/Form/Section/Section.js.map +1 -1
  86. package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js +6 -2
  87. package/cjs/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  88. package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +26 -10
  89. package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  90. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  91. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  92. package/cjs/extensions/forms/Form/Visibility/useVisibility.js +22 -19
  93. package/cjs/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  94. package/cjs/extensions/forms/Form/data-context/clearData.d.ts +1 -0
  95. package/cjs/extensions/forms/Form/data-context/clearData.js +16 -0
  96. package/cjs/extensions/forms/Form/data-context/clearData.js.map +1 -0
  97. package/cjs/extensions/forms/Form/index.d.ts +2 -0
  98. package/cjs/extensions/forms/Form/index.js +14 -0
  99. package/cjs/extensions/forms/Form/index.js.map +1 -1
  100. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  101. package/cjs/extensions/forms/Iterate/Array/types.d.ts +1 -4
  102. package/cjs/extensions/forms/Iterate/Array/types.js.map +1 -1
  103. package/cjs/extensions/forms/Iterate/style/dnb-iterate.css +1 -1
  104. package/cjs/extensions/forms/Iterate/style/dnb-iterate.min.css +1 -1
  105. package/cjs/extensions/forms/Iterate/style/dnb-iterate.scss +1 -1
  106. package/cjs/extensions/forms/Wizard/Step/Step.d.ts +1 -1
  107. package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
  108. package/cjs/extensions/forms/Wizard/Step/StepDocs.js +1 -1
  109. package/cjs/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  110. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +7 -0
  111. package/cjs/extensions/forms/constants/locales/en-GB.js +7 -0
  112. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  113. package/cjs/extensions/forms/constants/locales/en-US.d.ts +7 -0
  114. package/cjs/extensions/forms/constants/locales/index.d.ts +14 -0
  115. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +7 -0
  116. package/cjs/extensions/forms/constants/locales/nb-NO.js +7 -0
  117. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  118. package/cjs/extensions/forms/hooks/DataValueDocs.js +4 -4
  119. package/cjs/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  120. package/cjs/extensions/forms/hooks/useDataValue.d.ts +1 -0
  121. package/cjs/extensions/forms/hooks/useDataValue.js +18 -9
  122. package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
  123. package/cjs/extensions/forms/hooks/useFieldProps.d.ts +5 -5
  124. package/cjs/extensions/forms/hooks/useFieldProps.js +50 -34
  125. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  126. package/cjs/extensions/forms/hooks/usePath.d.ts +1 -1
  127. package/cjs/extensions/forms/hooks/usePath.js +9 -8
  128. package/cjs/extensions/forms/hooks/usePath.js.map +1 -1
  129. package/cjs/extensions/forms/style/dnb-forms.css +1 -1
  130. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  131. package/cjs/extensions/forms/types.d.ts +16 -6
  132. package/cjs/extensions/forms/types.js.map +1 -1
  133. package/cjs/extensions/payment-card/utils/Types.js.map +1 -1
  134. package/cjs/shared/Eufemia.d.ts +1 -1
  135. package/cjs/shared/Eufemia.js +2 -2
  136. package/cjs/shared/Eufemia.js.map +1 -1
  137. package/cjs/shared/helpers/extendPropsWithContext.js +3 -3
  138. package/cjs/shared/helpers/extendPropsWithContext.js.map +1 -1
  139. package/cjs/shared/helpers/isAsync.js +2 -2
  140. package/cjs/shared/helpers/isAsync.js.map +1 -1
  141. package/cjs/style/core/scopes.scss +1 -1
  142. package/cjs/style/dnb-ui-basis.css +1 -1
  143. package/cjs/style/dnb-ui-basis.min.css +1 -1
  144. package/cjs/style/dnb-ui-body.css +1 -1
  145. package/cjs/style/dnb-ui-body.min.css +1 -1
  146. package/cjs/style/dnb-ui-components.css +1 -1
  147. package/cjs/style/dnb-ui-components.min.css +1 -1
  148. package/cjs/style/dnb-ui-core.css +1 -1
  149. package/cjs/style/dnb-ui-core.min.css +1 -1
  150. package/cjs/style/dnb-ui-extensions.css +1 -1
  151. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  152. package/cjs/style/dnb-ui-forms.css +1 -1
  153. package/cjs/style/dnb-ui-forms.min.css +1 -1
  154. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +2 -2
  155. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  156. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +1 -1
  157. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  158. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -1
  159. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  160. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +2 -2
  161. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  162. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +1 -1
  163. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  164. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -1
  165. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  166. package/cjs/style/themes/theme-ui/ui-theme-components.css +2 -2
  167. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  168. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +1 -1
  169. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  170. package/cjs/style/themes/theme-ui/ui-theme-forms.css +1 -1
  171. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  172. package/components/autocomplete/Autocomplete.d.ts +2 -2
  173. package/components/autocomplete/AutocompleteDocs.js +7 -7
  174. package/components/autocomplete/AutocompleteDocs.js.map +1 -1
  175. package/components/button/Button.d.ts +18 -1
  176. package/components/button/Button.js +6 -5
  177. package/components/button/Button.js.map +1 -1
  178. package/components/card/Card.d.ts +1 -1
  179. package/components/card/Card.js.map +1 -1
  180. package/components/input-masked/InputMaskedHooks.js +4 -0
  181. package/components/input-masked/InputMaskedHooks.js.map +1 -1
  182. package/components/space/Space.d.ts +1 -1
  183. package/components/space/Space.js.map +1 -1
  184. package/components/table/table-accordion/TableAccordionHead.js.map +1 -1
  185. package/components/table/table-navigation/TableNavigationHead.js +1 -1
  186. package/components/table/table-navigation/TableNavigationHead.js.map +1 -1
  187. package/components/tabs/Tabs.js +1 -1
  188. package/components/tabs/Tabs.js.map +1 -1
  189. package/components/upload/UploadDocs.js +1 -1
  190. package/components/upload/UploadDocs.js.map +1 -1
  191. package/components/upload/UploadInfo.js +1 -1
  192. package/components/upload/UploadInfo.js.map +1 -1
  193. package/components/upload/UploadVerify.js +4 -1
  194. package/components/upload/UploadVerify.js.map +1 -1
  195. package/components/upload/types.d.ts +2 -2
  196. package/components/upload/types.js.map +1 -1
  197. package/es/components/autocomplete/Autocomplete.d.ts +2 -2
  198. package/es/components/autocomplete/AutocompleteDocs.js +7 -7
  199. package/es/components/autocomplete/AutocompleteDocs.js.map +1 -1
  200. package/es/components/button/Button.d.ts +18 -1
  201. package/es/components/button/Button.js +6 -5
  202. package/es/components/button/Button.js.map +1 -1
  203. package/es/components/card/Card.d.ts +1 -1
  204. package/es/components/card/Card.js.map +1 -1
  205. package/es/components/input-masked/InputMaskedHooks.js +4 -0
  206. package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
  207. package/es/components/space/Space.d.ts +1 -1
  208. package/es/components/space/Space.js.map +1 -1
  209. package/es/components/table/table-accordion/TableAccordionHead.js.map +1 -1
  210. package/es/components/table/table-navigation/TableNavigationHead.js +1 -1
  211. package/es/components/table/table-navigation/TableNavigationHead.js.map +1 -1
  212. package/es/components/tabs/Tabs.js +1 -1
  213. package/es/components/tabs/Tabs.js.map +1 -1
  214. package/es/components/upload/UploadDocs.js +1 -1
  215. package/es/components/upload/UploadDocs.js.map +1 -1
  216. package/es/components/upload/UploadInfo.js +1 -1
  217. package/es/components/upload/UploadInfo.js.map +1 -1
  218. package/es/components/upload/UploadVerify.js +4 -1
  219. package/es/components/upload/UploadVerify.js.map +1 -1
  220. package/es/components/upload/types.d.ts +2 -2
  221. package/es/components/upload/types.js.map +1 -1
  222. package/es/extensions/forms/DataContext/Context.d.ts +3 -2
  223. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  224. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +7 -2
  225. package/es/extensions/forms/DataContext/Provider/Provider.js +50 -17
  226. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  227. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +6 -1
  228. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  229. package/es/extensions/forms/Field/Currency/CurrencyDocs.d.ts +2 -0
  230. package/es/extensions/forms/Field/Currency/CurrencyDocs.js +22 -0
  231. package/es/extensions/forms/Field/Currency/CurrencyDocs.js.map +1 -0
  232. package/es/extensions/forms/Field/Expiry/Expiry.d.ts +1 -1
  233. package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  234. package/es/extensions/forms/Field/FieldDocs.d.ts +7 -0
  235. package/es/extensions/forms/Field/FieldDocs.js +16 -0
  236. package/es/extensions/forms/Field/FieldDocs.js.map +1 -1
  237. package/es/extensions/forms/Field/Number/Number.js +21 -16
  238. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  239. package/es/extensions/forms/Field/Option/Option.d.ts +2 -4
  240. package/es/extensions/forms/Field/Option/Option.js +0 -20
  241. package/es/extensions/forms/Field/Option/Option.js.map +1 -1
  242. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +5 -2
  243. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +32 -15
  244. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  245. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +3 -0
  246. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +20 -0
  247. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -0
  248. package/es/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
  249. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +16 -3
  250. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  251. package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.d.ts +1 -0
  252. package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +9 -0
  253. package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -0
  254. package/es/extensions/forms/Field/Selection/Selection.d.ts +40 -16
  255. package/es/extensions/forms/Field/Selection/Selection.js +67 -15
  256. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  257. package/es/extensions/forms/Field/Selection/SelectionDocs.js +10 -0
  258. package/es/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  259. package/es/extensions/forms/Field/String/String.d.ts +1 -0
  260. package/es/extensions/forms/Field/String/String.js +20 -2
  261. package/es/extensions/forms/Field/String/String.js.map +1 -1
  262. package/es/extensions/forms/Field/Toggle/Toggle.js +1 -1
  263. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  264. package/es/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  265. package/es/extensions/forms/Form/Handler/Handler.js +3 -1
  266. package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
  267. package/es/extensions/forms/Form/Isolation/Isolation.d.ts +41 -0
  268. package/es/extensions/forms/Form/Isolation/Isolation.js +97 -0
  269. package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -0
  270. package/es/extensions/forms/Form/Isolation/IsolationCommitButton.d.ts +7 -0
  271. package/es/extensions/forms/Form/Isolation/IsolationCommitButton.js +43 -0
  272. package/es/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -0
  273. package/es/extensions/forms/Form/Isolation/IsolationDocs.d.ts +3 -0
  274. package/es/extensions/forms/Form/Isolation/IsolationDocs.js +40 -0
  275. package/es/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -0
  276. package/es/extensions/forms/Form/Isolation/index.d.ts +2 -0
  277. package/es/extensions/forms/Form/Isolation/index.js +3 -0
  278. package/es/extensions/forms/Form/Isolation/index.js.map +1 -0
  279. package/es/extensions/forms/Form/Section/Section.js +2 -2
  280. package/es/extensions/forms/Form/Section/Section.js.map +1 -1
  281. package/es/extensions/forms/Form/SubmitButton/SubmitButton.js +6 -2
  282. package/es/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  283. package/es/extensions/forms/Form/Visibility/Visibility.d.ts +26 -10
  284. package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  285. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  286. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  287. package/es/extensions/forms/Form/Visibility/useVisibility.js +22 -19
  288. package/es/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  289. package/es/extensions/forms/Form/data-context/clearData.d.ts +1 -0
  290. package/es/extensions/forms/Form/data-context/clearData.js +10 -0
  291. package/es/extensions/forms/Form/data-context/clearData.js.map +1 -0
  292. package/es/extensions/forms/Form/index.d.ts +2 -0
  293. package/es/extensions/forms/Form/index.js +2 -0
  294. package/es/extensions/forms/Form/index.js.map +1 -1
  295. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  296. package/es/extensions/forms/Iterate/Array/types.d.ts +1 -4
  297. package/es/extensions/forms/Iterate/Array/types.js.map +1 -1
  298. package/es/extensions/forms/Iterate/style/dnb-iterate.css +1 -1
  299. package/es/extensions/forms/Iterate/style/dnb-iterate.min.css +1 -1
  300. package/es/extensions/forms/Iterate/style/dnb-iterate.scss +1 -1
  301. package/es/extensions/forms/Wizard/Step/Step.d.ts +1 -1
  302. package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
  303. package/es/extensions/forms/Wizard/Step/StepDocs.js +1 -1
  304. package/es/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  305. package/es/extensions/forms/constants/locales/en-GB.d.ts +7 -0
  306. package/es/extensions/forms/constants/locales/en-GB.js +7 -0
  307. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  308. package/es/extensions/forms/constants/locales/en-US.d.ts +7 -0
  309. package/es/extensions/forms/constants/locales/index.d.ts +14 -0
  310. package/es/extensions/forms/constants/locales/nb-NO.d.ts +7 -0
  311. package/es/extensions/forms/constants/locales/nb-NO.js +7 -0
  312. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  313. package/es/extensions/forms/hooks/DataValueDocs.js +4 -4
  314. package/es/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  315. package/es/extensions/forms/hooks/useDataValue.d.ts +1 -0
  316. package/es/extensions/forms/hooks/useDataValue.js +18 -9
  317. package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
  318. package/es/extensions/forms/hooks/useFieldProps.d.ts +5 -5
  319. package/es/extensions/forms/hooks/useFieldProps.js +50 -34
  320. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  321. package/es/extensions/forms/hooks/usePath.d.ts +1 -1
  322. package/es/extensions/forms/hooks/usePath.js +8 -8
  323. package/es/extensions/forms/hooks/usePath.js.map +1 -1
  324. package/es/extensions/forms/style/dnb-forms.css +1 -1
  325. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  326. package/es/extensions/forms/types.d.ts +16 -6
  327. package/es/extensions/forms/types.js.map +1 -1
  328. package/es/extensions/payment-card/utils/Types.js.map +1 -1
  329. package/es/shared/Eufemia.d.ts +1 -1
  330. package/es/shared/Eufemia.js +2 -2
  331. package/es/shared/Eufemia.js.map +1 -1
  332. package/es/shared/helpers/extendPropsWithContext.js +3 -3
  333. package/es/shared/helpers/extendPropsWithContext.js.map +1 -1
  334. package/es/shared/helpers/isAsync.js +2 -2
  335. package/es/shared/helpers/isAsync.js.map +1 -1
  336. package/es/style/core/scopes.scss +1 -1
  337. package/es/style/dnb-ui-basis.css +1 -1
  338. package/es/style/dnb-ui-basis.min.css +1 -1
  339. package/es/style/dnb-ui-body.css +1 -1
  340. package/es/style/dnb-ui-body.min.css +1 -1
  341. package/es/style/dnb-ui-components.css +1 -1
  342. package/es/style/dnb-ui-components.min.css +1 -1
  343. package/es/style/dnb-ui-core.css +1 -1
  344. package/es/style/dnb-ui-core.min.css +1 -1
  345. package/es/style/dnb-ui-extensions.css +1 -1
  346. package/es/style/dnb-ui-extensions.min.css +1 -1
  347. package/es/style/dnb-ui-forms.css +1 -1
  348. package/es/style/dnb-ui-forms.min.css +1 -1
  349. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +2 -2
  350. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  351. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +1 -1
  352. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  353. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -1
  354. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  355. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +2 -2
  356. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  357. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +1 -1
  358. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  359. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -1
  360. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  361. package/es/style/themes/theme-ui/ui-theme-components.css +2 -2
  362. package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  363. package/es/style/themes/theme-ui/ui-theme-extensions.css +1 -1
  364. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  365. package/es/style/themes/theme-ui/ui-theme-forms.css +1 -1
  366. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  367. package/esm/dnb-ui-basis.min.mjs +1 -1
  368. package/esm/dnb-ui-components.min.mjs +1 -1
  369. package/esm/dnb-ui-elements.min.mjs +1 -1
  370. package/esm/dnb-ui-extensions.min.mjs +3 -3
  371. package/esm/dnb-ui-lib.min.mjs +1 -1
  372. package/extensions/forms/DataContext/Context.d.ts +3 -2
  373. package/extensions/forms/DataContext/Context.js.map +1 -1
  374. package/extensions/forms/DataContext/Provider/Provider.d.ts +7 -2
  375. package/extensions/forms/DataContext/Provider/Provider.js +50 -17
  376. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  377. package/extensions/forms/DataContext/Provider/ProviderDocs.js +6 -1
  378. package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  379. package/extensions/forms/Field/Currency/CurrencyDocs.d.ts +2 -0
  380. package/extensions/forms/Field/Currency/CurrencyDocs.js +22 -0
  381. package/extensions/forms/Field/Currency/CurrencyDocs.js.map +1 -0
  382. package/extensions/forms/Field/Expiry/Expiry.d.ts +1 -1
  383. package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  384. package/extensions/forms/Field/FieldDocs.d.ts +7 -0
  385. package/extensions/forms/Field/FieldDocs.js +18 -0
  386. package/extensions/forms/Field/FieldDocs.js.map +1 -1
  387. package/extensions/forms/Field/Number/Number.js +21 -16
  388. package/extensions/forms/Field/Number/Number.js.map +1 -1
  389. package/extensions/forms/Field/Option/Option.d.ts +2 -4
  390. package/extensions/forms/Field/Option/Option.js +0 -20
  391. package/extensions/forms/Field/Option/Option.js.map +1 -1
  392. package/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +5 -2
  393. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +33 -15
  394. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  395. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +3 -0
  396. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +20 -0
  397. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -0
  398. package/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
  399. package/extensions/forms/Field/SelectCountry/SelectCountry.js +32 -16
  400. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  401. package/extensions/forms/Field/SelectCountry/SelectCountryDocs.d.ts +1 -0
  402. package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +9 -0
  403. package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -0
  404. package/extensions/forms/Field/Selection/Selection.d.ts +40 -16
  405. package/extensions/forms/Field/Selection/Selection.js +70 -15
  406. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  407. package/extensions/forms/Field/Selection/SelectionDocs.js +10 -0
  408. package/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  409. package/extensions/forms/Field/String/String.d.ts +1 -0
  410. package/extensions/forms/Field/String/String.js +21 -2
  411. package/extensions/forms/Field/String/String.js.map +1 -1
  412. package/extensions/forms/Field/Toggle/Toggle.js +1 -1
  413. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  414. package/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  415. package/extensions/forms/Form/Handler/Handler.js +3 -1
  416. package/extensions/forms/Form/Handler/Handler.js.map +1 -1
  417. package/extensions/forms/Form/Isolation/Isolation.d.ts +41 -0
  418. package/extensions/forms/Form/Isolation/Isolation.js +97 -0
  419. package/extensions/forms/Form/Isolation/Isolation.js.map +1 -0
  420. package/extensions/forms/Form/Isolation/IsolationCommitButton.d.ts +7 -0
  421. package/extensions/forms/Form/Isolation/IsolationCommitButton.js +43 -0
  422. package/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -0
  423. package/extensions/forms/Form/Isolation/IsolationDocs.d.ts +3 -0
  424. package/extensions/forms/Form/Isolation/IsolationDocs.js +40 -0
  425. package/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -0
  426. package/extensions/forms/Form/Isolation/index.d.ts +2 -0
  427. package/extensions/forms/Form/Isolation/index.js +3 -0
  428. package/extensions/forms/Form/Isolation/index.js.map +1 -0
  429. package/extensions/forms/Form/Section/Section.js +2 -2
  430. package/extensions/forms/Form/Section/Section.js.map +1 -1
  431. package/extensions/forms/Form/SubmitButton/SubmitButton.js +6 -2
  432. package/extensions/forms/Form/SubmitButton/SubmitButton.js.map +1 -1
  433. package/extensions/forms/Form/Visibility/Visibility.d.ts +26 -10
  434. package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  435. package/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  436. package/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  437. package/extensions/forms/Form/Visibility/useVisibility.js +22 -19
  438. package/extensions/forms/Form/Visibility/useVisibility.js.map +1 -1
  439. package/extensions/forms/Form/data-context/clearData.d.ts +1 -0
  440. package/extensions/forms/Form/data-context/clearData.js +10 -0
  441. package/extensions/forms/Form/data-context/clearData.js.map +1 -0
  442. package/extensions/forms/Form/index.d.ts +2 -0
  443. package/extensions/forms/Form/index.js +2 -0
  444. package/extensions/forms/Form/index.js.map +1 -1
  445. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  446. package/extensions/forms/Iterate/Array/types.d.ts +1 -4
  447. package/extensions/forms/Iterate/Array/types.js.map +1 -1
  448. package/extensions/forms/Iterate/style/dnb-iterate.css +1 -1
  449. package/extensions/forms/Iterate/style/dnb-iterate.min.css +1 -1
  450. package/extensions/forms/Iterate/style/dnb-iterate.scss +1 -1
  451. package/extensions/forms/Wizard/Step/Step.d.ts +1 -1
  452. package/extensions/forms/Wizard/Step/Step.js.map +1 -1
  453. package/extensions/forms/Wizard/Step/StepDocs.js +1 -1
  454. package/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  455. package/extensions/forms/constants/locales/en-GB.d.ts +7 -0
  456. package/extensions/forms/constants/locales/en-GB.js +7 -0
  457. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  458. package/extensions/forms/constants/locales/en-US.d.ts +7 -0
  459. package/extensions/forms/constants/locales/index.d.ts +14 -0
  460. package/extensions/forms/constants/locales/nb-NO.d.ts +7 -0
  461. package/extensions/forms/constants/locales/nb-NO.js +7 -0
  462. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  463. package/extensions/forms/hooks/DataValueDocs.js +4 -4
  464. package/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  465. package/extensions/forms/hooks/useDataValue.d.ts +1 -0
  466. package/extensions/forms/hooks/useDataValue.js +18 -9
  467. package/extensions/forms/hooks/useDataValue.js.map +1 -1
  468. package/extensions/forms/hooks/useFieldProps.d.ts +5 -5
  469. package/extensions/forms/hooks/useFieldProps.js +50 -34
  470. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  471. package/extensions/forms/hooks/usePath.d.ts +1 -1
  472. package/extensions/forms/hooks/usePath.js +9 -8
  473. package/extensions/forms/hooks/usePath.js.map +1 -1
  474. package/extensions/forms/style/dnb-forms.css +1 -1
  475. package/extensions/forms/style/dnb-forms.min.css +1 -1
  476. package/extensions/forms/types.d.ts +16 -6
  477. package/extensions/forms/types.js.map +1 -1
  478. package/extensions/payment-card/utils/Types.js.map +1 -1
  479. package/package.json +1 -1
  480. package/shared/Eufemia.d.ts +1 -1
  481. package/shared/Eufemia.js +2 -2
  482. package/shared/Eufemia.js.map +1 -1
  483. package/shared/helpers/extendPropsWithContext.js +3 -3
  484. package/shared/helpers/extendPropsWithContext.js.map +1 -1
  485. package/shared/helpers/isAsync.js +2 -2
  486. package/shared/helpers/isAsync.js.map +1 -1
  487. package/style/core/scopes.scss +1 -1
  488. package/style/dnb-ui-basis.css +1 -1
  489. package/style/dnb-ui-basis.min.css +1 -1
  490. package/style/dnb-ui-body.css +1 -1
  491. package/style/dnb-ui-body.min.css +1 -1
  492. package/style/dnb-ui-components.css +1 -1
  493. package/style/dnb-ui-components.min.css +1 -1
  494. package/style/dnb-ui-core.css +1 -1
  495. package/style/dnb-ui-core.min.css +1 -1
  496. package/style/dnb-ui-extensions.css +1 -1
  497. package/style/dnb-ui-extensions.min.css +1 -1
  498. package/style/dnb-ui-forms.css +1 -1
  499. package/style/dnb-ui-forms.min.css +1 -1
  500. package/style/themes/theme-eiendom/eiendom-theme-components.css +2 -2
  501. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  502. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +1 -1
  503. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  504. package/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -1
  505. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  506. package/style/themes/theme-sbanken/sbanken-theme-components.css +2 -2
  507. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  508. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +1 -1
  509. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  510. package/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -1
  511. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  512. package/style/themes/theme-ui/ui-theme-components.css +2 -2
  513. package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  514. package/style/themes/theme-ui/ui-theme-extensions.css +1 -1
  515. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  516. package/style/themes/theme-ui/ui-theme-forms.css +1 -1
  517. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  518. package/umd/dnb-ui-basis.min.js +1 -1
  519. package/umd/dnb-ui-components.min.js +1 -1
  520. package/umd/dnb-ui-elements.min.js +1 -1
  521. package/umd/dnb-ui-extensions.min.js +3 -3
  522. package/umd/dnb-ui-lib.min.js +1 -1
@@ -0,0 +1,41 @@
1
+ import React from 'react';
2
+ import { JsonObject } from 'json-pointer';
3
+ import IsolationCommitButton from './IsolationCommitButton';
4
+ import { type Props as ProviderProps } from '../../DataContext/Provider';
5
+ import type { OnCommit, Path } from '../../types';
6
+ export type IsolationProviderProps<Data> = {
7
+ /**
8
+ * Form.Isolation: Will be called when the isolated context is committed.
9
+ */
10
+ onCommit?: OnCommit<Data>;
11
+ /**
12
+ * Form.Isolation: Will be called when the form is cleared via Form.clearData
13
+ */
14
+ onClear?: () => void;
15
+ /**
16
+ * Form.Isolation: A function that will be called when the isolated context is committed.
17
+ * It will receive the data from the isolated context and the data from the outer context.
18
+ * You can use this to transform the data before it is committed.
19
+ */
20
+ transformOnCommit?: (isolatedData: Data, handlerData: Data) => Data;
21
+ /**
22
+ * Used internally by the Form.Isolation component
23
+ */
24
+ path?: Path;
25
+ /**
26
+ * Used internally by the Form.Isolation component
27
+ */
28
+ isolate?: boolean;
29
+ };
30
+ export type IsolationProps<Data> = Omit<ProviderProps<Data>, 'onSubmit' | 'onSubmitRequest' | 'onSubmitComplete' | 'minimumAsyncBehaviorTime' | 'asyncSubmitTimeout' | 'scrollTopOnSubmit' | 'sessionStorageId' | 'filterSubmitData' | 'globalStatusId'> & {
31
+ /**
32
+ * A ref (function) that you can call in order to commit the data programmatically to the outer context.
33
+ */
34
+ commitHandleRef?: React.MutableRefObject<() => void>;
35
+ };
36
+ declare function IsolationProvider<Data extends JsonObject>(props: IsolationProps<Data>): import("react/jsx-runtime").JSX.Element;
37
+ declare namespace IsolationProvider {
38
+ var CommitButton: typeof IsolationCommitButton;
39
+ var _supportsSpacingProps: any;
40
+ }
41
+ export default IsolationProvider;
@@ -0,0 +1,97 @@
1
+ "use client";
2
+
3
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6
+ import React, { useCallback, useContext, useMemo, useReducer, useRef } from 'react';
7
+ import pointer from 'json-pointer';
8
+ import { extendDeep } from '../../../../shared/component-helper';
9
+ import { Context, Provider } from '../../DataContext';
10
+ import SectionContext from '../Section/SectionContext';
11
+ import IsolationCommitButton from './IsolationCommitButton';
12
+ import { clearedData } from '../../DataContext/Provider';
13
+ import structuredClone from '@ungap/structured-clone';
14
+ function IsolationProvider(props) {
15
+ const {
16
+ children,
17
+ onPathChange,
18
+ onCommit: onCommitProp,
19
+ onClear: onClearProp,
20
+ transformOnCommit: transformOnCommitProp,
21
+ commitHandleRef,
22
+ data,
23
+ defaultData
24
+ } = props;
25
+ const [, forceUpdate] = useReducer(() => ({}), {});
26
+ const internalDataRef = useRef();
27
+ const localDataRef = useRef({});
28
+ const outerContext = useContext(Context);
29
+ const {
30
+ path: pathSection
31
+ } = useContext(SectionContext) || {};
32
+ const {
33
+ handlePathChange: handlePathChangeOuter,
34
+ data: dataOuter
35
+ } = outerContext || {};
36
+ const onPathChangeHandler = useCallback(async (path, value) => {
37
+ if (localDataRef.current === clearedData) {
38
+ localDataRef.current = {};
39
+ }
40
+ pointer.set(localDataRef.current, path, value);
41
+ if (pathSection) {
42
+ path = path.replace(pathSection, '');
43
+ }
44
+ return await (onPathChange === null || onPathChange === void 0 ? void 0 : onPathChange(path, value));
45
+ }, [onPathChange, pathSection]);
46
+ const removeSectionPath = useCallback(data => {
47
+ return pathSection && pointer.has(data, pathSection) ? pointer.get(data, pathSection) : data;
48
+ }, [pathSection]);
49
+ useMemo(() => {
50
+ if (localDataRef.current === clearedData) {
51
+ return;
52
+ }
53
+ let localData = data !== null && data !== void 0 ? data : defaultData;
54
+ if (localData && pathSection && !pointer.has(localDataRef.current, pathSection)) {
55
+ const obj = {};
56
+ pointer.set(obj, pathSection, localData);
57
+ localData = obj;
58
+ }
59
+ internalDataRef.current = extendDeep({}, dataOuter, localData || {}, localDataRef.current);
60
+ }, [data, defaultData, dataOuter, pathSection]);
61
+ const onCommit = useCallback(async (mountedData, additionalArgs) => {
62
+ var _props$path;
63
+ const path = (_props$path = props.path) !== null && _props$path !== void 0 ? _props$path : '/';
64
+ const outerData = props.path && pointer.has(dataOuter, path) ? pointer.get(dataOuter, path) : dataOuter;
65
+ localDataRef.current = mountedData;
66
+ let isolatedData = structuredClone(mountedData);
67
+ if (typeof transformOnCommitProp === 'function') {
68
+ isolatedData = transformOnCommitProp(isolatedData, outerData);
69
+ }
70
+ handlePathChangeOuter === null || handlePathChangeOuter === void 0 ? void 0 : handlePathChangeOuter(path, extendDeep({}, outerData, isolatedData));
71
+ return await (onCommitProp === null || onCommitProp === void 0 ? void 0 : onCommitProp(removeSectionPath(isolatedData), additionalArgs));
72
+ }, [props.path, dataOuter, transformOnCommitProp, handlePathChangeOuter, onCommitProp, removeSectionPath]);
73
+ const onClear = useCallback(() => {
74
+ localDataRef.current = clearedData;
75
+ internalDataRef.current = clearedData;
76
+ forceUpdate();
77
+ onClearProp === null || onClearProp === void 0 ? void 0 : onClearProp();
78
+ }, [onClearProp]);
79
+ const providerProps = _objectSpread(_objectSpread({}, props), {}, {
80
+ data: internalDataRef.current,
81
+ defaultData: undefined,
82
+ onPathChange: onPathChangeHandler,
83
+ onCommit,
84
+ onClear,
85
+ isolate: true
86
+ });
87
+ return React.createElement(Provider, providerProps, React.createElement(Context.Consumer, null, dataContext => {
88
+ if (commitHandleRef) {
89
+ commitHandleRef.current = dataContext === null || dataContext === void 0 ? void 0 : dataContext.handleSubmit;
90
+ }
91
+ return children;
92
+ }));
93
+ }
94
+ IsolationProvider.CommitButton = IsolationCommitButton;
95
+ IsolationProvider._supportsSpacingProps = undefined;
96
+ export default IsolationProvider;
97
+ //# sourceMappingURL=Isolation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Isolation.js","names":["React","useCallback","useContext","useMemo","useReducer","useRef","pointer","extendDeep","Context","Provider","SectionContext","IsolationCommitButton","clearedData","structuredClone","IsolationProvider","props","children","onPathChange","onCommit","onCommitProp","onClear","onClearProp","transformOnCommit","transformOnCommitProp","commitHandleRef","data","defaultData","forceUpdate","internalDataRef","localDataRef","outerContext","path","pathSection","handlePathChange","handlePathChangeOuter","dataOuter","onPathChangeHandler","value","current","set","replace","removeSectionPath","has","get","localData","obj","mountedData","additionalArgs","_props$path","outerData","isolatedData","providerProps","_objectSpread","undefined","isolate","createElement","Consumer","dataContext","handleSubmit","CommitButton","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/Isolation/Isolation.tsx"],"sourcesContent":["import React, {\n useCallback,\n useContext,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport pointer, { JsonObject } from 'json-pointer'\nimport { extendDeep } from '../../../../shared/component-helper'\nimport { Context, 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?: (isolatedData: Data, handlerData: Data) => Data\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 | 'filterSubmitData'\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 outerContext = useContext(Context)\n const { path: pathSection } = useContext(SectionContext) || {}\n const { handlePathChange: handlePathChangeOuter, data: dataOuter } =\n outerContext || {}\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 // 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 const obj = {} as Data\n pointer.set(obj, pathSection, localData)\n localData = obj\n }\n\n internalDataRef.current = extendDeep(\n {},\n dataOuter,\n localData || {},\n localDataRef.current\n ) as Data\n }, [data, defaultData, dataOuter, pathSection])\n\n const onCommit: IsolationProps<Data>['onCommit'] = useCallback(\n async (mountedData: Data, additionalArgs) => {\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) as Data\n\n if (typeof transformOnCommitProp === 'function') {\n isolatedData = transformOnCommitProp(isolatedData, outerData)\n }\n\n // Commit the internal data to the nested context data\n handlePathChangeOuter?.(\n path,\n extendDeep({}, outerData, isolatedData)\n )\n\n return await onCommitProp?.(\n removeSectionPath(isolatedData),\n additionalArgs\n )\n },\n [\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 data: internalDataRef.current,\n defaultData: undefined,\n onPathChange: onPathChangeHandler,\n onCommit,\n onClear,\n isolate: true,\n }\n\n return (\n <Provider {...providerProps}>\n <Context.Consumer>\n {(dataContext) => {\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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"}
@@ -0,0 +1,7 @@
1
+ import { ButtonProps } from '../../../../components/button/Button';
2
+ export type Props = ButtonProps;
3
+ declare function IsolationCommitButton(props: Props): import("react/jsx-runtime").JSX.Element;
4
+ declare namespace IsolationCommitButton {
5
+ var _supportsSpacingProps: boolean;
6
+ }
7
+ export default IsolationCommitButton;
@@ -0,0 +1,43 @@
1
+ "use client";
2
+
3
+ import _extends from "@babel/runtime/helpers/esm/extends";
4
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
5
+ const _excluded = ["className", "children", "text"];
6
+ import React, { useCallback, useContext } from 'react';
7
+ import classnames from 'classnames';
8
+ import { useTranslation } from '../../hooks';
9
+ import DataContext from '../../DataContext/Context';
10
+ import Button from '../../../../components/button/Button';
11
+ import { check } from '../../../../icons';
12
+ function IsolationCommitButton(props) {
13
+ const translations = useTranslation().Isolation;
14
+ const {
15
+ className,
16
+ children,
17
+ text
18
+ } = props,
19
+ rest = _objectWithoutProperties(props, _excluded);
20
+ const content = text || children || translations.commitButtonText;
21
+ const {
22
+ handleSubmit,
23
+ props: dataContextProps
24
+ } = useContext(DataContext) || {};
25
+ const {
26
+ isolate
27
+ } = dataContextProps || {};
28
+ const onClickHandler = useCallback(() => {
29
+ if (isolate) {
30
+ handleSubmit === null || handleSubmit === void 0 ? void 0 : handleSubmit();
31
+ }
32
+ }, [handleSubmit, isolate]);
33
+ return React.createElement(Button, _extends({
34
+ variant: "secondary",
35
+ className: classnames('dnb-forms-isolate-button', className),
36
+ icon: check,
37
+ icon_position: "left",
38
+ onClick: onClickHandler
39
+ }, rest), content);
40
+ }
41
+ IsolationCommitButton._supportsSpacingProps = true;
42
+ export default IsolationCommitButton;
43
+ //# sourceMappingURL=IsolationCommitButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IsolationCommitButton.js","names":["React","useCallback","useContext","classnames","useTranslation","DataContext","Button","check","IsolationCommitButton","props","translations","Isolation","className","children","text","rest","_objectWithoutProperties","_excluded","content","commitButtonText","handleSubmit","dataContextProps","isolate","onClickHandler","createElement","_extends","variant","icon","icon_position","onClick","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/Isolation/IsolationCommitButton.tsx"],"sourcesContent":["import React, { useCallback, useContext } from 'react'\nimport classnames from 'classnames'\nimport { useTranslation } from '../../hooks'\nimport DataContext from '../../DataContext/Context'\nimport Button, { ButtonProps } from '../../../../components/button/Button'\nimport { check } from '../../../../icons'\n\nexport type Props = ButtonProps\n\nfunction IsolationCommitButton(props: Props) {\n const translations = useTranslation().Isolation\n\n const { className, children, text, ...rest } = props\n\n const content = text || children || translations.commitButtonText\n\n const { handleSubmit, props: dataContextProps } =\n useContext(DataContext) || {}\n const { isolate } = dataContextProps || {}\n\n const onClickHandler = useCallback(() => {\n if (isolate) {\n handleSubmit?.()\n }\n }, [handleSubmit, isolate])\n\n return (\n <Button\n variant=\"secondary\"\n className={classnames('dnb-forms-isolate-button', className)}\n icon={check}\n icon_position=\"left\"\n onClick={onClickHandler}\n {...rest}\n >\n {content}\n </Button>\n )\n}\n\nIsolationCommitButton._supportsSpacingProps = true\nexport default IsolationCommitButton\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,QAAQ,OAAO;AACtD,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,cAAc,QAAQ,aAAa;AAC5C,OAAOC,WAAW,MAAM,2BAA2B;AACnD,OAAOC,MAAM,MAAuB,sCAAsC;AAC1E,SAASC,KAAK,QAAQ,mBAAmB;AAIzC,SAASC,qBAAqBA,CAACC,KAAY,EAAE;EAC3C,MAAMC,YAAY,GAAGN,cAAc,CAAC,CAAC,CAACO,SAAS;EAE/C,MAAM;MAAEC,SAAS;MAAEC,QAAQ;MAAEC;IAAc,CAAC,GAAGL,KAAK;IAAdM,IAAI,GAAAC,wBAAA,CAAKP,KAAK,EAAAQ,SAAA;EAEpD,MAAMC,OAAO,GAAGJ,IAAI,IAAID,QAAQ,IAAIH,YAAY,CAACS,gBAAgB;EAEjE,MAAM;IAAEC,YAAY;IAAEX,KAAK,EAAEY;EAAiB,CAAC,GAC7CnB,UAAU,CAACG,WAAW,CAAC,IAAI,CAAC,CAAC;EAC/B,MAAM;IAAEiB;EAAQ,CAAC,GAAGD,gBAAgB,IAAI,CAAC,CAAC;EAE1C,MAAME,cAAc,GAAGtB,WAAW,CAAC,MAAM;IACvC,IAAIqB,OAAO,EAAE;MACXF,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAG,CAAC;IAClB;EACF,CAAC,EAAE,CAACA,YAAY,EAAEE,OAAO,CAAC,CAAC;EAE3B,OACEtB,KAAA,CAAAwB,aAAA,CAAClB,MAAM,EAAAmB,QAAA;IACLC,OAAO,EAAC,WAAW;IACnBd,SAAS,EAAET,UAAU,CAAC,0BAA0B,EAAES,SAAS,CAAE;IAC7De,IAAI,EAAEpB,KAAM;IACZqB,aAAa,EAAC,MAAM;IACpBC,OAAO,EAAEN;EAAe,GACpBR,IAAI,GAEPG,OACK,CAAC;AAEb;AAEAV,qBAAqB,CAACsB,qBAAqB,GAAG,IAAI;AAClD,eAAetB,qBAAqB"}
@@ -0,0 +1,3 @@
1
+ import { PropertiesTableProps } from '../../../../shared/types';
2
+ export declare const IsolationProperties: PropertiesTableProps;
3
+ export declare const IsolationEvents: PropertiesTableProps;
@@ -0,0 +1,40 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
+ import { ProviderEvents, ProviderProperties } from '../../DataContext/Provider/ProviderDocs';
5
+ export const IsolationProperties = _objectSpread(_objectSpread({
6
+ path: {
7
+ doc: 'JSON Pointer to define the object key for all the generated nested field data.',
8
+ type: 'string',
9
+ status: 'optional'
10
+ },
11
+ transformOnCommit: {
12
+ 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).',
13
+ type: 'function',
14
+ status: 'optional'
15
+ },
16
+ commitHandleRef: {
17
+ doc: 'Provide a ref to a function that can be called from any location to commit the data to the form.',
18
+ type: 'React.Ref',
19
+ status: 'optional'
20
+ }
21
+ }, ProviderProperties), {}, {
22
+ minimumAsyncBehaviorTime: undefined,
23
+ asyncSubmitTimeout: undefined,
24
+ scrollTopOnSubmit: undefined,
25
+ sessionStorageId: undefined,
26
+ filterSubmitData: undefined,
27
+ globalStatusId: undefined
28
+ });
29
+ export const IsolationEvents = _objectSpread(_objectSpread({
30
+ onCommit: {
31
+ 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 }`.',
32
+ type: 'function',
33
+ status: 'optional'
34
+ }
35
+ }, ProviderEvents), {}, {
36
+ onSubmit: undefined,
37
+ onSubmitRequest: undefined,
38
+ onSubmitComplete: undefined
39
+ });
40
+ //# sourceMappingURL=IsolationDocs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IsolationDocs.js","names":["ProviderEvents","ProviderProperties","IsolationProperties","_objectSpread","path","doc","type","status","transformOnCommit","commitHandleRef","minimumAsyncBehaviorTime","undefined","asyncSubmitTimeout","scrollTopOnSubmit","sessionStorageId","filterSubmitData","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 filterSubmitData: 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,gBAAgB,EAAEJ,SAAS;EAC3BK,cAAc,EAAEL;AAAS,EAC1B;AAED,OAAO,MAAMM,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,EAAER,SAAS;EACnBS,eAAe,EAAET,SAAS;EAC1BU,gBAAgB,EAAEV;AAAS,EAC5B"}
@@ -0,0 +1,2 @@
1
+ export { default } from './Isolation';
2
+ export * from './Isolation';
@@ -0,0 +1,3 @@
1
+ export { default } from './Isolation';
2
+ export * from './Isolation';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["default"],"sources":["../../../../../../src/extensions/forms/Form/Isolation/index.ts"],"sourcesContent":["export { default } from './Isolation'\nexport * from './Isolation'\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,aAAa;AACrC,cAAc,aAAa"}
@@ -13,7 +13,7 @@ import SectionContainerProvider from './containers/SectionContainerProvider';
13
13
  import ViewContainer from './ViewContainer';
14
14
  import EditContainer from './EditContainer';
15
15
  function SectionComponent(props) {
16
- var _nestedProps$overwrit;
16
+ var _path$startsWith, _nestedProps$overwrit;
17
17
  const {
18
18
  path,
19
19
  overwriteProps,
@@ -26,7 +26,7 @@ function SectionComponent(props) {
26
26
  errorPrioritization = ['contextSchema'],
27
27
  children
28
28
  } = props;
29
- if (path && !path.startsWith('/')) {
29
+ if (path && !((_path$startsWith = path.startsWith) !== null && _path$startsWith !== void 0 && _path$startsWith.call(path, '/'))) {
30
30
  throw new Error(`path="${path}" must start with a slash`);
31
31
  }
32
32
  const {
@@ -1 +1 @@
1
- {"version":3,"file":"Section.js","names":["React","useCallback","useContext","useMemo","SectionContext","DataContext","Provider","FieldPropsProvider","SectionContainerProvider","ViewContainer","EditContainer","SectionComponent","props","_nestedProps$overwrit","path","overwriteProps","translations","required","data","defaultData","containerMode","onChange","errorPrioritization","children","startsWith","Error","hasContext","addOnChangeHandler","nestedPath","nestedProps","handleChange","_len","arguments","length","args","Array","_key","identifier","fieldProps","undefined","createElement","value","_extends","_objectSpread","substring","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/Section/Section.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo } from 'react'\nimport SectionContext, { SectionContextState } from './SectionContext'\nimport DataContext from '../../DataContext/Context'\nimport Provider from '../../DataContext/Provider/Provider'\nimport FieldPropsProvider from '../FieldProps'\nimport SectionContainerProvider from './containers/SectionContainerProvider'\nimport ViewContainer from './ViewContainer'\nimport EditContainer from './EditContainer'\n\nimport type { Props as DataContextProps } from '../../DataContext/Provider'\nimport type { ContainerMode } from './containers/SectionContainer'\nimport type {\n FieldBlockProps,\n Path,\n FieldProps,\n OnChange,\n} from '../../types'\n\nexport type OverwritePropsDefaults = {\n [key: Path]: (FieldProps & FieldBlockProps) | OverwritePropsDefaults\n}\nexport type SectionProps<overwriteProps = OverwritePropsDefaults> = {\n /**\n * Path to the section.\n * When defined, fields inside the section will get this path as a prefix of their own path.\n */\n path?: Path\n\n /**\n * Overwrite field props for the section.\n */\n overwriteProps?: overwriteProps | OverwritePropsDefaults\n\n /**\n * Makes all fields inside it required.\n */\n required?: boolean\n\n /**\n * Defines the container mode. Can be `view` or `edit`.\n * Defaults to `view`.\n */\n containerMode?: ContainerMode\n\n /**\n * Only for internal use and undocumented for now.\n * Prioritize error techniques for the section.\n * Can be `fieldSchema`, `sectionSchema` or `contextSchema.\n */\n errorPrioritization?: SectionContextState['errorPrioritization']\n} & Pick<\n DataContextProps<unknown>,\n 'data' | 'defaultData' | 'onChange' | 'translations'\n>\n\nexport type LocalProps = SectionProps & {\n children: React.ReactNode\n}\n\nfunction SectionComponent(props: LocalProps) {\n const {\n path,\n overwriteProps,\n translations,\n required,\n data,\n defaultData,\n containerMode = 'view',\n onChange,\n errorPrioritization = ['contextSchema'],\n children,\n } = props\n\n if (path && !path.startsWith('/')) {\n throw new Error(`path=\"${path}\" must start with a slash`)\n }\n\n const { hasContext, addOnChangeHandler } = useContext(DataContext)\n\n const { path: nestedPath, props: nestedProps } =\n useContext(SectionContext) || {}\n\n const handleChange = useCallback<OnChange<unknown>>(\n (...args) => onChange?.(...args),\n [onChange]\n )\n addOnChangeHandler?.(handleChange)\n\n const identifier = useMemo(() => {\n return `${nestedPath && nestedPath !== '/' ? nestedPath : ''}${\n path || ''\n }`\n }, [path, nestedPath])\n const fieldProps = required ? { required: true } : undefined\n\n if (!hasContext) {\n return (\n <Provider data={data} defaultData={defaultData}>\n <SectionComponent {...props} />\n </Provider>\n )\n }\n\n return (\n <SectionContext.Provider\n value={{\n path: identifier,\n errorPrioritization,\n props,\n }}\n >\n <SectionContainerProvider containerMode={containerMode}>\n <FieldPropsProvider\n overwriteProps={{\n ...overwriteProps,\n ...(nestedProps?.overwriteProps?.[\n path.substring(1)\n ] as OverwritePropsDefaults),\n }}\n translations={translations}\n {...fieldProps}\n >\n {children}\n </FieldPropsProvider>\n </SectionContainerProvider>\n </SectionContext.Provider>\n )\n}\n\nSectionComponent.ViewContainer = ViewContainer\nSectionComponent.EditContainer = EditContainer\n\nSectionComponent._supportsSpacingProps = undefined\nexport default SectionComponent\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAC/D,OAAOC,cAAc,MAA+B,kBAAkB;AACtE,OAAOC,WAAW,MAAM,2BAA2B;AACnD,OAAOC,QAAQ,MAAM,qCAAqC;AAC1D,OAAOC,kBAAkB,MAAM,eAAe;AAC9C,OAAOC,wBAAwB,MAAM,uCAAuC;AAC5E,OAAOC,aAAa,MAAM,iBAAiB;AAC3C,OAAOC,aAAa,MAAM,iBAAiB;AAoD3C,SAASC,gBAAgBA,CAACC,KAAiB,EAAE;EAAA,IAAAC,qBAAA;EAC3C,MAAM;IACJC,IAAI;IACJC,cAAc;IACdC,YAAY;IACZC,QAAQ;IACRC,IAAI;IACJC,WAAW;IACXC,aAAa,GAAG,MAAM;IACtBC,QAAQ;IACRC,mBAAmB,GAAG,CAAC,eAAe,CAAC;IACvCC;EACF,CAAC,GAAGX,KAAK;EAET,IAAIE,IAAI,IAAI,CAACA,IAAI,CAACU,UAAU,CAAC,GAAG,CAAC,EAAE;IACjC,MAAM,IAAIC,KAAK,CAAE,SAAQX,IAAK,2BAA0B,CAAC;EAC3D;EAEA,MAAM;IAAEY,UAAU;IAAEC;EAAmB,CAAC,GAAGzB,UAAU,CAACG,WAAW,CAAC;EAElE,MAAM;IAAES,IAAI,EAAEc,UAAU;IAAEhB,KAAK,EAAEiB;EAAY,CAAC,GAC5C3B,UAAU,CAACE,cAAc,CAAC,IAAI,CAAC,CAAC;EAElC,MAAM0B,YAAY,GAAG7B,WAAW,CAC9B;IAAA,SAAA8B,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAIC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;MAAJF,IAAI,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;IAAA;IAAA,OAAKf,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAG,GAAGa,IAAI,CAAC;EAAA,GAChC,CAACb,QAAQ,CACX,CAAC;EACDM,kBAAkB,aAAlBA,kBAAkB,uBAAlBA,kBAAkB,CAAGG,YAAY,CAAC;EAElC,MAAMO,UAAU,GAAGlC,OAAO,CAAC,MAAM;IAC/B,OAAQ,GAAEyB,UAAU,IAAIA,UAAU,KAAK,GAAG,GAAGA,UAAU,GAAG,EAAG,GAC3Dd,IAAI,IAAI,EACT,EAAC;EACJ,CAAC,EAAE,CAACA,IAAI,EAAEc,UAAU,CAAC,CAAC;EACtB,MAAMU,UAAU,GAAGrB,QAAQ,GAAG;IAAEA,QAAQ,EAAE;EAAK,CAAC,GAAGsB,SAAS;EAE5D,IAAI,CAACb,UAAU,EAAE;IACf,OACE1B,KAAA,CAAAwC,aAAA,CAAClC,QAAQ;MAACY,IAAI,EAAEA,IAAK;MAACC,WAAW,EAAEA;IAAY,GAC7CnB,KAAA,CAAAwC,aAAA,CAAC7B,gBAAgB,EAAKC,KAAQ,CACtB,CAAC;EAEf;EAEA,OACEZ,KAAA,CAAAwC,aAAA,CAACpC,cAAc,CAACE,QAAQ;IACtBmC,KAAK,EAAE;MACL3B,IAAI,EAAEuB,UAAU;MAChBf,mBAAmB;MACnBV;IACF;EAAE,GAEFZ,KAAA,CAAAwC,aAAA,CAAChC,wBAAwB;IAACY,aAAa,EAAEA;EAAc,GACrDpB,KAAA,CAAAwC,aAAA,CAACjC,kBAAkB,EAAAmC,QAAA;IACjB3B,cAAc,EAAA4B,aAAA,CAAAA,aAAA,KACT5B,cAAc,GACbc,WAAW,aAAXA,WAAW,wBAAAhB,qBAAA,GAAXgB,WAAW,CAAEd,cAAc,cAAAF,qBAAA,uBAA3BA,qBAAA,CACFC,IAAI,CAAC8B,SAAS,CAAC,CAAC,CAAC,CAClB,CACD;IACF5B,YAAY,EAAEA;EAAa,GACvBsB,UAAU,GAEbf,QACiB,CACI,CACH,CAAC;AAE9B;AAEAZ,gBAAgB,CAACF,aAAa,GAAGA,aAAa;AAC9CE,gBAAgB,CAACD,aAAa,GAAGA,aAAa;AAE9CC,gBAAgB,CAACkC,qBAAqB,GAAGN,SAAS;AAClD,eAAe5B,gBAAgB"}
1
+ {"version":3,"file":"Section.js","names":["React","useCallback","useContext","useMemo","SectionContext","DataContext","Provider","FieldPropsProvider","SectionContainerProvider","ViewContainer","EditContainer","SectionComponent","props","_path$startsWith","_nestedProps$overwrit","path","overwriteProps","translations","required","data","defaultData","containerMode","onChange","errorPrioritization","children","startsWith","call","Error","hasContext","addOnChangeHandler","nestedPath","nestedProps","handleChange","_len","arguments","length","args","Array","_key","identifier","fieldProps","undefined","createElement","value","_extends","_objectSpread","substring","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/Section/Section.tsx"],"sourcesContent":["import React, { useCallback, useContext, useMemo } from 'react'\nimport SectionContext, { SectionContextState } from './SectionContext'\nimport DataContext from '../../DataContext/Context'\nimport Provider from '../../DataContext/Provider/Provider'\nimport FieldPropsProvider from '../FieldProps'\nimport SectionContainerProvider from './containers/SectionContainerProvider'\nimport ViewContainer from './ViewContainer'\nimport EditContainer from './EditContainer'\n\nimport type { Props as DataContextProps } from '../../DataContext/Provider'\nimport type { ContainerMode } from './containers/SectionContainer'\nimport type {\n FieldBlockProps,\n Path,\n FieldProps,\n OnChange,\n} from '../../types'\n\nexport type OverwritePropsDefaults = {\n [key: Path]: (FieldProps & FieldBlockProps) | OverwritePropsDefaults\n}\nexport type SectionProps<overwriteProps = OverwritePropsDefaults> = {\n /**\n * Path to the section.\n * When defined, fields inside the section will get this path as a prefix of their own path.\n */\n path?: Path\n\n /**\n * Overwrite field props for the section.\n */\n overwriteProps?: overwriteProps | OverwritePropsDefaults\n\n /**\n * Makes all fields inside it required.\n */\n required?: boolean\n\n /**\n * Defines the container mode. Can be `view` or `edit`.\n * Defaults to `view`.\n */\n containerMode?: ContainerMode\n\n /**\n * Only for internal use and undocumented for now.\n * Prioritize error techniques for the section.\n * Can be `fieldSchema`, `sectionSchema` or `contextSchema.\n */\n errorPrioritization?: SectionContextState['errorPrioritization']\n} & Pick<\n DataContextProps<unknown>,\n 'data' | 'defaultData' | 'onChange' | 'translations'\n>\n\nexport type LocalProps = SectionProps & {\n children: React.ReactNode\n}\n\nfunction SectionComponent(props: LocalProps) {\n const {\n path,\n overwriteProps,\n translations,\n required,\n data,\n defaultData,\n containerMode = 'view',\n onChange,\n errorPrioritization = ['contextSchema'],\n children,\n } = props\n\n if (path && !path.startsWith?.('/')) {\n throw new Error(`path=\"${path}\" must start with a slash`)\n }\n\n const { hasContext, addOnChangeHandler } = useContext(DataContext)\n\n const { path: nestedPath, props: nestedProps } =\n useContext(SectionContext) || {}\n\n const handleChange = useCallback<OnChange<unknown>>(\n (...args) => onChange?.(...args),\n [onChange]\n )\n addOnChangeHandler?.(handleChange)\n\n const identifier = useMemo(() => {\n return `${nestedPath && nestedPath !== '/' ? nestedPath : ''}${\n path || ''\n }`\n }, [path, nestedPath])\n const fieldProps = required ? { required: true } : undefined\n\n if (!hasContext) {\n return (\n <Provider data={data} defaultData={defaultData}>\n <SectionComponent {...props} />\n </Provider>\n )\n }\n\n return (\n <SectionContext.Provider\n value={{\n path: identifier,\n errorPrioritization,\n props,\n }}\n >\n <SectionContainerProvider containerMode={containerMode}>\n <FieldPropsProvider\n overwriteProps={{\n ...overwriteProps,\n ...(nestedProps?.overwriteProps?.[\n path.substring(1)\n ] as OverwritePropsDefaults),\n }}\n translations={translations}\n {...fieldProps}\n >\n {children}\n </FieldPropsProvider>\n </SectionContainerProvider>\n </SectionContext.Provider>\n )\n}\n\nSectionComponent.ViewContainer = ViewContainer\nSectionComponent.EditContainer = EditContainer\n\nSectionComponent._supportsSpacingProps = undefined\nexport default SectionComponent\n"],"mappings":"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"}
@@ -24,8 +24,12 @@ function SubmitButton(props) {
24
24
  const {
25
25
  formState,
26
26
  handleSubmit,
27
- isInsideFormElement
27
+ isInsideFormElement,
28
+ props: dataContextProps
28
29
  } = useContext(DataContext) || {};
30
+ const {
31
+ isolate
32
+ } = dataContextProps || {};
29
33
  const onClickHandler = useCallback(() => {
30
34
  if (!isInsideFormElement) {
31
35
  handleSubmit === null || handleSubmit === void 0 ? void 0 : handleSubmit();
@@ -34,7 +38,7 @@ function SubmitButton(props) {
34
38
  return React.createElement(Button, _extends({
35
39
  className: classnames('dnb-forms-submit-button', className),
36
40
  onClick: onClickHandler,
37
- type: "submit",
41
+ type: isolate ? 'button' : 'submit',
38
42
  icon: variant === 'send' ? send : null
39
43
  }, rest), content, React.createElement(SubmitIndicator, {
40
44
  state: showIndicator ? 'pending' : formState
@@ -1 +1 @@
1
- {"version":3,"file":"SubmitButton.js","names":["React","useCallback","useContext","classnames","DataContext","Button","SubmitIndicator","useTranslation","send","SubmitButton","props","translations","variant","className","showIndicator","children","text","rest","_objectWithoutProperties","_excluded","content","sendText","formState","handleSubmit","isInsideFormElement","onClickHandler","createElement","_extends","onClick","type","icon","state","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/SubmitButton/SubmitButton.tsx"],"sourcesContent":["import React, { useCallback, useContext } from 'react'\nimport classnames from 'classnames'\nimport type { ComponentProps } from '../../types'\nimport DataContext from '../../DataContext/Context'\nimport Button, { ButtonProps } from '../../../../components/button/Button'\nimport SubmitIndicator from '../SubmitIndicator'\nimport useTranslation from '../../hooks/useTranslation'\nimport { send } from '../../../../icons'\n\nexport type Props = {\n /**\n * Show the submit indicator\n */\n showIndicator?: boolean\n} & ComponentProps &\n Omit<ButtonProps, 'variant'> &\n Partial<React.HTMLAttributes<HTMLButtonElement | HTMLAnchorElement>> & {\n variant?: 'send'\n }\n\nfunction SubmitButton(props: Props) {\n const translations = useTranslation().SubmitButton\n\n const { variant, className, showIndicator, children, text, ...rest } =\n props\n\n const content =\n text ||\n children ||\n (variant === 'send' ? translations.sendText : translations.text)\n\n const { formState, handleSubmit, isInsideFormElement } =\n useContext(DataContext) || {}\n\n const onClickHandler = useCallback(() => {\n if (!isInsideFormElement) {\n handleSubmit?.()\n }\n }, [isInsideFormElement, handleSubmit])\n\n return (\n <Button\n className={classnames('dnb-forms-submit-button', className)}\n onClick={onClickHandler}\n type=\"submit\"\n icon={variant === 'send' ? send : null}\n {...rest}\n >\n {content}\n\n <SubmitIndicator\n state={\n showIndicator ? 'pending' : formState // will be enabled in a follow-up PR\n }\n />\n </Button>\n )\n}\n\nSubmitButton._supportsSpacingProps = true\nexport default SubmitButton\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,QAAQ,OAAO;AACtD,OAAOC,UAAU,MAAM,YAAY;AAEnC,OAAOC,WAAW,MAAM,2BAA2B;AACnD,OAAOC,MAAM,MAAuB,sCAAsC;AAC1E,OAAOC,eAAe,MAAM,oBAAoB;AAChD,OAAOC,cAAc,MAAM,4BAA4B;AACvD,SAASC,IAAI,QAAQ,mBAAmB;AAaxC,SAASC,YAAYA,CAACC,KAAY,EAAE;EAClC,MAAMC,YAAY,GAAGJ,cAAc,CAAC,CAAC,CAACE,YAAY;EAElD,MAAM;MAAEG,OAAO;MAAEC,SAAS;MAAEC,aAAa;MAAEC,QAAQ;MAAEC;IAAc,CAAC,GAClEN,KAAK;IADuDO,IAAI,GAAAC,wBAAA,CAChER,KAAK,EAAAS,SAAA;EAEP,MAAMC,OAAO,GACXJ,IAAI,IACJD,QAAQ,KACPH,OAAO,KAAK,MAAM,GAAGD,YAAY,CAACU,QAAQ,GAAGV,YAAY,CAACK,IAAI,CAAC;EAElE,MAAM;IAAEM,SAAS;IAAEC,YAAY;IAAEC;EAAoB,CAAC,GACpDtB,UAAU,CAACE,WAAW,CAAC,IAAI,CAAC,CAAC;EAE/B,MAAMqB,cAAc,GAAGxB,WAAW,CAAC,MAAM;IACvC,IAAI,CAACuB,mBAAmB,EAAE;MACxBD,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAG,CAAC;IAClB;EACF,CAAC,EAAE,CAACC,mBAAmB,EAAED,YAAY,CAAC,CAAC;EAEvC,OACEvB,KAAA,CAAA0B,aAAA,CAACrB,MAAM,EAAAsB,QAAA;IACLd,SAAS,EAAEV,UAAU,CAAC,yBAAyB,EAAEU,SAAS,CAAE;IAC5De,OAAO,EAAEH,cAAe;IACxBI,IAAI,EAAC,QAAQ;IACbC,IAAI,EAAElB,OAAO,KAAK,MAAM,GAAGJ,IAAI,GAAG;EAAK,GACnCS,IAAI,GAEPG,OAAO,EAERpB,KAAA,CAAA0B,aAAA,CAACpB,eAAe;IACdyB,KAAK,EACHjB,aAAa,GAAG,SAAS,GAAGQ;EAC7B,CACF,CACK,CAAC;AAEb;AAEAb,YAAY,CAACuB,qBAAqB,GAAG,IAAI;AACzC,eAAevB,YAAY"}
1
+ {"version":3,"file":"SubmitButton.js","names":["React","useCallback","useContext","classnames","DataContext","Button","SubmitIndicator","useTranslation","send","SubmitButton","props","translations","variant","className","showIndicator","children","text","rest","_objectWithoutProperties","_excluded","content","sendText","formState","handleSubmit","isInsideFormElement","dataContextProps","isolate","onClickHandler","createElement","_extends","onClick","type","icon","state","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/SubmitButton/SubmitButton.tsx"],"sourcesContent":["import React, { useCallback, useContext } from 'react'\nimport classnames from 'classnames'\nimport type { ComponentProps } from '../../types'\nimport DataContext from '../../DataContext/Context'\nimport Button, { ButtonProps } from '../../../../components/button/Button'\nimport SubmitIndicator from '../SubmitIndicator'\nimport useTranslation from '../../hooks/useTranslation'\nimport { send } from '../../../../icons'\n\nexport type Props = {\n /**\n * Show the submit indicator\n */\n showIndicator?: boolean\n} & ComponentProps &\n Omit<ButtonProps, 'variant'> &\n Partial<React.HTMLAttributes<HTMLButtonElement | HTMLAnchorElement>> & {\n variant?: 'send'\n }\n\nfunction SubmitButton(props: Props) {\n const translations = useTranslation().SubmitButton\n\n const { variant, className, showIndicator, children, text, ...rest } =\n props\n\n const content =\n text ||\n children ||\n (variant === 'send' ? translations.sendText : translations.text)\n\n const {\n formState,\n handleSubmit,\n isInsideFormElement,\n props: dataContextProps,\n } = useContext(DataContext) || {}\n const { isolate } = dataContextProps || {}\n\n const onClickHandler = useCallback(() => {\n if (!isInsideFormElement) {\n handleSubmit?.()\n }\n }, [isInsideFormElement, handleSubmit])\n\n return (\n <Button\n className={classnames('dnb-forms-submit-button', className)}\n onClick={onClickHandler}\n type={isolate ? 'button' : 'submit'}\n icon={variant === 'send' ? send : null}\n {...rest}\n >\n {content}\n\n <SubmitIndicator\n state={\n showIndicator ? 'pending' : formState // will be enabled in a follow-up PR\n }\n />\n </Button>\n )\n}\n\nSubmitButton._supportsSpacingProps = true\nexport default SubmitButton\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,QAAQ,OAAO;AACtD,OAAOC,UAAU,MAAM,YAAY;AAEnC,OAAOC,WAAW,MAAM,2BAA2B;AACnD,OAAOC,MAAM,MAAuB,sCAAsC;AAC1E,OAAOC,eAAe,MAAM,oBAAoB;AAChD,OAAOC,cAAc,MAAM,4BAA4B;AACvD,SAASC,IAAI,QAAQ,mBAAmB;AAaxC,SAASC,YAAYA,CAACC,KAAY,EAAE;EAClC,MAAMC,YAAY,GAAGJ,cAAc,CAAC,CAAC,CAACE,YAAY;EAElD,MAAM;MAAEG,OAAO;MAAEC,SAAS;MAAEC,aAAa;MAAEC,QAAQ;MAAEC;IAAc,CAAC,GAClEN,KAAK;IADuDO,IAAI,GAAAC,wBAAA,CAChER,KAAK,EAAAS,SAAA;EAEP,MAAMC,OAAO,GACXJ,IAAI,IACJD,QAAQ,KACPH,OAAO,KAAK,MAAM,GAAGD,YAAY,CAACU,QAAQ,GAAGV,YAAY,CAACK,IAAI,CAAC;EAElE,MAAM;IACJM,SAAS;IACTC,YAAY;IACZC,mBAAmB;IACnBd,KAAK,EAAEe;EACT,CAAC,GAAGvB,UAAU,CAACE,WAAW,CAAC,IAAI,CAAC,CAAC;EACjC,MAAM;IAAEsB;EAAQ,CAAC,GAAGD,gBAAgB,IAAI,CAAC,CAAC;EAE1C,MAAME,cAAc,GAAG1B,WAAW,CAAC,MAAM;IACvC,IAAI,CAACuB,mBAAmB,EAAE;MACxBD,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAG,CAAC;IAClB;EACF,CAAC,EAAE,CAACC,mBAAmB,EAAED,YAAY,CAAC,CAAC;EAEvC,OACEvB,KAAA,CAAA4B,aAAA,CAACvB,MAAM,EAAAwB,QAAA;IACLhB,SAAS,EAAEV,UAAU,CAAC,yBAAyB,EAAEU,SAAS,CAAE;IAC5DiB,OAAO,EAAEH,cAAe;IACxBI,IAAI,EAAEL,OAAO,GAAG,QAAQ,GAAG,QAAS;IACpCM,IAAI,EAAEpB,OAAO,KAAK,MAAM,GAAGJ,IAAI,GAAG;EAAK,GACnCS,IAAI,GAEPG,OAAO,EAERpB,KAAA,CAAA4B,aAAA,CAACtB,eAAe;IACd2B,KAAK,EACHnB,aAAa,GAAG,SAAS,GAAGQ;EAC7B,CACF,CACK,CAAC;AAEb;AAEAb,YAAY,CAACyB,qBAAqB,GAAG,IAAI;AACzC,eAAezB,YAAY"}
@@ -1,30 +1,46 @@
1
1
  import React, { AriaAttributes } from 'react';
2
2
  import { HeightAnimationProps } from '../../../../components/HeightAnimation';
3
- import type { UseFieldProps } from '../../types';
3
+ import type { Path, UseFieldProps } from '../../types';
4
4
  import type { DataAttributes } from '../../hooks/useFieldProps';
5
5
  import { FilterData } from '../../DataContext';
6
6
  export type VisibleWhen = {
7
- path: string;
7
+ path: Path;
8
8
  hasValue: unknown;
9
9
  } | {
10
- path: string;
10
+ itemPath: Path;
11
+ hasValue: unknown;
12
+ }
13
+ /**
14
+ * @deprecated Will be remove din v11!
15
+ */
16
+ | {
17
+ path: Path;
18
+ /** @deprecated Use `hasValue` instead */
19
+ withValue: (value: unknown) => boolean;
20
+ }
21
+ /**
22
+ * @deprecated Will be remove din v11!
23
+ */
24
+ | {
25
+ itemPath: Path;
26
+ /** @deprecated Use `hasValue` instead */
11
27
  withValue: (value: unknown) => boolean;
12
28
  };
13
29
  export type Props = {
14
30
  visible?: boolean;
15
31
  /** Given data context path must be defined to show children */
16
- pathDefined?: string;
32
+ pathDefined?: Path;
17
33
  /** Given data context path must be undefined to show children */
18
- pathUndefined?: string;
34
+ pathUndefined?: Path;
19
35
  /** Given data context path must be truthy to show children */
20
- pathTruthy?: string;
36
+ pathTruthy?: Path;
21
37
  /** Given data context path must be falsy to show children */
22
- pathFalsy?: string;
38
+ pathFalsy?: Path;
23
39
  /** Given data context path must be true to show children */
24
- pathTrue?: string;
40
+ pathTrue?: Path;
25
41
  /** Given data context path must be false to show children */
26
- pathFalse?: string;
27
- /** Provide a `path` and a `hasValue` property with the excepted value in order to show children. You can alternatively provide a `withValue` function that returns a boolean. The first parameter is the value of the path. */
42
+ pathFalse?: Path;
43
+ /** 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. */
28
44
  visibleWhen?: VisibleWhen;
29
45
  /** Same as `visibleWhen`, but with inverted logic. */
30
46
  visibleWhenNot?: VisibleWhen;
@@ -1 +1 @@
1
- {"version":3,"file":"Visibility.js","names":["React","warn","useMountEffect","HeightAnimation","FieldProps","useVisibility","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","props","createElement","_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 FieldProps from '../FieldProps'\nimport useVisibility from './useVisibility'\n\nimport type { UseFieldProps } from '../../types'\nimport type { DataAttributes } from '../../hooks/useFieldProps'\nimport { FilterData } from '../../DataContext'\n\nexport type VisibleWhen =\n | {\n path: string\n hasValue: unknown\n }\n | {\n path: string\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?: string\n /** Given data context path must be undefined to show children */\n pathUndefined?: string\n /** Given data context path must be truthy to show children */\n pathTruthy?: string\n /** Given data context path must be falsy to show children */\n pathFalsy?: string\n /** Given data context path must be true to show children */\n pathTrue?: string\n /** Given data context path must be false to show children */\n pathFalse?: string\n /** Provide a `path` and a `hasValue` property with the excepted value in order to show children. You can alternatively provide a `withValue` function that returns a boolean. 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\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 <FieldProps {...props}>{children}</FieldProps>\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 <FieldProps {...props}>{children}</FieldProps>\n </span>\n )\n }\n\n return <>{open ? children : 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,UAAU,MAAM,eAAe;AACtC,OAAOC,aAAa,MAAM,iBAAiB;AAuD3C,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;EAEP1B,cAAc,CAAC,MAAM;IACnB,IAAIsB,oBAAoB,IAAI,CAACF,SAAS,EAAE;MACtCrB,IAAI,CAAC,+DAA+D,CAAC;IACvE;EACF,CAAC,CAAC;EAEF,MAAM;IAAE4B;EAAM,CAAC,GAAGxB,aAAa,CAAC;IAC9BG,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;EAEpB,IAAIR,OAAO,EAAE;IACX,MAAMU,KAAK,GAAG,CAACD,IAAI,GAAGN,oBAAoB,GAAG,IAAI;IAEjD,OACExB,KAAA,CAAAgC,aAAA,CAAC7B,eAAe,EAAA8B,QAAA;MACdH,IAAI,EAAEA,IAAK;MACXR,SAAS,EAAEY,OAAO,CAACZ,SAAS,CAAE;MAC9Ba,SAAS,EAAC,sBAAsB;MAChCZ,gBAAgB,EAAEA;IAAiB,GAC/BG,IAAI,GAER1B,KAAA,CAAAgC,aAAA,CAAC5B,UAAU,EAAK2B,KAAK,EAAGN,QAAqB,CAC9B,CAAC;EAEtB;EAEA,IAAIH,SAAS,EAAE;IACb,MAAMS,KAAK,GAAG,CAACD,IAAI,GAAGN,oBAAoB,GAAG,IAAI;IACjD,OACExB,KAAA,CAAAgC,aAAA;MAAMG,SAAS,EAAC,sBAAsB;MAACC,MAAM,EAAE,CAACN;IAAK,GACnD9B,KAAA,CAAAgC,aAAA,CAAC5B,UAAU,EAAK2B,KAAK,EAAGN,QAAqB,CACzC,CAAC;EAEX;EAEA,OAAOzB,KAAA,CAAAgC,aAAA,CAAAhC,KAAA,CAAAqC,QAAA,QAAGP,IAAI,GAAGL,QAAQ,GAAG,IAAO,CAAC;AACtC;AAEAnB,UAAU,CAACgC,qBAAqB,GAAG,UAAU;AAC7C,eAAehC,UAAU"}
1
+ {"version":3,"file":"Visibility.js","names":["React","warn","useMountEffect","HeightAnimation","FieldProps","useVisibility","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","props","createElement","_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 FieldProps from '../FieldProps'\nimport useVisibility from './useVisibility'\n\nimport type { Path, UseFieldProps } from '../../types'\nimport type { DataAttributes } from '../../hooks/useFieldProps'\nimport { FilterData } from '../../DataContext'\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 remove din v11!\n */\n | {\n path: Path\n /** @deprecated Use `hasValue` instead */\n withValue: (value: unknown) => boolean\n }\n /**\n * @deprecated Will be remove din 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\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 <FieldProps {...props}>{children}</FieldProps>\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 <FieldProps {...props}>{children}</FieldProps>\n </span>\n )\n }\n\n return <>{open ? children : 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,UAAU,MAAM,eAAe;AACtC,OAAOC,aAAa,MAAM,iBAAiB;AAuE3C,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;EAEP1B,cAAc,CAAC,MAAM;IACnB,IAAIsB,oBAAoB,IAAI,CAACF,SAAS,EAAE;MACtCrB,IAAI,CAAC,+DAA+D,CAAC;IACvE;EACF,CAAC,CAAC;EAEF,MAAM;IAAE4B;EAAM,CAAC,GAAGxB,aAAa,CAAC;IAC9BG,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;EAEpB,IAAIR,OAAO,EAAE;IACX,MAAMU,KAAK,GAAG,CAACD,IAAI,GAAGN,oBAAoB,GAAG,IAAI;IAEjD,OACExB,KAAA,CAAAgC,aAAA,CAAC7B,eAAe,EAAA8B,QAAA;MACdH,IAAI,EAAEA,IAAK;MACXR,SAAS,EAAEY,OAAO,CAACZ,SAAS,CAAE;MAC9Ba,SAAS,EAAC,sBAAsB;MAChCZ,gBAAgB,EAAEA;IAAiB,GAC/BG,IAAI,GAER1B,KAAA,CAAAgC,aAAA,CAAC5B,UAAU,EAAK2B,KAAK,EAAGN,QAAqB,CAC9B,CAAC;EAEtB;EAEA,IAAIH,SAAS,EAAE;IACb,MAAMS,KAAK,GAAG,CAACD,IAAI,GAAGN,oBAAoB,GAAG,IAAI;IACjD,OACExB,KAAA,CAAAgC,aAAA;MAAMG,SAAS,EAAC,sBAAsB;MAACC,MAAM,EAAE,CAACN;IAAK,GACnD9B,KAAA,CAAAgC,aAAA,CAAC5B,UAAU,EAAK2B,KAAK,EAAGN,QAAqB,CACzC,CAAC;EAEX;EAEA,OAAOzB,KAAA,CAAAgC,aAAA,CAAAhC,KAAA,CAAAqC,QAAA,QAAGP,IAAI,GAAGL,QAAQ,GAAG,IAAO,CAAC;AACtC;AAEAnB,UAAU,CAACgC,qBAAqB,GAAG,UAAU;AAC7C,eAAehC,UAAU"}
@@ -30,7 +30,7 @@ export const VisibilityProperties = {
30
30
  status: 'optional'
31
31
  },
32
32
  visibleWhen: {
33
- doc: 'Provide a `path` and a `hasValue` property with the excepted value in order to show children. You can alternatively provide a `withValue` function that returns a boolean. The first parameter is the value of the path.',
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
34
  type: 'object',
35
35
  status: 'optional'
36
36
  },
@@ -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` and a `hasValue` property with the excepted value in order to show children. You can alternatively provide a `withValue` function that returns a boolean. 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 by boolean value.',\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,0NAA0N;IAC/NC,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,+CAA+C;IACpDC,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","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 by boolean value.',\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,+CAA+C;IACpDC,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"}