@dnb/eufemia 10.34.1 → 10.35.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 (768) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/assets/images/sbanken/sbanken-compact-horizontal.svg +3 -0
  3. package/assets/images/sbanken/sbanken-compact.svg +3 -0
  4. package/assets/images/sbanken/sbanken.svg +3 -0
  5. package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
  6. package/cjs/components/autocomplete/style/themes/dnb-autocomplete-theme-sbanken.css +1 -1
  7. package/cjs/components/autocomplete/style/themes/dnb-autocomplete-theme-sbanken.scss +1 -1
  8. package/cjs/components/button/Button.js.map +1 -1
  9. package/cjs/components/dropdown/Dropdown.js.map +1 -1
  10. package/cjs/components/form-row/FormRow.js.map +1 -1
  11. package/cjs/components/form-set/FormSet.js.map +1 -1
  12. package/cjs/components/form-status/FormStatus.js.map +1 -1
  13. package/cjs/components/global-status/GlobalStatus.js.map +1 -1
  14. package/cjs/components/global-status/GlobalStatusController.js.map +1 -1
  15. package/cjs/components/global-status/GlobalStatusProvider.js.map +1 -1
  16. package/cjs/components/help-button/HelpButton.js +3 -0
  17. package/cjs/components/help-button/HelpButton.js.map +1 -1
  18. package/cjs/components/help-button/style/dnb-help-button.css +4 -1
  19. package/cjs/components/help-button/style/dnb-help-button.min.css +1 -0
  20. package/cjs/components/help-button/style/dnb-help-button.scss +6 -0
  21. package/cjs/components/icon/Icon.js.map +1 -1
  22. package/cjs/components/icon-primary/IconPrimary.js.map +1 -1
  23. package/cjs/components/input/Input.js.map +1 -1
  24. package/cjs/components/input-masked/InputMasked.js.map +1 -1
  25. package/cjs/components/logo/Logo.d.ts +47 -43
  26. package/cjs/components/logo/Logo.js +77 -221
  27. package/cjs/components/logo/Logo.js.map +1 -1
  28. package/cjs/components/logo/LogoDocs.d.ts +2 -0
  29. package/cjs/components/logo/LogoDocs.js +50 -0
  30. package/cjs/components/logo/LogoDocs.js.map +1 -0
  31. package/cjs/components/logo/LogoSvg.d.ts +7 -0
  32. package/cjs/components/logo/LogoSvg.js +81 -0
  33. package/cjs/components/logo/LogoSvg.js.map +1 -0
  34. package/cjs/components/modal/Modal.d.ts +2 -0
  35. package/cjs/components/modal/Modal.js +25 -10
  36. package/cjs/components/modal/Modal.js.map +1 -1
  37. package/cjs/components/number-format/NumberFormat.d.ts +4 -0
  38. package/cjs/components/number-format/NumberFormat.js +5 -2
  39. package/cjs/components/number-format/NumberFormat.js.map +1 -1
  40. package/cjs/components/number-format/style/dnb-number-format.css +3 -0
  41. package/cjs/components/number-format/style/dnb-number-format.min.css +1 -1
  42. package/cjs/components/number-format/style/dnb-number-format.scss +4 -0
  43. package/cjs/components/pagination/Pagination.js.map +1 -1
  44. package/cjs/components/pagination/PaginationHelpers.js.map +1 -1
  45. package/cjs/components/pagination/PaginationInfinity.js.map +1 -1
  46. package/cjs/components/pagination/PaginationProvider.js.map +1 -1
  47. package/cjs/components/progress-indicator/ProgressIndicatorDocs.js +1 -1
  48. package/cjs/components/progress-indicator/ProgressIndicatorDocs.js.map +1 -1
  49. package/cjs/components/progress-indicator/types.d.ts +1 -1
  50. package/cjs/components/progress-indicator/types.js.map +1 -1
  51. package/cjs/components/radio/Radio.js.map +1 -1
  52. package/cjs/components/radio/RadioGroup.js.map +1 -1
  53. package/cjs/components/skeleton/Skeleton.js.map +1 -1
  54. package/cjs/components/switch/Switch.js.map +1 -1
  55. package/cjs/components/table/Table.d.ts +6 -0
  56. package/cjs/components/table/Table.js +15 -3
  57. package/cjs/components/table/Table.js.map +1 -1
  58. package/cjs/components/table/TableAccordion.d.ts +7 -11
  59. package/cjs/components/table/TableAccordion.js +32 -21
  60. package/cjs/components/table/TableAccordion.js.map +1 -1
  61. package/cjs/components/table/TableTr.js +24 -25
  62. package/cjs/components/table/TableTr.js.map +1 -1
  63. package/cjs/components/tabs/Tabs.js +1 -5
  64. package/cjs/components/tabs/Tabs.js.map +1 -1
  65. package/cjs/components/tabs/TabsDocs.js +1 -1
  66. package/cjs/components/tabs/TabsDocs.js.map +1 -1
  67. package/cjs/components/textarea/Textarea.js.map +1 -1
  68. package/cjs/components/toggle-button/ToggleButton.js.map +1 -1
  69. package/cjs/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  70. package/cjs/extensions/forms/DataContext/Context.d.ts +2 -0
  71. package/cjs/extensions/forms/DataContext/Context.js +1 -0
  72. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  73. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +17 -1
  74. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
  75. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +5 -3
  76. package/cjs/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  77. package/cjs/extensions/forms/DataContext/Provider/Provider.js +50 -4
  78. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  79. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +2 -2
  80. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +7 -1
  81. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  82. package/cjs/extensions/forms/Field/Option/Option.d.ts +2 -2
  83. package/cjs/extensions/forms/Field/Option/Option.js.map +1 -1
  84. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +6 -6
  85. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  86. package/cjs/extensions/forms/Field/Selection/Selection.js +7 -2
  87. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  88. package/cjs/extensions/forms/Field/Toggle/Toggle.js +7 -3
  89. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  90. package/cjs/extensions/forms/Form/FieldProps/FieldProps.js +16 -36
  91. package/cjs/extensions/forms/Form/FieldProps/FieldProps.js.map +1 -1
  92. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.d.ts +12 -0
  93. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.js +44 -0
  94. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -0
  95. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainerDocs.d.ts +3 -0
  96. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +27 -0
  97. package/cjs/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -0
  98. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.d.ts +1 -0
  99. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +67 -0
  100. package/cjs/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -0
  101. package/cjs/extensions/forms/Form/Section/EditContainer/index.d.ts +2 -0
  102. package/cjs/extensions/forms/Form/Section/EditContainer/index.js +27 -0
  103. package/cjs/extensions/forms/Form/Section/EditContainer/index.js.map +1 -0
  104. package/cjs/extensions/forms/Form/Section/EditContainer/useContainerDataStore.d.ts +3 -0
  105. package/cjs/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js +54 -0
  106. package/cjs/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js.map +1 -0
  107. package/cjs/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.d.ts +1 -0
  108. package/cjs/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.js +25 -0
  109. package/cjs/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.js.map +1 -0
  110. package/cjs/extensions/forms/Form/Section/Section.d.ts +9 -1
  111. package/cjs/extensions/forms/Form/Section/Section.js +10 -2
  112. package/cjs/extensions/forms/Form/Section/Section.js.map +1 -1
  113. package/cjs/extensions/forms/Form/Section/SectionContext.d.ts +1 -2
  114. package/cjs/extensions/forms/Form/Section/SectionContext.js.map +1 -1
  115. package/cjs/extensions/forms/Form/Section/SectionDocs.js +6 -1
  116. package/cjs/extensions/forms/Form/Section/SectionDocs.js.map +1 -1
  117. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainer.d.ts +12 -0
  118. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainer.js +43 -0
  119. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainer.js.map +1 -0
  120. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.d.ts +3 -0
  121. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +27 -0
  122. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -0
  123. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.d.ts +1 -0
  124. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js +34 -0
  125. package/cjs/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js.map +1 -0
  126. package/cjs/extensions/forms/Form/Section/ViewContainer/index.d.ts +2 -0
  127. package/cjs/extensions/forms/Form/Section/ViewContainer/index.js +27 -0
  128. package/cjs/extensions/forms/Form/Section/ViewContainer/index.js.map +1 -0
  129. package/cjs/extensions/forms/Form/Section/containers/SectionContainer.d.ts +19 -0
  130. package/cjs/extensions/forms/Form/Section/containers/SectionContainer.js +93 -0
  131. package/cjs/extensions/forms/Form/Section/containers/SectionContainer.js.map +1 -0
  132. package/cjs/extensions/forms/Form/Section/containers/SectionContainerContext.d.ts +8 -0
  133. package/cjs/extensions/forms/Form/Section/containers/SectionContainerContext.js +12 -0
  134. package/cjs/extensions/forms/Form/Section/containers/SectionContainerContext.js.map +1 -0
  135. package/cjs/extensions/forms/Form/Section/containers/SectionContainerProvider.d.ts +8 -0
  136. package/cjs/extensions/forms/Form/Section/containers/SectionContainerProvider.js +33 -0
  137. package/cjs/extensions/forms/Form/Section/containers/SectionContainerProvider.js.map +1 -0
  138. package/cjs/extensions/forms/Form/Section/containers/Toolbar.d.ts +7 -0
  139. package/cjs/extensions/forms/Form/Section/containers/Toolbar.js +35 -0
  140. package/cjs/extensions/forms/Form/Section/containers/Toolbar.js.map +1 -0
  141. package/cjs/extensions/forms/Form/Section/style/dnb-form-section.css +45 -0
  142. package/cjs/extensions/forms/Form/Section/style/dnb-form-section.min.css +1 -0
  143. package/{extensions/forms/Iterate/style/dnb-form-iterate.scss → cjs/extensions/forms/Form/Section/style/dnb-form-section.scss} +4 -12
  144. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +8 -8
  145. package/cjs/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  146. package/cjs/extensions/forms/Iterate/Array/Array.js +1 -1
  147. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  148. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js +1 -1
  149. package/cjs/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  150. package/cjs/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +17 -8
  151. package/cjs/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
  152. package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js +1 -1
  153. package/cjs/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  154. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js +1 -1
  155. package/cjs/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  156. package/cjs/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +1 -1
  157. package/cjs/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
  158. package/cjs/extensions/forms/Iterate/style/dnb-iterate.css +6 -0
  159. package/cjs/extensions/forms/Iterate/style/dnb-iterate.min.css +1 -0
  160. package/cjs/extensions/forms/Iterate/style/dnb-iterate.scss +12 -0
  161. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +2 -1
  162. package/cjs/extensions/forms/constants/locales/en-GB.js +3 -2
  163. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  164. package/cjs/extensions/forms/constants/locales/en-US.d.ts +2 -1
  165. package/cjs/extensions/forms/constants/locales/index.d.ts +4 -2
  166. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +2 -1
  167. package/cjs/extensions/forms/constants/locales/nb-NO.js +3 -2
  168. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  169. package/cjs/extensions/forms/hooks/useDataValue.d.ts +4 -0
  170. package/cjs/extensions/forms/hooks/useDataValue.js +30 -5
  171. package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
  172. package/cjs/extensions/forms/hooks/useFieldProps.js +14 -9
  173. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  174. package/cjs/extensions/forms/hooks/useTranslation.js +6 -11
  175. package/cjs/extensions/forms/hooks/useTranslation.js.map +1 -1
  176. package/cjs/extensions/forms/style/dnb-forms.css +46 -44
  177. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  178. package/cjs/extensions/payment-card/PaymentCard.js.map +1 -1
  179. package/cjs/fragments/drawer-list/DrawerList.js.map +1 -1
  180. package/cjs/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  181. package/cjs/fragments/drawer-list/DrawerListPortal.js.map +1 -1
  182. package/cjs/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  183. package/cjs/fragments/drawer-list/style/dnb-drawer-list.scss +4 -0
  184. package/cjs/fragments/text-counter/TextCounter.js +3 -2
  185. package/cjs/fragments/text-counter/TextCounter.js.map +1 -1
  186. package/cjs/shared/Context.d.ts +9 -5
  187. package/cjs/shared/Context.js +40 -35
  188. package/cjs/shared/Context.js.map +1 -1
  189. package/cjs/shared/Eufemia.d.ts +1 -1
  190. package/cjs/shared/Eufemia.js +2 -2
  191. package/cjs/shared/Eufemia.js.map +1 -1
  192. package/cjs/shared/Provider.d.ts +1 -1
  193. package/cjs/shared/Provider.js +49 -42
  194. package/cjs/shared/Provider.js.map +1 -1
  195. package/cjs/shared/Translation.d.ts +5 -5
  196. package/cjs/shared/Translation.js +6 -11
  197. package/cjs/shared/Translation.js.map +1 -1
  198. package/cjs/shared/index.d.ts +1 -0
  199. package/cjs/shared/index.js +26 -1
  200. package/cjs/shared/index.js.map +1 -1
  201. package/cjs/shared/locales/en-GB.d.ts +0 -3
  202. package/cjs/shared/locales/en-GB.js +0 -3
  203. package/cjs/shared/locales/en-GB.js.map +1 -1
  204. package/cjs/shared/locales/en-US.d.ts +0 -3
  205. package/cjs/shared/locales/index.d.ts +0 -6
  206. package/cjs/shared/locales/nb-NO.d.ts +0 -3
  207. package/cjs/shared/locales/nb-NO.js +0 -3
  208. package/cjs/shared/locales/nb-NO.js.map +1 -1
  209. package/cjs/shared/useTranslation.d.ts +5 -4
  210. package/cjs/shared/useTranslation.js +14 -12
  211. package/cjs/shared/useTranslation.js.map +1 -1
  212. package/cjs/style/core/scopes.scss +1 -1
  213. package/cjs/style/dnb-ui-basis.css +1 -1
  214. package/cjs/style/dnb-ui-basis.min.css +1 -1
  215. package/cjs/style/dnb-ui-body.css +1 -1
  216. package/cjs/style/dnb-ui-body.min.css +1 -1
  217. package/cjs/style/dnb-ui-components.css +57 -44
  218. package/cjs/style/dnb-ui-components.min.css +2 -2
  219. package/cjs/style/dnb-ui-core.css +1 -1
  220. package/cjs/style/dnb-ui-core.min.css +1 -1
  221. package/cjs/style/dnb-ui-extensions.css +46 -44
  222. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  223. package/cjs/style/dnb-ui-forms.css +46 -44
  224. package/cjs/style/dnb-ui-forms.min.css +1 -1
  225. package/cjs/style/dnb-ui-forms.scss +2 -1
  226. package/cjs/style/dnb-ui-fragments.css +4 -0
  227. package/cjs/style/dnb-ui-fragments.min.css +1 -1
  228. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +2 -2
  229. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  230. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +103 -88
  231. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
  232. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +46 -44
  233. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  234. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +46 -44
  235. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  236. package/cjs/style/themes/theme-sbanken/globals.scss +3 -2
  237. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +2 -2
  238. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  239. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +104 -89
  240. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
  241. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +46 -44
  242. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  243. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +46 -44
  244. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  245. package/cjs/style/themes/theme-ui/globals.scss +3 -2
  246. package/cjs/style/themes/theme-ui/ui-theme-basis.css +2 -2
  247. package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  248. package/cjs/style/themes/theme-ui/ui-theme-components.css +103 -88
  249. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +3 -3
  250. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +46 -44
  251. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  252. package/cjs/style/themes/theme-ui/ui-theme-forms.css +46 -44
  253. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  254. package/components/autocomplete/Autocomplete.js.map +1 -1
  255. package/components/autocomplete/style/themes/dnb-autocomplete-theme-sbanken.css +1 -1
  256. package/components/autocomplete/style/themes/dnb-autocomplete-theme-sbanken.scss +1 -1
  257. package/components/button/Button.js.map +1 -1
  258. package/components/dropdown/Dropdown.js.map +1 -1
  259. package/components/form-row/FormRow.js.map +1 -1
  260. package/components/form-set/FormSet.js.map +1 -1
  261. package/components/form-status/FormStatus.js.map +1 -1
  262. package/components/global-status/GlobalStatus.js.map +1 -1
  263. package/components/global-status/GlobalStatusController.js.map +1 -1
  264. package/components/global-status/GlobalStatusProvider.js.map +1 -1
  265. package/components/help-button/HelpButton.js +3 -0
  266. package/components/help-button/HelpButton.js.map +1 -1
  267. package/components/help-button/style/dnb-help-button.css +4 -1
  268. package/components/help-button/style/dnb-help-button.min.css +1 -0
  269. package/components/help-button/style/dnb-help-button.scss +6 -0
  270. package/components/icon/Icon.js.map +1 -1
  271. package/components/icon-primary/IconPrimary.js.map +1 -1
  272. package/components/input/Input.js.map +1 -1
  273. package/components/input-masked/InputMasked.js.map +1 -1
  274. package/components/logo/Logo.d.ts +47 -43
  275. package/components/logo/Logo.js +75 -221
  276. package/components/logo/Logo.js.map +1 -1
  277. package/components/logo/LogoDocs.d.ts +2 -0
  278. package/components/logo/LogoDocs.js +43 -0
  279. package/components/logo/LogoDocs.js.map +1 -0
  280. package/components/logo/LogoSvg.d.ts +7 -0
  281. package/components/logo/LogoSvg.js +73 -0
  282. package/components/logo/LogoSvg.js.map +1 -0
  283. package/components/modal/Modal.d.ts +2 -0
  284. package/components/modal/Modal.js +25 -10
  285. package/components/modal/Modal.js.map +1 -1
  286. package/components/number-format/NumberFormat.d.ts +4 -0
  287. package/components/number-format/NumberFormat.js +5 -2
  288. package/components/number-format/NumberFormat.js.map +1 -1
  289. package/components/number-format/style/dnb-number-format.css +3 -0
  290. package/components/number-format/style/dnb-number-format.min.css +1 -1
  291. package/components/number-format/style/dnb-number-format.scss +4 -0
  292. package/components/pagination/Pagination.js.map +1 -1
  293. package/components/pagination/PaginationHelpers.js.map +1 -1
  294. package/components/pagination/PaginationInfinity.js.map +1 -1
  295. package/components/pagination/PaginationProvider.js.map +1 -1
  296. package/components/progress-indicator/ProgressIndicatorDocs.js +1 -1
  297. package/components/progress-indicator/ProgressIndicatorDocs.js.map +1 -1
  298. package/components/progress-indicator/types.d.ts +1 -1
  299. package/components/progress-indicator/types.js.map +1 -1
  300. package/components/radio/Radio.js.map +1 -1
  301. package/components/radio/RadioGroup.js.map +1 -1
  302. package/components/skeleton/Skeleton.js.map +1 -1
  303. package/components/switch/Switch.js.map +1 -1
  304. package/components/table/Table.d.ts +6 -0
  305. package/components/table/Table.js +13 -3
  306. package/components/table/Table.js.map +1 -1
  307. package/components/table/TableAccordion.d.ts +7 -11
  308. package/components/table/TableAccordion.js +29 -20
  309. package/components/table/TableAccordion.js.map +1 -1
  310. package/components/table/TableTr.js +25 -26
  311. package/components/table/TableTr.js.map +1 -1
  312. package/components/tabs/Tabs.js +1 -5
  313. package/components/tabs/Tabs.js.map +1 -1
  314. package/components/tabs/TabsDocs.js +1 -1
  315. package/components/tabs/TabsDocs.js.map +1 -1
  316. package/components/textarea/Textarea.js.map +1 -1
  317. package/components/toggle-button/ToggleButton.js.map +1 -1
  318. package/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  319. package/es/components/autocomplete/Autocomplete.js.map +1 -1
  320. package/es/components/autocomplete/style/themes/dnb-autocomplete-theme-sbanken.css +1 -1
  321. package/es/components/autocomplete/style/themes/dnb-autocomplete-theme-sbanken.scss +1 -1
  322. package/es/components/button/Button.js.map +1 -1
  323. package/es/components/dropdown/Dropdown.js.map +1 -1
  324. package/es/components/form-row/FormRow.js.map +1 -1
  325. package/es/components/form-set/FormSet.js.map +1 -1
  326. package/es/components/form-status/FormStatus.js.map +1 -1
  327. package/es/components/global-status/GlobalStatus.js.map +1 -1
  328. package/es/components/global-status/GlobalStatusController.js.map +1 -1
  329. package/es/components/global-status/GlobalStatusProvider.js.map +1 -1
  330. package/es/components/help-button/HelpButton.js +3 -0
  331. package/es/components/help-button/HelpButton.js.map +1 -1
  332. package/es/components/help-button/style/dnb-help-button.css +4 -1
  333. package/es/components/help-button/style/dnb-help-button.min.css +1 -0
  334. package/es/components/help-button/style/dnb-help-button.scss +6 -0
  335. package/es/components/icon/Icon.js.map +1 -1
  336. package/es/components/icon-primary/IconPrimary.js.map +1 -1
  337. package/es/components/input/Input.js.map +1 -1
  338. package/es/components/input-masked/InputMasked.js.map +1 -1
  339. package/es/components/logo/Logo.d.ts +47 -43
  340. package/es/components/logo/Logo.js +75 -221
  341. package/es/components/logo/Logo.js.map +1 -1
  342. package/es/components/logo/LogoDocs.d.ts +2 -0
  343. package/es/components/logo/LogoDocs.js +43 -0
  344. package/es/components/logo/LogoDocs.js.map +1 -0
  345. package/es/components/logo/LogoSvg.d.ts +7 -0
  346. package/es/components/logo/LogoSvg.js +72 -0
  347. package/es/components/logo/LogoSvg.js.map +1 -0
  348. package/es/components/modal/Modal.d.ts +2 -0
  349. package/es/components/modal/Modal.js +25 -10
  350. package/es/components/modal/Modal.js.map +1 -1
  351. package/es/components/number-format/NumberFormat.d.ts +4 -0
  352. package/es/components/number-format/NumberFormat.js +5 -2
  353. package/es/components/number-format/NumberFormat.js.map +1 -1
  354. package/es/components/number-format/style/dnb-number-format.css +3 -0
  355. package/es/components/number-format/style/dnb-number-format.min.css +1 -1
  356. package/es/components/number-format/style/dnb-number-format.scss +4 -0
  357. package/es/components/pagination/Pagination.js.map +1 -1
  358. package/es/components/pagination/PaginationHelpers.js.map +1 -1
  359. package/es/components/pagination/PaginationInfinity.js.map +1 -1
  360. package/es/components/pagination/PaginationProvider.js.map +1 -1
  361. package/es/components/progress-indicator/ProgressIndicatorDocs.js +1 -1
  362. package/es/components/progress-indicator/ProgressIndicatorDocs.js.map +1 -1
  363. package/es/components/progress-indicator/types.d.ts +1 -1
  364. package/es/components/progress-indicator/types.js.map +1 -1
  365. package/es/components/radio/Radio.js.map +1 -1
  366. package/es/components/radio/RadioGroup.js.map +1 -1
  367. package/es/components/skeleton/Skeleton.js.map +1 -1
  368. package/es/components/switch/Switch.js.map +1 -1
  369. package/es/components/table/Table.d.ts +6 -0
  370. package/es/components/table/Table.js +13 -3
  371. package/es/components/table/Table.js.map +1 -1
  372. package/es/components/table/TableAccordion.d.ts +7 -11
  373. package/es/components/table/TableAccordion.js +29 -19
  374. package/es/components/table/TableAccordion.js.map +1 -1
  375. package/es/components/table/TableTr.js +25 -26
  376. package/es/components/table/TableTr.js.map +1 -1
  377. package/es/components/tabs/Tabs.js +1 -5
  378. package/es/components/tabs/Tabs.js.map +1 -1
  379. package/es/components/tabs/TabsDocs.js +1 -1
  380. package/es/components/tabs/TabsDocs.js.map +1 -1
  381. package/es/components/textarea/Textarea.js.map +1 -1
  382. package/es/components/toggle-button/ToggleButton.js.map +1 -1
  383. package/es/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  384. package/es/extensions/forms/DataContext/Context.d.ts +2 -0
  385. package/es/extensions/forms/DataContext/Context.js +1 -0
  386. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  387. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +17 -1
  388. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
  389. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +5 -3
  390. package/es/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  391. package/es/extensions/forms/DataContext/Provider/Provider.js +46 -1
  392. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  393. package/es/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +2 -2
  394. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +8 -2
  395. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  396. package/es/extensions/forms/Field/Option/Option.d.ts +2 -2
  397. package/es/extensions/forms/Field/Option/Option.js.map +1 -1
  398. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +6 -6
  399. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  400. package/es/extensions/forms/Field/Selection/Selection.js +7 -2
  401. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  402. package/es/extensions/forms/Field/Toggle/Toggle.js +7 -3
  403. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  404. package/es/extensions/forms/Form/FieldProps/FieldProps.js +16 -36
  405. package/es/extensions/forms/Form/FieldProps/FieldProps.js.map +1 -1
  406. package/es/extensions/forms/Form/Section/EditContainer/EditContainer.d.ts +12 -0
  407. package/es/extensions/forms/Form/Section/EditContainer/EditContainer.js +33 -0
  408. package/es/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -0
  409. package/es/extensions/forms/Form/Section/EditContainer/EditContainerDocs.d.ts +3 -0
  410. package/es/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +19 -0
  411. package/es/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -0
  412. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.d.ts +1 -0
  413. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +59 -0
  414. package/es/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -0
  415. package/es/extensions/forms/Form/Section/EditContainer/index.d.ts +2 -0
  416. package/es/extensions/forms/Form/Section/EditContainer/index.js +3 -0
  417. package/es/extensions/forms/Form/Section/EditContainer/index.js.map +1 -0
  418. package/es/extensions/forms/Form/Section/EditContainer/useContainerDataStore.d.ts +3 -0
  419. package/es/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js +46 -0
  420. package/es/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js.map +1 -0
  421. package/es/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.d.ts +1 -0
  422. package/es/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.js +19 -0
  423. package/es/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.js.map +1 -0
  424. package/es/extensions/forms/Form/Section/Section.d.ts +9 -1
  425. package/es/extensions/forms/Form/Section/Section.js +10 -2
  426. package/es/extensions/forms/Form/Section/Section.js.map +1 -1
  427. package/es/extensions/forms/Form/Section/SectionContext.d.ts +1 -2
  428. package/es/extensions/forms/Form/Section/SectionContext.js.map +1 -1
  429. package/es/extensions/forms/Form/Section/SectionDocs.js +6 -1
  430. package/es/extensions/forms/Form/Section/SectionDocs.js.map +1 -1
  431. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainer.d.ts +12 -0
  432. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainer.js +32 -0
  433. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainer.js.map +1 -0
  434. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.d.ts +3 -0
  435. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +19 -0
  436. package/es/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -0
  437. package/es/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.d.ts +1 -0
  438. package/es/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js +26 -0
  439. package/es/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js.map +1 -0
  440. package/es/extensions/forms/Form/Section/ViewContainer/index.d.ts +2 -0
  441. package/es/extensions/forms/Form/Section/ViewContainer/index.js +3 -0
  442. package/es/extensions/forms/Form/Section/ViewContainer/index.js.map +1 -0
  443. package/es/extensions/forms/Form/Section/containers/SectionContainer.d.ts +19 -0
  444. package/es/extensions/forms/Form/Section/containers/SectionContainer.js +83 -0
  445. package/es/extensions/forms/Form/Section/containers/SectionContainer.js.map +1 -0
  446. package/es/extensions/forms/Form/Section/containers/SectionContainerContext.d.ts +8 -0
  447. package/es/extensions/forms/Form/Section/containers/SectionContainerContext.js +4 -0
  448. package/es/extensions/forms/Form/Section/containers/SectionContainerContext.js.map +1 -0
  449. package/es/extensions/forms/Form/Section/containers/SectionContainerProvider.d.ts +8 -0
  450. package/es/extensions/forms/Form/Section/containers/SectionContainerProvider.js +24 -0
  451. package/es/extensions/forms/Form/Section/containers/SectionContainerProvider.js.map +1 -0
  452. package/es/extensions/forms/Form/Section/containers/Toolbar.d.ts +7 -0
  453. package/es/extensions/forms/Form/Section/containers/Toolbar.js +27 -0
  454. package/es/extensions/forms/Form/Section/containers/Toolbar.js.map +1 -0
  455. package/es/extensions/forms/Form/Section/style/dnb-form-section.css +45 -0
  456. package/es/extensions/forms/Form/Section/style/dnb-form-section.min.css +1 -0
  457. package/es/extensions/forms/{Iterate/style/dnb-form-iterate.scss → Form/Section/style/dnb-form-section.scss} +4 -12
  458. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +8 -8
  459. package/es/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  460. package/es/extensions/forms/Iterate/Array/Array.js +1 -1
  461. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  462. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js +1 -1
  463. package/es/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  464. package/es/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +19 -10
  465. package/es/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
  466. package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js +1 -1
  467. package/es/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  468. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js +1 -1
  469. package/es/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  470. package/es/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +1 -1
  471. package/es/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
  472. package/es/extensions/forms/Iterate/style/dnb-iterate.css +6 -0
  473. package/es/extensions/forms/Iterate/style/dnb-iterate.min.css +1 -0
  474. package/es/extensions/forms/Iterate/style/dnb-iterate.scss +12 -0
  475. package/es/extensions/forms/constants/locales/en-GB.d.ts +2 -1
  476. package/es/extensions/forms/constants/locales/en-GB.js +3 -2
  477. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  478. package/es/extensions/forms/constants/locales/en-US.d.ts +2 -1
  479. package/es/extensions/forms/constants/locales/index.d.ts +4 -2
  480. package/es/extensions/forms/constants/locales/nb-NO.d.ts +2 -1
  481. package/es/extensions/forms/constants/locales/nb-NO.js +3 -2
  482. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  483. package/es/extensions/forms/hooks/useDataValue.d.ts +4 -0
  484. package/es/extensions/forms/hooks/useDataValue.js +30 -5
  485. package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
  486. package/es/extensions/forms/hooks/useFieldProps.js +14 -9
  487. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  488. package/es/extensions/forms/hooks/useTranslation.js +7 -12
  489. package/es/extensions/forms/hooks/useTranslation.js.map +1 -1
  490. package/es/extensions/forms/style/dnb-forms.css +46 -44
  491. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  492. package/es/extensions/payment-card/PaymentCard.js.map +1 -1
  493. package/es/fragments/drawer-list/DrawerList.js.map +1 -1
  494. package/es/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  495. package/es/fragments/drawer-list/DrawerListPortal.js.map +1 -1
  496. package/es/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  497. package/es/fragments/drawer-list/style/dnb-drawer-list.scss +4 -0
  498. package/es/fragments/text-counter/TextCounter.js +3 -2
  499. package/es/fragments/text-counter/TextCounter.js.map +1 -1
  500. package/es/shared/Context.d.ts +9 -5
  501. package/es/shared/Context.js +39 -35
  502. package/es/shared/Context.js.map +1 -1
  503. package/es/shared/Eufemia.d.ts +1 -1
  504. package/es/shared/Eufemia.js +2 -2
  505. package/es/shared/Eufemia.js.map +1 -1
  506. package/es/shared/Provider.d.ts +1 -1
  507. package/es/shared/Provider.js +49 -41
  508. package/es/shared/Provider.js.map +1 -1
  509. package/es/shared/Translation.d.ts +5 -5
  510. package/es/shared/Translation.js +8 -10
  511. package/es/shared/Translation.js.map +1 -1
  512. package/es/shared/index.d.ts +1 -0
  513. package/es/shared/index.js +1 -0
  514. package/es/shared/index.js.map +1 -1
  515. package/es/shared/locales/en-GB.d.ts +0 -3
  516. package/es/shared/locales/en-GB.js +0 -3
  517. package/es/shared/locales/en-GB.js.map +1 -1
  518. package/es/shared/locales/en-US.d.ts +0 -3
  519. package/es/shared/locales/index.d.ts +0 -6
  520. package/es/shared/locales/nb-NO.d.ts +0 -3
  521. package/es/shared/locales/nb-NO.js +0 -3
  522. package/es/shared/locales/nb-NO.js.map +1 -1
  523. package/es/shared/useTranslation.d.ts +5 -4
  524. package/es/shared/useTranslation.js +13 -11
  525. package/es/shared/useTranslation.js.map +1 -1
  526. package/es/style/core/scopes.scss +1 -1
  527. package/es/style/dnb-ui-basis.css +1 -1
  528. package/es/style/dnb-ui-basis.min.css +1 -1
  529. package/es/style/dnb-ui-body.css +1 -1
  530. package/es/style/dnb-ui-body.min.css +1 -1
  531. package/es/style/dnb-ui-components.css +57 -44
  532. package/es/style/dnb-ui-components.min.css +2 -2
  533. package/es/style/dnb-ui-core.css +1 -1
  534. package/es/style/dnb-ui-core.min.css +1 -1
  535. package/es/style/dnb-ui-extensions.css +46 -44
  536. package/es/style/dnb-ui-extensions.min.css +1 -1
  537. package/es/style/dnb-ui-forms.css +46 -44
  538. package/es/style/dnb-ui-forms.min.css +1 -1
  539. package/es/style/dnb-ui-forms.scss +2 -1
  540. package/es/style/dnb-ui-fragments.css +4 -0
  541. package/es/style/dnb-ui-fragments.min.css +1 -1
  542. package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +2 -2
  543. package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  544. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +103 -88
  545. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
  546. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +46 -44
  547. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  548. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +46 -44
  549. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  550. package/es/style/themes/theme-sbanken/globals.scss +3 -2
  551. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +2 -2
  552. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  553. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +104 -89
  554. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
  555. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +46 -44
  556. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  557. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +46 -44
  558. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  559. package/es/style/themes/theme-ui/globals.scss +3 -2
  560. package/es/style/themes/theme-ui/ui-theme-basis.css +2 -2
  561. package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  562. package/es/style/themes/theme-ui/ui-theme-components.css +103 -88
  563. package/es/style/themes/theme-ui/ui-theme-components.min.css +3 -3
  564. package/es/style/themes/theme-ui/ui-theme-extensions.css +46 -44
  565. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  566. package/es/style/themes/theme-ui/ui-theme-forms.css +46 -44
  567. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  568. package/esm/dnb-ui-basis.min.mjs +1 -1
  569. package/esm/dnb-ui-components.min.mjs +1 -1
  570. package/esm/dnb-ui-elements.min.mjs +1 -1
  571. package/esm/dnb-ui-extensions.min.mjs +5 -5
  572. package/esm/dnb-ui-lib.min.mjs +1 -1
  573. package/extensions/forms/DataContext/Context.d.ts +2 -0
  574. package/extensions/forms/DataContext/Context.js +1 -0
  575. package/extensions/forms/DataContext/Context.js.map +1 -1
  576. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.d.ts +17 -1
  577. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryContext.js.map +1 -1
  578. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js +5 -3
  579. package/extensions/forms/DataContext/FieldBoundary/FieldBoundaryProvider.js.map +1 -1
  580. package/extensions/forms/DataContext/Provider/Provider.js +50 -4
  581. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  582. package/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +2 -2
  583. package/extensions/forms/Field/ArraySelection/ArraySelection.js +8 -2
  584. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  585. package/extensions/forms/Field/Option/Option.d.ts +2 -2
  586. package/extensions/forms/Field/Option/Option.js.map +1 -1
  587. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +6 -6
  588. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  589. package/extensions/forms/Field/Selection/Selection.js +7 -2
  590. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  591. package/extensions/forms/Field/Toggle/Toggle.js +7 -3
  592. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  593. package/extensions/forms/Form/FieldProps/FieldProps.js +16 -36
  594. package/extensions/forms/Form/FieldProps/FieldProps.js.map +1 -1
  595. package/extensions/forms/Form/Section/EditContainer/EditContainer.d.ts +12 -0
  596. package/extensions/forms/Form/Section/EditContainer/EditContainer.js +33 -0
  597. package/extensions/forms/Form/Section/EditContainer/EditContainer.js.map +1 -0
  598. package/extensions/forms/Form/Section/EditContainer/EditContainerDocs.d.ts +3 -0
  599. package/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js +19 -0
  600. package/extensions/forms/Form/Section/EditContainer/EditContainerDocs.js.map +1 -0
  601. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.d.ts +1 -0
  602. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js +59 -0
  603. package/extensions/forms/Form/Section/EditContainer/EditToolbarTools.js.map +1 -0
  604. package/extensions/forms/Form/Section/EditContainer/index.d.ts +2 -0
  605. package/extensions/forms/Form/Section/EditContainer/index.js +3 -0
  606. package/extensions/forms/Form/Section/EditContainer/index.js.map +1 -0
  607. package/extensions/forms/Form/Section/EditContainer/useContainerDataStore.d.ts +3 -0
  608. package/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js +46 -0
  609. package/extensions/forms/Form/Section/EditContainer/useContainerDataStore.js.map +1 -0
  610. package/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.d.ts +1 -0
  611. package/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.js +19 -0
  612. package/extensions/forms/Form/Section/EditContainer/useEditContainerToolbar.js.map +1 -0
  613. package/extensions/forms/Form/Section/Section.d.ts +9 -1
  614. package/extensions/forms/Form/Section/Section.js +10 -2
  615. package/extensions/forms/Form/Section/Section.js.map +1 -1
  616. package/extensions/forms/Form/Section/SectionContext.d.ts +1 -2
  617. package/extensions/forms/Form/Section/SectionContext.js.map +1 -1
  618. package/extensions/forms/Form/Section/SectionDocs.js +6 -1
  619. package/extensions/forms/Form/Section/SectionDocs.js.map +1 -1
  620. package/extensions/forms/Form/Section/ViewContainer/ViewContainer.d.ts +12 -0
  621. package/extensions/forms/Form/Section/ViewContainer/ViewContainer.js +32 -0
  622. package/extensions/forms/Form/Section/ViewContainer/ViewContainer.js.map +1 -0
  623. package/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.d.ts +3 -0
  624. package/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js +19 -0
  625. package/extensions/forms/Form/Section/ViewContainer/ViewContainerDocs.js.map +1 -0
  626. package/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.d.ts +1 -0
  627. package/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js +26 -0
  628. package/extensions/forms/Form/Section/ViewContainer/ViewToolbarTools.js.map +1 -0
  629. package/extensions/forms/Form/Section/ViewContainer/index.d.ts +2 -0
  630. package/extensions/forms/Form/Section/ViewContainer/index.js +3 -0
  631. package/extensions/forms/Form/Section/ViewContainer/index.js.map +1 -0
  632. package/extensions/forms/Form/Section/containers/SectionContainer.d.ts +19 -0
  633. package/extensions/forms/Form/Section/containers/SectionContainer.js +83 -0
  634. package/extensions/forms/Form/Section/containers/SectionContainer.js.map +1 -0
  635. package/extensions/forms/Form/Section/containers/SectionContainerContext.d.ts +8 -0
  636. package/extensions/forms/Form/Section/containers/SectionContainerContext.js +4 -0
  637. package/extensions/forms/Form/Section/containers/SectionContainerContext.js.map +1 -0
  638. package/extensions/forms/Form/Section/containers/SectionContainerProvider.d.ts +8 -0
  639. package/extensions/forms/Form/Section/containers/SectionContainerProvider.js +24 -0
  640. package/extensions/forms/Form/Section/containers/SectionContainerProvider.js.map +1 -0
  641. package/extensions/forms/Form/Section/containers/Toolbar.d.ts +7 -0
  642. package/extensions/forms/Form/Section/containers/Toolbar.js +27 -0
  643. package/extensions/forms/Form/Section/containers/Toolbar.js.map +1 -0
  644. package/extensions/forms/Form/Section/style/dnb-form-section.css +45 -0
  645. package/extensions/forms/Form/Section/style/dnb-form-section.min.css +1 -0
  646. package/{cjs/extensions/forms/Iterate/style/dnb-form-iterate.scss → extensions/forms/Form/Section/style/dnb-form-section.scss} +4 -12
  647. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js +8 -8
  648. package/extensions/forms/Iterate/AnimatedContainer/ElementBlock.js.map +1 -1
  649. package/extensions/forms/Iterate/Array/Array.js +1 -1
  650. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  651. package/extensions/forms/Iterate/EditContainer/EditContainer.js +1 -1
  652. package/extensions/forms/Iterate/EditContainer/EditContainer.js.map +1 -1
  653. package/extensions/forms/Iterate/EditContainer/EditToolbarTools.js +19 -10
  654. package/extensions/forms/Iterate/EditContainer/EditToolbarTools.js.map +1 -1
  655. package/extensions/forms/Iterate/RemoveButton/RemoveButton.js +1 -1
  656. package/extensions/forms/Iterate/RemoveButton/RemoveButton.js.map +1 -1
  657. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js +1 -1
  658. package/extensions/forms/Iterate/ViewContainer/ViewContainer.js.map +1 -1
  659. package/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js +1 -1
  660. package/extensions/forms/Iterate/ViewContainer/ViewToolbarTools.js.map +1 -1
  661. package/extensions/forms/Iterate/style/dnb-iterate.css +6 -0
  662. package/extensions/forms/Iterate/style/dnb-iterate.min.css +1 -0
  663. package/extensions/forms/Iterate/style/dnb-iterate.scss +12 -0
  664. package/extensions/forms/constants/locales/en-GB.d.ts +2 -1
  665. package/extensions/forms/constants/locales/en-GB.js +3 -2
  666. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  667. package/extensions/forms/constants/locales/en-US.d.ts +2 -1
  668. package/extensions/forms/constants/locales/index.d.ts +4 -2
  669. package/extensions/forms/constants/locales/nb-NO.d.ts +2 -1
  670. package/extensions/forms/constants/locales/nb-NO.js +3 -2
  671. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  672. package/extensions/forms/hooks/useDataValue.d.ts +4 -0
  673. package/extensions/forms/hooks/useDataValue.js +30 -5
  674. package/extensions/forms/hooks/useDataValue.js.map +1 -1
  675. package/extensions/forms/hooks/useFieldProps.js +14 -9
  676. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  677. package/extensions/forms/hooks/useTranslation.js +7 -12
  678. package/extensions/forms/hooks/useTranslation.js.map +1 -1
  679. package/extensions/forms/style/dnb-forms.css +46 -44
  680. package/extensions/forms/style/dnb-forms.min.css +1 -1
  681. package/extensions/payment-card/PaymentCard.js.map +1 -1
  682. package/fragments/drawer-list/DrawerList.js.map +1 -1
  683. package/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  684. package/fragments/drawer-list/DrawerListPortal.js.map +1 -1
  685. package/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  686. package/fragments/drawer-list/style/dnb-drawer-list.scss +4 -0
  687. package/fragments/text-counter/TextCounter.js +3 -2
  688. package/fragments/text-counter/TextCounter.js.map +1 -1
  689. package/package.json +1 -1
  690. package/shared/Context.d.ts +9 -5
  691. package/shared/Context.js +40 -35
  692. package/shared/Context.js.map +1 -1
  693. package/shared/Eufemia.d.ts +1 -1
  694. package/shared/Eufemia.js +2 -2
  695. package/shared/Eufemia.js.map +1 -1
  696. package/shared/Provider.d.ts +1 -1
  697. package/shared/Provider.js +49 -41
  698. package/shared/Provider.js.map +1 -1
  699. package/shared/Translation.d.ts +5 -5
  700. package/shared/Translation.js +8 -10
  701. package/shared/Translation.js.map +1 -1
  702. package/shared/index.d.ts +1 -0
  703. package/shared/index.js +1 -0
  704. package/shared/index.js.map +1 -1
  705. package/shared/locales/en-GB.d.ts +0 -3
  706. package/shared/locales/en-GB.js +0 -3
  707. package/shared/locales/en-GB.js.map +1 -1
  708. package/shared/locales/en-US.d.ts +0 -3
  709. package/shared/locales/index.d.ts +0 -6
  710. package/shared/locales/nb-NO.d.ts +0 -3
  711. package/shared/locales/nb-NO.js +0 -3
  712. package/shared/locales/nb-NO.js.map +1 -1
  713. package/shared/useTranslation.d.ts +5 -4
  714. package/shared/useTranslation.js +13 -11
  715. package/shared/useTranslation.js.map +1 -1
  716. package/style/core/scopes.scss +1 -1
  717. package/style/dnb-ui-basis.css +1 -1
  718. package/style/dnb-ui-basis.min.css +1 -1
  719. package/style/dnb-ui-body.css +1 -1
  720. package/style/dnb-ui-body.min.css +1 -1
  721. package/style/dnb-ui-components.css +57 -44
  722. package/style/dnb-ui-components.min.css +2 -2
  723. package/style/dnb-ui-core.css +1 -1
  724. package/style/dnb-ui-core.min.css +1 -1
  725. package/style/dnb-ui-extensions.css +46 -44
  726. package/style/dnb-ui-extensions.min.css +1 -1
  727. package/style/dnb-ui-forms.css +46 -44
  728. package/style/dnb-ui-forms.min.css +1 -1
  729. package/style/dnb-ui-forms.scss +2 -1
  730. package/style/dnb-ui-fragments.css +4 -0
  731. package/style/dnb-ui-fragments.min.css +1 -1
  732. package/style/themes/theme-eiendom/eiendom-theme-basis.css +2 -2
  733. package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  734. package/style/themes/theme-eiendom/eiendom-theme-components.css +103 -88
  735. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
  736. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +46 -44
  737. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  738. package/style/themes/theme-eiendom/eiendom-theme-forms.css +46 -44
  739. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  740. package/style/themes/theme-sbanken/globals.scss +3 -2
  741. package/style/themes/theme-sbanken/sbanken-theme-basis.css +2 -2
  742. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  743. package/style/themes/theme-sbanken/sbanken-theme-components.css +104 -89
  744. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
  745. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +46 -44
  746. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  747. package/style/themes/theme-sbanken/sbanken-theme-forms.css +46 -44
  748. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  749. package/style/themes/theme-ui/globals.scss +3 -2
  750. package/style/themes/theme-ui/ui-theme-basis.css +2 -2
  751. package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  752. package/style/themes/theme-ui/ui-theme-components.css +103 -88
  753. package/style/themes/theme-ui/ui-theme-components.min.css +3 -3
  754. package/style/themes/theme-ui/ui-theme-extensions.css +46 -44
  755. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  756. package/style/themes/theme-ui/ui-theme-forms.css +46 -44
  757. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  758. package/umd/dnb-ui-basis.min.js +1 -1
  759. package/umd/dnb-ui-components.min.js +1 -1
  760. package/umd/dnb-ui-elements.min.js +1 -1
  761. package/umd/dnb-ui-extensions.min.js +5 -5
  762. package/umd/dnb-ui-lib.min.js +1 -1
  763. package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.css +0 -50
  764. package/cjs/extensions/forms/Iterate/style/dnb-form-iterate.min.css +0 -1
  765. package/es/extensions/forms/Iterate/style/dnb-form-iterate.css +0 -50
  766. package/es/extensions/forms/Iterate/style/dnb-form-iterate.min.css +0 -1
  767. package/extensions/forms/Iterate/style/dnb-form-iterate.css +0 -50
  768. package/extensions/forms/Iterate/style/dnb-form-iterate.min.css +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerListPortal.js","names":["React","ReactDOM","PropTypes","classnames","warn","getClosestScrollViewElement","drawerListPropTypes","process","env","NODE_ENV","id","string","isRequired","children","node","opened","bool","innerRef","shape","current","oneOfType","object","rootRef","include_owner_width","independent_width","fixed_position","className","drawerListDefaultProps","DrawerListPortal","PureComponent","constructor","props","_defineProperty","isMounted","portalElem","useRootElement","setState","ref","createRef","componentDidMount","document","readyState","init","window","addEventListener","componentWillUnmount","removeEventListener","removePositionObserver","elem","getElementById","createElement","setAttribute","classList","add","createMainElement","appendChild","e","body","makeStyle","state","rootElem","ownerElem","parentElement","width","ownerWidth","getComputedStyle","parseFloat","minWidth","documentElement","getPropertyValue","customWidth","getBoundingClientRect","rect","scrollY","undefined","pageYOffset","scrollX","pageXOffset","top","left","innerWidth","style","addPositionObserver","setPosition","clearTimeout","positionTimeout","setTimeout","random","Date","now","customElem","resizeObserver","ResizeObserver","observe","disconnect","render","createPortal","_objectSpread","propTypes","forwardRef","_extends"],"sources":["../../../../src/fragments/drawer-list/DrawerListPortal.js"],"sourcesContent":["/**\n * Web DrawerList Component\n *\n * This is a legacy component.\n * For refferencing while developing new features, please use a Functional component.\n */\n\nimport React from 'react'\nimport ReactDOM from 'react-dom'\nimport PropTypes from 'prop-types'\nimport classnames from 'classnames'\nimport {\n warn,\n getClosestScrollViewElement,\n} from '../../shared/component-helper'\n\nconst drawerListPropTypes = {\n id: PropTypes.string.isRequired,\n children: PropTypes.node.isRequired,\n opened: PropTypes.bool.isRequired,\n innerRef: PropTypes.shape({\n current: PropTypes.oneOfType([PropTypes.node, PropTypes.object]),\n }),\n rootRef: PropTypes.shape({\n current: PropTypes.oneOfType([PropTypes.node, PropTypes.object]),\n }).isRequired,\n include_owner_width: PropTypes.bool,\n independent_width: PropTypes.bool,\n fixed_position: PropTypes.bool,\n className: PropTypes.string,\n}\n\nconst drawerListDefaultProps = {\n rootRef: { current: null },\n innerRef: null,\n include_owner_width: false,\n independent_width: false,\n fixed_position: false,\n className: null,\n}\n\nexport class DrawerListPortal extends React.PureComponent {\n static propTypes = {\n ...drawerListPropTypes,\n }\n\n static defaultProps = {\n ...drawerListDefaultProps,\n }\n\n state = { isMounted: false }\n\n constructor(props) {\n super(props)\n this.ref = props.innerRef || React.createRef()\n }\n\n init = () => {\n this.portalElem = this.useRootElement()\n this.setState({ isMounted: true })\n }\n\n componentDidMount() {\n if (document.readyState === 'complete') {\n this.init()\n } else if (typeof window !== 'undefined') {\n window.addEventListener('load', this.init)\n }\n }\n\n componentWillUnmount() {\n if (typeof window !== 'undefined') {\n window.removeEventListener('load', this.init)\n }\n\n this.removePositionObserver()\n this.portalElem = null\n }\n\n useRootElement() {\n if (typeof document !== 'undefined') {\n try {\n let elem = document.getElementById(`${this.props.id}-portal`)\n if (elem) {\n return elem\n }\n\n elem = document.createElement('div')\n elem.setAttribute('id', `${this.props.id}-portal`)\n elem.classList.add('dnb-drawer-list__portal')\n this.createMainElement().appendChild(elem)\n\n return elem\n } catch (e) {\n warn(e)\n }\n }\n }\n\n createMainElement() {\n if (typeof document !== 'undefined') {\n try {\n let elem = document.getElementById('dnb-drawer-list__portal')\n if (elem) {\n return elem\n }\n\n elem = document.createElement('div')\n elem.setAttribute('role', 'presentation')\n elem.setAttribute('id', 'dnb-drawer-list__portal')\n elem.classList.add('dnb-core-style')\n document.body.appendChild(elem)\n\n return elem\n } catch (e) {\n warn(e)\n }\n }\n }\n\n makeStyle() {\n if (typeof window === 'undefined' || !this.state.isMounted) {\n return // stop here\n }\n\n try {\n const {\n rootRef,\n include_owner_width,\n independent_width,\n fixed_position,\n } = this.props\n\n const rootElem = rootRef.current\n if (!rootElem) {\n return // stop here\n }\n const ownerElem = rootElem.parentElement\n\n // min width as a threshold\n let width = 64\n\n // Handle width\n const ownerWidth = window.getComputedStyle(ownerElem).width\n\n // fallback for too narrow width - in case there is not width -> e.g. \"--is-popup\"\n if (independent_width || parseFloat(ownerWidth) < 64) {\n // get min-width from CSS property\n const minWidth =\n parseFloat(\n window\n .getComputedStyle(document.documentElement)\n .getPropertyValue('--drawer-list-width')\n ) || 0\n width = minWidth * 16\n }\n\n // also check if root \"has a custom width\"\n const customWidth = rootElem.getBoundingClientRect().width\n if (!independent_width && parseFloat(customWidth || 0) >= 64) {\n width = customWidth\n }\n\n // Handle positions\n const rect = rootElem.getBoundingClientRect()\n const scrollY = fixed_position\n ? 0\n : window.scrollY !== undefined\n ? window.scrollY\n : window.pageYOffset\n const scrollX = fixed_position\n ? 0\n : window.scrollX !== undefined\n ? window.scrollX\n : window.pageXOffset\n\n let top = scrollY + rect.top\n let left =\n scrollX +\n rect.left +\n (include_owner_width ? parseFloat(ownerWidth || 0) : 0)\n\n if (width > window.innerWidth) {\n width = window.innerWidth\n }\n if (top < 0) {\n top = 0\n }\n if (left < 0) {\n left = 0\n }\n\n // NB: before we recalculated the values to REM, but iOS rounds this and we get a wrong total value out of that!\n const style = {\n width,\n '--drawer-list-width': `${width / 16}rem`, // used by the \"drawer-list-scale-in\" animation\n top,\n left,\n }\n\n return style\n } catch (e) {\n warn(e)\n }\n }\n\n addPositionObserver() {\n if (this.setPosition || typeof window === 'undefined') {\n return // stop here\n }\n\n // debounce\n this.setPosition = () => {\n clearTimeout(this.positionTimeout)\n this.positionTimeout = setTimeout(() => {\n if (this.props.opened) {\n this.setState({\n random: Date.now(), // force re-render\n })\n }\n }, 200)\n }\n\n this.customElem =\n getClosestScrollViewElement(this.props.rootRef.current) || window\n this.customElem.addEventListener('scroll', this.setPosition)\n\n try {\n this.resizeObserver = new ResizeObserver(this.setPosition)\n this.resizeObserver.observe(document.body)\n } catch (e) {\n window.addEventListener('resize', this.setPosition)\n }\n }\n\n removePositionObserver() {\n clearTimeout(this.positionTimeout)\n if (typeof window !== 'undefined' && this.setPosition) {\n if (this.customElem) {\n this.customElem.removeEventListener('scroll', this.setPosition)\n }\n if (this.resizeObserver) {\n this.resizeObserver.disconnect()\n this.resizeObserver = null\n }\n window.removeEventListener('resize', this.setPosition)\n }\n this.setPosition = null\n }\n\n render() {\n if (!this.portalElem) {\n return null // stop here\n }\n\n if (typeof window !== 'undefined' && this.state.isMounted) {\n const { opened, fixed_position, className, children } = this.props\n\n if (opened) {\n this.addPositionObserver()\n }\n\n const style = opened ? this.makeStyle() : {}\n\n return ReactDOM.createPortal(\n <span\n className={classnames(\n 'dnb-drawer-list__portal__style',\n fixed_position && 'dnb-drawer-list__portal__style--fixed',\n className\n )}\n style={style}\n ref={this.ref}\n >\n {children}\n </span>,\n this.portalElem\n )\n }\n\n return null\n }\n}\n\nexport default React.forwardRef((props, ref) => {\n return <DrawerListPortal innerRef={ref} {...props} />\n})\n"],"mappings":"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"}
1
+ {"version":3,"file":"DrawerListPortal.js","names":["React","ReactDOM","PropTypes","classnames","warn","getClosestScrollViewElement","drawerListPropTypes","process","env","NODE_ENV","id","string","isRequired","children","node","opened","bool","innerRef","shape","current","oneOfType","object","rootRef","include_owner_width","independent_width","fixed_position","className","drawerListDefaultProps","DrawerListPortal","PureComponent","constructor","props","_defineProperty","isMounted","portalElem","useRootElement","setState","ref","createRef","componentDidMount","document","readyState","init","window","addEventListener","componentWillUnmount","removeEventListener","removePositionObserver","elem","getElementById","createElement","setAttribute","classList","add","createMainElement","appendChild","e","body","makeStyle","state","rootElem","ownerElem","parentElement","width","ownerWidth","getComputedStyle","parseFloat","minWidth","documentElement","getPropertyValue","customWidth","getBoundingClientRect","rect","scrollY","undefined","pageYOffset","scrollX","pageXOffset","top","left","innerWidth","style","addPositionObserver","setPosition","clearTimeout","positionTimeout","setTimeout","random","Date","now","customElem","resizeObserver","ResizeObserver","observe","disconnect","render","createPortal","_objectSpread","propTypes","forwardRef","_extends"],"sources":["../../../../src/fragments/drawer-list/DrawerListPortal.js"],"sourcesContent":["/**\n * Web DrawerList 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 ReactDOM from 'react-dom'\nimport PropTypes from 'prop-types'\nimport classnames from 'classnames'\nimport {\n warn,\n getClosestScrollViewElement,\n} from '../../shared/component-helper'\n\nconst drawerListPropTypes = {\n id: PropTypes.string.isRequired,\n children: PropTypes.node.isRequired,\n opened: PropTypes.bool.isRequired,\n innerRef: PropTypes.shape({\n current: PropTypes.oneOfType([PropTypes.node, PropTypes.object]),\n }),\n rootRef: PropTypes.shape({\n current: PropTypes.oneOfType([PropTypes.node, PropTypes.object]),\n }).isRequired,\n include_owner_width: PropTypes.bool,\n independent_width: PropTypes.bool,\n fixed_position: PropTypes.bool,\n className: PropTypes.string,\n}\n\nconst drawerListDefaultProps = {\n rootRef: { current: null },\n innerRef: null,\n include_owner_width: false,\n independent_width: false,\n fixed_position: false,\n className: null,\n}\n\nexport class DrawerListPortal extends React.PureComponent {\n static propTypes = {\n ...drawerListPropTypes,\n }\n\n static defaultProps = {\n ...drawerListDefaultProps,\n }\n\n state = { isMounted: false }\n\n constructor(props) {\n super(props)\n this.ref = props.innerRef || React.createRef()\n }\n\n init = () => {\n this.portalElem = this.useRootElement()\n this.setState({ isMounted: true })\n }\n\n componentDidMount() {\n if (document.readyState === 'complete') {\n this.init()\n } else if (typeof window !== 'undefined') {\n window.addEventListener('load', this.init)\n }\n }\n\n componentWillUnmount() {\n if (typeof window !== 'undefined') {\n window.removeEventListener('load', this.init)\n }\n\n this.removePositionObserver()\n this.portalElem = null\n }\n\n useRootElement() {\n if (typeof document !== 'undefined') {\n try {\n let elem = document.getElementById(`${this.props.id}-portal`)\n if (elem) {\n return elem\n }\n\n elem = document.createElement('div')\n elem.setAttribute('id', `${this.props.id}-portal`)\n elem.classList.add('dnb-drawer-list__portal')\n this.createMainElement().appendChild(elem)\n\n return elem\n } catch (e) {\n warn(e)\n }\n }\n }\n\n createMainElement() {\n if (typeof document !== 'undefined') {\n try {\n let elem = document.getElementById('dnb-drawer-list__portal')\n if (elem) {\n return elem\n }\n\n elem = document.createElement('div')\n elem.setAttribute('role', 'presentation')\n elem.setAttribute('id', 'dnb-drawer-list__portal')\n elem.classList.add('dnb-core-style')\n document.body.appendChild(elem)\n\n return elem\n } catch (e) {\n warn(e)\n }\n }\n }\n\n makeStyle() {\n if (typeof window === 'undefined' || !this.state.isMounted) {\n return // stop here\n }\n\n try {\n const {\n rootRef,\n include_owner_width,\n independent_width,\n fixed_position,\n } = this.props\n\n const rootElem = rootRef.current\n if (!rootElem) {\n return // stop here\n }\n const ownerElem = rootElem.parentElement\n\n // min width as a threshold\n let width = 64\n\n // Handle width\n const ownerWidth = window.getComputedStyle(ownerElem).width\n\n // fallback for too narrow width - in case there is not width -> e.g. \"--is-popup\"\n if (independent_width || parseFloat(ownerWidth) < 64) {\n // get min-width from CSS property\n const minWidth =\n parseFloat(\n window\n .getComputedStyle(document.documentElement)\n .getPropertyValue('--drawer-list-width')\n ) || 0\n width = minWidth * 16\n }\n\n // also check if root \"has a custom width\"\n const customWidth = rootElem.getBoundingClientRect().width\n if (!independent_width && parseFloat(customWidth || 0) >= 64) {\n width = customWidth\n }\n\n // Handle positions\n const rect = rootElem.getBoundingClientRect()\n const scrollY = fixed_position\n ? 0\n : window.scrollY !== undefined\n ? window.scrollY\n : window.pageYOffset\n const scrollX = fixed_position\n ? 0\n : window.scrollX !== undefined\n ? window.scrollX\n : window.pageXOffset\n\n let top = scrollY + rect.top\n let left =\n scrollX +\n rect.left +\n (include_owner_width ? parseFloat(ownerWidth || 0) : 0)\n\n if (width > window.innerWidth) {\n width = window.innerWidth\n }\n if (top < 0) {\n top = 0\n }\n if (left < 0) {\n left = 0\n }\n\n // NB: before we recalculated the values to REM, but iOS rounds this and we get a wrong total value out of that!\n const style = {\n width,\n '--drawer-list-width': `${width / 16}rem`, // used by the \"drawer-list-scale-in\" animation\n top,\n left,\n }\n\n return style\n } catch (e) {\n warn(e)\n }\n }\n\n addPositionObserver() {\n if (this.setPosition || typeof window === 'undefined') {\n return // stop here\n }\n\n // debounce\n this.setPosition = () => {\n clearTimeout(this.positionTimeout)\n this.positionTimeout = setTimeout(() => {\n if (this.props.opened) {\n this.setState({\n random: Date.now(), // force re-render\n })\n }\n }, 200)\n }\n\n this.customElem =\n getClosestScrollViewElement(this.props.rootRef.current) || window\n this.customElem.addEventListener('scroll', this.setPosition)\n\n try {\n this.resizeObserver = new ResizeObserver(this.setPosition)\n this.resizeObserver.observe(document.body)\n } catch (e) {\n window.addEventListener('resize', this.setPosition)\n }\n }\n\n removePositionObserver() {\n clearTimeout(this.positionTimeout)\n if (typeof window !== 'undefined' && this.setPosition) {\n if (this.customElem) {\n this.customElem.removeEventListener('scroll', this.setPosition)\n }\n if (this.resizeObserver) {\n this.resizeObserver.disconnect()\n this.resizeObserver = null\n }\n window.removeEventListener('resize', this.setPosition)\n }\n this.setPosition = null\n }\n\n render() {\n if (!this.portalElem) {\n return null // stop here\n }\n\n if (typeof window !== 'undefined' && this.state.isMounted) {\n const { opened, fixed_position, className, children } = this.props\n\n if (opened) {\n this.addPositionObserver()\n }\n\n const style = opened ? this.makeStyle() : {}\n\n return ReactDOM.createPortal(\n <span\n className={classnames(\n 'dnb-drawer-list__portal__style',\n fixed_position && 'dnb-drawer-list__portal__style--fixed',\n className\n )}\n style={style}\n ref={this.ref}\n >\n {children}\n </span>,\n this.portalElem\n )\n }\n\n return null\n }\n}\n\nexport default React.forwardRef((props, ref) => {\n return <DrawerListPortal innerRef={ref} {...props} />\n})\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerListProvider.js","names":["React","PropTypes","keycode","Context","warn","isTrue","roundToNearest","getClosestScrollViewElement","detectOutsideClick","dispatchCustomElementEvent","getPreviousSibling","getOffsetTop","getOffsetLeft","hasSelectedText","getSelectedElement","getData","normalizeData","findClosest","getSelectedItemValue","parseContentTitle","getEventData","prepareStartupState","prepareDerivedState","drawerListPropTypes","drawerListDefaultProps","drawerListProviderPropTypes","drawerListProviderDefaultProps","DrawerListContext","disableBodyScroll","enableBodyScroll","DrawerListProvider","PureComponent","getDerivedStateFromProps","props","state","constructor","_this","this","_defineProperty","_refUl","current","_bodyLockIsEnabled","_refShell","spaceToLeft","spaceToRight","window","innerWidth","offsetWidth","triangleStyle","_refTriangle","style","shellStyle","transform","Math","abs","right","left","e","active_item","scrollTo","element","arguments","length","undefined","clearTimeout","_scrollTimeout","setTimeout","parseFloat","ulElement","liElement","getActiveElement","top","offsetTop","IS_TEST","scrollBehavior","behavior","scrollTop","prevent_focus","focus","fireSelectEvent","event","setState","_document$activeEleme","document","activeElement","tagName","_this$_refUl$current","preventScroll","selected_item","attributes","ret","value","data","no_animation","scrollToItem","wrapper_element","querySelector","we","meta","cmd","metaKey","ctrl","ctrlKey","shift","shiftKey","alt","altKey","setMetaKey","key","test","prevent_close","isSameDrawer","ulElem","getAttribute","id","isOpen","ignore_events","isNaN","total","preventDefault","direction","getFirstItem","getPrevActiveItem","getLastItem","getNextActiveItem","target","dispatchEvent","MouseEvent","setHidden","getCurrentActiveItem","skip_keysearch","result","selectItemAndClose","hasFocusOnElement","Boolean","getAnchorElem","stopPropagation","currentActiveElement","createTabElem","elem","createElement","prevActiveElement","removeEventListener","removeChild","after","before","addEventListener","insertElem","appendChild","insertBefore","firstChild","requestAnimationFrame","findItemByValue","showFocusRing","setActiveItemAndScrollToIt","_this$_refUl$current2","_this$_refUl$current3","nextSibling","previousSibling","_this$_refUl$current4","_this$_refUl$current5","removeOutsideClickObserver","outsideClick","_refRoot","preventHideFocus","includedKeys","onKeyDownHandler","onKeyUpHandler","setDirectionObserver","setScrollObserver","setOutsideClickObserver","removeDirectionObserver","removeScrollObserver","opened","setVisible","args","onStateComplete","hidden","_showTimeout","_hideTimeout","searchCache","handleSingleComponentCheck","animationDelayHandler","setActiveState","_process","process","env","NODE_ENV","blurDelay","_objectSpread","res","delayHandler","removeObservers","cb","overwriteOriginalData","original_data","refreshScrollObserver","itemToSelect","closeOnSelection","selectItem","persist","attr","isInput","keep_open","prevent_selection","doCallOnChange","onSelectionIsComplete","cache_hash","createRef","componentDidMount","componentDidUpdate","prevProps","_document$activeEleme2","_this$_refUl$current6","componentWillUnmount","_directionTimeout","itemSpots","reduce","acc","cur","i","_this$_refUl$current7","itemSpotsCount","Object","keys","closestToTop","closestToBottom","tmpToTop","tmpToBottom","setOnScroll","counts","offsetHeight","enable_body_lock","scrollable","min_height","max_height","on_resize","page_offset","observer_element","useBodyLock","isScrollable","customMinHeight","customMaxHeight","customElem","directionOffset","spaceToTopOffset","spaceToBottomOffset","renderDirection","_window","_window$requestAnimat","rootElem","documentElement","pageYOffset","spaceToTop","spaceToBottom","clientHeight","max","vh","visualViewport","height","innerHeight","call","correctHiddenView","setDirection","_rootElem","enableBodyLock","index","String","toLowerCase","changedOrderFor","itemData","str","separator","removeNumericOnlyValues","firstLetter","push","found","disableBodyLock","_this$_rootElem","remove","active","setAttribute","removeAttribute","render","Provider","context","drawerList","setData","setDataHandler","setStateHandler","setWrapperElement","addObservers","toggleVisible","children","propTypes","node","isRequired"],"sources":["../../../../src/fragments/drawer-list/DrawerListProvider.js"],"sourcesContent":["/**\n * Web DrawerList Provider\n *\n * This is a legacy component.\n * For refferencing while developing new features, please use a Functional component.\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport keycode from 'keycode'\nimport Context from '../../shared/Context'\nimport {\n warn,\n isTrue,\n roundToNearest,\n getClosestScrollViewElement,\n detectOutsideClick,\n dispatchCustomElementEvent,\n getPreviousSibling,\n} from '../../shared/component-helper'\nimport {\n getOffsetTop,\n getOffsetLeft,\n hasSelectedText,\n getSelectedElement,\n} from '../../shared/helpers'\nimport {\n getData,\n normalizeData,\n findClosest,\n getSelectedItemValue,\n parseContentTitle,\n getEventData,\n prepareStartupState,\n prepareDerivedState,\n drawerListPropTypes,\n drawerListDefaultProps,\n drawerListProviderPropTypes,\n drawerListProviderDefaultProps,\n} from './DrawerListHelpers'\nimport DrawerListContext from './DrawerListContext'\nimport {\n disableBodyScroll,\n enableBodyScroll,\n} from '../../components/modal/bodyScrollLock'\n\nexport default class DrawerListProvider extends React.PureComponent {\n static contextType = Context\n\n static propTypes = {\n ...drawerListPropTypes,\n ...drawerListProviderPropTypes,\n children: PropTypes.node.isRequired,\n }\n\n static defaultProps = {\n ...drawerListDefaultProps,\n ...drawerListProviderDefaultProps,\n }\n\n static blurDelay = 201 // some ms more than \"DrawerListSlideDown 200ms\"\n\n static getDerivedStateFromProps(props, state) {\n return prepareDerivedState(props, state)\n }\n\n constructor(props) {\n super(props)\n\n this.attributes = {}\n this.state = {\n tagName: 'dnb-drawer-list',\n cache_hash: '',\n active_item: null,\n selected_item: null,\n ignore_events: false,\n ...prepareStartupState(props),\n }\n\n this._refRoot = React.createRef()\n this._refShell = React.createRef()\n this._refUl = React.createRef()\n this._refTriangle = React.createRef()\n }\n\n componentDidMount() {\n if (isTrue(this.props.opened)) {\n this.setVisible()\n }\n }\n\n componentDidUpdate(prevProps) {\n if (\n this.props.opened !== null &&\n this.props.opened !== prevProps.opened\n ) {\n if (isTrue(this.props.opened)) {\n this.setVisible()\n } else if (isTrue(this.props.opened) === false) {\n this.setHidden()\n }\n }\n\n if (this.state.opened) {\n if (\n this.props.data !== prevProps.data &&\n typeof document !== 'undefined' &&\n document.activeElement?.tagName === 'BODY'\n ) {\n this._refUl.current?.focus()\n }\n }\n }\n\n componentWillUnmount() {\n clearTimeout(this._showTimeout)\n clearTimeout(this._hideTimeout)\n clearTimeout(this._scrollTimeout)\n clearTimeout(this._directionTimeout)\n\n this.removeObservers()\n this.setActiveState(false)\n }\n\n refreshScrollObserver() {\n if (typeof window === 'undefined' || !this._refUl.current) {\n return\n }\n\n this.itemSpots = this.state.data.reduce((acc, cur, i) => {\n const element = this._refUl.current?.querySelector(\n `li.dnb-drawer-list__option:nth-of-type(${i + 1})`\n )\n if (element) {\n acc[element.offsetTop] = {\n i,\n }\n }\n return acc\n }, {})\n\n this.itemSpotsCount = Object.keys(this.itemSpots).length\n }\n\n setScrollObserver() {\n if (typeof window === 'undefined' || !this._refUl.current) {\n return\n }\n\n this.removeScrollObserver()\n this.itemSpotsCount = 1 // to make sure we recalculate the spots\n\n try {\n let closestToTop = null,\n closestToBottom = null,\n tmpToTop,\n tmpToBottom\n\n this.setOnScroll = () => {\n if (!this._refUl.current) {\n return // stop here\n }\n\n // recalculate the spots\n if (this.itemSpotsCount <= 1) {\n this.refreshScrollObserver()\n }\n\n const counts = Object.keys(this.itemSpots)\n closestToBottom = findClosest(\n counts,\n this._refUl.current.scrollTop + this._refUl.current.offsetHeight\n )\n closestToTop = findClosest(counts, this._refUl.current.scrollTop)\n if (this.itemSpots[closestToTop] && closestToTop !== tmpToTop) {\n this.setState({\n closestToTop: this.itemSpots[closestToTop].i,\n })\n }\n // we do this because we want the arrow\n // to change visually\n if (\n closestToBottom !== tmpToBottom &&\n this.itemSpots[closestToBottom]\n ) {\n this.setState({\n closestToBottom: this.itemSpots[closestToBottom].i,\n })\n }\n tmpToTop = closestToTop\n tmpToBottom = closestToBottom\n }\n\n this._refUl.current.addEventListener('scroll', this.setOnScroll)\n this.setOnScroll()\n } catch (e) {\n warn('List could not set onScroll:', e)\n }\n }\n\n removeScrollObserver() {\n if (typeof window !== 'undefined' && this.setOnScroll) {\n window.removeEventListener('resize', this.setOnScroll)\n this.setOnScroll = null\n }\n }\n\n enableBodyLock = () => {\n if (this._refUl.current) {\n this._bodyLockIsEnabled = true\n disableBodyScroll(this._refUl.current)\n }\n }\n\n disableBodyLock = () => {\n if (this._bodyLockIsEnabled && this._refUl.current) {\n this._bodyLockIsEnabled = null\n enableBodyScroll(this._refUl.current)\n }\n }\n\n setDirectionObserver() {\n if (\n typeof window === 'undefined' ||\n typeof document === 'undefined' ||\n !(this.state.wrapper_element || this._refRoot.current)\n ) {\n return\n }\n\n const {\n enable_body_lock,\n scrollable,\n min_height,\n max_height,\n on_resize,\n page_offset,\n observer_element,\n } = this.props\n\n // const skipPortal = isTrue(skip_portal)\n const useBodyLock = isTrue(enable_body_lock)\n const isScrollable = isTrue(scrollable)\n const customMinHeight = parseFloat(min_height) * 16\n const customMaxHeight = parseFloat(max_height) || 0\n\n let customElem =\n typeof observer_element === 'string'\n ? document.querySelector(observer_element)\n : null\n\n if (!customElem) {\n customElem = getClosestScrollViewElement(this._refRoot.current)\n }\n\n // In case we have one before hand\n this.removeDirectionObserver()\n\n const directionOffset = 96\n const spaceToTopOffset = 2 * 16\n const spaceToBottomOffset = 2 * 16\n const elem = this.state.wrapper_element || this._refRoot.current\n\n const renderDirection = () => {\n try {\n // make calculation for both direction and height\n const rootElem = customElem || document.documentElement\n\n const pageYOffset = !isNaN(parseFloat(page_offset))\n ? parseFloat(page_offset)\n : rootElem.scrollTop /* pageYOffset */\n const spaceToTop =\n getOffsetTop(elem) + elem.offsetHeight - pageYOffset\n const spaceToBottom =\n rootElem.clientHeight /* innerHeight */ -\n (getOffsetTop(elem) + elem.offsetHeight) +\n pageYOffset\n\n const direction =\n Math.max(spaceToBottom - directionOffset, directionOffset) <\n customMinHeight && spaceToTop > customMinHeight\n ? 'top'\n : 'bottom'\n\n // make sure we never get higher than we have defined in CSS\n let max_height = customMaxHeight\n if (!(max_height > 0)) {\n max_height =\n direction === 'top'\n ? spaceToTop -\n ((this.state.wrapper_element || this._refRoot.current)\n .offsetHeight || 0) -\n spaceToTopOffset\n : spaceToBottom - spaceToBottomOffset\n\n // get the view port height, like in CSS\n let vh = 0\n if (typeof window.visualViewport !== 'undefined') {\n vh = window.visualViewport.height\n } else {\n vh = Math.max(\n document.documentElement.clientHeight,\n window.innerHeight || 0\n )\n }\n\n // like defined in CSS\n vh = vh * (isScrollable ? 0.7 : 0.9)\n\n if (max_height > vh) {\n max_height = vh\n }\n\n // convert px to rem\n max_height = roundToNearest(max_height, 8) / 16\n }\n\n // update the states\n if (this.props.direction === 'auto') {\n this.setState({\n direction,\n })\n }\n this.setState({\n max_height,\n })\n\n // call the event, if set\n if (on_resize) {\n dispatchCustomElementEvent(this.state, 'on_resize', {\n direction,\n max_height,\n })\n }\n } catch (e) {\n warn('List could not set onResize:', e)\n }\n\n // React v18 needs a delay to make the calculation during first render\n window?.requestAnimationFrame?.(this.correctHiddenView) ||\n this.correctHiddenView()\n }\n\n // debounce\n this.setDirection = () => {\n clearTimeout(this._directionTimeout)\n this._directionTimeout = setTimeout(renderDirection, 50)\n }\n\n // customElem can be a dnb-scroll-view\n this._rootElem = customElem || window\n this._rootElem.addEventListener('scroll', this.setDirection)\n\n // this fixes iOS softkeyboard\n if (typeof window.visualViewport !== 'undefined') {\n window.visualViewport.addEventListener('scroll', this.setDirection)\n window.visualViewport.addEventListener('resize', this.setDirection)\n } else {\n window.addEventListener('resize', this.setDirection)\n }\n\n if (useBodyLock) {\n this.enableBodyLock()\n }\n\n this.refreshScrollObserver()\n\n renderDirection()\n }\n\n /**\n * Deprecated\n * We should replace all the logic of handling left/right aligned\n * and setting the position, with a PopupMenu component,\n * which uses the logic form Tooltip.\n *\n * EDS-246\n */\n correctHiddenView = () => {\n // We use \"style.transform\", because it is a independent \"and quick\" solution\n // we could send down spaceToLeft and spaceToRight and set it with React's \"style\" prop in future\n if (!this._refShell.current || !this._refUl.current) {\n return // stop here\n }\n\n try {\n const spaceToLeft = getOffsetLeft(this._refUl.current)\n const spaceToRight =\n window.innerWidth -\n (getOffsetLeft(this._refUl.current) +\n this._refUl.current.offsetWidth)\n\n const triangleStyle = this._refTriangle.current.style\n const shellStyle = this._refShell.current.style\n\n // correct left side\n if (spaceToLeft < 0) {\n shellStyle.transform = `translateX(${Math.abs(\n spaceToLeft / 16\n )}rem)`\n triangleStyle.right = `${Math.abs(spaceToLeft / 16)}rem`\n\n // correct right side\n } else if (spaceToRight < 0) {\n shellStyle.transform = `translateX(${spaceToRight / 16}rem)`\n triangleStyle.left = `${Math.abs(spaceToRight / 16)}rem`\n } else {\n if (shellStyle.transform) {\n shellStyle.transform = ''\n triangleStyle.left = 'auto'\n triangleStyle.right = 'auto'\n }\n }\n } catch (e) {\n //\n }\n }\n\n // this gives us the possibility to quickly search for an item\n // by simply pressing any alphabetical key\n findItemByValue(value) {\n if (isTrue(this.props.skip_keysearch)) {\n return\n }\n\n let index = -1\n\n try {\n value = String(value).toLowerCase()\n\n // delete the cache\n // if there are several of the same type\n if (this.changedOrderFor !== value) {\n this.searchCache = null\n this.changedOrderFor = null\n }\n\n this.searchCache =\n this.searchCache ||\n this.state.data.reduce((acc, itemData, i) => {\n const str = String(\n parseContentTitle(itemData, {\n separator: ' ',\n removeNumericOnlyValues: true,\n })\n )\n\n // take the first letter\n const firstLetter = String(str[0]).toLowerCase()\n acc[firstLetter] = acc[firstLetter] || []\n acc[firstLetter].push({\n i,\n })\n\n return acc\n }, {})\n\n const found = this.searchCache[value]\n index = found && found[0] && found[0].i > -1 ? found[0].i : -1\n\n // if there are several of the same type\n if (found && found.length > 1) {\n found.push(found.shift())\n this.changedOrderFor = value\n }\n } catch (e) {\n warn('List could not findItemByValue:', e)\n }\n\n return index\n }\n\n scrollToItem = (\n active_item,\n { scrollTo = true, element = null } = {}\n ) => {\n clearTimeout(this._scrollTimeout)\n this._scrollTimeout = setTimeout(() => {\n // try to scroll to item\n if (this._refUl.current && parseFloat(active_item) > -1) {\n try {\n const ulElement = this._refUl.current\n const liElement = element || this.getActiveElement()\n if (liElement) {\n const top = liElement.offsetTop\n if (ulElement.scrollTo) {\n if (scrollTo === false || window.IS_TEST) {\n ulElement.style.scrollBehavior = 'auto'\n }\n ulElement.scrollTo({\n top,\n behavior: scrollTo ? 'smooth' : 'auto',\n })\n if (scrollTo === false) {\n ulElement.style.scrollBehavior = 'smooth'\n }\n } else if (ulElement.scrollTop) {\n ulElement.scrollTop = top\n }\n\n if (!isTrue(this.props.prevent_focus) && liElement) {\n liElement.focus()\n dispatchCustomElementEvent(this, 'on_show_focus', {\n element: liElement,\n })\n }\n } else {\n warn('The DrawerList item was not a DOM Element')\n }\n } catch (e) {\n warn('List could not scroll into element:', e)\n }\n }\n }, 1) // to make sure we are after all DOM updates, else we don't get this scrolling\n }\n\n /**\n * During opening (Dropdown, Autocomplete),\n * and if noting is selected,\n * set scroll to item.\n *\n * @param {number} active_item The item to set as active\n * @param {object} param1\n * @property {boolean} fireSelectEvent Whether the onSelect event should get emitted\n * @property {boolean} scrollTo Whether the list should scroll to the new active item nor not\n * @property {event} event The event object to forward to the emitted events\n */\n setActiveItemAndScrollToIt = (\n active_item,\n { fireSelectEvent = false, scrollTo = true, event = null } = {}\n ) => {\n this.setState({ active_item }, () => {\n if (parseFloat(active_item) === -1) {\n // Select the first item to NVDA is more easily navigatable,\n // without using the alt + arrow key\n // else we set the focus on the \"ul\" element\n if (document.activeElement?.tagName !== 'INPUT') {\n this._refUl.current?.focus({ preventScroll: true })\n }\n\n dispatchCustomElementEvent(this, 'on_show_focus', {\n element: this._refUl.current,\n })\n } else if (parseFloat(active_item) > -1) {\n const { selected_item } = this.state\n\n if (fireSelectEvent) {\n const attributes = this.attributes\n const ret = dispatchCustomElementEvent(this.state, 'on_select', {\n active_item,\n value: getSelectedItemValue(selected_item, this.state),\n data: getEventData(active_item, this.state.data),\n event,\n attributes,\n })\n if (ret === false) {\n return // stop here!\n }\n }\n\n if (isTrue(this.props.no_animation)) {\n scrollTo = false\n }\n\n this.scrollToItem(active_item, { scrollTo })\n }\n })\n }\n\n removeDirectionObserver() {\n this.disableBodyLock()\n\n clearTimeout(this._directionTimeout)\n if (typeof window !== 'undefined' && this.setDirection) {\n this._rootElem?.removeEventListener('scroll', this.setDirection)\n\n // this fixes iOS softkeyboard\n if (typeof window.visualViewport !== 'undefined') {\n window.visualViewport.removeEventListener(\n 'scroll',\n this.setDirection\n )\n window.visualViewport.removeEventListener(\n 'resize',\n this.setDirection\n )\n } else {\n window.removeEventListener('resize', this.setDirection)\n }\n\n this.setDirection = null\n }\n }\n\n setWrapperElement = (wrapper_element = this.props.wrapper_element) => {\n if (\n typeof wrapper_element === 'string' &&\n typeof document !== 'undefined'\n ) {\n wrapper_element = document.querySelector(wrapper_element)\n }\n\n if (wrapper_element !== this.state.wrapper_element) {\n this.setState({\n wrapper_element,\n })\n }\n\n return this\n }\n\n getAnchorElem(activeElement) {\n try {\n return activeElement.querySelector('a:first-of-type')\n } catch (e) {\n return null\n }\n }\n\n setMetaKey = (e) => {\n const we =\n typeof window !== 'undefined' && window.event ? window.event : e\n this.meta = {\n cmd: we.metaKey,\n ctrl: we.ctrlKey,\n shift: we.shiftKey,\n alt: we.altKey,\n }\n }\n\n onKeyUpHandler = (e) => {\n this.setMetaKey(e)\n }\n\n onKeyDownHandler = (e) => {\n const key = keycode(e)\n\n if (/command|alt|shift|ctrl/.test(key)) {\n this.setMetaKey(e)\n }\n\n dispatchCustomElementEvent(this.state, 'on_key_down', {\n event: e,\n key,\n })\n\n // To allow copy\n // But makes VO not reading our list items once command key is pressed\n // if (this.meta.cmd || this.meta.ctrl || this.meta.shift || this.meta.alt) {\n // return // stop here\n // }\n\n // stop here if the focus is not set\n // and the drawer is opened by default\n if (\n isTrue(this.props.prevent_close)\n // TODO: Has to be worked on better!\n // !isTrue(this.props.prevent_focus)\n ) {\n let isSameDrawer = false\n try {\n const ulElem = getPreviousSibling(\n 'dnb-drawer-list__options',\n document.activeElement\n )\n\n isSameDrawer =\n ulElem === this._refUl.current ||\n ulElem?.getAttribute('id') === this.props.id\n } catch (e) {\n warn(e)\n }\n if (!isSameDrawer && key !== 'tab') {\n return // stop here\n }\n }\n\n if (!this.state.isOpen) {\n return // stop here\n }\n\n if (isTrue(this.state.ignore_events) && key !== 'tab') {\n return // stop here\n }\n\n let active_item = parseFloat(this.state.active_item)\n\n if (isNaN(active_item)) {\n active_item = -1\n }\n\n const total = this.state.data && this.state.data.length - 1\n\n switch (key) {\n case 'up':\n {\n e.preventDefault()\n\n if (\n this.state.direction === 'bottom' &&\n this.state.active_item === this.getFirstItem()\n ) {\n active_item = -1\n } else {\n active_item = this.getPrevActiveItem()\n if (isNaN(active_item)) {\n active_item = this.getLastItem()\n }\n }\n }\n break\n\n case 'down':\n {\n e.preventDefault()\n\n if (\n this.state.direction === 'top' &&\n this.state.active_item === this.getLastItem()\n ) {\n active_item = -1\n } else {\n active_item = this.getNextActiveItem()\n\n if (isNaN(active_item)) {\n active_item = this.getFirstItem()\n }\n }\n }\n break\n\n case 'page up':\n case 'home':\n {\n e.preventDefault()\n active_item = this.getFirstItem() || 0\n }\n break\n\n case 'page down':\n case 'end':\n {\n e.preventDefault()\n active_item = this.getLastItem()\n if (isNaN(active_item)) {\n active_item = total\n }\n }\n break\n\n case 'enter':\n case 'space':\n {\n if (e.target.tagName === 'A') {\n e.target.dispatchEvent(new MouseEvent('click'))\n this.setHidden()\n return // stop here, and let the browser + anchor do the rest\n }\n\n active_item = this.getCurrentActiveItem()\n\n if (\n isTrue(this.props.skip_keysearch)\n ? active_item > -1 && key !== 'space'\n : true\n ) {\n e.preventDefault()\n const result = this.selectItemAndClose(active_item, {\n fireSelectEvent: true,\n event: e,\n })\n if (result === false) {\n return // stop here if the data actually does not exit\n }\n }\n }\n break\n\n case 'esc':\n {\n this.setHidden({ event: e })\n e.preventDefault()\n }\n break\n\n case 'tab':\n {\n if (active_item > -1) {\n // If there is an active item\n // we make it possible to tab inside it (to an anchor) instead of closing the list\n const activeElement = this.getActiveElement()\n const hasFocusOnElement = Boolean(\n this.getAnchorElem(activeElement)\n )\n\n this.setState({ hasFocusOnElement })\n\n // And if there is an anchor inside our active element\n if (hasFocusOnElement) {\n e.stopPropagation()\n\n // Also, set the focus actively into the active element, if it is not from beforehand\n const currentActiveElement = getPreviousSibling(\n 'dnb-drawer-list__option',\n document.activeElement\n )\n\n if (currentActiveElement !== activeElement) {\n /**\n * Create an fake element,\n * so it's the last one we focus, within our active element.\n *\n * When the users tabs to it,\n * we return the focus the the users prev focus element, e.g. autocomplete input\n *\n * Why is this needed? Because we have our list in a portal, outside of the tab order\n */\n const createTabElem = () => {\n try {\n const elem = document.createElement('BUTTON')\n elem.style = 'opacity:0;position:absolute;'\n const focus = () => {\n prevActiveElement.focus()\n elem.removeEventListener('focus', focus)\n activeElement.removeChild(after)\n activeElement.removeChild(before)\n }\n elem.addEventListener('focus', focus)\n return elem\n } catch (e) {\n //\n }\n }\n\n const prevActiveElement = document.activeElement\n const after = createTabElem()\n const before = createTabElem()\n\n // Now, focus our active element\n activeElement.focus()\n\n const insertElem = () => {\n try {\n // Insert our fake elements\n activeElement.appendChild(after)\n activeElement.insertBefore(\n before,\n activeElement.firstChild\n )\n } catch (e) {\n //\n }\n }\n\n // check because of test\n if (typeof window.requestAnimationFrame === 'function') {\n // requestAnimationFrame is need by chromium browsers\n window.requestAnimationFrame(insertElem)\n } else {\n insertElem()\n }\n }\n\n return // stop here\n }\n\n // We may consider to close the list and set the focus it the handler\n // but also, in portal mode, we want to prevent to start the focus from the top of the page\n else if (isTrue(this.props.prevent_close)) {\n active_item = -1\n }\n }\n\n this.setHidden({ event: e })\n }\n break\n\n default:\n active_item = this.findItemByValue(keycode(e))\n break\n }\n\n if (\n active_item === -1 &&\n this._refUl.current &&\n typeof document !== 'undefined'\n ) {\n const ulElem = getPreviousSibling(\n 'dnb-drawer-list__options',\n document.activeElement\n )\n\n if (ulElem === this._refUl.current) {\n this.setState({\n showFocusRing: true,\n active_item,\n })\n\n this._refUl.current.focus({ preventScroll: true })\n dispatchCustomElementEvent(this.state, 'handle_dismiss_focus')\n }\n } else if (\n parseFloat(active_item) > -1 &&\n active_item !== this.state.active_item\n ) {\n this.setState({\n showFocusRing: false,\n })\n this.setActiveItemAndScrollToIt(active_item, {\n fireSelectEvent: true,\n event: e,\n })\n }\n }\n\n getSelectedElement = () => {\n return (\n this._refUl.current?.querySelector(\n 'li.dnb-drawer-list__option--selected'\n ) ||\n this._refUl.current || {\n getAttribute: () => null,\n }\n )\n }\n\n getCurrentSelectedItem = () => {\n const elem = this.getSelectedElement()\n return parseFloat(elem && elem.getAttribute('data-item'))\n }\n\n getActiveElement = () => {\n return (\n this._refUl.current?.querySelector(\n 'li.dnb-drawer-list__option--focus'\n ) || this.getSelectedElement()\n )\n }\n\n getCurrentActiveItem = () => {\n const elem = this.getActiveElement()\n return parseFloat(elem && elem.getAttribute('data-item'))\n }\n\n getNextActiveItem = () => {\n const elem = this.getActiveElement().nextSibling\n return parseFloat(elem && elem.getAttribute('data-item'))\n }\n\n getPrevActiveItem = () => {\n const elem = this.getActiveElement().previousSibling\n return parseFloat(elem && elem.getAttribute('data-item'))\n }\n\n getFirstItem = () => {\n const elem = this._refUl.current?.querySelector(\n 'li.dnb-drawer-list__option.first-of-type' // because of the triangle element\n )\n return parseFloat(elem && elem.getAttribute('data-item'))\n }\n\n getLastItem = () => {\n const elem = this._refUl.current?.querySelector(\n 'li.dnb-drawer-list__option.last-of-type' // because of the triangle element\n )\n return parseFloat(elem && elem.getAttribute('data-item'))\n }\n\n setOutsideClickObserver = () => {\n this.removeOutsideClickObserver()\n\n this.outsideClick = detectOutsideClick(\n [\n this.state.wrapper_element,\n this._refRoot.current,\n this._refUl.current,\n ],\n () => this.setHidden({ preventHideFocus: true }),\n { includedKeys: ['tab'] }\n )\n\n if (typeof document !== 'undefined') {\n document.addEventListener('keydown', this.onKeyDownHandler)\n document.addEventListener('keyup', this.onKeyUpHandler)\n }\n }\n\n removeOutsideClickObserver() {\n if (this.outsideClick) {\n this.outsideClick.remove()\n }\n if (typeof document !== 'undefined') {\n document.removeEventListener('keydown', this.onKeyDownHandler)\n document.removeEventListener('keyup', this.onKeyUpHandler)\n }\n }\n\n addObservers = () => {\n this.setDirectionObserver()\n this.setScrollObserver()\n this.setOutsideClickObserver()\n }\n removeObservers = () => {\n this.removeDirectionObserver()\n this.removeScrollObserver()\n this.removeOutsideClickObserver()\n }\n\n toggleVisible = (...args) => {\n return this.state.opened\n ? this.setHidden(...args)\n : this.setVisible(...args)\n }\n\n setVisible = (args = {}, onStateComplete = null) => {\n if (this.state.opened && this.state.hidden === false) {\n if (typeof onStateComplete === 'function') {\n onStateComplete(true)\n }\n return // stop\n }\n\n clearTimeout(this._showTimeout)\n clearTimeout(this._hideTimeout)\n\n this.searchCache = null\n\n const handleSingleComponentCheck = () => {\n this.setState({\n hidden: false,\n opened: true,\n })\n\n const animationDelayHandler = () => {\n DrawerListProvider.isOpen = true\n this.setState({\n isOpen: true,\n })\n\n if (typeof onStateComplete === 'function') {\n onStateComplete(true)\n }\n\n this.setActiveState(true)\n }\n\n if (isTrue(this.props.no_animation)) {\n // our tests want no delay!\n if (process?.env.NODE_ENV === 'test') {\n animationDelayHandler()\n } else {\n // We have to have still a delay, to ensure the user can press enter to toggle the open state\n clearTimeout(this._showTimeout)\n this._showTimeout = setTimeout(animationDelayHandler, 0) // ensure we do not set isOpen true before the keydown handler has run\n }\n } else {\n clearTimeout(this._showTimeout)\n this._showTimeout = setTimeout(\n animationDelayHandler,\n DrawerListProvider.blurDelay\n ) // wait until animation is over\n }\n\n const { selected_item, active_item } = this.state\n dispatchCustomElementEvent(this.state, 'on_show', {\n ...args,\n data: getEventData(\n parseFloat(selected_item) > -1 ? selected_item : active_item,\n this.state.data\n ),\n attributes: this.attributes,\n ulElement: this._refUl.current,\n })\n\n this.setActiveItemAndScrollToIt(\n parseFloat(active_item) > -1 ? active_item : -1,\n { scrollTo: false }\n )\n }\n\n // If a user clicks on a second drawer list\n // we ensure we first close it, before we open it\n if (DrawerListProvider.isOpen && !isTrue(this.props.no_animation)) {\n clearTimeout(this._hideTimeout)\n this._hideTimeout = setTimeout(\n handleSingleComponentCheck,\n DrawerListProvider.blurDelay\n )\n } else {\n handleSingleComponentCheck()\n }\n }\n\n setHidden = (args = {}, onStateComplete = null) => {\n if (!this.state.opened || isTrue(this.props.prevent_close)) {\n if (typeof onStateComplete === 'function') {\n onStateComplete(false)\n }\n return // stop here\n }\n\n clearTimeout(this._showTimeout)\n clearTimeout(this._hideTimeout)\n\n const { selected_item, active_item } = this.state\n const res = dispatchCustomElementEvent(this.state, 'on_hide', {\n ...args,\n data: getEventData(\n parseFloat(selected_item) > -1 ? selected_item : active_item,\n this.state.data\n ),\n attributes: this.attributes,\n })\n\n if (res !== false) {\n this.setState({\n opened: false,\n })\n\n const delayHandler = () => {\n this.removeObservers()\n\n this.setState({\n hidden: true,\n isOpen: false,\n })\n if (typeof onStateComplete === 'function') {\n onStateComplete(false)\n }\n DrawerListProvider.isOpen = false\n\n this.setActiveState(false)\n }\n\n if (isTrue(this.props.no_animation)) {\n delayHandler()\n } else {\n clearTimeout(this._hideTimeout)\n this._hideTimeout = setTimeout(\n delayHandler,\n DrawerListProvider.blurDelay\n ) // wait until animation is over\n }\n }\n }\n\n setActiveState(active) {\n if (typeof document !== 'undefined') {\n try {\n if (active) {\n document.documentElement.setAttribute(\n 'data-dnb-drawer-list-active',\n String(this.props.id)\n )\n } else {\n document.documentElement.removeAttribute(\n 'data-dnb-drawer-list-active'\n )\n }\n } catch (e) {\n warn(\n 'DrawerList: Error on set \"data-dnb-drawer-list-active\" by using element.setAttribute()',\n e\n )\n }\n }\n }\n\n setDataHandler = (\n data,\n cb = null,\n { overwriteOriginalData = false } = {}\n ) => {\n if (!data) {\n return\n }\n\n if (typeof data === 'function') {\n data = getData(data)\n }\n\n data = normalizeData(data)\n\n this.setState(\n {\n data,\n original_data: overwriteOriginalData\n ? data\n : this.state.original_data,\n },\n () => {\n this.refreshScrollObserver()\n typeof cb === 'function' && cb(data)\n }\n )\n\n return this\n }\n\n setStateHandler = (state, cb = null) => {\n this.setState(\n {\n ...state,\n },\n cb\n )\n\n return this\n }\n\n selectItemAndClose = (itemToSelect, args = {}) => {\n args.closeOnSelection = true\n return this.selectItem(itemToSelect, args)\n }\n\n selectItem = (\n itemToSelect,\n {\n fireSelectEvent = false,\n event = null,\n closeOnSelection = false,\n } = {}\n ) => {\n // because of our delay on dispatching the event\n // make a copy of it, so we don't break the synthetic event\n if (event && typeof event.persist === 'function') {\n event.persist()\n }\n\n // if no value is set on start and we confirm, we get -1\n if (itemToSelect === -1) {\n itemToSelect = null\n }\n\n const data = getEventData(itemToSelect, this.state.data) || null\n const value = getSelectedItemValue(itemToSelect, this.state)\n const attributes = this.attributes\n const attr = {\n selected_item: itemToSelect,\n value,\n data,\n event,\n attributes,\n }\n\n const res = dispatchCustomElementEvent(\n this.state,\n 'on_pre_change',\n attr\n )\n\n if (res === false) {\n return res // stop here\n }\n\n if (hasSelectedText()) {\n const elem = getSelectedElement()\n const isInput = getPreviousSibling('dnb-input', elem)\n if (!isInput) {\n return // stop here\n }\n }\n\n const { keep_open, prevent_selection } = this.props\n\n const doCallOnChange =\n parseFloat(itemToSelect) > -1 &&\n itemToSelect !== this.state.selected_item\n const onSelectionIsComplete = () => {\n if (doCallOnChange) {\n dispatchCustomElementEvent(this.state, 'on_change', attr)\n }\n if (fireSelectEvent) {\n dispatchCustomElementEvent(this.state, 'on_select', {\n ...attr,\n active_item: itemToSelect,\n })\n }\n\n if (closeOnSelection && !isTrue(keep_open)) {\n this.setHidden()\n }\n }\n\n if (isTrue(prevent_selection)) {\n onSelectionIsComplete()\n } else {\n this.setState(\n {\n selected_item: itemToSelect,\n active_item: itemToSelect,\n },\n onSelectionIsComplete\n )\n }\n }\n\n render() {\n return (\n <DrawerListContext.Provider\n value={{\n ...this.context,\n drawerList: {\n attributes: this.attributes,\n _refRoot: this._refRoot,\n _refShell: this._refShell,\n _refUl: this._refUl,\n _refTriangle: this._refTriangle,\n _rootElem: this._rootElem,\n getActiveElement: this.getActiveElement,\n setData: this.setDataHandler,\n setState: this.setStateHandler,\n setWrapperElement: this.setWrapperElement,\n addObservers: this.addObservers,\n removeObservers: this.removeObservers,\n setVisible: this.setVisible,\n setHidden: this.setHidden,\n toggleVisible: this.toggleVisible,\n selectItem: this.selectItem,\n selectItemAndClose: this.selectItemAndClose,\n scrollToItem: this.scrollToItem,\n setActiveItemAndScrollToIt: this.setActiveItemAndScrollToIt,\n ...this.state,\n },\n }}\n >\n {this.props.children}\n </DrawerListContext.Provider>\n )\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"DrawerListProvider.js","names":["React","PropTypes","keycode","Context","warn","isTrue","roundToNearest","getClosestScrollViewElement","detectOutsideClick","dispatchCustomElementEvent","getPreviousSibling","getOffsetTop","getOffsetLeft","hasSelectedText","getSelectedElement","getData","normalizeData","findClosest","getSelectedItemValue","parseContentTitle","getEventData","prepareStartupState","prepareDerivedState","drawerListPropTypes","drawerListDefaultProps","drawerListProviderPropTypes","drawerListProviderDefaultProps","DrawerListContext","disableBodyScroll","enableBodyScroll","DrawerListProvider","PureComponent","getDerivedStateFromProps","props","state","constructor","_this","this","_defineProperty","_refUl","current","_bodyLockIsEnabled","_refShell","spaceToLeft","spaceToRight","window","innerWidth","offsetWidth","triangleStyle","_refTriangle","style","shellStyle","transform","Math","abs","right","left","e","active_item","scrollTo","element","arguments","length","undefined","clearTimeout","_scrollTimeout","setTimeout","parseFloat","ulElement","liElement","getActiveElement","top","offsetTop","IS_TEST","scrollBehavior","behavior","scrollTop","prevent_focus","focus","fireSelectEvent","event","setState","_document$activeEleme","document","activeElement","tagName","_this$_refUl$current","preventScroll","selected_item","attributes","ret","value","data","no_animation","scrollToItem","wrapper_element","querySelector","we","meta","cmd","metaKey","ctrl","ctrlKey","shift","shiftKey","alt","altKey","setMetaKey","key","test","prevent_close","isSameDrawer","ulElem","getAttribute","id","isOpen","ignore_events","isNaN","total","preventDefault","direction","getFirstItem","getPrevActiveItem","getLastItem","getNextActiveItem","target","dispatchEvent","MouseEvent","setHidden","getCurrentActiveItem","skip_keysearch","result","selectItemAndClose","hasFocusOnElement","Boolean","getAnchorElem","stopPropagation","currentActiveElement","createTabElem","elem","createElement","prevActiveElement","removeEventListener","removeChild","after","before","addEventListener","insertElem","appendChild","insertBefore","firstChild","requestAnimationFrame","findItemByValue","showFocusRing","setActiveItemAndScrollToIt","_this$_refUl$current2","_this$_refUl$current3","nextSibling","previousSibling","_this$_refUl$current4","_this$_refUl$current5","removeOutsideClickObserver","outsideClick","_refRoot","preventHideFocus","includedKeys","onKeyDownHandler","onKeyUpHandler","setDirectionObserver","setScrollObserver","setOutsideClickObserver","removeDirectionObserver","removeScrollObserver","opened","setVisible","args","onStateComplete","hidden","_showTimeout","_hideTimeout","searchCache","handleSingleComponentCheck","animationDelayHandler","setActiveState","_process","process","env","NODE_ENV","blurDelay","_objectSpread","res","delayHandler","removeObservers","cb","overwriteOriginalData","original_data","refreshScrollObserver","itemToSelect","closeOnSelection","selectItem","persist","attr","isInput","keep_open","prevent_selection","doCallOnChange","onSelectionIsComplete","cache_hash","createRef","componentDidMount","componentDidUpdate","prevProps","_document$activeEleme2","_this$_refUl$current6","componentWillUnmount","_directionTimeout","itemSpots","reduce","acc","cur","i","_this$_refUl$current7","itemSpotsCount","Object","keys","closestToTop","closestToBottom","tmpToTop","tmpToBottom","setOnScroll","counts","offsetHeight","enable_body_lock","scrollable","min_height","max_height","on_resize","page_offset","observer_element","useBodyLock","isScrollable","customMinHeight","customMaxHeight","customElem","directionOffset","spaceToTopOffset","spaceToBottomOffset","renderDirection","_window","_window$requestAnimat","rootElem","documentElement","pageYOffset","spaceToTop","spaceToBottom","clientHeight","max","vh","visualViewport","height","innerHeight","call","correctHiddenView","setDirection","_rootElem","enableBodyLock","index","String","toLowerCase","changedOrderFor","itemData","str","separator","removeNumericOnlyValues","firstLetter","push","found","disableBodyLock","_this$_rootElem","remove","active","setAttribute","removeAttribute","render","Provider","context","drawerList","setData","setDataHandler","setStateHandler","setWrapperElement","addObservers","toggleVisible","children","propTypes","node","isRequired"],"sources":["../../../../src/fragments/drawer-list/DrawerListProvider.js"],"sourcesContent":["/**\n * Web DrawerList Provider\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 keycode from 'keycode'\nimport Context from '../../shared/Context'\nimport {\n warn,\n isTrue,\n roundToNearest,\n getClosestScrollViewElement,\n detectOutsideClick,\n dispatchCustomElementEvent,\n getPreviousSibling,\n} from '../../shared/component-helper'\nimport {\n getOffsetTop,\n getOffsetLeft,\n hasSelectedText,\n getSelectedElement,\n} from '../../shared/helpers'\nimport {\n getData,\n normalizeData,\n findClosest,\n getSelectedItemValue,\n parseContentTitle,\n getEventData,\n prepareStartupState,\n prepareDerivedState,\n drawerListPropTypes,\n drawerListDefaultProps,\n drawerListProviderPropTypes,\n drawerListProviderDefaultProps,\n} from './DrawerListHelpers'\nimport DrawerListContext from './DrawerListContext'\nimport {\n disableBodyScroll,\n enableBodyScroll,\n} from '../../components/modal/bodyScrollLock'\n\nexport default class DrawerListProvider extends React.PureComponent {\n static contextType = Context\n\n static propTypes = {\n ...drawerListPropTypes,\n ...drawerListProviderPropTypes,\n children: PropTypes.node.isRequired,\n }\n\n static defaultProps = {\n ...drawerListDefaultProps,\n ...drawerListProviderDefaultProps,\n }\n\n static blurDelay = 201 // some ms more than \"DrawerListSlideDown 200ms\"\n\n static getDerivedStateFromProps(props, state) {\n return prepareDerivedState(props, state)\n }\n\n constructor(props) {\n super(props)\n\n this.attributes = {}\n this.state = {\n tagName: 'dnb-drawer-list',\n cache_hash: '',\n active_item: null,\n selected_item: null,\n ignore_events: false,\n ...prepareStartupState(props),\n }\n\n this._refRoot = React.createRef()\n this._refShell = React.createRef()\n this._refUl = React.createRef()\n this._refTriangle = React.createRef()\n }\n\n componentDidMount() {\n if (isTrue(this.props.opened)) {\n this.setVisible()\n }\n }\n\n componentDidUpdate(prevProps) {\n if (\n this.props.opened !== null &&\n this.props.opened !== prevProps.opened\n ) {\n if (isTrue(this.props.opened)) {\n this.setVisible()\n } else if (isTrue(this.props.opened) === false) {\n this.setHidden()\n }\n }\n\n if (this.state.opened) {\n if (\n this.props.data !== prevProps.data &&\n typeof document !== 'undefined' &&\n document.activeElement?.tagName === 'BODY'\n ) {\n this._refUl.current?.focus()\n }\n }\n }\n\n componentWillUnmount() {\n clearTimeout(this._showTimeout)\n clearTimeout(this._hideTimeout)\n clearTimeout(this._scrollTimeout)\n clearTimeout(this._directionTimeout)\n\n this.removeObservers()\n this.setActiveState(false)\n }\n\n refreshScrollObserver() {\n if (typeof window === 'undefined' || !this._refUl.current) {\n return\n }\n\n this.itemSpots = this.state.data.reduce((acc, cur, i) => {\n const element = this._refUl.current?.querySelector(\n `li.dnb-drawer-list__option:nth-of-type(${i + 1})`\n )\n if (element) {\n acc[element.offsetTop] = {\n i,\n }\n }\n return acc\n }, {})\n\n this.itemSpotsCount = Object.keys(this.itemSpots).length\n }\n\n setScrollObserver() {\n if (typeof window === 'undefined' || !this._refUl.current) {\n return\n }\n\n this.removeScrollObserver()\n this.itemSpotsCount = 1 // to make sure we recalculate the spots\n\n try {\n let closestToTop = null,\n closestToBottom = null,\n tmpToTop,\n tmpToBottom\n\n this.setOnScroll = () => {\n if (!this._refUl.current) {\n return // stop here\n }\n\n // recalculate the spots\n if (this.itemSpotsCount <= 1) {\n this.refreshScrollObserver()\n }\n\n const counts = Object.keys(this.itemSpots)\n closestToBottom = findClosest(\n counts,\n this._refUl.current.scrollTop + this._refUl.current.offsetHeight\n )\n closestToTop = findClosest(counts, this._refUl.current.scrollTop)\n if (this.itemSpots[closestToTop] && closestToTop !== tmpToTop) {\n this.setState({\n closestToTop: this.itemSpots[closestToTop].i,\n })\n }\n // we do this because we want the arrow\n // to change visually\n if (\n closestToBottom !== tmpToBottom &&\n this.itemSpots[closestToBottom]\n ) {\n this.setState({\n closestToBottom: this.itemSpots[closestToBottom].i,\n })\n }\n tmpToTop = closestToTop\n tmpToBottom = closestToBottom\n }\n\n this._refUl.current.addEventListener('scroll', this.setOnScroll)\n this.setOnScroll()\n } catch (e) {\n warn('List could not set onScroll:', e)\n }\n }\n\n removeScrollObserver() {\n if (typeof window !== 'undefined' && this.setOnScroll) {\n window.removeEventListener('resize', this.setOnScroll)\n this.setOnScroll = null\n }\n }\n\n enableBodyLock = () => {\n if (this._refUl.current) {\n this._bodyLockIsEnabled = true\n disableBodyScroll(this._refUl.current)\n }\n }\n\n disableBodyLock = () => {\n if (this._bodyLockIsEnabled && this._refUl.current) {\n this._bodyLockIsEnabled = null\n enableBodyScroll(this._refUl.current)\n }\n }\n\n setDirectionObserver() {\n if (\n typeof window === 'undefined' ||\n typeof document === 'undefined' ||\n !(this.state.wrapper_element || this._refRoot.current)\n ) {\n return\n }\n\n const {\n enable_body_lock,\n scrollable,\n min_height,\n max_height,\n on_resize,\n page_offset,\n observer_element,\n } = this.props\n\n // const skipPortal = isTrue(skip_portal)\n const useBodyLock = isTrue(enable_body_lock)\n const isScrollable = isTrue(scrollable)\n const customMinHeight = parseFloat(min_height) * 16\n const customMaxHeight = parseFloat(max_height) || 0\n\n let customElem =\n typeof observer_element === 'string'\n ? document.querySelector(observer_element)\n : null\n\n if (!customElem) {\n customElem = getClosestScrollViewElement(this._refRoot.current)\n }\n\n // In case we have one before hand\n this.removeDirectionObserver()\n\n const directionOffset = 96\n const spaceToTopOffset = 2 * 16\n const spaceToBottomOffset = 2 * 16\n const elem = this.state.wrapper_element || this._refRoot.current\n\n const renderDirection = () => {\n try {\n // make calculation for both direction and height\n const rootElem = customElem || document.documentElement\n\n const pageYOffset = !isNaN(parseFloat(page_offset))\n ? parseFloat(page_offset)\n : rootElem.scrollTop /* pageYOffset */\n const spaceToTop =\n getOffsetTop(elem) + elem.offsetHeight - pageYOffset\n const spaceToBottom =\n rootElem.clientHeight /* innerHeight */ -\n (getOffsetTop(elem) + elem.offsetHeight) +\n pageYOffset\n\n const direction =\n Math.max(spaceToBottom - directionOffset, directionOffset) <\n customMinHeight && spaceToTop > customMinHeight\n ? 'top'\n : 'bottom'\n\n // make sure we never get higher than we have defined in CSS\n let max_height = customMaxHeight\n if (!(max_height > 0)) {\n max_height =\n direction === 'top'\n ? spaceToTop -\n ((this.state.wrapper_element || this._refRoot.current)\n .offsetHeight || 0) -\n spaceToTopOffset\n : spaceToBottom - spaceToBottomOffset\n\n // get the view port height, like in CSS\n let vh = 0\n if (typeof window.visualViewport !== 'undefined') {\n vh = window.visualViewport.height\n } else {\n vh = Math.max(\n document.documentElement.clientHeight,\n window.innerHeight || 0\n )\n }\n\n // like defined in CSS\n vh = vh * (isScrollable ? 0.7 : 0.9)\n\n if (max_height > vh) {\n max_height = vh\n }\n\n // convert px to rem\n max_height = roundToNearest(max_height, 8) / 16\n }\n\n // update the states\n if (this.props.direction === 'auto') {\n this.setState({\n direction,\n })\n }\n this.setState({\n max_height,\n })\n\n // call the event, if set\n if (on_resize) {\n dispatchCustomElementEvent(this.state, 'on_resize', {\n direction,\n max_height,\n })\n }\n } catch (e) {\n warn('List could not set onResize:', e)\n }\n\n // React v18 needs a delay to make the calculation during first render\n window?.requestAnimationFrame?.(this.correctHiddenView) ||\n this.correctHiddenView()\n }\n\n // debounce\n this.setDirection = () => {\n clearTimeout(this._directionTimeout)\n this._directionTimeout = setTimeout(renderDirection, 50)\n }\n\n // customElem can be a dnb-scroll-view\n this._rootElem = customElem || window\n this._rootElem.addEventListener('scroll', this.setDirection)\n\n // this fixes iOS softkeyboard\n if (typeof window.visualViewport !== 'undefined') {\n window.visualViewport.addEventListener('scroll', this.setDirection)\n window.visualViewport.addEventListener('resize', this.setDirection)\n } else {\n window.addEventListener('resize', this.setDirection)\n }\n\n if (useBodyLock) {\n this.enableBodyLock()\n }\n\n this.refreshScrollObserver()\n\n renderDirection()\n }\n\n /**\n * Deprecated\n * We should replace all the logic of handling left/right aligned\n * and setting the position, with a PopupMenu component,\n * which uses the logic form Tooltip.\n *\n * EDS-246\n */\n correctHiddenView = () => {\n // We use \"style.transform\", because it is a independent \"and quick\" solution\n // we could send down spaceToLeft and spaceToRight and set it with React's \"style\" prop in future\n if (!this._refShell.current || !this._refUl.current) {\n return // stop here\n }\n\n try {\n const spaceToLeft = getOffsetLeft(this._refUl.current)\n const spaceToRight =\n window.innerWidth -\n (getOffsetLeft(this._refUl.current) +\n this._refUl.current.offsetWidth)\n\n const triangleStyle = this._refTriangle.current.style\n const shellStyle = this._refShell.current.style\n\n // correct left side\n if (spaceToLeft < 0) {\n shellStyle.transform = `translateX(${Math.abs(\n spaceToLeft / 16\n )}rem)`\n triangleStyle.right = `${Math.abs(spaceToLeft / 16)}rem`\n\n // correct right side\n } else if (spaceToRight < 0) {\n shellStyle.transform = `translateX(${spaceToRight / 16}rem)`\n triangleStyle.left = `${Math.abs(spaceToRight / 16)}rem`\n } else {\n if (shellStyle.transform) {\n shellStyle.transform = ''\n triangleStyle.left = 'auto'\n triangleStyle.right = 'auto'\n }\n }\n } catch (e) {\n //\n }\n }\n\n // this gives us the possibility to quickly search for an item\n // by simply pressing any alphabetical key\n findItemByValue(value) {\n if (isTrue(this.props.skip_keysearch)) {\n return\n }\n\n let index = -1\n\n try {\n value = String(value).toLowerCase()\n\n // delete the cache\n // if there are several of the same type\n if (this.changedOrderFor !== value) {\n this.searchCache = null\n this.changedOrderFor = null\n }\n\n this.searchCache =\n this.searchCache ||\n this.state.data.reduce((acc, itemData, i) => {\n const str = String(\n parseContentTitle(itemData, {\n separator: ' ',\n removeNumericOnlyValues: true,\n })\n )\n\n // take the first letter\n const firstLetter = String(str[0]).toLowerCase()\n acc[firstLetter] = acc[firstLetter] || []\n acc[firstLetter].push({\n i,\n })\n\n return acc\n }, {})\n\n const found = this.searchCache[value]\n index = found && found[0] && found[0].i > -1 ? found[0].i : -1\n\n // if there are several of the same type\n if (found && found.length > 1) {\n found.push(found.shift())\n this.changedOrderFor = value\n }\n } catch (e) {\n warn('List could not findItemByValue:', e)\n }\n\n return index\n }\n\n scrollToItem = (\n active_item,\n { scrollTo = true, element = null } = {}\n ) => {\n clearTimeout(this._scrollTimeout)\n this._scrollTimeout = setTimeout(() => {\n // try to scroll to item\n if (this._refUl.current && parseFloat(active_item) > -1) {\n try {\n const ulElement = this._refUl.current\n const liElement = element || this.getActiveElement()\n if (liElement) {\n const top = liElement.offsetTop\n if (ulElement.scrollTo) {\n if (scrollTo === false || window.IS_TEST) {\n ulElement.style.scrollBehavior = 'auto'\n }\n ulElement.scrollTo({\n top,\n behavior: scrollTo ? 'smooth' : 'auto',\n })\n if (scrollTo === false) {\n ulElement.style.scrollBehavior = 'smooth'\n }\n } else if (ulElement.scrollTop) {\n ulElement.scrollTop = top\n }\n\n if (!isTrue(this.props.prevent_focus) && liElement) {\n liElement.focus()\n dispatchCustomElementEvent(this, 'on_show_focus', {\n element: liElement,\n })\n }\n } else {\n warn('The DrawerList item was not a DOM Element')\n }\n } catch (e) {\n warn('List could not scroll into element:', e)\n }\n }\n }, 1) // to make sure we are after all DOM updates, else we don't get this scrolling\n }\n\n /**\n * During opening (Dropdown, Autocomplete),\n * and if noting is selected,\n * set scroll to item.\n *\n * @param {number} active_item The item to set as active\n * @param {object} param1\n * @property {boolean} fireSelectEvent Whether the onSelect event should get emitted\n * @property {boolean} scrollTo Whether the list should scroll to the new active item nor not\n * @property {event} event The event object to forward to the emitted events\n */\n setActiveItemAndScrollToIt = (\n active_item,\n { fireSelectEvent = false, scrollTo = true, event = null } = {}\n ) => {\n this.setState({ active_item }, () => {\n if (parseFloat(active_item) === -1) {\n // Select the first item to NVDA is more easily navigatable,\n // without using the alt + arrow key\n // else we set the focus on the \"ul\" element\n if (document.activeElement?.tagName !== 'INPUT') {\n this._refUl.current?.focus({ preventScroll: true })\n }\n\n dispatchCustomElementEvent(this, 'on_show_focus', {\n element: this._refUl.current,\n })\n } else if (parseFloat(active_item) > -1) {\n const { selected_item } = this.state\n\n if (fireSelectEvent) {\n const attributes = this.attributes\n const ret = dispatchCustomElementEvent(this.state, 'on_select', {\n active_item,\n value: getSelectedItemValue(selected_item, this.state),\n data: getEventData(active_item, this.state.data),\n event,\n attributes,\n })\n if (ret === false) {\n return // stop here!\n }\n }\n\n if (isTrue(this.props.no_animation)) {\n scrollTo = false\n }\n\n this.scrollToItem(active_item, { scrollTo })\n }\n })\n }\n\n removeDirectionObserver() {\n this.disableBodyLock()\n\n clearTimeout(this._directionTimeout)\n if (typeof window !== 'undefined' && this.setDirection) {\n this._rootElem?.removeEventListener('scroll', this.setDirection)\n\n // this fixes iOS softkeyboard\n if (typeof window.visualViewport !== 'undefined') {\n window.visualViewport.removeEventListener(\n 'scroll',\n this.setDirection\n )\n window.visualViewport.removeEventListener(\n 'resize',\n this.setDirection\n )\n } else {\n window.removeEventListener('resize', this.setDirection)\n }\n\n this.setDirection = null\n }\n }\n\n setWrapperElement = (wrapper_element = this.props.wrapper_element) => {\n if (\n typeof wrapper_element === 'string' &&\n typeof document !== 'undefined'\n ) {\n wrapper_element = document.querySelector(wrapper_element)\n }\n\n if (wrapper_element !== this.state.wrapper_element) {\n this.setState({\n wrapper_element,\n })\n }\n\n return this\n }\n\n getAnchorElem(activeElement) {\n try {\n return activeElement.querySelector('a:first-of-type')\n } catch (e) {\n return null\n }\n }\n\n setMetaKey = (e) => {\n const we =\n typeof window !== 'undefined' && window.event ? window.event : e\n this.meta = {\n cmd: we.metaKey,\n ctrl: we.ctrlKey,\n shift: we.shiftKey,\n alt: we.altKey,\n }\n }\n\n onKeyUpHandler = (e) => {\n this.setMetaKey(e)\n }\n\n onKeyDownHandler = (e) => {\n const key = keycode(e)\n\n if (/command|alt|shift|ctrl/.test(key)) {\n this.setMetaKey(e)\n }\n\n dispatchCustomElementEvent(this.state, 'on_key_down', {\n event: e,\n key,\n })\n\n // To allow copy\n // But makes VO not reading our list items once command key is pressed\n // if (this.meta.cmd || this.meta.ctrl || this.meta.shift || this.meta.alt) {\n // return // stop here\n // }\n\n // stop here if the focus is not set\n // and the drawer is opened by default\n if (\n isTrue(this.props.prevent_close)\n // TODO: Has to be worked on better!\n // !isTrue(this.props.prevent_focus)\n ) {\n let isSameDrawer = false\n try {\n const ulElem = getPreviousSibling(\n 'dnb-drawer-list__options',\n document.activeElement\n )\n\n isSameDrawer =\n ulElem === this._refUl.current ||\n ulElem?.getAttribute('id') === this.props.id\n } catch (e) {\n warn(e)\n }\n if (!isSameDrawer && key !== 'tab') {\n return // stop here\n }\n }\n\n if (!this.state.isOpen) {\n return // stop here\n }\n\n if (isTrue(this.state.ignore_events) && key !== 'tab') {\n return // stop here\n }\n\n let active_item = parseFloat(this.state.active_item)\n\n if (isNaN(active_item)) {\n active_item = -1\n }\n\n const total = this.state.data && this.state.data.length - 1\n\n switch (key) {\n case 'up':\n {\n e.preventDefault()\n\n if (\n this.state.direction === 'bottom' &&\n this.state.active_item === this.getFirstItem()\n ) {\n active_item = -1\n } else {\n active_item = this.getPrevActiveItem()\n if (isNaN(active_item)) {\n active_item = this.getLastItem()\n }\n }\n }\n break\n\n case 'down':\n {\n e.preventDefault()\n\n if (\n this.state.direction === 'top' &&\n this.state.active_item === this.getLastItem()\n ) {\n active_item = -1\n } else {\n active_item = this.getNextActiveItem()\n\n if (isNaN(active_item)) {\n active_item = this.getFirstItem()\n }\n }\n }\n break\n\n case 'page up':\n case 'home':\n {\n e.preventDefault()\n active_item = this.getFirstItem() || 0\n }\n break\n\n case 'page down':\n case 'end':\n {\n e.preventDefault()\n active_item = this.getLastItem()\n if (isNaN(active_item)) {\n active_item = total\n }\n }\n break\n\n case 'enter':\n case 'space':\n {\n if (e.target.tagName === 'A') {\n e.target.dispatchEvent(new MouseEvent('click'))\n this.setHidden()\n return // stop here, and let the browser + anchor do the rest\n }\n\n active_item = this.getCurrentActiveItem()\n\n if (\n isTrue(this.props.skip_keysearch)\n ? active_item > -1 && key !== 'space'\n : true\n ) {\n e.preventDefault()\n const result = this.selectItemAndClose(active_item, {\n fireSelectEvent: true,\n event: e,\n })\n if (result === false) {\n return // stop here if the data actually does not exit\n }\n }\n }\n break\n\n case 'esc':\n {\n this.setHidden({ event: e })\n e.preventDefault()\n }\n break\n\n case 'tab':\n {\n if (active_item > -1) {\n // If there is an active item\n // we make it possible to tab inside it (to an anchor) instead of closing the list\n const activeElement = this.getActiveElement()\n const hasFocusOnElement = Boolean(\n this.getAnchorElem(activeElement)\n )\n\n this.setState({ hasFocusOnElement })\n\n // And if there is an anchor inside our active element\n if (hasFocusOnElement) {\n e.stopPropagation()\n\n // Also, set the focus actively into the active element, if it is not from beforehand\n const currentActiveElement = getPreviousSibling(\n 'dnb-drawer-list__option',\n document.activeElement\n )\n\n if (currentActiveElement !== activeElement) {\n /**\n * Create an fake element,\n * so it's the last one we focus, within our active element.\n *\n * When the users tabs to it,\n * we return the focus the users prev focus element, e.g. autocomplete input\n *\n * Why is this needed? Because we have our list in a portal, outside of the tab order\n */\n const createTabElem = () => {\n try {\n const elem = document.createElement('BUTTON')\n elem.style = 'opacity:0;position:absolute;'\n const focus = () => {\n prevActiveElement.focus()\n elem.removeEventListener('focus', focus)\n activeElement.removeChild(after)\n activeElement.removeChild(before)\n }\n elem.addEventListener('focus', focus)\n return elem\n } catch (e) {\n //\n }\n }\n\n const prevActiveElement = document.activeElement\n const after = createTabElem()\n const before = createTabElem()\n\n // Now, focus our active element\n activeElement.focus()\n\n const insertElem = () => {\n try {\n // Insert our fake elements\n activeElement.appendChild(after)\n activeElement.insertBefore(\n before,\n activeElement.firstChild\n )\n } catch (e) {\n //\n }\n }\n\n // check because of test\n if (typeof window.requestAnimationFrame === 'function') {\n // requestAnimationFrame is need by chromium browsers\n window.requestAnimationFrame(insertElem)\n } else {\n insertElem()\n }\n }\n\n return // stop here\n }\n\n // We may consider to close the list and set the focus it the handler\n // but also, in portal mode, we want to prevent to start the focus from the top of the page\n else if (isTrue(this.props.prevent_close)) {\n active_item = -1\n }\n }\n\n this.setHidden({ event: e })\n }\n break\n\n default:\n active_item = this.findItemByValue(keycode(e))\n break\n }\n\n if (\n active_item === -1 &&\n this._refUl.current &&\n typeof document !== 'undefined'\n ) {\n const ulElem = getPreviousSibling(\n 'dnb-drawer-list__options',\n document.activeElement\n )\n\n if (ulElem === this._refUl.current) {\n this.setState({\n showFocusRing: true,\n active_item,\n })\n\n this._refUl.current.focus({ preventScroll: true })\n dispatchCustomElementEvent(this.state, 'handle_dismiss_focus')\n }\n } else if (\n parseFloat(active_item) > -1 &&\n active_item !== this.state.active_item\n ) {\n this.setState({\n showFocusRing: false,\n })\n this.setActiveItemAndScrollToIt(active_item, {\n fireSelectEvent: true,\n event: e,\n })\n }\n }\n\n getSelectedElement = () => {\n return (\n this._refUl.current?.querySelector(\n 'li.dnb-drawer-list__option--selected'\n ) ||\n this._refUl.current || {\n getAttribute: () => null,\n }\n )\n }\n\n getCurrentSelectedItem = () => {\n const elem = this.getSelectedElement()\n return parseFloat(elem && elem.getAttribute('data-item'))\n }\n\n getActiveElement = () => {\n return (\n this._refUl.current?.querySelector(\n 'li.dnb-drawer-list__option--focus'\n ) || this.getSelectedElement()\n )\n }\n\n getCurrentActiveItem = () => {\n const elem = this.getActiveElement()\n return parseFloat(elem && elem.getAttribute('data-item'))\n }\n\n getNextActiveItem = () => {\n const elem = this.getActiveElement().nextSibling\n return parseFloat(elem && elem.getAttribute('data-item'))\n }\n\n getPrevActiveItem = () => {\n const elem = this.getActiveElement().previousSibling\n return parseFloat(elem && elem.getAttribute('data-item'))\n }\n\n getFirstItem = () => {\n const elem = this._refUl.current?.querySelector(\n 'li.dnb-drawer-list__option.first-of-type' // because of the triangle element\n )\n return parseFloat(elem && elem.getAttribute('data-item'))\n }\n\n getLastItem = () => {\n const elem = this._refUl.current?.querySelector(\n 'li.dnb-drawer-list__option.last-of-type' // because of the triangle element\n )\n return parseFloat(elem && elem.getAttribute('data-item'))\n }\n\n setOutsideClickObserver = () => {\n this.removeOutsideClickObserver()\n\n this.outsideClick = detectOutsideClick(\n [\n this.state.wrapper_element,\n this._refRoot.current,\n this._refUl.current,\n ],\n () => this.setHidden({ preventHideFocus: true }),\n { includedKeys: ['tab'] }\n )\n\n if (typeof document !== 'undefined') {\n document.addEventListener('keydown', this.onKeyDownHandler)\n document.addEventListener('keyup', this.onKeyUpHandler)\n }\n }\n\n removeOutsideClickObserver() {\n if (this.outsideClick) {\n this.outsideClick.remove()\n }\n if (typeof document !== 'undefined') {\n document.removeEventListener('keydown', this.onKeyDownHandler)\n document.removeEventListener('keyup', this.onKeyUpHandler)\n }\n }\n\n addObservers = () => {\n this.setDirectionObserver()\n this.setScrollObserver()\n this.setOutsideClickObserver()\n }\n removeObservers = () => {\n this.removeDirectionObserver()\n this.removeScrollObserver()\n this.removeOutsideClickObserver()\n }\n\n toggleVisible = (...args) => {\n return this.state.opened\n ? this.setHidden(...args)\n : this.setVisible(...args)\n }\n\n setVisible = (args = {}, onStateComplete = null) => {\n if (this.state.opened && this.state.hidden === false) {\n if (typeof onStateComplete === 'function') {\n onStateComplete(true)\n }\n return // stop\n }\n\n clearTimeout(this._showTimeout)\n clearTimeout(this._hideTimeout)\n\n this.searchCache = null\n\n const handleSingleComponentCheck = () => {\n this.setState({\n hidden: false,\n opened: true,\n })\n\n const animationDelayHandler = () => {\n DrawerListProvider.isOpen = true\n this.setState({\n isOpen: true,\n })\n\n if (typeof onStateComplete === 'function') {\n onStateComplete(true)\n }\n\n this.setActiveState(true)\n }\n\n if (isTrue(this.props.no_animation)) {\n // our tests want no delay!\n if (process?.env.NODE_ENV === 'test') {\n animationDelayHandler()\n } else {\n // We have to have still a delay, to ensure the user can press enter to toggle the open state\n clearTimeout(this._showTimeout)\n this._showTimeout = setTimeout(animationDelayHandler, 0) // ensure we do not set isOpen true before the keydown handler has run\n }\n } else {\n clearTimeout(this._showTimeout)\n this._showTimeout = setTimeout(\n animationDelayHandler,\n DrawerListProvider.blurDelay\n ) // wait until animation is over\n }\n\n const { selected_item, active_item } = this.state\n dispatchCustomElementEvent(this.state, 'on_show', {\n ...args,\n data: getEventData(\n parseFloat(selected_item) > -1 ? selected_item : active_item,\n this.state.data\n ),\n attributes: this.attributes,\n ulElement: this._refUl.current,\n })\n\n this.setActiveItemAndScrollToIt(\n parseFloat(active_item) > -1 ? active_item : -1,\n { scrollTo: false }\n )\n }\n\n // If a user clicks on a second drawer list\n // we ensure we first close it, before we open it\n if (DrawerListProvider.isOpen && !isTrue(this.props.no_animation)) {\n clearTimeout(this._hideTimeout)\n this._hideTimeout = setTimeout(\n handleSingleComponentCheck,\n DrawerListProvider.blurDelay\n )\n } else {\n handleSingleComponentCheck()\n }\n }\n\n setHidden = (args = {}, onStateComplete = null) => {\n if (!this.state.opened || isTrue(this.props.prevent_close)) {\n if (typeof onStateComplete === 'function') {\n onStateComplete(false)\n }\n return // stop here\n }\n\n clearTimeout(this._showTimeout)\n clearTimeout(this._hideTimeout)\n\n const { selected_item, active_item } = this.state\n const res = dispatchCustomElementEvent(this.state, 'on_hide', {\n ...args,\n data: getEventData(\n parseFloat(selected_item) > -1 ? selected_item : active_item,\n this.state.data\n ),\n attributes: this.attributes,\n })\n\n if (res !== false) {\n this.setState({\n opened: false,\n })\n\n const delayHandler = () => {\n this.removeObservers()\n\n this.setState({\n hidden: true,\n isOpen: false,\n })\n if (typeof onStateComplete === 'function') {\n onStateComplete(false)\n }\n DrawerListProvider.isOpen = false\n\n this.setActiveState(false)\n }\n\n if (isTrue(this.props.no_animation)) {\n delayHandler()\n } else {\n clearTimeout(this._hideTimeout)\n this._hideTimeout = setTimeout(\n delayHandler,\n DrawerListProvider.blurDelay\n ) // wait until animation is over\n }\n }\n }\n\n setActiveState(active) {\n if (typeof document !== 'undefined') {\n try {\n if (active) {\n document.documentElement.setAttribute(\n 'data-dnb-drawer-list-active',\n String(this.props.id)\n )\n } else {\n document.documentElement.removeAttribute(\n 'data-dnb-drawer-list-active'\n )\n }\n } catch (e) {\n warn(\n 'DrawerList: Error on set \"data-dnb-drawer-list-active\" by using element.setAttribute()',\n e\n )\n }\n }\n }\n\n setDataHandler = (\n data,\n cb = null,\n { overwriteOriginalData = false } = {}\n ) => {\n if (!data) {\n return\n }\n\n if (typeof data === 'function') {\n data = getData(data)\n }\n\n data = normalizeData(data)\n\n this.setState(\n {\n data,\n original_data: overwriteOriginalData\n ? data\n : this.state.original_data,\n },\n () => {\n this.refreshScrollObserver()\n typeof cb === 'function' && cb(data)\n }\n )\n\n return this\n }\n\n setStateHandler = (state, cb = null) => {\n this.setState(\n {\n ...state,\n },\n cb\n )\n\n return this\n }\n\n selectItemAndClose = (itemToSelect, args = {}) => {\n args.closeOnSelection = true\n return this.selectItem(itemToSelect, args)\n }\n\n selectItem = (\n itemToSelect,\n {\n fireSelectEvent = false,\n event = null,\n closeOnSelection = false,\n } = {}\n ) => {\n // because of our delay on dispatching the event\n // make a copy of it, so we don't break the synthetic event\n if (event && typeof event.persist === 'function') {\n event.persist()\n }\n\n // if no value is set on start and we confirm, we get -1\n if (itemToSelect === -1) {\n itemToSelect = null\n }\n\n const data = getEventData(itemToSelect, this.state.data) || null\n const value = getSelectedItemValue(itemToSelect, this.state)\n const attributes = this.attributes\n const attr = {\n selected_item: itemToSelect,\n value,\n data,\n event,\n attributes,\n }\n\n const res = dispatchCustomElementEvent(\n this.state,\n 'on_pre_change',\n attr\n )\n\n if (res === false) {\n return res // stop here\n }\n\n if (hasSelectedText()) {\n const elem = getSelectedElement()\n const isInput = getPreviousSibling('dnb-input', elem)\n if (!isInput) {\n return // stop here\n }\n }\n\n const { keep_open, prevent_selection } = this.props\n\n const doCallOnChange =\n parseFloat(itemToSelect) > -1 &&\n itemToSelect !== this.state.selected_item\n const onSelectionIsComplete = () => {\n if (doCallOnChange) {\n dispatchCustomElementEvent(this.state, 'on_change', attr)\n }\n if (fireSelectEvent) {\n dispatchCustomElementEvent(this.state, 'on_select', {\n ...attr,\n active_item: itemToSelect,\n })\n }\n\n if (closeOnSelection && !isTrue(keep_open)) {\n this.setHidden()\n }\n }\n\n if (isTrue(prevent_selection)) {\n onSelectionIsComplete()\n } else {\n this.setState(\n {\n selected_item: itemToSelect,\n active_item: itemToSelect,\n },\n onSelectionIsComplete\n )\n }\n }\n\n render() {\n return (\n <DrawerListContext.Provider\n value={{\n ...this.context,\n drawerList: {\n attributes: this.attributes,\n _refRoot: this._refRoot,\n _refShell: this._refShell,\n _refUl: this._refUl,\n _refTriangle: this._refTriangle,\n _rootElem: this._rootElem,\n getActiveElement: this.getActiveElement,\n setData: this.setDataHandler,\n setState: this.setStateHandler,\n setWrapperElement: this.setWrapperElement,\n addObservers: this.addObservers,\n removeObservers: this.removeObservers,\n setVisible: this.setVisible,\n setHidden: this.setHidden,\n toggleVisible: this.toggleVisible,\n selectItem: this.selectItem,\n selectItemAndClose: this.selectItemAndClose,\n scrollToItem: this.scrollToItem,\n setActiveItemAndScrollToIt: this.setActiveItemAndScrollToIt,\n ...this.state,\n },\n }}\n >\n {this.props.children}\n </DrawerListContext.Provider>\n )\n }\n}\n"],"mappings":"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"}
@@ -443,10 +443,12 @@
443
443
  from {
444
444
  opacity: 0;
445
445
  transform: translateY(calc(1px - var(--drawer-list-height)));
446
+ pointer-events: none;
446
447
  }
447
448
  to {
448
449
  opacity: 1;
449
450
  transform: translateY(0);
451
+ pointer-events: auto;
450
452
  }
451
453
  }
452
454
 
@@ -476,9 +478,11 @@
476
478
  from {
477
479
  opacity: 0;
478
480
  transform: translateY(calc(1px + var(--drawer-list-height)));
481
+ pointer-events: none;
479
482
  }
480
483
  to {
481
484
  opacity: 1;
482
485
  transform: translateY(0);
486
+ pointer-events: auto;
483
487
  }
484
488
  }
@@ -29,8 +29,9 @@ export default function TextCounter(localProps) {
29
29
  if (!(max > 0)) {
30
30
  return '';
31
31
  }
32
- const count = variant === 'down' ? Math.abs(max - length) : length;
33
- const key = `character${length > max ? 'Exceeded' : toPascalCase(variant)}`;
32
+ const isExceeded = length > max;
33
+ const count = variant === 'down' || isExceeded ? Math.abs(max - length) : length;
34
+ const key = `character${isExceeded ? 'Exceeded' : toPascalCase(variant)}`;
34
35
  return context.getTranslation(localProps).TextCounter[key].replace('%count', String(count)).replace('%max', String(max));
35
36
  }, [max, length, variant, context, localProps]);
36
37
  const bypassAria = useMemo(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"TextCounter.js","names":["React","useContext","useMemo","useRef","classnames","toPascalCase","Context","AriaLive","Icon","exclamation_triangle","P","TextCounter","localProps","context","variant","_variant","text","max","className","locale","rest","_objectWithoutProperties","_excluded","textRef","test","String","length","message","count","Math","abs","key","getTranslation","replace","bypassAria","bypass","current","createElement","_extends","size","_Icon","icon","element","disabled","delay"],"sources":["../../../../src/fragments/text-counter/TextCounter.tsx"],"sourcesContent":["import React, { useContext, useMemo, useRef } from 'react'\nimport classnames from 'classnames'\nimport { toPascalCase } from '../../shared/component-helper'\nimport Context from '../../shared/Context'\nimport AriaLive from '../../components/AriaLive'\nimport Icon from '../../components/icon/Icon'\nimport { exclamation_triangle } from '../../icons'\nimport type { LocaleProps, SpacingProps } from '../../shared/types'\nimport P from '../../elements/P'\n\nexport type TextCounterProps = {\n variant?: 'down' | 'up' | true\n text: string\n max: number\n} & React.HTMLAttributes<HTMLParagraphElement> &\n LocaleProps &\n SpacingProps\n\nexport default function TextCounter(localProps: TextCounterProps) {\n const context = useContext(Context)\n\n const {\n variant: _variant,\n text,\n max,\n className,\n locale, // eslint-disable-line\n ...rest\n } = localProps\n\n const textRef = useRef(text)\n const variant = /up|down/.test(String(_variant)) ? _variant : 'down'\n const length = (text || '').length\n const message = useMemo(() => {\n if (!(max > 0)) {\n return ''\n }\n\n const count = variant === 'down' ? Math.abs(max - length) : length\n const key = `character${\n length > max ? 'Exceeded' : toPascalCase(variant)\n }`\n\n return context\n .getTranslation(localProps)\n .TextCounter[key].replace('%count', String(count))\n .replace('%max', String(max))\n }, [max, length, variant, context, localProps])\n\n const bypassAria = useMemo(() => {\n const bypass = textRef.current === text\n textRef.current = text\n return bypass\n }, [text])\n\n return (\n <P\n size=\"small\"\n className={classnames(\n 'dnb-text-counter',\n length > max && 'dnb-text-counter--exceeded',\n className\n )}\n {...rest}\n >\n <Icon icon={exclamation_triangle} />\n {message}\n <AriaLive element=\"span\" disabled={bypassAria} delay={2000}>\n {message}\n </AriaLive>\n </P>\n )\n}\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AAC1D,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,YAAY,QAAQ,+BAA+B;AAC5D,OAAOC,OAAO,MAAM,sBAAsB;AAC1C,OAAOC,QAAQ,MAAM,2BAA2B;AAChD,OAAOC,IAAI,MAAM,4BAA4B;AAC7C,SAASC,oBAAoB,QAAQ,aAAa;AAElD,OAAOC,CAAC,MAAM,kBAAkB;AAUhC,eAAe,SAASC,WAAWA,CAACC,UAA4B,EAAE;EAChE,MAAMC,OAAO,GAAGZ,UAAU,CAACK,OAAO,CAAC;EAEnC,MAAM;MACJQ,OAAO,EAAEC,QAAQ;MACjBC,IAAI;MACJC,GAAG;MACHC,SAAS;MACTC;IAEF,CAAC,GAAGP,UAAU;IADTQ,IAAI,GAAAC,wBAAA,CACLT,UAAU,EAAAU,SAAA;EAEd,MAAMC,OAAO,GAAGpB,MAAM,CAACa,IAAI,CAAC;EAC5B,MAAMF,OAAO,GAAG,SAAS,CAACU,IAAI,CAACC,MAAM,CAACV,QAAQ,CAAC,CAAC,GAAGA,QAAQ,GAAG,MAAM;EACpE,MAAMW,MAAM,GAAG,CAACV,IAAI,IAAI,EAAE,EAAEU,MAAM;EAClC,MAAMC,OAAO,GAAGzB,OAAO,CAAC,MAAM;IAC5B,IAAI,EAAEe,GAAG,GAAG,CAAC,CAAC,EAAE;MACd,OAAO,EAAE;IACX;IAEA,MAAMW,KAAK,GAAGd,OAAO,KAAK,MAAM,GAAGe,IAAI,CAACC,GAAG,CAACb,GAAG,GAAGS,MAAM,CAAC,GAAGA,MAAM;IAClE,MAAMK,GAAG,GAAI,YACXL,MAAM,GAAGT,GAAG,GAAG,UAAU,GAAGZ,YAAY,CAACS,OAAO,CACjD,EAAC;IAEF,OAAOD,OAAO,CACXmB,cAAc,CAACpB,UAAU,CAAC,CAC1BD,WAAW,CAACoB,GAAG,CAAC,CAACE,OAAO,CAAC,QAAQ,EAAER,MAAM,CAACG,KAAK,CAAC,CAAC,CACjDK,OAAO,CAAC,MAAM,EAAER,MAAM,CAACR,GAAG,CAAC,CAAC;EACjC,CAAC,EAAE,CAACA,GAAG,EAAES,MAAM,EAAEZ,OAAO,EAAED,OAAO,EAAED,UAAU,CAAC,CAAC;EAE/C,MAAMsB,UAAU,GAAGhC,OAAO,CAAC,MAAM;IAC/B,MAAMiC,MAAM,GAAGZ,OAAO,CAACa,OAAO,KAAKpB,IAAI;IACvCO,OAAO,CAACa,OAAO,GAAGpB,IAAI;IACtB,OAAOmB,MAAM;EACf,CAAC,EAAE,CAACnB,IAAI,CAAC,CAAC;EAEV,OACEhB,KAAA,CAAAqC,aAAA,CAAC3B,CAAC,EAAA4B,QAAA;IACAC,IAAI,EAAC,OAAO;IACZrB,SAAS,EAAEd,UAAU,CACnB,kBAAkB,EAElBc,SAAS,EADTQ,MAAM,GAAGT,GAAG,IAAI,4BAElB;EAAE,GACEG,IAAI,GAAAoB,KAAA,KAAAA,KAAA,GAERxC,KAAA,CAAAqC,aAAA,CAAC7B,IAAI;IAACiC,IAAI,EAAEhC;EAAqB,CAAE,CAAC,GACnCkB,OAAO,EACR3B,KAAA,CAAAqC,aAAA,CAAC9B,QAAQ;IAACmC,OAAO,EAAC,MAAM;IAACC,QAAQ,EAAET,UAAW;IAACU,KAAK,EAAE;EAAK,GACxDjB,OACO,CACT,CAAC;AAER"}
1
+ {"version":3,"file":"TextCounter.js","names":["React","useContext","useMemo","useRef","classnames","toPascalCase","Context","AriaLive","Icon","exclamation_triangle","P","TextCounter","localProps","context","variant","_variant","text","max","className","locale","rest","_objectWithoutProperties","_excluded","textRef","test","String","length","message","isExceeded","count","Math","abs","key","getTranslation","replace","bypassAria","bypass","current","createElement","_extends","size","_Icon","icon","element","disabled","delay"],"sources":["../../../../src/fragments/text-counter/TextCounter.tsx"],"sourcesContent":["import React, { useContext, useMemo, useRef } from 'react'\nimport classnames from 'classnames'\nimport { toPascalCase } from '../../shared/component-helper'\nimport Context from '../../shared/Context'\nimport AriaLive from '../../components/AriaLive'\nimport Icon from '../../components/icon/Icon'\nimport { exclamation_triangle } from '../../icons'\nimport type { LocaleProps, SpacingProps } from '../../shared/types'\nimport P from '../../elements/P'\n\nexport type TextCounterProps = {\n variant?: 'down' | 'up' | true\n text: string\n max: number\n} & React.HTMLAttributes<HTMLParagraphElement> &\n LocaleProps &\n SpacingProps\n\nexport default function TextCounter(localProps: TextCounterProps) {\n const context = useContext(Context)\n\n const {\n variant: _variant,\n text,\n max,\n className,\n locale, // eslint-disable-line\n ...rest\n } = localProps\n\n const textRef = useRef(text)\n const variant = /up|down/.test(String(_variant)) ? _variant : 'down'\n const length = (text || '').length\n const message = useMemo(() => {\n if (!(max > 0)) {\n return ''\n }\n\n const isExceeded = length > max\n\n const count =\n variant === 'down' || isExceeded ? Math.abs(max - length) : length\n const key = `character${\n isExceeded ? 'Exceeded' : toPascalCase(variant)\n }`\n\n return context\n .getTranslation(localProps)\n .TextCounter[key].replace('%count', String(count))\n .replace('%max', String(max))\n }, [max, length, variant, context, localProps])\n\n const bypassAria = useMemo(() => {\n const bypass = textRef.current === text\n textRef.current = text\n return bypass\n }, [text])\n\n return (\n <P\n size=\"small\"\n className={classnames(\n 'dnb-text-counter',\n length > max && 'dnb-text-counter--exceeded',\n className\n )}\n {...rest}\n >\n <Icon icon={exclamation_triangle} />\n {message}\n <AriaLive element=\"span\" disabled={bypassAria} delay={2000}>\n {message}\n </AriaLive>\n </P>\n )\n}\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AAC1D,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,YAAY,QAAQ,+BAA+B;AAC5D,OAAOC,OAAO,MAAM,sBAAsB;AAC1C,OAAOC,QAAQ,MAAM,2BAA2B;AAChD,OAAOC,IAAI,MAAM,4BAA4B;AAC7C,SAASC,oBAAoB,QAAQ,aAAa;AAElD,OAAOC,CAAC,MAAM,kBAAkB;AAUhC,eAAe,SAASC,WAAWA,CAACC,UAA4B,EAAE;EAChE,MAAMC,OAAO,GAAGZ,UAAU,CAACK,OAAO,CAAC;EAEnC,MAAM;MACJQ,OAAO,EAAEC,QAAQ;MACjBC,IAAI;MACJC,GAAG;MACHC,SAAS;MACTC;IAEF,CAAC,GAAGP,UAAU;IADTQ,IAAI,GAAAC,wBAAA,CACLT,UAAU,EAAAU,SAAA;EAEd,MAAMC,OAAO,GAAGpB,MAAM,CAACa,IAAI,CAAC;EAC5B,MAAMF,OAAO,GAAG,SAAS,CAACU,IAAI,CAACC,MAAM,CAACV,QAAQ,CAAC,CAAC,GAAGA,QAAQ,GAAG,MAAM;EACpE,MAAMW,MAAM,GAAG,CAACV,IAAI,IAAI,EAAE,EAAEU,MAAM;EAClC,MAAMC,OAAO,GAAGzB,OAAO,CAAC,MAAM;IAC5B,IAAI,EAAEe,GAAG,GAAG,CAAC,CAAC,EAAE;MACd,OAAO,EAAE;IACX;IAEA,MAAMW,UAAU,GAAGF,MAAM,GAAGT,GAAG;IAE/B,MAAMY,KAAK,GACTf,OAAO,KAAK,MAAM,IAAIc,UAAU,GAAGE,IAAI,CAACC,GAAG,CAACd,GAAG,GAAGS,MAAM,CAAC,GAAGA,MAAM;IACpE,MAAMM,GAAG,GAAI,YACXJ,UAAU,GAAG,UAAU,GAAGvB,YAAY,CAACS,OAAO,CAC/C,EAAC;IAEF,OAAOD,OAAO,CACXoB,cAAc,CAACrB,UAAU,CAAC,CAC1BD,WAAW,CAACqB,GAAG,CAAC,CAACE,OAAO,CAAC,QAAQ,EAAET,MAAM,CAACI,KAAK,CAAC,CAAC,CACjDK,OAAO,CAAC,MAAM,EAAET,MAAM,CAACR,GAAG,CAAC,CAAC;EACjC,CAAC,EAAE,CAACA,GAAG,EAAES,MAAM,EAAEZ,OAAO,EAAED,OAAO,EAAED,UAAU,CAAC,CAAC;EAE/C,MAAMuB,UAAU,GAAGjC,OAAO,CAAC,MAAM;IAC/B,MAAMkC,MAAM,GAAGb,OAAO,CAACc,OAAO,KAAKrB,IAAI;IACvCO,OAAO,CAACc,OAAO,GAAGrB,IAAI;IACtB,OAAOoB,MAAM;EACf,CAAC,EAAE,CAACpB,IAAI,CAAC,CAAC;EAEV,OACEhB,KAAA,CAAAsC,aAAA,CAAC5B,CAAC,EAAA6B,QAAA;IACAC,IAAI,EAAC,OAAO;IACZtB,SAAS,EAAEd,UAAU,CACnB,kBAAkB,EAElBc,SAAS,EADTQ,MAAM,GAAGT,GAAG,IAAI,4BAElB;EAAE,GACEG,IAAI,GAAAqB,KAAA,KAAAA,KAAA,GAERzC,KAAA,CAAAsC,aAAA,CAAC9B,IAAI;IAACkC,IAAI,EAAEjC;EAAqB,CAAE,CAAC,GACnCkB,OAAO,EACR3B,KAAA,CAAAsC,aAAA,CAAC/B,QAAQ;IAACoC,OAAO,EAAC,MAAM;IAACC,QAAQ,EAAET,UAAW;IAACU,KAAK,EAAE;EAAK,GACxDlB,OACO,CACT,CAAC;AAER"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dnb/eufemia",
3
- "version": "10.34.1",
3
+ "version": "10.35.0",
4
4
  "description": "DNB Eufemia Design System UI Library",
5
5
  "license": "SEE LICENSE IN LICENSE FILE",
6
6
  "author": "DNB Team & Tobias Høegh",
@@ -2,7 +2,7 @@
2
2
  * Web Context Context
3
3
  *
4
4
  */
5
- import React from 'react';
5
+ /// <reference types="react" />
6
6
  import defaultLocales from './locales';
7
7
  import type { ScrollViewProps } from '../fragments/scroll-view/ScrollView';
8
8
  import type { AnchorProps } from '../components/Anchor';
@@ -38,6 +38,7 @@ import type { InputProps } from '../components/Input';
38
38
  import type { NumberFormatCurrency } from '../components/NumberFormat';
39
39
  import type { ProgressIndicatorProps } from '../components/progress-indicator/types';
40
40
  import type { FormStatusProps } from '../components/FormStatus';
41
+ import type { LogoProps } from '../components/Logo';
41
42
  import type { FormElementProps } from './helpers/filterValidProps';
42
43
  import type { ThemeProps } from './Theme';
43
44
  import type { FormsTranslation } from '../extensions/forms/hooks/useTranslation';
@@ -75,6 +76,7 @@ export type ContextComponents = {
75
76
  Input?: Partial<InputProps>;
76
77
  ProgressIndicator?: Partial<ProgressIndicatorProps>;
77
78
  FormStatus?: Partial<FormStatusProps>;
79
+ Logo?: Partial<LogoProps>;
78
80
  NumberFormat?: Record<string, unknown>;
79
81
  Pagination?: Record<string, unknown>;
80
82
  /**
@@ -153,9 +155,7 @@ export type Translations = Partial<Record<InternalLocale, Translation | Translat
153
155
  export type TranslationDefaultLocales = typeof defaultLocales;
154
156
  export type TranslationLocale = keyof TranslationDefaultLocales;
155
157
  export type TranslationKeys = keyof TranslationDefaultLocales[TranslationLocale];
156
- export type TranslationValues = TranslationDefaultLocales[TranslationLocale] & {
157
- Forms?: Record<string, unknown>;
158
- };
158
+ export type TranslationValues = TranslationDefaultLocales[TranslationLocale];
159
159
  export type TranslationCustomLocales = Record<never, string | Record<string, string>>;
160
160
  /**
161
161
  * E.g. "HelpButton: { title: '...' }"
@@ -165,6 +165,10 @@ export type Translation = DeepPartial<TranslationValues>;
165
165
  * E.g. "HelpButton.title"
166
166
  */
167
167
  export type TranslationFlat = Record<ComponentTranslationsName, TranslationKeys | ComponentTranslation>;
168
+ export type TranslationFlatToObject<T> = T extends Record<string, unknown> ? {
169
+ [K in keyof T as K extends `${infer First}.${infer Rest}` ? First : K]: K extends `${infer First}.${infer Rest}` ? TranslationFlatToObject<Record<Rest, T[K]>> : T[K];
170
+ } : T;
168
171
  export declare function prepareContext<Props>(props?: ContextProps): Props & ContextProps;
169
- declare const Context: React.Context<ContextProps>;
172
+ declare const Context: import("react").Context<ContextProps>;
170
173
  export default Context;
174
+ export declare function destructFlatTranslation(source: TranslationFlat): {};