@dnb/eufemia 10.45.0 → 10.46.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 (465) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/cjs/components/CopyOnClick.d.ts +12 -0
  3. package/cjs/components/CopyOnClick.js +24 -0
  4. package/cjs/components/CopyOnClick.js.map +1 -0
  5. package/cjs/components/copy-on-click/CopyOnClick.d.ts +9 -0
  6. package/cjs/components/copy-on-click/CopyOnClick.js +72 -0
  7. package/cjs/components/copy-on-click/CopyOnClick.js.map +1 -0
  8. package/cjs/components/copy-on-click/CopyOnClickDocs.d.ts +2 -0
  9. package/cjs/components/copy-on-click/CopyOnClickDocs.js +25 -0
  10. package/cjs/components/copy-on-click/CopyOnClickDocs.js.map +1 -0
  11. package/cjs/components/copy-on-click/index.d.ts +7 -0
  12. package/cjs/components/copy-on-click/index.js +24 -0
  13. package/cjs/components/copy-on-click/index.js.map +1 -0
  14. package/cjs/components/copy-on-click/style/dnb-copy-on-click.css +7 -0
  15. package/cjs/components/copy-on-click/style/dnb-copy-on-click.min.css +1 -0
  16. package/cjs/components/copy-on-click/style/dnb-copy-on-click.scss +10 -0
  17. package/cjs/components/copy-on-click/style/index.d.ts +5 -0
  18. package/cjs/components/copy-on-click/style/index.js +4 -0
  19. package/cjs/components/copy-on-click/style/index.js.map +1 -0
  20. package/cjs/components/copy-on-click/style.d.ts +5 -0
  21. package/cjs/components/copy-on-click/style.js +4 -0
  22. package/cjs/components/copy-on-click/style.js.map +1 -0
  23. package/cjs/components/copy-on-click/types.d.ts +19 -0
  24. package/cjs/components/copy-on-click/types.js +1 -0
  25. package/cjs/components/copy-on-click/types.js.map +1 -0
  26. package/cjs/components/index.d.ts +2 -1
  27. package/cjs/components/index.js +7 -0
  28. package/cjs/components/index.js.map +1 -1
  29. package/cjs/components/lib.d.ts +6 -1
  30. package/cjs/components/lib.js +8 -0
  31. package/cjs/components/lib.js.map +1 -1
  32. package/cjs/components/pagination/Pagination.d.ts +27 -1
  33. package/cjs/components/pagination/Pagination.js +3 -1
  34. package/cjs/components/pagination/Pagination.js.map +1 -1
  35. package/cjs/components/pagination/PaginationInfinity.js +20 -8
  36. package/cjs/components/pagination/PaginationInfinity.js.map +1 -1
  37. package/cjs/extensions/forms/DataContext/Context.d.ts +2 -2
  38. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  39. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +1 -5
  40. package/cjs/extensions/forms/DataContext/Provider/Provider.js +26 -19
  41. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  42. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +2 -7
  43. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  44. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +15 -3
  45. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +12 -3
  46. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  47. package/cjs/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js +10 -0
  48. package/cjs/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js.map +1 -1
  49. package/cjs/extensions/forms/Field/Email/Email.js +1 -1
  50. package/cjs/extensions/forms/Field/Email/Email.js.map +1 -1
  51. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +22 -3
  52. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  53. package/cjs/extensions/forms/Field/Number/Number.d.ts +2 -2
  54. package/cjs/extensions/forms/Field/Number/Number.js +33 -31
  55. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  56. package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.d.ts +3 -1
  57. package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +11 -3
  58. package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
  59. package/cjs/extensions/forms/Field/Selection/Selection.d.ts +1 -1
  60. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  61. package/cjs/extensions/forms/Field/Selection/SelectionDocs.js +6 -1
  62. package/cjs/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  63. package/cjs/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  64. package/cjs/extensions/forms/Form/Handler/Handler.js +1 -3
  65. package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
  66. package/cjs/extensions/forms/Form/Isolation/Isolation.d.ts +1 -1
  67. package/cjs/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  68. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js +0 -1
  69. package/cjs/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  70. package/cjs/extensions/forms/Form/Section/Section.js.map +1 -1
  71. package/cjs/extensions/forms/Form/data-context/useData.js +9 -7
  72. package/cjs/extensions/forms/Form/data-context/useData.js.map +1 -1
  73. package/cjs/extensions/forms/Value/SelectCountry/SelectCountry.d.ts +7 -0
  74. package/cjs/extensions/forms/Value/SelectCountry/SelectCountry.js +54 -0
  75. package/cjs/extensions/forms/Value/SelectCountry/SelectCountry.js.map +1 -0
  76. package/cjs/extensions/forms/Value/SelectCountry/index.d.ts +2 -0
  77. package/cjs/extensions/forms/Value/SelectCountry/index.js +27 -0
  78. package/cjs/extensions/forms/Value/SelectCountry/index.js.map +1 -0
  79. package/cjs/extensions/forms/Value/Selection/SelectionDocs.js +1 -1
  80. package/cjs/extensions/forms/Value/Selection/SelectionDocs.js.map +1 -1
  81. package/cjs/extensions/forms/Value/index.d.ts +1 -0
  82. package/cjs/extensions/forms/Value/index.js +7 -0
  83. package/cjs/extensions/forms/Value/index.js.map +1 -1
  84. package/cjs/extensions/forms/ValueBlock/ValueBlock.js +4 -3
  85. package/cjs/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  86. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.css +3 -0
  87. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  88. package/cjs/extensions/forms/ValueBlock/style/dnb-value-block.scss +3 -0
  89. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +4 -4
  90. package/cjs/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  91. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +2 -0
  92. package/cjs/extensions/forms/constants/locales/en-GB.js +3 -1
  93. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  94. package/cjs/extensions/forms/constants/locales/en-US.d.ts +2 -0
  95. package/cjs/extensions/forms/constants/locales/index.d.ts +4 -0
  96. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +2 -0
  97. package/cjs/extensions/forms/constants/locales/nb-NO.js +3 -1
  98. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  99. package/cjs/extensions/forms/hooks/DataValueDocs.js +3 -3
  100. package/cjs/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  101. package/cjs/extensions/forms/style/dnb-forms.css +3 -0
  102. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  103. package/cjs/extensions/forms/types.d.ts +5 -2
  104. package/cjs/extensions/forms/types.js.map +1 -1
  105. package/cjs/index.d.ts +2 -1
  106. package/cjs/index.js +7 -0
  107. package/cjs/index.js.map +1 -1
  108. package/cjs/shared/Context.js +4 -6
  109. package/cjs/shared/Context.js.map +1 -1
  110. package/cjs/shared/Eufemia.d.ts +1 -1
  111. package/cjs/shared/Eufemia.js +2 -2
  112. package/cjs/shared/Eufemia.js.map +1 -1
  113. package/cjs/shared/locales/en-GB.d.ts +3 -0
  114. package/cjs/shared/locales/en-GB.js +3 -0
  115. package/cjs/shared/locales/en-GB.js.map +1 -1
  116. package/cjs/shared/locales/en-US.d.ts +3 -0
  117. package/cjs/shared/locales/index.d.ts +6 -0
  118. package/cjs/shared/locales/nb-NO.d.ts +3 -0
  119. package/cjs/shared/locales/nb-NO.js +3 -0
  120. package/cjs/shared/locales/nb-NO.js.map +1 -1
  121. package/cjs/style/core/scopes.scss +1 -1
  122. package/cjs/style/dnb-ui-basis.css +1 -1
  123. package/cjs/style/dnb-ui-basis.min.css +1 -1
  124. package/cjs/style/dnb-ui-body.css +1 -1
  125. package/cjs/style/dnb-ui-body.min.css +1 -1
  126. package/cjs/style/dnb-ui-components.css +11 -0
  127. package/cjs/style/dnb-ui-components.min.css +2 -2
  128. package/cjs/style/dnb-ui-components.scss +1 -0
  129. package/cjs/style/dnb-ui-core.css +1 -1
  130. package/cjs/style/dnb-ui-core.min.css +1 -1
  131. package/cjs/style/dnb-ui-extensions.css +3 -0
  132. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  133. package/cjs/style/dnb-ui-forms.css +3 -0
  134. package/cjs/style/dnb-ui-forms.min.css +1 -1
  135. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +14 -0
  136. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  137. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +3 -0
  138. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  139. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +3 -0
  140. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  141. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +14 -0
  142. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  143. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +3 -0
  144. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  145. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +3 -0
  146. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  147. package/cjs/style/themes/theme-ui/ui-theme-components.css +14 -0
  148. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  149. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +3 -0
  150. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  151. package/cjs/style/themes/theme-ui/ui-theme-forms.css +3 -0
  152. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  153. package/components/CopyOnClick.d.ts +12 -0
  154. package/components/CopyOnClick.js +4 -0
  155. package/components/CopyOnClick.js.map +1 -0
  156. package/components/copy-on-click/CopyOnClick.d.ts +9 -0
  157. package/components/copy-on-click/CopyOnClick.js +62 -0
  158. package/components/copy-on-click/CopyOnClick.js.map +1 -0
  159. package/components/copy-on-click/CopyOnClickDocs.d.ts +2 -0
  160. package/components/copy-on-click/CopyOnClickDocs.js +18 -0
  161. package/components/copy-on-click/CopyOnClickDocs.js.map +1 -0
  162. package/components/copy-on-click/index.d.ts +7 -0
  163. package/components/copy-on-click/index.js +4 -0
  164. package/components/copy-on-click/index.js.map +1 -0
  165. package/components/copy-on-click/style/dnb-copy-on-click.css +7 -0
  166. package/components/copy-on-click/style/dnb-copy-on-click.min.css +1 -0
  167. package/components/copy-on-click/style/dnb-copy-on-click.scss +10 -0
  168. package/components/copy-on-click/style/index.d.ts +5 -0
  169. package/components/copy-on-click/style/index.js +1 -0
  170. package/components/copy-on-click/style/index.js.map +1 -0
  171. package/components/copy-on-click/style.d.ts +5 -0
  172. package/components/copy-on-click/style.js +1 -0
  173. package/components/copy-on-click/style.js.map +1 -0
  174. package/components/copy-on-click/types.d.ts +19 -0
  175. package/components/copy-on-click/types.js +1 -0
  176. package/components/copy-on-click/types.js.map +1 -0
  177. package/components/index.d.ts +2 -1
  178. package/components/index.js +2 -1
  179. package/components/index.js.map +1 -1
  180. package/components/lib.d.ts +6 -1
  181. package/components/lib.js +3 -1
  182. package/components/lib.js.map +1 -1
  183. package/components/pagination/Pagination.d.ts +27 -1
  184. package/components/pagination/Pagination.js +3 -1
  185. package/components/pagination/Pagination.js.map +1 -1
  186. package/components/pagination/PaginationInfinity.js +20 -8
  187. package/components/pagination/PaginationInfinity.js.map +1 -1
  188. package/es/components/CopyOnClick.d.ts +12 -0
  189. package/es/components/CopyOnClick.js +4 -0
  190. package/es/components/CopyOnClick.js.map +1 -0
  191. package/es/components/copy-on-click/CopyOnClick.d.ts +9 -0
  192. package/es/components/copy-on-click/CopyOnClick.js +62 -0
  193. package/es/components/copy-on-click/CopyOnClick.js.map +1 -0
  194. package/es/components/copy-on-click/CopyOnClickDocs.d.ts +2 -0
  195. package/es/components/copy-on-click/CopyOnClickDocs.js +18 -0
  196. package/es/components/copy-on-click/CopyOnClickDocs.js.map +1 -0
  197. package/es/components/copy-on-click/index.d.ts +7 -0
  198. package/es/components/copy-on-click/index.js +4 -0
  199. package/es/components/copy-on-click/index.js.map +1 -0
  200. package/es/components/copy-on-click/style/dnb-copy-on-click.css +7 -0
  201. package/es/components/copy-on-click/style/dnb-copy-on-click.min.css +1 -0
  202. package/es/components/copy-on-click/style/dnb-copy-on-click.scss +10 -0
  203. package/es/components/copy-on-click/style/index.d.ts +5 -0
  204. package/es/components/copy-on-click/style/index.js +1 -0
  205. package/es/components/copy-on-click/style/index.js.map +1 -0
  206. package/es/components/copy-on-click/style.d.ts +5 -0
  207. package/es/components/copy-on-click/style.js +1 -0
  208. package/es/components/copy-on-click/style.js.map +1 -0
  209. package/es/components/copy-on-click/types.d.ts +19 -0
  210. package/es/components/copy-on-click/types.js +1 -0
  211. package/es/components/copy-on-click/types.js.map +1 -0
  212. package/es/components/index.d.ts +2 -1
  213. package/es/components/index.js +2 -1
  214. package/es/components/index.js.map +1 -1
  215. package/es/components/lib.d.ts +6 -1
  216. package/es/components/lib.js +3 -1
  217. package/es/components/lib.js.map +1 -1
  218. package/es/components/pagination/Pagination.d.ts +27 -1
  219. package/es/components/pagination/Pagination.js +3 -1
  220. package/es/components/pagination/Pagination.js.map +1 -1
  221. package/es/components/pagination/PaginationInfinity.js +20 -8
  222. package/es/components/pagination/PaginationInfinity.js.map +1 -1
  223. package/es/extensions/forms/DataContext/Context.d.ts +2 -2
  224. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  225. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +1 -5
  226. package/es/extensions/forms/DataContext/Provider/Provider.js +25 -18
  227. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  228. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +2 -7
  229. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  230. package/es/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +15 -3
  231. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +12 -3
  232. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  233. package/es/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js +10 -0
  234. package/es/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js.map +1 -1
  235. package/es/extensions/forms/Field/Email/Email.js +1 -1
  236. package/es/extensions/forms/Field/Email/Email.js.map +1 -1
  237. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +23 -4
  238. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  239. package/es/extensions/forms/Field/Number/Number.d.ts +2 -2
  240. package/es/extensions/forms/Field/Number/Number.js +33 -31
  241. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  242. package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.d.ts +3 -1
  243. package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +8 -1
  244. package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
  245. package/es/extensions/forms/Field/Selection/Selection.d.ts +1 -1
  246. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  247. package/es/extensions/forms/Field/Selection/SelectionDocs.js +6 -1
  248. package/es/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  249. package/es/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  250. package/es/extensions/forms/Form/Handler/Handler.js +1 -3
  251. package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
  252. package/es/extensions/forms/Form/Isolation/Isolation.d.ts +1 -1
  253. package/es/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  254. package/es/extensions/forms/Form/Isolation/IsolationDocs.js +0 -1
  255. package/es/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  256. package/es/extensions/forms/Form/Section/Section.js.map +1 -1
  257. package/es/extensions/forms/Form/data-context/useData.js +9 -7
  258. package/es/extensions/forms/Form/data-context/useData.js.map +1 -1
  259. package/es/extensions/forms/Value/SelectCountry/SelectCountry.d.ts +7 -0
  260. package/es/extensions/forms/Value/SelectCountry/SelectCountry.js +44 -0
  261. package/es/extensions/forms/Value/SelectCountry/SelectCountry.js.map +1 -0
  262. package/es/extensions/forms/Value/SelectCountry/index.d.ts +2 -0
  263. package/es/extensions/forms/Value/SelectCountry/index.js +3 -0
  264. package/es/extensions/forms/Value/SelectCountry/index.js.map +1 -0
  265. package/es/extensions/forms/Value/Selection/SelectionDocs.js +1 -1
  266. package/es/extensions/forms/Value/Selection/SelectionDocs.js.map +1 -1
  267. package/es/extensions/forms/Value/index.d.ts +1 -0
  268. package/es/extensions/forms/Value/index.js +1 -0
  269. package/es/extensions/forms/Value/index.js.map +1 -1
  270. package/es/extensions/forms/ValueBlock/ValueBlock.js +4 -3
  271. package/es/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  272. package/es/extensions/forms/ValueBlock/style/dnb-value-block.css +3 -0
  273. package/es/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  274. package/es/extensions/forms/ValueBlock/style/dnb-value-block.scss +3 -0
  275. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +4 -4
  276. package/es/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  277. package/es/extensions/forms/constants/locales/en-GB.d.ts +2 -0
  278. package/es/extensions/forms/constants/locales/en-GB.js +3 -1
  279. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  280. package/es/extensions/forms/constants/locales/en-US.d.ts +2 -0
  281. package/es/extensions/forms/constants/locales/index.d.ts +4 -0
  282. package/es/extensions/forms/constants/locales/nb-NO.d.ts +2 -0
  283. package/es/extensions/forms/constants/locales/nb-NO.js +3 -1
  284. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  285. package/es/extensions/forms/hooks/DataValueDocs.js +3 -3
  286. package/es/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  287. package/es/extensions/forms/style/dnb-forms.css +3 -0
  288. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  289. package/es/extensions/forms/types.d.ts +5 -2
  290. package/es/extensions/forms/types.js.map +1 -1
  291. package/es/index.d.ts +2 -1
  292. package/es/index.js +2 -1
  293. package/es/index.js.map +1 -1
  294. package/es/shared/Context.js +4 -6
  295. package/es/shared/Context.js.map +1 -1
  296. package/es/shared/Eufemia.d.ts +1 -1
  297. package/es/shared/Eufemia.js +2 -2
  298. package/es/shared/Eufemia.js.map +1 -1
  299. package/es/shared/locales/en-GB.d.ts +3 -0
  300. package/es/shared/locales/en-GB.js +3 -0
  301. package/es/shared/locales/en-GB.js.map +1 -1
  302. package/es/shared/locales/en-US.d.ts +3 -0
  303. package/es/shared/locales/index.d.ts +6 -0
  304. package/es/shared/locales/nb-NO.d.ts +3 -0
  305. package/es/shared/locales/nb-NO.js +3 -0
  306. package/es/shared/locales/nb-NO.js.map +1 -1
  307. package/es/style/core/scopes.scss +1 -1
  308. package/es/style/dnb-ui-basis.css +1 -1
  309. package/es/style/dnb-ui-basis.min.css +1 -1
  310. package/es/style/dnb-ui-body.css +1 -1
  311. package/es/style/dnb-ui-body.min.css +1 -1
  312. package/es/style/dnb-ui-components.css +11 -0
  313. package/es/style/dnb-ui-components.min.css +2 -2
  314. package/es/style/dnb-ui-components.scss +1 -0
  315. package/es/style/dnb-ui-core.css +1 -1
  316. package/es/style/dnb-ui-core.min.css +1 -1
  317. package/es/style/dnb-ui-extensions.css +3 -0
  318. package/es/style/dnb-ui-extensions.min.css +1 -1
  319. package/es/style/dnb-ui-forms.css +3 -0
  320. package/es/style/dnb-ui-forms.min.css +1 -1
  321. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +14 -0
  322. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  323. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +3 -0
  324. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  325. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +3 -0
  326. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  327. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +14 -0
  328. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  329. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +3 -0
  330. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  331. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +3 -0
  332. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  333. package/es/style/themes/theme-ui/ui-theme-components.css +14 -0
  334. package/es/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  335. package/es/style/themes/theme-ui/ui-theme-extensions.css +3 -0
  336. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  337. package/es/style/themes/theme-ui/ui-theme-forms.css +3 -0
  338. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  339. package/esm/dnb-ui-basis.min.mjs +1 -1
  340. package/esm/dnb-ui-components.min.mjs +1 -1
  341. package/esm/dnb-ui-elements.min.mjs +1 -1
  342. package/esm/dnb-ui-extensions.min.mjs +2 -2
  343. package/esm/dnb-ui-lib.min.mjs +1 -1
  344. package/extensions/forms/DataContext/Context.d.ts +2 -2
  345. package/extensions/forms/DataContext/Context.js.map +1 -1
  346. package/extensions/forms/DataContext/Provider/Provider.d.ts +1 -5
  347. package/extensions/forms/DataContext/Provider/Provider.js +26 -19
  348. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  349. package/extensions/forms/DataContext/Provider/ProviderDocs.js +2 -7
  350. package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  351. package/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +15 -3
  352. package/extensions/forms/Field/ArraySelection/ArraySelection.js +12 -3
  353. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  354. package/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js +10 -0
  355. package/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js.map +1 -1
  356. package/extensions/forms/Field/Email/Email.js +1 -1
  357. package/extensions/forms/Field/Email/Email.js.map +1 -1
  358. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +23 -4
  359. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  360. package/extensions/forms/Field/Number/Number.d.ts +2 -2
  361. package/extensions/forms/Field/Number/Number.js +33 -31
  362. package/extensions/forms/Field/Number/Number.js.map +1 -1
  363. package/extensions/forms/Field/SelectCountry/SelectCountryDocs.d.ts +3 -1
  364. package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +8 -1
  365. package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
  366. package/extensions/forms/Field/Selection/Selection.d.ts +1 -1
  367. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  368. package/extensions/forms/Field/Selection/SelectionDocs.js +6 -1
  369. package/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  370. package/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  371. package/extensions/forms/Form/Handler/Handler.js +1 -3
  372. package/extensions/forms/Form/Handler/Handler.js.map +1 -1
  373. package/extensions/forms/Form/Isolation/Isolation.d.ts +1 -1
  374. package/extensions/forms/Form/Isolation/Isolation.js.map +1 -1
  375. package/extensions/forms/Form/Isolation/IsolationDocs.js +0 -1
  376. package/extensions/forms/Form/Isolation/IsolationDocs.js.map +1 -1
  377. package/extensions/forms/Form/Section/Section.js.map +1 -1
  378. package/extensions/forms/Form/data-context/useData.js +9 -7
  379. package/extensions/forms/Form/data-context/useData.js.map +1 -1
  380. package/extensions/forms/Value/SelectCountry/SelectCountry.d.ts +7 -0
  381. package/extensions/forms/Value/SelectCountry/SelectCountry.js +44 -0
  382. package/extensions/forms/Value/SelectCountry/SelectCountry.js.map +1 -0
  383. package/extensions/forms/Value/SelectCountry/index.d.ts +2 -0
  384. package/extensions/forms/Value/SelectCountry/index.js +3 -0
  385. package/extensions/forms/Value/SelectCountry/index.js.map +1 -0
  386. package/extensions/forms/Value/Selection/SelectionDocs.js +1 -1
  387. package/extensions/forms/Value/Selection/SelectionDocs.js.map +1 -1
  388. package/extensions/forms/Value/index.d.ts +1 -0
  389. package/extensions/forms/Value/index.js +1 -0
  390. package/extensions/forms/Value/index.js.map +1 -1
  391. package/extensions/forms/ValueBlock/ValueBlock.js +4 -3
  392. package/extensions/forms/ValueBlock/ValueBlock.js.map +1 -1
  393. package/extensions/forms/ValueBlock/style/dnb-value-block.css +3 -0
  394. package/extensions/forms/ValueBlock/style/dnb-value-block.min.css +1 -1
  395. package/extensions/forms/ValueBlock/style/dnb-value-block.scss +3 -0
  396. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js +4 -4
  397. package/extensions/forms/blocks/ChildrenWithAge/ChildrenWithAge.js.map +1 -1
  398. package/extensions/forms/constants/locales/en-GB.d.ts +2 -0
  399. package/extensions/forms/constants/locales/en-GB.js +3 -1
  400. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  401. package/extensions/forms/constants/locales/en-US.d.ts +2 -0
  402. package/extensions/forms/constants/locales/index.d.ts +4 -0
  403. package/extensions/forms/constants/locales/nb-NO.d.ts +2 -0
  404. package/extensions/forms/constants/locales/nb-NO.js +3 -1
  405. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  406. package/extensions/forms/hooks/DataValueDocs.js +3 -3
  407. package/extensions/forms/hooks/DataValueDocs.js.map +1 -1
  408. package/extensions/forms/style/dnb-forms.css +3 -0
  409. package/extensions/forms/style/dnb-forms.min.css +1 -1
  410. package/extensions/forms/types.d.ts +5 -2
  411. package/extensions/forms/types.js.map +1 -1
  412. package/index.d.ts +2 -1
  413. package/index.js +2 -1
  414. package/index.js.map +1 -1
  415. package/package.json +2 -1
  416. package/shared/Context.js +4 -6
  417. package/shared/Context.js.map +1 -1
  418. package/shared/Eufemia.d.ts +1 -1
  419. package/shared/Eufemia.js +2 -2
  420. package/shared/Eufemia.js.map +1 -1
  421. package/shared/locales/en-GB.d.ts +3 -0
  422. package/shared/locales/en-GB.js +3 -0
  423. package/shared/locales/en-GB.js.map +1 -1
  424. package/shared/locales/en-US.d.ts +3 -0
  425. package/shared/locales/index.d.ts +6 -0
  426. package/shared/locales/nb-NO.d.ts +3 -0
  427. package/shared/locales/nb-NO.js +3 -0
  428. package/shared/locales/nb-NO.js.map +1 -1
  429. package/style/core/scopes.scss +1 -1
  430. package/style/dnb-ui-basis.css +1 -1
  431. package/style/dnb-ui-basis.min.css +1 -1
  432. package/style/dnb-ui-body.css +1 -1
  433. package/style/dnb-ui-body.min.css +1 -1
  434. package/style/dnb-ui-components.css +11 -0
  435. package/style/dnb-ui-components.min.css +2 -2
  436. package/style/dnb-ui-components.scss +1 -0
  437. package/style/dnb-ui-core.css +1 -1
  438. package/style/dnb-ui-core.min.css +1 -1
  439. package/style/dnb-ui-extensions.css +3 -0
  440. package/style/dnb-ui-extensions.min.css +1 -1
  441. package/style/dnb-ui-forms.css +3 -0
  442. package/style/dnb-ui-forms.min.css +1 -1
  443. package/style/themes/theme-eiendom/eiendom-theme-components.css +14 -0
  444. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +2 -2
  445. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +3 -0
  446. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  447. package/style/themes/theme-eiendom/eiendom-theme-forms.css +3 -0
  448. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  449. package/style/themes/theme-sbanken/sbanken-theme-components.css +14 -0
  450. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  451. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +3 -0
  452. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  453. package/style/themes/theme-sbanken/sbanken-theme-forms.css +3 -0
  454. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  455. package/style/themes/theme-ui/ui-theme-components.css +14 -0
  456. package/style/themes/theme-ui/ui-theme-components.min.css +2 -2
  457. package/style/themes/theme-ui/ui-theme-extensions.css +3 -0
  458. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  459. package/style/themes/theme-ui/ui-theme-forms.css +3 -0
  460. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  461. package/umd/dnb-ui-basis.min.js +1 -1
  462. package/umd/dnb-ui-components.min.js +1 -1
  463. package/umd/dnb-ui-elements.min.js +1 -1
  464. package/umd/dnb-ui-extensions.min.js +2 -2
  465. package/umd/dnb-ui-lib.min.js +1 -1
@@ -20,7 +20,7 @@ var _useSharedState = require("../../../../shared/helpers/useSharedState");
20
20
  var _useTranslation = _interopRequireDefault(require("../../hooks/useTranslation"));
21
21
  var _Context = _interopRequireDefault(require("../Context"));
22
22
  var _structuredClone = _interopRequireDefault(require("@ungap/structured-clone"));
23
- 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"];
23
+ const _excluded = ["id", "globalStatusId", "defaultData", "data", "schema", "onChange", "onPathChange", "onSubmit", "onSubmitRequest", "onSubmitComplete", "onCommit", "onClear", "scrollTopOnSubmit", "minimumAsyncBehaviorTime", "asyncSubmitTimeout", "sessionStorageId", "ajvInstance", "transformIn", "transformOut", "filterSubmitData", "locale", "translations", "required", "errorMessages", "isolate", "children"];
24
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
25
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
26
26
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -57,7 +57,6 @@ function Provider(props) {
57
57
  transformIn,
58
58
  transformOut,
59
59
  filterSubmitData,
60
- filterData,
61
60
  locale,
62
61
  translations,
63
62
  required,
@@ -256,13 +255,16 @@ function Provider(props) {
256
255
  }
257
256
  return data;
258
257
  }, []);
259
- const filterDataHandler = (0, _react.useCallback)(function (data) {
260
- let filter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : filterData || filterSubmitData;
258
+ const filterDataHandler = (0, _react.useCallback)((data, filter) => {
261
259
  if (filter) {
262
260
  return mutateDataHandler(data, filter, true);
263
261
  }
264
262
  return data;
265
- }, [filterData, filterSubmitData, mutateDataHandler]);
263
+ }, [mutateDataHandler]);
264
+ const filterData = (0, _react.useCallback)(function (filter) {
265
+ let data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : internalDataRef.current;
266
+ return filterDataHandler(data, filter);
267
+ }, [filterDataHandler]);
266
268
  const fieldPropsRef = (0, _react.useRef)({});
267
269
  const valuePropsRef = (0, _react.useRef)({});
268
270
  const setFieldProps = (0, _react.useCallback)((path, props) => {
@@ -344,11 +346,11 @@ function Provider(props) {
344
346
  setShowAllErrors,
345
347
  setSubmitState
346
348
  });
347
- if (filterData || filterSubmitData) {
349
+ if (filterSubmitData) {
348
350
  rerenderUseDataHook === null || rerenderUseDataHook === void 0 ? void 0 : rerenderUseDataHook();
349
351
  }
350
352
  }
351
- }, [extendAttachment, filterData, filterDataHandler, filterSubmitData, hasErrors, hasFieldError, id, rerenderUseDataHook, setShowAllErrors, setSubmitState]);
353
+ }, [extendAttachment, filterDataHandler, filterSubmitData, hasErrors, hasFieldError, id, rerenderUseDataHook, setShowAllErrors, setSubmitState]);
352
354
  const storeInSession = (0, _react.useMemo)(() => {
353
355
  return (0, _helpers.debounce)(() => {
354
356
  var _window$sessionStorag2;
@@ -376,7 +378,7 @@ function Provider(props) {
376
378
  internalDataRef.current = newData;
377
379
  if (id) {
378
380
  extendSharedData === null || extendSharedData === void 0 ? void 0 : extendSharedData(newData);
379
- if (filterData || filterSubmitData) {
381
+ if (filterSubmitData) {
380
382
  rerenderUseDataHook === null || rerenderUseDataHook === void 0 ? void 0 : rerenderUseDataHook();
381
383
  }
382
384
  }
@@ -384,7 +386,7 @@ function Provider(props) {
384
386
  storeInSession();
385
387
  }
386
388
  forceUpdate();
387
- }, [extendSharedData, filterData, filterSubmitData, id, mutateDataHandler, rerenderUseDataHook, sessionStorageId, storeInSession, transformIn]);
389
+ }, [extendSharedData, filterSubmitData, id, mutateDataHandler, rerenderUseDataHook, sessionStorageId, storeInSession, transformIn]);
388
390
  const setData = (0, _react.useCallback)(newData => {
389
391
  internalDataRef.current = newData;
390
392
  forceUpdate();
@@ -411,19 +413,22 @@ function Provider(props) {
411
413
  showAllErrorsRef.current = false;
412
414
  validateData();
413
415
  const data = internalDataRef.current;
416
+ const options = {
417
+ filterData
418
+ };
414
419
  const transformedData = transformOut ? mutateDataHandler(data, transformOut) : data;
415
420
  for (const cb of changeHandlerStackRef.current) {
416
421
  if ((0, _isAsync.isAsync)(onChange)) {
417
- await cb(transformedData);
422
+ await cb(transformedData, options);
418
423
  } else {
419
- cb(transformedData);
424
+ cb(transformedData, options);
420
425
  }
421
426
  }
422
427
  if ((0, _isAsync.isAsync)(onChange)) {
423
- return await onChange(transformedData);
428
+ return await onChange(transformedData, options);
424
429
  }
425
- return onChange === null || onChange === void 0 ? void 0 : onChange(transformedData);
426
- }, [handlePathChangeUnvalidated, mutateDataHandler, onChange, transformOut, validateData]);
430
+ return onChange === null || onChange === void 0 ? void 0 : onChange(transformedData, options);
431
+ }, [filterData, handlePathChangeUnvalidated, mutateDataHandler, onChange, transformOut, validateData]);
427
432
  const changeHandlerStackRef = (0, _react.useRef)([]);
428
433
  const addOnChangeHandler = (0, _react.useCallback)(callback => {
429
434
  const exists = changeHandlerStackRef.current.some(cb => {
@@ -561,8 +566,10 @@ function Provider(props) {
561
566
  return;
562
567
  }
563
568
  const data = internalDataRef.current;
564
- const filteredData = filterDataHandler(transformOut ? mutateDataHandler(data, transformOut) : data);
565
- const opts = {
569
+ const mutatedData = transformOut ? mutateDataHandler(data, transformOut) : data;
570
+ const filteredData = filterSubmitData ? filterDataHandler(mutatedData, filterSubmitData) : mutatedData;
571
+ const options = {
572
+ filterData,
566
573
  resetForm: () => {
567
574
  var _formElement$reset;
568
575
  formElement === null || formElement === void 0 ? void 0 : (_formElement$reset = formElement.reset) === null || _formElement$reset === void 0 ? void 0 : _formElement$reset.call(formElement);
@@ -577,9 +584,9 @@ function Provider(props) {
577
584
  };
578
585
  let result = undefined;
579
586
  if ((0, _isAsync.isAsync)(onSubmit)) {
580
- result = await onSubmit(filteredData, opts);
587
+ result = await onSubmit(filteredData, options);
581
588
  } else {
582
- result = onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(filteredData, opts);
589
+ result = onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(filteredData, options);
583
590
  }
584
591
  const completeResult = await (onSubmitComplete === null || onSubmitComplete === void 0 ? void 0 : onSubmitComplete(filteredData, result));
585
592
  if (completeResult) {
@@ -591,7 +598,7 @@ function Provider(props) {
591
598
  return result;
592
599
  }
593
600
  });
594
- }, [clearData, filterDataHandler, handleSubmitCall, mutateDataHandler, onSubmit, onSubmitComplete, scrollToTop, scrollTopOnSubmit, sessionStorageId, transformOut]);
601
+ }, [clearData, filterData, filterDataHandler, filterSubmitData, handleSubmitCall, handleSubmitListeners, mutateDataHandler, onSubmit, onSubmitComplete, scrollToTop, scrollTopOnSubmit, sessionStorageId, transformOut]);
595
602
  const fieldEventListenersRef = (0, _react.useRef)([]);
596
603
  const setFieldEventListener = (0, _react.useCallback)((path, type, callback) => {
597
604
  fieldEventListenersRef.current = fieldEventListenersRef.current.filter(_ref4 => {
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.js","names":["_react","_interopRequireWildcard","require","_jsonPointer","_interopRequireDefault","_ajv","_helpers","_FieldProps","_useMountEffect","_useUpdateEffect","_isAsync","_useSharedState","_useTranslation","_Context","_structuredClone","_excluded","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","useLayoutEffect","window","React","useEffect","isArrayJsonPointer","Provider","props","_sharedAttachments$da","_sharedData$data3","forceUpdate","useReducer","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","contextErrorMessages","isolate","children","rest","Error","hasContext","useContext","Context","translation","useTranslation","Field","ajvRef","useRef","makeAjvInstance","mountedFieldPathsRef","hasVisibleErrorRef","errorsRef","showAllErrorsRef","setShowAllErrors","useCallback","showAllErrors","current","setHasVisibleError","path","hasError","submitStateRef","setSubmitState","state","assign","formStateRef","setFormState","formState","fieldErrorRef","fieldStateRef","initialData","useMemo","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","internalDataRef","ajvValidatorRef","executeAjvValidator","_ajvValidatorRef$curr","ajvErrorsToFormErrors","errors","validateData","checkFieldStateFor","_errorsRef$current","Boolean","hasFieldState","some","hasFieldError","p","hasErrors","setFieldError","error","setFieldState","fieldState","mutateDataHandler","remove","mutate","result","structuredClone","pointer","entries","fieldPropsRef","_ref","exists","_fieldErrorRef$curren","internal","runFilter","_ref2","condition","_fieldPropsRef$curren","_fieldErrorRef$curren2","wildcardPaths","_ref3","includes","parts","split","traverse","subData","subPath","idx","list","Array","isArray","_","filterDataHandler","valuePropsRef","setFieldProps","setValueProps","hasFieldWithAsyncValidator","isAsync","validator","onBlurValidator","sharedData","useSharedState","sharedAttachments","setSharedData","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","internalData","update","_sharedData$data","clearForm","clear","clearedData","_sharedData$data2","storeInSession","debounce","_window$sessionStorag2","setItem","stringify","process","env","NODE_ENV","updateDataValue","_internalDataRef$curr","givenData","match","newData","e","setData","handlePathChangeUnvalidated","handlePathChange","transformedData","cb","changeHandlerStackRef","addOnChangeHandler","callback","handleMountField","addListPath","handleUnMountField","removeListPath","scrollToTop","_window","_window$scrollTo","scrollTo","top","behavior","clearData","handleSubmitCall","args","enableAsyncBehaviour","skipFieldValidation","skipErrorCheck","asyncBehaviorIsEnabled","type","fieldEventListenersRef","warning","info","requestAnimationFrame","onSubmitContinueRef","handleSubmitListenersRef","setHandleSubmit","handleSubmitListeners","stop","preventSubmit","handleSubmit","formElement","filteredData","opts","resetForm","_formElement$reset","reset","removeItem","completeResult","setFieldEventListener","_ref4","t","_onSubmitContinueRef$","useMountEffect","_ajvRef$current","compile","useUpdateEffect","_ajvRef$current2","onTimeout","bufferedFormState","useFormStatusBuffer","waitFor","submitState","disabled","createElement","hasVisibleError","FormStatus","globalStatus","title","errorSummaryTitle","show","paths","concat","thisPath","stateRef","nowRef","timeoutRef","setState","clearTimeout","hadCompleteRef","activeElementRef","isTest","minimum","setTimeout","document","activeElement","Date","now","offset","Math","max","delay","complete","_activeElementRef$cur","_activeElementRef$cur2","focus","timeout","freeze","exports"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/Provider.tsx"],"sourcesContent":["import React, {\n useRef,\n useMemo,\n useCallback,\n useReducer,\n useEffect,\n useContext,\n} from 'react'\nimport pointer, { JsonObject } from 'json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport {\n Ajv,\n makeAjvInstance,\n ajvErrorsToFormErrors,\n} from '../../utils/ajv'\nimport {\n FormError,\n CustomErrorMessagesWithPaths,\n AllJSONSchemaVersions,\n FieldProps,\n SubmitState,\n Path,\n EventStateObject,\n OnSubmit,\n OnChange,\n EventReturnWithStateObject,\n ValueProps,\n} from '../../types'\nimport type { IsolationProviderProps } from '../../Form/Isolation/Isolation'\nimport { debounce } from '../../../../shared/helpers'\nimport FieldPropsProvider from '../../Form/FieldProps'\nimport useMountEffect from '../../../../shared/helpers/useMountEffect'\nimport useUpdateEffect from '../../../../shared/helpers/useUpdateEffect'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport { useSharedState } from '../../../../shared/helpers/useSharedState'\nimport { ContextProps } from '../../../../shared/Context'\nimport useTranslation from '../../hooks/useTranslation'\nimport Context, {\n ContextState,\n EventListenerCall,\n FilterData,\n HandleSubmitCallback,\n TransformData,\n} from '../Context'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So its a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport interface Props<Data extends JsonObject>\n extends IsolationProviderProps<Data> {\n /**\n * Unique ID to communicate with the hook Form.useData\n */\n id?: string\n /**\n * Unique ID to connect with a GlobalStatus\n */\n globalStatusId?: string\n /**\n * Default source data, only used if no other source is available, and not leading to updates if changed after mount\n */\n defaultData?: Data\n /**\n * Source data, will be used instead of defaultData, and leading to updates if changed after mount\n */\n data?: Data\n /**\n * JSON Schema to validate the data against.\n */\n schema?: AllJSONSchemaVersions<Data>\n /**\n * Custom Ajv instance, if you want to use your own\n */\n ajvInstance?: Ajv\n /**\n * Custom error messages for the whole data set\n */\n errorMessages?: CustomErrorMessagesWithPaths\n /**\n * Filter the `onSubmit` output data, based on your criteria: `({ path, value, data, props, internal }) => !props?.disabled`. It will iterate on each data entry (/path). Return false to exclude the entry.\n */\n filterSubmitData?: FilterData\n /**\n * @deprecated Use `filterSubmitData` instead\n */\n filterData?: FilterData\n /**\n * Transform the data context (internally as well) based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformIn?: TransformData\n /**\n * Mutate the data before it enters onSubmit or onChange based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformOut?: TransformData\n /**\n * Change handler for the whole data set.\n * You can provide an async function to show an indicator on the current label during a field change.\n */\n onChange?: OnChange<Data>\n /**\n * Change handler for each value\n */\n onPathChange?: (\n path: Path,\n value: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Will emit on a form submit – if validation has passed.\n * You can provide an async function to shows a submit indicator during submit. All form elements will be disabled during the submit.\n */\n onSubmit?: OnSubmit<Data>\n /**\n * Submit was requested, but data was invalid\n */\n onSubmitRequest?: () => void\n /**\n * Will be called when the onSubmit is finished and had not errors\n */\n onSubmitComplete?: (\n data: Data,\n /**\n * The result of the onSubmit function\n */\n result: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Minimum time to display the submit indicator.\n */\n minimumAsyncBehaviorTime?: number\n /**\n * The maximum time to display the submit indicator before it changes back to normal. In case something went wrong during submission.\n */\n asyncSubmitTimeout?: number\n /**\n * Scroll to top on submit\n */\n scrollTopOnSubmit?: boolean\n /**\n * Key for caching the data in session storage\n */\n sessionStorageId?: string\n /**\n * Locale to use for all nested Eufemia components\n */\n locale?: ContextProps['locale']\n /**\n * Provide your own translations. Use the same format as defined in the translation files\n */\n translations?: ContextProps['translations']\n /**\n * Make all fields required\n */\n required?: boolean\n /**\n * The children of the context provider\n */\n children: React.ReactNode\n}\n\nconst isArrayJsonPointer = /^\\/\\d+(\\/|$)/\n\nexport default function Provider<Data extends JsonObject>(\n props: Props<Data>\n) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const {\n id,\n globalStatusId = 'main',\n defaultData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n onCommit,\n onClear,\n scrollTopOnSubmit,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n sessionStorageId,\n ajvInstance,\n transformIn,\n transformOut,\n filterSubmitData,\n filterData,\n locale,\n translations,\n required,\n errorMessages: contextErrorMessages,\n isolate,\n children,\n ...rest\n } = props\n\n // Prop error handling\n if (data !== undefined && sessionStorageId !== undefined) {\n throw new Error(\n 'Use \"defaultData\" instead of \"data\" when using sessionStorageId'\n )\n }\n\n const { hasContext } = useContext(Context) || {}\n\n if (hasContext && !isolate) {\n throw new Error('DataContext (Form.Handler) can not be nested')\n }\n\n // - Locale\n const translation = useTranslation().Field\n\n // - Ajv\n const ajvRef = useRef<Ajv>(makeAjvInstance(ajvInstance))\n\n // - Paths\n const mountedFieldPathsRef = useRef<Path[]>([])\n\n // - Errors from provider validation (the whole data set)\n const hasVisibleErrorRef = useRef<Record<Path, boolean>>({})\n const errorsRef = useRef<Record<Path, FormError> | undefined>()\n const showAllErrorsRef = useRef<boolean>(false)\n const setShowAllErrors = useCallback((showAllErrors: boolean) => {\n showAllErrorsRef.current = showAllErrors\n forceUpdate()\n }, [])\n const setHasVisibleError = useCallback(\n (path: Path, hasError: boolean) => {\n if (hasError) {\n hasVisibleErrorRef.current[path] = hasError\n } else {\n delete hasVisibleErrorRef.current[path]\n }\n forceUpdate()\n },\n []\n )\n const submitStateRef = useRef<Partial<EventStateObject>>({})\n const setSubmitState = useCallback((state: EventStateObject) => {\n Object.assign(submitStateRef.current, state)\n forceUpdate()\n }, [])\n\n // - Progress\n const formStateRef = useRef<SubmitState>()\n const setFormState = useCallback((formState: SubmitState) => {\n formStateRef.current = formState\n forceUpdate()\n }, [])\n\n // - States (e.g. error) reported by fields, based on their direct validation rules\n const fieldErrorRef = useRef<Record<Path, Error>>({})\n const fieldStateRef = useRef<Record<Path, SubmitState>>({})\n\n // - Data\n const initialData = useMemo<Data>(() => {\n if (sessionStorageId && typeof window !== 'undefined') {\n const sessionDataJSON =\n window.sessionStorage?.getItem(sessionStorageId)\n if (sessionDataJSON) {\n return JSON.parse(sessionDataJSON)\n }\n }\n\n return data ?? defaultData\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Avoid triggering code that should only run initially\n }, [])\n const internalDataRef = useRef<Data>(initialData)\n\n // - Validator\n const ajvValidatorRef = useRef<ValidateFunction>()\n const executeAjvValidator = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n if (!ajvValidatorRef.current?.(internalDataRef.current)) {\n // Errors found\n errorsRef.current = ajvErrorsToFormErrors(\n ajvValidatorRef.current.errors,\n internalDataRef.current\n )\n } else {\n errorsRef.current = undefined\n }\n }, [])\n const validateData = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n executeAjvValidator()\n forceUpdate()\n }, [executeAjvValidator])\n\n // - Error handling\n const checkFieldStateFor = useCallback(\n (path: Path, state: SubmitState) => {\n return Boolean(\n state === 'error'\n ? errorsRef.current?.[path] instanceof Error ||\n fieldErrorRef.current[path] instanceof Error\n : fieldStateRef.current[path] === state\n )\n },\n []\n )\n const hasFieldState = useCallback(\n (state: SubmitState) => {\n return mountedFieldPathsRef.current.some((path) => {\n return checkFieldStateFor(path, state)\n })\n },\n [checkFieldStateFor]\n )\n const hasFieldError = useCallback(\n (path: Path) => {\n return mountedFieldPathsRef.current.some((p) => {\n return p === path && checkFieldStateFor(p, 'error')\n })\n },\n [checkFieldStateFor]\n )\n const hasErrors = useCallback(() => {\n return hasFieldState('error')\n }, [hasFieldState])\n\n /**\n * Sets the error state for a specific path\n */\n const setFieldError = useCallback(\n (path: Path, error: Error | FormError) => {\n fieldErrorRef.current[path] = error\n },\n []\n )\n\n /**\n * Sets the field state for a specific path\n */\n const setFieldState = useCallback(\n (path: Path, fieldState: SubmitState) => {\n if (fieldState !== fieldStateRef.current[path]) {\n // The state for the target value was changed\n fieldStateRef.current[path] = fieldState\n forceUpdate()\n }\n },\n []\n )\n\n /**\n * Mutate the data set based on the filterData function\n */\n const mutateDataHandler = useCallback(\n (data: Data, filter: FilterData | TransformData, remove = false) => {\n const mutate = (path: Path, result: boolean | unknown) => {\n if (remove) {\n if (result === false) {\n data = structuredClone(data)\n pointer.remove(data, path)\n }\n } else {\n if (typeof result !== 'undefined') {\n data = structuredClone(data)\n pointer.set(data, path, result)\n }\n }\n }\n\n if (typeof filter === 'function') {\n Object.entries(fieldPropsRef.current).forEach(([path, props]) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const value = pointer.get(data, path)\n const internal = {\n error: fieldErrorRef.current?.[path],\n }\n const result = filter({\n path,\n value,\n data: internalDataRef.current,\n props,\n internal,\n })\n mutate(path, result)\n }\n })\n\n return data\n } else if (filter) {\n const runFilter = ({ path, condition }) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const value = pointer.get(data, path)\n const props = fieldPropsRef.current?.[path]\n const internal = { error: fieldErrorRef.current?.[path] }\n const result =\n typeof condition === 'function'\n ? condition({\n value,\n data: internalDataRef.current,\n props,\n internal,\n })\n : condition\n mutate(path, result)\n }\n }\n\n const wildcardPaths = []\n\n Object.entries(filter).forEach(([path, condition]) => {\n if (path.includes('*')) {\n const parts = path.split(/\\/\\*/g)\n const exists = pointer.has(data, parts[0])\n if (exists) {\n const traverse = (\n subData: unknown,\n subPath: string,\n idx: number\n ) => {\n if (idx === parts.length - 1) {\n wildcardPaths.push({ path: subPath, condition })\n return\n }\n const list = pointer.get(subData, subPath)\n if (Array.isArray(list)) {\n list.forEach((_, i) => {\n traverse(\n list[i],\n `${subPath}/${i}${parts[idx + 1]}`,\n idx + 1\n )\n })\n }\n }\n traverse(data, parts[0], 0)\n }\n } else {\n runFilter({ path, condition })\n }\n })\n\n wildcardPaths.forEach(runFilter)\n\n return data\n }\n\n return data\n },\n []\n )\n\n /**\n * Filter the data set based on the filterData function\n */\n const filterDataHandler = useCallback(\n (data: Data, filter = filterData || filterSubmitData) => {\n if (filter) {\n return mutateDataHandler(data, filter, true)\n }\n\n return data\n },\n [filterData, filterSubmitData, mutateDataHandler]\n )\n\n const fieldPropsRef = useRef<Record<Path, FieldProps>>({})\n const valuePropsRef = useRef<Record<Path, ValueProps<unknown>>>({})\n const setFieldProps = useCallback(\n (path: Path, props: Record<string, unknown>) => {\n fieldPropsRef.current[path] = props\n },\n []\n )\n const setValueProps = useCallback(\n (path: Path, props: Record<string, unknown>) => {\n valuePropsRef.current[path] = props\n },\n []\n )\n const hasFieldWithAsyncValidator = useCallback(() => {\n for (const path in fieldPropsRef.current) {\n if (mountedFieldPathsRef.current.includes(path)) {\n const props = fieldPropsRef.current[path]\n if (isAsync(props.validator) || isAsync(props.onBlurValidator)) {\n return true\n }\n }\n }\n\n return false\n }, [])\n\n // - Shared state\n const sharedData = useSharedState<Data>(id)\n const sharedAttachments = useSharedState<{\n filterDataHandler?: Props<Data>['filterSubmitData']\n hasErrors?: ContextState['hasErrors']\n hasFieldError?: ContextState['hasFieldError']\n setShowAllErrors?: ContextState['setShowAllErrors']\n setSubmitState?: ContextState['setSubmitState']\n rerenderUseDataHook?: () => void\n }>(id + '-attachments')\n\n const setSharedData = sharedData.set\n const extendSharedData = sharedData.extend\n const extendAttachment = sharedAttachments.extend\n const rerenderUseDataHook = sharedAttachments.data?.rerenderUseDataHook\n\n const cacheRef = useRef({\n data,\n schema,\n shared: sharedData.data,\n hasUsedInitialData: false,\n })\n\n const internalData = useMemo(() => {\n // NB: \"sharedData.data\" is only available on a rerender.\n // Update the shared state, if initialData is given and no shared state is available.\n // We do almost the same later in a useLayoutEffect, but we need to do it here as well, so we set the data as early as possible.\n if (id && initialData && !sharedData.data) {\n sharedData.update(initialData)\n }\n\n // Merge both internal data and the shared state, if it both where given\n if (\n id &&\n initialData &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data &&\n internalDataRef.current === initialData\n ) {\n return {\n ...internalDataRef.current,\n ...sharedData.data,\n }\n }\n\n // Use shared state if no initial and initial data, and the shared state exists\n if (\n id &&\n !initialData &&\n !internalDataRef.current &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data\n ) {\n return sharedData.data\n }\n\n // Merge the internal data with the shared state, if the shared was updated and not the same as internal data\n if (\n id &&\n sharedData.data &&\n cacheRef.current.shared !== sharedData.data &&\n sharedData.data !== internalDataRef.current\n ) {\n cacheRef.current.shared = sharedData.data\n\n // Reset the shared state, if clearForm is set\n if (sharedData.data?.clearForm) {\n const clear = (cacheRef.current.shared = clearedData as Data)\n setSharedData(clear)\n return clear\n }\n\n return {\n ...internalDataRef.current,\n ...sharedData.data,\n }\n }\n\n // When external data has changed, update the internal data\n if (data !== cacheRef.current.data) {\n cacheRef.current.data = data\n return data\n }\n\n return internalDataRef.current\n }, [id, initialData, sharedData, data, setSharedData])\n\n internalDataRef.current =\n props.path && pointer.has(internalData, props.path)\n ? pointer.get(internalData, props.path)\n : internalData\n\n useEffect(() => {\n if (sharedData.data?.clearForm) {\n onClear?.()\n }\n }, [onClear, sharedData.data?.clearForm])\n\n useLayoutEffect(() => {\n // Set the shared state, if initialData was given\n if (id && initialData && !sharedData.data) {\n extendSharedData?.(initialData)\n }\n }, [id, initialData, extendSharedData, sharedData.data])\n\n useMemo(() => {\n executeAjvValidator()\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [internalDataRef.current]) // run validation when internal data has changed\n\n useLayoutEffect(() => {\n if (id) {\n extendAttachment?.({\n filterDataHandler,\n hasErrors,\n hasFieldError,\n setShowAllErrors,\n setSubmitState,\n })\n if (filterData || filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n }, [\n extendAttachment,\n filterData,\n filterDataHandler,\n filterSubmitData,\n hasErrors,\n hasFieldError,\n id,\n rerenderUseDataHook,\n setShowAllErrors,\n setSubmitState,\n ])\n\n const storeInSession = useMemo(() => {\n return debounce(\n () => {\n window.sessionStorage?.setItem(\n sessionStorageId,\n JSON.stringify(internalDataRef.current)\n )\n },\n process.env.NODE_ENV === 'test' ? 1 : 800\n )\n }, [sessionStorageId])\n\n /**\n * Update the data set\n */\n const updateDataValue: ContextState['updateDataValue'] = useCallback(\n (path, value) => {\n if (!path) {\n return\n }\n\n const givenData = (\n path === '/'\n ? // When setting the root of the data, the whole data set should be the new value\n value\n : // For sub paths, use the existing data set (or empty array/object), but modify it below (since pointer.set is not immutable)\n internalDataRef.current ??\n (path.match(isArrayJsonPointer) ? [] : {})\n ) as Data\n\n let newData: Data = null\n try {\n // Update the data even if it contains errors. Submit/SubmitRequest will be called accordingly\n newData = structuredClone(givenData)\n } catch (e) {\n newData = givenData\n }\n\n if (path !== '/') {\n pointer.set(newData, path, value)\n }\n\n // - Mutate the data context\n if (transformIn) {\n newData = mutateDataHandler(newData, transformIn)\n }\n\n internalDataRef.current = newData\n\n if (id) {\n // Will ensure that Form.getData() gets the correct data\n extendSharedData?.(newData)\n if (filterData || filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n\n if (sessionStorageId && typeof window !== 'undefined') {\n storeInSession()\n }\n\n forceUpdate()\n },\n [\n extendSharedData,\n filterData,\n filterSubmitData,\n id,\n mutateDataHandler,\n rerenderUseDataHook,\n sessionStorageId,\n storeInSession,\n transformIn,\n ]\n )\n\n const setData = useCallback((newData: Data) => {\n internalDataRef.current = newData\n forceUpdate()\n }, [])\n\n /**\n * Update the data set on user interaction (unvalidated)\n */\n const handlePathChangeUnvalidated: ContextState['handlePathChange'] =\n useCallback(\n async (path, value) => {\n if (!path) {\n return null\n }\n\n updateDataValue(path, value)\n\n if (isAsync(onPathChange)) {\n await onPathChange?.(path, value)\n } else {\n onPathChange?.(path, value)\n }\n },\n [onPathChange, updateDataValue]\n )\n\n /**\n * Update the data set on user interaction\n */\n const handlePathChange: ContextState['handlePathChange'] = useCallback(\n async (path, value = '_undefined_') => {\n if (!path) {\n return null\n }\n\n if (value !== '_undefined_') {\n handlePathChangeUnvalidated(path, value)\n }\n\n showAllErrorsRef.current = false\n\n validateData()\n\n const data = internalDataRef.current as Data\n const transformedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n for (const cb of changeHandlerStackRef.current) {\n if (isAsync(onChange)) {\n await cb(transformedData)\n } else {\n cb(transformedData)\n }\n }\n\n if (isAsync(onChange)) {\n return await onChange(transformedData)\n }\n\n return onChange?.(transformedData)\n },\n [\n handlePathChangeUnvalidated,\n mutateDataHandler,\n onChange,\n transformOut,\n validateData,\n ]\n )\n\n const changeHandlerStackRef = useRef<Array<OnChange<Data>>>([])\n const addOnChangeHandler = useCallback(\n (callback: (data: unknown) => void) => {\n const exists = changeHandlerStackRef.current.some((cb) => {\n return callback === cb\n })\n if (!exists) {\n changeHandlerStackRef.current.push(callback)\n }\n },\n []\n )\n\n // - Mounted fields\n const handleMountField = useCallback((path: Path) => {\n mountedFieldPathsRef.current = addListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n const handleUnMountField = useCallback((path: Path) => {\n mountedFieldPathsRef.current = removeListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n // - Features\n const scrollToTop = useCallback(() => {\n if (typeof window !== 'undefined') {\n window?.scrollTo?.({ top: 0, behavior: 'smooth' })\n }\n }, [])\n\n const clearData = useCallback(() => {\n internalDataRef.current = clearedData as Data\n if (id) {\n setSharedData?.(internalDataRef.current)\n } else {\n forceUpdate()\n }\n onClear?.()\n }, [id, onClear, setSharedData])\n\n /**\n * Shared logic dedicated to submit the whole form\n */\n const handleSubmitCall = useCallback<ContextState['handleSubmitCall']>(\n async (args) => {\n const {\n onSubmit,\n enableAsyncBehaviour,\n skipFieldValidation,\n skipErrorCheck,\n } = args\n\n setSubmitState({ error: undefined })\n\n const asyncBehaviorIsEnabled =\n (skipErrorCheck\n ? true\n : // Don't enable async behaviour if we have errors, but when we have a pending state\n !hasErrors() || hasFieldState('pending')) &&\n (enableAsyncBehaviour || hasFieldWithAsyncValidator())\n\n if (asyncBehaviorIsEnabled) {\n setFormState('pending')\n }\n\n // Just call the submit listeners \"once\", and not on the retry/recall\n if (!skipFieldValidation) {\n for (const {\n path,\n type,\n callback,\n } of fieldEventListenersRef.current) {\n if (\n type === 'onSubmit' &&\n mountedFieldPathsRef.current.includes(path)\n ) {\n // Call all submit listener callbacks (e.g. to validate fields)\n if (asyncBehaviorIsEnabled) {\n await callback()\n } else {\n callback()\n }\n }\n }\n }\n\n if (\n !(skipErrorCheck ? false : hasErrors()) &&\n !hasFieldState('pending') &&\n (skipFieldValidation ? true : !hasFieldState('error'))\n ) {\n let result: EventStateObject | unknown\n\n try {\n if (isolate) {\n result = await onCommit?.(internalDataRef.current, {\n clearData,\n })\n } else {\n result = await onSubmit()\n }\n\n if (result instanceof Error) {\n throw result\n }\n } catch (error) {\n result = { error }\n }\n\n const state = result as EventStateObject\n\n if (asyncBehaviorIsEnabled) {\n setFormState(state?.error ? 'abort' : 'complete')\n }\n\n // Force the state to be set by a custom status\n if (state?.['status']) {\n setFormState(state?.['status'])\n }\n\n if (state?.error || state?.warning || state?.info) {\n setSubmitState(state)\n }\n } else {\n if (asyncBehaviorIsEnabled) {\n window.requestAnimationFrame(() => {\n setFormState(undefined)\n })\n\n if (!skipFieldValidation) {\n // Add a event listener to continue the submit after the pending state is resolved\n onSubmitContinueRef.current = () => {\n window.requestAnimationFrame(() => {\n // Do not call the validators again,\n // because we already did it in the first call\n // If they are async, we wait for them to finish anyway\n handleSubmitCall({ ...args, skipFieldValidation: true })\n })\n }\n }\n }\n\n onSubmitRequest?.()\n\n setShowAllErrors(true)\n }\n\n return internalDataRef.current\n },\n [\n clearData,\n hasErrors,\n hasFieldState,\n hasFieldWithAsyncValidator,\n isolate,\n onCommit,\n onSubmitRequest,\n setFormState,\n setShowAllErrors,\n setSubmitState,\n ]\n )\n\n const handleSubmitListenersRef = useRef<Array<HandleSubmitCallback>>([])\n const setHandleSubmit: ContextState['setHandleSubmit'] = useCallback(\n (callback) => {\n if (!handleSubmitListenersRef.current.includes(callback)) {\n handleSubmitListenersRef.current.push(callback)\n }\n },\n []\n )\n const handleSubmitListeners = useCallback(() => {\n let stop = false\n const preventSubmit = () => (stop = true)\n handleSubmitListenersRef.current.forEach((cb) => {\n cb({ preventSubmit })\n })\n return stop\n }, [])\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback<ContextState['handleSubmit']>(\n async ({ formElement = null } = {}) => {\n handleSubmitCall({\n enableAsyncBehaviour: isAsync(onSubmit),\n onSubmit: async () => {\n if (handleSubmitListeners()) {\n return // stop here\n }\n\n // - Mutate the data context\n const data = internalDataRef.current\n const filteredData = filterDataHandler(\n transformOut ? mutateDataHandler(data, transformOut) : data\n )\n const opts = {\n resetForm: () => {\n formElement?.reset?.()\n\n if (typeof window !== 'undefined') {\n if (sessionStorageId) {\n window.sessionStorage.removeItem(sessionStorageId)\n }\n }\n\n forceUpdate() // in order to fill \"empty fields\" again with their internal states\n },\n clearData,\n }\n\n let result = undefined\n\n if (isAsync(onSubmit)) {\n result = await onSubmit(filteredData, opts)\n } else {\n result = onSubmit?.(filteredData, opts)\n }\n\n const completeResult = await onSubmitComplete?.(\n filteredData,\n result\n )\n if (completeResult) {\n result =\n Object.keys(result).length > 0\n ? { ...result, ...completeResult }\n : completeResult\n }\n\n if (scrollTopOnSubmit) {\n scrollToTop()\n }\n\n return result\n },\n })\n },\n [\n clearData,\n filterDataHandler,\n handleSubmitCall,\n mutateDataHandler,\n onSubmit,\n onSubmitComplete,\n scrollToTop,\n scrollTopOnSubmit,\n sessionStorageId,\n transformOut,\n ]\n )\n\n // Collect listeners to be called during form submit\n const fieldEventListenersRef = useRef<Array<EventListenerCall>>([])\n const setFieldEventListener = useCallback(\n (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => {\n fieldEventListenersRef.current =\n fieldEventListenersRef.current.filter(({ path: p, type: t }) => {\n return !(p === path && t === type)\n })\n fieldEventListenersRef.current.push({ path, type, callback })\n },\n []\n )\n\n // Handle unresolved field states during async submit\n const onSubmitContinueRef = useRef<() => void>(null)\n if (!hasFieldState('pending')) {\n onSubmitContinueRef.current?.()\n onSubmitContinueRef.current = null\n }\n\n // - ajv validator routines\n useMountEffect(() => {\n if (schema) {\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n }\n\n // Validate the initial data\n validateData()\n })\n useUpdateEffect(() => {\n if (schema && schema !== cacheRef.current.schema) {\n cacheRef.current.schema = schema\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n\n validateData()\n forceUpdate()\n }\n }, [schema, validateData, forceUpdate])\n\n const onTimeout = useCallback(() => {\n setFormState(undefined)\n setSubmitState({\n info: undefined,\n warning: undefined,\n error: undefined,\n })\n }, [setFormState, setSubmitState])\n\n const { bufferedFormState: formState } = useFormStatusBuffer({\n formState: formStateRef.current,\n waitFor: hasFieldState('pending'),\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n })\n\n const submitState = submitStateRef.current\n const disabled =\n typeof rest?.['disabled'] === 'boolean'\n ? rest?.['disabled']\n : (formState === 'pending') === true\n ? true\n : undefined\n\n return (\n <Context.Provider\n value={{\n /** Method */\n handlePathChange,\n handlePathChangeUnvalidated,\n handleSubmit,\n handleMountField,\n handleUnMountField,\n handleSubmitCall,\n setFormState,\n setSubmitState,\n setShowAllErrors,\n setHasVisibleError,\n setFieldEventListener,\n setFieldState,\n setFieldError,\n setFieldProps,\n setValueProps,\n hasErrors,\n hasFieldError,\n hasFieldState,\n validateData,\n updateDataValue,\n setData,\n filterDataHandler,\n addOnChangeHandler,\n setHandleSubmit,\n scrollToTop,\n\n /** State handling */\n schema,\n disabled,\n required,\n formState,\n submitState,\n contextErrorMessages,\n hasContext: true,\n errors: errorsRef.current,\n showAllErrors: showAllErrorsRef.current,\n hasVisibleError:\n Object.keys(hasVisibleErrorRef.current).length > 0,\n fieldPropsRef,\n valuePropsRef,\n mountedFieldPathsRef,\n ajvInstance: ajvRef.current,\n\n /** Additional */\n id,\n data: internalDataRef.current,\n props,\n ...rest,\n }}\n >\n <FieldPropsProvider\n FormStatus={\n globalStatusId\n ? {\n globalStatus: {\n id: globalStatusId,\n title: translation.errorSummaryTitle,\n show: showAllErrorsRef.current,\n },\n }\n : undefined\n }\n formElement={disabled ? { disabled: true } : undefined}\n locale={locale ? locale : undefined}\n translations={translations ? translations : undefined}\n >\n {children}\n </FieldPropsProvider>\n </Context.Provider>\n )\n}\n\ntype PathList = string[]\n\nexport function addListPath(paths: PathList, path: Path): PathList {\n return paths.includes(path) ? paths : paths.concat(path)\n}\n\nexport function removeListPath(paths: PathList, path: Path): PathList {\n return paths.filter((thisPath) => thisPath !== path)\n}\n\ntype FormStatusBufferProps = {\n minimumAsyncBehaviorTime?: Props<unknown>['minimumAsyncBehaviorTime']\n asyncSubmitTimeout?: Props<unknown>['asyncSubmitTimeout']\n formState: ContextState['formState']\n waitFor: boolean\n onTimeout: () => void\n}\n\nfunction useFormStatusBuffer(props: FormStatusBufferProps) {\n const {\n formState,\n waitFor,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n } = props || {}\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const stateRef = useRef<SubmitState>()\n const nowRef = useRef<number | null>(null)\n const timeoutRef = useRef<{\n complete?: NodeJS.Timeout | null\n reset?: NodeJS.Timeout | null\n timeout?: NodeJS.Timeout | null\n }>({})\n\n const setState = useCallback(\n (state: SubmitState) => {\n stateRef.current = state\n forceUpdate()\n },\n [forceUpdate]\n )\n\n const clear = useCallback(() => {\n for (const key in timeoutRef.current) {\n clearTimeout(timeoutRef.current[key])\n }\n }, [])\n\n const hadCompleteRef = useRef(false)\n const activeElementRef = useRef<HTMLElement>(null)\n\n useEffect(() => {\n // This offset is used to calculate the delay,\n // which ensures that the form state is displayed for at least minimumAsyncBehaviorTime duration.\n // If the form was 'pending' for less than minimumAsyncBehaviorTime,\n // the delay will be the remaining time to reach minimumAsyncBehaviorTime.\n const isTest = process.env.NODE_ENV === 'test'\n const minimum =\n minimumAsyncBehaviorTime ??\n // make it testable\n (isTest ? 1 : 1000)\n\n if (stateRef.current && formState === 'error') {\n clear()\n setState(undefined)\n return\n }\n\n if (formState === 'abort') {\n clear()\n setState('abort')\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n }, minimum)\n return\n }\n\n if (formState === 'complete') {\n hadCompleteRef.current = true\n }\n\n if (formState === 'pending' && stateRef.current !== 'pending') {\n activeElementRef.current = document.activeElement as HTMLElement\n clear()\n nowRef.current = Date.now()\n hadCompleteRef.current = false\n setState('pending')\n } else if (stateRef.current === 'pending') {\n const offset = Math.max(Date.now() - nowRef.current)\n const delay = isTest ? minimum : Math.max(minimum - offset, 0)\n\n if (!waitFor) {\n timeoutRef.current.complete = setTimeout(() => {\n if (hadCompleteRef.current) {\n setState('complete')\n }\n window.requestAnimationFrame(() => {\n activeElementRef.current?.focus?.()\n })\n }, delay)\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n clear()\n }, delay + minimum)\n }\n }\n\n if (stateRef.current === 'pending') {\n timeoutRef.current.timeout = setTimeout(() => {\n clear()\n setState(undefined)\n onTimeout?.()\n }, asyncSubmitTimeout ?? 30000)\n }\n\n return clear\n }, [\n clear,\n minimumAsyncBehaviorTime,\n formState,\n setState,\n waitFor,\n asyncSubmitTimeout,\n onTimeout,\n ])\n\n return { bufferedFormState: stateRef.current }\n}\n\nexport const clearedData = Object.freeze({})\n"],"mappings":"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"}
1
+ {"version":3,"file":"Provider.js","names":["_react","_interopRequireWildcard","require","_jsonPointer","_interopRequireDefault","_ajv","_helpers","_FieldProps","_useMountEffect","_useUpdateEffect","_isAsync","_useSharedState","_useTranslation","_Context","_structuredClone","_excluded","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","useLayoutEffect","window","React","useEffect","isArrayJsonPointer","Provider","props","_sharedAttachments$da","_sharedData$data3","forceUpdate","useReducer","id","globalStatusId","defaultData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","onCommit","onClear","scrollTopOnSubmit","minimumAsyncBehaviorTime","asyncSubmitTimeout","sessionStorageId","ajvInstance","transformIn","transformOut","filterSubmitData","locale","translations","required","errorMessages","contextErrorMessages","isolate","children","rest","Error","hasContext","useContext","Context","translation","useTranslation","Field","ajvRef","useRef","makeAjvInstance","mountedFieldPathsRef","hasVisibleErrorRef","errorsRef","showAllErrorsRef","setShowAllErrors","useCallback","showAllErrors","current","setHasVisibleError","path","hasError","submitStateRef","setSubmitState","state","assign","formStateRef","setFormState","formState","fieldErrorRef","fieldStateRef","initialData","useMemo","_window$sessionStorag","sessionDataJSON","sessionStorage","getItem","JSON","parse","internalDataRef","ajvValidatorRef","executeAjvValidator","_ajvValidatorRef$curr","ajvErrorsToFormErrors","errors","validateData","checkFieldStateFor","_errorsRef$current","Boolean","hasFieldState","some","hasFieldError","p","hasErrors","setFieldError","error","setFieldState","fieldState","mutateDataHandler","remove","mutate","result","structuredClone","pointer","entries","fieldPropsRef","_ref","exists","_fieldErrorRef$curren","internal","runFilter","_ref2","condition","_fieldPropsRef$curren","_fieldErrorRef$curren2","wildcardPaths","_ref3","includes","parts","split","traverse","subData","subPath","idx","list","Array","isArray","_","filterDataHandler","filterData","valuePropsRef","setFieldProps","setValueProps","hasFieldWithAsyncValidator","isAsync","validator","onBlurValidator","sharedData","useSharedState","sharedAttachments","setSharedData","extendSharedData","extend","extendAttachment","rerenderUseDataHook","cacheRef","shared","hasUsedInitialData","internalData","update","_sharedData$data","clearForm","clear","clearedData","_sharedData$data2","storeInSession","debounce","_window$sessionStorag2","setItem","stringify","process","env","NODE_ENV","updateDataValue","_internalDataRef$curr","givenData","match","newData","e","setData","handlePathChangeUnvalidated","handlePathChange","options","transformedData","cb","changeHandlerStackRef","addOnChangeHandler","callback","handleMountField","addListPath","handleUnMountField","removeListPath","scrollToTop","_window","_window$scrollTo","scrollTo","top","behavior","clearData","handleSubmitCall","args","enableAsyncBehaviour","skipFieldValidation","skipErrorCheck","asyncBehaviorIsEnabled","type","fieldEventListenersRef","warning","info","requestAnimationFrame","onSubmitContinueRef","handleSubmitListenersRef","setHandleSubmit","handleSubmitListeners","stop","preventSubmit","handleSubmit","formElement","mutatedData","filteredData","resetForm","_formElement$reset","reset","removeItem","completeResult","setFieldEventListener","_ref4","t","_onSubmitContinueRef$","useMountEffect","_ajvRef$current","compile","useUpdateEffect","_ajvRef$current2","onTimeout","bufferedFormState","useFormStatusBuffer","waitFor","submitState","disabled","createElement","hasVisibleError","FormStatus","globalStatus","title","errorSummaryTitle","show","paths","concat","thisPath","stateRef","nowRef","timeoutRef","setState","clearTimeout","hadCompleteRef","activeElementRef","isTest","minimum","setTimeout","document","activeElement","Date","now","offset","Math","max","delay","complete","_activeElementRef$cur","_activeElementRef$cur2","focus","timeout","freeze","exports"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/Provider.tsx"],"sourcesContent":["import React, {\n useRef,\n useMemo,\n useCallback,\n useReducer,\n useEffect,\n useContext,\n} from 'react'\nimport pointer, { JsonObject } from 'json-pointer'\nimport { ValidateFunction } from 'ajv/dist/2020'\nimport {\n Ajv,\n makeAjvInstance,\n ajvErrorsToFormErrors,\n} from '../../utils/ajv'\nimport {\n FormError,\n CustomErrorMessagesWithPaths,\n AllJSONSchemaVersions,\n FieldProps,\n SubmitState,\n Path,\n EventStateObject,\n OnSubmit,\n OnChange,\n EventReturnWithStateObject,\n ValueProps,\n} from '../../types'\nimport type { IsolationProviderProps } from '../../Form/Isolation/Isolation'\nimport { debounce } from '../../../../shared/helpers'\nimport FieldPropsProvider from '../../Form/FieldProps'\nimport useMountEffect from '../../../../shared/helpers/useMountEffect'\nimport useUpdateEffect from '../../../../shared/helpers/useUpdateEffect'\nimport { isAsync } from '../../../../shared/helpers/isAsync'\nimport { useSharedState } from '../../../../shared/helpers/useSharedState'\nimport { ContextProps } from '../../../../shared/Context'\nimport useTranslation from '../../hooks/useTranslation'\nimport Context, {\n ContextState,\n EventListenerCall,\n FilterData,\n FilterDataHandler,\n HandleSubmitCallback,\n TransformData,\n} from '../Context'\n\n/**\n * Deprecated, as it is supported by all major browsers and Node.js >=v18\n * So its a question of time, when we will remove this polyfill\n */\nimport structuredClone from '@ungap/structured-clone'\n\n// SSR warning fix: https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useLayoutEffect =\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\nexport interface Props<Data extends JsonObject>\n extends IsolationProviderProps<Data> {\n /**\n * Unique ID to communicate with the hook Form.useData\n */\n id?: string\n /**\n * Unique ID to connect with a GlobalStatus\n */\n globalStatusId?: string\n /**\n * Default source data, only used if no other source is available, and not leading to updates if changed after mount\n */\n defaultData?: Data\n /**\n * Source data, will be used instead of defaultData, and leading to updates if changed after mount\n */\n data?: Data\n /**\n * JSON Schema to validate the data against.\n */\n schema?: AllJSONSchemaVersions<Data>\n /**\n * Custom Ajv instance, if you want to use your own\n */\n ajvInstance?: Ajv\n /**\n * Custom error messages for the whole data set\n */\n errorMessages?: CustomErrorMessagesWithPaths\n /**\n * @deprecated Use the `filterData` in the second event parameter in the `onSubmit` or `onChange` events.\n */\n filterSubmitData?: FilterData\n /**\n * Transform the data context (internally as well) based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformIn?: TransformData\n /**\n * Mutate the data before it enters onSubmit or onChange based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\n */\n transformOut?: TransformData\n /**\n * Change handler for the whole data set.\n * You can provide an async function to show an indicator on the current label during a field change.\n */\n onChange?: OnChange<Data>\n /**\n * Change handler for each value\n */\n onPathChange?: (\n path: Path,\n value: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Will emit on a form submit – if validation has passed.\n * You can provide an async function to shows a submit indicator during submit. All form elements will be disabled during the submit.\n */\n onSubmit?: OnSubmit<Data>\n /**\n * Submit was requested, but data was invalid\n */\n onSubmitRequest?: () => void\n /**\n * Will be called when the onSubmit is finished and had not errors\n */\n onSubmitComplete?: (\n data: Data,\n /**\n * The result of the onSubmit function\n */\n result: unknown\n ) =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n /**\n * Minimum time to display the submit indicator.\n */\n minimumAsyncBehaviorTime?: number\n /**\n * The maximum time to display the submit indicator before it changes back to normal. In case something went wrong during submission.\n */\n asyncSubmitTimeout?: number\n /**\n * Scroll to top on submit\n */\n scrollTopOnSubmit?: boolean\n /**\n * Key for caching the data in session storage\n */\n sessionStorageId?: string\n /**\n * Locale to use for all nested Eufemia components\n */\n locale?: ContextProps['locale']\n /**\n * Provide your own translations. Use the same format as defined in the translation files\n */\n translations?: ContextProps['translations']\n /**\n * Make all fields required\n */\n required?: boolean\n /**\n * The children of the context provider\n */\n children: React.ReactNode\n}\n\nconst isArrayJsonPointer = /^\\/\\d+(\\/|$)/\n\nexport default function Provider<Data extends JsonObject>(\n props: Props<Data>\n) {\n const [, forceUpdate] = useReducer(() => ({}), {})\n\n const {\n id,\n globalStatusId = 'main',\n defaultData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n onSubmitComplete,\n onCommit,\n onClear,\n scrollTopOnSubmit,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n sessionStorageId,\n ajvInstance,\n transformIn,\n transformOut,\n filterSubmitData,\n locale,\n translations,\n required,\n errorMessages: contextErrorMessages,\n isolate,\n children,\n ...rest\n } = props\n\n // Prop error handling\n if (data !== undefined && sessionStorageId !== undefined) {\n throw new Error(\n 'Use \"defaultData\" instead of \"data\" when using sessionStorageId'\n )\n }\n\n const { hasContext } = useContext(Context) || {}\n\n if (hasContext && !isolate) {\n throw new Error('DataContext (Form.Handler) can not be nested')\n }\n\n // - Locale\n const translation = useTranslation().Field\n\n // - Ajv\n const ajvRef = useRef<Ajv>(makeAjvInstance(ajvInstance))\n\n // - Paths\n const mountedFieldPathsRef = useRef<Path[]>([])\n\n // - Errors from provider validation (the whole data set)\n const hasVisibleErrorRef = useRef<Record<Path, boolean>>({})\n const errorsRef = useRef<Record<Path, FormError> | undefined>()\n const showAllErrorsRef = useRef<boolean>(false)\n const setShowAllErrors = useCallback((showAllErrors: boolean) => {\n showAllErrorsRef.current = showAllErrors\n forceUpdate()\n }, [])\n const setHasVisibleError = useCallback(\n (path: Path, hasError: boolean) => {\n if (hasError) {\n hasVisibleErrorRef.current[path] = hasError\n } else {\n delete hasVisibleErrorRef.current[path]\n }\n forceUpdate()\n },\n []\n )\n const submitStateRef = useRef<Partial<EventStateObject>>({})\n const setSubmitState = useCallback((state: EventStateObject) => {\n Object.assign(submitStateRef.current, state)\n forceUpdate()\n }, [])\n\n // - Progress\n const formStateRef = useRef<SubmitState>()\n const setFormState = useCallback((formState: SubmitState) => {\n formStateRef.current = formState\n forceUpdate()\n }, [])\n\n // - States (e.g. error) reported by fields, based on their direct validation rules\n const fieldErrorRef = useRef<Record<Path, Error>>({})\n const fieldStateRef = useRef<Record<Path, SubmitState>>({})\n\n // - Data\n const initialData = useMemo<Data>(() => {\n if (sessionStorageId && typeof window !== 'undefined') {\n const sessionDataJSON =\n window.sessionStorage?.getItem(sessionStorageId)\n if (sessionDataJSON) {\n return JSON.parse(sessionDataJSON)\n }\n }\n\n return data ?? defaultData\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Avoid triggering code that should only run initially\n }, [])\n const internalDataRef = useRef<Data>(initialData)\n\n // - Validator\n const ajvValidatorRef = useRef<ValidateFunction>()\n const executeAjvValidator = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n if (!ajvValidatorRef.current?.(internalDataRef.current)) {\n // Errors found\n errorsRef.current = ajvErrorsToFormErrors(\n ajvValidatorRef.current.errors,\n internalDataRef.current\n )\n } else {\n errorsRef.current = undefined\n }\n }, [])\n const validateData = useCallback(() => {\n if (!ajvValidatorRef.current) {\n // No schema-based validator. Assume data is valid.\n return\n }\n\n executeAjvValidator()\n forceUpdate()\n }, [executeAjvValidator])\n\n // - Error handling\n const checkFieldStateFor = useCallback(\n (path: Path, state: SubmitState) => {\n return Boolean(\n state === 'error'\n ? errorsRef.current?.[path] instanceof Error ||\n fieldErrorRef.current[path] instanceof Error\n : fieldStateRef.current[path] === state\n )\n },\n []\n )\n const hasFieldState = useCallback(\n (state: SubmitState) => {\n return mountedFieldPathsRef.current.some((path) => {\n return checkFieldStateFor(path, state)\n })\n },\n [checkFieldStateFor]\n )\n const hasFieldError = useCallback(\n (path: Path) => {\n return mountedFieldPathsRef.current.some((p) => {\n return p === path && checkFieldStateFor(p, 'error')\n })\n },\n [checkFieldStateFor]\n )\n const hasErrors = useCallback(() => {\n return hasFieldState('error')\n }, [hasFieldState])\n\n /**\n * Sets the error state for a specific path\n */\n const setFieldError = useCallback(\n (path: Path, error: Error | FormError) => {\n fieldErrorRef.current[path] = error\n },\n []\n )\n\n /**\n * Sets the field state for a specific path\n */\n const setFieldState = useCallback(\n (path: Path, fieldState: SubmitState) => {\n if (fieldState !== fieldStateRef.current[path]) {\n // The state for the target value was changed\n fieldStateRef.current[path] = fieldState\n forceUpdate()\n }\n },\n []\n )\n\n /**\n * Mutate the data set based on the filterData function\n */\n const mutateDataHandler = useCallback(\n (data: Data, filter: FilterData | TransformData, remove = false) => {\n const mutate = (path: Path, result: boolean | unknown) => {\n if (remove) {\n if (result === false) {\n data = structuredClone(data)\n pointer.remove(data, path)\n }\n } else {\n if (typeof result !== 'undefined') {\n data = structuredClone(data)\n pointer.set(data, path, result)\n }\n }\n }\n\n if (typeof filter === 'function') {\n Object.entries(fieldPropsRef.current).forEach(([path, props]) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const value = pointer.get(data, path)\n const internal = {\n error: fieldErrorRef.current?.[path],\n }\n const result = filter({\n path,\n value,\n data: internalDataRef.current,\n props,\n internal,\n })\n mutate(path, result)\n }\n })\n\n return data\n } else if (filter) {\n const runFilter = ({ path, condition }) => {\n const exists = pointer.has(data, path)\n if (exists) {\n const value = pointer.get(data, path)\n const props = fieldPropsRef.current?.[path]\n const internal = { error: fieldErrorRef.current?.[path] }\n const result =\n typeof condition === 'function'\n ? condition({\n value,\n data: internalDataRef.current,\n props,\n internal,\n })\n : condition\n mutate(path, result)\n }\n }\n\n const wildcardPaths = []\n\n Object.entries(filter).forEach(([path, condition]) => {\n if (path.includes('*')) {\n const parts = path.split(/\\/\\*/g)\n const exists = pointer.has(data, parts[0])\n if (exists) {\n const traverse = (\n subData: unknown,\n subPath: string,\n idx: number\n ) => {\n if (idx === parts.length - 1) {\n wildcardPaths.push({ path: subPath, condition })\n return\n }\n const list = pointer.get(subData, subPath)\n if (Array.isArray(list)) {\n list.forEach((_, i) => {\n traverse(\n list[i],\n `${subPath}/${i}${parts[idx + 1]}`,\n idx + 1\n )\n })\n }\n }\n traverse(data, parts[0], 0)\n }\n } else {\n runFilter({ path, condition })\n }\n })\n\n wildcardPaths.forEach(runFilter)\n\n return data\n }\n\n return data\n },\n []\n )\n\n /**\n * Filter the data set based on the filterData function\n */\n const filterDataHandler = useCallback(\n (data: Data, filter: FilterData) => {\n if (filter) {\n return mutateDataHandler(data, filter, true)\n }\n\n return data\n },\n [mutateDataHandler]\n )\n\n const filterData = useCallback(\n (filter: FilterData, data = internalDataRef.current) => {\n return filterDataHandler(data, filter)\n },\n [filterDataHandler]\n )\n\n const fieldPropsRef = useRef<Record<Path, FieldProps>>({})\n const valuePropsRef = useRef<Record<Path, ValueProps<unknown>>>({})\n const setFieldProps = useCallback(\n (path: Path, props: Record<string, unknown>) => {\n fieldPropsRef.current[path] = props\n },\n []\n )\n const setValueProps = useCallback(\n (path: Path, props: Record<string, unknown>) => {\n valuePropsRef.current[path] = props\n },\n []\n )\n const hasFieldWithAsyncValidator = useCallback(() => {\n for (const path in fieldPropsRef.current) {\n if (mountedFieldPathsRef.current.includes(path)) {\n const props = fieldPropsRef.current[path]\n if (isAsync(props.validator) || isAsync(props.onBlurValidator)) {\n return true\n }\n }\n }\n\n return false\n }, [])\n\n // - Shared state\n const sharedData = useSharedState<Data>(id)\n const sharedAttachments = useSharedState<{\n filterDataHandler?: FilterDataHandler<Data>\n hasErrors?: ContextState['hasErrors']\n hasFieldError?: ContextState['hasFieldError']\n setShowAllErrors?: ContextState['setShowAllErrors']\n setSubmitState?: ContextState['setSubmitState']\n rerenderUseDataHook?: () => void\n }>(id + '-attachments')\n\n const setSharedData = sharedData.set\n const extendSharedData = sharedData.extend\n const extendAttachment = sharedAttachments.extend\n const rerenderUseDataHook = sharedAttachments.data?.rerenderUseDataHook\n\n const cacheRef = useRef({\n data,\n schema,\n shared: sharedData.data,\n hasUsedInitialData: false,\n })\n\n const internalData = useMemo(() => {\n // NB: \"sharedData.data\" is only available on a rerender.\n // Update the shared state, if initialData is given and no shared state is available.\n // We do almost the same later in a useLayoutEffect, but we need to do it here as well, so we set the data as early as possible.\n if (id && initialData && !sharedData.data) {\n sharedData.update(initialData)\n }\n\n // Merge both internal data and the shared state, if it both where given\n if (\n id &&\n initialData &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data &&\n internalDataRef.current === initialData\n ) {\n return {\n ...internalDataRef.current,\n ...sharedData.data,\n }\n }\n\n // Use shared state if no initial and initial data, and the shared state exists\n if (\n id &&\n !initialData &&\n !internalDataRef.current &&\n sharedData.data &&\n cacheRef.current.shared === sharedData.data\n ) {\n return sharedData.data\n }\n\n // Merge the internal data with the shared state, if the shared was updated and not the same as internal data\n if (\n id &&\n sharedData.data &&\n cacheRef.current.shared !== sharedData.data &&\n sharedData.data !== internalDataRef.current\n ) {\n cacheRef.current.shared = sharedData.data\n\n // Reset the shared state, if clearForm is set\n if (sharedData.data?.clearForm) {\n const clear = (cacheRef.current.shared = clearedData as Data)\n setSharedData(clear)\n return clear\n }\n\n return {\n ...internalDataRef.current,\n ...sharedData.data,\n }\n }\n\n // When external data has changed, update the internal data\n if (data !== cacheRef.current.data) {\n cacheRef.current.data = data\n return data\n }\n\n return internalDataRef.current\n }, [id, initialData, sharedData, data, setSharedData])\n\n internalDataRef.current =\n props.path && pointer.has(internalData, props.path)\n ? pointer.get(internalData, props.path)\n : internalData\n\n useEffect(() => {\n if (sharedData.data?.clearForm) {\n onClear?.()\n }\n }, [onClear, sharedData.data?.clearForm])\n\n useLayoutEffect(() => {\n // Set the shared state, if initialData was given\n if (id && initialData && !sharedData.data) {\n extendSharedData?.(initialData)\n }\n }, [id, initialData, extendSharedData, sharedData.data])\n\n useMemo(() => {\n executeAjvValidator()\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [internalDataRef.current]) // run validation when internal data has changed\n\n useLayoutEffect(() => {\n if (id) {\n extendAttachment?.({\n filterDataHandler,\n hasErrors,\n hasFieldError,\n setShowAllErrors,\n setSubmitState,\n })\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n }, [\n extendAttachment,\n filterDataHandler,\n filterSubmitData,\n hasErrors,\n hasFieldError,\n id,\n rerenderUseDataHook,\n setShowAllErrors,\n setSubmitState,\n ])\n\n const storeInSession = useMemo(() => {\n return debounce(\n () => {\n window.sessionStorage?.setItem(\n sessionStorageId,\n JSON.stringify(internalDataRef.current)\n )\n },\n process.env.NODE_ENV === 'test' ? 1 : 800\n )\n }, [sessionStorageId])\n\n /**\n * Update the data set\n */\n const updateDataValue: ContextState['updateDataValue'] = useCallback(\n (path, value) => {\n if (!path) {\n return\n }\n\n const givenData = (\n path === '/'\n ? // When setting the root of the data, the whole data set should be the new value\n value\n : // For sub paths, use the existing data set (or empty array/object), but modify it below (since pointer.set is not immutable)\n internalDataRef.current ??\n (path.match(isArrayJsonPointer) ? [] : {})\n ) as Data\n\n let newData: Data = null\n try {\n // Update the data even if it contains errors. Submit/SubmitRequest will be called accordingly\n newData = structuredClone(givenData)\n } catch (e) {\n newData = givenData\n }\n\n if (path !== '/') {\n pointer.set(newData, path, value)\n }\n\n // - Mutate the data context\n if (transformIn) {\n newData = mutateDataHandler(newData, transformIn)\n }\n\n internalDataRef.current = newData\n\n if (id) {\n // Will ensure that Form.getData() gets the correct data\n extendSharedData?.(newData)\n if (filterSubmitData) {\n rerenderUseDataHook?.()\n }\n }\n\n if (sessionStorageId && typeof window !== 'undefined') {\n storeInSession()\n }\n\n forceUpdate()\n },\n [\n extendSharedData,\n filterSubmitData,\n id,\n mutateDataHandler,\n rerenderUseDataHook,\n sessionStorageId,\n storeInSession,\n transformIn,\n ]\n )\n\n const setData = useCallback((newData: Data) => {\n internalDataRef.current = newData\n forceUpdate()\n }, [])\n\n /**\n * Update the data set on user interaction (unvalidated)\n */\n const handlePathChangeUnvalidated: ContextState['handlePathChange'] =\n useCallback(\n async (path, value) => {\n if (!path) {\n return null\n }\n\n updateDataValue(path, value)\n\n if (isAsync(onPathChange)) {\n await onPathChange?.(path, value)\n } else {\n onPathChange?.(path, value)\n }\n },\n [onPathChange, updateDataValue]\n )\n\n /**\n * Update the data set on user interaction\n */\n const handlePathChange: ContextState['handlePathChange'] = useCallback(\n async (path, value = '_undefined_') => {\n if (!path) {\n return null\n }\n\n if (value !== '_undefined_') {\n handlePathChangeUnvalidated(path, value)\n }\n\n showAllErrorsRef.current = false\n\n validateData()\n\n const data = internalDataRef.current as Data\n const options = { filterData }\n const transformedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n\n for (const cb of changeHandlerStackRef.current) {\n if (isAsync(onChange)) {\n await cb(transformedData, options)\n } else {\n cb(transformedData, options)\n }\n }\n\n if (isAsync(onChange)) {\n return await onChange(transformedData, options)\n }\n\n return onChange?.(transformedData, options)\n },\n [\n filterData,\n handlePathChangeUnvalidated,\n mutateDataHandler,\n onChange,\n transformOut,\n validateData,\n ]\n )\n\n const changeHandlerStackRef = useRef<Array<OnChange<Data>>>([])\n const addOnChangeHandler = useCallback((callback: OnChange<Data>) => {\n const exists = changeHandlerStackRef.current.some((cb) => {\n return callback === cb\n })\n if (!exists) {\n changeHandlerStackRef.current.push(callback)\n }\n }, [])\n\n // - Mounted fields\n const handleMountField = useCallback((path: Path) => {\n mountedFieldPathsRef.current = addListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n const handleUnMountField = useCallback((path: Path) => {\n mountedFieldPathsRef.current = removeListPath(\n mountedFieldPathsRef.current,\n path\n )\n }, [])\n\n // - Features\n const scrollToTop = useCallback(() => {\n if (typeof window !== 'undefined') {\n window?.scrollTo?.({ top: 0, behavior: 'smooth' })\n }\n }, [])\n\n const clearData = useCallback(() => {\n internalDataRef.current = clearedData as Data\n if (id) {\n setSharedData?.(internalDataRef.current)\n } else {\n forceUpdate()\n }\n onClear?.()\n }, [id, onClear, setSharedData])\n\n /**\n * Shared logic dedicated to submit the whole form\n */\n const handleSubmitCall = useCallback<ContextState['handleSubmitCall']>(\n async (args) => {\n const {\n onSubmit,\n enableAsyncBehaviour,\n skipFieldValidation,\n skipErrorCheck,\n } = args\n\n setSubmitState({ error: undefined })\n\n const asyncBehaviorIsEnabled =\n (skipErrorCheck\n ? true\n : // Don't enable async behaviour if we have errors, but when we have a pending state\n !hasErrors() || hasFieldState('pending')) &&\n (enableAsyncBehaviour || hasFieldWithAsyncValidator())\n\n if (asyncBehaviorIsEnabled) {\n setFormState('pending')\n }\n\n // Just call the submit listeners \"once\", and not on the retry/recall\n if (!skipFieldValidation) {\n for (const {\n path,\n type,\n callback,\n } of fieldEventListenersRef.current) {\n if (\n type === 'onSubmit' &&\n mountedFieldPathsRef.current.includes(path)\n ) {\n // Call all submit listener callbacks (e.g. to validate fields)\n if (asyncBehaviorIsEnabled) {\n await callback()\n } else {\n callback()\n }\n }\n }\n }\n\n if (\n !(skipErrorCheck ? false : hasErrors()) &&\n !hasFieldState('pending') &&\n (skipFieldValidation ? true : !hasFieldState('error'))\n ) {\n let result: EventStateObject | unknown\n\n try {\n if (isolate) {\n result = await onCommit?.(internalDataRef.current, {\n clearData,\n })\n } else {\n result = await onSubmit()\n }\n\n if (result instanceof Error) {\n throw result\n }\n } catch (error) {\n result = { error }\n }\n\n const state = result as EventStateObject\n\n if (asyncBehaviorIsEnabled) {\n setFormState(state?.error ? 'abort' : 'complete')\n }\n\n // Force the state to be set by a custom status\n if (state?.['status']) {\n setFormState(state?.['status'])\n }\n\n if (state?.error || state?.warning || state?.info) {\n setSubmitState(state)\n }\n } else {\n if (asyncBehaviorIsEnabled) {\n window.requestAnimationFrame(() => {\n setFormState(undefined)\n })\n\n if (!skipFieldValidation) {\n // Add a event listener to continue the submit after the pending state is resolved\n onSubmitContinueRef.current = () => {\n window.requestAnimationFrame(() => {\n // Do not call the validators again,\n // because we already did it in the first call\n // If they are async, we wait for them to finish anyway\n handleSubmitCall({ ...args, skipFieldValidation: true })\n })\n }\n }\n }\n\n onSubmitRequest?.()\n\n setShowAllErrors(true)\n }\n\n return internalDataRef.current\n },\n [\n clearData,\n hasErrors,\n hasFieldState,\n hasFieldWithAsyncValidator,\n isolate,\n onCommit,\n onSubmitRequest,\n setFormState,\n setShowAllErrors,\n setSubmitState,\n ]\n )\n\n const handleSubmitListenersRef = useRef<Array<HandleSubmitCallback>>([])\n const setHandleSubmit: ContextState['setHandleSubmit'] = useCallback(\n (callback) => {\n if (!handleSubmitListenersRef.current.includes(callback)) {\n handleSubmitListenersRef.current.push(callback)\n }\n },\n []\n )\n const handleSubmitListeners = useCallback(() => {\n let stop = false\n const preventSubmit = () => (stop = true)\n handleSubmitListenersRef.current.forEach((cb) => {\n cb({ preventSubmit })\n })\n return stop\n }, [])\n\n /**\n * Request to submit the whole form\n */\n const handleSubmit = useCallback<ContextState['handleSubmit']>(\n async ({ formElement = null } = {}) => {\n handleSubmitCall({\n enableAsyncBehaviour: isAsync(onSubmit),\n onSubmit: async () => {\n if (handleSubmitListeners()) {\n return // stop here\n }\n\n // - Mutate the data context\n const data = internalDataRef.current\n const mutatedData = transformOut\n ? mutateDataHandler(data, transformOut)\n : data\n const filteredData = filterSubmitData\n ? filterDataHandler(mutatedData, filterSubmitData)\n : mutatedData // @deprecated – can be removed in v11\n const options = {\n filterData,\n resetForm: () => {\n formElement?.reset?.()\n\n if (typeof window !== 'undefined') {\n if (sessionStorageId) {\n window.sessionStorage.removeItem(sessionStorageId)\n }\n }\n\n forceUpdate() // in order to fill \"empty fields\" again with their internal states\n },\n clearData,\n }\n\n let result = undefined\n\n if (isAsync(onSubmit)) {\n result = await onSubmit(filteredData, options)\n } else {\n result = onSubmit?.(filteredData, options)\n }\n\n const completeResult = await onSubmitComplete?.(\n filteredData,\n result\n )\n if (completeResult) {\n result =\n Object.keys(result).length > 0\n ? { ...result, ...completeResult }\n : completeResult\n }\n\n if (scrollTopOnSubmit) {\n scrollToTop()\n }\n\n return result\n },\n })\n },\n [\n clearData,\n filterData,\n filterDataHandler,\n filterSubmitData,\n handleSubmitCall,\n handleSubmitListeners,\n mutateDataHandler,\n onSubmit,\n onSubmitComplete,\n scrollToTop,\n scrollTopOnSubmit,\n sessionStorageId,\n transformOut,\n ]\n )\n\n // Collect listeners to be called during form submit\n const fieldEventListenersRef = useRef<Array<EventListenerCall>>([])\n const setFieldEventListener = useCallback(\n (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => {\n fieldEventListenersRef.current =\n fieldEventListenersRef.current.filter(({ path: p, type: t }) => {\n return !(p === path && t === type)\n })\n fieldEventListenersRef.current.push({ path, type, callback })\n },\n []\n )\n\n // Handle unresolved field states during async submit\n const onSubmitContinueRef = useRef<() => void>(null)\n if (!hasFieldState('pending')) {\n onSubmitContinueRef.current?.()\n onSubmitContinueRef.current = null\n }\n\n // - ajv validator routines\n useMountEffect(() => {\n if (schema) {\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n }\n\n // Validate the initial data\n validateData()\n })\n useUpdateEffect(() => {\n if (schema && schema !== cacheRef.current.schema) {\n cacheRef.current.schema = schema\n ajvValidatorRef.current = ajvRef.current?.compile(schema)\n\n validateData()\n forceUpdate()\n }\n }, [schema, validateData, forceUpdate])\n\n const onTimeout = useCallback(() => {\n setFormState(undefined)\n setSubmitState({\n info: undefined,\n warning: undefined,\n error: undefined,\n })\n }, [setFormState, setSubmitState])\n\n const { bufferedFormState: formState } = useFormStatusBuffer({\n formState: formStateRef.current,\n waitFor: hasFieldState('pending'),\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n })\n\n const submitState = submitStateRef.current\n const disabled =\n typeof rest?.['disabled'] === 'boolean'\n ? rest?.['disabled']\n : (formState === 'pending') === true\n ? true\n : undefined\n\n return (\n <Context.Provider\n value={{\n /** Method */\n handlePathChange,\n handlePathChangeUnvalidated,\n handleSubmit,\n handleMountField,\n handleUnMountField,\n handleSubmitCall,\n setFormState,\n setSubmitState,\n setShowAllErrors,\n setHasVisibleError,\n setFieldEventListener,\n setFieldState,\n setFieldError,\n setFieldProps,\n setValueProps,\n hasErrors,\n hasFieldError,\n hasFieldState,\n validateData,\n updateDataValue,\n setData,\n filterDataHandler,\n addOnChangeHandler,\n setHandleSubmit,\n scrollToTop,\n\n /** State handling */\n schema,\n disabled,\n required,\n formState,\n submitState,\n contextErrorMessages,\n hasContext: true,\n errors: errorsRef.current,\n showAllErrors: showAllErrorsRef.current,\n hasVisibleError:\n Object.keys(hasVisibleErrorRef.current).length > 0,\n fieldPropsRef,\n valuePropsRef,\n mountedFieldPathsRef,\n ajvInstance: ajvRef.current,\n\n /** Additional */\n id,\n data: internalDataRef.current,\n props,\n ...rest,\n }}\n >\n <FieldPropsProvider\n FormStatus={\n globalStatusId\n ? {\n globalStatus: {\n id: globalStatusId,\n title: translation.errorSummaryTitle,\n show: showAllErrorsRef.current,\n },\n }\n : undefined\n }\n formElement={disabled ? { disabled: true } : undefined}\n locale={locale ? locale : undefined}\n translations={translations ? translations : undefined}\n >\n {children}\n </FieldPropsProvider>\n </Context.Provider>\n )\n}\n\ntype PathList = string[]\n\nexport function addListPath(paths: PathList, path: Path): PathList {\n return paths.includes(path) ? paths : paths.concat(path)\n}\n\nexport function removeListPath(paths: PathList, path: Path): PathList {\n return paths.filter((thisPath) => thisPath !== path)\n}\n\ntype FormStatusBufferProps = {\n minimumAsyncBehaviorTime?: Props<unknown>['minimumAsyncBehaviorTime']\n asyncSubmitTimeout?: Props<unknown>['asyncSubmitTimeout']\n formState: ContextState['formState']\n waitFor: boolean\n onTimeout: () => void\n}\n\nfunction useFormStatusBuffer(props: FormStatusBufferProps) {\n const {\n formState,\n waitFor,\n minimumAsyncBehaviorTime,\n asyncSubmitTimeout,\n onTimeout,\n } = props || {}\n\n const [, forceUpdate] = useReducer(() => ({}), {})\n const stateRef = useRef<SubmitState>()\n const nowRef = useRef<number | null>(null)\n const timeoutRef = useRef<{\n complete?: NodeJS.Timeout | null\n reset?: NodeJS.Timeout | null\n timeout?: NodeJS.Timeout | null\n }>({})\n\n const setState = useCallback(\n (state: SubmitState) => {\n stateRef.current = state\n forceUpdate()\n },\n [forceUpdate]\n )\n\n const clear = useCallback(() => {\n for (const key in timeoutRef.current) {\n clearTimeout(timeoutRef.current[key])\n }\n }, [])\n\n const hadCompleteRef = useRef(false)\n const activeElementRef = useRef<HTMLElement>(null)\n\n useEffect(() => {\n // This offset is used to calculate the delay,\n // which ensures that the form state is displayed for at least minimumAsyncBehaviorTime duration.\n // If the form was 'pending' for less than minimumAsyncBehaviorTime,\n // the delay will be the remaining time to reach minimumAsyncBehaviorTime.\n const isTest = process.env.NODE_ENV === 'test'\n const minimum =\n minimumAsyncBehaviorTime ??\n // make it testable\n (isTest ? 1 : 1000)\n\n if (stateRef.current && formState === 'error') {\n clear()\n setState(undefined)\n return\n }\n\n if (formState === 'abort') {\n clear()\n setState('abort')\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n }, minimum)\n return\n }\n\n if (formState === 'complete') {\n hadCompleteRef.current = true\n }\n\n if (formState === 'pending' && stateRef.current !== 'pending') {\n activeElementRef.current = document.activeElement as HTMLElement\n clear()\n nowRef.current = Date.now()\n hadCompleteRef.current = false\n setState('pending')\n } else if (stateRef.current === 'pending') {\n const offset = Math.max(Date.now() - nowRef.current)\n const delay = isTest ? minimum : Math.max(minimum - offset, 0)\n\n if (!waitFor) {\n timeoutRef.current.complete = setTimeout(() => {\n if (hadCompleteRef.current) {\n setState('complete')\n }\n window.requestAnimationFrame(() => {\n activeElementRef.current?.focus?.()\n })\n }, delay)\n\n timeoutRef.current.reset = setTimeout(() => {\n nowRef.current = 0\n setState(undefined)\n clear()\n }, delay + minimum)\n }\n }\n\n if (stateRef.current === 'pending') {\n timeoutRef.current.timeout = setTimeout(() => {\n clear()\n setState(undefined)\n onTimeout?.()\n }, asyncSubmitTimeout ?? 30000)\n }\n\n return clear\n }, [\n clear,\n minimumAsyncBehaviorTime,\n formState,\n setState,\n waitFor,\n asyncSubmitTimeout,\n onTimeout,\n ])\n\n return { bufferedFormState: stateRef.current }\n}\n\nexport const clearedData = Object.freeze({})\n"],"mappings":"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"}
@@ -65,11 +65,6 @@ const ProviderProperties = {
65
65
  type: 'function',
66
66
  status: 'optional'
67
67
  },
68
- filterSubmitData: {
69
- doc: 'Filter the `onSubmit` output data, based on your criteria: `({ path, value, data, props, internal }) => !props?.disabled`. It will iterate on each data entry (/path). Return false to exclude the entry.',
70
- type: 'function',
71
- status: 'optional'
72
- },
73
68
  globalStatusId: {
74
69
  doc: 'If needed, you can define a custom [GlobalStatus](/uilib/components/global-status) id. Defaults to `main`.',
75
70
  type: 'string',
@@ -99,7 +94,7 @@ const ProviderProperties = {
99
94
  exports.ProviderProperties = ProviderProperties;
100
95
  const ProviderEvents = {
101
96
  onChange: {
102
- doc: "Will be called when a value of a field was changed by the user, with the data set (including the changed value) as argument. When an async function is provided, it will show an indicator on the current label during a field change. Related props: `minimumAsyncBehaviorTime` and `asyncSubmitTimeout`. You can return an error or an object with these keys `{ info: 'Info message', warning: 'Warning message', error: Error('My error') } as const` in addition to { success: 'saved' } indicate the field was saved. Will emit unvalidated by default and validated when an async function is provided (like `onSubmit`).",
97
+ doc: "Will be called when a value of a field was changed by the user, with the data set (including the changed value) as argument. When an async function is provided, it will show an indicator on the current label during a field change. Related props: `minimumAsyncBehaviorTime` and `asyncSubmitTimeout`. You can return an error or an object with these keys `{ info: 'Info message', warning: 'Warning message', error: Error('My error') } as const` in addition to { success: 'saved' } indicate the field was saved. Will emit unvalidated by default and validated when an async function is provided (like `onSubmit`). The second parameter is an object containing the `filterData`, `resetForm` and `clearData` functions.",
103
98
  type: 'function',
104
99
  status: 'optional'
105
100
  },
@@ -109,7 +104,7 @@ const ProviderEvents = {
109
104
  status: 'optional'
110
105
  },
111
106
  onSubmit: {
112
- doc: "Will be called (on validation success) when the user submit the form (i.e by clicking a [SubmitButton](/uilib/extensions/forms/Form/SubmitButton) component inside), with the data set as argument. When an async function is provided, it will show an indicator on the submit button during the form submission. All form elements will be disabled during the submit. The indicator will be shown for minimum 1 second. Related props: `minimumAsyncBehaviorTime` and `asyncSubmitTimeout`. You can return an error or an object with these keys `{ status: 'pending', info: 'Info message', warning: 'Warning message', error: Error('My error') } as const` to be shown in a [FormStatus](/uilib/components/form-status). Will only emit when every validation has passed.",
107
+ doc: "Will be called (on validation success) when the user submit the form (i.e by clicking a [SubmitButton](/uilib/extensions/forms/Form/SubmitButton) component inside), with the data set as argument. When an async function is provided, it will show an indicator on the submit button during the form submission. All form elements will be disabled during the submit. The indicator will be shown for minimum 1 second. Related props: `minimumAsyncBehaviorTime` and `asyncSubmitTimeout`. You can return an error or an object with these keys `{ status: 'pending', info: 'Info message', warning: 'Warning message', error: Error('My error') } as const` to be shown in a [FormStatus](/uilib/components/form-status). Will only emit when every validation has passed. The second parameter is an object containing the `filterData` function.",
113
108
  type: 'function',
114
109
  status: 'optional'
115
110
  },
@@ -1 +1 @@
1
- {"version":3,"file":"ProviderDocs.js","names":["ProviderProperties","defaultData","doc","type","status","data","id","schema","errorMessages","minimumAsyncBehaviorTime","asyncSubmitTimeout","scrollTopOnSubmit","sessionStorageId","ajvInstance","transformIn","transformOut","filterSubmitData","globalStatusId","required","disabled","locale","children","exports","ProviderEvents","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","onClear"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/ProviderDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const ProviderProperties: PropertiesTableProps = {\n defaultData: {\n doc: 'Default source data, only used if no other source is available, and not leading to updates if changed after mount.',\n type: 'object',\n status: 'optional',\n },\n data: {\n doc: 'Dynamic source data used as both initial data, and updates internal data if changed after mount.',\n type: 'object',\n status: 'optional',\n },\n id: {\n doc: 'Unique id for connecting Form.Handler and helper tools such as Form.useData.',\n type: 'string',\n status: 'optional',\n },\n schema: {\n doc: 'JSON Schema for validation of the data set.',\n type: 'object',\n status: 'optional',\n },\n errorMessages: {\n doc: 'Object containing error messages by either type of JSON Pointer path and type.',\n type: 'object',\n status: 'optional',\n },\n minimumAsyncBehaviorTime: {\n doc: 'Minimum time to display the submit indicator. Default is 1s.',\n type: 'boolean',\n status: 'optional',\n },\n asyncSubmitTimeout: {\n doc: 'The maximum time to display the submit indicator before it changes back to normal. In case something went wrong during submission. Default is 30s.',\n type: 'boolean',\n status: 'optional',\n },\n scrollTopOnSubmit: {\n doc: 'True for the UI to scroll to the top of the page when data is submitted.',\n type: 'boolean',\n status: 'optional',\n },\n sessionStorageId: {\n doc: 'Key for saving active data to session storage and loading it on mount.',\n type: 'string',\n status: 'optional',\n },\n ajvInstance: {\n doc: 'Provide your own custom Ajv instance. More info in the [Schema validation](/uilib/extensions/forms/Form/schema-validation/#custom-ajv-instance-and-keywords) section.',\n type: 'ajv',\n status: 'optional',\n },\n transformIn: {\n doc: \"Mutate the data context (internally as well) based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\",\n type: 'function',\n status: 'optional',\n },\n transformOut: {\n doc: \"Mutate the data before it enters onSubmit or onChange based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\",\n type: 'function',\n status: 'optional',\n },\n filterSubmitData: {\n doc: 'Filter the `onSubmit` output data, based on your criteria: `({ path, value, data, props, internal }) => !props?.disabled`. It will iterate on each data entry (/path). Return false to exclude the entry.',\n type: 'function',\n status: 'optional',\n },\n globalStatusId: {\n doc: 'If needed, you can define a custom [GlobalStatus](/uilib/components/global-status) id. Defaults to `main`.',\n type: 'string',\n status: 'optional',\n },\n required: {\n doc: 'Make all fields required.',\n type: 'boolean',\n status: 'optional',\n },\n disabled: {\n doc: 'Disable all fields.',\n type: 'boolean',\n status: 'optional',\n },\n locale: {\n doc: 'Locale (language) to use for all nested Eufemia components.',\n type: 'string',\n status: 'optional',\n },\n children: {\n doc: 'Contents.',\n type: 'React.Node',\n status: 'required',\n },\n}\n\nexport const ProviderEvents: PropertiesTableProps = {\n onChange: {\n doc: \"Will be called when a value of a field was changed by the user, with the data set (including the changed value) as argument. When an async function is provided, it will show an indicator on the current label during a field change. Related props: `minimumAsyncBehaviorTime` and `asyncSubmitTimeout`. You can return an error or an object with these keys `{ info: 'Info message', warning: 'Warning message', error: Error('My error') } as const` in addition to { success: 'saved' } indicate the field was saved. Will emit unvalidated by default and validated when an async function is provided (like `onSubmit`).\",\n type: 'function',\n status: 'optional',\n },\n onPathChange: {\n doc: 'Will be called when a value of a field was changed by the user, with the `path` (JSON Pointer) and new `value` as arguments. Can be an async function. Will emit unvalidated by default and validated when `onChange` is an async function.',\n type: 'function',\n status: 'optional',\n },\n onSubmit: {\n doc: \"Will be called (on validation success) when the user submit the form (i.e by clicking a [SubmitButton](/uilib/extensions/forms/Form/SubmitButton) component inside), with the data set as argument. When an async function is provided, it will show an indicator on the submit button during the form submission. All form elements will be disabled during the submit. The indicator will be shown for minimum 1 second. Related props: `minimumAsyncBehaviorTime` and `asyncSubmitTimeout`. You can return an error or an object with these keys `{ status: 'pending', info: 'Info message', warning: 'Warning message', error: Error('My error') } as const` to be shown in a [FormStatus](/uilib/components/form-status). Will only emit when every validation has passed.\",\n type: 'function',\n status: 'optional',\n },\n onSubmitRequest: {\n doc: 'Will be called when the user tries to submit, but errors stop the data from being submitted.',\n type: 'function',\n status: 'optional',\n },\n onSubmitComplete: {\n doc: 'Will be called after onSubmit has finished and had not errors. It supports the same return values as `onSubmit` and will be merged together.',\n type: 'function',\n status: 'optional',\n },\n onClear: {\n doc: 'Will be called when the form is cleared via `Form.clearData` or via the `onSubmit` event (or `onCommit`) argument `{ clearData }`.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ProviderDocs.js","names":["ProviderProperties","defaultData","doc","type","status","data","id","schema","errorMessages","minimumAsyncBehaviorTime","asyncSubmitTimeout","scrollTopOnSubmit","sessionStorageId","ajvInstance","transformIn","transformOut","globalStatusId","required","disabled","locale","children","exports","ProviderEvents","onChange","onPathChange","onSubmit","onSubmitRequest","onSubmitComplete","onClear"],"sources":["../../../../../../src/extensions/forms/DataContext/Provider/ProviderDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const ProviderProperties: PropertiesTableProps = {\n defaultData: {\n doc: 'Default source data, only used if no other source is available, and not leading to updates if changed after mount.',\n type: 'object',\n status: 'optional',\n },\n data: {\n doc: 'Dynamic source data used as both initial data, and updates internal data if changed after mount.',\n type: 'object',\n status: 'optional',\n },\n id: {\n doc: 'Unique id for connecting Form.Handler and helper tools such as Form.useData.',\n type: 'string',\n status: 'optional',\n },\n schema: {\n doc: 'JSON Schema for validation of the data set.',\n type: 'object',\n status: 'optional',\n },\n errorMessages: {\n doc: 'Object containing error messages by either type of JSON Pointer path and type.',\n type: 'object',\n status: 'optional',\n },\n minimumAsyncBehaviorTime: {\n doc: 'Minimum time to display the submit indicator. Default is 1s.',\n type: 'boolean',\n status: 'optional',\n },\n asyncSubmitTimeout: {\n doc: 'The maximum time to display the submit indicator before it changes back to normal. In case something went wrong during submission. Default is 30s.',\n type: 'boolean',\n status: 'optional',\n },\n scrollTopOnSubmit: {\n doc: 'True for the UI to scroll to the top of the page when data is submitted.',\n type: 'boolean',\n status: 'optional',\n },\n sessionStorageId: {\n doc: 'Key for saving active data to session storage and loading it on mount.',\n type: 'string',\n status: 'optional',\n },\n ajvInstance: {\n doc: 'Provide your own custom Ajv instance. More info in the [Schema validation](/uilib/extensions/forms/Form/schema-validation/#custom-ajv-instance-and-keywords) section.',\n type: 'ajv',\n status: 'optional',\n },\n transformIn: {\n doc: \"Mutate the data context (internally as well) based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\",\n type: 'function',\n status: 'optional',\n },\n transformOut: {\n doc: \"Mutate the data before it enters onSubmit or onChange based on your criteria: `({ path, value, data, props, internal }) => 'new value'`. It will iterate on each data entry (/path).\",\n type: 'function',\n status: 'optional',\n },\n globalStatusId: {\n doc: 'If needed, you can define a custom [GlobalStatus](/uilib/components/global-status) id. Defaults to `main`.',\n type: 'string',\n status: 'optional',\n },\n required: {\n doc: 'Make all fields required.',\n type: 'boolean',\n status: 'optional',\n },\n disabled: {\n doc: 'Disable all fields.',\n type: 'boolean',\n status: 'optional',\n },\n locale: {\n doc: 'Locale (language) to use for all nested Eufemia components.',\n type: 'string',\n status: 'optional',\n },\n children: {\n doc: 'Contents.',\n type: 'React.Node',\n status: 'required',\n },\n}\n\nexport const ProviderEvents: PropertiesTableProps = {\n onChange: {\n doc: \"Will be called when a value of a field was changed by the user, with the data set (including the changed value) as argument. When an async function is provided, it will show an indicator on the current label during a field change. Related props: `minimumAsyncBehaviorTime` and `asyncSubmitTimeout`. You can return an error or an object with these keys `{ info: 'Info message', warning: 'Warning message', error: Error('My error') } as const` in addition to { success: 'saved' } indicate the field was saved. Will emit unvalidated by default and validated when an async function is provided (like `onSubmit`). The second parameter is an object containing the `filterData`, `resetForm` and `clearData` functions.\",\n type: 'function',\n status: 'optional',\n },\n onPathChange: {\n doc: 'Will be called when a value of a field was changed by the user, with the `path` (JSON Pointer) and new `value` as arguments. Can be an async function. Will emit unvalidated by default and validated when `onChange` is an async function.',\n type: 'function',\n status: 'optional',\n },\n onSubmit: {\n doc: \"Will be called (on validation success) when the user submit the form (i.e by clicking a [SubmitButton](/uilib/extensions/forms/Form/SubmitButton) component inside), with the data set as argument. When an async function is provided, it will show an indicator on the submit button during the form submission. All form elements will be disabled during the submit. The indicator will be shown for minimum 1 second. Related props: `minimumAsyncBehaviorTime` and `asyncSubmitTimeout`. You can return an error or an object with these keys `{ status: 'pending', info: 'Info message', warning: 'Warning message', error: Error('My error') } as const` to be shown in a [FormStatus](/uilib/components/form-status). Will only emit when every validation has passed. The second parameter is an object containing the `filterData` function.\",\n type: 'function',\n status: 'optional',\n },\n onSubmitRequest: {\n doc: 'Will be called when the user tries to submit, but errors stop the data from being submitted.',\n type: 'function',\n status: 'optional',\n },\n onSubmitComplete: {\n doc: 'Will be called after onSubmit has finished and had not errors. It supports the same return values as `onSubmit` and will be merged together.',\n type: 'function',\n status: 'optional',\n },\n onClear: {\n doc: 'Will be called when the form is cleared via `Form.clearData` or via the `onSubmit` event (or `onCommit`) argument `{ clearData }`.',\n type: 'function',\n status: 'optional',\n },\n}\n"],"mappings":"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"}