@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
@@ -215,7 +215,9 @@ export default class InfinityScroller extends React.PureComponent {
215
215
  page_element,
216
216
  fallback_element,
217
217
  marker_element,
218
- indicator_element
218
+ indicator_element,
219
+ load_button_text,
220
+ loadButton
219
221
  } = this.context.pagination;
220
222
  if (!(items && items.length > 0)) {
221
223
  clearTimeout(this._startupTimeout);
@@ -255,8 +257,10 @@ export default class InfinityScroller extends React.PureComponent {
255
257
  key: pageNumber,
256
258
  ref: ref
257
259
  }, hasContent && startupPage > 1 && pageNumber > 1 && pageNumber <= startupPage && React.createElement(InfinityLoadButton, {
258
- element: fallback_element,
260
+ element: typeof loadButton === 'function' ? loadButton : fallback_element,
259
261
  icon: "arrow_up",
262
+ text: load_button_text !== null && load_button_text !== void 0 ? load_button_text : loadButton === null || loadButton === void 0 ? void 0 : loadButton.text,
263
+ icon_position: loadButton === null || loadButton === void 0 ? void 0 : loadButton.iconPosition,
260
264
  on_click: event => this.getNewContent(pageNumber - 1, {
261
265
  position: 'before',
262
266
  skipObserver: true,
@@ -265,7 +269,9 @@ export default class InfinityScroller extends React.PureComponent {
265
269
  }), placeMakerBeforeContent && marker, content, !placeMakerBeforeContent && marker, showIndicator && React.createElement(PaginationIndicator, {
266
270
  indicator_element: indicator_element || fallback_element
267
271
  }), hasContent && this.useLoadButton && isLastItem && (typeof pageCount === 'undefined' || pageNumber < pageCount) && React.createElement(InfinityLoadButton, {
268
- element: fallback_element,
272
+ element: typeof loadButton === 'function' ? loadButton : fallback_element,
273
+ text: load_button_text !== null && load_button_text !== void 0 ? load_button_text : loadButton === null || loadButton === void 0 ? void 0 : loadButton.text,
274
+ icon_position: loadButton === null || loadButton === void 0 ? void 0 : loadButton.iconPosition,
269
275
  icon: "arrow_down",
270
276
  on_click: event => this.getNewContent(pageNumber + 1, {
271
277
  position: 'after',
@@ -388,7 +394,9 @@ export class InfinityLoadButton extends React.PureComponent {
388
394
  render() {
389
395
  const {
390
396
  element,
391
- icon
397
+ icon,
398
+ text,
399
+ icon_position
392
400
  } = this.props;
393
401
  const Element = element;
394
402
  const ElementChild = isTrElement(Element) ? 'td' : 'div';
@@ -397,8 +405,8 @@ export class InfinityLoadButton extends React.PureComponent {
397
405
  }, React.createElement(Button, {
398
406
  size: "medium",
399
407
  icon: icon,
400
- icon_position: "left",
401
- text: this.context.translation.Pagination.load_button_text,
408
+ icon_position: icon_position,
409
+ text: text || this.context.translation.Pagination.load_button_text,
402
410
  variant: "secondary",
403
411
  on_click: this.onClickHandler
404
412
  })));
@@ -408,13 +416,17 @@ _defineProperty(InfinityLoadButton, "contextType", Context);
408
416
  _defineProperty(InfinityLoadButton, "defaultProps", {
409
417
  element: 'div',
410
418
  pressed_element: null,
411
- icon: 'arrow_down'
419
+ icon: 'arrow_down',
420
+ text: null,
421
+ icon_position: 'left'
412
422
  });
413
423
  process.env.NODE_ENV !== "production" ? InfinityLoadButton.propTypes = {
414
424
  element: PropTypes.oneOfType([PropTypes.object, PropTypes.node, PropTypes.func, PropTypes.string]),
415
425
  pressed_element: PropTypes.oneOfType([PropTypes.object, PropTypes.node, PropTypes.func]),
416
426
  icon: PropTypes.string.isRequired,
417
- on_click: PropTypes.func.isRequired
427
+ on_click: PropTypes.func.isRequired,
428
+ text: PropTypes.string,
429
+ icon_position: PropTypes.string
418
430
  } : void 0;
419
431
  class ScrollToElement extends React.PureComponent {
420
432
  componentDidMount() {
@@ -1 +1 @@
1
- {"version":3,"file":"PaginationInfinity.js","names":["React","PropTypes","ReactDOM","warn","isTrue","dispatchCustomElementEvent","getPreviousSibling","Context","Button","preparePageElement","isTrElement","PaginationIndicator","PaginationContext","InfinityScroller","PureComponent","constructor","props","context","_defineProperty","startupPage","startup_count","pagination","startupCount","parseFloat","newPageNo","skipObserver","callStartupEvent","preventWaitForDelay","i","getNewContent","position","pageCount","endInfinity","exists","items","findIndex","obj","pageNumber","prefillItems","setItems","callEventHandler","hideIndicator","hide_progress_indicator","useLoadButton","use_load_button","lastElement","createRef","callOnUnmount","componentWillUnmount","clearTimeout","_startupTimeout","_bufferTimeout","forEach","f","waitForReachedTime","fn","params","callbackBuffer","push","callBuffer","minTime","length","diff","_lastCall","Date","getTime","waitTime","nextTick","shift","setTimeout","callOnEnd","onDispatch","createEvent","eventName","isNaN","ret","_objectSpread","handleInfinityMarker","children","lowerPage","upperPage","hasEndedInfinity","parallelLoadCount","current_page","fallback_element","marker_element","indicator_element","Marker","createElement","InteractionMarker","markerElement","onVisible","onPageUpdate","setState","LoadButton","InfinityLoadButton","icon","element","pressed_element","on_click","Fragment","render","placeMakerBeforeContent","page_element","startup","useMarkerOnly","Element","map","hasContent","content","ref","ScrollElement","idx","isLastItem","Elem","marker","showIndicator","key","event","ScrollToElement","_extends","process","env","NODE_ENV","propTypes","oneOfType","node","func","isConnected","_this$intersectionObs","intersectionObserver","disconnect","_readyTimeout","_isMounted","_ref","IntersectionObserver","entries","isIntersecting","callReady","componentDidMount","current","_this$intersectionObs2","observe","getContentHeight","height","sibling","window","getComputedStyle","querySelector","e","state","ElementChild","className","number","isRequired","object","string","args","isPressed","size","icon_position","text","translation","Pagination","load_button_text","variant","onClickHandler","elem","findDOMNode","scrollToPage","scrollIntoView","block","behavior","_this$props","_objectWithoutProperties","_excluded","_supportsSpacingProps"],"sources":["../../../../src/components/pagination/PaginationInfinity.js"],"sourcesContent":["/**\n * Web Pagination Component\n *\n * This is a legacy component.\n * For referencing while developing new features, please use a Functional component.\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport ReactDOM from 'react-dom'\nimport {\n warn,\n isTrue,\n dispatchCustomElementEvent,\n getPreviousSibling,\n} from '../../shared/component-helper'\nimport Context from '../../shared/Context'\nimport Button from '../button/Button'\nimport {\n preparePageElement,\n isTrElement,\n PaginationIndicator,\n} from './PaginationHelpers'\nimport PaginationContext from './PaginationContext'\n\nexport default class InfinityScroller extends React.PureComponent {\n static contextType = PaginationContext\n static propTypes = {\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n }\n static defaultProps = { children: null }\n\n constructor(props, context) {\n super(props)\n this.hideIndicator = isTrue(context.pagination.hide_progress_indicator)\n this.useLoadButton = isTrue(context.pagination.use_load_button)\n this.lastElement = React.createRef()\n this.callOnUnmount = []\n }\n\n componentWillUnmount() {\n clearTimeout(this._startupTimeout)\n clearTimeout(this._bufferTimeout)\n this.callOnUnmount.forEach((f) => typeof f === 'function' && f())\n }\n\n startup = () => {\n const { startupPage, startup_count } = this.context.pagination\n const startupCount = parseFloat(startup_count)\n\n let newPageNo, skipObserver, callStartupEvent, preventWaitForDelay\n for (let i = 0; i < startupCount; ++i) {\n newPageNo = startupPage + i\n skipObserver = newPageNo < startupCount\n callStartupEvent = i === 0\n preventWaitForDelay = i <= startupCount - 1\n\n // NB: Looks like we have to do more work here to use a waitBuffer\n this.getNewContent(\n newPageNo,\n {\n position: 'after',\n skipObserver,\n },\n { callStartupEvent, preventWaitForDelay }\n )\n }\n }\n\n getNewContent = (\n newPageNo,\n props = {},\n { callStartupEvent = false, preventWaitForDelay = false } = {}\n ) => {\n const { pageCount, endInfinity } = this.context.pagination\n\n // if \"page_count\" is set do not load more than that value\n if (newPageNo > pageCount) {\n return endInfinity()\n }\n\n const exists =\n this.context.pagination.items.findIndex((obj) => {\n return obj.pageNumber === newPageNo\n }) > -1\n\n if (exists) {\n return // stop here!\n }\n\n const items = this.context.pagination.prefillItems(newPageNo, props)\n\n this.context.pagination.setItems(items, () => {\n this.callEventHandler(newPageNo, {\n callStartupEvent,\n preventWaitForDelay,\n })\n })\n }\n\n waitForReachedTime(fn, params) {\n this.callbackBuffer = this.callbackBuffer || []\n this.callbackBuffer.push({ fn, params })\n this.callBuffer({\n minTime: params.preventWaitForDelay\n ? -1\n : this.context.pagination.minTime,\n })\n }\n\n callBuffer({ minTime = this.context.pagination.minTime } = {}) {\n if (this.callbackBuffer.length === 0) {\n return // stop here\n }\n\n const diff =\n this._lastCall > 0 ? new Date().getTime() - this._lastCall : 0\n const waitTime = diff < minTime ? minTime : 0\n\n const nextTick = () => {\n if (this.callbackBuffer.length > 0) {\n this._lastCall = new Date().getTime()\n const { fn, params } = this.callbackBuffer.shift()\n fn(params)\n this.callBuffer({\n minTime: params.preventWaitForDelay ? -1 : minTime,\n })\n }\n }\n\n if (minTime > 0) {\n clearTimeout(this._bufferTimeout)\n this._bufferTimeout = setTimeout(nextTick, waitTime)\n } else {\n nextTick()\n }\n }\n\n callEventHandler(\n pageNumber,\n {\n callStartupEvent = false,\n preventWaitForDelay = false,\n callOnEnd = false,\n onDispatch = null,\n } = {}\n ) {\n this.waitForReachedTime(\n ({ pageNumber, callStartupEvent }) => {\n const context = this.context.pagination\n const createEvent = (eventName) => {\n if (isNaN(pageNumber)) {\n pageNumber = 1\n }\n const ret = dispatchCustomElementEvent(context, eventName, {\n pageNumber,\n ...context,\n })\n\n if (typeof onDispatch === 'function') {\n onDispatch()\n }\n\n if (typeof ret === 'function') {\n this.callOnUnmount.push(ret)\n }\n }\n\n if (callOnEnd) {\n createEvent('on_end')\n } else {\n if (callStartupEvent) {\n createEvent('on_startup')\n } else {\n createEvent('on_change')\n }\n\n createEvent('on_load')\n }\n },\n { pageNumber, callStartupEvent, preventWaitForDelay }\n )\n }\n\n handleInfinityMarker() {\n const { children } = this.props\n\n const {\n // our states\n lowerPage,\n upperPage,\n pageCount,\n hasEndedInfinity,\n parallelLoadCount,\n\n // our props\n current_page,\n fallback_element,\n marker_element,\n indicator_element,\n } = this.context.pagination\n\n const Marker = () => (\n <InteractionMarker\n pageNumber={upperPage}\n markerElement={marker_element || fallback_element}\n onVisible={(pageNumber) => {\n let newPageNo\n // load several pages at once\n for (let i = 0; i < parallelLoadCount; ++i) {\n newPageNo = pageNumber + 1 + i\n // wait on updating our own state, so we can show the indicator (pressed_element) until we get new children back\n this.context.pagination.onPageUpdate(() => {\n this.context.pagination.setState({\n upperPage: newPageNo,\n skipObserver: i + 1 < parallelLoadCount,\n })\n })\n this.callEventHandler(newPageNo)\n }\n }}\n />\n )\n\n const LoadButton = () => (\n <InfinityLoadButton\n icon=\"arrow_up\"\n element={fallback_element}\n pressed_element={\n <PaginationIndicator\n indicator_element={indicator_element || fallback_element}\n />\n }\n on_click={() => {\n const newPageNo = lowerPage - 1\n // wait on updating our own state, so we can show the indicator (pressed_element) until we get new children back\n this.context.pagination.onPageUpdate(() => {\n this.context.pagination.setState({\n lowerPage: newPageNo,\n })\n })\n this.callEventHandler(newPageNo)\n }}\n />\n )\n\n return (\n <>\n {parseFloat(current_page) > 0 && lowerPage > 1 && <LoadButton />}\n\n {children}\n\n {!hasEndedInfinity &&\n parseFloat(current_page) > 0 &&\n (typeof pageCount === 'undefined' || upperPage < pageCount) && (\n <Marker />\n )}\n\n {!hasEndedInfinity &&\n !this.hideIndicator &&\n (typeof pageCount === 'undefined' || upperPage < pageCount) && (\n <PaginationIndicator\n indicator_element={indicator_element || fallback_element}\n />\n )}\n </>\n )\n }\n\n render() {\n const {\n // our states\n items,\n pageCount,\n startupPage,\n hasEndedInfinity,\n parallelLoadCount,\n placeMakerBeforeContent,\n\n // our props\n page_element,\n fallback_element,\n marker_element,\n indicator_element,\n } = this.context.pagination\n\n // invoke startup if needed\n if (!(items && items.length > 0)) {\n clearTimeout(this._startupTimeout)\n this._startupTimeout = setTimeout(this.startup, 1) // call startup()\n return null // stop here\n }\n\n if (this.context.pagination.useMarkerOnly) {\n return this.handleInfinityMarker()\n }\n\n // make sure we handle Table markup correctly\n const Element = preparePageElement(page_element || React.Fragment)\n\n return items.map(\n (\n {\n pageNumber,\n hasContent,\n content,\n ref,\n skipObserver,\n ScrollElement,\n },\n idx\n ) => {\n const isLastItem = idx === items.length - 1\n\n // decide to whether use the default Element, or use the scrollTo element\n const Elem = (hasContent && ScrollElement) || Element\n\n // render the marker before\n const marker = hasContent &&\n !this.useLoadButton &&\n !skipObserver &&\n !hasEndedInfinity &&\n (typeof pageCount === 'undefined' ||\n pageNumber <= pageCount) && (\n <InteractionMarker\n pageNumber={pageNumber}\n markerElement={marker_element || fallback_element}\n onVisible={(pageNumber) => {\n let newPageNo\n // load several pages at once\n for (let i = 0; i < parallelLoadCount; ++i) {\n newPageNo = pageNumber + 1 + i\n this.getNewContent(newPageNo, {\n position: 'after',\n skipObserver: i + 1 < parallelLoadCount,\n })\n }\n }}\n />\n )\n\n const showIndicator =\n (parallelLoadCount > 1 && idx > 0 ? isLastItem : true) &&\n !hasContent &&\n !this.hideIndicator\n\n return (\n <Elem key={pageNumber} ref={ref}>\n {hasContent &&\n startupPage > 1 &&\n pageNumber > 1 &&\n pageNumber <= startupPage && (\n <InfinityLoadButton\n element={fallback_element}\n icon=\"arrow_up\"\n on_click={(event) =>\n this.getNewContent(pageNumber - 1, {\n position: 'before',\n skipObserver: true,\n event,\n })\n }\n />\n )}\n\n {placeMakerBeforeContent && marker}\n {content}\n {!placeMakerBeforeContent && marker}\n\n {showIndicator && (\n <PaginationIndicator\n indicator_element={indicator_element || fallback_element}\n />\n )}\n\n {hasContent &&\n this.useLoadButton &&\n isLastItem &&\n (typeof pageCount === 'undefined' ||\n pageNumber < pageCount) && (\n <InfinityLoadButton\n element={fallback_element}\n icon=\"arrow_down\"\n on_click={(event) =>\n this.getNewContent(pageNumber + 1, {\n position: 'after',\n skipObserver: true,\n ScrollElement: (props) =>\n hasContent && (\n <ScrollToElement\n page_element={page_element}\n {...props}\n />\n ),\n event,\n })\n }\n />\n )}\n </Elem>\n )\n }\n )\n }\n}\n\nclass InteractionMarker extends React.PureComponent {\n static propTypes = {\n pageNumber: PropTypes.number.isRequired,\n onVisible: PropTypes.func.isRequired,\n markerElement: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.node,\n PropTypes.func,\n PropTypes.string,\n ]),\n }\n static defaultProps = {\n markerElement: null,\n }\n state = { isConnected: false }\n\n constructor(props) {\n super(props)\n\n if (typeof props.markerElement === 'function') {\n warn(\n 'Pagination: Please use a string or React element e.g. marker_element=\"tr\"'\n )\n }\n\n this._ref = React.createRef()\n\n if (typeof IntersectionObserver !== 'undefined') {\n this.intersectionObserver = new IntersectionObserver((entries) => {\n const [{ isIntersecting }] = entries\n if (isIntersecting) {\n this.callReady()\n }\n })\n } else {\n warn('Pagination is missing IntersectionObserver supported!')\n }\n }\n\n componentDidMount() {\n if (this._ref.current) {\n this._isMounted = true\n this.intersectionObserver?.observe(this._ref.current)\n }\n }\n\n componentWillUnmount() {\n this._isMounted = false\n if (this.intersectionObserver) {\n clearTimeout(this._readyTimeout)\n this.intersectionObserver.disconnect()\n }\n }\n\n callReady = () => {\n this.intersectionObserver?.disconnect()\n this.intersectionObserver = null\n clearTimeout(this._readyTimeout)\n this._readyTimeout = setTimeout(() => {\n if (this._isMounted) {\n this.setState({ isConnected: true })\n }\n this.props.onVisible(this.props.pageNumber)\n }, 1) // because of re-render loop\n }\n\n getContentHeight() {\n let height = 0\n\n try {\n const sibling = getPreviousSibling('dnb-table', this._ref.current)\n height = parseFloat(\n window.getComputedStyle(sibling.querySelector('tbody')).height\n )\n } catch (e) {\n //\n }\n\n return height\n }\n\n render() {\n const { markerElement } = this.props\n\n if (this.state.isConnected || !this.intersectionObserver) {\n return null\n }\n\n // NB: make sure we don't actually use the marker element,\n // because it looks like React as troubles regarding handling ref during a re-render?\n const Element =\n markerElement && isTrElement(markerElement) ? 'tr' : 'div'\n const ElementChild =\n markerElement && isTrElement(markerElement) ? 'td' : 'div'\n\n return (\n <Element className=\"dnb-pagination__marker dnb-table--ignore\">\n <ElementChild\n className=\"dnb-pagination__marker__inner\"\n ref={this._ref}\n >\n {/* {this.props.pageNumber} */}\n </ElementChild>\n </Element>\n )\n }\n}\n\nexport class InfinityLoadButton extends React.PureComponent {\n static contextType = Context\n static propTypes = {\n element: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.node,\n PropTypes.func,\n PropTypes.string,\n ]),\n pressed_element: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.node,\n PropTypes.func,\n ]),\n icon: PropTypes.string.isRequired,\n on_click: PropTypes.func.isRequired,\n }\n static defaultProps = {\n element: 'div',\n pressed_element: null,\n icon: 'arrow_down',\n }\n state = { isPressed: false }\n onClickHandler = (e) => {\n this.setState({ isPressed: true })\n if (typeof this.props.on_click === 'function') {\n this.props.on_click(e)\n }\n }\n render() {\n const { element, icon } = this.props\n const Element = element\n const ElementChild = isTrElement(Element) ? 'td' : 'div'\n\n return this.state.isPressed ? (\n this.props.pressed_element\n ) : (\n <Element>\n <ElementChild className=\"dnb-pagination__loadbar\">\n <Button\n size=\"medium\"\n icon={icon}\n icon_position=\"left\"\n text={this.context.translation.Pagination.load_button_text}\n variant=\"secondary\"\n on_click={this.onClickHandler}\n />\n </ElementChild>\n </Element>\n )\n }\n}\n\nclass ScrollToElement extends React.PureComponent {\n static propTypes = {\n page_element: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.node,\n PropTypes.func,\n PropTypes.string,\n ]),\n }\n static defaultProps = {\n page_element: null,\n }\n componentDidMount() {\n // we use \"findDOMNode\" here, because we have situations, where we don't know about what the input element is,\n // we also don't want to wrap them because of markup collisions\n // therefor we use \"findDOMNode\" here\n // so we can scroll to that page\n // eslint-disable-next-line\n const elem = ReactDOM.findDOMNode(this)\n this.scrollToPage(elem)\n }\n scrollToPage(element) {\n if (element && typeof element.scrollIntoView === 'function') {\n element.scrollIntoView({\n block: 'nearest',\n behavior: 'smooth',\n })\n }\n }\n render() {\n const { page_element, ...props } = this.props\n const Element = preparePageElement(page_element || React.Fragment)\n return <Element {...props} />\n }\n}\n\nInfinityScroller._supportsSpacingProps = true\n"],"mappings":";;;;;;;;AAOA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,QAAQ,MAAM,WAAW;AAChC,SACEC,IAAI,EACJC,MAAM,EACNC,0BAA0B,EAC1BC,kBAAkB,QACb,+BAA+B;AACtC,OAAOC,OAAO,MAAM,sBAAsB;AAC1C,OAAOC,MAAM,MAAM,kBAAkB;AACrC,SACEC,kBAAkB,EAClBC,WAAW,EACXC,mBAAmB,QACd,qBAAqB;AAC5B,OAAOC,iBAAiB,MAAM,qBAAqB;AAEnD,eAAe,MAAMC,gBAAgB,SAASb,KAAK,CAACc,aAAa,CAAC;EAOhEC,WAAWA,CAACC,MAAK,EAAEC,OAAO,EAAE;IAC1B,KAAK,CAACD,MAAK,CAAC;IAAAE,eAAA,kBAaJ,MAAM;MACd,MAAM;QAAEC,WAAW;QAAEC;MAAc,CAAC,GAAG,IAAI,CAACH,OAAO,CAACI,UAAU;MAC9D,MAAMC,YAAY,GAAGC,UAAU,CAACH,aAAa,CAAC;MAE9C,IAAII,SAAS,EAAEC,YAAY,EAAEC,gBAAgB,EAAEC,mBAAmB;MAClE,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGN,YAAY,EAAE,EAAEM,CAAC,EAAE;QACrCJ,SAAS,GAAGL,WAAW,GAAGS,CAAC;QAC3BH,YAAY,GAAGD,SAAS,GAAGF,YAAY;QACvCI,gBAAgB,GAAGE,CAAC,KAAK,CAAC;QAC1BD,mBAAmB,GAAGC,CAAC,IAAIN,YAAY,GAAG,CAAC;QAG3C,IAAI,CAACO,aAAa,CAChBL,SAAS,EACT;UACEM,QAAQ,EAAE,OAAO;UACjBL;QACF,CAAC,EACD;UAAEC,gBAAgB;UAAEC;QAAoB,CAC1C,CAAC;MACH;IACF,CAAC;IAAAT,eAAA,wBAEe,CACdM,SAAS,EACTR,KAAK,GAAG,CAAC,CAAC,EACV;MAAEU,gBAAgB,GAAG,KAAK;MAAEC,mBAAmB,GAAG;IAAM,CAAC,GAAG,CAAC,CAAC,KAC3D;MACH,MAAM;QAAEI,SAAS;QAAEC;MAAY,CAAC,GAAG,IAAI,CAACf,OAAO,CAACI,UAAU;MAG1D,IAAIG,SAAS,GAAGO,SAAS,EAAE;QACzB,OAAOC,WAAW,CAAC,CAAC;MACtB;MAEA,MAAMC,MAAM,GACV,IAAI,CAAChB,OAAO,CAACI,UAAU,CAACa,KAAK,CAACC,SAAS,CAAEC,GAAG,IAAK;QAC/C,OAAOA,GAAG,CAACC,UAAU,KAAKb,SAAS;MACrC,CAAC,CAAC,GAAG,CAAC,CAAC;MAET,IAAIS,MAAM,EAAE;QACV;MACF;MAEA,MAAMC,KAAK,GAAG,IAAI,CAACjB,OAAO,CAACI,UAAU,CAACiB,YAAY,CAACd,SAAS,EAAER,KAAK,CAAC;MAEpE,IAAI,CAACC,OAAO,CAACI,UAAU,CAACkB,QAAQ,CAACL,KAAK,EAAE,MAAM;QAC5C,IAAI,CAACM,gBAAgB,CAAChB,SAAS,EAAE;UAC/BE,gBAAgB;UAChBC;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ,CAAC;IAhEC,IAAI,CAACc,aAAa,GAAGrC,MAAM,CAACa,OAAO,CAACI,UAAU,CAACqB,uBAAuB,CAAC;IACvE,IAAI,CAACC,aAAa,GAAGvC,MAAM,CAACa,OAAO,CAACI,UAAU,CAACuB,eAAe,CAAC;IAC/D,IAAI,CAACC,WAAW,GAAG7C,KAAK,CAAC8C,SAAS,CAAC,CAAC;IACpC,IAAI,CAACC,aAAa,GAAG,EAAE;EACzB;EAEAC,oBAAoBA,CAAA,EAAG;IACrBC,YAAY,CAAC,IAAI,CAACC,eAAe,CAAC;IAClCD,YAAY,CAAC,IAAI,CAACE,cAAc,CAAC;IACjC,IAAI,CAACJ,aAAa,CAACK,OAAO,CAAEC,CAAC,IAAK,OAAOA,CAAC,KAAK,UAAU,IAAIA,CAAC,CAAC,CAAC,CAAC;EACnE;EAwDAC,kBAAkBA,CAACC,EAAE,EAAEC,MAAM,EAAE;IAC7B,IAAI,CAACC,cAAc,GAAG,IAAI,CAACA,cAAc,IAAI,EAAE;IAC/C,IAAI,CAACA,cAAc,CAACC,IAAI,CAAC;MAAEH,EAAE;MAAEC;IAAO,CAAC,CAAC;IACxC,IAAI,CAACG,UAAU,CAAC;MACdC,OAAO,EAAEJ,MAAM,CAAC7B,mBAAmB,GAC/B,CAAC,CAAC,GACF,IAAI,CAACV,OAAO,CAACI,UAAU,CAACuC;IAC9B,CAAC,CAAC;EACJ;EAEAD,UAAUA,CAAC;IAAEC,OAAO,GAAG,IAAI,CAAC3C,OAAO,CAACI,UAAU,CAACuC;EAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;IAC7D,IAAI,IAAI,CAACH,cAAc,CAACI,MAAM,KAAK,CAAC,EAAE;MACpC;IACF;IAEA,MAAMC,IAAI,GACR,IAAI,CAACC,SAAS,GAAG,CAAC,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,GAAG,IAAI,CAACF,SAAS,GAAG,CAAC;IAChE,MAAMG,QAAQ,GAAGJ,IAAI,GAAGF,OAAO,GAAGA,OAAO,GAAG,CAAC;IAE7C,MAAMO,QAAQ,GAAGA,CAAA,KAAM;MACrB,IAAI,IAAI,CAACV,cAAc,CAACI,MAAM,GAAG,CAAC,EAAE;QAClC,IAAI,CAACE,SAAS,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC;QACrC,MAAM;UAAEV,EAAE;UAAEC;QAAO,CAAC,GAAG,IAAI,CAACC,cAAc,CAACW,KAAK,CAAC,CAAC;QAClDb,EAAE,CAACC,MAAM,CAAC;QACV,IAAI,CAACG,UAAU,CAAC;UACdC,OAAO,EAAEJ,MAAM,CAAC7B,mBAAmB,GAAG,CAAC,CAAC,GAAGiC;QAC7C,CAAC,CAAC;MACJ;IACF,CAAC;IAED,IAAIA,OAAO,GAAG,CAAC,EAAE;MACfX,YAAY,CAAC,IAAI,CAACE,cAAc,CAAC;MACjC,IAAI,CAACA,cAAc,GAAGkB,UAAU,CAACF,QAAQ,EAAED,QAAQ,CAAC;IACtD,CAAC,MAAM;MACLC,QAAQ,CAAC,CAAC;IACZ;EACF;EAEA3B,gBAAgBA,CACdH,UAAU,EACV;IACEX,gBAAgB,GAAG,KAAK;IACxBC,mBAAmB,GAAG,KAAK;IAC3B2C,SAAS,GAAG,KAAK;IACjBC,UAAU,GAAG;EACf,CAAC,GAAG,CAAC,CAAC,EACN;IACA,IAAI,CAACjB,kBAAkB,CACrB,CAAC;MAAEjB,UAAU;MAAEX;IAAiB,CAAC,KAAK;MACpC,MAAMT,OAAO,GAAG,IAAI,CAACA,OAAO,CAACI,UAAU;MACvC,MAAMmD,WAAW,GAAIC,SAAS,IAAK;QACjC,IAAIC,KAAK,CAACrC,UAAU,CAAC,EAAE;UACrBA,UAAU,GAAG,CAAC;QAChB;QACA,MAAMsC,GAAG,GAAGtE,0BAA0B,CAACY,OAAO,EAAEwD,SAAS,EAAAG,aAAA;UACvDvC;QAAU,GACPpB,OAAO,CACX,CAAC;QAEF,IAAI,OAAOsD,UAAU,KAAK,UAAU,EAAE;UACpCA,UAAU,CAAC,CAAC;QACd;QAEA,IAAI,OAAOI,GAAG,KAAK,UAAU,EAAE;UAC7B,IAAI,CAAC5B,aAAa,CAACW,IAAI,CAACiB,GAAG,CAAC;QAC9B;MACF,CAAC;MAED,IAAIL,SAAS,EAAE;QACbE,WAAW,CAAC,QAAQ,CAAC;MACvB,CAAC,MAAM;QACL,IAAI9C,gBAAgB,EAAE;UACpB8C,WAAW,CAAC,YAAY,CAAC;QAC3B,CAAC,MAAM;UACLA,WAAW,CAAC,WAAW,CAAC;QAC1B;QAEAA,WAAW,CAAC,SAAS,CAAC;MACxB;IACF,CAAC,EACD;MAAEnC,UAAU;MAAEX,gBAAgB;MAAEC;IAAoB,CACtD,CAAC;EACH;EAEAkD,oBAAoBA,CAAA,EAAG;IACrB,MAAM;MAAEC;IAAS,CAAC,GAAG,IAAI,CAAC9D,KAAK;IAE/B,MAAM;MAEJ+D,SAAS;MACTC,SAAS;MACTjD,SAAS;MACTkD,gBAAgB;MAChBC,iBAAiB;MAGjBC,YAAY;MACZC,gBAAgB;MAChBC,cAAc;MACdC;IACF,CAAC,GAAG,IAAI,CAACrE,OAAO,CAACI,UAAU;IAE3B,MAAMkE,MAAM,GAAGA,CAAA,KACbvF,KAAA,CAAAwF,aAAA,CAACC,iBAAiB;MAChBpD,UAAU,EAAE2C,SAAU;MACtBU,aAAa,EAAEL,cAAc,IAAID,gBAAiB;MAClDO,SAAS,EAAGtD,UAAU,IAAK;QACzB,IAAIb,SAAS;QAEb,KAAK,IAAII,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGsD,iBAAiB,EAAE,EAAEtD,CAAC,EAAE;UAC1CJ,SAAS,GAAGa,UAAU,GAAG,CAAC,GAAGT,CAAC;UAE9B,IAAI,CAACX,OAAO,CAACI,UAAU,CAACuE,YAAY,CAAC,MAAM;YACzC,IAAI,CAAC3E,OAAO,CAACI,UAAU,CAACwE,QAAQ,CAAC;cAC/Bb,SAAS,EAAExD,SAAS;cACpBC,YAAY,EAAEG,CAAC,GAAG,CAAC,GAAGsD;YACxB,CAAC,CAAC;UACJ,CAAC,CAAC;UACF,IAAI,CAAC1C,gBAAgB,CAAChB,SAAS,CAAC;QAClC;MACF;IAAE,CACH,CACF;IAED,MAAMsE,UAAU,GAAGA,CAAA,KACjB9F,KAAA,CAAAwF,aAAA,CAACO,kBAAkB;MACjBC,IAAI,EAAC,UAAU;MACfC,OAAO,EAAEb,gBAAiB;MAC1Bc,eAAe,EACblG,KAAA,CAAAwF,aAAA,CAAC7E,mBAAmB;QAClB2E,iBAAiB,EAAEA,iBAAiB,IAAIF;MAAiB,CAC1D,CACF;MACDe,QAAQ,EAAEA,CAAA,KAAM;QACd,MAAM3E,SAAS,GAAGuD,SAAS,GAAG,CAAC;QAE/B,IAAI,CAAC9D,OAAO,CAACI,UAAU,CAACuE,YAAY,CAAC,MAAM;UACzC,IAAI,CAAC3E,OAAO,CAACI,UAAU,CAACwE,QAAQ,CAAC;YAC/Bd,SAAS,EAAEvD;UACb,CAAC,CAAC;QACJ,CAAC,CAAC;QACF,IAAI,CAACgB,gBAAgB,CAAChB,SAAS,CAAC;MAClC;IAAE,CACH,CACF;IAED,OACExB,KAAA,CAAAwF,aAAA,CAAAxF,KAAA,CAAAoG,QAAA,QACG7E,UAAU,CAAC4D,YAAY,CAAC,GAAG,CAAC,IAAIJ,SAAS,GAAG,CAAC,IAAI/E,KAAA,CAAAwF,aAAA,CAACM,UAAU,MAAE,CAAC,EAE/DhB,QAAQ,EAER,CAACG,gBAAgB,IAChB1D,UAAU,CAAC4D,YAAY,CAAC,GAAG,CAAC,KAC3B,OAAOpD,SAAS,KAAK,WAAW,IAAIiD,SAAS,GAAGjD,SAAS,CAAC,IACzD/B,KAAA,CAAAwF,aAAA,CAACD,MAAM,MAAE,CACV,EAEF,CAACN,gBAAgB,IAChB,CAAC,IAAI,CAACxC,aAAa,KAClB,OAAOV,SAAS,KAAK,WAAW,IAAIiD,SAAS,GAAGjD,SAAS,CAAC,IACzD/B,KAAA,CAAAwF,aAAA,CAAC7E,mBAAmB;MAClB2E,iBAAiB,EAAEA,iBAAiB,IAAIF;IAAiB,CAC1D,CAEL,CAAC;EAEP;EAEAiB,MAAMA,CAAA,EAAG;IACP,MAAM;MAEJnE,KAAK;MACLH,SAAS;MACTZ,WAAW;MACX8D,gBAAgB;MAChBC,iBAAiB;MACjBoB,uBAAuB;MAGvBC,YAAY;MACZnB,gBAAgB;MAChBC,cAAc;MACdC;IACF,CAAC,GAAG,IAAI,CAACrE,OAAO,CAACI,UAAU;IAG3B,IAAI,EAAEa,KAAK,IAAIA,KAAK,CAAC2B,MAAM,GAAG,CAAC,CAAC,EAAE;MAChCZ,YAAY,CAAC,IAAI,CAACC,eAAe,CAAC;MAClC,IAAI,CAACA,eAAe,GAAGmB,UAAU,CAAC,IAAI,CAACmC,OAAO,EAAE,CAAC,CAAC;MAClD,OAAO,IAAI;IACb;IAEA,IAAI,IAAI,CAACvF,OAAO,CAACI,UAAU,CAACoF,aAAa,EAAE;MACzC,OAAO,IAAI,CAAC5B,oBAAoB,CAAC,CAAC;IACpC;IAGA,MAAM6B,OAAO,GAAGjG,kBAAkB,CAAC8F,YAAY,IAAIvG,KAAK,CAACoG,QAAQ,CAAC;IAElE,OAAOlE,KAAK,CAACyE,GAAG,CACd,CACE;MACEtE,UAAU;MACVuE,UAAU;MACVC,OAAO;MACPC,GAAG;MACHrF,YAAY;MACZsF;IACF,CAAC,EACDC,GAAG,KACA;MACH,MAAMC,UAAU,GAAGD,GAAG,KAAK9E,KAAK,CAAC2B,MAAM,GAAG,CAAC;MAG3C,MAAMqD,IAAI,GAAIN,UAAU,IAAIG,aAAa,IAAKL,OAAO;MAGrD,MAAMS,MAAM,GAAGP,UAAU,IACvB,CAAC,IAAI,CAACjE,aAAa,IACnB,CAAClB,YAAY,IACb,CAACwD,gBAAgB,KAChB,OAAOlD,SAAS,KAAK,WAAW,IAC/BM,UAAU,IAAIN,SAAS,CAAC,IACxB/B,KAAA,CAAAwF,aAAA,CAACC,iBAAiB;QAChBpD,UAAU,EAAEA,UAAW;QACvBqD,aAAa,EAAEL,cAAc,IAAID,gBAAiB;QAClDO,SAAS,EAAGtD,UAAU,IAAK;UACzB,IAAIb,SAAS;UAEb,KAAK,IAAII,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGsD,iBAAiB,EAAE,EAAEtD,CAAC,EAAE;YAC1CJ,SAAS,GAAGa,UAAU,GAAG,CAAC,GAAGT,CAAC;YAC9B,IAAI,CAACC,aAAa,CAACL,SAAS,EAAE;cAC5BM,QAAQ,EAAE,OAAO;cACjBL,YAAY,EAAEG,CAAC,GAAG,CAAC,GAAGsD;YACxB,CAAC,CAAC;UACJ;QACF;MAAE,CACH,CACF;MAEH,MAAMkC,aAAa,GACjB,CAAClC,iBAAiB,GAAG,CAAC,IAAI8B,GAAG,GAAG,CAAC,GAAGC,UAAU,GAAG,IAAI,KACrD,CAACL,UAAU,IACX,CAAC,IAAI,CAACnE,aAAa;MAErB,OACEzC,KAAA,CAAAwF,aAAA,CAAC0B,IAAI;QAACG,GAAG,EAAEhF,UAAW;QAACyE,GAAG,EAAEA;MAAI,GAC7BF,UAAU,IACTzF,WAAW,GAAG,CAAC,IACfkB,UAAU,GAAG,CAAC,IACdA,UAAU,IAAIlB,WAAW,IACvBnB,KAAA,CAAAwF,aAAA,CAACO,kBAAkB;QACjBE,OAAO,EAAEb,gBAAiB;QAC1BY,IAAI,EAAC,UAAU;QACfG,QAAQ,EAAGmB,KAAK,IACd,IAAI,CAACzF,aAAa,CAACQ,UAAU,GAAG,CAAC,EAAE;UACjCP,QAAQ,EAAE,QAAQ;UAClBL,YAAY,EAAE,IAAI;UAClB6F;QACF,CAAC;MACF,CACF,CACF,EAEFhB,uBAAuB,IAAIa,MAAM,EACjCN,OAAO,EACP,CAACP,uBAAuB,IAAIa,MAAM,EAElCC,aAAa,IACZpH,KAAA,CAAAwF,aAAA,CAAC7E,mBAAmB;QAClB2E,iBAAiB,EAAEA,iBAAiB,IAAIF;MAAiB,CAC1D,CACF,EAEAwB,UAAU,IACT,IAAI,CAACjE,aAAa,IAClBsE,UAAU,KACT,OAAOlF,SAAS,KAAK,WAAW,IAC/BM,UAAU,GAAGN,SAAS,CAAC,IACvB/B,KAAA,CAAAwF,aAAA,CAACO,kBAAkB;QACjBE,OAAO,EAAEb,gBAAiB;QAC1BY,IAAI,EAAC,YAAY;QACjBG,QAAQ,EAAGmB,KAAK,IACd,IAAI,CAACzF,aAAa,CAACQ,UAAU,GAAG,CAAC,EAAE;UACjCP,QAAQ,EAAE,OAAO;UACjBL,YAAY,EAAE,IAAI;UAClBsF,aAAa,EAAG/F,KAAK,IACnB4F,UAAU,IACR5G,KAAA,CAAAwF,aAAA,CAAC+B,eAAe,EAAAC,QAAA;YACdjB,YAAY,EAAEA;UAAa,GACvBvF,KAAK,CACV,CACF;UACHsG;QACF,CAAC;MACF,CACF,CAED,CAAC;IAEX,CACF,CAAC;EACH;AACF;AAACpG,eAAA,CA3XoBL,gBAAgB,iBACdD,iBAAiB;AAAAM,eAAA,CADnBL,gBAAgB,kBAKb;EAAEiE,QAAQ,EAAE;AAAK,CAAC;AAAA2C,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBALrB9G,gBAAgB,CAE5B+G,SAAS,GAAG;EACjB9C,QAAQ,EAAE7E,SAAS,CAAC4H,SAAS,CAAC,CAAC5H,SAAS,CAAC6H,IAAI,EAAE7H,SAAS,CAAC8H,IAAI,CAAC;AAChE,CAAC;AAyXH,MAAMtC,iBAAiB,SAASzF,KAAK,CAACc,aAAa,CAAC;EAgBlDC,WAAWA,CAACC,KAAK,EAAE;IACjB,KAAK,CAACA,KAAK,CAAC;IAAAE,eAAA,gBAHN;MAAE8G,WAAW,EAAE;IAAM,CAAC;IAAA9G,eAAA,oBAwClB,MAAM;MAAA,IAAA+G,qBAAA;MAChB,CAAAA,qBAAA,OAAI,CAACC,oBAAoB,cAAAD,qBAAA,uBAAzBA,qBAAA,CAA2BE,UAAU,CAAC,CAAC;MACvC,IAAI,CAACD,oBAAoB,GAAG,IAAI;MAChCjF,YAAY,CAAC,IAAI,CAACmF,aAAa,CAAC;MAChC,IAAI,CAACA,aAAa,GAAG/D,UAAU,CAAC,MAAM;QACpC,IAAI,IAAI,CAACgE,UAAU,EAAE;UACnB,IAAI,CAACxC,QAAQ,CAAC;YAAEmC,WAAW,EAAE;UAAK,CAAC,CAAC;QACtC;QACA,IAAI,CAAChH,KAAK,CAAC2E,SAAS,CAAC,IAAI,CAAC3E,KAAK,CAACqB,UAAU,CAAC;MAC7C,CAAC,EAAE,CAAC,CAAC;IACP,CAAC;IA7CC,IAAI,OAAOrB,KAAK,CAAC0E,aAAa,KAAK,UAAU,EAAE;MAC7CvF,IAAI,CACF,2EACF,CAAC;IACH;IAEA,IAAI,CAACmI,IAAI,GAAGtI,KAAK,CAAC8C,SAAS,CAAC,CAAC;IAE7B,IAAI,OAAOyF,oBAAoB,KAAK,WAAW,EAAE;MAC/C,IAAI,CAACL,oBAAoB,GAAG,IAAIK,oBAAoB,CAAEC,OAAO,IAAK;QAChE,MAAM,CAAC;UAAEC;QAAe,CAAC,CAAC,GAAGD,OAAO;QACpC,IAAIC,cAAc,EAAE;UAClB,IAAI,CAACC,SAAS,CAAC,CAAC;QAClB;MACF,CAAC,CAAC;IACJ,CAAC,MAAM;MACLvI,IAAI,CAAC,uDAAuD,CAAC;IAC/D;EACF;EAEAwI,iBAAiBA,CAAA,EAAG;IAClB,IAAI,IAAI,CAACL,IAAI,CAACM,OAAO,EAAE;MAAA,IAAAC,sBAAA;MACrB,IAAI,CAACR,UAAU,GAAG,IAAI;MACtB,CAAAQ,sBAAA,OAAI,CAACX,oBAAoB,cAAAW,sBAAA,uBAAzBA,sBAAA,CAA2BC,OAAO,CAAC,IAAI,CAACR,IAAI,CAACM,OAAO,CAAC;IACvD;EACF;EAEA5F,oBAAoBA,CAAA,EAAG;IACrB,IAAI,CAACqF,UAAU,GAAG,KAAK;IACvB,IAAI,IAAI,CAACH,oBAAoB,EAAE;MAC7BjF,YAAY,CAAC,IAAI,CAACmF,aAAa,CAAC;MAChC,IAAI,CAACF,oBAAoB,CAACC,UAAU,CAAC,CAAC;IACxC;EACF;EAcAY,gBAAgBA,CAAA,EAAG;IACjB,IAAIC,MAAM,GAAG,CAAC;IAEd,IAAI;MACF,MAAMC,OAAO,GAAG3I,kBAAkB,CAAC,WAAW,EAAE,IAAI,CAACgI,IAAI,CAACM,OAAO,CAAC;MAClEI,MAAM,GAAGzH,UAAU,CACjB2H,MAAM,CAACC,gBAAgB,CAACF,OAAO,CAACG,aAAa,CAAC,OAAO,CAAC,CAAC,CAACJ,MAC1D,CAAC;IACH,CAAC,CAAC,OAAOK,CAAC,EAAE,CAEZ;IAEA,OAAOL,MAAM;EACf;EAEA3C,MAAMA,CAAA,EAAG;IACP,MAAM;MAAEX;IAAc,CAAC,GAAG,IAAI,CAAC1E,KAAK;IAEpC,IAAI,IAAI,CAACsI,KAAK,CAACtB,WAAW,IAAI,CAAC,IAAI,CAACE,oBAAoB,EAAE;MACxD,OAAO,IAAI;IACb;IAIA,MAAMxB,OAAO,GACXhB,aAAa,IAAIhF,WAAW,CAACgF,aAAa,CAAC,GAAG,IAAI,GAAG,KAAK;IAC5D,MAAM6D,YAAY,GAChB7D,aAAa,IAAIhF,WAAW,CAACgF,aAAa,CAAC,GAAG,IAAI,GAAG,KAAK;IAE5D,OACE1F,KAAA,CAAAwF,aAAA,CAACkB,OAAO;MAAC8C,SAAS,EAAC;IAA0C,GAC3DxJ,KAAA,CAAAwF,aAAA,CAAC+D,YAAY;MACXC,SAAS,EAAC,+BAA+B;MACzC1C,GAAG,EAAE,IAAI,CAACwB;IAAK,CAGH,CACP,CAAC;EAEd;AACF;AAACpH,eAAA,CA1GKuE,iBAAiB,kBAWC;EACpBC,aAAa,EAAE;AACjB,CAAC;AAAA+B,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAbGlC,iBAAiB,CACdmC,SAAS,GAAG;EACjBvF,UAAU,EAAEpC,SAAS,CAACwJ,MAAM,CAACC,UAAU;EACvC/D,SAAS,EAAE1F,SAAS,CAAC8H,IAAI,CAAC2B,UAAU;EACpChE,aAAa,EAAEzF,SAAS,CAAC4H,SAAS,CAAC,CACjC5H,SAAS,CAAC0J,MAAM,EAChB1J,SAAS,CAAC6H,IAAI,EACd7H,SAAS,CAAC8H,IAAI,EACd9H,SAAS,CAAC2J,MAAM,CACjB;AACH,CAAC;AAkGH,OAAO,MAAM7D,kBAAkB,SAAS/F,KAAK,CAACc,aAAa,CAAC;EAAAC,YAAA,GAAA8I,IAAA;IAAA,SAAAA,IAAA;IAAA3I,eAAA,gBAsBlD;MAAE4I,SAAS,EAAE;IAAM,CAAC;IAAA5I,eAAA,yBACVmI,CAAC,IAAK;MACtB,IAAI,CAACxD,QAAQ,CAAC;QAAEiE,SAAS,EAAE;MAAK,CAAC,CAAC;MAClC,IAAI,OAAO,IAAI,CAAC9I,KAAK,CAACmF,QAAQ,KAAK,UAAU,EAAE;QAC7C,IAAI,CAACnF,KAAK,CAACmF,QAAQ,CAACkD,CAAC,CAAC;MACxB;IACF,CAAC;EAAA;EACDhD,MAAMA,CAAA,EAAG;IACP,MAAM;MAAEJ,OAAO;MAAED;IAAK,CAAC,GAAG,IAAI,CAAChF,KAAK;IACpC,MAAM0F,OAAO,GAAGT,OAAO;IACvB,MAAMsD,YAAY,GAAG7I,WAAW,CAACgG,OAAO,CAAC,GAAG,IAAI,GAAG,KAAK;IAExD,OAAO,IAAI,CAAC4C,KAAK,CAACQ,SAAS,GACzB,IAAI,CAAC9I,KAAK,CAACkF,eAAe,GAE1BlG,KAAA,CAAAwF,aAAA,CAACkB,OAAO,QACN1G,KAAA,CAAAwF,aAAA,CAAC+D,YAAY;MAACC,SAAS,EAAC;IAAyB,GAC/CxJ,KAAA,CAAAwF,aAAA,CAAChF,MAAM;MACLuJ,IAAI,EAAC,QAAQ;MACb/D,IAAI,EAAEA,IAAK;MACXgE,aAAa,EAAC,MAAM;MACpBC,IAAI,EAAE,IAAI,CAAChJ,OAAO,CAACiJ,WAAW,CAACC,UAAU,CAACC,gBAAiB;MAC3DC,OAAO,EAAC,WAAW;MACnBlE,QAAQ,EAAE,IAAI,CAACmE;IAAe,CAC/B,CACW,CACP,CACV;EACH;AACF;AAACpJ,eAAA,CAnDY6E,kBAAkB,iBACRxF,OAAO;AAAAW,eAAA,CADjB6E,kBAAkB,kBAiBP;EACpBE,OAAO,EAAE,KAAK;EACdC,eAAe,EAAE,IAAI;EACrBF,IAAI,EAAE;AACR,CAAC;AAAAyB,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBArBU5B,kBAAkB,CAEtB6B,SAAS,GAAG;EACjB3B,OAAO,EAAEhG,SAAS,CAAC4H,SAAS,CAAC,CAC3B5H,SAAS,CAAC0J,MAAM,EAChB1J,SAAS,CAAC6H,IAAI,EACd7H,SAAS,CAAC8H,IAAI,EACd9H,SAAS,CAAC2J,MAAM,CACjB,CAAC;EACF1D,eAAe,EAAEjG,SAAS,CAAC4H,SAAS,CAAC,CACnC5H,SAAS,CAAC0J,MAAM,EAChB1J,SAAS,CAAC6H,IAAI,EACd7H,SAAS,CAAC8H,IAAI,CACf,CAAC;EACF/B,IAAI,EAAE/F,SAAS,CAAC2J,MAAM,CAACF,UAAU;EACjCvD,QAAQ,EAAElG,SAAS,CAAC8H,IAAI,CAAC2B;AAC3B,CAAC;AAqCH,MAAMnC,eAAe,SAASvH,KAAK,CAACc,aAAa,CAAC;EAYhD6H,iBAAiBA,CAAA,EAAG;IAMlB,MAAM4B,IAAI,GAAGrK,QAAQ,CAACsK,WAAW,CAAC,IAAI,CAAC;IACvC,IAAI,CAACC,YAAY,CAACF,IAAI,CAAC;EACzB;EACAE,YAAYA,CAACxE,OAAO,EAAE;IACpB,IAAIA,OAAO,IAAI,OAAOA,OAAO,CAACyE,cAAc,KAAK,UAAU,EAAE;MAC3DzE,OAAO,CAACyE,cAAc,CAAC;QACrBC,KAAK,EAAE,SAAS;QAChBC,QAAQ,EAAE;MACZ,CAAC,CAAC;IACJ;EACF;EACAvE,MAAMA,CAAA,EAAG;IACP,MAAAwE,WAAA,GAAmC,IAAI,CAAC7J,KAAK;MAAvC;QAAEuF;MAAuB,CAAC,GAAAsE,WAAA;MAAP7J,KAAK,GAAA8J,wBAAA,CAAAD,WAAA,EAAAE,SAAA;IAC9B,MAAMrE,OAAO,GAAGjG,kBAAkB,CAAC8F,YAAY,IAAIvG,KAAK,CAACoG,QAAQ,CAAC;IAClE,OAAOpG,KAAA,CAAAwF,aAAA,CAACkB,OAAO,EAAK1F,KAAQ,CAAC;EAC/B;AACF;AAACE,eAAA,CAlCKqG,eAAe,kBASG;EACpBhB,YAAY,EAAE;AAChB,CAAC;AAAAkB,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAXGJ,eAAe,CACZK,SAAS,GAAG;EACjBrB,YAAY,EAAEtG,SAAS,CAAC4H,SAAS,CAAC,CAChC5H,SAAS,CAAC0J,MAAM,EAChB1J,SAAS,CAAC6H,IAAI,EACd7H,SAAS,CAAC8H,IAAI,EACd9H,SAAS,CAAC2J,MAAM,CACjB;AACH,CAAC;AA4BH/I,gBAAgB,CAACmK,qBAAqB,GAAG,IAAI"}
1
+ {"version":3,"file":"PaginationInfinity.js","names":["React","PropTypes","ReactDOM","warn","isTrue","dispatchCustomElementEvent","getPreviousSibling","Context","Button","preparePageElement","isTrElement","PaginationIndicator","PaginationContext","InfinityScroller","PureComponent","constructor","props","context","_defineProperty","startupPage","startup_count","pagination","startupCount","parseFloat","newPageNo","skipObserver","callStartupEvent","preventWaitForDelay","i","getNewContent","position","pageCount","endInfinity","exists","items","findIndex","obj","pageNumber","prefillItems","setItems","callEventHandler","hideIndicator","hide_progress_indicator","useLoadButton","use_load_button","lastElement","createRef","callOnUnmount","componentWillUnmount","clearTimeout","_startupTimeout","_bufferTimeout","forEach","f","waitForReachedTime","fn","params","callbackBuffer","push","callBuffer","minTime","length","diff","_lastCall","Date","getTime","waitTime","nextTick","shift","setTimeout","callOnEnd","onDispatch","createEvent","eventName","isNaN","ret","_objectSpread","handleInfinityMarker","children","lowerPage","upperPage","hasEndedInfinity","parallelLoadCount","current_page","fallback_element","marker_element","indicator_element","Marker","createElement","InteractionMarker","markerElement","onVisible","onPageUpdate","setState","LoadButton","InfinityLoadButton","icon","element","pressed_element","on_click","Fragment","render","placeMakerBeforeContent","page_element","load_button_text","loadButton","startup","useMarkerOnly","Element","map","hasContent","content","ref","ScrollElement","idx","isLastItem","Elem","marker","showIndicator","key","text","icon_position","iconPosition","event","ScrollToElement","_extends","process","env","NODE_ENV","propTypes","oneOfType","node","func","isConnected","_this$intersectionObs","intersectionObserver","disconnect","_readyTimeout","_isMounted","_ref","IntersectionObserver","entries","isIntersecting","callReady","componentDidMount","current","_this$intersectionObs2","observe","getContentHeight","height","sibling","window","getComputedStyle","querySelector","e","state","ElementChild","className","number","isRequired","object","string","args","isPressed","size","translation","Pagination","variant","onClickHandler","elem","findDOMNode","scrollToPage","scrollIntoView","block","behavior","_this$props","_objectWithoutProperties","_excluded","_supportsSpacingProps"],"sources":["../../../../src/components/pagination/PaginationInfinity.js"],"sourcesContent":["/**\n * Web Pagination Component\n *\n * This is a legacy component.\n * For referencing while developing new features, please use a Functional component.\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport ReactDOM from 'react-dom'\nimport {\n warn,\n isTrue,\n dispatchCustomElementEvent,\n getPreviousSibling,\n} from '../../shared/component-helper'\nimport Context from '../../shared/Context'\nimport Button from '../button/Button'\nimport {\n preparePageElement,\n isTrElement,\n PaginationIndicator,\n} from './PaginationHelpers'\nimport PaginationContext from './PaginationContext'\n\nexport default class InfinityScroller extends React.PureComponent {\n static contextType = PaginationContext\n static propTypes = {\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n }\n static defaultProps = { children: null }\n\n constructor(props, context) {\n super(props)\n this.hideIndicator = isTrue(context.pagination.hide_progress_indicator)\n this.useLoadButton = isTrue(context.pagination.use_load_button)\n this.lastElement = React.createRef()\n this.callOnUnmount = []\n }\n\n componentWillUnmount() {\n clearTimeout(this._startupTimeout)\n clearTimeout(this._bufferTimeout)\n this.callOnUnmount.forEach((f) => typeof f === 'function' && f())\n }\n\n startup = () => {\n const { startupPage, startup_count } = this.context.pagination\n const startupCount = parseFloat(startup_count)\n\n let newPageNo, skipObserver, callStartupEvent, preventWaitForDelay\n for (let i = 0; i < startupCount; ++i) {\n newPageNo = startupPage + i\n skipObserver = newPageNo < startupCount\n callStartupEvent = i === 0\n preventWaitForDelay = i <= startupCount - 1\n\n // NB: Looks like we have to do more work here to use a waitBuffer\n this.getNewContent(\n newPageNo,\n {\n position: 'after',\n skipObserver,\n },\n { callStartupEvent, preventWaitForDelay }\n )\n }\n }\n\n getNewContent = (\n newPageNo,\n props = {},\n { callStartupEvent = false, preventWaitForDelay = false } = {}\n ) => {\n const { pageCount, endInfinity } = this.context.pagination\n\n // if \"page_count\" is set do not load more than that value\n if (newPageNo > pageCount) {\n return endInfinity()\n }\n\n const exists =\n this.context.pagination.items.findIndex((obj) => {\n return obj.pageNumber === newPageNo\n }) > -1\n\n if (exists) {\n return // stop here!\n }\n\n const items = this.context.pagination.prefillItems(newPageNo, props)\n\n this.context.pagination.setItems(items, () => {\n this.callEventHandler(newPageNo, {\n callStartupEvent,\n preventWaitForDelay,\n })\n })\n }\n\n waitForReachedTime(fn, params) {\n this.callbackBuffer = this.callbackBuffer || []\n this.callbackBuffer.push({ fn, params })\n this.callBuffer({\n minTime: params.preventWaitForDelay\n ? -1\n : this.context.pagination.minTime,\n })\n }\n\n callBuffer({ minTime = this.context.pagination.minTime } = {}) {\n if (this.callbackBuffer.length === 0) {\n return // stop here\n }\n\n const diff =\n this._lastCall > 0 ? new Date().getTime() - this._lastCall : 0\n const waitTime = diff < minTime ? minTime : 0\n\n const nextTick = () => {\n if (this.callbackBuffer.length > 0) {\n this._lastCall = new Date().getTime()\n const { fn, params } = this.callbackBuffer.shift()\n fn(params)\n this.callBuffer({\n minTime: params.preventWaitForDelay ? -1 : minTime,\n })\n }\n }\n\n if (minTime > 0) {\n clearTimeout(this._bufferTimeout)\n this._bufferTimeout = setTimeout(nextTick, waitTime)\n } else {\n nextTick()\n }\n }\n\n callEventHandler(\n pageNumber,\n {\n callStartupEvent = false,\n preventWaitForDelay = false,\n callOnEnd = false,\n onDispatch = null,\n } = {}\n ) {\n this.waitForReachedTime(\n ({ pageNumber, callStartupEvent }) => {\n const context = this.context.pagination\n const createEvent = (eventName) => {\n if (isNaN(pageNumber)) {\n pageNumber = 1\n }\n const ret = dispatchCustomElementEvent(context, eventName, {\n pageNumber,\n ...context,\n })\n\n if (typeof onDispatch === 'function') {\n onDispatch()\n }\n\n if (typeof ret === 'function') {\n this.callOnUnmount.push(ret)\n }\n }\n\n if (callOnEnd) {\n createEvent('on_end')\n } else {\n if (callStartupEvent) {\n createEvent('on_startup')\n } else {\n createEvent('on_change')\n }\n\n createEvent('on_load')\n }\n },\n { pageNumber, callStartupEvent, preventWaitForDelay }\n )\n }\n\n handleInfinityMarker() {\n const { children } = this.props\n\n const {\n // our states\n lowerPage,\n upperPage,\n pageCount,\n hasEndedInfinity,\n parallelLoadCount,\n\n // our props\n current_page,\n fallback_element,\n marker_element,\n indicator_element,\n } = this.context.pagination\n\n const Marker = () => (\n <InteractionMarker\n pageNumber={upperPage}\n markerElement={marker_element || fallback_element}\n onVisible={(pageNumber) => {\n let newPageNo\n // load several pages at once\n for (let i = 0; i < parallelLoadCount; ++i) {\n newPageNo = pageNumber + 1 + i\n // wait on updating our own state, so we can show the indicator (pressed_element) until we get new children back\n this.context.pagination.onPageUpdate(() => {\n this.context.pagination.setState({\n upperPage: newPageNo,\n skipObserver: i + 1 < parallelLoadCount,\n })\n })\n this.callEventHandler(newPageNo)\n }\n }}\n />\n )\n\n const LoadButton = () => (\n <InfinityLoadButton\n icon=\"arrow_up\"\n element={fallback_element}\n pressed_element={\n <PaginationIndicator\n indicator_element={indicator_element || fallback_element}\n />\n }\n on_click={() => {\n const newPageNo = lowerPage - 1\n // wait on updating our own state, so we can show the indicator (pressed_element) until we get new children back\n this.context.pagination.onPageUpdate(() => {\n this.context.pagination.setState({\n lowerPage: newPageNo,\n })\n })\n this.callEventHandler(newPageNo)\n }}\n />\n )\n\n return (\n <>\n {parseFloat(current_page) > 0 && lowerPage > 1 && <LoadButton />}\n\n {children}\n\n {!hasEndedInfinity &&\n parseFloat(current_page) > 0 &&\n (typeof pageCount === 'undefined' || upperPage < pageCount) && (\n <Marker />\n )}\n\n {!hasEndedInfinity &&\n !this.hideIndicator &&\n (typeof pageCount === 'undefined' || upperPage < pageCount) && (\n <PaginationIndicator\n indicator_element={indicator_element || fallback_element}\n />\n )}\n </>\n )\n }\n\n render() {\n const {\n // our states\n items,\n pageCount,\n startupPage,\n hasEndedInfinity,\n parallelLoadCount,\n placeMakerBeforeContent,\n\n // our props\n page_element,\n fallback_element,\n marker_element,\n indicator_element,\n load_button_text,\n loadButton,\n } = this.context.pagination\n\n // invoke startup if needed\n if (!(items && items.length > 0)) {\n clearTimeout(this._startupTimeout)\n this._startupTimeout = setTimeout(this.startup, 1) // call startup()\n return null // stop here\n }\n\n if (this.context.pagination.useMarkerOnly) {\n return this.handleInfinityMarker()\n }\n\n // make sure we handle Table markup correctly\n const Element = preparePageElement(page_element || React.Fragment)\n\n return items.map(\n (\n {\n pageNumber,\n hasContent,\n content,\n ref,\n skipObserver,\n ScrollElement,\n },\n idx\n ) => {\n const isLastItem = idx === items.length - 1\n\n // decide to whether use the default Element, or use the scrollTo element\n const Elem = (hasContent && ScrollElement) || Element\n\n // render the marker before\n const marker = hasContent &&\n !this.useLoadButton &&\n !skipObserver &&\n !hasEndedInfinity &&\n (typeof pageCount === 'undefined' ||\n pageNumber <= pageCount) && (\n <InteractionMarker\n pageNumber={pageNumber}\n markerElement={marker_element || fallback_element}\n onVisible={(pageNumber) => {\n let newPageNo\n // load several pages at once\n for (let i = 0; i < parallelLoadCount; ++i) {\n newPageNo = pageNumber + 1 + i\n this.getNewContent(newPageNo, {\n position: 'after',\n skipObserver: i + 1 < parallelLoadCount,\n })\n }\n }}\n />\n )\n\n const showIndicator =\n (parallelLoadCount > 1 && idx > 0 ? isLastItem : true) &&\n !hasContent &&\n !this.hideIndicator\n\n return (\n <Elem key={pageNumber} ref={ref}>\n {hasContent &&\n startupPage > 1 &&\n pageNumber > 1 &&\n pageNumber <= startupPage && (\n <InfinityLoadButton\n element={\n typeof loadButton === 'function'\n ? loadButton\n : fallback_element\n }\n icon=\"arrow_up\"\n text={load_button_text ?? loadButton?.text}\n icon_position={loadButton?.iconPosition}\n on_click={(event) =>\n this.getNewContent(pageNumber - 1, {\n position: 'before',\n skipObserver: true,\n event,\n })\n }\n />\n )}\n\n {placeMakerBeforeContent && marker}\n {content}\n {!placeMakerBeforeContent && marker}\n\n {showIndicator && (\n <PaginationIndicator\n indicator_element={indicator_element || fallback_element}\n />\n )}\n\n {hasContent &&\n this.useLoadButton &&\n isLastItem &&\n (typeof pageCount === 'undefined' ||\n pageNumber < pageCount) && (\n <InfinityLoadButton\n element={\n typeof loadButton === 'function'\n ? loadButton\n : fallback_element\n }\n text={load_button_text ?? loadButton?.text}\n icon_position={loadButton?.iconPosition}\n icon=\"arrow_down\"\n on_click={(event) =>\n this.getNewContent(pageNumber + 1, {\n position: 'after',\n skipObserver: true,\n ScrollElement: (props) =>\n hasContent && (\n <ScrollToElement\n page_element={page_element}\n {...props}\n />\n ),\n event,\n })\n }\n />\n )}\n </Elem>\n )\n }\n )\n }\n}\n\nclass InteractionMarker extends React.PureComponent {\n static propTypes = {\n pageNumber: PropTypes.number.isRequired,\n onVisible: PropTypes.func.isRequired,\n markerElement: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.node,\n PropTypes.func,\n PropTypes.string,\n ]),\n }\n static defaultProps = {\n markerElement: null,\n }\n state = { isConnected: false }\n\n constructor(props) {\n super(props)\n\n if (typeof props.markerElement === 'function') {\n warn(\n 'Pagination: Please use a string or React element e.g. marker_element=\"tr\"'\n )\n }\n\n this._ref = React.createRef()\n\n if (typeof IntersectionObserver !== 'undefined') {\n this.intersectionObserver = new IntersectionObserver((entries) => {\n const [{ isIntersecting }] = entries\n if (isIntersecting) {\n this.callReady()\n }\n })\n } else {\n warn('Pagination is missing IntersectionObserver supported!')\n }\n }\n\n componentDidMount() {\n if (this._ref.current) {\n this._isMounted = true\n this.intersectionObserver?.observe(this._ref.current)\n }\n }\n\n componentWillUnmount() {\n this._isMounted = false\n if (this.intersectionObserver) {\n clearTimeout(this._readyTimeout)\n this.intersectionObserver.disconnect()\n }\n }\n\n callReady = () => {\n this.intersectionObserver?.disconnect()\n this.intersectionObserver = null\n clearTimeout(this._readyTimeout)\n this._readyTimeout = setTimeout(() => {\n if (this._isMounted) {\n this.setState({ isConnected: true })\n }\n this.props.onVisible(this.props.pageNumber)\n }, 1) // because of re-render loop\n }\n\n getContentHeight() {\n let height = 0\n\n try {\n const sibling = getPreviousSibling('dnb-table', this._ref.current)\n height = parseFloat(\n window.getComputedStyle(sibling.querySelector('tbody')).height\n )\n } catch (e) {\n //\n }\n\n return height\n }\n\n render() {\n const { markerElement } = this.props\n\n if (this.state.isConnected || !this.intersectionObserver) {\n return null\n }\n\n // NB: make sure we don't actually use the marker element,\n // because it looks like React as troubles regarding handling ref during a re-render?\n const Element =\n markerElement && isTrElement(markerElement) ? 'tr' : 'div'\n const ElementChild =\n markerElement && isTrElement(markerElement) ? 'td' : 'div'\n\n return (\n <Element className=\"dnb-pagination__marker dnb-table--ignore\">\n <ElementChild\n className=\"dnb-pagination__marker__inner\"\n ref={this._ref}\n >\n {/* {this.props.pageNumber} */}\n </ElementChild>\n </Element>\n )\n }\n}\n\nexport class InfinityLoadButton extends React.PureComponent {\n static contextType = Context\n static propTypes = {\n element: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.node,\n PropTypes.func,\n PropTypes.string,\n ]),\n pressed_element: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.node,\n PropTypes.func,\n ]),\n icon: PropTypes.string.isRequired,\n on_click: PropTypes.func.isRequired,\n text: PropTypes.string,\n icon_position: PropTypes.string,\n }\n static defaultProps = {\n element: 'div',\n pressed_element: null,\n icon: 'arrow_down',\n text: null,\n icon_position: 'left',\n }\n state = { isPressed: false }\n onClickHandler = (e) => {\n this.setState({ isPressed: true })\n if (typeof this.props.on_click === 'function') {\n this.props.on_click(e)\n }\n }\n render() {\n const { element, icon, text, icon_position } = this.props\n const Element = element\n const ElementChild = isTrElement(Element) ? 'td' : 'div'\n\n return this.state.isPressed ? (\n this.props.pressed_element\n ) : (\n <Element>\n <ElementChild className=\"dnb-pagination__loadbar\">\n <Button\n size=\"medium\"\n icon={icon}\n icon_position={icon_position}\n text={\n text || this.context.translation.Pagination.load_button_text\n }\n variant=\"secondary\"\n on_click={this.onClickHandler}\n />\n </ElementChild>\n </Element>\n )\n }\n}\n\nclass ScrollToElement extends React.PureComponent {\n static propTypes = {\n page_element: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.node,\n PropTypes.func,\n PropTypes.string,\n ]),\n }\n static defaultProps = {\n page_element: null,\n }\n componentDidMount() {\n // we use \"findDOMNode\" here, because we have situations, where we don't know about what the input element is,\n // we also don't want to wrap them because of markup collisions\n // therefor we use \"findDOMNode\" here\n // so we can scroll to that page\n // eslint-disable-next-line\n const elem = ReactDOM.findDOMNode(this)\n this.scrollToPage(elem)\n }\n scrollToPage(element) {\n if (element && typeof element.scrollIntoView === 'function') {\n element.scrollIntoView({\n block: 'nearest',\n behavior: 'smooth',\n })\n }\n }\n render() {\n const { page_element, ...props } = this.props\n const Element = preparePageElement(page_element || React.Fragment)\n return <Element {...props} />\n }\n}\n\nInfinityScroller._supportsSpacingProps = true\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { Ajv } from '../utils/ajv';
3
- import { AllJSONSchemaVersions, CustomErrorMessagesWithPaths, SubmitState, Path, EventStateObject, EventReturnWithStateObject, Identifier, FieldProps, FormError, ValueProps } from '../types';
3
+ import { AllJSONSchemaVersions, CustomErrorMessagesWithPaths, SubmitState, Path, EventStateObject, EventReturnWithStateObject, Identifier, FieldProps, FormError, ValueProps, OnChange } from '../types';
4
4
  import { Props as ProviderProps } from './Provider';
5
5
  type HandleSubmitProps = {
6
6
  formElement?: HTMLFormElement;
@@ -58,7 +58,7 @@ export interface ContextState {
58
58
  handleUnMountField: (path: Path) => void;
59
59
  setFormState?: (state: SubmitState) => void;
60
60
  setSubmitState?: (state: EventStateObject) => void;
61
- addOnChangeHandler?: (callback: (data: unknown) => void) => void;
61
+ addOnChangeHandler?: (callback: OnChange) => void;
62
62
  handleSubmitCall: ({ onSubmit, enableAsyncBehaviour, skipFieldValidation, skipErrorCheck, }: {
63
63
  onSubmit: () => EventReturnWithStateObject | void | Promise<EventReturnWithStateObject | void>;
64
64
  enableAsyncBehaviour: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"Context.js","names":["React","makeAjvInstance","defaultContextState","hasContext","data","undefined","schema","submitState","handlePathChange","handlePathChangeUnvalidated","updateDataValue","setData","validateData","handleSubmit","scrollToTop","showAllErrors","hasVisibleError","formState","setFormState","setSubmitState","setFieldEventListener","handleSubmitCall","setShowAllErrors","handleMountField","handleUnMountField","hasErrors","hasFieldState","hasFieldError","setFieldState","setFieldError","ajvInstance","contextErrorMessages","isInsideFormElement","props","Context","createContext"],"sources":["../../../../../src/extensions/forms/DataContext/Context.ts"],"sourcesContent":["import React from 'react'\nimport { Ajv, makeAjvInstance } from '../utils/ajv'\nimport {\n AllJSONSchemaVersions,\n CustomErrorMessagesWithPaths,\n SubmitState,\n Path,\n EventStateObject,\n EventReturnWithStateObject,\n Identifier,\n FieldProps,\n FormError,\n ValueProps,\n} from '../types'\nimport { Props as ProviderProps } from './Provider'\n\ntype HandleSubmitProps = {\n formElement?: HTMLFormElement\n}\n\nexport type EventListenerCall = {\n path?: Path\n type?: 'onSubmit'\n callback: () => void\n}\n\nexport type FilterDataHandler<Data> = (\n data: Data,\n filter: FilterData\n) => Partial<Data>\nexport type FilterDataHandlerCallback<R> = (\n parameters: FilterDataHandlerParameters\n) => R\nexport type FilterDataHandlerParameters =\n FilterDataPathConditionParameters & {\n path: Path\n }\nexport type FilterDataPathCondition<Data = unknown> = (\n parameters: FilterDataPathConditionParameters<Data>\n) => boolean | undefined\nexport type FilterDataPathConditionParameters<Data = unknown> = {\n value: unknown\n props: FieldProps\n data: Data\n internal: {\n error: Error | undefined\n }\n}\nexport type FilterDataPathObject<Data> = Record<\n Path,\n FilterDataPathCondition<Data> | boolean | undefined\n>\nexport type FilterData<Data = unknown> =\n | FilterDataPathObject<Data>\n | FilterDataHandlerCallback<boolean | undefined>\nexport type TransformData = FilterDataHandlerCallback<unknown>\nexport type HandleSubmitCallback = ({\n preventSubmit,\n}: {\n preventSubmit: () => void\n}) => void\n\nexport interface ContextState {\n id?: Identifier\n hasContext: boolean\n /** The dataset for the form / form wizard */\n data: any\n /** Should the form validate data before submitting? */\n errors?: Record<string, Error>\n /** Will set autoComplete=\"on\" on each nested Field.String and Field.Number */\n autoComplete?: boolean\n handlePathChange: (\n path: Path,\n value?: any\n ) =>\n | EventReturnWithStateObject\n | unknown\n | Promise<EventReturnWithStateObject | unknown>\n handlePathChangeUnvalidated: (path: Path, value: any) => void\n updateDataValue: (path: Path, value: any) => void\n setData: (data: any) => void\n mutateDataHandler?: (data: any, mutate: TransformData) => any\n filterDataHandler?: (data: any, filter: FilterData) => any\n validateData: () => void\n handleSubmit: (props?: HandleSubmitProps) => any\n scrollToTop: () => void\n setShowAllErrors: (showAllErrors: boolean) => void\n hasErrors: () => boolean\n hasFieldState: (state: SubmitState) => boolean\n hasFieldError: (path: Path) => boolean\n setFieldState: (path: Path, fieldState: SubmitState) => void\n setFieldError: (path: Path, error: Error | FormError) => void\n handleMountField: (path: Path) => void\n handleUnMountField: (path: Path) => void\n setFormState?: (state: SubmitState) => void\n setSubmitState?: (state: EventStateObject) => void\n addOnChangeHandler?: (callback: (data: unknown) => void) => void\n handleSubmitCall: ({\n onSubmit,\n enableAsyncBehaviour,\n skipFieldValidation,\n skipErrorCheck,\n }: {\n onSubmit: () =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n enableAsyncBehaviour: boolean\n skipFieldValidation?: boolean\n skipErrorCheck?: boolean\n }) => void\n setFieldEventListener: (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => void\n setHasVisibleError?: (path: Path, hasError: boolean) => void\n setFieldProps?: (path: Path, props: unknown) => void\n setValueProps?: (path: Path, props: unknown) => void\n setHandleSubmit?: (callback: HandleSubmitCallback) => void\n fieldPropsRef?: React.MutableRefObject<Record<string, FieldProps>>\n valuePropsRef?: React.MutableRefObject<Record<string, ValueProps>>\n mountedFieldPathsRef?: React.MutableRefObject<Path[]>\n showAllErrors: boolean\n hasVisibleError: boolean\n formState: SubmitState\n ajvInstance: Ajv\n contextErrorMessages: CustomErrorMessagesWithPaths\n schema: AllJSONSchemaVersions\n path?: Path\n disabled?: boolean\n required?: boolean\n submitState: Partial<EventStateObject>\n isInsideFormElement?: boolean\n prerenderFieldProps?: boolean\n props: ProviderProps<unknown>\n}\n\nexport const defaultContextState: ContextState = {\n hasContext: false,\n data: undefined,\n schema: undefined,\n submitState: undefined,\n handlePathChange: () => null,\n handlePathChangeUnvalidated: () => null,\n updateDataValue: () => null,\n setData: () => null,\n validateData: () => null,\n handleSubmit: () => null,\n scrollToTop: () => null,\n showAllErrors: false,\n hasVisibleError: false,\n formState: undefined,\n setFormState: () => null,\n setSubmitState: () => null,\n setFieldEventListener: () => null,\n handleSubmitCall: () => null,\n setShowAllErrors: () => null,\n handleMountField: () => null,\n handleUnMountField: () => null,\n hasErrors: () => false,\n hasFieldState: () => false,\n hasFieldError: () => false,\n setFieldState: () => null,\n setFieldError: () => null,\n ajvInstance: makeAjvInstance(),\n contextErrorMessages: undefined,\n isInsideFormElement: false,\n props: null,\n}\n\nconst Context = React.createContext<ContextState>(defaultContextState)\n\nexport default Context\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAcC,eAAe,QAAQ,cAAc;AAyInD,OAAO,MAAMC,mBAAiC,GAAG;EAC/CC,UAAU,EAAE,KAAK;EACjBC,IAAI,EAAEC,SAAS;EACfC,MAAM,EAAED,SAAS;EACjBE,WAAW,EAAEF,SAAS;EACtBG,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,2BAA2B,EAAEA,CAAA,KAAM,IAAI;EACvCC,eAAe,EAAEA,CAAA,KAAM,IAAI;EAC3BC,OAAO,EAAEA,CAAA,KAAM,IAAI;EACnBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,WAAW,EAAEA,CAAA,KAAM,IAAI;EACvBC,aAAa,EAAE,KAAK;EACpBC,eAAe,EAAE,KAAK;EACtBC,SAAS,EAAEZ,SAAS;EACpBa,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,cAAc,EAAEA,CAAA,KAAM,IAAI;EAC1BC,qBAAqB,EAAEA,CAAA,KAAM,IAAI;EACjCC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,kBAAkB,EAAEA,CAAA,KAAM,IAAI;EAC9BC,SAAS,EAAEA,CAAA,KAAM,KAAK;EACtBC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,aAAa,EAAEA,CAAA,KAAM,IAAI;EACzBC,aAAa,EAAEA,CAAA,KAAM,IAAI;EACzBC,WAAW,EAAE7B,eAAe,CAAC,CAAC;EAC9B8B,oBAAoB,EAAE1B,SAAS;EAC/B2B,mBAAmB,EAAE,KAAK;EAC1BC,KAAK,EAAE;AACT,CAAC;AAED,MAAMC,OAAO,GAAGlC,KAAK,CAACmC,aAAa,CAAejC,mBAAmB,CAAC;AAEtE,eAAegC,OAAO"}
1
+ {"version":3,"file":"Context.js","names":["React","makeAjvInstance","defaultContextState","hasContext","data","undefined","schema","submitState","handlePathChange","handlePathChangeUnvalidated","updateDataValue","setData","validateData","handleSubmit","scrollToTop","showAllErrors","hasVisibleError","formState","setFormState","setSubmitState","setFieldEventListener","handleSubmitCall","setShowAllErrors","handleMountField","handleUnMountField","hasErrors","hasFieldState","hasFieldError","setFieldState","setFieldError","ajvInstance","contextErrorMessages","isInsideFormElement","props","Context","createContext"],"sources":["../../../../../src/extensions/forms/DataContext/Context.ts"],"sourcesContent":["import React from 'react'\nimport { Ajv, makeAjvInstance } from '../utils/ajv'\nimport {\n AllJSONSchemaVersions,\n CustomErrorMessagesWithPaths,\n SubmitState,\n Path,\n EventStateObject,\n EventReturnWithStateObject,\n Identifier,\n FieldProps,\n FormError,\n ValueProps,\n OnChange,\n} from '../types'\nimport { Props as ProviderProps } from './Provider'\n\ntype HandleSubmitProps = {\n formElement?: HTMLFormElement\n}\n\nexport type EventListenerCall = {\n path?: Path\n type?: 'onSubmit'\n callback: () => void\n}\n\nexport type FilterDataHandler<Data> = (\n data: Data,\n filter: FilterData\n) => Partial<Data>\nexport type FilterDataHandlerCallback<R> = (\n parameters: FilterDataHandlerParameters\n) => R\nexport type FilterDataHandlerParameters =\n FilterDataPathConditionParameters & {\n path: Path\n }\nexport type FilterDataPathCondition<Data = unknown> = (\n parameters: FilterDataPathConditionParameters<Data>\n) => boolean | undefined\nexport type FilterDataPathConditionParameters<Data = unknown> = {\n value: unknown\n props: FieldProps\n data: Data\n internal: {\n error: Error | undefined\n }\n}\nexport type FilterDataPathObject<Data> = Record<\n Path,\n FilterDataPathCondition<Data> | boolean | undefined\n>\nexport type FilterData<Data = unknown> =\n | FilterDataPathObject<Data>\n | FilterDataHandlerCallback<boolean | undefined>\nexport type TransformData = FilterDataHandlerCallback<unknown>\nexport type HandleSubmitCallback = ({\n preventSubmit,\n}: {\n preventSubmit: () => void\n}) => void\n\nexport interface ContextState {\n id?: Identifier\n hasContext: boolean\n /** The dataset for the form / form wizard */\n data: any\n /** Should the form validate data before submitting? */\n errors?: Record<string, Error>\n /** Will set autoComplete=\"on\" on each nested Field.String and Field.Number */\n autoComplete?: boolean\n handlePathChange: (\n path: Path,\n value?: any\n ) =>\n | EventReturnWithStateObject\n | unknown\n | Promise<EventReturnWithStateObject | unknown>\n handlePathChangeUnvalidated: (path: Path, value: any) => void\n updateDataValue: (path: Path, value: any) => void\n setData: (data: any) => void\n mutateDataHandler?: (data: any, mutate: TransformData) => any\n filterDataHandler?: (data: any, filter: FilterData) => any\n validateData: () => void\n handleSubmit: (props?: HandleSubmitProps) => any\n scrollToTop: () => void\n setShowAllErrors: (showAllErrors: boolean) => void\n hasErrors: () => boolean\n hasFieldState: (state: SubmitState) => boolean\n hasFieldError: (path: Path) => boolean\n setFieldState: (path: Path, fieldState: SubmitState) => void\n setFieldError: (path: Path, error: Error | FormError) => void\n handleMountField: (path: Path) => void\n handleUnMountField: (path: Path) => void\n setFormState?: (state: SubmitState) => void\n setSubmitState?: (state: EventStateObject) => void\n addOnChangeHandler?: (callback: OnChange) => void\n handleSubmitCall: ({\n onSubmit,\n enableAsyncBehaviour,\n skipFieldValidation,\n skipErrorCheck,\n }: {\n onSubmit: () =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n enableAsyncBehaviour: boolean\n skipFieldValidation?: boolean\n skipErrorCheck?: boolean\n }) => void\n setFieldEventListener: (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => void\n setHasVisibleError?: (path: Path, hasError: boolean) => void\n setFieldProps?: (path: Path, props: unknown) => void\n setValueProps?: (path: Path, props: unknown) => void\n setHandleSubmit?: (callback: HandleSubmitCallback) => void\n fieldPropsRef?: React.MutableRefObject<Record<string, FieldProps>>\n valuePropsRef?: React.MutableRefObject<Record<string, ValueProps>>\n mountedFieldPathsRef?: React.MutableRefObject<Path[]>\n showAllErrors: boolean\n hasVisibleError: boolean\n formState: SubmitState\n ajvInstance: Ajv\n contextErrorMessages: CustomErrorMessagesWithPaths\n schema: AllJSONSchemaVersions\n path?: Path\n disabled?: boolean\n required?: boolean\n submitState: Partial<EventStateObject>\n isInsideFormElement?: boolean\n prerenderFieldProps?: boolean\n props: ProviderProps<unknown>\n}\n\nexport const defaultContextState: ContextState = {\n hasContext: false,\n data: undefined,\n schema: undefined,\n submitState: undefined,\n handlePathChange: () => null,\n handlePathChangeUnvalidated: () => null,\n updateDataValue: () => null,\n setData: () => null,\n validateData: () => null,\n handleSubmit: () => null,\n scrollToTop: () => null,\n showAllErrors: false,\n hasVisibleError: false,\n formState: undefined,\n setFormState: () => null,\n setSubmitState: () => null,\n setFieldEventListener: () => null,\n handleSubmitCall: () => null,\n setShowAllErrors: () => null,\n handleMountField: () => null,\n handleUnMountField: () => null,\n hasErrors: () => false,\n hasFieldState: () => false,\n hasFieldError: () => false,\n setFieldState: () => null,\n setFieldError: () => null,\n ajvInstance: makeAjvInstance(),\n contextErrorMessages: undefined,\n isInsideFormElement: false,\n props: null,\n}\n\nconst Context = React.createContext<ContextState>(defaultContextState)\n\nexport default Context\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAcC,eAAe,QAAQ,cAAc;AA0InD,OAAO,MAAMC,mBAAiC,GAAG;EAC/CC,UAAU,EAAE,KAAK;EACjBC,IAAI,EAAEC,SAAS;EACfC,MAAM,EAAED,SAAS;EACjBE,WAAW,EAAEF,SAAS;EACtBG,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,2BAA2B,EAAEA,CAAA,KAAM,IAAI;EACvCC,eAAe,EAAEA,CAAA,KAAM,IAAI;EAC3BC,OAAO,EAAEA,CAAA,KAAM,IAAI;EACnBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,WAAW,EAAEA,CAAA,KAAM,IAAI;EACvBC,aAAa,EAAE,KAAK;EACpBC,eAAe,EAAE,KAAK;EACtBC,SAAS,EAAEZ,SAAS;EACpBa,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,cAAc,EAAEA,CAAA,KAAM,IAAI;EAC1BC,qBAAqB,EAAEA,CAAA,KAAM,IAAI;EACjCC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,kBAAkB,EAAEA,CAAA,KAAM,IAAI;EAC9BC,SAAS,EAAEA,CAAA,KAAM,KAAK;EACtBC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,aAAa,EAAEA,CAAA,KAAM,IAAI;EACzBC,aAAa,EAAEA,CAAA,KAAM,IAAI;EACzBC,WAAW,EAAE7B,eAAe,CAAC,CAAC;EAC9B8B,oBAAoB,EAAE1B,SAAS;EAC/B2B,mBAAmB,EAAE,KAAK;EAC1BC,KAAK,EAAE;AACT,CAAC;AAED,MAAMC,OAAO,GAAGlC,KAAK,CAACmC,aAAa,CAAejC,mBAAmB,CAAC;AAEtE,eAAegC,OAAO"}
@@ -35,13 +35,9 @@ export interface Props<Data extends JsonObject> extends IsolationProviderProps<D
35
35
  */
36
36
  errorMessages?: CustomErrorMessagesWithPaths;
37
37
  /**
38
- * 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.
38
+ * @deprecated Use the `filterData` in the second event parameter in the `onSubmit` or `onChange` events.
39
39
  */
40
40
  filterSubmitData?: FilterData;
41
- /**
42
- * @deprecated Use `filterSubmitData` instead
43
- */
44
- filterData?: FilterData;
45
41
  /**
46
42
  * 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).
47
43
  */
@@ -2,7 +2,7 @@
2
2
 
3
3
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
4
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
5
- const _excluded = ["id", "globalStatusId", "defaultData", "data", "schema", "onChange", "onPathChange", "onSubmit", "onSubmitRequest", "onSubmitComplete", "onCommit", "onClear", "scrollTopOnSubmit", "minimumAsyncBehaviorTime", "asyncSubmitTimeout", "sessionStorageId", "ajvInstance", "transformIn", "transformOut", "filterSubmitData", "filterData", "locale", "translations", "required", "errorMessages", "isolate", "children"];
5
+ const _excluded = ["id", "globalStatusId", "defaultData", "data", "schema", "onChange", "onPathChange", "onSubmit", "onSubmitRequest", "onSubmitComplete", "onCommit", "onClear", "scrollTopOnSubmit", "minimumAsyncBehaviorTime", "asyncSubmitTimeout", "sessionStorageId", "ajvInstance", "transformIn", "transformOut", "filterSubmitData", "locale", "translations", "required", "errorMessages", "isolate", "children"];
6
6
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7
7
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
8
8
  import React, { useRef, useMemo, useCallback, useReducer, useEffect, useContext } from 'react';
@@ -43,7 +43,6 @@ export default function Provider(props) {
43
43
  transformIn,
44
44
  transformOut,
45
45
  filterSubmitData,
46
- filterData,
47
46
  locale,
48
47
  translations,
49
48
  required,
@@ -238,12 +237,15 @@ export default function Provider(props) {
238
237
  }
239
238
  return data;
240
239
  }, []);
241
- const filterDataHandler = useCallback((data, filter = filterData || filterSubmitData) => {
240
+ const filterDataHandler = useCallback((data, filter) => {
242
241
  if (filter) {
243
242
  return mutateDataHandler(data, filter, true);
244
243
  }
245
244
  return data;
246
- }, [filterData, filterSubmitData, mutateDataHandler]);
245
+ }, [mutateDataHandler]);
246
+ const filterData = useCallback((filter, data = internalDataRef.current) => {
247
+ return filterDataHandler(data, filter);
248
+ }, [filterDataHandler]);
247
249
  const fieldPropsRef = useRef({});
248
250
  const valuePropsRef = useRef({});
249
251
  const setFieldProps = useCallback((path, props) => {
@@ -325,11 +327,11 @@ export default function Provider(props) {
325
327
  setShowAllErrors,
326
328
  setSubmitState
327
329
  });
328
- if (filterData || filterSubmitData) {
330
+ if (filterSubmitData) {
329
331
  rerenderUseDataHook === null || rerenderUseDataHook === void 0 ? void 0 : rerenderUseDataHook();
330
332
  }
331
333
  }
332
- }, [extendAttachment, filterData, filterDataHandler, filterSubmitData, hasErrors, hasFieldError, id, rerenderUseDataHook, setShowAllErrors, setSubmitState]);
334
+ }, [extendAttachment, filterDataHandler, filterSubmitData, hasErrors, hasFieldError, id, rerenderUseDataHook, setShowAllErrors, setSubmitState]);
333
335
  const storeInSession = useMemo(() => {
334
336
  return debounce(() => {
335
337
  var _window$sessionStorag2;
@@ -357,7 +359,7 @@ export default function Provider(props) {
357
359
  internalDataRef.current = newData;
358
360
  if (id) {
359
361
  extendSharedData === null || extendSharedData === void 0 ? void 0 : extendSharedData(newData);
360
- if (filterData || filterSubmitData) {
362
+ if (filterSubmitData) {
361
363
  rerenderUseDataHook === null || rerenderUseDataHook === void 0 ? void 0 : rerenderUseDataHook();
362
364
  }
363
365
  }
@@ -365,7 +367,7 @@ export default function Provider(props) {
365
367
  storeInSession();
366
368
  }
367
369
  forceUpdate();
368
- }, [extendSharedData, filterData, filterSubmitData, id, mutateDataHandler, rerenderUseDataHook, sessionStorageId, storeInSession, transformIn]);
370
+ }, [extendSharedData, filterSubmitData, id, mutateDataHandler, rerenderUseDataHook, sessionStorageId, storeInSession, transformIn]);
369
371
  const setData = useCallback(newData => {
370
372
  internalDataRef.current = newData;
371
373
  forceUpdate();
@@ -391,19 +393,22 @@ export default function Provider(props) {
391
393
  showAllErrorsRef.current = false;
392
394
  validateData();
393
395
  const data = internalDataRef.current;
396
+ const options = {
397
+ filterData
398
+ };
394
399
  const transformedData = transformOut ? mutateDataHandler(data, transformOut) : data;
395
400
  for (const cb of changeHandlerStackRef.current) {
396
401
  if (isAsync(onChange)) {
397
- await cb(transformedData);
402
+ await cb(transformedData, options);
398
403
  } else {
399
- cb(transformedData);
404
+ cb(transformedData, options);
400
405
  }
401
406
  }
402
407
  if (isAsync(onChange)) {
403
- return await onChange(transformedData);
408
+ return await onChange(transformedData, options);
404
409
  }
405
- return onChange === null || onChange === void 0 ? void 0 : onChange(transformedData);
406
- }, [handlePathChangeUnvalidated, mutateDataHandler, onChange, transformOut, validateData]);
410
+ return onChange === null || onChange === void 0 ? void 0 : onChange(transformedData, options);
411
+ }, [filterData, handlePathChangeUnvalidated, mutateDataHandler, onChange, transformOut, validateData]);
407
412
  const changeHandlerStackRef = useRef([]);
408
413
  const addOnChangeHandler = useCallback(callback => {
409
414
  const exists = changeHandlerStackRef.current.some(cb => {
@@ -540,8 +545,10 @@ export default function Provider(props) {
540
545
  return;
541
546
  }
542
547
  const data = internalDataRef.current;
543
- const filteredData = filterDataHandler(transformOut ? mutateDataHandler(data, transformOut) : data);
544
- const opts = {
548
+ const mutatedData = transformOut ? mutateDataHandler(data, transformOut) : data;
549
+ const filteredData = filterSubmitData ? filterDataHandler(mutatedData, filterSubmitData) : mutatedData;
550
+ const options = {
551
+ filterData,
545
552
  resetForm: () => {
546
553
  var _formElement$reset;
547
554
  formElement === null || formElement === void 0 ? void 0 : (_formElement$reset = formElement.reset) === null || _formElement$reset === void 0 ? void 0 : _formElement$reset.call(formElement);
@@ -556,9 +563,9 @@ export default function Provider(props) {
556
563
  };
557
564
  let result = undefined;
558
565
  if (isAsync(onSubmit)) {
559
- result = await onSubmit(filteredData, opts);
566
+ result = await onSubmit(filteredData, options);
560
567
  } else {
561
- result = onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(filteredData, opts);
568
+ result = onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(filteredData, options);
562
569
  }
563
570
  const completeResult = await (onSubmitComplete === null || onSubmitComplete === void 0 ? void 0 : onSubmitComplete(filteredData, result));
564
571
  if (completeResult) {
@@ -570,7 +577,7 @@ export default function Provider(props) {
570
577
  return result;
571
578
  }
572
579
  });
573
- }, [clearData, filterDataHandler, handleSubmitCall, mutateDataHandler, onSubmit, onSubmitComplete, scrollToTop, scrollTopOnSubmit, sessionStorageId, transformOut]);
580
+ }, [clearData, filterData, filterDataHandler, filterSubmitData, handleSubmitCall, handleSubmitListeners, mutateDataHandler, onSubmit, onSubmitComplete, scrollToTop, scrollTopOnSubmit, sessionStorageId, transformOut]);
574
581
  const fieldEventListenersRef = useRef([]);
575
582
  const setFieldEventListener = useCallback((path, type, callback) => {
576
583
  fieldEventListenersRef.current = fieldEventListenersRef.current.filter(({