@dnb/eufemia 10.43.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 (432) hide show
  1. package/CHANGELOG.md +32 -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 +1 -1
  6. package/cjs/components/button/Button.js +6 -5
  7. package/cjs/components/button/Button.js.map +1 -1
  8. package/cjs/components/input-masked/InputMaskedHooks.js +4 -0
  9. package/cjs/components/input-masked/InputMaskedHooks.js.map +1 -1
  10. package/cjs/components/space/Space.d.ts +1 -1
  11. package/cjs/components/space/Space.js.map +1 -1
  12. package/cjs/components/table/table-accordion/TableAccordionHead.js.map +1 -1
  13. package/cjs/components/table/table-navigation/TableNavigationHead.js +1 -1
  14. package/cjs/components/table/table-navigation/TableNavigationHead.js.map +1 -1
  15. package/cjs/components/upload/UploadDocs.js +1 -1
  16. package/cjs/components/upload/UploadDocs.js.map +1 -1
  17. package/cjs/components/upload/UploadInfo.js +1 -1
  18. package/cjs/components/upload/UploadInfo.js.map +1 -1
  19. package/cjs/components/upload/UploadVerify.js +4 -1
  20. package/cjs/components/upload/UploadVerify.js.map +1 -1
  21. package/cjs/components/upload/types.d.ts +2 -2
  22. package/cjs/components/upload/types.js.map +1 -1
  23. package/cjs/extensions/forms/DataContext/Context.d.ts +1 -0
  24. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  25. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +5 -12
  26. package/cjs/extensions/forms/DataContext/Provider/Provider.js +43 -18
  27. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  28. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +6 -1
  29. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  30. package/cjs/extensions/forms/Field/Currency/CurrencyDocs.d.ts +2 -0
  31. package/cjs/extensions/forms/Field/Currency/CurrencyDocs.js +31 -0
  32. package/cjs/extensions/forms/Field/Currency/CurrencyDocs.js.map +1 -0
  33. package/cjs/extensions/forms/Field/Expiry/Expiry.d.ts +1 -1
  34. package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  35. package/cjs/extensions/forms/Field/FieldDocs.d.ts +7 -0
  36. package/cjs/extensions/forms/Field/FieldDocs.js +20 -1
  37. package/cjs/extensions/forms/Field/FieldDocs.js.map +1 -1
  38. package/cjs/extensions/forms/Field/Number/Number.js +7 -12
  39. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  40. package/cjs/extensions/forms/Field/Option/Option.d.ts +2 -4
  41. package/cjs/extensions/forms/Field/Option/Option.js +0 -21
  42. package/cjs/extensions/forms/Field/Option/Option.js.map +1 -1
  43. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +5 -2
  44. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +33 -15
  45. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  46. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +3 -0
  47. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +28 -0
  48. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -0
  49. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
  50. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +32 -16
  51. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  52. package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.d.ts +1 -0
  53. package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +16 -0
  54. package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -0
  55. package/cjs/extensions/forms/Field/Selection/Selection.d.ts +40 -16
  56. package/cjs/extensions/forms/Field/Selection/Selection.js +71 -16
  57. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  58. package/cjs/extensions/forms/Field/Selection/SelectionDocs.js +10 -0
  59. package/cjs/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  60. package/cjs/extensions/forms/Field/Toggle/Toggle.js +1 -1
  61. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  62. package/cjs/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  63. package/cjs/extensions/forms/Form/Handler/Handler.js +3 -1
  64. package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
  65. package/cjs/extensions/forms/Form/Isolation/Isolation.d.ts +26 -5
  66. package/cjs/extensions/forms/Form/Isolation/Isolation.js +66 -26
  67. package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  68. package/cjs/extensions/forms/Form/Isolation/IsolationCommitButton.js +1 -0
  69. package/cjs/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -1
  70. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js +11 -1
  71. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  72. package/cjs/extensions/forms/Form/Section/Section.js +2 -2
  73. package/cjs/extensions/forms/Form/Section/Section.js.map +1 -1
  74. package/cjs/extensions/forms/Form/data-context/clearData.d.ts +1 -0
  75. package/cjs/extensions/forms/Form/data-context/clearData.js +16 -0
  76. package/cjs/extensions/forms/Form/data-context/clearData.js.map +1 -0
  77. package/cjs/extensions/forms/Form/index.d.ts +1 -0
  78. package/cjs/extensions/forms/Form/index.js +7 -0
  79. package/cjs/extensions/forms/Form/index.js.map +1 -1
  80. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  81. package/cjs/extensions/forms/Iterate/Array/types.d.ts +1 -4
  82. package/cjs/extensions/forms/Iterate/Array/types.js.map +1 -1
  83. package/cjs/extensions/forms/Iterate/style/dnb-iterate.css +1 -1
  84. package/cjs/extensions/forms/Iterate/style/dnb-iterate.min.css +1 -1
  85. package/cjs/extensions/forms/Iterate/style/dnb-iterate.scss +1 -1
  86. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +4 -0
  87. package/cjs/extensions/forms/constants/locales/en-GB.js +4 -0
  88. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  89. package/cjs/extensions/forms/constants/locales/en-US.d.ts +4 -0
  90. package/cjs/extensions/forms/constants/locales/index.d.ts +8 -0
  91. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +4 -0
  92. package/cjs/extensions/forms/constants/locales/nb-NO.js +4 -0
  93. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  94. package/cjs/extensions/forms/hooks/DataValueDocs.js +4 -4
  95. package/cjs/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  96. package/cjs/extensions/forms/hooks/useDataValue.d.ts +1 -0
  97. package/cjs/extensions/forms/hooks/useDataValue.js +18 -9
  98. package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
  99. package/cjs/extensions/forms/hooks/useFieldProps.d.ts +5 -5
  100. package/cjs/extensions/forms/hooks/useFieldProps.js +39 -23
  101. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  102. package/cjs/extensions/forms/style/dnb-forms.css +1 -1
  103. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  104. package/cjs/extensions/forms/types.d.ts +16 -7
  105. package/cjs/extensions/forms/types.js.map +1 -1
  106. package/cjs/shared/Eufemia.d.ts +1 -1
  107. package/cjs/shared/Eufemia.js +2 -2
  108. package/cjs/shared/Eufemia.js.map +1 -1
  109. package/cjs/shared/helpers/isAsync.js +2 -2
  110. package/cjs/shared/helpers/isAsync.js.map +1 -1
  111. package/cjs/style/core/scopes.scss +1 -1
  112. package/cjs/style/dnb-ui-basis.css +1 -1
  113. package/cjs/style/dnb-ui-basis.min.css +1 -1
  114. package/cjs/style/dnb-ui-body.css +1 -1
  115. package/cjs/style/dnb-ui-body.min.css +1 -1
  116. package/cjs/style/dnb-ui-components.css +1 -1
  117. package/cjs/style/dnb-ui-components.min.css +1 -1
  118. package/cjs/style/dnb-ui-core.css +1 -1
  119. package/cjs/style/dnb-ui-core.min.css +1 -1
  120. package/cjs/style/dnb-ui-extensions.css +1 -1
  121. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  122. package/cjs/style/dnb-ui-forms.css +1 -1
  123. package/cjs/style/dnb-ui-forms.min.css +1 -1
  124. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +2 -2
  125. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  126. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +1 -1
  127. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  128. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -1
  129. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  130. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +2 -2
  131. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  132. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +1 -1
  133. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  134. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -1
  135. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  136. package/cjs/style/themes/theme-ui/ui-theme-components.css +2 -2
  137. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  138. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +1 -1
  139. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  140. package/cjs/style/themes/theme-ui/ui-theme-forms.css +1 -1
  141. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  142. package/components/autocomplete/Autocomplete.d.ts +2 -2
  143. package/components/autocomplete/AutocompleteDocs.js +7 -7
  144. package/components/autocomplete/AutocompleteDocs.js.map +1 -1
  145. package/components/button/Button.d.ts +1 -1
  146. package/components/button/Button.js +6 -5
  147. package/components/button/Button.js.map +1 -1
  148. package/components/input-masked/InputMaskedHooks.js +4 -0
  149. package/components/input-masked/InputMaskedHooks.js.map +1 -1
  150. package/components/space/Space.d.ts +1 -1
  151. package/components/space/Space.js.map +1 -1
  152. package/components/table/table-accordion/TableAccordionHead.js.map +1 -1
  153. package/components/table/table-navigation/TableNavigationHead.js +1 -1
  154. package/components/table/table-navigation/TableNavigationHead.js.map +1 -1
  155. package/components/upload/UploadDocs.js +1 -1
  156. package/components/upload/UploadDocs.js.map +1 -1
  157. package/components/upload/UploadInfo.js +1 -1
  158. package/components/upload/UploadInfo.js.map +1 -1
  159. package/components/upload/UploadVerify.js +4 -1
  160. package/components/upload/UploadVerify.js.map +1 -1
  161. package/components/upload/types.d.ts +2 -2
  162. package/components/upload/types.js.map +1 -1
  163. package/es/components/autocomplete/Autocomplete.d.ts +2 -2
  164. package/es/components/autocomplete/AutocompleteDocs.js +7 -7
  165. package/es/components/autocomplete/AutocompleteDocs.js.map +1 -1
  166. package/es/components/button/Button.d.ts +1 -1
  167. package/es/components/button/Button.js +6 -5
  168. package/es/components/button/Button.js.map +1 -1
  169. package/es/components/input-masked/InputMaskedHooks.js +4 -0
  170. package/es/components/input-masked/InputMaskedHooks.js.map +1 -1
  171. package/es/components/space/Space.d.ts +1 -1
  172. package/es/components/space/Space.js.map +1 -1
  173. package/es/components/table/table-accordion/TableAccordionHead.js.map +1 -1
  174. package/es/components/table/table-navigation/TableNavigationHead.js +1 -1
  175. package/es/components/table/table-navigation/TableNavigationHead.js.map +1 -1
  176. package/es/components/upload/UploadDocs.js +1 -1
  177. package/es/components/upload/UploadDocs.js.map +1 -1
  178. package/es/components/upload/UploadInfo.js +1 -1
  179. package/es/components/upload/UploadInfo.js.map +1 -1
  180. package/es/components/upload/UploadVerify.js +4 -1
  181. package/es/components/upload/UploadVerify.js.map +1 -1
  182. package/es/components/upload/types.d.ts +2 -2
  183. package/es/components/upload/types.js.map +1 -1
  184. package/es/extensions/forms/DataContext/Context.d.ts +1 -0
  185. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  186. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +5 -12
  187. package/es/extensions/forms/DataContext/Provider/Provider.js +41 -18
  188. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  189. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +6 -1
  190. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  191. package/es/extensions/forms/Field/Currency/CurrencyDocs.d.ts +2 -0
  192. package/es/extensions/forms/Field/Currency/CurrencyDocs.js +22 -0
  193. package/es/extensions/forms/Field/Currency/CurrencyDocs.js.map +1 -0
  194. package/es/extensions/forms/Field/Expiry/Expiry.d.ts +1 -1
  195. package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  196. package/es/extensions/forms/Field/FieldDocs.d.ts +7 -0
  197. package/es/extensions/forms/Field/FieldDocs.js +16 -0
  198. package/es/extensions/forms/Field/FieldDocs.js.map +1 -1
  199. package/es/extensions/forms/Field/Number/Number.js +7 -12
  200. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  201. package/es/extensions/forms/Field/Option/Option.d.ts +2 -4
  202. package/es/extensions/forms/Field/Option/Option.js +0 -20
  203. package/es/extensions/forms/Field/Option/Option.js.map +1 -1
  204. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +5 -2
  205. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +32 -15
  206. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  207. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +3 -0
  208. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +20 -0
  209. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -0
  210. package/es/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
  211. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +16 -3
  212. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  213. package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.d.ts +1 -0
  214. package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +9 -0
  215. package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -0
  216. package/es/extensions/forms/Field/Selection/Selection.d.ts +40 -16
  217. package/es/extensions/forms/Field/Selection/Selection.js +67 -15
  218. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  219. package/es/extensions/forms/Field/Selection/SelectionDocs.js +10 -0
  220. package/es/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  221. package/es/extensions/forms/Field/Toggle/Toggle.js +1 -1
  222. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  223. package/es/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  224. package/es/extensions/forms/Form/Handler/Handler.js +3 -1
  225. package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
  226. package/es/extensions/forms/Form/Isolation/Isolation.d.ts +26 -5
  227. package/es/extensions/forms/Form/Isolation/Isolation.js +67 -27
  228. package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  229. package/es/extensions/forms/Form/Isolation/IsolationCommitButton.js +1 -0
  230. package/es/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -1
  231. package/es/extensions/forms/Form/Isolation/IsolationDocs.js +11 -1
  232. package/es/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  233. package/es/extensions/forms/Form/Section/Section.js +2 -2
  234. package/es/extensions/forms/Form/Section/Section.js.map +1 -1
  235. package/es/extensions/forms/Form/data-context/clearData.d.ts +1 -0
  236. package/es/extensions/forms/Form/data-context/clearData.js +10 -0
  237. package/es/extensions/forms/Form/data-context/clearData.js.map +1 -0
  238. package/es/extensions/forms/Form/index.d.ts +1 -0
  239. package/es/extensions/forms/Form/index.js +1 -0
  240. package/es/extensions/forms/Form/index.js.map +1 -1
  241. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  242. package/es/extensions/forms/Iterate/Array/types.d.ts +1 -4
  243. package/es/extensions/forms/Iterate/Array/types.js.map +1 -1
  244. package/es/extensions/forms/Iterate/style/dnb-iterate.css +1 -1
  245. package/es/extensions/forms/Iterate/style/dnb-iterate.min.css +1 -1
  246. package/es/extensions/forms/Iterate/style/dnb-iterate.scss +1 -1
  247. package/es/extensions/forms/constants/locales/en-GB.d.ts +4 -0
  248. package/es/extensions/forms/constants/locales/en-GB.js +4 -0
  249. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  250. package/es/extensions/forms/constants/locales/en-US.d.ts +4 -0
  251. package/es/extensions/forms/constants/locales/index.d.ts +8 -0
  252. package/es/extensions/forms/constants/locales/nb-NO.d.ts +4 -0
  253. package/es/extensions/forms/constants/locales/nb-NO.js +4 -0
  254. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  255. package/es/extensions/forms/hooks/DataValueDocs.js +4 -4
  256. package/es/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  257. package/es/extensions/forms/hooks/useDataValue.d.ts +1 -0
  258. package/es/extensions/forms/hooks/useDataValue.js +18 -9
  259. package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
  260. package/es/extensions/forms/hooks/useFieldProps.d.ts +5 -5
  261. package/es/extensions/forms/hooks/useFieldProps.js +39 -23
  262. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  263. package/es/extensions/forms/style/dnb-forms.css +1 -1
  264. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  265. package/es/extensions/forms/types.d.ts +16 -7
  266. package/es/extensions/forms/types.js.map +1 -1
  267. package/es/shared/Eufemia.d.ts +1 -1
  268. package/es/shared/Eufemia.js +2 -2
  269. package/es/shared/Eufemia.js.map +1 -1
  270. package/es/shared/helpers/isAsync.js +2 -2
  271. package/es/shared/helpers/isAsync.js.map +1 -1
  272. package/es/style/core/scopes.scss +1 -1
  273. package/es/style/dnb-ui-basis.css +1 -1
  274. package/es/style/dnb-ui-basis.min.css +1 -1
  275. package/es/style/dnb-ui-body.css +1 -1
  276. package/es/style/dnb-ui-body.min.css +1 -1
  277. package/es/style/dnb-ui-components.css +1 -1
  278. package/es/style/dnb-ui-components.min.css +1 -1
  279. package/es/style/dnb-ui-core.css +1 -1
  280. package/es/style/dnb-ui-core.min.css +1 -1
  281. package/es/style/dnb-ui-extensions.css +1 -1
  282. package/es/style/dnb-ui-extensions.min.css +1 -1
  283. package/es/style/dnb-ui-forms.css +1 -1
  284. package/es/style/dnb-ui-forms.min.css +1 -1
  285. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +2 -2
  286. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  287. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +1 -1
  288. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  289. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -1
  290. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  291. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +2 -2
  292. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  293. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +1 -1
  294. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  295. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -1
  296. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  297. package/es/style/themes/theme-ui/ui-theme-components.css +2 -2
  298. package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  299. package/es/style/themes/theme-ui/ui-theme-extensions.css +1 -1
  300. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  301. package/es/style/themes/theme-ui/ui-theme-forms.css +1 -1
  302. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  303. package/esm/dnb-ui-basis.min.mjs +1 -1
  304. package/esm/dnb-ui-components.min.mjs +1 -1
  305. package/esm/dnb-ui-elements.min.mjs +1 -1
  306. package/esm/dnb-ui-extensions.min.mjs +3 -3
  307. package/esm/dnb-ui-lib.min.mjs +1 -1
  308. package/extensions/forms/DataContext/Context.d.ts +1 -0
  309. package/extensions/forms/DataContext/Context.js.map +1 -1
  310. package/extensions/forms/DataContext/Provider/Provider.d.ts +5 -12
  311. package/extensions/forms/DataContext/Provider/Provider.js +41 -18
  312. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  313. package/extensions/forms/DataContext/Provider/ProviderDocs.js +6 -1
  314. package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  315. package/extensions/forms/Field/Currency/CurrencyDocs.d.ts +2 -0
  316. package/extensions/forms/Field/Currency/CurrencyDocs.js +22 -0
  317. package/extensions/forms/Field/Currency/CurrencyDocs.js.map +1 -0
  318. package/extensions/forms/Field/Expiry/Expiry.d.ts +1 -1
  319. package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  320. package/extensions/forms/Field/FieldDocs.d.ts +7 -0
  321. package/extensions/forms/Field/FieldDocs.js +18 -0
  322. package/extensions/forms/Field/FieldDocs.js.map +1 -1
  323. package/extensions/forms/Field/Number/Number.js +7 -12
  324. package/extensions/forms/Field/Number/Number.js.map +1 -1
  325. package/extensions/forms/Field/Option/Option.d.ts +2 -4
  326. package/extensions/forms/Field/Option/Option.js +0 -20
  327. package/extensions/forms/Field/Option/Option.js.map +1 -1
  328. package/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +5 -2
  329. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +33 -15
  330. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  331. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.d.ts +3 -0
  332. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +20 -0
  333. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -0
  334. package/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +2 -2
  335. package/extensions/forms/Field/SelectCountry/SelectCountry.js +32 -16
  336. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  337. package/extensions/forms/Field/SelectCountry/SelectCountryDocs.d.ts +1 -0
  338. package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +9 -0
  339. package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -0
  340. package/extensions/forms/Field/Selection/Selection.d.ts +40 -16
  341. package/extensions/forms/Field/Selection/Selection.js +70 -15
  342. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  343. package/extensions/forms/Field/Selection/SelectionDocs.js +10 -0
  344. package/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  345. package/extensions/forms/Field/Toggle/Toggle.js +1 -1
  346. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  347. package/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  348. package/extensions/forms/Form/Handler/Handler.js +3 -1
  349. package/extensions/forms/Form/Handler/Handler.js.map +1 -1
  350. package/extensions/forms/Form/Isolation/Isolation.d.ts +26 -5
  351. package/extensions/forms/Form/Isolation/Isolation.js +67 -27
  352. package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  353. package/extensions/forms/Form/Isolation/IsolationCommitButton.js +1 -0
  354. package/extensions/forms/Form/Isolation/IsolationCommitButton.js.map +1 -1
  355. package/extensions/forms/Form/Isolation/IsolationDocs.js +11 -1
  356. package/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  357. package/extensions/forms/Form/Section/Section.js +2 -2
  358. package/extensions/forms/Form/Section/Section.js.map +1 -1
  359. package/extensions/forms/Form/data-context/clearData.d.ts +1 -0
  360. package/extensions/forms/Form/data-context/clearData.js +10 -0
  361. package/extensions/forms/Form/data-context/clearData.js.map +1 -0
  362. package/extensions/forms/Form/index.d.ts +1 -0
  363. package/extensions/forms/Form/index.js +1 -0
  364. package/extensions/forms/Form/index.js.map +1 -1
  365. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  366. package/extensions/forms/Iterate/Array/types.d.ts +1 -4
  367. package/extensions/forms/Iterate/Array/types.js.map +1 -1
  368. package/extensions/forms/Iterate/style/dnb-iterate.css +1 -1
  369. package/extensions/forms/Iterate/style/dnb-iterate.min.css +1 -1
  370. package/extensions/forms/Iterate/style/dnb-iterate.scss +1 -1
  371. package/extensions/forms/constants/locales/en-GB.d.ts +4 -0
  372. package/extensions/forms/constants/locales/en-GB.js +4 -0
  373. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  374. package/extensions/forms/constants/locales/en-US.d.ts +4 -0
  375. package/extensions/forms/constants/locales/index.d.ts +8 -0
  376. package/extensions/forms/constants/locales/nb-NO.d.ts +4 -0
  377. package/extensions/forms/constants/locales/nb-NO.js +4 -0
  378. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  379. package/extensions/forms/hooks/DataValueDocs.js +4 -4
  380. package/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  381. package/extensions/forms/hooks/useDataValue.d.ts +1 -0
  382. package/extensions/forms/hooks/useDataValue.js +18 -9
  383. package/extensions/forms/hooks/useDataValue.js.map +1 -1
  384. package/extensions/forms/hooks/useFieldProps.d.ts +5 -5
  385. package/extensions/forms/hooks/useFieldProps.js +39 -23
  386. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  387. package/extensions/forms/style/dnb-forms.css +1 -1
  388. package/extensions/forms/style/dnb-forms.min.css +1 -1
  389. package/extensions/forms/types.d.ts +16 -7
  390. package/extensions/forms/types.js.map +1 -1
  391. package/package.json +1 -1
  392. package/shared/Eufemia.d.ts +1 -1
  393. package/shared/Eufemia.js +2 -2
  394. package/shared/Eufemia.js.map +1 -1
  395. package/shared/helpers/isAsync.js +2 -2
  396. package/shared/helpers/isAsync.js.map +1 -1
  397. package/style/core/scopes.scss +1 -1
  398. package/style/dnb-ui-basis.css +1 -1
  399. package/style/dnb-ui-basis.min.css +1 -1
  400. package/style/dnb-ui-body.css +1 -1
  401. package/style/dnb-ui-body.min.css +1 -1
  402. package/style/dnb-ui-components.css +1 -1
  403. package/style/dnb-ui-components.min.css +1 -1
  404. package/style/dnb-ui-core.css +1 -1
  405. package/style/dnb-ui-core.min.css +1 -1
  406. package/style/dnb-ui-extensions.css +1 -1
  407. package/style/dnb-ui-extensions.min.css +1 -1
  408. package/style/dnb-ui-forms.css +1 -1
  409. package/style/dnb-ui-forms.min.css +1 -1
  410. package/style/themes/theme-eiendom/eiendom-theme-components.css +2 -2
  411. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  412. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +1 -1
  413. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  414. package/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -1
  415. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  416. package/style/themes/theme-sbanken/sbanken-theme-components.css +2 -2
  417. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  418. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +1 -1
  419. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  420. package/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -1
  421. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  422. package/style/themes/theme-ui/ui-theme-components.css +2 -2
  423. package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  424. package/style/themes/theme-ui/ui-theme-extensions.css +1 -1
  425. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  426. package/style/themes/theme-ui/ui-theme-forms.css +1 -1
  427. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  428. package/umd/dnb-ui-basis.min.js +1 -1
  429. package/umd/dnb-ui-components.min.js +1 -1
  430. package/umd/dnb-ui-elements.min.js +1 -1
  431. package/umd/dnb-ui-extensions.min.js +3 -3
  432. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"TableAccordionHead.js","names":["React","useEffect","Td","TableContext","TableClickableButtonTd","TableClickableHead","TableIconSrTh","isTableHead","onClickTr","TableAccordionContext","TableAccordionContentSingle","TableAccordionContentRow","TableAccordionHead","allProps","_React$useContext","children","expanded","noAnimation","onClick","onOpened","onClosed","count","props","_objectWithoutProperties","_excluded","tableContext","useContext","trIsOpen","setOpen","useState","location","id","hash","trIsHover","setHover","trHadClick","setHadClick","headerContent","Children","toArray","addContent","content","accordionChevronPlacement","push","unshift","accordionContent","filter","element","isAccordionElement","hasAccordionContent","length","every","isValidElement","_tableContext$collaps","collapseTrCallbacks","current","tableContextAllProps","createElement","ariaLabel","accordionToggleButtonSR","icon","toggleOpenTr","key","_tableContext$allProp","text","_Td","countTds","type","Provider","value","_extends","clickable","onMouseEnter","onMouseEnterHandler","onMouseLeave","onMouseLeaveHandler","onKeyDown","onKeyDownHandler","event","toggleOpenFn","allowInteractiveElement"],"sources":["../../../../../src/components/table/table-accordion/TableAccordionHead.tsx"],"sourcesContent":["import React, { useEffect } from 'react'\nimport Td from '../TableTd'\nimport { TableContext } from '../TableContext'\nimport {\n TableClickableButtonTd,\n TableClickableHead,\n TableIconSrTh,\n isTableHead,\n onClickTr,\n} from '../TableClickableHead'\nimport { TableAccordionContext } from './TableAccordionContext'\nimport {\n TableAccordionContentSingle,\n TableAccordionContentRow,\n} from './TableAccordionContent'\n\nimport type {\n TableAccordionContentSingleProps,\n TableAccordionContentRowProps,\n} from './TableAccordionContent'\nimport type { TableTrProps } from '../TableTr'\n\nexport type TableAccordionHeadProps = {\n /** The row number */\n count: number\n} & TableTrProps &\n React.TableHTMLAttributes<HTMLTableRowElement>\n\nexport function TableAccordionHead(allProps: TableAccordionHeadProps) {\n const {\n children,\n expanded,\n noAnimation,\n onClick,\n onOpened,\n onClosed,\n count,\n ...props\n } = allProps\n const tableContext = React.useContext(TableContext)\n\n const [trIsOpen, setOpen] = React.useState(() => {\n if (typeof expanded === 'boolean') {\n return expanded\n } else if (typeof location !== 'undefined') {\n const id = props?.id\n if (id && '#' + id === location.hash) {\n return true\n }\n }\n\n return false\n })\n const [trIsHover, setHover] = React.useState(false)\n const [trHadClick, setHadClick] = React.useState(false)\n\n let headerContent = React.Children.toArray(children)\n\n const addContent = (content) => {\n if (tableContext.allProps.accordionChevronPlacement === 'end') {\n headerContent.push(content)\n } else {\n headerContent.unshift(content)\n }\n }\n\n /**\n * Handle Accordion Content\n */\n const accordionContent = headerContent.filter(\n (element: React.ReactElement) => {\n return isAccordionElement(element)\n }\n ) as React.ReactElement<\n TableAccordionContentSingleProps | TableAccordionContentRowProps\n >[]\n\n const hasAccordionContent =\n accordionContent.length !== 0 &&\n accordionContent.every((element) => React.isValidElement(element))\n\n useEffect(() => {\n if (\n hasAccordionContent &&\n tableContext?.collapseTrCallbacks?.current &&\n count\n ) {\n tableContext.collapseTrCallbacks.current[count] = () => {\n setOpen(false)\n }\n }\n }, [count, tableContext?.collapseTrCallbacks, hasAccordionContent])\n\n const tableContextAllProps = React.useContext(TableContext)?.allProps\n\n if (hasAccordionContent) {\n // Remove the AccordionContent, and use it outside of the tr\n headerContent = headerContent.filter((element: React.ReactElement) => {\n return !isAccordionElement(element)\n })\n\n addContent(\n <TableClickableButtonTd\n trIsOpen={trIsOpen}\n ariaLabel={tableContextAllProps?.accordionToggleButtonSR}\n icon=\"chevron_down\"\n onClick={toggleOpenTr}\n key=\"td-icon\"\n />\n )\n } else if (isTableHead(headerContent)) {\n addContent(\n <TableIconSrTh\n key=\"th-icon\"\n text={tableContext?.allProps?.accordionToggleButtonSR}\n />\n )\n } else if (!hasAccordionContent) {\n addContent(<Td key=\"empty-td\"></Td>)\n }\n\n const countTds = hasAccordionContent\n ? headerContent.filter((element: React.ReactElement) => {\n return (\n element.type === Td || element.type === TableClickableButtonTd\n ) // TODO: We may need to include this in future --> || component.type === Td.MainCell\n }).length\n : null\n\n return (\n <TableAccordionContext.Provider\n value={{\n toggleOpenTr,\n trIsOpen,\n noAnimation,\n countTds,\n onOpened,\n onClosed,\n }}\n >\n <TableClickableHead\n trIsOpen={trIsOpen}\n trIsHover={trIsHover}\n trHadClick={trHadClick}\n clickable={hasAccordionContent}\n noAnimation={noAnimation}\n onClick={toggleOpenTr}\n onMouseEnter={onMouseEnterHandler}\n onMouseLeave={onMouseLeaveHandler}\n onKeyDown={onKeyDownHandler}\n ariaLabel={tableContextAllProps?.accordionToggleButtonSR}\n {...props}\n >\n {headerContent}\n </TableClickableHead>\n {accordionContent}\n </TableAccordionContext.Provider>\n )\n\n function onMouseEnterHandler() {\n setHover(true)\n }\n\n function onKeyDownHandler(event: React.SyntheticEvent) {\n toggleOpenTr(event, true)\n }\n\n function onMouseLeaveHandler() {\n setHover(false)\n setHadClick(false)\n }\n\n function toggleOpenFn(event: React.SyntheticEvent) {\n setOpen(!trIsOpen)\n setHadClick(true)\n onClick?.(event)\n }\n\n function toggleOpenTr(\n event: React.SyntheticEvent,\n allowInteractiveElement?: boolean\n ) {\n onClickTr(event, allowInteractiveElement, toggleOpenFn)\n }\n}\n\nconst isAccordionElement = (element: React.ReactElement) =>\n element.type === TableAccordionContentSingle ||\n element.type === TableAccordionContentRow\n"],"mappings":"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"}
1
+ {"version":3,"file":"TableAccordionHead.js","names":["React","useEffect","Td","TableContext","TableClickableButtonTd","TableClickableHead","TableIconSrTh","isTableHead","onClickTr","TableAccordionContext","TableAccordionContentSingle","TableAccordionContentRow","TableAccordionHead","allProps","_React$useContext","children","expanded","noAnimation","onClick","onOpened","onClosed","count","props","_objectWithoutProperties","_excluded","tableContext","useContext","trIsOpen","setOpen","useState","location","id","hash","trIsHover","setHover","trHadClick","setHadClick","headerContent","Children","toArray","addContent","content","accordionChevronPlacement","push","unshift","accordionContent","filter","element","isAccordionElement","hasAccordionContent","length","every","isValidElement","_tableContext$collaps","collapseTrCallbacks","current","tableContextAllProps","createElement","ariaLabel","accordionToggleButtonSR","icon","toggleOpenTr","key","_tableContext$allProp","text","_Td","countTds","type","Provider","value","_extends","clickable","onMouseEnter","onMouseEnterHandler","onMouseLeave","onMouseLeaveHandler","onKeyDown","onKeyDownHandler","event","toggleOpenFn","allowInteractiveElement"],"sources":["../../../../../src/components/table/table-accordion/TableAccordionHead.tsx"],"sourcesContent":["import React, { useEffect } from 'react'\nimport Td from '../TableTd'\nimport { TableContext } from '../TableContext'\nimport {\n TableClickableButtonTd,\n TableClickableHead,\n TableIconSrTh,\n isTableHead,\n onClickTr,\n} from '../TableClickableHead'\nimport { TableAccordionContext } from './TableAccordionContext'\nimport {\n TableAccordionContentSingle,\n TableAccordionContentRow,\n} from './TableAccordionContent'\n\nimport type {\n TableAccordionContentSingleProps,\n TableAccordionContentRowProps,\n} from './TableAccordionContent'\nimport type { TableTrProps } from '../TableTr'\n\nexport type TableAccordionHeadProps = {\n /** The row number */\n count: number\n} & TableTrProps &\n React.TableHTMLAttributes<HTMLTableRowElement>\n\nexport function TableAccordionHead(allProps: TableAccordionHeadProps) {\n const {\n children,\n expanded,\n noAnimation,\n onClick,\n onOpened,\n onClosed,\n count,\n ...props\n } = allProps\n const tableContext = React.useContext(TableContext)\n\n const [trIsOpen, setOpen] = React.useState(() => {\n if (typeof expanded === 'boolean') {\n return expanded\n } else if (typeof location !== 'undefined') {\n const id = props?.id\n if (id && '#' + id === location.hash) {\n return true\n }\n }\n\n return false\n })\n const [trIsHover, setHover] = React.useState(false)\n const [trHadClick, setHadClick] = React.useState(false)\n\n let headerContent = React.Children.toArray(children)\n\n const addContent = (content) => {\n if (tableContext.allProps.accordionChevronPlacement === 'end') {\n headerContent.push(content)\n } else {\n headerContent.unshift(content)\n }\n }\n\n /**\n * Handle Accordion Content\n */\n const accordionContent = headerContent.filter(\n (element: React.ReactElement) => {\n return isAccordionElement(element)\n }\n ) as React.ReactElement<\n TableAccordionContentSingleProps | TableAccordionContentRowProps\n >[]\n\n const hasAccordionContent =\n accordionContent.length !== 0 &&\n accordionContent.every((element) => React.isValidElement(element))\n\n useEffect(() => {\n if (\n hasAccordionContent &&\n tableContext?.collapseTrCallbacks?.current &&\n count\n ) {\n tableContext.collapseTrCallbacks.current[count] = () => {\n setOpen(false)\n }\n }\n }, [count, tableContext?.collapseTrCallbacks, hasAccordionContent])\n\n const tableContextAllProps = React.useContext(TableContext)?.allProps\n\n if (hasAccordionContent) {\n // Remove the AccordionContent, and use it outside of the tr\n headerContent = headerContent.filter((element: React.ReactElement) => {\n return !isAccordionElement(element)\n })\n\n addContent(\n <TableClickableButtonTd\n trIsOpen={trIsOpen}\n ariaLabel={tableContextAllProps?.accordionToggleButtonSR}\n icon=\"chevron_down\"\n onClick={toggleOpenTr}\n key=\"td-icon\"\n />\n )\n } else if (isTableHead(headerContent)) {\n addContent(\n <TableIconSrTh\n key=\"th-icon\"\n text={tableContext?.allProps?.accordionToggleButtonSR}\n />\n )\n } else if (!hasAccordionContent) {\n addContent(<Td key=\"empty-td\" />)\n }\n\n const countTds = hasAccordionContent\n ? headerContent.filter((element: React.ReactElement) => {\n return (\n element.type === Td || element.type === TableClickableButtonTd\n ) // TODO: We may need to include this in future --> || component.type === Td.MainCell\n }).length\n : null\n\n return (\n <TableAccordionContext.Provider\n value={{\n toggleOpenTr,\n trIsOpen,\n noAnimation,\n countTds,\n onOpened,\n onClosed,\n }}\n >\n <TableClickableHead\n trIsOpen={trIsOpen}\n trIsHover={trIsHover}\n trHadClick={trHadClick}\n clickable={hasAccordionContent}\n noAnimation={noAnimation}\n onClick={toggleOpenTr}\n onMouseEnter={onMouseEnterHandler}\n onMouseLeave={onMouseLeaveHandler}\n onKeyDown={onKeyDownHandler}\n ariaLabel={tableContextAllProps?.accordionToggleButtonSR}\n {...props}\n >\n {headerContent}\n </TableClickableHead>\n {accordionContent}\n </TableAccordionContext.Provider>\n )\n\n function onMouseEnterHandler() {\n setHover(true)\n }\n\n function onKeyDownHandler(event: React.SyntheticEvent) {\n toggleOpenTr(event, true)\n }\n\n function onMouseLeaveHandler() {\n setHover(false)\n setHadClick(false)\n }\n\n function toggleOpenFn(event: React.SyntheticEvent) {\n setOpen(!trIsOpen)\n setHadClick(true)\n onClick?.(event)\n }\n\n function toggleOpenTr(\n event: React.SyntheticEvent,\n allowInteractiveElement?: boolean\n ) {\n onClickTr(event, allowInteractiveElement, toggleOpenFn)\n }\n}\n\nconst isAccordionElement = (element: React.ReactElement) =>\n element.type === TableAccordionContentSingle ||\n element.type === TableAccordionContentRow\n"],"mappings":"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"}
@@ -14,7 +14,7 @@ export function TableNavigationHead(allProps) {
14
14
  } = allProps,
15
15
  props = _objectWithoutProperties(allProps, _excluded);
16
16
  const tableContext = React.useContext(TableContext);
17
- let content = React.Children.toArray(children);
17
+ const content = React.Children.toArray(children);
18
18
  const hasOnClick = typeof onClick === 'function';
19
19
  const tableContextAllProps = (_React$useContext = React.useContext(TableContext)) === null || _React$useContext === void 0 ? void 0 : _React$useContext.allProps;
20
20
  if (hasOnClick) {
@@ -1 +1 @@
1
- {"version":3,"file":"TableNavigationHead.js","names":["React","Td","TableContext","TableClickableButtonTd","TableClickableHead","TableIconSrTh","isTableHead","onClickTr","TableNavigationHead","allProps","_React$useContext","children","onClick","props","_objectWithoutProperties","_excluded","tableContext","useContext","content","Children","toArray","hasOnClick","tableContextAllProps","push","createElement","key","ariaLabel","navigationButtonSR","icon","onClickHandler","_tableContext$allProp","text","_Td","_extends","clickable","onKeyDown","event","allowInteractiveElement"],"sources":["../../../../../src/components/table/table-navigation/TableNavigationHead.tsx"],"sourcesContent":["import React from 'react'\nimport Td from '../TableTd'\nimport { TableContext } from '../TableContext'\nimport {\n TableClickableButtonTd,\n TableClickableHead,\n TableIconSrTh,\n isTableHead,\n onClickTr,\n} from '../TableClickableHead'\n\nimport type { TableTrProps } from '../TableTr'\n\nexport type TableNavigationHeadProps = TableTrProps &\n React.TableHTMLAttributes<HTMLTableRowElement>\n\nexport function TableNavigationHead(allProps: TableNavigationHeadProps) {\n const { children, onClick, ...props } = allProps\n const tableContext = React.useContext(TableContext)\n\n let content = React.Children.toArray(children)\n\n const hasOnClick = typeof onClick === 'function'\n\n const tableContextAllProps = React.useContext(TableContext)?.allProps\n\n if (hasOnClick) {\n content.push(\n <TableClickableButtonTd\n key=\"td-icon\"\n ariaLabel={tableContextAllProps?.navigationButtonSR}\n icon=\"chevron_right\"\n onClick={onClickHandler}\n />\n )\n } else if (isTableHead(content)) {\n content.push(\n <TableIconSrTh\n key=\"th-icon\"\n text={tableContext?.allProps?.navigationButtonSR}\n />\n )\n } else if (!hasOnClick) {\n content.push(<Td key=\"empty-td\"></Td>)\n }\n\n return (\n <TableClickableHead\n clickable={hasOnClick}\n onClick={onClickHandler}\n onKeyDown={onClick}\n ariaLabel={tableContextAllProps?.navigationButtonSR}\n {...props}\n >\n {content}\n </TableClickableHead>\n )\n\n function onClickHandler(\n event: React.SyntheticEvent,\n allowInteractiveElement?: boolean\n ) {\n onClickTr(event, allowInteractiveElement, onClick)\n }\n}\n"],"mappings":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,EAAE,MAAM,YAAY;AAC3B,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SACEC,sBAAsB,EACtBC,kBAAkB,EAClBC,aAAa,EACbC,WAAW,EACXC,SAAS,QACJ,uBAAuB;AAO9B,OAAO,SAASC,mBAAmBA,CAACC,QAAkC,EAAE;EAAA,IAAAC,iBAAA;EACtE,MAAM;MAAEC,QAAQ;MAAEC;IAAkB,CAAC,GAAGH,QAAQ;IAAlBI,KAAK,GAAAC,wBAAA,CAAKL,QAAQ,EAAAM,SAAA;EAChD,MAAMC,YAAY,GAAGhB,KAAK,CAACiB,UAAU,CAACf,YAAY,CAAC;EAEnD,IAAIgB,OAAO,GAAGlB,KAAK,CAACmB,QAAQ,CAACC,OAAO,CAACT,QAAQ,CAAC;EAE9C,MAAMU,UAAU,GAAG,OAAOT,OAAO,KAAK,UAAU;EAEhD,MAAMU,oBAAoB,IAAAZ,iBAAA,GAAGV,KAAK,CAACiB,UAAU,CAACf,YAAY,CAAC,cAAAQ,iBAAA,uBAA9BA,iBAAA,CAAgCD,QAAQ;EAErE,IAAIY,UAAU,EAAE;IACdH,OAAO,CAACK,IAAI,CACVvB,KAAA,CAAAwB,aAAA,CAACrB,sBAAsB;MACrBsB,GAAG,EAAC,SAAS;MACbC,SAAS,EAAEJ,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEK,kBAAmB;MACpDC,IAAI,EAAC,eAAe;MACpBhB,OAAO,EAAEiB;IAAe,CACzB,CACH,CAAC;EACH,CAAC,MAAM,IAAIvB,WAAW,CAACY,OAAO,CAAC,EAAE;IAAA,IAAAY,qBAAA;IAC/BZ,OAAO,CAACK,IAAI,CACVvB,KAAA,CAAAwB,aAAA,CAACnB,aAAa;MACZoB,GAAG,EAAC,SAAS;MACbM,IAAI,EAAEf,YAAY,aAAZA,YAAY,wBAAAc,qBAAA,GAAZd,YAAY,CAAEP,QAAQ,cAAAqB,qBAAA,uBAAtBA,qBAAA,CAAwBH;IAAmB,CAClD,CACH,CAAC;EACH,CAAC,MAAM,IAAI,CAACN,UAAU,EAAE;IACtBH,OAAO,CAACK,IAAI,CAAAS,GAAA,KAAAA,GAAA,GAAChC,KAAA,CAAAwB,aAAA,CAACvB,EAAE;MAACwB,GAAG,EAAC;IAAU,CAAK,CAAC,EAAC;EACxC;EAEA,OACEzB,KAAA,CAAAwB,aAAA,CAACpB,kBAAkB,EAAA6B,QAAA;IACjBC,SAAS,EAAEb,UAAW;IACtBT,OAAO,EAAEiB,cAAe;IACxBM,SAAS,EAAEvB,OAAQ;IACnBc,SAAS,EAAEJ,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEK;EAAmB,GAChDd,KAAK,GAERK,OACiB,CAAC;EAGvB,SAASW,cAAcA,CACrBO,KAA2B,EAC3BC,uBAAiC,EACjC;IACA9B,SAAS,CAAC6B,KAAK,EAAEC,uBAAuB,EAAEzB,OAAO,CAAC;EACpD;AACF"}
1
+ {"version":3,"file":"TableNavigationHead.js","names":["React","Td","TableContext","TableClickableButtonTd","TableClickableHead","TableIconSrTh","isTableHead","onClickTr","TableNavigationHead","allProps","_React$useContext","children","onClick","props","_objectWithoutProperties","_excluded","tableContext","useContext","content","Children","toArray","hasOnClick","tableContextAllProps","push","createElement","key","ariaLabel","navigationButtonSR","icon","onClickHandler","_tableContext$allProp","text","_Td","_extends","clickable","onKeyDown","event","allowInteractiveElement"],"sources":["../../../../../src/components/table/table-navigation/TableNavigationHead.tsx"],"sourcesContent":["import React from 'react'\nimport Td from '../TableTd'\nimport { TableContext } from '../TableContext'\nimport {\n TableClickableButtonTd,\n TableClickableHead,\n TableIconSrTh,\n isTableHead,\n onClickTr,\n} from '../TableClickableHead'\n\nimport type { TableTrProps } from '../TableTr'\n\nexport type TableNavigationHeadProps = TableTrProps &\n React.TableHTMLAttributes<HTMLTableRowElement>\n\nexport function TableNavigationHead(allProps: TableNavigationHeadProps) {\n const { children, onClick, ...props } = allProps\n const tableContext = React.useContext(TableContext)\n\n const content = React.Children.toArray(children)\n\n const hasOnClick = typeof onClick === 'function'\n\n const tableContextAllProps = React.useContext(TableContext)?.allProps\n\n if (hasOnClick) {\n content.push(\n <TableClickableButtonTd\n key=\"td-icon\"\n ariaLabel={tableContextAllProps?.navigationButtonSR}\n icon=\"chevron_right\"\n onClick={onClickHandler}\n />\n )\n } else if (isTableHead(content)) {\n content.push(\n <TableIconSrTh\n key=\"th-icon\"\n text={tableContext?.allProps?.navigationButtonSR}\n />\n )\n } else if (!hasOnClick) {\n content.push(<Td key=\"empty-td\" />)\n }\n\n return (\n <TableClickableHead\n clickable={hasOnClick}\n onClick={onClickHandler}\n onKeyDown={onClick}\n ariaLabel={tableContextAllProps?.navigationButtonSR}\n {...props}\n >\n {content}\n </TableClickableHead>\n )\n\n function onClickHandler(\n event: React.SyntheticEvent,\n allowInteractiveElement?: boolean\n ) {\n onClickTr(event, allowInteractiveElement, onClick)\n }\n}\n"],"mappings":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,EAAE,MAAM,YAAY;AAC3B,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SACEC,sBAAsB,EACtBC,kBAAkB,EAClBC,aAAa,EACbC,WAAW,EACXC,SAAS,QACJ,uBAAuB;AAO9B,OAAO,SAASC,mBAAmBA,CAACC,QAAkC,EAAE;EAAA,IAAAC,iBAAA;EACtE,MAAM;MAAEC,QAAQ;MAAEC;IAAkB,CAAC,GAAGH,QAAQ;IAAlBI,KAAK,GAAAC,wBAAA,CAAKL,QAAQ,EAAAM,SAAA;EAChD,MAAMC,YAAY,GAAGhB,KAAK,CAACiB,UAAU,CAACf,YAAY,CAAC;EAEnD,MAAMgB,OAAO,GAAGlB,KAAK,CAACmB,QAAQ,CAACC,OAAO,CAACT,QAAQ,CAAC;EAEhD,MAAMU,UAAU,GAAG,OAAOT,OAAO,KAAK,UAAU;EAEhD,MAAMU,oBAAoB,IAAAZ,iBAAA,GAAGV,KAAK,CAACiB,UAAU,CAACf,YAAY,CAAC,cAAAQ,iBAAA,uBAA9BA,iBAAA,CAAgCD,QAAQ;EAErE,IAAIY,UAAU,EAAE;IACdH,OAAO,CAACK,IAAI,CACVvB,KAAA,CAAAwB,aAAA,CAACrB,sBAAsB;MACrBsB,GAAG,EAAC,SAAS;MACbC,SAAS,EAAEJ,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEK,kBAAmB;MACpDC,IAAI,EAAC,eAAe;MACpBhB,OAAO,EAAEiB;IAAe,CACzB,CACH,CAAC;EACH,CAAC,MAAM,IAAIvB,WAAW,CAACY,OAAO,CAAC,EAAE;IAAA,IAAAY,qBAAA;IAC/BZ,OAAO,CAACK,IAAI,CACVvB,KAAA,CAAAwB,aAAA,CAACnB,aAAa;MACZoB,GAAG,EAAC,SAAS;MACbM,IAAI,EAAEf,YAAY,aAAZA,YAAY,wBAAAc,qBAAA,GAAZd,YAAY,CAAEP,QAAQ,cAAAqB,qBAAA,uBAAtBA,qBAAA,CAAwBH;IAAmB,CAClD,CACH,CAAC;EACH,CAAC,MAAM,IAAI,CAACN,UAAU,EAAE;IACtBH,OAAO,CAACK,IAAI,CAAAS,GAAA,KAAAA,GAAA,GAAChC,KAAA,CAAAwB,aAAA,CAACvB,EAAE;MAACwB,GAAG,EAAC;IAAU,CAAE,CAAC,EAAC;EACrC;EAEA,OACEzB,KAAA,CAAAwB,aAAA,CAACpB,kBAAkB,EAAA6B,QAAA;IACjBC,SAAS,EAAEb,UAAW;IACtBT,OAAO,EAAEiB,cAAe;IACxBM,SAAS,EAAEvB,OAAQ;IACnBc,SAAS,EAAEJ,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEK;EAAmB,GAChDd,KAAK,GAERK,OACiB,CAAC;EAGvB,SAASW,cAAcA,CACrBO,KAA2B,EAC3BC,uBAAiC,EACjC;IACA9B,SAAS,CAAC6B,KAAK,EAAEC,uBAAuB,EAAEzB,OAAO,CAAC;EACpD;AACF"}
@@ -10,7 +10,7 @@ export const UploadProperties = {
10
10
  status: 'optional'
11
11
  },
12
12
  fileMaxSize: {
13
- doc: '`fileMaxSize` is max size of each file in MB. Defaults to 5 MB.',
13
+ doc: 'Defines the max file size of each file in MB. Use either `0` or `false` to disable. Defaults to 5 MB.',
14
14
  type: 'number',
15
15
  status: 'optional'
16
16
  },
@@ -1 +1 @@
1
- {"version":3,"file":"UploadDocs.js","names":["UploadProperties","acceptedFileTypes","doc","type","status","filesAmountLimit","fileMaxSize","title","text","skeleton","UploadEvents","onChange","onFileDelete"],"sources":["../../../../src/components/upload/UploadDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../shared/types'\n\nexport const UploadProperties: PropertiesTableProps = {\n acceptedFileTypes: {\n doc: 'List of accepted file types.',\n type: 'Array<string>',\n status: 'required',\n },\n filesAmountLimit: {\n doc: 'Defines the amount of files the user can select and upload. Defaults to 100.',\n type: 'number',\n status: 'optional',\n },\n fileMaxSize: {\n doc: '`fileMaxSize` is max size of each file in MB. Defaults to 5 MB.',\n type: 'number',\n status: 'optional',\n },\n title: {\n doc: 'Custom text property. Replaces the default title.',\n type: 'string',\n status: 'optional',\n },\n text: {\n doc: 'Custom text property. Replaces the default text.',\n type: 'string',\n status: 'optional',\n },\n skeleton: {\n doc: 'Skeleton should be applied when loading content.',\n type: 'boolean',\n status: 'optional',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n\nexport const UploadEvents: PropertiesTableProps = {\n onChange: {\n doc: 'Will be called on `files` changes made by the user. Access the files with `{ files }` (containing each a `fileItem`).',\n type: 'function',\n status: 'optional',\n },\n onFileDelete: {\n doc: 'Will be called once a file gets deleted by the user. Access the deleted file with `{ fileItem }`.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,gBAAsC,GAAG;EACpDC,iBAAiB,EAAE;IACjBC,GAAG,EAAE,8BAA8B;IACnCC,IAAI,EAAE,eAAe;IACrBC,MAAM,EAAE;EACV,CAAC;EACDC,gBAAgB,EAAE;IAChBH,GAAG,EAAE,8EAA8E;IACnFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,WAAW,EAAE;IACXJ,GAAG,EAAE,iEAAiE;IACtEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,KAAK,EAAE;IACLL,GAAG,EAAE,mDAAmD;IACxDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,IAAI,EAAE;IACJN,GAAG,EAAE,kDAAkD;IACvDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDK,QAAQ,EAAE;IACRP,GAAG,EAAE,kDAAkD;IACvDC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCF,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMM,YAAkC,GAAG;EAChDC,QAAQ,EAAE;IACRT,GAAG,EAAE,uHAAuH;IAC5HC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDQ,YAAY,EAAE;IACZV,GAAG,EAAE,mGAAmG;IACxGC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AACF,CAAC"}
1
+ {"version":3,"file":"UploadDocs.js","names":["UploadProperties","acceptedFileTypes","doc","type","status","filesAmountLimit","fileMaxSize","title","text","skeleton","UploadEvents","onChange","onFileDelete"],"sources":["../../../../src/components/upload/UploadDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../shared/types'\n\nexport const UploadProperties: PropertiesTableProps = {\n acceptedFileTypes: {\n doc: 'List of accepted file types.',\n type: 'Array<string>',\n status: 'required',\n },\n filesAmountLimit: {\n doc: 'Defines the amount of files the user can select and upload. Defaults to 100.',\n type: 'number',\n status: 'optional',\n },\n fileMaxSize: {\n doc: 'Defines the max file size of each file in MB. Use either `0` or `false` to disable. Defaults to 5 MB.',\n type: 'number',\n status: 'optional',\n },\n title: {\n doc: 'Custom text property. Replaces the default title.',\n type: 'string',\n status: 'optional',\n },\n text: {\n doc: 'Custom text property. Replaces the default text.',\n type: 'string',\n status: 'optional',\n },\n skeleton: {\n doc: 'Skeleton should be applied when loading content.',\n type: 'boolean',\n status: 'optional',\n },\n '[Space](/uilib/layout/space/properties)': {\n doc: 'Spacing properties like `top` or `bottom` are supported.',\n type: ['string', 'object'],\n status: 'optional',\n },\n}\n\nexport const UploadEvents: PropertiesTableProps = {\n onChange: {\n doc: 'Will be called on `files` changes made by the user. Access the files with `{ files }` (containing each a `fileItem`).',\n type: 'function',\n status: 'optional',\n },\n onFileDelete: {\n doc: 'Will be called once a file gets deleted by the user. Access the deleted file with `{ fileItem }`.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,gBAAsC,GAAG;EACpDC,iBAAiB,EAAE;IACjBC,GAAG,EAAE,8BAA8B;IACnCC,IAAI,EAAE,eAAe;IACrBC,MAAM,EAAE;EACV,CAAC;EACDC,gBAAgB,EAAE;IAChBH,GAAG,EAAE,8EAA8E;IACnFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,WAAW,EAAE;IACXJ,GAAG,EAAE,uGAAuG;IAC5GC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,KAAK,EAAE;IACLL,GAAG,EAAE,mDAAmD;IACxDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,IAAI,EAAE;IACJN,GAAG,EAAE,kDAAkD;IACvDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDK,QAAQ,EAAE;IACRP,GAAG,EAAE,kDAAkD;IACvDC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACD,yCAAyC,EAAE;IACzCF,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMM,YAAkC,GAAG;EAChDC,QAAQ,EAAE;IACRT,GAAG,EAAE,uHAAuH;IAC5HC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDQ,YAAY,EAAE;IACZV,GAAG,EAAE,mGAAmG;IACxGC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV;AACF,CAAC"}
@@ -31,7 +31,7 @@ const UploadInfo = () => {
31
31
  bottom: 0,
32
32
  layout: "horizontal",
33
33
  className: "dnb-upload__condition-list"
34
- }, prettifiedAcceptedFileFormats && React.createElement(Dl.Item, null, React.createElement(Dt, null, fileTypeDescription), React.createElement(Dd, null, prettifiedAcceptedFileFormats)), React.createElement(Dl.Item, null, React.createElement(Dt, null, fileSizeDescription), React.createElement(Dd, null, String(fileSizeContent).replace('%size', format(fileMaxSize).toString()))), filesAmountLimit < defaultProps.filesAmountLimit && React.createElement(Dl.Item, null, React.createElement(Dt, null, fileAmountDescription), React.createElement(Dd, null, filesAmountLimit))));
34
+ }, prettifiedAcceptedFileFormats && React.createElement(Dl.Item, null, React.createElement(Dt, null, fileTypeDescription), React.createElement(Dd, null, prettifiedAcceptedFileFormats)), fileMaxSize && React.createElement(Dl.Item, null, React.createElement(Dt, null, fileSizeDescription), React.createElement(Dd, null, String(fileSizeContent).replace('%size', format(fileMaxSize).toString()))), filesAmountLimit < defaultProps.filesAmountLimit && React.createElement(Dl.Item, null, React.createElement(Dt, null, fileAmountDescription), React.createElement(Dd, null, filesAmountLimit))));
35
35
  };
36
36
  export default UploadInfo;
37
37
  //# sourceMappingURL=UploadInfo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UploadInfo.js","names":["React","defaultProps","UploadContext","Lead","P","Dl","Dt","Dd","format","UploadInfo","context","useContext","title","text","acceptedFileTypes","fileTypeDescription","fileSizeDescription","fileAmountDescription","fileSizeContent","filesAmountLimit","fileMaxSize","children","prettifiedAcceptedFileFormats","join","toUpperCase","createElement","Fragment","space","top","className","bottom","layout","Item","String","replace","toString"],"sources":["../../../../src/components/upload/UploadInfo.tsx"],"sourcesContent":["import React from 'react'\nimport { defaultProps, UploadContext } from './UploadContext'\nimport Lead from '../../elements/Lead'\nimport P from '../../elements/P'\nimport Dl from '../../elements/Dl'\nimport Dt from '../../elements/Dt'\nimport Dd from '../../elements/Dd'\nimport { format } from '../number-format/NumberUtils'\n\nconst UploadInfo = () => {\n const context = React.useContext(UploadContext)\n\n const {\n title,\n text,\n acceptedFileTypes,\n fileTypeDescription,\n fileSizeDescription,\n fileAmountDescription,\n fileSizeContent,\n filesAmountLimit,\n fileMaxSize,\n children,\n } = context\n\n const prettifiedAcceptedFileFormats = acceptedFileTypes\n .join(', ')\n .toUpperCase()\n\n return (\n <>\n <Lead space=\"0\">{title}</Lead>\n\n <P top=\"xx-small\" className=\"dnb-upload__text\">\n {text}\n </P>\n\n {children}\n\n <Dl\n top=\"small\"\n bottom={0}\n layout=\"horizontal\"\n className=\"dnb-upload__condition-list\"\n >\n {prettifiedAcceptedFileFormats && (\n <Dl.Item>\n <Dt>{fileTypeDescription}</Dt>\n <Dd>{prettifiedAcceptedFileFormats}</Dd>\n </Dl.Item>\n )}\n\n <Dl.Item>\n <Dt>{fileSizeDescription}</Dt>\n <Dd>\n {String(fileSizeContent).replace(\n '%size',\n format(fileMaxSize).toString()\n )}\n </Dd>\n </Dl.Item>\n\n {filesAmountLimit < defaultProps.filesAmountLimit && (\n <Dl.Item>\n <Dt>{fileAmountDescription}</Dt>\n <Dd>{filesAmountLimit}</Dd>\n </Dl.Item>\n )}\n </Dl>\n </>\n )\n}\n\nexport default UploadInfo\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,YAAY,EAAEC,aAAa,QAAQ,iBAAiB;AAC7D,OAAOC,IAAI,MAAM,qBAAqB;AACtC,OAAOC,CAAC,MAAM,kBAAkB;AAChC,OAAOC,EAAE,MAAM,mBAAmB;AAClC,OAAOC,EAAE,MAAM,mBAAmB;AAClC,OAAOC,EAAE,MAAM,mBAAmB;AAClC,SAASC,MAAM,QAAQ,8BAA8B;AAErD,MAAMC,UAAU,GAAGA,CAAA,KAAM;EACvB,MAAMC,OAAO,GAAGV,KAAK,CAACW,UAAU,CAACT,aAAa,CAAC;EAE/C,MAAM;IACJU,KAAK;IACLC,IAAI;IACJC,iBAAiB;IACjBC,mBAAmB;IACnBC,mBAAmB;IACnBC,qBAAqB;IACrBC,eAAe;IACfC,gBAAgB;IAChBC,WAAW;IACXC;EACF,CAAC,GAAGX,OAAO;EAEX,MAAMY,6BAA6B,GAAGR,iBAAiB,CACpDS,IAAI,CAAC,IAAI,CAAC,CACVC,WAAW,CAAC,CAAC;EAEhB,OACExB,KAAA,CAAAyB,aAAA,CAAAzB,KAAA,CAAA0B,QAAA,QACE1B,KAAA,CAAAyB,aAAA,CAACtB,IAAI;IAACwB,KAAK,EAAC;EAAG,GAAEf,KAAY,CAAC,EAE9BZ,KAAA,CAAAyB,aAAA,CAACrB,CAAC;IAACwB,GAAG,EAAC,UAAU;IAACC,SAAS,EAAC;EAAkB,GAC3ChB,IACA,CAAC,EAEHQ,QAAQ,EAETrB,KAAA,CAAAyB,aAAA,CAACpB,EAAE;IACDuB,GAAG,EAAC,OAAO;IACXE,MAAM,EAAE,CAAE;IACVC,MAAM,EAAC,YAAY;IACnBF,SAAS,EAAC;EAA4B,GAErCP,6BAA6B,IAC5BtB,KAAA,CAAAyB,aAAA,CAACpB,EAAE,CAAC2B,IAAI,QACNhC,KAAA,CAAAyB,aAAA,CAACnB,EAAE,QAAES,mBAAwB,CAAC,EAC9Bf,KAAA,CAAAyB,aAAA,CAAClB,EAAE,QAAEe,6BAAkC,CAChC,CACV,EAEDtB,KAAA,CAAAyB,aAAA,CAACpB,EAAE,CAAC2B,IAAI,QACNhC,KAAA,CAAAyB,aAAA,CAACnB,EAAE,QAAEU,mBAAwB,CAAC,EAC9BhB,KAAA,CAAAyB,aAAA,CAAClB,EAAE,QACA0B,MAAM,CAACf,eAAe,CAAC,CAACgB,OAAO,CAC9B,OAAO,EACP1B,MAAM,CAACY,WAAW,CAAC,CAACe,QAAQ,CAAC,CAC/B,CACE,CACG,CAAC,EAEThB,gBAAgB,GAAGlB,YAAY,CAACkB,gBAAgB,IAC/CnB,KAAA,CAAAyB,aAAA,CAACpB,EAAE,CAAC2B,IAAI,QACNhC,KAAA,CAAAyB,aAAA,CAACnB,EAAE,QAAEW,qBAA0B,CAAC,EAChCjB,KAAA,CAAAyB,aAAA,CAAClB,EAAE,QAAEY,gBAAqB,CACnB,CAET,CACJ,CAAC;AAEP,CAAC;AAED,eAAeV,UAAU"}
1
+ {"version":3,"file":"UploadInfo.js","names":["React","defaultProps","UploadContext","Lead","P","Dl","Dt","Dd","format","UploadInfo","context","useContext","title","text","acceptedFileTypes","fileTypeDescription","fileSizeDescription","fileAmountDescription","fileSizeContent","filesAmountLimit","fileMaxSize","children","prettifiedAcceptedFileFormats","join","toUpperCase","createElement","Fragment","space","top","className","bottom","layout","Item","String","replace","toString"],"sources":["../../../../src/components/upload/UploadInfo.tsx"],"sourcesContent":["import React from 'react'\nimport { defaultProps, UploadContext } from './UploadContext'\nimport Lead from '../../elements/Lead'\nimport P from '../../elements/P'\nimport Dl from '../../elements/Dl'\nimport Dt from '../../elements/Dt'\nimport Dd from '../../elements/Dd'\nimport { format } from '../number-format/NumberUtils'\n\nconst UploadInfo = () => {\n const context = React.useContext(UploadContext)\n\n const {\n title,\n text,\n acceptedFileTypes,\n fileTypeDescription,\n fileSizeDescription,\n fileAmountDescription,\n fileSizeContent,\n filesAmountLimit,\n fileMaxSize,\n children,\n } = context\n\n const prettifiedAcceptedFileFormats = acceptedFileTypes\n .join(', ')\n .toUpperCase()\n\n return (\n <>\n <Lead space=\"0\">{title}</Lead>\n\n <P top=\"xx-small\" className=\"dnb-upload__text\">\n {text}\n </P>\n\n {children}\n\n <Dl\n top=\"small\"\n bottom={0}\n layout=\"horizontal\"\n className=\"dnb-upload__condition-list\"\n >\n {prettifiedAcceptedFileFormats && (\n <Dl.Item>\n <Dt>{fileTypeDescription}</Dt>\n <Dd>{prettifiedAcceptedFileFormats}</Dd>\n </Dl.Item>\n )}\n\n {fileMaxSize && (\n <Dl.Item>\n <Dt>{fileSizeDescription}</Dt>\n <Dd>\n {String(fileSizeContent).replace(\n '%size',\n format(fileMaxSize).toString()\n )}\n </Dd>\n </Dl.Item>\n )}\n\n {filesAmountLimit < defaultProps.filesAmountLimit && (\n <Dl.Item>\n <Dt>{fileAmountDescription}</Dt>\n <Dd>{filesAmountLimit}</Dd>\n </Dl.Item>\n )}\n </Dl>\n </>\n )\n}\n\nexport default UploadInfo\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,YAAY,EAAEC,aAAa,QAAQ,iBAAiB;AAC7D,OAAOC,IAAI,MAAM,qBAAqB;AACtC,OAAOC,CAAC,MAAM,kBAAkB;AAChC,OAAOC,EAAE,MAAM,mBAAmB;AAClC,OAAOC,EAAE,MAAM,mBAAmB;AAClC,OAAOC,EAAE,MAAM,mBAAmB;AAClC,SAASC,MAAM,QAAQ,8BAA8B;AAErD,MAAMC,UAAU,GAAGA,CAAA,KAAM;EACvB,MAAMC,OAAO,GAAGV,KAAK,CAACW,UAAU,CAACT,aAAa,CAAC;EAE/C,MAAM;IACJU,KAAK;IACLC,IAAI;IACJC,iBAAiB;IACjBC,mBAAmB;IACnBC,mBAAmB;IACnBC,qBAAqB;IACrBC,eAAe;IACfC,gBAAgB;IAChBC,WAAW;IACXC;EACF,CAAC,GAAGX,OAAO;EAEX,MAAMY,6BAA6B,GAAGR,iBAAiB,CACpDS,IAAI,CAAC,IAAI,CAAC,CACVC,WAAW,CAAC,CAAC;EAEhB,OACExB,KAAA,CAAAyB,aAAA,CAAAzB,KAAA,CAAA0B,QAAA,QACE1B,KAAA,CAAAyB,aAAA,CAACtB,IAAI;IAACwB,KAAK,EAAC;EAAG,GAAEf,KAAY,CAAC,EAE9BZ,KAAA,CAAAyB,aAAA,CAACrB,CAAC;IAACwB,GAAG,EAAC,UAAU;IAACC,SAAS,EAAC;EAAkB,GAC3ChB,IACA,CAAC,EAEHQ,QAAQ,EAETrB,KAAA,CAAAyB,aAAA,CAACpB,EAAE;IACDuB,GAAG,EAAC,OAAO;IACXE,MAAM,EAAE,CAAE;IACVC,MAAM,EAAC,YAAY;IACnBF,SAAS,EAAC;EAA4B,GAErCP,6BAA6B,IAC5BtB,KAAA,CAAAyB,aAAA,CAACpB,EAAE,CAAC2B,IAAI,QACNhC,KAAA,CAAAyB,aAAA,CAACnB,EAAE,QAAES,mBAAwB,CAAC,EAC9Bf,KAAA,CAAAyB,aAAA,CAAClB,EAAE,QAAEe,6BAAkC,CAChC,CACV,EAEAF,WAAW,IACVpB,KAAA,CAAAyB,aAAA,CAACpB,EAAE,CAAC2B,IAAI,QACNhC,KAAA,CAAAyB,aAAA,CAACnB,EAAE,QAAEU,mBAAwB,CAAC,EAC9BhB,KAAA,CAAAyB,aAAA,CAAClB,EAAE,QACA0B,MAAM,CAACf,eAAe,CAAC,CAACgB,OAAO,CAC9B,OAAO,EACP1B,MAAM,CAACY,WAAW,CAAC,CAACe,QAAQ,CAAC,CAC/B,CACE,CACG,CACV,EAEAhB,gBAAgB,GAAGlB,YAAY,CAACkB,gBAAgB,IAC/CnB,KAAA,CAAAyB,aAAA,CAACpB,EAAE,CAAC2B,IAAI,QACNhC,KAAA,CAAAyB,aAAA,CAACnB,EAAE,QAAEW,qBAA0B,CAAC,EAChCjB,KAAA,CAAAyB,aAAA,CAAClB,EAAE,QAAEY,gBAAqB,CACnB,CAET,CACJ,CAAC;AAEP,CAAC;AAED,eAAeV,UAAU"}
@@ -8,7 +8,10 @@ export function verifyFiles(files, context) {
8
8
  errorUnsupportedFile
9
9
  } = context;
10
10
  const handleSize = file => {
11
- return file.size / BYTES_IN_A_MEGA_BYTE > fileMaxSize ? String(errorLargeFile).replace('%size', format(fileMaxSize).toString()) : null;
11
+ if (fileMaxSize && file.size / BYTES_IN_A_MEGA_BYTE > fileMaxSize) {
12
+ return String(errorLargeFile).replace('%size', format(fileMaxSize).toString());
13
+ }
14
+ return null;
12
15
  };
13
16
  const handleType = file => {
14
17
  if (acceptedFileTypes.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"UploadVerify.js","names":["format","BYTES_IN_A_MEGA_BYTE","verifyFiles","files","context","fileMaxSize","acceptedFileTypes","errorLargeFile","errorUnsupportedFile","handleSize","file","size","String","replace","toString","handleType","length","fileType","hasPreferredMimeType","type","getFileTypeFromExtension","foundType","extendWithAbbreviation","some","includes","cleanedFiles","map","item","errorMessage","name","getAcceptedFileTypes","join","split","toLowerCase","abbreviations","jpg","list","Object","entries","forEach","abbr","t","push"],"sources":["../../../../src/components/upload/UploadVerify.tsx"],"sourcesContent":["import { format } from '../number-format/NumberUtils'\nimport {\n UploadFile,\n UploadContextProps,\n UploadAcceptedFileTypes,\n} from './types'\n\nexport const BYTES_IN_A_MEGA_BYTE = 1048576\n\nexport function verifyFiles(\n files: UploadFile[],\n context: Pick<\n UploadContextProps,\n | 'errorUnsupportedFile'\n | 'errorLargeFile'\n | 'acceptedFileTypes'\n | 'fileMaxSize'\n >\n) {\n const {\n fileMaxSize,\n acceptedFileTypes,\n errorLargeFile,\n errorUnsupportedFile,\n } = context\n\n const handleSize = (file: File) => {\n return (\n // Converts from b (binary) to MB (decimal)\n file.size / BYTES_IN_A_MEGA_BYTE > fileMaxSize\n ? String(errorLargeFile).replace(\n '%size',\n format(fileMaxSize).toString()\n )\n : null\n )\n }\n\n const handleType = (file: File) => {\n if (acceptedFileTypes.length === 0) {\n return false\n }\n const fileType = hasPreferredMimeType(acceptedFileTypes, file)\n ? file.type\n : getFileTypeFromExtension(file) || file.type\n const foundType = extendWithAbbreviation(acceptedFileTypes).some(\n (type) => {\n /**\n * \"file.type\" can be e.g. \"images/png\"\n */\n return fileType.includes(type)\n }\n )\n return !foundType ? errorUnsupportedFile : null\n }\n\n const cleanedFiles = files.map((item) => {\n const { file } = item\n\n const errorMessage = handleSize(file) || handleType(file)\n\n if (errorMessage) {\n item.errorMessage = errorMessage\n }\n\n return item\n })\n\n return cleanedFiles\n}\n\nexport function getFileTypeFromExtension(file: File) {\n return (\n (file.name.includes('.') && file.name.replace(/.*\\.([^.]+)$/, '$1')) ||\n null\n )\n}\n\nexport function getAcceptedFileTypes(\n acceptedFileTypes: UploadAcceptedFileTypes\n) {\n return extendWithAbbreviation(acceptedFileTypes)\n .map((type) => (type.includes('/') ? type : `.${type}`))\n .join(',')\n}\n\nexport function hasPreferredMimeType(\n acceptedFileTypes: UploadAcceptedFileTypes,\n file: File\n) {\n return (\n file.type.split('/')[1] &&\n (!acceptedFileTypes?.length ||\n acceptedFileTypes?.some(\n (type) => type.toLowerCase() === file.type.toLowerCase()\n ))\n )\n}\n\nexport function extendWithAbbreviation(\n acceptedFileTypes: UploadAcceptedFileTypes,\n abbreviations = { jpg: 'jpeg' }\n) {\n const list = [...acceptedFileTypes]\n\n Object.entries(abbreviations).forEach(([type, abbr]) => {\n if (list.some((t) => t === type) && !list.some((t) => t === abbr)) {\n list.push(abbr)\n }\n })\n\n return list\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"UploadVerify.js","names":["format","BYTES_IN_A_MEGA_BYTE","verifyFiles","files","context","fileMaxSize","acceptedFileTypes","errorLargeFile","errorUnsupportedFile","handleSize","file","size","String","replace","toString","handleType","length","fileType","hasPreferredMimeType","type","getFileTypeFromExtension","foundType","extendWithAbbreviation","some","includes","cleanedFiles","map","item","errorMessage","name","getAcceptedFileTypes","join","split","toLowerCase","abbreviations","jpg","list","Object","entries","forEach","abbr","t","push"],"sources":["../../../../src/components/upload/UploadVerify.tsx"],"sourcesContent":["import { format } from '../number-format/NumberUtils'\nimport {\n UploadFile,\n UploadContextProps,\n UploadAcceptedFileTypes,\n} from './types'\n\nexport const BYTES_IN_A_MEGA_BYTE = 1048576\n\nexport function verifyFiles(\n files: UploadFile[],\n context: Pick<\n UploadContextProps,\n | 'errorUnsupportedFile'\n | 'errorLargeFile'\n | 'acceptedFileTypes'\n | 'fileMaxSize'\n >\n) {\n const {\n fileMaxSize,\n acceptedFileTypes,\n errorLargeFile,\n errorUnsupportedFile,\n } = context\n\n const handleSize = (file: File) => {\n if (\n fileMaxSize &&\n // Converts from b (binary) to MB (decimal)\n file.size / BYTES_IN_A_MEGA_BYTE > fileMaxSize\n ) {\n return String(errorLargeFile).replace(\n '%size',\n format(fileMaxSize).toString()\n )\n }\n return null\n }\n\n const handleType = (file: File) => {\n if (acceptedFileTypes.length === 0) {\n return false\n }\n const fileType = hasPreferredMimeType(acceptedFileTypes, file)\n ? file.type\n : getFileTypeFromExtension(file) || file.type\n const foundType = extendWithAbbreviation(acceptedFileTypes).some(\n (type) => {\n /**\n * \"file.type\" can be e.g. \"images/png\"\n */\n return fileType.includes(type)\n }\n )\n return !foundType ? errorUnsupportedFile : null\n }\n\n const cleanedFiles = files.map((item) => {\n const { file } = item\n\n const errorMessage = handleSize(file) || handleType(file)\n\n if (errorMessage) {\n item.errorMessage = errorMessage\n }\n\n return item\n })\n\n return cleanedFiles\n}\n\nexport function getFileTypeFromExtension(file: File) {\n return (\n (file.name.includes('.') && file.name.replace(/.*\\.([^.]+)$/, '$1')) ||\n null\n )\n}\n\nexport function getAcceptedFileTypes(\n acceptedFileTypes: UploadAcceptedFileTypes\n) {\n return extendWithAbbreviation(acceptedFileTypes)\n .map((type) => (type.includes('/') ? type : `.${type}`))\n .join(',')\n}\n\nexport function hasPreferredMimeType(\n acceptedFileTypes: UploadAcceptedFileTypes,\n file: File\n) {\n return (\n file.type.split('/')[1] &&\n (!acceptedFileTypes?.length ||\n acceptedFileTypes?.some(\n (type) => type.toLowerCase() === file.type.toLowerCase()\n ))\n )\n}\n\nexport function extendWithAbbreviation(\n acceptedFileTypes: UploadAcceptedFileTypes,\n abbreviations = { jpg: 'jpeg' }\n) {\n const list = [...acceptedFileTypes]\n\n Object.entries(abbreviations).forEach(([type, abbr]) => {\n if (list.some((t) => t === type) && !list.some((t) => t === abbr)) {\n list.push(abbr)\n }\n })\n\n return list\n}\n"],"mappings":"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"}
@@ -22,10 +22,10 @@ export type UploadProps = {
22
22
  */
23
23
  filesAmountLimit?: number;
24
24
  /**
25
- * fileMaxSize is max size of each file in MB
25
+ * Defines the max file size of each file in MB. Use either `0` or `false` to disable.
26
26
  * Default: 5 MB
27
27
  */
28
- fileMaxSize?: number;
28
+ fileMaxSize?: number | false;
29
29
  /**
30
30
  * will be called on `files` changes made by the user. Access the files with `{ files }`.
31
31
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../../src/components/upload/types.ts"],"sourcesContent":["import React from 'react'\nimport type { SkeletonShow } from '../skeleton/Skeleton'\nimport type { LocaleProps, SpacingProps } from '../../shared/types'\n\nexport type UploadAcceptedFileTypes = string[]\n\nexport type UploadProps = {\n /**\n * unique id used with the useUpload hook to manage the files\n */\n id: string\n\n /**\n * list of accepted file types.\n */\n acceptedFileTypes: UploadAcceptedFileTypes\n\n /**\n * Skeleton should be applied when loading content\n * Default: null\n */\n skeleton?: SkeletonShow\n\n /**\n * Defines the amount of files the user can select and upload\n * Default: 100\n */\n filesAmountLimit?: number\n\n /**\n * fileMaxSize is max size of each file in MB\n * Default: 5 MB\n */\n fileMaxSize?: number\n\n /**\n * will be called on `files` changes made by the user. Access the files with `{ files }`.\n */\n onChange?: ({ files }: { files: UploadFile[] }) => void\n\n /**\n * will be called once a file gets deleted by the user. Access the deleted file with `{ fileItem }`.\n */\n onFileDelete?: ({ fileItem }: { fileItem: UploadFile }) => void\n\n /**\n * Custom text properties\n */\n title?: React.ReactNode\n text?: React.ReactNode\n fileTypeDescription?: React.ReactNode\n fileSizeDescription?: React.ReactNode\n fileAmountDescription?: React.ReactNode\n fileSizeContent?: React.ReactNode\n buttonText?: React.ReactNode\n errorLargeFile?: React.ReactNode\n errorUnsupportedFile?: React.ReactNode\n errorAmountLimit?: React.ReactNode\n loadingText?: React.ReactNode\n deleteButton?: React.ReactNode\n fileListAriaLabel?: string\n children?: React.ReactNode\n}\n\nexport type UploadAllProps = UploadProps &\n SpacingProps &\n LocaleProps &\n Omit<React.HTMLProps<HTMLElement>, 'onChange' | 'title'>\n\nexport type UploadContextProps = {\n id?: string\n onInputUpload: (files: UploadFile[]) => void\n} & Partial<UploadProps>\n\nexport type UploadFile = {\n file: File\n errorMessage?: React.ReactNode\n isLoading?: boolean\n exists?: boolean\n id?: string\n}\n"],"mappings":""}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../src/components/upload/types.ts"],"sourcesContent":["import React from 'react'\nimport type { SkeletonShow } from '../skeleton/Skeleton'\nimport type { LocaleProps, SpacingProps } from '../../shared/types'\n\nexport type UploadAcceptedFileTypes = string[]\n\nexport type UploadProps = {\n /**\n * unique id used with the useUpload hook to manage the files\n */\n id: string\n\n /**\n * list of accepted file types.\n */\n acceptedFileTypes: UploadAcceptedFileTypes\n\n /**\n * Skeleton should be applied when loading content\n * Default: null\n */\n skeleton?: SkeletonShow\n\n /**\n * Defines the amount of files the user can select and upload\n * Default: 100\n */\n filesAmountLimit?: number\n\n /**\n * Defines the max file size of each file in MB. Use either `0` or `false` to disable.\n * Default: 5 MB\n */\n fileMaxSize?: number | false\n\n /**\n * will be called on `files` changes made by the user. Access the files with `{ files }`.\n */\n onChange?: ({ files }: { files: UploadFile[] }) => void\n\n /**\n * will be called once a file gets deleted by the user. Access the deleted file with `{ fileItem }`.\n */\n onFileDelete?: ({ fileItem }: { fileItem: UploadFile }) => void\n\n /**\n * Custom text properties\n */\n title?: React.ReactNode\n text?: React.ReactNode\n fileTypeDescription?: React.ReactNode\n fileSizeDescription?: React.ReactNode\n fileAmountDescription?: React.ReactNode\n fileSizeContent?: React.ReactNode\n buttonText?: React.ReactNode\n errorLargeFile?: React.ReactNode\n errorUnsupportedFile?: React.ReactNode\n errorAmountLimit?: React.ReactNode\n loadingText?: React.ReactNode\n deleteButton?: React.ReactNode\n fileListAriaLabel?: string\n children?: React.ReactNode\n}\n\nexport type UploadAllProps = UploadProps &\n SpacingProps &\n LocaleProps &\n Omit<React.HTMLProps<HTMLElement>, 'onChange' | 'title'>\n\nexport type UploadContextProps = {\n id?: string\n onInputUpload: (files: UploadFile[]) => void\n} & Partial<UploadProps>\n\nexport type UploadFile = {\n file: File\n errorMessage?: React.ReactNode\n isLoading?: boolean\n exists?: boolean\n id?: string\n}\n"],"mappings":""}
@@ -74,6 +74,7 @@ export interface ContextState {
74
74
  ajvInstance: Ajv;
75
75
  contextErrorMessages: CustomErrorMessagesWithPaths;
76
76
  schema: AllJSONSchemaVersions;
77
+ path?: Path;
77
78
  disabled?: boolean;
78
79
  required?: boolean;
79
80
  submitState: Partial<EventStateObject>;
@@ -1 +1 @@
1
- {"version":3,"file":"Context.js","names":["React","makeAjvInstance","defaultContextState","hasContext","data","undefined","schema","submitState","handlePathChange","handlePathChangeUnvalidated","updateDataValue","setData","validateData","handleSubmit","scrollToTop","showAllErrors","hasVisibleError","formState","setFormState","setSubmitState","setFieldEventListener","handleSubmitCall","setShowAllErrors","handleMountField","handleUnMountField","hasErrors","hasFieldState","hasFieldError","setFieldState","setFieldError","ajvInstance","contextErrorMessages","isInsideFormElement","props","Context","createContext"],"sources":["../../../../../src/extensions/forms/DataContext/Context.ts"],"sourcesContent":["import React from 'react'\nimport { Ajv, makeAjvInstance } from '../utils/ajv'\nimport {\n AllJSONSchemaVersions,\n CustomErrorMessagesWithPaths,\n SubmitState,\n Path,\n EventStateObject,\n EventReturnWithStateObject,\n Identifier,\n FieldProps,\n FormError,\n ValueProps,\n} from '../types'\nimport { Props as ProviderProps } from './Provider'\n\ntype HandleSubmitProps = {\n formElement?: HTMLFormElement\n}\n\nexport type EventListenerCall = {\n path?: Path\n type?: 'onSubmit'\n callback: () => any\n}\n\nexport type FilterDataHandler<Data> = (\n data: Data,\n filter: FilterData\n) => Partial<Data>\nexport type FilterDataHandlerCallback<R> = (\n parameters: FilterDataHandlerParameters\n) => R\nexport type FilterDataHandlerParameters =\n FilterDataPathConditionParameters & {\n path: Path\n }\nexport type FilterDataPathCondition<Data = unknown> = (\n parameters: FilterDataPathConditionParameters<Data>\n) => boolean | undefined\nexport type FilterDataPathConditionParameters<Data = unknown> = {\n value: unknown\n props: FieldProps\n data: Data\n internal: {\n error: Error | undefined\n }\n}\nexport type FilterDataPathObject<Data> = Record<\n Path,\n FilterDataPathCondition<Data> | boolean | undefined\n>\nexport type FilterData<Data = unknown> =\n | FilterDataPathObject<Data>\n | FilterDataHandlerCallback<boolean | undefined>\nexport type TransformData = FilterDataHandlerCallback<unknown>\n\nexport interface ContextState {\n id?: Identifier\n hasContext: boolean\n /** The dataset for the form / form wizard */\n data: any\n /** Should the form validate data before submitting? */\n errors?: Record<string, Error>\n /** Will set autoComplete=\"on\" on each nested Field.String and Field.Number */\n autoComplete?: boolean\n handlePathChange: (\n path: Path,\n value?: any\n ) =>\n | EventReturnWithStateObject\n | unknown\n | Promise<EventReturnWithStateObject | unknown>\n handlePathChangeUnvalidated: (path: Path, value: any) => void\n updateDataValue: (path: Path, value: any) => void\n setData: (data: any) => void\n mutateDataHandler?: (data: any, mutate: TransformData) => any\n filterDataHandler?: (data: any, filter: FilterData) => any\n validateData: () => void\n handleSubmit: (props?: HandleSubmitProps) => any\n scrollToTop: () => void\n setShowAllErrors: (showAllErrors: boolean) => void\n hasErrors: () => boolean\n hasFieldState: (state: SubmitState) => boolean\n hasFieldError: (path: Path) => boolean\n setFieldState: (path: Path, fieldState: SubmitState) => void\n setFieldError: (path: Path, error: Error | FormError) => void\n handleMountField: (path: Path) => void\n handleUnMountField: (path: Path) => void\n setFormState?: (state: SubmitState) => void\n setSubmitState?: (state: EventStateObject) => void\n addOnChangeHandler?: (callback: (data: unknown) => void) => void\n handleSubmitCall: ({\n onSubmit,\n enableAsyncBehaviour,\n skipFieldValidation,\n skipErrorCheck,\n }: {\n onSubmit: () =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n enableAsyncBehaviour: boolean\n skipFieldValidation?: boolean\n skipErrorCheck?: boolean\n }) => void\n setFieldEventListener: (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => void\n setHasVisibleError?: (path: Path, hasError: boolean) => void\n setFieldProps?: (path: Path, props: any) => void\n setValueProps?: (path: Path, props: any) => void\n fieldPropsRef?: React.MutableRefObject<Record<string, FieldProps>>\n valuePropsRef?: React.MutableRefObject<Record<string, ValueProps>>\n showAllErrors: boolean\n hasVisibleError: boolean\n formState: SubmitState\n ajvInstance: Ajv\n contextErrorMessages: CustomErrorMessagesWithPaths\n schema: AllJSONSchemaVersions\n disabled?: boolean\n required?: boolean\n submitState: Partial<EventStateObject>\n isInsideFormElement?: boolean\n prerenderFieldProps?: boolean\n props: ProviderProps<unknown>\n}\n\nexport const defaultContextState: ContextState = {\n hasContext: false,\n data: undefined,\n schema: undefined,\n submitState: undefined,\n handlePathChange: () => null,\n handlePathChangeUnvalidated: () => null,\n updateDataValue: () => null,\n setData: () => null,\n validateData: () => null,\n handleSubmit: () => null,\n scrollToTop: () => null,\n showAllErrors: false,\n hasVisibleError: false,\n formState: undefined,\n setFormState: () => null,\n setSubmitState: () => null,\n setFieldEventListener: () => null,\n handleSubmitCall: () => null,\n setShowAllErrors: () => null,\n handleMountField: () => null,\n handleUnMountField: () => null,\n hasErrors: () => false,\n hasFieldState: () => false,\n hasFieldError: () => false,\n setFieldState: () => null,\n setFieldError: () => null,\n ajvInstance: makeAjvInstance(),\n contextErrorMessages: undefined,\n isInsideFormElement: false,\n props: null,\n}\n\nconst Context = React.createContext<ContextState>(defaultContextState)\n\nexport default Context\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAcC,eAAe,QAAQ,cAAc;AAiInD,OAAO,MAAMC,mBAAiC,GAAG;EAC/CC,UAAU,EAAE,KAAK;EACjBC,IAAI,EAAEC,SAAS;EACfC,MAAM,EAAED,SAAS;EACjBE,WAAW,EAAEF,SAAS;EACtBG,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,2BAA2B,EAAEA,CAAA,KAAM,IAAI;EACvCC,eAAe,EAAEA,CAAA,KAAM,IAAI;EAC3BC,OAAO,EAAEA,CAAA,KAAM,IAAI;EACnBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,WAAW,EAAEA,CAAA,KAAM,IAAI;EACvBC,aAAa,EAAE,KAAK;EACpBC,eAAe,EAAE,KAAK;EACtBC,SAAS,EAAEZ,SAAS;EACpBa,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,cAAc,EAAEA,CAAA,KAAM,IAAI;EAC1BC,qBAAqB,EAAEA,CAAA,KAAM,IAAI;EACjCC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,kBAAkB,EAAEA,CAAA,KAAM,IAAI;EAC9BC,SAAS,EAAEA,CAAA,KAAM,KAAK;EACtBC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,aAAa,EAAEA,CAAA,KAAM,IAAI;EACzBC,aAAa,EAAEA,CAAA,KAAM,IAAI;EACzBC,WAAW,EAAE7B,eAAe,CAAC,CAAC;EAC9B8B,oBAAoB,EAAE1B,SAAS;EAC/B2B,mBAAmB,EAAE,KAAK;EAC1BC,KAAK,EAAE;AACT,CAAC;AAED,MAAMC,OAAO,GAAGlC,KAAK,CAACmC,aAAa,CAAejC,mBAAmB,CAAC;AAEtE,eAAegC,OAAO"}
1
+ {"version":3,"file":"Context.js","names":["React","makeAjvInstance","defaultContextState","hasContext","data","undefined","schema","submitState","handlePathChange","handlePathChangeUnvalidated","updateDataValue","setData","validateData","handleSubmit","scrollToTop","showAllErrors","hasVisibleError","formState","setFormState","setSubmitState","setFieldEventListener","handleSubmitCall","setShowAllErrors","handleMountField","handleUnMountField","hasErrors","hasFieldState","hasFieldError","setFieldState","setFieldError","ajvInstance","contextErrorMessages","isInsideFormElement","props","Context","createContext"],"sources":["../../../../../src/extensions/forms/DataContext/Context.ts"],"sourcesContent":["import React from 'react'\nimport { Ajv, makeAjvInstance } from '../utils/ajv'\nimport {\n AllJSONSchemaVersions,\n CustomErrorMessagesWithPaths,\n SubmitState,\n Path,\n EventStateObject,\n EventReturnWithStateObject,\n Identifier,\n FieldProps,\n FormError,\n ValueProps,\n} from '../types'\nimport { Props as ProviderProps } from './Provider'\n\ntype HandleSubmitProps = {\n formElement?: HTMLFormElement\n}\n\nexport type EventListenerCall = {\n path?: Path\n type?: 'onSubmit'\n callback: () => any\n}\n\nexport type FilterDataHandler<Data> = (\n data: Data,\n filter: FilterData\n) => Partial<Data>\nexport type FilterDataHandlerCallback<R> = (\n parameters: FilterDataHandlerParameters\n) => R\nexport type FilterDataHandlerParameters =\n FilterDataPathConditionParameters & {\n path: Path\n }\nexport type FilterDataPathCondition<Data = unknown> = (\n parameters: FilterDataPathConditionParameters<Data>\n) => boolean | undefined\nexport type FilterDataPathConditionParameters<Data = unknown> = {\n value: unknown\n props: FieldProps\n data: Data\n internal: {\n error: Error | undefined\n }\n}\nexport type FilterDataPathObject<Data> = Record<\n Path,\n FilterDataPathCondition<Data> | boolean | undefined\n>\nexport type FilterData<Data = unknown> =\n | FilterDataPathObject<Data>\n | FilterDataHandlerCallback<boolean | undefined>\nexport type TransformData = FilterDataHandlerCallback<unknown>\n\nexport interface ContextState {\n id?: Identifier\n hasContext: boolean\n /** The dataset for the form / form wizard */\n data: any\n /** Should the form validate data before submitting? */\n errors?: Record<string, Error>\n /** Will set autoComplete=\"on\" on each nested Field.String and Field.Number */\n autoComplete?: boolean\n handlePathChange: (\n path: Path,\n value?: any\n ) =>\n | EventReturnWithStateObject\n | unknown\n | Promise<EventReturnWithStateObject | unknown>\n handlePathChangeUnvalidated: (path: Path, value: any) => void\n updateDataValue: (path: Path, value: any) => void\n setData: (data: any) => void\n mutateDataHandler?: (data: any, mutate: TransformData) => any\n filterDataHandler?: (data: any, filter: FilterData) => any\n validateData: () => void\n handleSubmit: (props?: HandleSubmitProps) => any\n scrollToTop: () => void\n setShowAllErrors: (showAllErrors: boolean) => void\n hasErrors: () => boolean\n hasFieldState: (state: SubmitState) => boolean\n hasFieldError: (path: Path) => boolean\n setFieldState: (path: Path, fieldState: SubmitState) => void\n setFieldError: (path: Path, error: Error | FormError) => void\n handleMountField: (path: Path) => void\n handleUnMountField: (path: Path) => void\n setFormState?: (state: SubmitState) => void\n setSubmitState?: (state: EventStateObject) => void\n addOnChangeHandler?: (callback: (data: unknown) => void) => void\n handleSubmitCall: ({\n onSubmit,\n enableAsyncBehaviour,\n skipFieldValidation,\n skipErrorCheck,\n }: {\n onSubmit: () =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n enableAsyncBehaviour: boolean\n skipFieldValidation?: boolean\n skipErrorCheck?: boolean\n }) => void\n setFieldEventListener: (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => void\n setHasVisibleError?: (path: Path, hasError: boolean) => void\n setFieldProps?: (path: Path, props: any) => void\n setValueProps?: (path: Path, props: any) => void\n fieldPropsRef?: React.MutableRefObject<Record<string, FieldProps>>\n valuePropsRef?: React.MutableRefObject<Record<string, ValueProps>>\n showAllErrors: boolean\n hasVisibleError: boolean\n formState: SubmitState\n ajvInstance: Ajv\n contextErrorMessages: CustomErrorMessagesWithPaths\n schema: AllJSONSchemaVersions\n path?: Path\n disabled?: boolean\n required?: boolean\n submitState: Partial<EventStateObject>\n isInsideFormElement?: boolean\n prerenderFieldProps?: boolean\n props: ProviderProps<unknown>\n}\n\nexport const defaultContextState: ContextState = {\n hasContext: false,\n data: undefined,\n schema: undefined,\n submitState: undefined,\n handlePathChange: () => null,\n handlePathChangeUnvalidated: () => null,\n updateDataValue: () => null,\n setData: () => null,\n validateData: () => null,\n handleSubmit: () => null,\n scrollToTop: () => null,\n showAllErrors: false,\n hasVisibleError: false,\n formState: undefined,\n setFormState: () => null,\n setSubmitState: () => null,\n setFieldEventListener: () => null,\n handleSubmitCall: () => null,\n setShowAllErrors: () => null,\n handleMountField: () => null,\n handleUnMountField: () => null,\n hasErrors: () => false,\n hasFieldState: () => false,\n hasFieldError: () => false,\n setFieldState: () => null,\n setFieldError: () => null,\n ajvInstance: makeAjvInstance(),\n contextErrorMessages: undefined,\n isInsideFormElement: false,\n props: null,\n}\n\nconst Context = React.createContext<ContextState>(defaultContextState)\n\nexport default Context\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAcC,eAAe,QAAQ,cAAc;AAkInD,OAAO,MAAMC,mBAAiC,GAAG;EAC/CC,UAAU,EAAE,KAAK;EACjBC,IAAI,EAAEC,SAAS;EACfC,MAAM,EAAED,SAAS;EACjBE,WAAW,EAAEF,SAAS;EACtBG,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,2BAA2B,EAAEA,CAAA,KAAM,IAAI;EACvCC,eAAe,EAAEA,CAAA,KAAM,IAAI;EAC3BC,OAAO,EAAEA,CAAA,KAAM,IAAI;EACnBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,WAAW,EAAEA,CAAA,KAAM,IAAI;EACvBC,aAAa,EAAE,KAAK;EACpBC,eAAe,EAAE,KAAK;EACtBC,SAAS,EAAEZ,SAAS;EACpBa,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,cAAc,EAAEA,CAAA,KAAM,IAAI;EAC1BC,qBAAqB,EAAEA,CAAA,KAAM,IAAI;EACjCC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,kBAAkB,EAAEA,CAAA,KAAM,IAAI;EAC9BC,SAAS,EAAEA,CAAA,KAAM,KAAK;EACtBC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,aAAa,EAAEA,CAAA,KAAM,IAAI;EACzBC,aAAa,EAAEA,CAAA,KAAM,IAAI;EACzBC,WAAW,EAAE7B,eAAe,CAAC,CAAC;EAC9B8B,oBAAoB,EAAE1B,SAAS;EAC/B2B,mBAAmB,EAAE,KAAK;EAC1BC,KAAK,EAAE;AACT,CAAC;AAED,MAAMC,OAAO,GAAGlC,KAAK,CAACmC,aAAa,CAAejC,mBAAmB,CAAC;AAEtE,eAAegC,OAAO"}
@@ -1,10 +1,11 @@
1
1
  import React from 'react';
2
2
  import { JsonObject } from 'json-pointer';
3
3
  import { Ajv } from '../../utils/ajv';
4
- import { CustomErrorMessagesWithPaths, AllJSONSchemaVersions, Path, OnSubmit, OnChange, EventReturnWithStateObject, OnCommit } from '../../types';
4
+ import { CustomErrorMessagesWithPaths, AllJSONSchemaVersions, Path, OnSubmit, OnChange, EventReturnWithStateObject } from '../../types';
5
+ import type { IsolationProviderProps } from '../../Form/Isolation/Isolation';
5
6
  import { ContextProps } from '../../../../shared/Context';
6
7
  import { FilterData, TransformData } from '../Context';
7
- export interface Props<Data extends JsonObject> {
8
+ export interface Props<Data extends JsonObject> extends IsolationProviderProps<Data> {
8
9
  /**
9
10
  * Unique ID to communicate with the hook Form.useData
10
11
  */
@@ -57,7 +58,7 @@ export interface Props<Data extends JsonObject> {
57
58
  /**
58
59
  * Change handler for each value
59
60
  */
60
- onPathChange?: (path: Path, value: any) => EventReturnWithStateObject | void | Promise<EventReturnWithStateObject | void>;
61
+ onPathChange?: (path: Path, value: unknown) => EventReturnWithStateObject | void | Promise<EventReturnWithStateObject | void>;
61
62
  /**
62
63
  * Will emit on a form submit – if validation has passed.
63
64
  * You can provide an async function to shows a submit indicator during submit. All form elements will be disabled during the submit.
@@ -75,11 +76,6 @@ export interface Props<Data extends JsonObject> {
75
76
  * The result of the onSubmit function
76
77
  */
77
78
  result: unknown) => EventReturnWithStateObject | void | Promise<EventReturnWithStateObject | void>;
78
- /**
79
- * Used internally by the Form.Isolation component.
80
- * Will emit on a nested form context commit – if validation has passed.
81
- */
82
- onCommit?: OnCommit<Data>;
83
79
  /**
84
80
  * Minimum time to display the submit indicator.
85
81
  */
@@ -108,10 +104,6 @@ export interface Props<Data extends JsonObject> {
108
104
  * Make all fields required
109
105
  */
110
106
  required?: boolean;
111
- /**
112
- * Used internally by the Form.Isolation component
113
- */
114
- isolate?: boolean;
115
107
  /**
116
108
  * The children of the context provider
117
109
  */
@@ -121,4 +113,5 @@ export default function Provider<Data extends JsonObject>(props: Props<Data>): i
121
113
  type PathList = string[];
122
114
  export declare function addListPath(paths: PathList, path: Path): PathList;
123
115
  export declare function removeListPath(paths: PathList, path: Path): PathList;
116
+ export declare const clearedData: Readonly<{}>;
124
117
  export {};
@@ -2,7 +2,7 @@
2
2
 
3
3
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
4
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
5
- const _excluded = ["id", "globalStatusId", "defaultData", "data", "schema", "onChange", "onPathChange", "onSubmit", "onSubmitRequest", "onSubmitComplete", "onCommit", "scrollTopOnSubmit", "minimumAsyncBehaviorTime", "asyncSubmitTimeout", "sessionStorageId", "ajvInstance", "transformIn", "transformOut", "filterSubmitData", "filterData", "locale", "translations", "required", "errorMessages", "isolate", "children"];
5
+ const _excluded = ["id", "globalStatusId", "defaultData", "data", "schema", "onChange", "onPathChange", "onSubmit", "onSubmitRequest", "onSubmitComplete", "onCommit", "onClear", "scrollTopOnSubmit", "minimumAsyncBehaviorTime", "asyncSubmitTimeout", "sessionStorageId", "ajvInstance", "transformIn", "transformOut", "filterSubmitData", "filterData", "locale", "translations", "required", "errorMessages", "isolate", "children"];
6
6
  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; }
7
7
  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; }
8
8
  import React, { useRef, useMemo, useCallback, useReducer, useEffect, useContext } from 'react';
@@ -20,7 +20,7 @@ import structuredClone from '@ungap/structured-clone';
20
20
  const useLayoutEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;
21
21
  const isArrayJsonPointer = /^\/\d+(\/|$)/;
22
22
  export default function Provider(props) {
23
- var _sharedAttachments$da;
23
+ var _sharedAttachments$da, _sharedData$data3;
24
24
  const [, forceUpdate] = useReducer(() => ({}), {});
25
25
  const {
26
26
  id,
@@ -34,6 +34,7 @@ export default function Provider(props) {
34
34
  onSubmitRequest,
35
35
  onSubmitComplete,
36
36
  onCommit,
37
+ onClear,
37
38
  scrollTopOnSubmit,
38
39
  minimumAsyncBehaviorTime,
39
40
  asyncSubmitTimeout,
@@ -55,8 +56,7 @@ export default function Provider(props) {
55
56
  throw new Error('Use "defaultData" instead of "data" when using sessionStorageId');
56
57
  }
57
58
  const {
58
- hasContext,
59
- handlePathChange: handlePathChangeNested
59
+ hasContext
60
60
  } = useContext(Context) || {};
61
61
  if (hasContext && !isolate) {
62
62
  throw new Error('DataContext (Form.Handler) can not be nested');
@@ -275,7 +275,7 @@ export default function Provider(props) {
275
275
  shared: sharedData.data,
276
276
  hasUsedInitialData: false
277
277
  });
278
- internalDataRef.current = useMemo(() => {
278
+ const internalData = useMemo(() => {
279
279
  if (id && initialData && !sharedData.data) {
280
280
  sharedData.update(initialData);
281
281
  }
@@ -286,7 +286,13 @@ export default function Provider(props) {
286
286
  return sharedData.data;
287
287
  }
288
288
  if (id && sharedData.data && cacheRef.current.shared !== sharedData.data && sharedData.data !== internalDataRef.current) {
289
+ var _sharedData$data;
289
290
  cacheRef.current.shared = sharedData.data;
291
+ if ((_sharedData$data = sharedData.data) !== null && _sharedData$data !== void 0 && _sharedData$data.clearForm) {
292
+ const clear = cacheRef.current.shared = clearedData;
293
+ setSharedData(clear);
294
+ return clear;
295
+ }
290
296
  return _objectSpread(_objectSpread({}, internalDataRef.current), sharedData.data);
291
297
  }
292
298
  if (data !== cacheRef.current.data) {
@@ -294,7 +300,14 @@ export default function Provider(props) {
294
300
  return data;
295
301
  }
296
302
  return internalDataRef.current;
297
- }, [data, id, initialData, sharedData]);
303
+ }, [id, initialData, sharedData, data, setSharedData]);
304
+ internalDataRef.current = props.path && pointer.has(internalData, props.path) ? pointer.get(internalData, props.path) : internalData;
305
+ useEffect(() => {
306
+ var _sharedData$data2;
307
+ if ((_sharedData$data2 = sharedData.data) !== null && _sharedData$data2 !== void 0 && _sharedData$data2.clearForm) {
308
+ onClear === null || onClear === void 0 ? void 0 : onClear();
309
+ }
310
+ }, [onClear, (_sharedData$data3 = sharedData.data) === null || _sharedData$data3 === void 0 ? void 0 : _sharedData$data3.clearForm]);
298
311
  useLayoutEffect(() => {
299
312
  if (id && initialData && !sharedData.data) {
300
313
  extendSharedData === null || extendSharedData === void 0 ? void 0 : extendSharedData(initialData);
@@ -415,6 +428,15 @@ export default function Provider(props) {
415
428
  });
416
429
  }
417
430
  }, []);
431
+ const clearData = useCallback(() => {
432
+ internalDataRef.current = clearedData;
433
+ if (id) {
434
+ setSharedData === null || setSharedData === void 0 ? void 0 : setSharedData(internalDataRef.current);
435
+ } else {
436
+ forceUpdate();
437
+ }
438
+ onClear === null || onClear === void 0 ? void 0 : onClear();
439
+ }, [id, onClear, setSharedData]);
418
440
  const handleSubmitCall = useCallback(async args => {
419
441
  const {
420
442
  onSubmit,
@@ -448,8 +470,15 @@ export default function Provider(props) {
448
470
  let result;
449
471
  try {
450
472
  if (isolate) {
451
- handlePathChangeNested === null || handlePathChangeNested === void 0 ? void 0 : handlePathChangeNested('/', internalDataRef.current);
452
- result = await (onCommit === null || onCommit === void 0 ? void 0 : onCommit(internalDataRef.current));
473
+ const mounterData = {};
474
+ mountedFieldPathsRef.current.forEach(path => {
475
+ if (pointer.has(internalDataRef.current, path)) {
476
+ pointer.set(mounterData, path, pointer.get(internalDataRef.current, path));
477
+ }
478
+ });
479
+ result = await (onCommit === null || onCommit === void 0 ? void 0 : onCommit(mounterData, {
480
+ clearData
481
+ }));
453
482
  } else {
454
483
  result = await onSubmit();
455
484
  }
@@ -490,7 +519,7 @@ export default function Provider(props) {
490
519
  setShowAllErrors(true);
491
520
  }
492
521
  return internalDataRef.current;
493
- }, [isolate, setSubmitState, hasErrors, hasFieldState, hasFieldWithAsyncValidator, handlePathChangeNested, onCommit, setFormState, onSubmitRequest, setShowAllErrors]);
522
+ }, [clearData, hasErrors, hasFieldState, hasFieldWithAsyncValidator, isolate, onCommit, onSubmitRequest, setFormState, setShowAllErrors, setSubmitState]);
494
523
  const handleSubmit = useCallback(async ({
495
524
  formElement = null
496
525
  } = {}) => {
@@ -510,14 +539,7 @@ export default function Provider(props) {
510
539
  }
511
540
  forceUpdate();
512
541
  },
513
- clearData: () => {
514
- internalDataRef.current = {};
515
- if (id) {
516
- setSharedData === null || setSharedData === void 0 ? void 0 : setSharedData({});
517
- } else {
518
- forceUpdate();
519
- }
520
- }
542
+ clearData
521
543
  };
522
544
  let result = undefined;
523
545
  if (isAsync(onSubmit)) {
@@ -535,7 +557,7 @@ export default function Provider(props) {
535
557
  return result;
536
558
  }
537
559
  });
538
- }, [filterDataHandler, handleSubmitCall, id, mutateDataHandler, onSubmit, onSubmitComplete, scrollToTop, scrollTopOnSubmit, sessionStorageId, setSharedData, transformOut]);
560
+ }, [clearData, filterDataHandler, handleSubmitCall, mutateDataHandler, onSubmit, onSubmitComplete, scrollToTop, scrollTopOnSubmit, sessionStorageId, transformOut]);
539
561
  const fieldEventListenersRef = useRef([]);
540
562
  const setFieldEventListener = useCallback((path, type, callback) => {
541
563
  fieldEventListenersRef.current = fieldEventListenersRef.current.filter(({
@@ -737,4 +759,5 @@ function useFormStatusBuffer(props) {
737
759
  bufferedFormState: stateRef.current
738
760
  };
739
761
  }
762
+ export const clearedData = Object.freeze({});
740
763
  //# sourceMappingURL=Provider.js.map