@dso-toolkit/core 76.0.0 → 78.0.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 (668) hide show
  1. package/dist/bundle/dso-accordion-section.js +9 -9
  2. package/dist/bundle/dso-accordion.js +23 -7
  3. package/dist/bundle/dso-accordion.js.map +1 -1
  4. package/dist/bundle/dso-action-list-item.js +3 -3
  5. package/dist/bundle/dso-action-list.js +2 -2
  6. package/dist/bundle/dso-advanced-select.js +6 -6
  7. package/dist/bundle/dso-alert.js +1 -1
  8. package/dist/bundle/dso-annotation-activiteit.js +11 -11
  9. package/dist/bundle/dso-annotation-activiteit.js.map +1 -1
  10. package/dist/bundle/dso-annotation-gebiedsaanwijzing.js +10 -10
  11. package/dist/bundle/dso-annotation-gebiedsaanwijzing.js.map +1 -1
  12. package/dist/bundle/dso-annotation-kaart.js +7 -7
  13. package/dist/bundle/dso-annotation-kaart.js.map +1 -1
  14. package/dist/bundle/dso-annotation-locatie.js +1 -1
  15. package/dist/bundle/dso-annotation-omgevingsnormwaarde.js +11 -11
  16. package/dist/bundle/dso-annotation-omgevingsnormwaarde.js.map +1 -1
  17. package/dist/bundle/dso-attachments-counter.js +1 -1
  18. package/dist/bundle/dso-autosuggest.js +5 -5
  19. package/dist/bundle/dso-badge.js +1 -1
  20. package/dist/bundle/dso-banner.js +2 -2
  21. package/dist/bundle/dso-button-group.d.ts +11 -0
  22. package/dist/bundle/dso-button-group.js +9 -0
  23. package/dist/bundle/dso-button-group.js.map +1 -0
  24. package/dist/bundle/dso-card-container.js +3 -3
  25. package/dist/bundle/dso-card.js +6 -6
  26. package/dist/bundle/dso-card.js.map +1 -1
  27. package/dist/bundle/dso-contact-information.js +3 -3
  28. package/dist/bundle/dso-date-picker-legacy.js +6 -6
  29. package/dist/bundle/dso-date-picker.js +3 -3
  30. package/dist/bundle/dso-document-card.js +4 -4
  31. package/dist/bundle/dso-document-component.js +1 -1
  32. package/dist/bundle/dso-dropdown-menu.js +1 -1
  33. package/dist/bundle/dso-expandable.js +1 -1
  34. package/dist/bundle/dso-header.js +6 -6
  35. package/dist/bundle/dso-header.js.map +1 -1
  36. package/dist/bundle/dso-highlight-box.js +3 -3
  37. package/dist/bundle/dso-icon.js +1 -1
  38. package/dist/bundle/dso-image-overlay.js +1 -1
  39. package/dist/bundle/dso-info-button.js +1 -1
  40. package/dist/bundle/dso-info.js +1 -1
  41. package/dist/bundle/dso-input-range.js +4 -4
  42. package/dist/bundle/dso-label.js +1 -1
  43. package/dist/bundle/dso-legend-item.js +8 -8
  44. package/dist/bundle/dso-list-button.js +7 -7
  45. package/dist/bundle/dso-logo.js +3 -3
  46. package/dist/bundle/dso-map-base-layers.js +7 -7
  47. package/dist/bundle/dso-map-controls.js +14 -8
  48. package/dist/bundle/dso-map-controls.js.map +1 -1
  49. package/dist/bundle/dso-map-overlays.js +7 -7
  50. package/dist/bundle/dso-mark-bar.js +4 -4
  51. package/dist/bundle/dso-modal.js +5 -5
  52. package/dist/bundle/dso-onboarding-tip.js +5 -1663
  53. package/dist/bundle/dso-onboarding-tip.js.map +1 -1
  54. package/dist/bundle/dso-ozon-content.js +1 -1
  55. package/dist/bundle/dso-pagination.js +5 -5
  56. package/dist/bundle/dso-pagination.js.map +1 -1
  57. package/dist/bundle/dso-panel.js +1 -1
  58. package/dist/bundle/dso-plekinfo-card.js +4 -4
  59. package/dist/bundle/dso-progress-bar.js +3 -3
  60. package/dist/bundle/dso-progress-indicator.js +1 -1
  61. package/dist/bundle/dso-project-item.js +6 -6
  62. package/dist/bundle/dso-renvooi.js +1 -1
  63. package/dist/bundle/dso-responsive-element.js +1 -1
  64. package/dist/bundle/dso-scrollable.js +1 -1
  65. package/dist/bundle/dso-selectable.js +1 -1
  66. package/dist/bundle/dso-skiplink.js +4 -4
  67. package/dist/bundle/dso-slide-toggle.js +1 -1
  68. package/dist/bundle/dso-survey-rating.js +7 -7
  69. package/dist/bundle/dso-tab.js +2 -2
  70. package/dist/bundle/dso-table.js +1 -1
  71. package/dist/bundle/dso-tabs.js +3 -3
  72. package/dist/bundle/dso-toggletip.js +1 -1
  73. package/dist/bundle/dso-tooltip.js +1 -1
  74. package/dist/bundle/dso-tree-view.js +5 -5
  75. package/dist/bundle/dso-viewer-grid.js +4 -5
  76. package/dist/bundle/dso-viewer-grid.js.map +1 -1
  77. package/dist/bundle/dsot-document-component-demo.js +17 -17
  78. package/dist/bundle/index.js +3 -1
  79. package/dist/bundle/index.js.map +1 -1
  80. package/dist/bundle/{p-Fr4DmH1l.js → p--iZjxqv3.js} +6 -6
  81. package/dist/bundle/{p-Fr4DmH1l.js.map → p--iZjxqv3.js.map} +1 -1
  82. package/dist/bundle/{p-Dxegur3q.js → p-B3BAWGAx.js} +4 -4
  83. package/dist/bundle/{p-Dxegur3q.js.map → p-B3BAWGAx.js.map} +1 -1
  84. package/dist/bundle/{p-DDDh2Izf.js → p-B9a249cd.js} +3 -3
  85. package/dist/bundle/{p-DDDh2Izf.js.map → p-B9a249cd.js.map} +1 -1
  86. package/dist/bundle/p-B9zUWbzS.js +58 -0
  87. package/dist/bundle/p-B9zUWbzS.js.map +1 -0
  88. package/dist/bundle/{p-BCHeTZOb.js → p-BLPc0VWK.js} +8 -8
  89. package/dist/bundle/{p-BCHeTZOb.js.map → p-BLPc0VWK.js.map} +1 -1
  90. package/dist/bundle/{p-BS-Y76bJ.js → p-BQF5fCSD.js} +5 -5
  91. package/dist/bundle/{p-BS-Y76bJ.js.map → p-BQF5fCSD.js.map} +1 -1
  92. package/dist/bundle/{p-C0s1JAlb.js → p-BZUv4Fwx.js} +8 -8
  93. package/dist/bundle/{p-C0s1JAlb.js.map → p-BZUv4Fwx.js.map} +1 -1
  94. package/dist/bundle/{p-DhhVHw2w.js → p-BnSdv9VD.js} +15 -15
  95. package/dist/bundle/{p-DhhVHw2w.js.map → p-BnSdv9VD.js.map} +1 -1
  96. package/dist/bundle/{p-Dp31hMfn.js → p-C2Ek2dWW.js} +50 -117
  97. package/dist/bundle/p-C2Ek2dWW.js.map +1 -0
  98. package/dist/bundle/p-CH8BjCNJ.js +80 -0
  99. package/dist/bundle/{p-CagCGFPb.js.map → p-CH8BjCNJ.js.map} +1 -1
  100. package/dist/bundle/{p-DkmiPgP0.js → p-COMP9T58.js} +4 -4
  101. package/dist/bundle/{p-DkmiPgP0.js.map → p-COMP9T58.js.map} +1 -1
  102. package/dist/bundle/{p-J2YfZwgD.js → p-CUZmPl-a.js} +9 -9
  103. package/dist/bundle/{p-J2YfZwgD.js.map → p-CUZmPl-a.js.map} +1 -1
  104. package/dist/bundle/{p-BI8W5IHk.js → p-CXEXoC_s.js} +6 -6
  105. package/dist/bundle/{p-BI8W5IHk.js.map → p-CXEXoC_s.js.map} +1 -1
  106. package/dist/bundle/{p-D1jpHeMq.js → p-CYNNmESE.js} +6 -6
  107. package/dist/bundle/{p-D1jpHeMq.js.map → p-CYNNmESE.js.map} +1 -1
  108. package/dist/bundle/{p-0OxrSmuX.js → p-C_-6M4mA.js} +4 -4
  109. package/dist/bundle/{p-0OxrSmuX.js.map → p-C_-6M4mA.js.map} +1 -1
  110. package/dist/bundle/{p-r4JnUhJ5.js → p-ChsWtZdt.js} +6 -6
  111. package/dist/bundle/{p-r4JnUhJ5.js.map → p-ChsWtZdt.js.map} +1 -1
  112. package/dist/bundle/{p-BJhPYrsL.js → p-CwKyBrf3.js} +6 -6
  113. package/dist/bundle/{p-BJhPYrsL.js.map → p-CwKyBrf3.js.map} +1 -1
  114. package/dist/bundle/{p-CdvSnpb_.js → p-D0gB2lgu.js} +5 -5
  115. package/dist/bundle/{p-CdvSnpb_.js.map → p-D0gB2lgu.js.map} +1 -1
  116. package/dist/bundle/{p-CgRdthz0.js → p-D3I3eS2K.js} +7 -7
  117. package/dist/bundle/{p-CgRdthz0.js.map → p-D3I3eS2K.js.map} +1 -1
  118. package/dist/bundle/{p-_DIUHRiS.js → p-D92MZVkr.js} +5 -5
  119. package/dist/bundle/{p-_DIUHRiS.js.map → p-D92MZVkr.js.map} +1 -1
  120. package/dist/{esm/has-overflow-CsY83cJO.js → bundle/p-DNULhBX2.js} +312 -3
  121. package/dist/bundle/p-DNULhBX2.js.map +1 -0
  122. package/dist/bundle/{p-L6frHRla.js → p-DcxEm1dI.js} +10 -10
  123. package/dist/bundle/{p-L6frHRla.js.map → p-DcxEm1dI.js.map} +1 -1
  124. package/dist/bundle/{p-BacS1uCc.js → p-DgQ6L0IZ.js} +3 -3
  125. package/dist/bundle/{p-BacS1uCc.js.map → p-DgQ6L0IZ.js.map} +1 -1
  126. package/dist/bundle/{p-DHO_Za64.js → p-Dm38fPV4.js} +168 -113
  127. package/dist/bundle/p-Dm38fPV4.js.map +1 -0
  128. package/dist/bundle/{p-C62PayXc.js → p-Dt1j98T1.js} +5 -5
  129. package/dist/bundle/{p-C62PayXc.js.map → p-Dt1j98T1.js.map} +1 -1
  130. package/dist/bundle/{p-DPH021KD.js → p-VjABABA3.js} +3 -3
  131. package/dist/bundle/{p-DPH021KD.js.map → p-VjABABA3.js.map} +1 -1
  132. package/dist/bundle/{p-DAtQydKx.js → p-WmD5BfeO.js} +6 -6
  133. package/dist/bundle/{p-DAtQydKx.js.map → p-WmD5BfeO.js.map} +1 -1
  134. package/dist/bundle/p-gdsca1fx.js +1663 -0
  135. package/dist/bundle/p-gdsca1fx.js.map +1 -0
  136. package/dist/bundle/{p-CIShecZA.js → p-lE-KxpG-.js} +5 -5
  137. package/dist/bundle/{p-CIShecZA.js.map → p-lE-KxpG-.js.map} +1 -1
  138. package/dist/cjs/{annotation-body-DiF6OSBJ.js → annotation-body-DaD_bwoW.js} +3 -3
  139. package/dist/cjs/{annotation-body-DiF6OSBJ.js.map → annotation-body-DaD_bwoW.js.map} +1 -1
  140. package/dist/cjs/{annotation-list-renvooi-values-BsuXHY9R.js → annotation-list-renvooi-values-DrBMzeSq.js} +3 -3
  141. package/dist/cjs/{annotation-list-renvooi-values-BsuXHY9R.js.map → annotation-list-renvooi-values-DrBMzeSq.js.map} +1 -1
  142. package/dist/cjs/{annotation-watcher-8xS6vsxu.js → annotation-watcher-CIkkSlrQ.js} +3 -3
  143. package/dist/cjs/{annotation-watcher-8xS6vsxu.js.map → annotation-watcher-CIkkSlrQ.js.map} +1 -1
  144. package/dist/cjs/app-globals-V2Kpy_OQ.js.map +1 -1
  145. package/dist/cjs/dso-accordion-section.cjs.entry.js +1 -1
  146. package/dist/cjs/dso-accordion.cjs.entry.js +22 -6
  147. package/dist/cjs/dso-accordion.cjs.entry.js.map +1 -1
  148. package/dist/cjs/dso-accordion.entry.cjs.js.map +1 -1
  149. package/dist/cjs/dso-action-list-item.cjs.entry.js +1 -1
  150. package/dist/cjs/dso-action-list.cjs.entry.js +1 -1
  151. package/dist/cjs/dso-advanced-select.cjs.entry.js +1 -1
  152. package/dist/cjs/dso-alert.dso-badge.dso-image-overlay.dso-ozon-content.dso-panel.dso-table.entry.cjs.js.map +1 -1
  153. package/dist/cjs/dso-alert_6.cjs.entry.js +7 -7
  154. package/dist/cjs/dso-alert_6.cjs.entry.js.map +1 -1
  155. package/dist/cjs/dso-annotation-activiteit.cjs.entry.js +5 -5
  156. package/dist/cjs/dso-annotation-activiteit.cjs.entry.js.map +1 -1
  157. package/dist/cjs/dso-annotation-activiteit.entry.cjs.js.map +1 -1
  158. package/dist/cjs/dso-annotation-gebiedsaanwijzing.cjs.entry.js +4 -4
  159. package/dist/cjs/dso-annotation-gebiedsaanwijzing.cjs.entry.js.map +1 -1
  160. package/dist/cjs/dso-annotation-gebiedsaanwijzing.entry.cjs.js.map +1 -1
  161. package/dist/cjs/dso-annotation-kaart.cjs.entry.js +3 -3
  162. package/dist/cjs/dso-annotation-kaart.cjs.entry.js.map +1 -1
  163. package/dist/cjs/dso-annotation-kaart.entry.cjs.js.map +1 -1
  164. package/dist/cjs/dso-annotation-locatie.dso-document-component.entry.cjs.js.map +1 -1
  165. package/dist/cjs/dso-annotation-locatie_2.cjs.entry.js +6 -6
  166. package/dist/cjs/dso-annotation-locatie_2.cjs.entry.js.map +1 -1
  167. package/dist/cjs/dso-annotation-omgevingsnormwaarde.cjs.entry.js +5 -5
  168. package/dist/cjs/dso-annotation-omgevingsnormwaarde.cjs.entry.js.map +1 -1
  169. package/dist/cjs/dso-annotation-omgevingsnormwaarde.entry.cjs.js.map +1 -1
  170. package/dist/cjs/dso-attachments-counter_2.cjs.entry.js +1 -1
  171. package/dist/cjs/dso-autosuggest.cjs.entry.js +1 -1
  172. package/dist/cjs/dso-banner.cjs.entry.js +1 -1
  173. package/dist/cjs/dso-button-group.cjs.entry.js +43 -0
  174. package/dist/cjs/dso-button-group.cjs.entry.js.map +1 -0
  175. package/dist/cjs/dso-button-group.entry.cjs.js.map +1 -0
  176. package/dist/cjs/dso-card-container.cjs.entry.js +2 -2
  177. package/dist/cjs/dso-card.cjs.entry.js +4 -4
  178. package/dist/cjs/dso-card.cjs.entry.js.map +1 -1
  179. package/dist/cjs/dso-card.entry.cjs.js.map +1 -1
  180. package/dist/cjs/dso-contact-information.cjs.entry.js +2 -2
  181. package/dist/cjs/dso-date-picker-legacy.cjs.entry.js +4 -4
  182. package/dist/cjs/dso-date-picker.cjs.entry.js +2 -2
  183. package/dist/cjs/dso-document-card.cjs.entry.js +2 -2
  184. package/dist/cjs/dso-dropdown-menu.cjs.entry.js +45 -104
  185. package/dist/cjs/dso-dropdown-menu.cjs.entry.js.map +1 -1
  186. package/dist/cjs/dso-dropdown-menu.entry.cjs.js.map +1 -1
  187. package/dist/cjs/dso-header.cjs.entry.js +3 -3
  188. package/dist/cjs/dso-header.cjs.entry.js.map +1 -1
  189. package/dist/cjs/dso-header.entry.cjs.js.map +1 -1
  190. package/dist/cjs/dso-highlight-box.cjs.entry.js +2 -2
  191. package/dist/cjs/dso-icon.cjs.entry.js +2 -2
  192. package/dist/cjs/dso-info-button.cjs.entry.js +2 -2
  193. package/dist/cjs/dso-info_2.cjs.entry.js +3 -3
  194. package/dist/cjs/dso-input-range.cjs.entry.js +3 -3
  195. package/dist/cjs/dso-label_3.cjs.entry.js +5 -5
  196. package/dist/cjs/dso-legend-item.cjs.entry.js +2 -2
  197. package/dist/cjs/dso-list-button.cjs.entry.js +2 -2
  198. package/dist/cjs/dso-logo.cjs.entry.js +2 -2
  199. package/dist/cjs/dso-map-base-layers.cjs.entry.js +2 -2
  200. package/dist/cjs/dso-map-controls.cjs.entry.js +4 -4
  201. package/dist/cjs/dso-map-controls.cjs.entry.js.map +1 -1
  202. package/dist/cjs/dso-map-controls.entry.cjs.js.map +1 -1
  203. package/dist/cjs/dso-map-overlays.cjs.entry.js +2 -2
  204. package/dist/cjs/dso-mark-bar.cjs.entry.js +2 -2
  205. package/dist/cjs/dso-modal.cjs.entry.js +2 -2
  206. package/dist/cjs/dso-onboarding-tip.cjs.entry.js +10 -1668
  207. package/dist/cjs/dso-onboarding-tip.cjs.entry.js.map +1 -1
  208. package/dist/cjs/dso-onboarding-tip.entry.cjs.js.map +1 -1
  209. package/dist/cjs/dso-pagination.cjs.entry.js +2 -2
  210. package/dist/cjs/dso-pagination.cjs.entry.js.map +1 -1
  211. package/dist/cjs/dso-pagination.entry.cjs.js.map +1 -1
  212. package/dist/cjs/dso-plekinfo-card.cjs.entry.js +2 -2
  213. package/dist/cjs/dso-progress-bar.cjs.entry.js +2 -2
  214. package/dist/cjs/dso-progress-indicator.cjs.entry.js +2 -2
  215. package/dist/cjs/dso-project-item.cjs.entry.js +2 -2
  216. package/dist/cjs/dso-responsive-element.cjs.entry.js +2 -2
  217. package/dist/cjs/dso-scrollable.cjs.entry.js +3 -3
  218. package/dist/cjs/dso-skiplink.cjs.entry.js +2 -2
  219. package/dist/cjs/dso-survey-rating.cjs.entry.js +4 -4
  220. package/dist/cjs/dso-tab.cjs.entry.js +1 -1
  221. package/dist/cjs/dso-tabs.cjs.entry.js +2 -2
  222. package/dist/cjs/dso-toggletip.cjs.entry.js +2 -2
  223. package/dist/cjs/dso-toolkit.cjs.js +3 -3
  224. package/dist/cjs/dso-toolkit.cjs.js.map +1 -1
  225. package/dist/cjs/dso-tooltip.cjs.entry.js +1803 -7
  226. package/dist/cjs/dso-tooltip.cjs.entry.js.map +1 -1
  227. package/dist/cjs/dso-tooltip.entry.cjs.js.map +1 -1
  228. package/dist/cjs/dso-tree-view.cjs.entry.js +2 -2
  229. package/dist/cjs/dso-viewer-grid.cjs.entry.js +3 -4
  230. package/dist/cjs/dso-viewer-grid.cjs.entry.js.map +1 -1
  231. package/dist/cjs/dso-viewer-grid.entry.cjs.js.map +1 -1
  232. package/dist/cjs/dsot-document-component-demo.cjs.entry.js +2 -2
  233. package/dist/cjs/floating-ui.dom-uZgU2YQo.js +1671 -0
  234. package/dist/cjs/floating-ui.dom-uZgU2YQo.js.map +1 -0
  235. package/dist/cjs/{index-Bfuot2fD.js → index-DvLsepiK.js} +177 -115
  236. package/dist/cjs/index-DvLsepiK.js.map +1 -0
  237. package/dist/cjs/loader.cjs.js +2 -2
  238. package/dist/collection/collection-manifest.json +2 -1
  239. package/dist/collection/components/alert/alert.css +6 -8
  240. package/dist/collection/components/annotation/annotation.css +3 -0
  241. package/dist/collection/components/button-group/button-group.css +76 -0
  242. package/dist/collection/components/button-group/button-group.interfaces.js +2 -0
  243. package/dist/collection/components/button-group/button-group.interfaces.js.map +1 -0
  244. package/dist/collection/components/button-group/button-group.js +74 -0
  245. package/dist/collection/components/button-group/button-group.js.map +1 -0
  246. package/dist/collection/components/card/card.css +3 -0
  247. package/dist/collection/components/card/card.js +2 -2
  248. package/dist/collection/components/card-container/card-container.js +1 -1
  249. package/dist/collection/components/contact-information/contact-information.js +1 -1
  250. package/dist/collection/components/date-picker/date-picker.js +1 -1
  251. package/dist/collection/components/date-picker-legacy/date-picker-legacy.js +3 -3
  252. package/dist/collection/components/document-card/document-card.js +1 -1
  253. package/dist/collection/components/document-component/document-component.css +226 -5
  254. package/dist/collection/components/document-component/document-component.js +1 -1
  255. package/dist/collection/components/document-component-demo/document-component.demo.js +1 -1
  256. package/dist/collection/components/dropdown-menu/dropdown-menu.css +8 -0
  257. package/dist/collection/components/dropdown-menu/dropdown-menu.js +43 -176
  258. package/dist/collection/components/dropdown-menu/dropdown-menu.js.map +1 -1
  259. package/dist/collection/components/header/header.js +2 -2
  260. package/dist/collection/components/header/header.js.map +1 -1
  261. package/dist/collection/components/highlight-box/highlight-box.js +1 -1
  262. package/dist/collection/components/icon/icon.js +1 -1
  263. package/dist/collection/components/image-overlay/image-overlay.css +8 -8
  264. package/dist/collection/components/info/info.js +1 -1
  265. package/dist/collection/components/info-button/info-button.js +1 -1
  266. package/dist/collection/components/input-range/input-range.js +2 -2
  267. package/dist/collection/components/label/label.js +3 -3
  268. package/dist/collection/components/legend-item/legend-item.js +1 -1
  269. package/dist/collection/components/list-button/list-button.js +1 -1
  270. package/dist/collection/components/logo/logo.js +1 -1
  271. package/dist/collection/components/map-base-layers/map-base-layers.js +1 -1
  272. package/dist/collection/components/map-controls/map-controls.css +725 -184
  273. package/dist/collection/components/map-controls/map-controls.js +3 -3
  274. package/dist/collection/components/map-controls/map-controls.js.map +1 -1
  275. package/dist/collection/components/map-overlays/map-overlays.js +1 -1
  276. package/dist/collection/components/mark-bar/mark-bar.js +1 -1
  277. package/dist/collection/components/modal/modal.js +1 -1
  278. package/dist/collection/components/onboarding-tip/onboarding-tip.js +1 -1
  279. package/dist/collection/components/ozon-content/ozon-content.css +226 -5
  280. package/dist/collection/components/ozon-content/ozon-content.js +1 -1
  281. package/dist/collection/components/pagination/pagination.css +1 -2
  282. package/dist/collection/components/plekinfo-card/plekinfo-card.js +1 -1
  283. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  284. package/dist/collection/components/progress-indicator/progress-indicator.js +1 -1
  285. package/dist/collection/components/project-item/project-item.js +1 -1
  286. package/dist/collection/components/responsive-element/responsive-element.js +1 -1
  287. package/dist/collection/components/scrollable/scrollable.js +2 -2
  288. package/dist/collection/components/selectable/selectable.js +1 -1
  289. package/dist/collection/components/skiplink/skiplink.js +1 -1
  290. package/dist/collection/components/slide-toggle/slide-toggle.js +1 -1
  291. package/dist/collection/components/survey-rating/survey-rating.css +4 -4
  292. package/dist/collection/components/survey-rating/survey-rating.js +2 -2
  293. package/dist/collection/components/table/table.css +223 -5
  294. package/dist/collection/components/table/table.js +1 -1
  295. package/dist/collection/components/tabs/tabs.js +1 -1
  296. package/dist/collection/components/toggletip/toggletip.js +1 -1
  297. package/dist/collection/components/tooltip/tooltip.js +1 -1
  298. package/dist/collection/components/tree-view/tree-view.js +1 -1
  299. package/dist/collection/components/viewer-grid/viewer-grid.css +4 -4
  300. package/dist/collection/components/viewer-grid/viewer-grid.interfaces.js.map +1 -1
  301. package/dist/collection/components/viewer-grid/viewer-grid.js +1 -22
  302. package/dist/collection/components/viewer-grid/viewer-grid.js.map +1 -1
  303. package/dist/components/alert.js +2 -2
  304. package/dist/components/alert.js.map +1 -1
  305. package/dist/components/annotation-locatie.js +2 -2
  306. package/dist/components/annotation-locatie.js.map +1 -1
  307. package/dist/components/attachments-counter.js +1 -1
  308. package/dist/components/badge.js +1 -1
  309. package/dist/components/button-group.js +58 -0
  310. package/dist/components/button-group.js.map +1 -0
  311. package/dist/components/document-component.js +3 -3
  312. package/dist/components/document-component.js.map +1 -1
  313. package/dist/components/dropdown-menu.js +47 -114
  314. package/dist/components/dropdown-menu.js.map +1 -1
  315. package/dist/components/dso-accordion-section.js +1 -1
  316. package/dist/components/dso-accordion.js +22 -6
  317. package/dist/components/dso-accordion.js.map +1 -1
  318. package/dist/components/dso-action-list-item.js +1 -1
  319. package/dist/components/dso-action-list.js +1 -1
  320. package/dist/components/dso-advanced-select.js +1 -1
  321. package/dist/components/dso-annotation-activiteit.js +2 -2
  322. package/dist/components/dso-annotation-activiteit.js.map +1 -1
  323. package/dist/components/dso-annotation-gebiedsaanwijzing.js +2 -2
  324. package/dist/components/dso-annotation-gebiedsaanwijzing.js.map +1 -1
  325. package/dist/components/dso-annotation-kaart.js +2 -2
  326. package/dist/components/dso-annotation-kaart.js.map +1 -1
  327. package/dist/components/dso-annotation-omgevingsnormwaarde.js +2 -2
  328. package/dist/components/dso-annotation-omgevingsnormwaarde.js.map +1 -1
  329. package/dist/components/dso-autosuggest.js +1 -1
  330. package/dist/components/dso-banner.js +1 -1
  331. package/dist/components/dso-button-group.d.ts +11 -0
  332. package/dist/components/dso-button-group.js +9 -0
  333. package/dist/components/dso-button-group.js.map +1 -0
  334. package/dist/components/dso-card-container.js +2 -2
  335. package/dist/components/dso-card.js +4 -4
  336. package/dist/components/dso-card.js.map +1 -1
  337. package/dist/components/dso-contact-information.js +2 -2
  338. package/dist/components/dso-date-picker-legacy.js +4 -4
  339. package/dist/components/dso-date-picker.js +2 -2
  340. package/dist/components/dso-document-card.js +2 -2
  341. package/dist/components/dso-header.js +3 -3
  342. package/dist/components/dso-header.js.map +1 -1
  343. package/dist/components/dso-highlight-box.js +2 -2
  344. package/dist/components/dso-input-range.js +3 -3
  345. package/dist/components/dso-legend-item.js +2 -2
  346. package/dist/components/dso-list-button.js +2 -2
  347. package/dist/components/dso-logo.js +2 -2
  348. package/dist/components/dso-map-base-layers.js +2 -2
  349. package/dist/components/dso-map-controls.js +11 -5
  350. package/dist/components/dso-map-controls.js.map +1 -1
  351. package/dist/components/dso-map-overlays.js +2 -2
  352. package/dist/components/dso-mark-bar.js +2 -2
  353. package/dist/components/dso-modal.js +2 -2
  354. package/dist/components/dso-onboarding-tip.js +6 -1664
  355. package/dist/components/dso-onboarding-tip.js.map +1 -1
  356. package/dist/components/dso-pagination.js +2 -2
  357. package/dist/components/dso-pagination.js.map +1 -1
  358. package/dist/components/dso-plekinfo-card.js +2 -2
  359. package/dist/components/dso-progress-bar.js +2 -2
  360. package/dist/components/dso-project-item.js +2 -2
  361. package/dist/components/dso-skiplink.js +2 -2
  362. package/dist/components/dso-survey-rating.js +4 -4
  363. package/dist/components/dso-tab.js +1 -1
  364. package/dist/components/dso-tabs.js +2 -2
  365. package/dist/components/dso-tree-view.js +2 -2
  366. package/dist/components/dso-viewer-grid.js +3 -4
  367. package/dist/components/dso-viewer-grid.js.map +1 -1
  368. package/dist/components/dsot-document-component-demo.js +2 -2
  369. package/dist/components/expandable.js +1 -1
  370. package/dist/components/floating-ui.dom.js +1663 -0
  371. package/dist/components/floating-ui.dom.js.map +1 -0
  372. package/dist/components/icon.js +2 -2
  373. package/dist/components/image-overlay.js +2 -2
  374. package/dist/components/index.d.ts +2 -0
  375. package/dist/components/index.js +1 -0
  376. package/dist/components/index.js.map +1 -1
  377. package/dist/components/info-button.js +2 -2
  378. package/dist/components/info.js +2 -2
  379. package/dist/components/label.js +4 -4
  380. package/dist/components/ozon-content.js +3 -3
  381. package/dist/components/ozon-content.js.map +1 -1
  382. package/dist/components/panel.js +1 -1
  383. package/dist/components/progress-indicator.js +2 -2
  384. package/dist/components/renvooi.js +1 -1
  385. package/dist/components/responsive-element.js +2 -2
  386. package/dist/components/scrollable.js +3 -3
  387. package/dist/components/selectable.js +2 -2
  388. package/dist/components/slide-toggle.js +2 -2
  389. package/dist/components/table.js +3 -3
  390. package/dist/components/table.js.map +1 -1
  391. package/dist/components/toggletip.js +2 -2
  392. package/dist/components/tooltip.js +1805 -9
  393. package/dist/components/tooltip.js.map +1 -1
  394. package/dist/dso-toolkit/dso-accordion.entry.esm.js.map +1 -1
  395. package/dist/dso-toolkit/dso-alert.dso-badge.dso-image-overlay.dso-ozon-content.dso-panel.dso-table.entry.esm.js.map +1 -1
  396. package/dist/dso-toolkit/dso-annotation-activiteit.entry.esm.js.map +1 -1
  397. package/dist/dso-toolkit/dso-annotation-gebiedsaanwijzing.entry.esm.js.map +1 -1
  398. package/dist/dso-toolkit/dso-annotation-kaart.entry.esm.js.map +1 -1
  399. package/dist/dso-toolkit/dso-annotation-locatie.dso-document-component.entry.esm.js.map +1 -1
  400. package/dist/dso-toolkit/dso-annotation-omgevingsnormwaarde.entry.esm.js.map +1 -1
  401. package/dist/dso-toolkit/dso-button-group.entry.esm.js.map +1 -0
  402. package/dist/dso-toolkit/dso-card.entry.esm.js.map +1 -1
  403. package/dist/dso-toolkit/dso-dropdown-menu.entry.esm.js.map +1 -1
  404. package/dist/dso-toolkit/dso-header.entry.esm.js.map +1 -1
  405. package/dist/dso-toolkit/dso-map-controls.entry.esm.js.map +1 -1
  406. package/dist/dso-toolkit/dso-onboarding-tip.entry.esm.js.map +1 -1
  407. package/dist/dso-toolkit/dso-pagination.entry.esm.js.map +1 -1
  408. package/dist/dso-toolkit/dso-toolkit.esm.js +1 -1
  409. package/dist/dso-toolkit/dso-toolkit.esm.js.map +1 -1
  410. package/dist/dso-toolkit/dso-tooltip.entry.esm.js.map +1 -1
  411. package/dist/dso-toolkit/dso-viewer-grid.entry.esm.js.map +1 -1
  412. package/dist/dso-toolkit/{p-27f7b86f.entry.js → p-02491a35.entry.js} +2 -2
  413. package/dist/dso-toolkit/{p-ffa6ca48.entry.js → p-03fe514a.entry.js} +2 -2
  414. package/dist/dso-toolkit/{p-071e8dff.entry.js → p-04d6ae97.entry.js} +2 -2
  415. package/dist/dso-toolkit/p-12e8bed3.entry.js +2 -0
  416. package/dist/dso-toolkit/{p-bd7d4a27.entry.js.map → p-12e8bed3.entry.js.map} +1 -1
  417. package/dist/dso-toolkit/{p-7bedc94d.entry.js → p-16255f29.entry.js} +2 -2
  418. package/dist/dso-toolkit/{p-e4907ab7.entry.js → p-17219f16.entry.js} +2 -2
  419. package/dist/dso-toolkit/{p-a4618476.entry.js → p-1a06ea3b.entry.js} +2 -2
  420. package/dist/dso-toolkit/p-1a06ea3b.entry.js.map +1 -0
  421. package/dist/dso-toolkit/p-1aa49aa7.entry.js +2 -0
  422. package/dist/dso-toolkit/p-1aa49aa7.entry.js.map +1 -0
  423. package/dist/dso-toolkit/p-1aaf0bc4.entry.js +2 -0
  424. package/dist/dso-toolkit/{p-11cd688b.entry.js.map → p-1aaf0bc4.entry.js.map} +1 -1
  425. package/dist/dso-toolkit/p-2165f443.entry.js +2 -0
  426. package/dist/dso-toolkit/p-2165f443.entry.js.map +1 -0
  427. package/dist/dso-toolkit/{p-76eb0308.entry.js → p-218b1fe3.entry.js} +2 -2
  428. package/dist/dso-toolkit/p-246b1186.entry.js +2 -0
  429. package/dist/dso-toolkit/{p-c93fae9e.entry.js.map → p-246b1186.entry.js.map} +1 -1
  430. package/dist/dso-toolkit/p-3300fe1e.entry.js +2 -0
  431. package/dist/dso-toolkit/p-3300fe1e.entry.js.map +1 -0
  432. package/dist/dso-toolkit/{p-4f56a26d.entry.js → p-3522c1dd.entry.js} +2 -2
  433. package/dist/dso-toolkit/{p-95c85ef7.entry.js → p-391bf858.entry.js} +2 -2
  434. package/dist/dso-toolkit/{p-469b876f.entry.js → p-43564b05.entry.js} +2 -2
  435. package/dist/dso-toolkit/{p-b3a8f101.entry.js → p-443a78e5.entry.js} +2 -2
  436. package/dist/dso-toolkit/{p-3e8bda7c.entry.js → p-4d885de2.entry.js} +2 -2
  437. package/dist/dso-toolkit/{p-f63d51f9.entry.js → p-53466f70.entry.js} +2 -2
  438. package/dist/dso-toolkit/{p-320629e5.entry.js → p-535232c4.entry.js} +2 -2
  439. package/dist/dso-toolkit/{p-cc66c346.entry.js → p-53a81213.entry.js} +2 -2
  440. package/dist/dso-toolkit/{p-86658809.entry.js → p-5c0322dc.entry.js} +2 -2
  441. package/dist/dso-toolkit/{p-3e736489.entry.js → p-633f06a1.entry.js} +2 -2
  442. package/dist/dso-toolkit/p-6a813c6c.entry.js +2 -0
  443. package/dist/dso-toolkit/p-6a813c6c.entry.js.map +1 -0
  444. package/dist/dso-toolkit/{p-009bd60a.entry.js → p-6aff6420.entry.js} +2 -2
  445. package/dist/dso-toolkit/p-6aff6420.entry.js.map +1 -0
  446. package/dist/dso-toolkit/p-7731d7bb.entry.js +2 -0
  447. package/dist/dso-toolkit/{p-41f3732b.entry.js → p-78a12530.entry.js} +2 -2
  448. package/dist/dso-toolkit/p-7cab94ae.entry.js +2 -0
  449. package/dist/dso-toolkit/{p-bfaa3608.entry.js.map → p-7cab94ae.entry.js.map} +1 -1
  450. package/dist/dso-toolkit/p-8128fe57.entry.js +2 -0
  451. package/dist/dso-toolkit/p-8128fe57.entry.js.map +1 -0
  452. package/dist/dso-toolkit/{p-137404b4.entry.js → p-8fd586d4.entry.js} +2 -2
  453. package/dist/dso-toolkit/p-915c332a.entry.js +2 -0
  454. package/dist/dso-toolkit/p-915c332a.entry.js.map +1 -0
  455. package/dist/dso-toolkit/{p-e04ebc7e.entry.js → p-9591777b.entry.js} +2 -2
  456. package/dist/dso-toolkit/{p-D5RszRxh.js → p-Ah0-aaXh.js} +2 -2
  457. package/dist/dso-toolkit/{p-D5RszRxh.js.map → p-Ah0-aaXh.js.map} +1 -1
  458. package/dist/dso-toolkit/p-CtC5362R.js +2 -0
  459. package/dist/dso-toolkit/{p-Ds10WquL.js.map → p-CtC5362R.js.map} +1 -1
  460. package/dist/dso-toolkit/p-DQuL1Twl.js.map +1 -1
  461. package/dist/dso-toolkit/p-Dk013L7v.js +2 -0
  462. package/dist/dso-toolkit/{p-LncMPpG-.js.map → p-Dk013L7v.js.map} +1 -1
  463. package/dist/dso-toolkit/p-DxWmN7gh.js +3 -0
  464. package/dist/dso-toolkit/p-DxWmN7gh.js.map +1 -0
  465. package/dist/dso-toolkit/{p-5b9803a2.entry.js → p-a21f00fc.entry.js} +2 -2
  466. package/dist/dso-toolkit/{p-bcfeeafb.entry.js → p-a735dc9b.entry.js} +2 -2
  467. package/dist/dso-toolkit/{p-e5a25571.entry.js → p-a85afaa8.entry.js} +2 -2
  468. package/dist/dso-toolkit/{p-3d414fae.entry.js → p-aa2f5070.entry.js} +2 -2
  469. package/dist/dso-toolkit/p-ab39576c.entry.js +2 -0
  470. package/dist/dso-toolkit/{p-75091e9b.entry.js.map → p-ab39576c.entry.js.map} +1 -1
  471. package/dist/dso-toolkit/{p-1db24923.entry.js → p-afaee982.entry.js} +2 -2
  472. package/dist/dso-toolkit/p-b0953d50.entry.js +2 -0
  473. package/dist/dso-toolkit/{p-6d3d29ac.entry.js → p-b0cbc330.entry.js} +2 -2
  474. package/dist/dso-toolkit/{p-903c3603.entry.js → p-b245449a.entry.js} +2 -2
  475. package/dist/dso-toolkit/{p-f32bced2.entry.js → p-c359f83e.entry.js} +2 -2
  476. package/dist/dso-toolkit/{p-e9ea10ed.entry.js → p-cc0db296.entry.js} +2 -2
  477. package/dist/dso-toolkit/p-ce057c5c.entry.js +2 -0
  478. package/dist/dso-toolkit/{p-9cf46bde.entry.js.map → p-ce057c5c.entry.js.map} +1 -1
  479. package/dist/dso-toolkit/p-d0e82c62.entry.js +2 -0
  480. package/dist/dso-toolkit/{p-f41b0ba0.entry.js.map → p-d0e82c62.entry.js.map} +1 -1
  481. package/dist/dso-toolkit/{p-5e821c40.entry.js → p-d51d9d66.entry.js} +2 -2
  482. package/dist/dso-toolkit/{p-e7ba6656.entry.js → p-d8a051b5.entry.js} +2 -2
  483. package/dist/dso-toolkit/p-dd5f641f.entry.js +2 -0
  484. package/dist/dso-toolkit/p-dd5f641f.entry.js.map +1 -0
  485. package/dist/dso-toolkit/{p-99b4b85a.entry.js → p-e17fa84d.entry.js} +2 -2
  486. package/dist/dso-toolkit/{p-68cff470.entry.js → p-e8a735ce.entry.js} +2 -2
  487. package/dist/dso-toolkit/{p-8ac044db.entry.js → p-ea71badf.entry.js} +2 -2
  488. package/dist/dso-toolkit/{p-7233cef7.entry.js → p-f055ab17.entry.js} +2 -2
  489. package/dist/dso-toolkit/{p-eb5e5d0e.entry.js → p-f8557ec8.entry.js} +2 -2
  490. package/dist/dso-toolkit/{p-13512a35.entry.js → p-fd42a8cd.entry.js} +2 -2
  491. package/dist/dso-toolkit/p-gdsca1fx.js +2 -0
  492. package/dist/dso-toolkit/p-gdsca1fx.js.map +1 -0
  493. package/dist/esm/{annotation-body-CHp1npGM.js → annotation-body-eL8p8SW9.js} +3 -3
  494. package/dist/esm/{annotation-body-CHp1npGM.js.map → annotation-body-eL8p8SW9.js.map} +1 -1
  495. package/dist/esm/{annotation-list-renvooi-values-D1J_Fugb.js → annotation-list-renvooi-values-Cn6N3SEI.js} +3 -3
  496. package/dist/esm/{annotation-list-renvooi-values-D1J_Fugb.js.map → annotation-list-renvooi-values-Cn6N3SEI.js.map} +1 -1
  497. package/dist/esm/{annotation-watcher-B4Wi05lj.js → annotation-watcher-m3nAgrq7.js} +3 -3
  498. package/dist/esm/{annotation-watcher-B4Wi05lj.js.map → annotation-watcher-m3nAgrq7.js.map} +1 -1
  499. package/dist/esm/app-globals-DQuL1Twl.js.map +1 -1
  500. package/dist/esm/dso-accordion-section.entry.js +1 -1
  501. package/dist/esm/dso-accordion.entry.js +22 -6
  502. package/dist/esm/dso-accordion.entry.js.map +1 -1
  503. package/dist/esm/dso-action-list-item.entry.js +1 -1
  504. package/dist/esm/dso-action-list.entry.js +1 -1
  505. package/dist/esm/dso-advanced-select.entry.js +1 -1
  506. package/dist/esm/dso-alert.dso-badge.dso-image-overlay.dso-ozon-content.dso-panel.dso-table.entry.js.map +1 -1
  507. package/dist/esm/dso-alert_6.entry.js +7 -7
  508. package/dist/esm/dso-alert_6.entry.js.map +1 -1
  509. package/dist/esm/dso-annotation-activiteit.entry.js +5 -5
  510. package/dist/esm/dso-annotation-activiteit.entry.js.map +1 -1
  511. package/dist/esm/dso-annotation-gebiedsaanwijzing.entry.js +4 -4
  512. package/dist/esm/dso-annotation-gebiedsaanwijzing.entry.js.map +1 -1
  513. package/dist/esm/dso-annotation-kaart.entry.js +3 -3
  514. package/dist/esm/dso-annotation-kaart.entry.js.map +1 -1
  515. package/dist/esm/dso-annotation-locatie.dso-document-component.entry.js.map +1 -1
  516. package/dist/esm/dso-annotation-locatie_2.entry.js +6 -6
  517. package/dist/esm/dso-annotation-locatie_2.entry.js.map +1 -1
  518. package/dist/esm/dso-annotation-omgevingsnormwaarde.entry.js +5 -5
  519. package/dist/esm/dso-annotation-omgevingsnormwaarde.entry.js.map +1 -1
  520. package/dist/esm/dso-attachments-counter_2.entry.js +1 -1
  521. package/dist/esm/dso-autosuggest.entry.js +1 -1
  522. package/dist/esm/dso-banner.entry.js +1 -1
  523. package/dist/esm/dso-button-group.entry.js +41 -0
  524. package/dist/esm/dso-button-group.entry.js.map +1 -0
  525. package/dist/esm/dso-card-container.entry.js +2 -2
  526. package/dist/esm/dso-card.entry.js +4 -4
  527. package/dist/esm/dso-card.entry.js.map +1 -1
  528. package/dist/esm/dso-contact-information.entry.js +2 -2
  529. package/dist/esm/dso-date-picker-legacy.entry.js +4 -4
  530. package/dist/esm/dso-date-picker.entry.js +2 -2
  531. package/dist/esm/dso-document-card.entry.js +2 -2
  532. package/dist/esm/dso-dropdown-menu.entry.js +45 -104
  533. package/dist/esm/dso-dropdown-menu.entry.js.map +1 -1
  534. package/dist/esm/dso-header.entry.js +3 -3
  535. package/dist/esm/dso-header.entry.js.map +1 -1
  536. package/dist/esm/dso-highlight-box.entry.js +2 -2
  537. package/dist/esm/dso-icon.entry.js +2 -2
  538. package/dist/esm/dso-info-button.entry.js +2 -2
  539. package/dist/esm/dso-info_2.entry.js +3 -3
  540. package/dist/esm/dso-input-range.entry.js +3 -3
  541. package/dist/esm/dso-label_3.entry.js +5 -5
  542. package/dist/esm/dso-legend-item.entry.js +2 -2
  543. package/dist/esm/dso-list-button.entry.js +2 -2
  544. package/dist/esm/dso-logo.entry.js +2 -2
  545. package/dist/esm/dso-map-base-layers.entry.js +2 -2
  546. package/dist/esm/dso-map-controls.entry.js +4 -4
  547. package/dist/esm/dso-map-controls.entry.js.map +1 -1
  548. package/dist/esm/dso-map-overlays.entry.js +2 -2
  549. package/dist/esm/dso-mark-bar.entry.js +2 -2
  550. package/dist/esm/dso-modal.entry.js +2 -2
  551. package/dist/esm/dso-onboarding-tip.entry.js +3 -1661
  552. package/dist/esm/dso-onboarding-tip.entry.js.map +1 -1
  553. package/dist/esm/dso-pagination.entry.js +2 -2
  554. package/dist/esm/dso-pagination.entry.js.map +1 -1
  555. package/dist/esm/dso-plekinfo-card.entry.js +2 -2
  556. package/dist/esm/dso-progress-bar.entry.js +2 -2
  557. package/dist/esm/dso-progress-indicator.entry.js +2 -2
  558. package/dist/esm/dso-project-item.entry.js +2 -2
  559. package/dist/esm/dso-responsive-element.entry.js +2 -2
  560. package/dist/esm/dso-scrollable.entry.js +3 -3
  561. package/dist/esm/dso-skiplink.entry.js +2 -2
  562. package/dist/esm/dso-survey-rating.entry.js +4 -4
  563. package/dist/esm/dso-tab.entry.js +1 -1
  564. package/dist/esm/dso-tabs.entry.js +2 -2
  565. package/dist/esm/dso-toggletip.entry.js +2 -2
  566. package/dist/esm/dso-toolkit.js +4 -4
  567. package/dist/esm/dso-toolkit.js.map +1 -1
  568. package/dist/esm/dso-tooltip.entry.js +1801 -5
  569. package/dist/esm/dso-tooltip.entry.js.map +1 -1
  570. package/dist/esm/dso-tree-view.entry.js +2 -2
  571. package/dist/esm/dso-viewer-grid.entry.js +3 -4
  572. package/dist/esm/dso-viewer-grid.entry.js.map +1 -1
  573. package/dist/esm/dsot-document-component-demo.entry.js +2 -2
  574. package/dist/esm/floating-ui.dom-gdsca1fx.js +1663 -0
  575. package/dist/esm/floating-ui.dom-gdsca1fx.js.map +1 -0
  576. package/dist/esm/{index-C-b4jsbt.js → index-DxWmN7gh.js} +177 -115
  577. package/dist/esm/index-DxWmN7gh.js.map +1 -0
  578. package/dist/esm/loader.js +3 -3
  579. package/dist/types/components/button-group/button-group.d.ts +16 -0
  580. package/dist/types/components/button-group/button-group.interfaces.d.ts +1 -0
  581. package/dist/types/components/dropdown-menu/dropdown-menu.d.ts +3 -20
  582. package/dist/types/components/map-controls/map-controls.d.ts +2 -2
  583. package/dist/types/components/viewer-grid/viewer-grid.d.ts +1 -5
  584. package/dist/types/components/viewer-grid/viewer-grid.interfaces.d.ts +0 -3
  585. package/dist/types/components.d.ts +209 -33
  586. package/dist/types/stencil-public-runtime.d.ts +13 -6
  587. package/package.json +11 -9
  588. package/dist/bundle/p-CBwbkAC7.js +0 -314
  589. package/dist/bundle/p-CBwbkAC7.js.map +0 -1
  590. package/dist/bundle/p-CagCGFPb.js +0 -80
  591. package/dist/bundle/p-CsY83cJO.js +0 -1801
  592. package/dist/bundle/p-CsY83cJO.js.map +0 -1
  593. package/dist/bundle/p-DHO_Za64.js.map +0 -1
  594. package/dist/bundle/p-Dp31hMfn.js.map +0 -1
  595. package/dist/cjs/has-overflow-B_4p67wC.js +0 -1806
  596. package/dist/cjs/has-overflow-B_4p67wC.js.map +0 -1
  597. package/dist/cjs/index-Bfuot2fD.js.map +0 -1
  598. package/dist/components/has-overflow.js +0 -1801
  599. package/dist/components/has-overflow.js.map +0 -1
  600. package/dist/dso-toolkit/p-009bd60a.entry.js.map +0 -1
  601. package/dist/dso-toolkit/p-11cd688b.entry.js +0 -2
  602. package/dist/dso-toolkit/p-2968e740.entry.js +0 -2
  603. package/dist/dso-toolkit/p-2968e740.entry.js.map +0 -1
  604. package/dist/dso-toolkit/p-5327558b.entry.js +0 -2
  605. package/dist/dso-toolkit/p-75091e9b.entry.js +0 -2
  606. package/dist/dso-toolkit/p-858970da.entry.js +0 -2
  607. package/dist/dso-toolkit/p-858970da.entry.js.map +0 -1
  608. package/dist/dso-toolkit/p-9cf46bde.entry.js +0 -2
  609. package/dist/dso-toolkit/p-C-b4jsbt.js +0 -3
  610. package/dist/dso-toolkit/p-C-b4jsbt.js.map +0 -1
  611. package/dist/dso-toolkit/p-CsY83cJO.js +0 -2
  612. package/dist/dso-toolkit/p-CsY83cJO.js.map +0 -1
  613. package/dist/dso-toolkit/p-Ds10WquL.js +0 -2
  614. package/dist/dso-toolkit/p-LncMPpG-.js +0 -2
  615. package/dist/dso-toolkit/p-a4618476.entry.js.map +0 -1
  616. package/dist/dso-toolkit/p-ad8a1705.entry.js +0 -2
  617. package/dist/dso-toolkit/p-b61f1d16.entry.js +0 -2
  618. package/dist/dso-toolkit/p-b61f1d16.entry.js.map +0 -1
  619. package/dist/dso-toolkit/p-bbcffc90.entry.js +0 -2
  620. package/dist/dso-toolkit/p-bbcffc90.entry.js.map +0 -1
  621. package/dist/dso-toolkit/p-bd7d4a27.entry.js +0 -2
  622. package/dist/dso-toolkit/p-bfaa3608.entry.js +0 -2
  623. package/dist/dso-toolkit/p-c93fae9e.entry.js +0 -2
  624. package/dist/dso-toolkit/p-cad0c5d9.entry.js +0 -2
  625. package/dist/dso-toolkit/p-cad0c5d9.entry.js.map +0 -1
  626. package/dist/dso-toolkit/p-cea64895.entry.js +0 -2
  627. package/dist/dso-toolkit/p-cea64895.entry.js.map +0 -1
  628. package/dist/dso-toolkit/p-f41b0ba0.entry.js +0 -2
  629. package/dist/esm/has-overflow-CsY83cJO.js.map +0 -1
  630. package/dist/esm/index-C-b4jsbt.js.map +0 -1
  631. /package/dist/dso-toolkit/{p-27f7b86f.entry.js.map → p-02491a35.entry.js.map} +0 -0
  632. /package/dist/dso-toolkit/{p-ffa6ca48.entry.js.map → p-03fe514a.entry.js.map} +0 -0
  633. /package/dist/dso-toolkit/{p-071e8dff.entry.js.map → p-04d6ae97.entry.js.map} +0 -0
  634. /package/dist/dso-toolkit/{p-7bedc94d.entry.js.map → p-16255f29.entry.js.map} +0 -0
  635. /package/dist/dso-toolkit/{p-e4907ab7.entry.js.map → p-17219f16.entry.js.map} +0 -0
  636. /package/dist/dso-toolkit/{p-76eb0308.entry.js.map → p-218b1fe3.entry.js.map} +0 -0
  637. /package/dist/dso-toolkit/{p-4f56a26d.entry.js.map → p-3522c1dd.entry.js.map} +0 -0
  638. /package/dist/dso-toolkit/{p-95c85ef7.entry.js.map → p-391bf858.entry.js.map} +0 -0
  639. /package/dist/dso-toolkit/{p-469b876f.entry.js.map → p-43564b05.entry.js.map} +0 -0
  640. /package/dist/dso-toolkit/{p-b3a8f101.entry.js.map → p-443a78e5.entry.js.map} +0 -0
  641. /package/dist/dso-toolkit/{p-3e8bda7c.entry.js.map → p-4d885de2.entry.js.map} +0 -0
  642. /package/dist/dso-toolkit/{p-f63d51f9.entry.js.map → p-53466f70.entry.js.map} +0 -0
  643. /package/dist/dso-toolkit/{p-320629e5.entry.js.map → p-535232c4.entry.js.map} +0 -0
  644. /package/dist/dso-toolkit/{p-cc66c346.entry.js.map → p-53a81213.entry.js.map} +0 -0
  645. /package/dist/dso-toolkit/{p-86658809.entry.js.map → p-5c0322dc.entry.js.map} +0 -0
  646. /package/dist/dso-toolkit/{p-3e736489.entry.js.map → p-633f06a1.entry.js.map} +0 -0
  647. /package/dist/dso-toolkit/{p-5327558b.entry.js.map → p-7731d7bb.entry.js.map} +0 -0
  648. /package/dist/dso-toolkit/{p-41f3732b.entry.js.map → p-78a12530.entry.js.map} +0 -0
  649. /package/dist/dso-toolkit/{p-137404b4.entry.js.map → p-8fd586d4.entry.js.map} +0 -0
  650. /package/dist/dso-toolkit/{p-e04ebc7e.entry.js.map → p-9591777b.entry.js.map} +0 -0
  651. /package/dist/dso-toolkit/{p-5b9803a2.entry.js.map → p-a21f00fc.entry.js.map} +0 -0
  652. /package/dist/dso-toolkit/{p-bcfeeafb.entry.js.map → p-a735dc9b.entry.js.map} +0 -0
  653. /package/dist/dso-toolkit/{p-e5a25571.entry.js.map → p-a85afaa8.entry.js.map} +0 -0
  654. /package/dist/dso-toolkit/{p-3d414fae.entry.js.map → p-aa2f5070.entry.js.map} +0 -0
  655. /package/dist/dso-toolkit/{p-1db24923.entry.js.map → p-afaee982.entry.js.map} +0 -0
  656. /package/dist/dso-toolkit/{p-ad8a1705.entry.js.map → p-b0953d50.entry.js.map} +0 -0
  657. /package/dist/dso-toolkit/{p-6d3d29ac.entry.js.map → p-b0cbc330.entry.js.map} +0 -0
  658. /package/dist/dso-toolkit/{p-903c3603.entry.js.map → p-b245449a.entry.js.map} +0 -0
  659. /package/dist/dso-toolkit/{p-f32bced2.entry.js.map → p-c359f83e.entry.js.map} +0 -0
  660. /package/dist/dso-toolkit/{p-e9ea10ed.entry.js.map → p-cc0db296.entry.js.map} +0 -0
  661. /package/dist/dso-toolkit/{p-5e821c40.entry.js.map → p-d51d9d66.entry.js.map} +0 -0
  662. /package/dist/dso-toolkit/{p-e7ba6656.entry.js.map → p-d8a051b5.entry.js.map} +0 -0
  663. /package/dist/dso-toolkit/{p-99b4b85a.entry.js.map → p-e17fa84d.entry.js.map} +0 -0
  664. /package/dist/dso-toolkit/{p-68cff470.entry.js.map → p-e8a735ce.entry.js.map} +0 -0
  665. /package/dist/dso-toolkit/{p-8ac044db.entry.js.map → p-ea71badf.entry.js.map} +0 -0
  666. /package/dist/dso-toolkit/{p-7233cef7.entry.js.map → p-f055ab17.entry.js.map} +0 -0
  667. /package/dist/dso-toolkit/{p-eb5e5d0e.entry.js.map → p-f8557ec8.entry.js.map} +0 -0
  668. /package/dist/dso-toolkit/{p-13512a35.entry.js.map → p-fd42a8cd.entry.js.map} +0 -0
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-Bfuot2fD.js');
3
+ var index = require('./index-DvLsepiK.js');
4
+ var floatingUi_dom = require('./floating-ui.dom-uZgU2YQo.js');
4
5
  var index_esm = require('./index.esm-DtPCE30D.js');
5
6
  var getActiveElement = require('./get-active-element-DTMk2T2F.js');
6
- var hasOverflow = require('./has-overflow-B_4p67wC.js');
7
7
  var v4 = require('./v4-Br3XC_0C.js');
8
8
 
9
- const dropdownMenuCss = ":host(:focus){outline:none}:host{display:inline-block}";
9
+ const dropdownMenuCss = ":host(:focus){outline:none}:host{display:inline-block}div[popover]{margin:0 !important;border:0;padding:0;background-color:transparent;overflow:unset}";
10
10
 
11
11
  const DropdownMenu = class {
12
12
  constructor(hostRef) {
@@ -28,70 +28,17 @@ const DropdownMenu = class {
28
28
  * Whether the menu is checkable.
29
29
  */
30
30
  this.checkable = false;
31
- /**
32
- * Set position strategy of dropdown options
33
- */
34
- this.strategy = "auto";
35
31
  this.focusOutListener = (event) => {
36
32
  if (this.open &&
37
33
  (!(event.relatedTarget instanceof HTMLElement) || !this.tabbables(true).includes(event.relatedTarget))) {
38
- this.open = false;
34
+ this.toggleOptions(false);
39
35
  }
40
36
  };
41
37
  this.escape = () => {
42
38
  this.button.focus();
43
- this.open = false;
39
+ this.toggleOptions(false);
44
40
  };
45
41
  }
46
- watchPosition() {
47
- if (!this.popper) {
48
- return;
49
- }
50
- this.popper.setOptions({
51
- placement: this.placement || (this.dropdownAlign === "right" ? "bottom-end" : "bottom-start"),
52
- });
53
- }
54
- watchOptionsOffset() {
55
- var _a;
56
- (_a = this.popper) === null || _a === void 0 ? void 0 : _a.setOptions({
57
- modifiers: [
58
- {
59
- name: "offset",
60
- options: {
61
- offset: [0, this.dropdownOptionsOffset],
62
- },
63
- },
64
- ],
65
- });
66
- }
67
- watchStrategy() {
68
- this.setStrategy();
69
- }
70
- setStrategy() {
71
- if (!this.popper) {
72
- return;
73
- }
74
- if (this.strategy === "absolute" || this.strategy === "fixed") {
75
- this.popper.setOptions({
76
- strategy: this.strategy,
77
- });
78
- return;
79
- }
80
- let element = this.host;
81
- const boundary = this.boundary || document;
82
- while (element && element.parentNode !== boundary) {
83
- element = element.parentNode instanceof ShadowRoot ? element.parentNode.host : element.parentElement;
84
- if (element !== null && hasOverflow.hasOverflow(element)) {
85
- this.popper.setOptions({
86
- strategy: "fixed",
87
- });
88
- return;
89
- }
90
- }
91
- this.popper.setOptions({
92
- strategy: "absolute",
93
- });
94
- }
95
42
  get button() {
96
43
  const button = this.host.querySelector('button[slot="toggle"]');
97
44
  if (!(button instanceof HTMLButtonElement)) {
@@ -109,50 +56,20 @@ const DropdownMenu = class {
109
56
  if (!this.button.id) {
110
57
  this.button.id = v4.v4();
111
58
  }
112
- const options = this.host.querySelector(".dso-dropdown-options");
113
- if (!options) {
114
- throw new ReferenceError("Dropdown options not found");
59
+ const dropdownOptionsElement = this.host.querySelector(".dso-dropdown-options");
60
+ if (!(dropdownOptionsElement instanceof HTMLElement)) {
61
+ throw new Error("dropdown options element is not instanceof HTMLElement");
115
62
  }
116
- options.setAttribute("role", "menu");
117
- options.setAttribute("aria-labelledby", this.button.id);
63
+ dropdownOptionsElement.setAttribute("role", "menu");
64
+ dropdownOptionsElement.setAttribute("aria-labelledby", this.button.id);
118
65
  for (const ul of Array.from(this.host.getElementsByTagName("ul"))) {
119
66
  ul.setAttribute("role", "group");
120
67
  for (const li of Array.from(ul.getElementsByTagName("li"))) {
121
68
  li.setAttribute("role", "none");
122
69
  }
123
70
  }
124
- if (this.popper) {
125
- return;
126
- }
127
- const dropdownOptionsElement = this.host.querySelector(".dso-dropdown-options");
128
- if (!(dropdownOptionsElement instanceof HTMLElement)) {
129
- throw new Error("dropdown options element is not instanceof HTMLElement");
130
- }
131
- this.popper = hasOverflow.createPopper(this.button, dropdownOptionsElement, {
132
- placement: this.placement || (this.dropdownAlign === "right" ? "bottom-end" : "bottom-start"),
133
- modifiers: [
134
- {
135
- name: "offset",
136
- options: {
137
- offset: [0, this.dropdownOptionsOffset],
138
- },
139
- },
140
- {
141
- name: "preventOverflow",
142
- options: {
143
- boundary: this.boundary ? document.querySelector(this.boundary) : null,
144
- },
145
- enabled: this.boundary !== undefined,
146
- },
147
- ],
148
- });
149
71
  }
150
72
  componentDidRender() {
151
- var _a;
152
- this.setStrategy();
153
- if (this.open) {
154
- (_a = this.popper) === null || _a === void 0 ? void 0 : _a.update();
155
- }
156
73
  for (const li of Array.from(this.host.getElementsByTagName("li"))) {
157
74
  for (const tab of this.host.isConnected ? index_esm.tabbable(li) : []) {
158
75
  tab.setAttribute("role", this.checkable ? "menuitemradio" : "menuitem");
@@ -162,14 +79,34 @@ const DropdownMenu = class {
162
79
  }
163
80
  }
164
81
  this.button.setAttribute("aria-expanded", this.open ? "true" : "false");
82
+ if (this.popoverElement && !this.cleanUp) {
83
+ const element = this.popoverElement;
84
+ this.cleanUp = floatingUi_dom.autoUpdate(this.button, element, () => {
85
+ floatingUi_dom.computePosition(this.button, element, {
86
+ strategy: "fixed",
87
+ middleware: [
88
+ floatingUi_dom.offset(this.dropdownOptionsOffset),
89
+ floatingUi_dom.flip({
90
+ padding: this.dropdownOptionsOffset,
91
+ }),
92
+ ],
93
+ placement: this.dropdownAlign === "right" ? "bottom-end" : "bottom-start",
94
+ }).then(({ x, y }) => {
95
+ Object.assign(element.style, {
96
+ left: `${x}px`,
97
+ top: `${y}px`,
98
+ });
99
+ });
100
+ });
101
+ }
165
102
  }
166
103
  onClick(event) {
167
104
  const composedPath = event.composedPath();
168
105
  if (this.isToggleButtonEvent(composedPath)) {
169
- this.open = !this.open;
106
+ this.toggleOptions();
170
107
  }
171
108
  else if (this.open && this.isMenuItemEvent(composedPath)) {
172
- this.open = false;
109
+ this.toggleOptions(false);
173
110
  }
174
111
  }
175
112
  isToggleButtonEvent(composedPath) {
@@ -178,9 +115,19 @@ const DropdownMenu = class {
178
115
  isMenuItemEvent(composedPath) {
179
116
  return composedPath.includes(this.host) && !this.isToggleButtonEvent(composedPath);
180
117
  }
118
+ toggleOptions(force) {
119
+ var _a, _b;
120
+ this.open = force !== null && force !== void 0 ? force : !this.open;
121
+ if ((_a = this.popoverElement) === null || _a === void 0 ? void 0 : _a.isConnected) {
122
+ (_b = this.popoverElement) === null || _b === void 0 ? void 0 : _b.togglePopover(this.open);
123
+ }
124
+ if (!this.open && this.cleanUp) {
125
+ this.cleanUp();
126
+ this.cleanUp = undefined;
127
+ }
128
+ }
181
129
  disconnectedCallback() {
182
- var _a;
183
- (_a = this.popper) === null || _a === void 0 ? void 0 : _a.destroy();
130
+ this.toggleOptions(false);
184
131
  }
185
132
  keyDownListener(event) {
186
133
  if (event.defaultPrevented || !this.open) {
@@ -227,15 +174,9 @@ const DropdownMenu = class {
227
174
  (_a = tabbables[nextIndex]) === null || _a === void 0 ? void 0 : _a.focus();
228
175
  }
229
176
  render() {
230
- return (index.h(index.Host, { key: '8600535aa05418e2614dc9856681760986966409', onFocusout: this.focusOutListener }, index.h("slot", { key: '81a01d41c4497ea5564b5733a6beb72b95e11ccc', name: "toggle" }), index.h("div", { key: '0c0ff5f6e19dec3c03e68bee26fc81aba6b47815', hidden: !this.open }, index.h("slot", { key: 'f200133562ea767cba2889a190ec408a7bd8a675' }))));
177
+ return (index.h(index.Host, { key: '9afd8972737639f89ad1a4692630873b783e4565', onFocusout: this.focusOutListener }, index.h("slot", { key: '1dcb47d44aa64263048235e5ef126a9c021fc2d9', name: "toggle" }), index.h("div", { key: 'ad7d1edefabae59820c974da1b2a37088baaf1ce', popover: "manual", ref: (element) => (this.popoverElement = element) }, index.h("slot", { key: 'b2a5188261a9edca8d948365152d817b69104936' }))));
231
178
  }
232
179
  get host() { return index.getElement(this); }
233
- static get watchers() { return {
234
- "placement": ["watchPosition"],
235
- "dropdownAlign": ["watchPosition"],
236
- "dropdownOptionsOffset": ["watchOptionsOffset"],
237
- "strategy": ["watchStrategy"]
238
- }; }
239
180
  };
240
181
  DropdownMenu.style = dropdownMenuCss;
241
182
 
@@ -1 +1 @@
1
- {"file":"dso-dropdown-menu.entry.cjs.js","mappings":"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","names":["hasOverflow","tabbable","uuidv4","createPopper","getActiveElement","h","Host"],"sources":["src/components/dropdown-menu/dropdown-menu.scss?tag=dso-dropdown-menu&encapsulation=shadow","src/components/dropdown-menu/dropdown-menu.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/components/dropdown-menu\";\r\n\r\n:host(:focus) {\r\n outline: none;\r\n}\r\n\r\n:host {\r\n @include dropdown-menu.root();\r\n}\r\n","import { Instance as PopperInstance, Placement, createPopper } from \"@popperjs/core\";\r\nimport { Component, Element, Host, Listen, Prop, Watch, h } from \"@stencil/core\";\r\nimport { FocusableElement, tabbable } from \"tabbable\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\n\r\nimport { getActiveElement } from \"../../utils/get-active-element\";\r\nimport { hasOverflow } from \"../../utils/has-overflow\";\r\n\r\n@Component({\r\n tag: \"dso-dropdown-menu\",\r\n styleUrl: \"dropdown-menu.scss\",\r\n shadow: true,\r\n})\r\nexport class DropdownMenu {\r\n /**\r\n * Whether the menu is open or closed.\r\n * This attribute is reflected and mutable.\r\n */\r\n @Prop({ reflect: true, mutable: true })\r\n open = false;\r\n\r\n /**\r\n * Alignment of the dropdown\r\n */\r\n @Prop()\r\n dropdownAlign: \"left\" | \"right\" = \"left\";\r\n\r\n /**\r\n * Space between button and dropdown options\r\n */\r\n @Prop()\r\n dropdownOptionsOffset = 2;\r\n\r\n /**\r\n * Whether the menu is checkable.\r\n */\r\n @Prop()\r\n checkable = false;\r\n\r\n /**\r\n * Selector for the element the dropdown options should not be overflowing.\r\n */\r\n @Prop()\r\n boundary?: string;\r\n\r\n /**\r\n * Force placement of dropdown.\r\n *\r\n * This property overrides `dropdownAlign`.\r\n */\r\n @Prop()\r\n placement?: Placement;\r\n\r\n /**\r\n * Set position strategy of dropdown options\r\n */\r\n @Prop()\r\n strategy: \"auto\" | \"absolute\" | \"fixed\" = \"auto\";\r\n\r\n @Watch(\"placement\")\r\n @Watch(\"dropdownAlign\")\r\n watchPosition() {\r\n if (!this.popper) {\r\n return;\r\n }\r\n\r\n this.popper.setOptions({\r\n placement: this.placement || (this.dropdownAlign === \"right\" ? \"bottom-end\" : \"bottom-start\"),\r\n });\r\n }\r\n\r\n @Watch(\"dropdownOptionsOffset\")\r\n watchOptionsOffset() {\r\n this.popper?.setOptions({\r\n modifiers: [\r\n {\r\n name: \"offset\",\r\n options: {\r\n offset: [0, this.dropdownOptionsOffset],\r\n },\r\n },\r\n ],\r\n });\r\n }\r\n\r\n @Watch(\"strategy\")\r\n watchStrategy() {\r\n this.setStrategy();\r\n }\r\n\r\n private setStrategy() {\r\n if (!this.popper) {\r\n return;\r\n }\r\n\r\n if (this.strategy === \"absolute\" || this.strategy === \"fixed\") {\r\n this.popper.setOptions({\r\n strategy: this.strategy,\r\n });\r\n\r\n return;\r\n }\r\n\r\n let element: Element | null = this.host;\r\n\r\n const boundary = this.boundary || document;\r\n\r\n while (element && element.parentNode !== boundary) {\r\n element = element.parentNode instanceof ShadowRoot ? element.parentNode.host : element.parentElement;\r\n if (element !== null && hasOverflow(element)) {\r\n this.popper.setOptions({\r\n strategy: \"fixed\",\r\n });\r\n\r\n return;\r\n }\r\n }\r\n\r\n this.popper.setOptions({\r\n strategy: \"absolute\",\r\n });\r\n }\r\n\r\n @Element()\r\n host!: HTMLDsoDropdownMenuElement;\r\n\r\n private popper: PopperInstance | undefined;\r\n\r\n get button(): HTMLButtonElement {\r\n const button = this.host.querySelector('button[slot=\"toggle\"]');\r\n\r\n if (!(button instanceof HTMLButtonElement)) {\r\n throw new ReferenceError(\"Mandatory toggle button not found\");\r\n }\r\n\r\n return button;\r\n }\r\n\r\n private tabbables(withButton: boolean): FocusableElement[] {\r\n const tabbables = this.host.isConnected ? tabbable(this.host) : [];\r\n\r\n return withButton ? tabbables : tabbables.filter((element) => element !== this.button);\r\n }\r\n\r\n componentDidLoad() {\r\n this.button.setAttribute(\"aria-haspopup\", \"menu\");\r\n this.button.setAttribute(\"aria-expanded\", \"false\");\r\n if (!this.button.id) {\r\n this.button.id = uuidv4();\r\n }\r\n\r\n const options = this.host.querySelector(\".dso-dropdown-options\");\r\n if (!options) {\r\n throw new ReferenceError(\"Dropdown options not found\");\r\n }\r\n\r\n options.setAttribute(\"role\", \"menu\");\r\n options.setAttribute(\"aria-labelledby\", this.button.id);\r\n\r\n for (const ul of Array.from(this.host.getElementsByTagName(\"ul\"))) {\r\n ul.setAttribute(\"role\", \"group\");\r\n for (const li of Array.from(ul.getElementsByTagName(\"li\"))) {\r\n li.setAttribute(\"role\", \"none\");\r\n }\r\n }\r\n\r\n if (this.popper) {\r\n return;\r\n }\r\n\r\n const dropdownOptionsElement = this.host.querySelector(\".dso-dropdown-options\");\r\n\r\n if (!(dropdownOptionsElement instanceof HTMLElement)) {\r\n throw new Error(\"dropdown options element is not instanceof HTMLElement\");\r\n }\r\n\r\n this.popper = createPopper(this.button, dropdownOptionsElement, {\r\n placement: this.placement || (this.dropdownAlign === \"right\" ? \"bottom-end\" : \"bottom-start\"),\r\n modifiers: [\r\n {\r\n name: \"offset\",\r\n options: {\r\n offset: [0, this.dropdownOptionsOffset],\r\n },\r\n },\r\n {\r\n name: \"preventOverflow\",\r\n options: {\r\n boundary: this.boundary ? document.querySelector(this.boundary) : null,\r\n },\r\n enabled: this.boundary !== undefined,\r\n },\r\n ],\r\n });\r\n }\r\n\r\n componentDidRender() {\r\n this.setStrategy();\r\n if (this.open) {\r\n this.popper?.update();\r\n }\r\n\r\n for (const li of Array.from(this.host.getElementsByTagName(\"li\"))) {\r\n for (const tab of this.host.isConnected ? tabbable(li) : []) {\r\n tab.setAttribute(\"role\", this.checkable ? \"menuitemradio\" : \"menuitem\");\r\n\r\n if (this.checkable) {\r\n tab.setAttribute(\"aria-checked\", li.classList.contains(\"dso-checked\").toString());\r\n }\r\n }\r\n }\r\n\r\n this.button.setAttribute(\"aria-expanded\", this.open ? \"true\" : \"false\");\r\n }\r\n\r\n @Listen(\"click\", { target: \"window\" })\r\n onClick(event: MouseEvent) {\r\n const composedPath = event.composedPath();\r\n\r\n if (this.isToggleButtonEvent(composedPath)) {\r\n this.open = !this.open;\r\n } else if (this.open && this.isMenuItemEvent(composedPath)) {\r\n this.open = false;\r\n }\r\n }\r\n\r\n private isToggleButtonEvent(composedPath: EventTarget[]) {\r\n return composedPath.includes(this.button);\r\n }\r\n\r\n private isMenuItemEvent(composedPath: EventTarget[]) {\r\n return composedPath.includes(this.host) && !this.isToggleButtonEvent(composedPath);\r\n }\r\n\r\n disconnectedCallback() {\r\n this.popper?.destroy();\r\n }\r\n\r\n private focusOutListener = (event: FocusEvent) => {\r\n if (\r\n this.open &&\r\n (!(event.relatedTarget instanceof HTMLElement) || !this.tabbables(true).includes(event.relatedTarget))\r\n ) {\r\n this.open = false;\r\n }\r\n };\r\n\r\n @Listen(\"keydown\", { target: \"window\" })\r\n keyDownListener(event: KeyboardEvent) {\r\n if (event.defaultPrevented || !this.open) {\r\n return;\r\n }\r\n\r\n switch (event.key) {\r\n case \"Tab\":\r\n if (event.shiftKey) {\r\n this.tabInPopup(this.tabbables(true), -1);\r\n } else {\r\n this.tabInPopup(this.tabbables(true), 1);\r\n }\r\n\r\n break;\r\n case \"ArrowDown\":\r\n this.tabInPopup(this.tabbables(false), 1);\r\n break;\r\n\r\n case \"ArrowUp\":\r\n this.tabInPopup(this.tabbables(false), -1);\r\n break;\r\n\r\n case \"Escape\":\r\n this.escape();\r\n break;\r\n\r\n case \" \":\r\n if (event.target instanceof HTMLElement) {\r\n event.target.click();\r\n }\r\n\r\n break;\r\n\r\n default:\r\n return;\r\n }\r\n\r\n event.preventDefault();\r\n }\r\n\r\n private tabInPopup(tabbables: FocusableElement[], direction: number) {\r\n const currentIndex = tabbables.findIndex((e) => e === getActiveElement());\r\n\r\n let nextIndex = currentIndex + direction;\r\n if (nextIndex >= tabbables.length) {\r\n nextIndex = 0;\r\n } else if (nextIndex < 0) {\r\n nextIndex = tabbables.length - 1;\r\n }\r\n\r\n tabbables[nextIndex]?.focus();\r\n }\r\n\r\n private escape = () => {\r\n this.button.focus();\r\n this.open = false;\r\n };\r\n\r\n render() {\r\n return (\r\n <Host onFocusout={this.focusOutListener}>\r\n <slot name=\"toggle\" />\r\n <div hidden={!this.open}>\r\n <slot />\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
1
+ {"file":"dso-dropdown-menu.entry.cjs.js","mappings":"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","names":["tabbable","uuidv4","autoUpdate","computePosition","offset","flip","getActiveElement","h","Host"],"sources":["src/components/dropdown-menu/dropdown-menu.scss?tag=dso-dropdown-menu&encapsulation=shadow","src/components/dropdown-menu/dropdown-menu.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/components/dropdown-menu\";\r\n\r\n:host(:focus) {\r\n outline: none;\r\n}\r\n\r\n:host {\r\n @include dropdown-menu.root();\r\n}\r\n\r\ndiv[popover] {\r\n margin: 0 !important;\r\n border: 0;\r\n padding: 0;\r\n background-color: transparent;\r\n overflow: unset;\r\n}\r\n","import { autoUpdate, computePosition, flip, offset } from \"@floating-ui/dom\";\r\nimport { Component, Element, Host, Listen, Prop, h } from \"@stencil/core\";\r\nimport { FocusableElement, tabbable } from \"tabbable\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\n\r\nimport { getActiveElement } from \"../../utils/get-active-element\";\r\n\r\n@Component({\r\n tag: \"dso-dropdown-menu\",\r\n styleUrl: \"dropdown-menu.scss\",\r\n shadow: true,\r\n})\r\nexport class DropdownMenu {\r\n /**\r\n * Whether the menu is open or closed.\r\n * This attribute is reflected and mutable.\r\n */\r\n @Prop({ reflect: true, mutable: true })\r\n open = false;\r\n\r\n /**\r\n * Alignment of the dropdown\r\n */\r\n @Prop()\r\n dropdownAlign: \"left\" | \"right\" = \"left\";\r\n\r\n /**\r\n * Space between button and dropdown options\r\n */\r\n @Prop()\r\n dropdownOptionsOffset = 2;\r\n\r\n /**\r\n * Whether the menu is checkable.\r\n */\r\n @Prop()\r\n checkable = false;\r\n\r\n @Element()\r\n host!: HTMLDsoDropdownMenuElement;\r\n\r\n private cleanUp: ReturnType<typeof autoUpdate> | undefined;\r\n\r\n private popoverElement: HTMLDivElement | undefined;\r\n\r\n get button(): HTMLButtonElement {\r\n const button = this.host.querySelector('button[slot=\"toggle\"]');\r\n\r\n if (!(button instanceof HTMLButtonElement)) {\r\n throw new ReferenceError(\"Mandatory toggle button not found\");\r\n }\r\n\r\n return button;\r\n }\r\n\r\n private tabbables(withButton: boolean): FocusableElement[] {\r\n const tabbables = this.host.isConnected ? tabbable(this.host) : [];\r\n\r\n return withButton ? tabbables : tabbables.filter((element) => element !== this.button);\r\n }\r\n\r\n componentDidLoad() {\r\n this.button.setAttribute(\"aria-haspopup\", \"menu\");\r\n this.button.setAttribute(\"aria-expanded\", \"false\");\r\n if (!this.button.id) {\r\n this.button.id = uuidv4();\r\n }\r\n\r\n const dropdownOptionsElement = this.host.querySelector(\".dso-dropdown-options\");\r\n\r\n if (!(dropdownOptionsElement instanceof HTMLElement)) {\r\n throw new Error(\"dropdown options element is not instanceof HTMLElement\");\r\n }\r\n\r\n dropdownOptionsElement.setAttribute(\"role\", \"menu\");\r\n dropdownOptionsElement.setAttribute(\"aria-labelledby\", this.button.id);\r\n\r\n for (const ul of Array.from(this.host.getElementsByTagName(\"ul\"))) {\r\n ul.setAttribute(\"role\", \"group\");\r\n for (const li of Array.from(ul.getElementsByTagName(\"li\"))) {\r\n li.setAttribute(\"role\", \"none\");\r\n }\r\n }\r\n }\r\n\r\n componentDidRender() {\r\n for (const li of Array.from(this.host.getElementsByTagName(\"li\"))) {\r\n for (const tab of this.host.isConnected ? tabbable(li) : []) {\r\n tab.setAttribute(\"role\", this.checkable ? \"menuitemradio\" : \"menuitem\");\r\n\r\n if (this.checkable) {\r\n tab.setAttribute(\"aria-checked\", li.classList.contains(\"dso-checked\").toString());\r\n }\r\n }\r\n }\r\n\r\n this.button.setAttribute(\"aria-expanded\", this.open ? \"true\" : \"false\");\r\n\r\n if (this.popoverElement && !this.cleanUp) {\r\n const element = this.popoverElement;\r\n this.cleanUp = autoUpdate(this.button, element, () => {\r\n computePosition(this.button, element, {\r\n strategy: \"fixed\",\r\n middleware: [\r\n offset(this.dropdownOptionsOffset),\r\n flip({\r\n padding: this.dropdownOptionsOffset,\r\n }),\r\n ],\r\n placement: this.dropdownAlign === \"right\" ? \"bottom-end\" : \"bottom-start\",\r\n }).then(({ x, y }) => {\r\n Object.assign(element.style, {\r\n left: `${x}px`,\r\n top: `${y}px`,\r\n });\r\n });\r\n });\r\n }\r\n }\r\n\r\n @Listen(\"click\", { target: \"window\" })\r\n onClick(event: MouseEvent) {\r\n const composedPath = event.composedPath();\r\n\r\n if (this.isToggleButtonEvent(composedPath)) {\r\n this.toggleOptions();\r\n } else if (this.open && this.isMenuItemEvent(composedPath)) {\r\n this.toggleOptions(false);\r\n }\r\n }\r\n\r\n private isToggleButtonEvent(composedPath: EventTarget[]) {\r\n return composedPath.includes(this.button);\r\n }\r\n\r\n private isMenuItemEvent(composedPath: EventTarget[]) {\r\n return composedPath.includes(this.host) && !this.isToggleButtonEvent(composedPath);\r\n }\r\n\r\n private toggleOptions(force?: boolean) {\r\n this.open = force ?? !this.open;\r\n if (this.popoverElement?.isConnected) {\r\n this.popoverElement?.togglePopover(this.open);\r\n }\r\n\r\n if (!this.open && this.cleanUp) {\r\n this.cleanUp();\r\n this.cleanUp = undefined;\r\n }\r\n }\r\n\r\n disconnectedCallback() {\r\n this.toggleOptions(false);\r\n }\r\n\r\n private focusOutListener = (event: FocusEvent) => {\r\n if (\r\n this.open &&\r\n (!(event.relatedTarget instanceof HTMLElement) || !this.tabbables(true).includes(event.relatedTarget))\r\n ) {\r\n this.toggleOptions(false);\r\n }\r\n };\r\n\r\n @Listen(\"keydown\", { target: \"window\" })\r\n keyDownListener(event: KeyboardEvent) {\r\n if (event.defaultPrevented || !this.open) {\r\n return;\r\n }\r\n\r\n switch (event.key) {\r\n case \"Tab\":\r\n if (event.shiftKey) {\r\n this.tabInPopup(this.tabbables(true), -1);\r\n } else {\r\n this.tabInPopup(this.tabbables(true), 1);\r\n }\r\n\r\n break;\r\n case \"ArrowDown\":\r\n this.tabInPopup(this.tabbables(false), 1);\r\n break;\r\n\r\n case \"ArrowUp\":\r\n this.tabInPopup(this.tabbables(false), -1);\r\n break;\r\n\r\n case \"Escape\":\r\n this.escape();\r\n break;\r\n\r\n case \" \":\r\n if (event.target instanceof HTMLElement) {\r\n event.target.click();\r\n }\r\n\r\n break;\r\n\r\n default:\r\n return;\r\n }\r\n\r\n event.preventDefault();\r\n }\r\n\r\n private tabInPopup(tabbables: FocusableElement[], direction: number) {\r\n const currentIndex = tabbables.findIndex((e) => e === getActiveElement());\r\n\r\n let nextIndex = currentIndex + direction;\r\n if (nextIndex >= tabbables.length) {\r\n nextIndex = 0;\r\n } else if (nextIndex < 0) {\r\n nextIndex = tabbables.length - 1;\r\n }\r\n\r\n tabbables[nextIndex]?.focus();\r\n }\r\n\r\n private escape = () => {\r\n this.button.focus();\r\n this.toggleOptions(false);\r\n };\r\n\r\n render() {\r\n return (\r\n <Host onFocusout={this.focusOutListener}>\r\n <slot name=\"toggle\" />\r\n <div popover=\"manual\" ref={(element) => (this.popoverElement = element)}>\r\n <slot />\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
@@ -1 +1 @@
1
- {"version":3,"file":"dso-dropdown-menu.entry.cjs.js","sources":["src/components/dropdown-menu/dropdown-menu.scss?tag=dso-dropdown-menu&encapsulation=shadow","src/components/dropdown-menu/dropdown-menu.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/components/dropdown-menu\";\r\n\r\n:host(:focus) {\r\n outline: none;\r\n}\r\n\r\n:host {\r\n @include dropdown-menu.root();\r\n}\r\n","import { Instance as PopperInstance, Placement, createPopper } from \"@popperjs/core\";\r\nimport { Component, Element, Host, Listen, Prop, Watch, h } from \"@stencil/core\";\r\nimport { FocusableElement, tabbable } from \"tabbable\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\n\r\nimport { getActiveElement } from \"../../utils/get-active-element\";\r\nimport { hasOverflow } from \"../../utils/has-overflow\";\r\n\r\n@Component({\r\n tag: \"dso-dropdown-menu\",\r\n styleUrl: \"dropdown-menu.scss\",\r\n shadow: true,\r\n})\r\nexport class DropdownMenu {\r\n /**\r\n * Whether the menu is open or closed.\r\n * This attribute is reflected and mutable.\r\n */\r\n @Prop({ reflect: true, mutable: true })\r\n open = false;\r\n\r\n /**\r\n * Alignment of the dropdown\r\n */\r\n @Prop()\r\n dropdownAlign: \"left\" | \"right\" = \"left\";\r\n\r\n /**\r\n * Space between button and dropdown options\r\n */\r\n @Prop()\r\n dropdownOptionsOffset = 2;\r\n\r\n /**\r\n * Whether the menu is checkable.\r\n */\r\n @Prop()\r\n checkable = false;\r\n\r\n /**\r\n * Selector for the element the dropdown options should not be overflowing.\r\n */\r\n @Prop()\r\n boundary?: string;\r\n\r\n /**\r\n * Force placement of dropdown.\r\n *\r\n * This property overrides `dropdownAlign`.\r\n */\r\n @Prop()\r\n placement?: Placement;\r\n\r\n /**\r\n * Set position strategy of dropdown options\r\n */\r\n @Prop()\r\n strategy: \"auto\" | \"absolute\" | \"fixed\" = \"auto\";\r\n\r\n @Watch(\"placement\")\r\n @Watch(\"dropdownAlign\")\r\n watchPosition() {\r\n if (!this.popper) {\r\n return;\r\n }\r\n\r\n this.popper.setOptions({\r\n placement: this.placement || (this.dropdownAlign === \"right\" ? \"bottom-end\" : \"bottom-start\"),\r\n });\r\n }\r\n\r\n @Watch(\"dropdownOptionsOffset\")\r\n watchOptionsOffset() {\r\n this.popper?.setOptions({\r\n modifiers: [\r\n {\r\n name: \"offset\",\r\n options: {\r\n offset: [0, this.dropdownOptionsOffset],\r\n },\r\n },\r\n ],\r\n });\r\n }\r\n\r\n @Watch(\"strategy\")\r\n watchStrategy() {\r\n this.setStrategy();\r\n }\r\n\r\n private setStrategy() {\r\n if (!this.popper) {\r\n return;\r\n }\r\n\r\n if (this.strategy === \"absolute\" || this.strategy === \"fixed\") {\r\n this.popper.setOptions({\r\n strategy: this.strategy,\r\n });\r\n\r\n return;\r\n }\r\n\r\n let element: Element | null = this.host;\r\n\r\n const boundary = this.boundary || document;\r\n\r\n while (element && element.parentNode !== boundary) {\r\n element = element.parentNode instanceof ShadowRoot ? element.parentNode.host : element.parentElement;\r\n if (element !== null && hasOverflow(element)) {\r\n this.popper.setOptions({\r\n strategy: \"fixed\",\r\n });\r\n\r\n return;\r\n }\r\n }\r\n\r\n this.popper.setOptions({\r\n strategy: \"absolute\",\r\n });\r\n }\r\n\r\n @Element()\r\n host!: HTMLDsoDropdownMenuElement;\r\n\r\n private popper: PopperInstance | undefined;\r\n\r\n get button(): HTMLButtonElement {\r\n const button = this.host.querySelector('button[slot=\"toggle\"]');\r\n\r\n if (!(button instanceof HTMLButtonElement)) {\r\n throw new ReferenceError(\"Mandatory toggle button not found\");\r\n }\r\n\r\n return button;\r\n }\r\n\r\n private tabbables(withButton: boolean): FocusableElement[] {\r\n const tabbables = this.host.isConnected ? tabbable(this.host) : [];\r\n\r\n return withButton ? tabbables : tabbables.filter((element) => element !== this.button);\r\n }\r\n\r\n componentDidLoad() {\r\n this.button.setAttribute(\"aria-haspopup\", \"menu\");\r\n this.button.setAttribute(\"aria-expanded\", \"false\");\r\n if (!this.button.id) {\r\n this.button.id = uuidv4();\r\n }\r\n\r\n const options = this.host.querySelector(\".dso-dropdown-options\");\r\n if (!options) {\r\n throw new ReferenceError(\"Dropdown options not found\");\r\n }\r\n\r\n options.setAttribute(\"role\", \"menu\");\r\n options.setAttribute(\"aria-labelledby\", this.button.id);\r\n\r\n for (const ul of Array.from(this.host.getElementsByTagName(\"ul\"))) {\r\n ul.setAttribute(\"role\", \"group\");\r\n for (const li of Array.from(ul.getElementsByTagName(\"li\"))) {\r\n li.setAttribute(\"role\", \"none\");\r\n }\r\n }\r\n\r\n if (this.popper) {\r\n return;\r\n }\r\n\r\n const dropdownOptionsElement = this.host.querySelector(\".dso-dropdown-options\");\r\n\r\n if (!(dropdownOptionsElement instanceof HTMLElement)) {\r\n throw new Error(\"dropdown options element is not instanceof HTMLElement\");\r\n }\r\n\r\n this.popper = createPopper(this.button, dropdownOptionsElement, {\r\n placement: this.placement || (this.dropdownAlign === \"right\" ? \"bottom-end\" : \"bottom-start\"),\r\n modifiers: [\r\n {\r\n name: \"offset\",\r\n options: {\r\n offset: [0, this.dropdownOptionsOffset],\r\n },\r\n },\r\n {\r\n name: \"preventOverflow\",\r\n options: {\r\n boundary: this.boundary ? document.querySelector(this.boundary) : null,\r\n },\r\n enabled: this.boundary !== undefined,\r\n },\r\n ],\r\n });\r\n }\r\n\r\n componentDidRender() {\r\n this.setStrategy();\r\n if (this.open) {\r\n this.popper?.update();\r\n }\r\n\r\n for (const li of Array.from(this.host.getElementsByTagName(\"li\"))) {\r\n for (const tab of this.host.isConnected ? tabbable(li) : []) {\r\n tab.setAttribute(\"role\", this.checkable ? \"menuitemradio\" : \"menuitem\");\r\n\r\n if (this.checkable) {\r\n tab.setAttribute(\"aria-checked\", li.classList.contains(\"dso-checked\").toString());\r\n }\r\n }\r\n }\r\n\r\n this.button.setAttribute(\"aria-expanded\", this.open ? \"true\" : \"false\");\r\n }\r\n\r\n @Listen(\"click\", { target: \"window\" })\r\n onClick(event: MouseEvent) {\r\n const composedPath = event.composedPath();\r\n\r\n if (this.isToggleButtonEvent(composedPath)) {\r\n this.open = !this.open;\r\n } else if (this.open && this.isMenuItemEvent(composedPath)) {\r\n this.open = false;\r\n }\r\n }\r\n\r\n private isToggleButtonEvent(composedPath: EventTarget[]) {\r\n return composedPath.includes(this.button);\r\n }\r\n\r\n private isMenuItemEvent(composedPath: EventTarget[]) {\r\n return composedPath.includes(this.host) && !this.isToggleButtonEvent(composedPath);\r\n }\r\n\r\n disconnectedCallback() {\r\n this.popper?.destroy();\r\n }\r\n\r\n private focusOutListener = (event: FocusEvent) => {\r\n if (\r\n this.open &&\r\n (!(event.relatedTarget instanceof HTMLElement) || !this.tabbables(true).includes(event.relatedTarget))\r\n ) {\r\n this.open = false;\r\n }\r\n };\r\n\r\n @Listen(\"keydown\", { target: \"window\" })\r\n keyDownListener(event: KeyboardEvent) {\r\n if (event.defaultPrevented || !this.open) {\r\n return;\r\n }\r\n\r\n switch (event.key) {\r\n case \"Tab\":\r\n if (event.shiftKey) {\r\n this.tabInPopup(this.tabbables(true), -1);\r\n } else {\r\n this.tabInPopup(this.tabbables(true), 1);\r\n }\r\n\r\n break;\r\n case \"ArrowDown\":\r\n this.tabInPopup(this.tabbables(false), 1);\r\n break;\r\n\r\n case \"ArrowUp\":\r\n this.tabInPopup(this.tabbables(false), -1);\r\n break;\r\n\r\n case \"Escape\":\r\n this.escape();\r\n break;\r\n\r\n case \" \":\r\n if (event.target instanceof HTMLElement) {\r\n event.target.click();\r\n }\r\n\r\n break;\r\n\r\n default:\r\n return;\r\n }\r\n\r\n event.preventDefault();\r\n }\r\n\r\n private tabInPopup(tabbables: FocusableElement[], direction: number) {\r\n const currentIndex = tabbables.findIndex((e) => e === getActiveElement());\r\n\r\n let nextIndex = currentIndex + direction;\r\n if (nextIndex >= tabbables.length) {\r\n nextIndex = 0;\r\n } else if (nextIndex < 0) {\r\n nextIndex = tabbables.length - 1;\r\n }\r\n\r\n tabbables[nextIndex]?.focus();\r\n }\r\n\r\n private escape = () => {\r\n this.button.focus();\r\n this.open = false;\r\n };\r\n\r\n render() {\r\n return (\r\n <Host onFocusout={this.focusOutListener}>\r\n <slot name=\"toggle\" />\r\n <div hidden={!this.open}>\r\n <slot />\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"names":["hasOverflow","tabbable","uuidv4","createPopper","getActiveElement","h","Host"],"mappings":"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"}
1
+ {"version":3,"file":"dso-dropdown-menu.entry.cjs.js","sources":["src/components/dropdown-menu/dropdown-menu.scss?tag=dso-dropdown-menu&encapsulation=shadow","src/components/dropdown-menu/dropdown-menu.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/components/dropdown-menu\";\r\n\r\n:host(:focus) {\r\n outline: none;\r\n}\r\n\r\n:host {\r\n @include dropdown-menu.root();\r\n}\r\n\r\ndiv[popover] {\r\n margin: 0 !important;\r\n border: 0;\r\n padding: 0;\r\n background-color: transparent;\r\n overflow: unset;\r\n}\r\n","import { autoUpdate, computePosition, flip, offset } from \"@floating-ui/dom\";\r\nimport { Component, Element, Host, Listen, Prop, h } from \"@stencil/core\";\r\nimport { FocusableElement, tabbable } from \"tabbable\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\n\r\nimport { getActiveElement } from \"../../utils/get-active-element\";\r\n\r\n@Component({\r\n tag: \"dso-dropdown-menu\",\r\n styleUrl: \"dropdown-menu.scss\",\r\n shadow: true,\r\n})\r\nexport class DropdownMenu {\r\n /**\r\n * Whether the menu is open or closed.\r\n * This attribute is reflected and mutable.\r\n */\r\n @Prop({ reflect: true, mutable: true })\r\n open = false;\r\n\r\n /**\r\n * Alignment of the dropdown\r\n */\r\n @Prop()\r\n dropdownAlign: \"left\" | \"right\" = \"left\";\r\n\r\n /**\r\n * Space between button and dropdown options\r\n */\r\n @Prop()\r\n dropdownOptionsOffset = 2;\r\n\r\n /**\r\n * Whether the menu is checkable.\r\n */\r\n @Prop()\r\n checkable = false;\r\n\r\n @Element()\r\n host!: HTMLDsoDropdownMenuElement;\r\n\r\n private cleanUp: ReturnType<typeof autoUpdate> | undefined;\r\n\r\n private popoverElement: HTMLDivElement | undefined;\r\n\r\n get button(): HTMLButtonElement {\r\n const button = this.host.querySelector('button[slot=\"toggle\"]');\r\n\r\n if (!(button instanceof HTMLButtonElement)) {\r\n throw new ReferenceError(\"Mandatory toggle button not found\");\r\n }\r\n\r\n return button;\r\n }\r\n\r\n private tabbables(withButton: boolean): FocusableElement[] {\r\n const tabbables = this.host.isConnected ? tabbable(this.host) : [];\r\n\r\n return withButton ? tabbables : tabbables.filter((element) => element !== this.button);\r\n }\r\n\r\n componentDidLoad() {\r\n this.button.setAttribute(\"aria-haspopup\", \"menu\");\r\n this.button.setAttribute(\"aria-expanded\", \"false\");\r\n if (!this.button.id) {\r\n this.button.id = uuidv4();\r\n }\r\n\r\n const dropdownOptionsElement = this.host.querySelector(\".dso-dropdown-options\");\r\n\r\n if (!(dropdownOptionsElement instanceof HTMLElement)) {\r\n throw new Error(\"dropdown options element is not instanceof HTMLElement\");\r\n }\r\n\r\n dropdownOptionsElement.setAttribute(\"role\", \"menu\");\r\n dropdownOptionsElement.setAttribute(\"aria-labelledby\", this.button.id);\r\n\r\n for (const ul of Array.from(this.host.getElementsByTagName(\"ul\"))) {\r\n ul.setAttribute(\"role\", \"group\");\r\n for (const li of Array.from(ul.getElementsByTagName(\"li\"))) {\r\n li.setAttribute(\"role\", \"none\");\r\n }\r\n }\r\n }\r\n\r\n componentDidRender() {\r\n for (const li of Array.from(this.host.getElementsByTagName(\"li\"))) {\r\n for (const tab of this.host.isConnected ? tabbable(li) : []) {\r\n tab.setAttribute(\"role\", this.checkable ? \"menuitemradio\" : \"menuitem\");\r\n\r\n if (this.checkable) {\r\n tab.setAttribute(\"aria-checked\", li.classList.contains(\"dso-checked\").toString());\r\n }\r\n }\r\n }\r\n\r\n this.button.setAttribute(\"aria-expanded\", this.open ? \"true\" : \"false\");\r\n\r\n if (this.popoverElement && !this.cleanUp) {\r\n const element = this.popoverElement;\r\n this.cleanUp = autoUpdate(this.button, element, () => {\r\n computePosition(this.button, element, {\r\n strategy: \"fixed\",\r\n middleware: [\r\n offset(this.dropdownOptionsOffset),\r\n flip({\r\n padding: this.dropdownOptionsOffset,\r\n }),\r\n ],\r\n placement: this.dropdownAlign === \"right\" ? \"bottom-end\" : \"bottom-start\",\r\n }).then(({ x, y }) => {\r\n Object.assign(element.style, {\r\n left: `${x}px`,\r\n top: `${y}px`,\r\n });\r\n });\r\n });\r\n }\r\n }\r\n\r\n @Listen(\"click\", { target: \"window\" })\r\n onClick(event: MouseEvent) {\r\n const composedPath = event.composedPath();\r\n\r\n if (this.isToggleButtonEvent(composedPath)) {\r\n this.toggleOptions();\r\n } else if (this.open && this.isMenuItemEvent(composedPath)) {\r\n this.toggleOptions(false);\r\n }\r\n }\r\n\r\n private isToggleButtonEvent(composedPath: EventTarget[]) {\r\n return composedPath.includes(this.button);\r\n }\r\n\r\n private isMenuItemEvent(composedPath: EventTarget[]) {\r\n return composedPath.includes(this.host) && !this.isToggleButtonEvent(composedPath);\r\n }\r\n\r\n private toggleOptions(force?: boolean) {\r\n this.open = force ?? !this.open;\r\n if (this.popoverElement?.isConnected) {\r\n this.popoverElement?.togglePopover(this.open);\r\n }\r\n\r\n if (!this.open && this.cleanUp) {\r\n this.cleanUp();\r\n this.cleanUp = undefined;\r\n }\r\n }\r\n\r\n disconnectedCallback() {\r\n this.toggleOptions(false);\r\n }\r\n\r\n private focusOutListener = (event: FocusEvent) => {\r\n if (\r\n this.open &&\r\n (!(event.relatedTarget instanceof HTMLElement) || !this.tabbables(true).includes(event.relatedTarget))\r\n ) {\r\n this.toggleOptions(false);\r\n }\r\n };\r\n\r\n @Listen(\"keydown\", { target: \"window\" })\r\n keyDownListener(event: KeyboardEvent) {\r\n if (event.defaultPrevented || !this.open) {\r\n return;\r\n }\r\n\r\n switch (event.key) {\r\n case \"Tab\":\r\n if (event.shiftKey) {\r\n this.tabInPopup(this.tabbables(true), -1);\r\n } else {\r\n this.tabInPopup(this.tabbables(true), 1);\r\n }\r\n\r\n break;\r\n case \"ArrowDown\":\r\n this.tabInPopup(this.tabbables(false), 1);\r\n break;\r\n\r\n case \"ArrowUp\":\r\n this.tabInPopup(this.tabbables(false), -1);\r\n break;\r\n\r\n case \"Escape\":\r\n this.escape();\r\n break;\r\n\r\n case \" \":\r\n if (event.target instanceof HTMLElement) {\r\n event.target.click();\r\n }\r\n\r\n break;\r\n\r\n default:\r\n return;\r\n }\r\n\r\n event.preventDefault();\r\n }\r\n\r\n private tabInPopup(tabbables: FocusableElement[], direction: number) {\r\n const currentIndex = tabbables.findIndex((e) => e === getActiveElement());\r\n\r\n let nextIndex = currentIndex + direction;\r\n if (nextIndex >= tabbables.length) {\r\n nextIndex = 0;\r\n } else if (nextIndex < 0) {\r\n nextIndex = tabbables.length - 1;\r\n }\r\n\r\n tabbables[nextIndex]?.focus();\r\n }\r\n\r\n private escape = () => {\r\n this.button.focus();\r\n this.toggleOptions(false);\r\n };\r\n\r\n render() {\r\n return (\r\n <Host onFocusout={this.focusOutListener}>\r\n <slot name=\"toggle\" />\r\n <div popover=\"manual\" ref={(element) => (this.popoverElement = element)}>\r\n <slot />\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"names":["tabbable","uuidv4","autoUpdate","computePosition","offset","flip","getActiveElement","h","Host"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-Bfuot2fD.js');
3
+ var index = require('./index-DvLsepiK.js');
4
4
  var clsx = require('./clsx-BtxeOLZW.js');
5
5
  var index$1 = require('./index-D8QM7CRO.js');
6
6
  var i18n = require('./i18n-yRiEgk_k.js');
@@ -153,10 +153,10 @@ const Header = class {
153
153
  ["use-drop-down"]: this.showDropDown,
154
154
  }), ref: (element) => (this.wrapper = element) }, index.h("div", { class: "logo-container" }, index.h("slot", { name: "logo" })), this.showDropDown &&
155
155
  this.mainMenu &&
156
- (this.mainMenu.length > 0 || this.userHomeUrl || this.authStatus !== "none") && (index.h("div", { class: "dropdown" }, index.h("dso-dropdown-menu", { "dropdown-align": "right", strategy: "absolute", dropdownOptionsOffset: this.dropdownOptionsOffset, ref: (element) => (this.dropdownElement = element) }, index.h("button", { type: "button", slot: "toggle" }, index.h("span", null, this.text("menu")), index.h("dso-icon", { icon: "chevron-down" })), index.h("div", { class: "dso-dropdown-options" }, index.h("ul", null, this.mainMenu.map(this.MenuItem), this.userHomeUrl && (index.h("li", null, index.h("a", { href: this.userHomeUrl, onClick: (e) => this.clickHandler(e, "userHome", { url: this.userHomeUrl }) }, this.text("userHome")))), this.userProfileUrl && this.userProfileName && this.authStatus === "loggedIn" && (index.h("li", null, index.h("a", { href: this.userProfileUrl, onClick: (e) => this.clickHandler(e, "profile", { url: this.userProfileUrl }) }, this.userProfileName, index.h("span", { class: "profile-label" }, " - Mijn profiel")))), this.authStatus === "loggedOut" && (index.h("li", null, this.loginUrl ? (index.h("a", { href: this.loginUrl, onClick: (e) => this.clickHandler(e, "login", { url: this.loginUrl }) }, this.text("login"))) : (index.h("button", { type: "button", onClick: (e) => this.clickHandler(e, "login") }, this.text("login"))))), this.authStatus === "loggedIn" && (index.h("li", null, this.logoutUrl ? (index.h("a", { href: this.logoutUrl, onClick: (e) => this.clickHandler(e, "logout", { url: this.logoutUrl }) }, this.text("logout"))) : (index.h("button", { type: "button", onClick: (e) => this.clickHandler(e, "logout") }, this.text("logout"))))), this.showHelp && (index.h("li", null, this.helpUrl ? (index.h("a", { href: this.helpUrl, class: "dso-tertiary", onClick: (e) => this.clickHandler(e, "help", { url: this.helpUrl }) }, index.h("span", null, this.text("help")), index.h("dso-icon", { icon: "help" }))) : (index.h("button", { type: "button", class: "dso-tertiary", onClick: (e) => this.clickHandler(e, "help") }, index.h("span", null, this.text("help")), index.h("dso-icon", { icon: "help" })))))))))), !this.showDropDown && (index.h(index.Fragment, null, index.h("div", { class: "dso-header-session" }, this.userProfileUrl && this.userProfileName && this.authStatus === "loggedIn" && (index.h("div", { class: "profile" }, index.h("a", { href: this.userProfileUrl, class: "dso-tertiary", onClick: (e) => this.clickHandler(e, "profile", { url: this.userProfileUrl }) }, this.userProfileName))), this.authStatus === "loggedOut" && (index.h("div", { class: "login" }, this.loginUrl ? (index.h("a", { href: this.loginUrl, class: "dso-tertiary", onClick: (e) => this.clickHandler(e, "login", { url: this.loginUrl }) }, this.text("login"))) : (index.h("button", { class: "dso-tertiary", type: "button", onClick: (e) => this.clickHandler(e, "login") }, this.text("login"))))), this.authStatus === "loggedIn" && (index.h("div", { class: "logout" }, this.logoutUrl ? (index.h("a", { href: this.logoutUrl, class: "dso-tertiary", onClick: (e) => this.clickHandler(e, "logout", { url: this.logoutUrl }) }, this.text("logout"))) : (index.h("button", { class: "dso-tertiary", type: "button", onClick: (e) => this.clickHandler(e, "logout") }, this.text("logout"))))), this.showHelp && (index.h("div", { class: "help" }, this.helpUrl ? (index.h("a", { href: this.helpUrl, class: "dso-tertiary", onClick: (e) => this.clickHandler(e, "help", { url: this.helpUrl }) }, index.h("span", null, this.text("help")), index.h("dso-icon", { icon: "help" }))) : (index.h("button", { class: "dso-tertiary", type: "button", onClick: (e) => this.clickHandler(e, "help") }, index.h("span", null, this.text("help")), index.h("dso-icon", { icon: "help" })))))), ((this.mainMenu && this.mainMenu.length > 0) || this.userHomeUrl) && (index.h("nav", { class: "dso-navbar" }, index.h("ul", { class: "dso-nav dso-nav-main", ref: (element) => (this.nav = element) }, this.mainMenu &&
156
+ (this.mainMenu.length > 0 || this.userHomeUrl || this.authStatus !== "none") && (index.h("div", { class: "dropdown" }, index.h("dso-dropdown-menu", { "dropdown-align": "right", dropdownOptionsOffset: this.dropdownOptionsOffset, ref: (element) => (this.dropdownElement = element) }, index.h("button", { type: "button", slot: "toggle" }, index.h("span", null, this.text("menu")), index.h("dso-icon", { icon: "chevron-down" })), index.h("div", { class: "dso-dropdown-options" }, index.h("ul", null, this.mainMenu.map(this.MenuItem), this.userHomeUrl && (index.h("li", null, index.h("a", { href: this.userHomeUrl, onClick: (e) => this.clickHandler(e, "userHome", { url: this.userHomeUrl }) }, this.text("userHome")))), this.userProfileUrl && this.userProfileName && this.authStatus === "loggedIn" && (index.h("li", null, index.h("a", { href: this.userProfileUrl, onClick: (e) => this.clickHandler(e, "profile", { url: this.userProfileUrl }) }, this.userProfileName, index.h("span", { class: "profile-label" }, " - Mijn profiel")))), this.authStatus === "loggedOut" && (index.h("li", null, this.loginUrl ? (index.h("a", { href: this.loginUrl, onClick: (e) => this.clickHandler(e, "login", { url: this.loginUrl }) }, this.text("login"))) : (index.h("button", { type: "button", onClick: (e) => this.clickHandler(e, "login") }, this.text("login"))))), this.authStatus === "loggedIn" && (index.h("li", null, this.logoutUrl ? (index.h("a", { href: this.logoutUrl, onClick: (e) => this.clickHandler(e, "logout", { url: this.logoutUrl }) }, this.text("logout"))) : (index.h("button", { type: "button", onClick: (e) => this.clickHandler(e, "logout") }, this.text("logout"))))), this.showHelp && (index.h("li", null, this.helpUrl ? (index.h("a", { href: this.helpUrl, class: "dso-tertiary", onClick: (e) => this.clickHandler(e, "help", { url: this.helpUrl }) }, index.h("span", null, this.text("help")), index.h("dso-icon", { icon: "help" }))) : (index.h("button", { type: "button", class: "dso-tertiary", onClick: (e) => this.clickHandler(e, "help") }, index.h("span", null, this.text("help")), index.h("dso-icon", { icon: "help" })))))))))), !this.showDropDown && (index.h(index.Fragment, null, index.h("div", { class: "dso-header-session" }, this.userProfileUrl && this.userProfileName && this.authStatus === "loggedIn" && (index.h("div", { class: "profile" }, index.h("a", { href: this.userProfileUrl, class: "dso-tertiary", onClick: (e) => this.clickHandler(e, "profile", { url: this.userProfileUrl }) }, this.userProfileName))), this.authStatus === "loggedOut" && (index.h("div", { class: "login" }, this.loginUrl ? (index.h("a", { href: this.loginUrl, class: "dso-tertiary", onClick: (e) => this.clickHandler(e, "login", { url: this.loginUrl }) }, this.text("login"))) : (index.h("button", { class: "dso-tertiary", type: "button", onClick: (e) => this.clickHandler(e, "login") }, this.text("login"))))), this.authStatus === "loggedIn" && (index.h("div", { class: "logout" }, this.logoutUrl ? (index.h("a", { href: this.logoutUrl, class: "dso-tertiary", onClick: (e) => this.clickHandler(e, "logout", { url: this.logoutUrl }) }, this.text("logout"))) : (index.h("button", { class: "dso-tertiary", type: "button", onClick: (e) => this.clickHandler(e, "logout") }, this.text("logout"))))), this.showHelp && (index.h("div", { class: "help" }, this.helpUrl ? (index.h("a", { href: this.helpUrl, class: "dso-tertiary", onClick: (e) => this.clickHandler(e, "help", { url: this.helpUrl }) }, index.h("span", null, this.text("help")), index.h("dso-icon", { icon: "help" }))) : (index.h("button", { class: "dso-tertiary", type: "button", onClick: (e) => this.clickHandler(e, "help") }, index.h("span", null, this.text("help")), index.h("dso-icon", { icon: "help" })))))), ((this.mainMenu && this.mainMenu.length > 0) || this.userHomeUrl) && (index.h("nav", { class: "dso-navbar" }, index.h("ul", { class: "dso-nav dso-nav-main", ref: (element) => (this.nav = element) }, this.mainMenu &&
157
157
  this.mainMenu
158
158
  .filter((_, index) => this.mainMenu && index < this.mainMenu.length - this.overflowMenuItems)
159
- .map(this.MenuItem), this.overflowMenuItems > 0 && (index.h("li", null, index.h("dso-dropdown-menu", { placement: "bottom" }, index.h("button", { type: "button", slot: "toggle" }, index.h("span", null, this.text("overflowMenu")), index.h("dso-icon", { icon: "chevron-down" })), index.h("div", { class: "dso-dropdown-options" }, index.h("ul", null, this.mainMenu &&
159
+ .map(this.MenuItem), this.overflowMenuItems > 0 && (index.h("li", null, index.h("dso-dropdown-menu", null, index.h("button", { type: "button", slot: "toggle" }, index.h("span", null, this.text("overflowMenu")), index.h("dso-icon", { icon: "chevron-down" })), index.h("div", { class: "dso-dropdown-options" }, index.h("ul", null, this.mainMenu &&
160
160
  this.mainMenu
161
161
  .filter((_, index) => this.mainMenu && index >= this.mainMenu.length - this.overflowMenuItems)
162
162
  .map(this.MenuItem)))))), this.userHomeUrl && (index.h("li", { class: clsx.clsx("menu-user-home", { "dso-active": this.userHomeActive }) }, index.h("a", { href: this.userHomeUrl, "aria-current": this.userHomeActive ? "page" : undefined, onClick: (e) => this.clickHandler(e, "userHome", { url: this.userHomeUrl }) }, index.h("dso-icon", { icon: "user-line" }), this.text("userHome"))))))))))));
@@ -1 +1 @@
1
- {"file":"dso-header.entry.cjs.js","mappings":";;;;;;;;;AAEO,MAAM,YAAY,GAAa;AACpC,IAAA,EAAE,EAAE;AACF,QAAA,YAAY,EAAE;AACZ,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,KAAK,EAAE,QAAQ;AACf,YAAA,MAAM,EAAE,SAAS;AACjB,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,YAAY,EAAE,MAAM;AACrB,SAAA;AACF,KAAA;AACD,IAAA,EAAE,EAAE;AACF,QAAA,YAAY,EAAE;AACZ,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,KAAK,EAAE,UAAU;AACjB,YAAA,MAAM,EAAE,WAAW;AACnB,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,YAAY,EAAE,MAAM;AACpB,YAAA,QAAQ,EAAE,qBAAqB;AAChC,SAAA;AACF,KAAA;CACF;;ACtBD,MAAM,SAAS,GAAG,omPAAomP;;ACUtnP,MAAM,uBAAuB,GAAG,GAAG;MAOtB,MAAM,GAAA,MAAA;AALnB,IAAA,WAAA,CAAA,OAAA,EAAA;;;AAyBE;;AAEG;AAEH,QAAA,IAAQ,CAAA,QAAA,GAAsB,EAAE;AAEhC;;AAEG;AAEH,QAAA,IAAe,CAAA,eAAA,GAAsB,MAAM;AAE3C;;AAEG;AAEH,QAAA,IAAU,CAAA,UAAA,GAAsC,MAAM;AAgBtD;;AAEG;AAEH,QAAA,IAAQ,CAAA,QAAA,GAAI,KAAK;AAqCjB,QAAA,IAAiB,CAAA,iBAAA,GAAG,CAAC;AAGrB,QAAA,IAAqB,CAAA,qBAAA,GAAG,CAAC;AAyCjB,QAAA,IAAA,CAAA,IAAI,GAAGA,SAAI,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC;AAwD1C,QAAA,IAAA,CAAA,cAAc,GAAGC,gBAAQ,CAAC,MAAK;;YACrC,CAAA,EAAA,GAAA,IAAI,CAAC,eAAe,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,eAAe,CAAC,MAAM,CAAC;YAC7C,CAAA,EAAA,GAAA,IAAI,CAAC,eAAe,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,eAAe,CAAC,UAAU,CAAC;YAEjD,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,eAAe,EAAE;AAEtB,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,gBAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,8BAA8B,EAAE;;SAErE,EAAE,GAAG,CAAC;AAUC,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,IAAoB,KAAI;AAC1C,YAAA,QACEC,OAAA,CAAA,IAAA,EAAA,EAAI,KAAK,EAAE,IAAI,CAAC,MAAM,GAAG,YAAY,GAAG,SAAS,EAAA,EAC/CA,OACE,CAAA,GAAA,EAAA,EAAA,IAAI,EAAE,IAAI,CAAC,GAAG,EACA,cAAA,EAAA,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,SAAS,EAC9C,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAEnE,EAAA,IAAI,CAAC,KAAK,CACT,CACD;AAET,SAAC;AAsOF;AAtcS,IAAA,YAAY,CAClB,CAAa,EACb,IAA0B,EAC1B,OAAqD,EAAA;;AAErD,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AACvB,YAAA,aAAa,EAAE,CAAC;AAChB,YAAA,eAAe,EAAEC,+BAAe,CAAC,CAAC,CAAC;YACnC,IAAI;AACJ,YAAA,QAAQ,EAAE,OAAO,KAAA,IAAA,IAAP,OAAO,KAAP,MAAA,GAAA,MAAA,GAAA,OAAO,CAAE,QAAQ;AAC3B,YAAA,GAAG,EAAE,CAAA,EAAA,GAAA,OAAO,aAAP,OAAO,KAAA,MAAA,GAAA,MAAA,GAAP,OAAO,CAAE,GAAG,mCAAI,CAAA,EAAA,GAAA,OAAO,aAAP,OAAO,KAAA,MAAA,GAAA,MAAA,GAAP,OAAO,CAAE,QAAQ,0CAAE,GAAG;AAC5C,SAAA,CAAC;;AA+FJ,IAAA,eAAe,CAAC,KAAwB,EAAA;AACtC,QAAA,IAAI,KAAK,KAAK,MAAM,EAAE;YACpB,IAAI,CAAC,eAAe,EAAE;YAEtB;;AAGF,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,KAAK,QAAQ;;IAOhC,eAAe,GAAA;QACrB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YAC9B;;AAGF,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE;YACpD;;AAGF,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YACnE;;QAGF,IAAI,CAAC,iBAAiB,EAAE;;IAK1B,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAC1B;;AAGF,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,8BAA8B,EAAE;YAElE;;AAGF,QAAA,MAAM,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;;IAGpD,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC;AAE1C,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,8BAA8B,EAAE;;;IAI9D,eAAe,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB;;AAGF,QAAA,IAAI,IAAI,CAAC,iBAAiB,KAAK,CAAC,EAAE;AAChC,YAAA,IAAI,CAAC,iBAAiB,GAAG,CAAC;YAC1B;;QAGF,IAAI,CAAC,eAAe,EAAE;;IAGhB,eAAe,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,eAAe,KAAK,MAAM,EAAE;YACnC;;QAGF,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,UAAU,GAAG,uBAAuB;;IAGzD,8BAA8B,GAAA;;AACpC,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACzB,YAAA,OAAO,CAAC;;AAGV,QAAA,QACE,IAAI,CAAC,IAAI,CAAC,YAAY;AACtB,aAAC,CAAA,MAAA,IAAI,CAAC,eAAe,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,qBAAqB,GAAG,MAAM,IAAG,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,GAAG,CAAC;;IAgBlG,iBAAiB,GAAA;QACf,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC;;IAGxD,oBAAoB,GAAA;QAClB,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC;;IAiB3D,MAAM,GAAA;;AAEJ,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE;YACnC;;AAGF,QAAA,QACED,OAAA,CAAAE,cAAA,EAAA,IAAA,EACEF,OAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAEG,SAAI,CAAC,YAAY,EAAE;AACxB,gBAAA,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY;AACrC,aAAA,CAAC,EACF,GAAG,EAAE,CAAC,OAAO,MAAM,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,EAAA,EAE1CH,OAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,gBAAgB,EAAA,EACzBA,OAAA,CAAA,MAAA,EAAA,EAAM,IAAI,EAAC,MAAM,EAAA,CAAG,CAChB,EACL,IAAI,CAAC,YAAY;AAChB,YAAA,IAAI,CAAC,QAAQ;AACb,aAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,KAAK,MAAM,CAAC,KAC1EA,OAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,UAAU,EAAA,EACnBA,OACiB,CAAA,mBAAA,EAAA,EAAA,gBAAA,EAAA,OAAO,EACtB,QAAQ,EAAC,UAAU,EACnB,qBAAqB,EAAE,IAAI,CAAC,qBAAqB,EACjD,GAAG,EAAE,CAAC,OAAO,MAAM,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,EAAA,EAElDA,OAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,EAAA,EACjCA,OAAA,CAAA,MAAA,EAAA,IAAA,EAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAQ,EAChCA,OAAA,CAAA,UAAA,EAAA,EAAU,IAAI,EAAC,cAAc,EAAA,CAAY,CAClC,EACTA,OAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,sBAAsB,EAAA,EAC/BA,OAAA,CAAA,IAAA,EAAA,IAAA,EACG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAChC,IAAI,CAAC,WAAW,KACfA,OAAA,CAAA,IAAA,EAAA,IAAA,EACEA,OAAA,CAAA,GAAA,EAAA,EACE,IAAI,EAAE,IAAI,CAAC,WAAW,EACtB,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,EAE1E,EAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CACpB,CACD,CACN,EACA,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,KAC5EA,OAAA,CAAA,IAAA,EAAA,IAAA,EACEA,OAAA,CAAA,GAAA,EAAA,EACE,IAAI,EAAE,IAAI,CAAC,cAAc,EACzB,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,EAAA,EAE5E,IAAI,CAAC,eAAe,EACrBA,OAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,eAAe,EAAuB,EAAA,iBAAA,CAAA,CAChD,CACD,CACN,EACA,IAAI,CAAC,UAAU,KAAK,WAAW,KAC9BA,oBACG,IAAI,CAAC,QAAQ,IACZA,eACE,IAAI,EAAE,IAAI,CAAC,QAAQ,EACnB,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAA,EAEpE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CACjB,KAEJA,oBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,IAChE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CACZ,CACV,CACE,CACN,EACA,IAAI,CAAC,UAAU,KAAK,UAAU,KAC7BA,oBACG,IAAI,CAAC,SAAS,IACbA,eACE,IAAI,EAAE,IAAI,CAAC,SAAS,EACpB,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,EAAA,EAEtE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAClB,KAEJA,oBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,IACjE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CACb,CACV,CACE,CACN,EACA,IAAI,CAAC,QAAQ,KACZA,oBACG,IAAI,CAAC,OAAO,IACXA,OAAA,CAAA,GAAA,EAAA,EACE,IAAI,EAAE,IAAI,CAAC,OAAO,EAClB,KAAK,EAAC,cAAc,EACpB,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,EAAA,EAEnEA,OAAA,CAAA,MAAA,EAAA,IAAA,EAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAQ,EAChCA,OAAA,CAAA,UAAA,EAAA,EAAU,IAAI,EAAC,MAAM,EAAA,CAAY,CAC/B,KAEJA,OAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,cAAc,EAAC,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,EAAA,EACrFA,OAAA,CAAA,MAAA,EAAA,IAAA,EAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAQ,EAChCA,OAAA,CAAA,UAAA,EAAA,EAAU,IAAI,EAAC,MAAM,EAAA,CAAY,CAC1B,CACV,CACE,CACN,CACE,CACD,CACY,CAChB,CACP,EACF,CAAC,IAAI,CAAC,YAAY,KACjBA,OAAA,CAAAE,cAAA,EAAA,IAAA,EACEF,OAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,oBAAoB,EAAA,EAC5B,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,KAC5EA,OAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,SAAS,EAAA,EAClBA,OAAA,CAAA,GAAA,EAAA,EACE,IAAI,EAAE,IAAI,CAAC,cAAc,EACzB,KAAK,EAAC,cAAc,EACpB,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,EAE5E,EAAA,IAAI,CAAC,eAAe,CACnB,CACA,CACP,EACA,IAAI,CAAC,UAAU,KAAK,WAAW,KAC9BA,OAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,OAAO,IACf,IAAI,CAAC,QAAQ,IACZA,OAAA,CAAA,GAAA,EAAA,EACE,IAAI,EAAE,IAAI,CAAC,QAAQ,EACnB,KAAK,EAAC,cAAc,EACpB,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,IAEpE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CACjB,KAEJA,oBAAQ,KAAK,EAAC,cAAc,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,EACrF,EAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CACZ,CACV,CACG,CACP,EACA,IAAI,CAAC,UAAU,KAAK,UAAU,KAC7BA,OAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,QAAQ,IAChB,IAAI,CAAC,SAAS,IACbA,OAAA,CAAA,GAAA,EAAA,EACE,IAAI,EAAE,IAAI,CAAC,SAAS,EACpB,KAAK,EAAC,cAAc,EACpB,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,IAEtE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAClB,KAEJA,oBAAQ,KAAK,EAAC,cAAc,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,EACtF,EAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CACb,CACV,CACG,CACP,EACA,IAAI,CAAC,QAAQ,KACZA,iBAAK,KAAK,EAAC,MAAM,EAAA,EACd,IAAI,CAAC,OAAO,IACXA,OAAA,CAAA,GAAA,EAAA,EACE,IAAI,EAAE,IAAI,CAAC,OAAO,EAClB,KAAK,EAAC,cAAc,EACpB,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,EAAA,EAEnEA,OAAA,CAAA,MAAA,EAAA,IAAA,EAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAQ,EAChCA,OAAA,CAAA,UAAA,EAAA,EAAU,IAAI,EAAC,MAAM,EAAA,CAAY,CAC/B,KAEJA,OAAA,CAAA,QAAA,EAAA,EAAQ,KAAK,EAAC,cAAc,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,EAAA,EACrFA,OAAA,CAAA,MAAA,EAAA,IAAA,EAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAQ,EAChCA,OAAU,CAAA,UAAA,EAAA,EAAA,IAAI,EAAC,MAAM,EAAA,CAAY,CAC1B,CACV,CACG,CACP,CACG,EACL,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,KAAK,IAAI,CAAC,WAAW,MAC/DA,OAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,YAAY,EAAA,EACrBA,OAAA,CAAA,IAAA,EAAA,EAAI,KAAK,EAAC,sBAAsB,EAAC,GAAG,EAAE,CAAC,OAAO,MAAM,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,EAAA,EACpE,IAAI,CAAC,QAAQ;AACZ,YAAA,IAAI,CAAC;iBACF,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB;AAC3F,iBAAA,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EACtB,IAAI,CAAC,iBAAiB,GAAG,CAAC,KACzBA,OAAA,CAAA,IAAA,EAAA,IAAA,EACEA,OAAmB,CAAA,mBAAA,EAAA,EAAA,SAAS,EAAC,QAAQ,EAAA,EACnCA,OAAA,CAAA,QAAA,EAAA,EAAQ,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,EAAA,EACjCA,OAAA,CAAA,MAAA,EAAA,IAAA,EAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAQ,EACxCA,OAAA,CAAA,UAAA,EAAA,EAAU,IAAI,EAAC,cAAc,EAAA,CAAY,CAClC,EACTA,OAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,sBAAsB,EAAA,EAC/BA,OACG,CAAA,IAAA,EAAA,IAAA,EAAA,IAAI,CAAC,QAAQ;AACZ,YAAA,IAAI,CAAC;iBACF,MAAM,CACL,CAAC,CAAC,EAAE,KAAK,KACP,IAAI,CAAC,QAAQ,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB;iBAE1E,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CACpB,CACD,CACY,CACjB,CACN,EACA,IAAI,CAAC,WAAW,KACfA,OAAI,CAAA,IAAA,EAAA,EAAA,KAAK,EAAEG,SAAI,CAAC,gBAAgB,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,EAAA,EACtEH,OAAA,CAAA,GAAA,EAAA,EACE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAA,cAAA,EACR,IAAI,CAAC,cAAc,GAAG,MAAM,GAAG,SAAS,EACtD,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,EAAA,EAE3EA,OAAU,CAAA,UAAA,EAAA,EAAA,IAAI,EAAC,WAAW,EAAY,CAAA,EACrC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CACpB,CACD,CACN,CACE,CACD,CACP,CACA,CACJ,CACG,CACL;;;;;;;;;;;","names":["i18n","debounce","h","isModifiedEvent","Fragment","clsx"],"sources":["src/components/header/header.i18n.ts","src/components/header/header.scss?tag=dso-header&encapsulation=shadow","src/components/header/header.tsx"],"sourcesContent":["import { Resource } from \"../../utils/i18n\";\r\n\r\nexport const translations: Resource = {\r\n en: {\r\n \"dso-header\": {\r\n menu: \"Menu\",\r\n login: \"Log in\",\r\n logout: \"Log out\",\r\n help: \"Help\",\r\n overflowMenu: \"More\",\r\n },\r\n },\r\n nl: {\r\n \"dso-header\": {\r\n menu: \"Menu\",\r\n login: \"Inloggen\",\r\n logout: \"Uitloggen\",\r\n help: \"Help\",\r\n overflowMenu: \"Meer\",\r\n userHome: \"Mijn Omgevingsloket\",\r\n },\r\n },\r\n};\r\n","@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/media-query-breakpoints\";\r\n@use \"~dso-toolkit/src/variables/typography\";\r\n\r\n@use \"~dso-toolkit/src/components/link\";\r\n@use \"~dso-toolkit/src/components/dropdown-menu\";\r\n\r\n@use \"header.variables\" as core-header-variables;\r\n\r\n@include utilities.box-sizing();\r\n\r\n@mixin nav-item-border($color) {\r\n border-block-end: 4px solid $color;\r\n}\r\n\r\n@mixin nav-item-main {\r\n font-size: 1.25em;\r\n line-height: 1;\r\n margin-block-start: units.$u1;\r\n padding-block: units.$u2;\r\n padding-inline: 0;\r\n}\r\n\r\n:host {\r\n display: block;\r\n}\r\n\r\n.dso-header {\r\n border-block-end: 1px solid colors.$grijs-20;\r\n display: flex;\r\n flex-wrap: wrap;\r\n position: relative;\r\n\r\n @media screen and (min-width: media-query-breakpoints.$screen-sm-min) {\r\n align-items: center;\r\n }\r\n\r\n @media screen and (max-width: media-query-breakpoints.$screen-sm-max) {\r\n &.use-drop-down {\r\n flex-wrap: nowrap;\r\n }\r\n }\r\n\r\n .dso-nav {\r\n border: 0;\r\n }\r\n}\r\n\r\n.logo-container {\r\n flex: 1 1 12.5rem;\r\n margin-inline-end: units.$u3;\r\n padding-block-end: units.$u2;\r\n padding-block-start: units.$u2;\r\n}\r\n\r\n.dso-header-session {\r\n display: flex;\r\n align-items: center;\r\n margin-inline-start: auto;\r\n\r\n .profile,\r\n .login,\r\n .logout,\r\n .help {\r\n .dso-tertiary {\r\n display: flex;\r\n gap: 0.5rem;\r\n\r\n cursor: pointer;\r\n\r\n border: 0;\r\n\r\n background-color: transparent;\r\n\r\n padding-inline-start: 0;\r\n\r\n outline-offset: 2px;\r\n\r\n font-family: typography.$font-family-base;\r\n color: colors.$grasgroen;\r\n font-size: 1rem;\r\n font-weight: 600;\r\n line-height: 1.5;\r\n text-decoration: none;\r\n\r\n &:hover {\r\n text-decoration: underline;\r\n }\r\n }\r\n }\r\n\r\n .profile + .logout,\r\n .logout + .help,\r\n .login + .help {\r\n border-inline-start: 3px solid colors.$grijs-20;\r\n margin-inline-start: units.$u1;\r\n padding-inline-start: units.$u1;\r\n }\r\n\r\n .help {\r\n a,\r\n button {\r\n display: flex;\r\n }\r\n }\r\n}\r\n\r\n.dso-navbar {\r\n flex-basis: 100%;\r\n}\r\n\r\ndso-dropdown-menu {\r\n @include dropdown-menu.children();\r\n\r\n button {\r\n background-color: transparent;\r\n border: 0;\r\n display: flex;\r\n font-family: typography.$font-family-base;\r\n align-items: center;\r\n position: relative;\r\n\r\n dso-icon {\r\n inline-size: units.$u3;\r\n block-size: units.$u3;\r\n margin-inline-start: units.$u1;\r\n padding-block-start: units.$u1 * 0.25;\r\n }\r\n\r\n &[aria-expanded=\"true\"] {\r\n dso-icon {\r\n transform: rotate(180deg);\r\n }\r\n }\r\n }\r\n\r\n .dso-dropdown-options {\r\n border: 0;\r\n border-radius: 0;\r\n box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.4);\r\n\r\n @media screen and (min-width: media-query-breakpoints.$screen-sm-min) {\r\n inline-size: 375px;\r\n }\r\n\r\n @media screen and (max-width: media-query-breakpoints.$screen-xs-max) {\r\n inline-size: 100%;\r\n }\r\n\r\n ul {\r\n margin: 0;\r\n padding: 0;\r\n list-style: none;\r\n\r\n li {\r\n a,\r\n button {\r\n display: block;\r\n padding: units.$u2;\r\n color: colors.$bosgroen;\r\n font-size: 1.25rem;\r\n white-space: pre-wrap;\r\n text-decoration: none;\r\n\r\n &:focus-visible {\r\n background-color: colors.$grasgroen;\r\n color: colors.$wit;\r\n }\r\n\r\n &:hover {\r\n background-color: colors.$wit;\r\n color: colors.$bosgroen;\r\n text-decoration: underline;\r\n }\r\n\r\n &:visited {\r\n color: colors.$bosgroen;\r\n }\r\n }\r\n\r\n button {\r\n inline-size: 100%;\r\n text-align: start;\r\n\r\n dso-icon {\r\n margin-inline-start: units.$u1;\r\n }\r\n }\r\n\r\n &.dso-active {\r\n a {\r\n font-weight: 600;\r\n }\r\n }\r\n\r\n + li {\r\n border-block-start: 1px solid colors.$grijs-20;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n.dropdown {\r\n margin-inline-start: auto;\r\n display: flex;\r\n align-items: center;\r\n\r\n dso-dropdown-menu {\r\n position: static;\r\n\r\n .dso-dropdown-options {\r\n inset-inline-end: 0;\r\n inset-block-start: 100%;\r\n box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.4);\r\n }\r\n\r\n > button {\r\n color: colors.$grasgroen;\r\n font-size: typography.$font-size-base;\r\n font-weight: 600;\r\n line-height: normal;\r\n position: relative;\r\n\r\n &::after {\r\n margin-inline-start: units.$u1;\r\n position: absolute;\r\n inset-inline-end: 0px;\r\n inset-block-start: 50%;\r\n transform: translateY(-50%);\r\n }\r\n\r\n &:hover,\r\n &:active {\r\n cursor: pointer;\r\n text-decoration: underline;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.dso-nav {\r\n align-items: end;\r\n column-gap: units.$u4;\r\n display: flex;\r\n list-style: none;\r\n margin-block-end: 0;\r\n margin-block-start: 0;\r\n padding-inline-start: 0;\r\n\r\n > li {\r\n margin-block-end: 4px;\r\n\r\n > a {\r\n display: block;\r\n\r\n &,\r\n &:hover,\r\n &:focus,\r\n &:visited {\r\n color: colors.$bosgroen;\r\n }\r\n }\r\n\r\n &.dso-active,\r\n &.is-active {\r\n margin-block-end: 0;\r\n\r\n > a {\r\n @include nav-item-border(core-header-variables.$navigation-selected-color);\r\n\r\n font-weight: bold;\r\n }\r\n }\r\n }\r\n\r\n &.dso-nav-main {\r\n display: flex !important;\r\n\r\n > li {\r\n > a {\r\n @include link.reverse();\r\n @include nav-item-main();\r\n\r\n // stylelint-disable-next-line declaration-property-value-disallowed-list -- no wrapping wanted because of icon\r\n white-space: nowrap;\r\n }\r\n }\r\n\r\n dso-dropdown-menu {\r\n .dso-dropdown-options {\r\n inset-inline-start: units.$ru2 * -1 !important;\r\n inset-block-start: 3px !important;\r\n }\r\n\r\n button {\r\n @include nav-item-main();\r\n\r\n align-items: flex-end;\r\n color: colors.$bosgroen;\r\n\r\n &:hover,\r\n &:active {\r\n cursor: pointer;\r\n text-decoration: underline;\r\n }\r\n\r\n &::after {\r\n margin-inline-start: units.$u1;\r\n position: absolute;\r\n inset-inline-end: 0px;\r\n inset-block-start: auto;\r\n transform: none;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .menu-user-home {\r\n margin-inline-start: auto;\r\n\r\n dso-icon {\r\n block-size: 1em;\r\n margin-inline-end: units.$u1;\r\n position: relative;\r\n inset-block-start: -2px;\r\n inline-size: 1.2em;\r\n }\r\n }\r\n}\r\n","import { Component, Element, Event, EventEmitter, Fragment, Prop, State, Watch, h } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\nimport debounce from \"debounce\";\r\n\r\nimport { i18n } from \"../../utils/i18n\";\r\nimport { isModifiedEvent } from \"../../utils/is-modified-event\";\r\n\r\nimport { translations } from \"./header.i18n\";\r\nimport { HeaderEvent, HeaderMenuItem, HeaderNavigationType } from \"./header.interfaces\";\r\n\r\nconst minDesktopViewportWidth = 992;\r\n\r\n@Component({\r\n tag: \"dso-header\",\r\n styleUrl: \"header.scss\",\r\n shadow: true,\r\n})\r\nexport class Header {\r\n private clickHandler(\r\n e: MouseEvent,\r\n type: HeaderNavigationType,\r\n options?: { menuItem?: HeaderMenuItem; url?: string },\r\n ) {\r\n this.dsoHeaderClick.emit({\r\n originalEvent: e,\r\n isModifiedEvent: isModifiedEvent(e),\r\n type,\r\n menuItem: options?.menuItem,\r\n url: options?.url ?? options?.menuItem?.url,\r\n });\r\n }\r\n\r\n private dropdownElement?: HTMLElement;\r\n\r\n @Element()\r\n host!: HTMLDsoHeaderElement;\r\n\r\n /**\r\n * The main menu items.\r\n */\r\n @Prop()\r\n mainMenu?: HeaderMenuItem[] = [];\r\n\r\n /**\r\n * Either have the dropdown menu appear automatically or always.\r\n */\r\n @Prop()\r\n useDropDownMenu: \"always\" | \"auto\" = \"auto\";\r\n\r\n /**\r\n * Used to show the login/logout option. 'none' renders nothing.\r\n */\r\n @Prop()\r\n authStatus: \"none\" | \"loggedIn\" | \"loggedOut\" = \"none\";\r\n\r\n /**\r\n * When the `authStatus` is `loggedOut` a loginUrl can be provided.\r\n * The login button will then render as an anchor.\r\n */\r\n @Prop()\r\n loginUrl?: string;\r\n\r\n /**\r\n * The URL to open when the user activates \"logout\".\r\n * If no URL is specified, a button element is used instead.\r\n */\r\n @Prop()\r\n logoutUrl?: string;\r\n\r\n /**\r\n * Show a help-button or link in the header\r\n */\r\n @Prop()\r\n showHelp? = false;\r\n\r\n /**\r\n * The URL to open when the user activates \"help\".\r\n * If no URL is specified, a button element is used instead.\r\n */\r\n @Prop()\r\n helpUrl?: string;\r\n\r\n /**\r\n * The name to show when the user is logged in.\r\n */\r\n @Prop()\r\n userProfileName?: string;\r\n\r\n /**\r\n * The URL to open when the user activates the profile url.\r\n */\r\n @Prop()\r\n userProfileUrl?: string;\r\n\r\n /**\r\n * The URL to open when the user activates \"Mijn Omgevingsloket\".\r\n */\r\n @Prop()\r\n userHomeUrl?: string;\r\n\r\n /**\r\n * Set this to true when the user is at \"Mijn Omgevingsloket\".\r\n */\r\n @Prop()\r\n userHomeActive?: boolean;\r\n\r\n @State()\r\n showDropDown?: boolean;\r\n\r\n @State()\r\n overflowMenuItems = 0;\r\n\r\n @State()\r\n dropdownOptionsOffset = 0;\r\n\r\n /**\r\n * Emitted when something in the header is selected.\r\n *\r\n * `event.detail.type` indicates the functionality the user pressed. eg. `'login'` or `'menuItem'`\r\n */\r\n @Event()\r\n dsoHeaderClick!: EventEmitter<HeaderEvent>;\r\n\r\n @Watch(\"useDropDownMenu\")\r\n setShowDropDown(value: \"always\" | \"auto\") {\r\n if (value === \"auto\") {\r\n this.setDropDownMenu();\r\n\r\n return;\r\n }\r\n\r\n this.showDropDown = value === \"always\";\r\n }\r\n\r\n private wrapper: HTMLDivElement | undefined;\r\n\r\n private nav: HTMLUListElement | undefined;\r\n\r\n private shrinkMenuToFit() {\r\n if (!this.wrapper || !this.nav) {\r\n return;\r\n }\r\n\r\n if (this.wrapper.clientWidth >= this.nav.clientWidth) {\r\n return;\r\n }\r\n\r\n if (this.mainMenu && this.overflowMenuItems >= this.mainMenu.length) {\r\n return;\r\n }\r\n\r\n this.overflowMenuItems++;\r\n }\r\n\r\n private text = i18n(() => this.host, translations);\r\n\r\n componentDidRender() {\r\n if (!this.host.isConnected) {\r\n return;\r\n }\r\n\r\n if (this.showDropDown) {\r\n this.dropdownOptionsOffset = this.calculateDropdownOptionsOffset();\r\n\r\n return;\r\n }\r\n\r\n window.setTimeout(() => this.shrinkMenuToFit(), 0);\r\n }\r\n\r\n componentDidLoad() {\r\n this.setShowDropDown(this.useDropDownMenu);\r\n\r\n if (this.showDropDown) {\r\n this.dropdownOptionsOffset = this.calculateDropdownOptionsOffset();\r\n }\r\n }\r\n\r\n private setOverflowMenu() {\r\n if (this.showDropDown) {\r\n return;\r\n }\r\n\r\n if (this.overflowMenuItems !== 0) {\r\n this.overflowMenuItems = 0;\r\n return;\r\n }\r\n\r\n this.shrinkMenuToFit();\r\n }\r\n\r\n private setDropDownMenu() {\r\n if (this.useDropDownMenu !== \"auto\") {\r\n return;\r\n }\r\n\r\n this.showDropDown = window.innerWidth < minDesktopViewportWidth;\r\n }\r\n\r\n private calculateDropdownOptionsOffset() {\r\n if (!this.dropdownElement) {\r\n return 0;\r\n }\r\n\r\n return (\r\n this.host.clientHeight -\r\n (this.dropdownElement?.getBoundingClientRect().bottom - this.host.getBoundingClientRect().top)\r\n );\r\n }\r\n\r\n private onWindowResize = debounce(() => {\r\n this.dropdownElement?.removeAttribute(\"open\");\r\n this.dropdownElement?.removeAttribute(\"tabindex\");\r\n\r\n this.setDropDownMenu();\r\n this.setOverflowMenu();\r\n\r\n if (this.showDropDown) {\r\n this.dropdownOptionsOffset = this.calculateDropdownOptionsOffset();\r\n }\r\n }, 100);\r\n\r\n connectedCallback() {\r\n window.addEventListener(\"resize\", this.onWindowResize);\r\n }\r\n\r\n disconnectedCallback() {\r\n window.removeEventListener(\"resize\", this.onWindowResize);\r\n }\r\n\r\n private MenuItem = (item: HeaderMenuItem) => {\r\n return (\r\n <li class={item.active ? \"dso-active\" : undefined}>\r\n <a\r\n href={item.url}\r\n aria-current={item.active ? \"page\" : undefined}\r\n onClick={(e) => this.clickHandler(e, \"menuItem\", { menuItem: item })}\r\n >\r\n {item.label}\r\n </a>\r\n </li>\r\n );\r\n };\r\n\r\n render() {\r\n // Prevent 'flickering' when useDropDownMenu = 'always'\r\n if (this.showDropDown === undefined) {\r\n return;\r\n }\r\n\r\n return (\r\n <>\r\n <div\r\n class={clsx(\"dso-header\", {\r\n [\"use-drop-down\"]: this.showDropDown,\r\n })}\r\n ref={(element) => (this.wrapper = element)}\r\n >\r\n <div class=\"logo-container\">\r\n <slot name=\"logo\" />\r\n </div>\r\n {this.showDropDown &&\r\n this.mainMenu &&\r\n (this.mainMenu.length > 0 || this.userHomeUrl || this.authStatus !== \"none\") && (\r\n <div class=\"dropdown\">\r\n <dso-dropdown-menu\r\n dropdown-align=\"right\"\r\n strategy=\"absolute\"\r\n dropdownOptionsOffset={this.dropdownOptionsOffset}\r\n ref={(element) => (this.dropdownElement = element)}\r\n >\r\n <button type=\"button\" slot=\"toggle\">\r\n <span>{this.text(\"menu\")}</span>\r\n <dso-icon icon=\"chevron-down\"></dso-icon>\r\n </button>\r\n <div class=\"dso-dropdown-options\">\r\n <ul>\r\n {this.mainMenu.map(this.MenuItem)}\r\n {this.userHomeUrl && (\r\n <li>\r\n <a\r\n href={this.userHomeUrl}\r\n onClick={(e) => this.clickHandler(e, \"userHome\", { url: this.userHomeUrl })}\r\n >\r\n {this.text(\"userHome\")}\r\n </a>\r\n </li>\r\n )}\r\n {this.userProfileUrl && this.userProfileName && this.authStatus === \"loggedIn\" && (\r\n <li>\r\n <a\r\n href={this.userProfileUrl}\r\n onClick={(e) => this.clickHandler(e, \"profile\", { url: this.userProfileUrl })}\r\n >\r\n {this.userProfileName}\r\n <span class=\"profile-label\"> - Mijn profiel</span>\r\n </a>\r\n </li>\r\n )}\r\n {this.authStatus === \"loggedOut\" && (\r\n <li>\r\n {this.loginUrl ? (\r\n <a\r\n href={this.loginUrl}\r\n onClick={(e) => this.clickHandler(e, \"login\", { url: this.loginUrl })}\r\n >\r\n {this.text(\"login\")}\r\n </a>\r\n ) : (\r\n <button type=\"button\" onClick={(e) => this.clickHandler(e, \"login\")}>\r\n {this.text(\"login\")}\r\n </button>\r\n )}\r\n </li>\r\n )}\r\n {this.authStatus === \"loggedIn\" && (\r\n <li>\r\n {this.logoutUrl ? (\r\n <a\r\n href={this.logoutUrl}\r\n onClick={(e) => this.clickHandler(e, \"logout\", { url: this.logoutUrl })}\r\n >\r\n {this.text(\"logout\")}\r\n </a>\r\n ) : (\r\n <button type=\"button\" onClick={(e) => this.clickHandler(e, \"logout\")}>\r\n {this.text(\"logout\")}\r\n </button>\r\n )}\r\n </li>\r\n )}\r\n {this.showHelp && (\r\n <li>\r\n {this.helpUrl ? (\r\n <a\r\n href={this.helpUrl}\r\n class=\"dso-tertiary\"\r\n onClick={(e) => this.clickHandler(e, \"help\", { url: this.helpUrl })}\r\n >\r\n <span>{this.text(\"help\")}</span>\r\n <dso-icon icon=\"help\"></dso-icon>\r\n </a>\r\n ) : (\r\n <button type=\"button\" class=\"dso-tertiary\" onClick={(e) => this.clickHandler(e, \"help\")}>\r\n <span>{this.text(\"help\")}</span>\r\n <dso-icon icon=\"help\"></dso-icon>\r\n </button>\r\n )}\r\n </li>\r\n )}\r\n </ul>\r\n </div>\r\n </dso-dropdown-menu>\r\n </div>\r\n )}\r\n {!this.showDropDown && (\r\n <>\r\n <div class=\"dso-header-session\">\r\n {this.userProfileUrl && this.userProfileName && this.authStatus === \"loggedIn\" && (\r\n <div class=\"profile\">\r\n <a\r\n href={this.userProfileUrl}\r\n class=\"dso-tertiary\"\r\n onClick={(e) => this.clickHandler(e, \"profile\", { url: this.userProfileUrl })}\r\n >\r\n {this.userProfileName}\r\n </a>\r\n </div>\r\n )}\r\n {this.authStatus === \"loggedOut\" && (\r\n <div class=\"login\">\r\n {this.loginUrl ? (\r\n <a\r\n href={this.loginUrl}\r\n class=\"dso-tertiary\"\r\n onClick={(e) => this.clickHandler(e, \"login\", { url: this.loginUrl })}\r\n >\r\n {this.text(\"login\")}\r\n </a>\r\n ) : (\r\n <button class=\"dso-tertiary\" type=\"button\" onClick={(e) => this.clickHandler(e, \"login\")}>\r\n {this.text(\"login\")}\r\n </button>\r\n )}\r\n </div>\r\n )}\r\n {this.authStatus === \"loggedIn\" && (\r\n <div class=\"logout\">\r\n {this.logoutUrl ? (\r\n <a\r\n href={this.logoutUrl}\r\n class=\"dso-tertiary\"\r\n onClick={(e) => this.clickHandler(e, \"logout\", { url: this.logoutUrl })}\r\n >\r\n {this.text(\"logout\")}\r\n </a>\r\n ) : (\r\n <button class=\"dso-tertiary\" type=\"button\" onClick={(e) => this.clickHandler(e, \"logout\")}>\r\n {this.text(\"logout\")}\r\n </button>\r\n )}\r\n </div>\r\n )}\r\n {this.showHelp && (\r\n <div class=\"help\">\r\n {this.helpUrl ? (\r\n <a\r\n href={this.helpUrl}\r\n class=\"dso-tertiary\"\r\n onClick={(e) => this.clickHandler(e, \"help\", { url: this.helpUrl })}\r\n >\r\n <span>{this.text(\"help\")}</span>\r\n <dso-icon icon=\"help\"></dso-icon>\r\n </a>\r\n ) : (\r\n <button class=\"dso-tertiary\" type=\"button\" onClick={(e) => this.clickHandler(e, \"help\")}>\r\n <span>{this.text(\"help\")}</span>\r\n <dso-icon icon=\"help\"></dso-icon>\r\n </button>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n {((this.mainMenu && this.mainMenu.length > 0) || this.userHomeUrl) && (\r\n <nav class=\"dso-navbar\">\r\n <ul class=\"dso-nav dso-nav-main\" ref={(element) => (this.nav = element)}>\r\n {this.mainMenu &&\r\n this.mainMenu\r\n .filter((_, index) => this.mainMenu && index < this.mainMenu.length - this.overflowMenuItems)\r\n .map(this.MenuItem)}\r\n {this.overflowMenuItems > 0 && (\r\n <li>\r\n <dso-dropdown-menu placement=\"bottom\">\r\n <button type=\"button\" slot=\"toggle\">\r\n <span>{this.text(\"overflowMenu\")}</span>\r\n <dso-icon icon=\"chevron-down\"></dso-icon>\r\n </button>\r\n <div class=\"dso-dropdown-options\">\r\n <ul>\r\n {this.mainMenu &&\r\n this.mainMenu\r\n .filter(\r\n (_, index) =>\r\n this.mainMenu && index >= this.mainMenu.length - this.overflowMenuItems,\r\n )\r\n .map(this.MenuItem)}\r\n </ul>\r\n </div>\r\n </dso-dropdown-menu>\r\n </li>\r\n )}\r\n {this.userHomeUrl && (\r\n <li class={clsx(\"menu-user-home\", { \"dso-active\": this.userHomeActive })}>\r\n <a\r\n href={this.userHomeUrl}\r\n aria-current={this.userHomeActive ? \"page\" : undefined}\r\n onClick={(e) => this.clickHandler(e, \"userHome\", { url: this.userHomeUrl })}\r\n >\r\n <dso-icon icon=\"user-line\"></dso-icon>\r\n {this.text(\"userHome\")}\r\n </a>\r\n </li>\r\n )}\r\n </ul>\r\n </nav>\r\n )}\r\n </>\r\n )}\r\n </div>\r\n </>\r\n );\r\n }\r\n}\r\n"],"version":3}
1
+ {"file":"dso-header.entry.cjs.js","mappings":"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","names":["i18n","debounce","h","isModifiedEvent","Fragment","clsx"],"sources":["src/components/header/header.i18n.ts","src/components/header/header.scss?tag=dso-header&encapsulation=shadow","src/components/header/header.tsx"],"sourcesContent":["import { Resource } from \"../../utils/i18n\";\r\n\r\nexport const translations: Resource = {\r\n en: {\r\n \"dso-header\": {\r\n menu: \"Menu\",\r\n login: \"Log in\",\r\n logout: \"Log out\",\r\n help: \"Help\",\r\n overflowMenu: \"More\",\r\n },\r\n },\r\n nl: {\r\n \"dso-header\": {\r\n menu: \"Menu\",\r\n login: \"Inloggen\",\r\n logout: \"Uitloggen\",\r\n help: \"Help\",\r\n overflowMenu: \"Meer\",\r\n userHome: \"Mijn Omgevingsloket\",\r\n },\r\n },\r\n};\r\n","@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/media-query-breakpoints\";\r\n@use \"~dso-toolkit/src/variables/typography\";\r\n\r\n@use \"~dso-toolkit/src/components/link\";\r\n@use \"~dso-toolkit/src/components/dropdown-menu\";\r\n\r\n@use \"header.variables\" as core-header-variables;\r\n\r\n@include utilities.box-sizing();\r\n\r\n@mixin nav-item-border($color) {\r\n border-block-end: 4px solid $color;\r\n}\r\n\r\n@mixin nav-item-main {\r\n font-size: 1.25em;\r\n line-height: 1;\r\n margin-block-start: units.$u1;\r\n padding-block: units.$u2;\r\n padding-inline: 0;\r\n}\r\n\r\n:host {\r\n display: block;\r\n}\r\n\r\n.dso-header {\r\n border-block-end: 1px solid colors.$grijs-20;\r\n display: flex;\r\n flex-wrap: wrap;\r\n position: relative;\r\n\r\n @media screen and (min-width: media-query-breakpoints.$screen-sm-min) {\r\n align-items: center;\r\n }\r\n\r\n @media screen and (max-width: media-query-breakpoints.$screen-sm-max) {\r\n &.use-drop-down {\r\n flex-wrap: nowrap;\r\n }\r\n }\r\n\r\n .dso-nav {\r\n border: 0;\r\n }\r\n}\r\n\r\n.logo-container {\r\n flex: 1 1 12.5rem;\r\n margin-inline-end: units.$u3;\r\n padding-block-end: units.$u2;\r\n padding-block-start: units.$u2;\r\n}\r\n\r\n.dso-header-session {\r\n display: flex;\r\n align-items: center;\r\n margin-inline-start: auto;\r\n\r\n .profile,\r\n .login,\r\n .logout,\r\n .help {\r\n .dso-tertiary {\r\n display: flex;\r\n gap: 0.5rem;\r\n\r\n cursor: pointer;\r\n\r\n border: 0;\r\n\r\n background-color: transparent;\r\n\r\n padding-inline-start: 0;\r\n\r\n outline-offset: 2px;\r\n\r\n font-family: typography.$font-family-base;\r\n color: colors.$grasgroen;\r\n font-size: 1rem;\r\n font-weight: 600;\r\n line-height: 1.5;\r\n text-decoration: none;\r\n\r\n &:hover {\r\n text-decoration: underline;\r\n }\r\n }\r\n }\r\n\r\n .profile + .logout,\r\n .logout + .help,\r\n .login + .help {\r\n border-inline-start: 3px solid colors.$grijs-20;\r\n margin-inline-start: units.$u1;\r\n padding-inline-start: units.$u1;\r\n }\r\n\r\n .help {\r\n a,\r\n button {\r\n display: flex;\r\n }\r\n }\r\n}\r\n\r\n.dso-navbar {\r\n flex-basis: 100%;\r\n}\r\n\r\ndso-dropdown-menu {\r\n @include dropdown-menu.children();\r\n\r\n button {\r\n background-color: transparent;\r\n border: 0;\r\n display: flex;\r\n font-family: typography.$font-family-base;\r\n align-items: center;\r\n position: relative;\r\n\r\n dso-icon {\r\n inline-size: units.$u3;\r\n block-size: units.$u3;\r\n margin-inline-start: units.$u1;\r\n padding-block-start: units.$u1 * 0.25;\r\n }\r\n\r\n &[aria-expanded=\"true\"] {\r\n dso-icon {\r\n transform: rotate(180deg);\r\n }\r\n }\r\n }\r\n\r\n .dso-dropdown-options {\r\n border: 0;\r\n border-radius: 0;\r\n box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.4);\r\n\r\n @media screen and (min-width: media-query-breakpoints.$screen-sm-min) {\r\n inline-size: 375px;\r\n }\r\n\r\n @media screen and (max-width: media-query-breakpoints.$screen-xs-max) {\r\n inline-size: 100%;\r\n }\r\n\r\n ul {\r\n margin: 0;\r\n padding: 0;\r\n list-style: none;\r\n\r\n li {\r\n a,\r\n button {\r\n display: block;\r\n padding: units.$u2;\r\n color: colors.$bosgroen;\r\n font-size: 1.25rem;\r\n white-space: pre-wrap;\r\n text-decoration: none;\r\n\r\n &:focus-visible {\r\n background-color: colors.$grasgroen;\r\n color: colors.$wit;\r\n }\r\n\r\n &:hover {\r\n background-color: colors.$wit;\r\n color: colors.$bosgroen;\r\n text-decoration: underline;\r\n }\r\n\r\n &:visited {\r\n color: colors.$bosgroen;\r\n }\r\n }\r\n\r\n button {\r\n inline-size: 100%;\r\n text-align: start;\r\n\r\n dso-icon {\r\n margin-inline-start: units.$u1;\r\n }\r\n }\r\n\r\n &.dso-active {\r\n a {\r\n font-weight: 600;\r\n }\r\n }\r\n\r\n + li {\r\n border-block-start: 1px solid colors.$grijs-20;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n.dropdown {\r\n margin-inline-start: auto;\r\n display: flex;\r\n align-items: center;\r\n\r\n dso-dropdown-menu {\r\n position: static;\r\n\r\n .dso-dropdown-options {\r\n inset-inline-end: 0;\r\n inset-block-start: 100%;\r\n box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.4);\r\n }\r\n\r\n > button {\r\n color: colors.$grasgroen;\r\n font-size: typography.$font-size-base;\r\n font-weight: 600;\r\n line-height: normal;\r\n position: relative;\r\n\r\n &::after {\r\n margin-inline-start: units.$u1;\r\n position: absolute;\r\n inset-inline-end: 0px;\r\n inset-block-start: 50%;\r\n transform: translateY(-50%);\r\n }\r\n\r\n &:hover,\r\n &:active {\r\n cursor: pointer;\r\n text-decoration: underline;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.dso-nav {\r\n align-items: end;\r\n column-gap: units.$u4;\r\n display: flex;\r\n list-style: none;\r\n margin-block-end: 0;\r\n margin-block-start: 0;\r\n padding-inline-start: 0;\r\n\r\n > li {\r\n margin-block-end: 4px;\r\n\r\n > a {\r\n display: block;\r\n\r\n &,\r\n &:hover,\r\n &:focus,\r\n &:visited {\r\n color: colors.$bosgroen;\r\n }\r\n }\r\n\r\n &.dso-active,\r\n &.is-active {\r\n margin-block-end: 0;\r\n\r\n > a {\r\n @include nav-item-border(core-header-variables.$navigation-selected-color);\r\n\r\n font-weight: bold;\r\n }\r\n }\r\n }\r\n\r\n &.dso-nav-main {\r\n display: flex !important;\r\n\r\n > li {\r\n > a {\r\n @include link.reverse();\r\n @include nav-item-main();\r\n\r\n // stylelint-disable-next-line declaration-property-value-disallowed-list -- no wrapping wanted because of icon\r\n white-space: nowrap;\r\n }\r\n }\r\n\r\n dso-dropdown-menu {\r\n .dso-dropdown-options {\r\n inset-inline-start: units.$ru2 * -1 !important;\r\n inset-block-start: 3px !important;\r\n }\r\n\r\n button {\r\n @include nav-item-main();\r\n\r\n align-items: flex-end;\r\n color: colors.$bosgroen;\r\n\r\n &:hover,\r\n &:active {\r\n cursor: pointer;\r\n text-decoration: underline;\r\n }\r\n\r\n &::after {\r\n margin-inline-start: units.$u1;\r\n position: absolute;\r\n inset-inline-end: 0px;\r\n inset-block-start: auto;\r\n transform: none;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .menu-user-home {\r\n margin-inline-start: auto;\r\n\r\n dso-icon {\r\n block-size: 1em;\r\n margin-inline-end: units.$u1;\r\n position: relative;\r\n inset-block-start: -2px;\r\n inline-size: 1.2em;\r\n }\r\n }\r\n}\r\n","import { Component, Element, Event, EventEmitter, Fragment, Prop, State, Watch, h } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\nimport debounce from \"debounce\";\r\n\r\nimport { i18n } from \"../../utils/i18n\";\r\nimport { isModifiedEvent } from \"../../utils/is-modified-event\";\r\n\r\nimport { translations } from \"./header.i18n\";\r\nimport { HeaderEvent, HeaderMenuItem, HeaderNavigationType } from \"./header.interfaces\";\r\n\r\nconst minDesktopViewportWidth = 992;\r\n\r\n@Component({\r\n tag: \"dso-header\",\r\n styleUrl: \"header.scss\",\r\n shadow: true,\r\n})\r\nexport class Header {\r\n private clickHandler(\r\n e: MouseEvent,\r\n type: HeaderNavigationType,\r\n options?: { menuItem?: HeaderMenuItem; url?: string },\r\n ) {\r\n this.dsoHeaderClick.emit({\r\n originalEvent: e,\r\n isModifiedEvent: isModifiedEvent(e),\r\n type,\r\n menuItem: options?.menuItem,\r\n url: options?.url ?? options?.menuItem?.url,\r\n });\r\n }\r\n\r\n private dropdownElement?: HTMLElement;\r\n\r\n @Element()\r\n host!: HTMLDsoHeaderElement;\r\n\r\n /**\r\n * The main menu items.\r\n */\r\n @Prop()\r\n mainMenu?: HeaderMenuItem[] = [];\r\n\r\n /**\r\n * Either have the dropdown menu appear automatically or always.\r\n */\r\n @Prop()\r\n useDropDownMenu: \"always\" | \"auto\" = \"auto\";\r\n\r\n /**\r\n * Used to show the login/logout option. 'none' renders nothing.\r\n */\r\n @Prop()\r\n authStatus: \"none\" | \"loggedIn\" | \"loggedOut\" = \"none\";\r\n\r\n /**\r\n * When the `authStatus` is `loggedOut` a loginUrl can be provided.\r\n * The login button will then render as an anchor.\r\n */\r\n @Prop()\r\n loginUrl?: string;\r\n\r\n /**\r\n * The URL to open when the user activates \"logout\".\r\n * If no URL is specified, a button element is used instead.\r\n */\r\n @Prop()\r\n logoutUrl?: string;\r\n\r\n /**\r\n * Show a help-button or link in the header\r\n */\r\n @Prop()\r\n showHelp? = false;\r\n\r\n /**\r\n * The URL to open when the user activates \"help\".\r\n * If no URL is specified, a button element is used instead.\r\n */\r\n @Prop()\r\n helpUrl?: string;\r\n\r\n /**\r\n * The name to show when the user is logged in.\r\n */\r\n @Prop()\r\n userProfileName?: string;\r\n\r\n /**\r\n * The URL to open when the user activates the profile url.\r\n */\r\n @Prop()\r\n userProfileUrl?: string;\r\n\r\n /**\r\n * The URL to open when the user activates \"Mijn Omgevingsloket\".\r\n */\r\n @Prop()\r\n userHomeUrl?: string;\r\n\r\n /**\r\n * Set this to true when the user is at \"Mijn Omgevingsloket\".\r\n */\r\n @Prop()\r\n userHomeActive?: boolean;\r\n\r\n @State()\r\n showDropDown?: boolean;\r\n\r\n @State()\r\n overflowMenuItems = 0;\r\n\r\n @State()\r\n dropdownOptionsOffset = 0;\r\n\r\n /**\r\n * Emitted when something in the header is selected.\r\n *\r\n * `event.detail.type` indicates the functionality the user pressed. eg. `'login'` or `'menuItem'`\r\n */\r\n @Event()\r\n dsoHeaderClick!: EventEmitter<HeaderEvent>;\r\n\r\n @Watch(\"useDropDownMenu\")\r\n setShowDropDown(value: \"always\" | \"auto\") {\r\n if (value === \"auto\") {\r\n this.setDropDownMenu();\r\n\r\n return;\r\n }\r\n\r\n this.showDropDown = value === \"always\";\r\n }\r\n\r\n private wrapper: HTMLDivElement | undefined;\r\n\r\n private nav: HTMLUListElement | undefined;\r\n\r\n private shrinkMenuToFit() {\r\n if (!this.wrapper || !this.nav) {\r\n return;\r\n }\r\n\r\n if (this.wrapper.clientWidth >= this.nav.clientWidth) {\r\n return;\r\n }\r\n\r\n if (this.mainMenu && this.overflowMenuItems >= this.mainMenu.length) {\r\n return;\r\n }\r\n\r\n this.overflowMenuItems++;\r\n }\r\n\r\n private text = i18n(() => this.host, translations);\r\n\r\n componentDidRender() {\r\n if (!this.host.isConnected) {\r\n return;\r\n }\r\n\r\n if (this.showDropDown) {\r\n this.dropdownOptionsOffset = this.calculateDropdownOptionsOffset();\r\n\r\n return;\r\n }\r\n\r\n window.setTimeout(() => this.shrinkMenuToFit(), 0);\r\n }\r\n\r\n componentDidLoad() {\r\n this.setShowDropDown(this.useDropDownMenu);\r\n\r\n if (this.showDropDown) {\r\n this.dropdownOptionsOffset = this.calculateDropdownOptionsOffset();\r\n }\r\n }\r\n\r\n private setOverflowMenu() {\r\n if (this.showDropDown) {\r\n return;\r\n }\r\n\r\n if (this.overflowMenuItems !== 0) {\r\n this.overflowMenuItems = 0;\r\n return;\r\n }\r\n\r\n this.shrinkMenuToFit();\r\n }\r\n\r\n private setDropDownMenu() {\r\n if (this.useDropDownMenu !== \"auto\") {\r\n return;\r\n }\r\n\r\n this.showDropDown = window.innerWidth < minDesktopViewportWidth;\r\n }\r\n\r\n private calculateDropdownOptionsOffset() {\r\n if (!this.dropdownElement) {\r\n return 0;\r\n }\r\n\r\n return (\r\n this.host.clientHeight -\r\n (this.dropdownElement?.getBoundingClientRect().bottom - this.host.getBoundingClientRect().top)\r\n );\r\n }\r\n\r\n private onWindowResize = debounce(() => {\r\n this.dropdownElement?.removeAttribute(\"open\");\r\n this.dropdownElement?.removeAttribute(\"tabindex\");\r\n\r\n this.setDropDownMenu();\r\n this.setOverflowMenu();\r\n\r\n if (this.showDropDown) {\r\n this.dropdownOptionsOffset = this.calculateDropdownOptionsOffset();\r\n }\r\n }, 100);\r\n\r\n connectedCallback() {\r\n window.addEventListener(\"resize\", this.onWindowResize);\r\n }\r\n\r\n disconnectedCallback() {\r\n window.removeEventListener(\"resize\", this.onWindowResize);\r\n }\r\n\r\n private MenuItem = (item: HeaderMenuItem) => {\r\n return (\r\n <li class={item.active ? \"dso-active\" : undefined}>\r\n <a\r\n href={item.url}\r\n aria-current={item.active ? \"page\" : undefined}\r\n onClick={(e) => this.clickHandler(e, \"menuItem\", { menuItem: item })}\r\n >\r\n {item.label}\r\n </a>\r\n </li>\r\n );\r\n };\r\n\r\n render() {\r\n // Prevent 'flickering' when useDropDownMenu = 'always'\r\n if (this.showDropDown === undefined) {\r\n return;\r\n }\r\n\r\n return (\r\n <>\r\n <div\r\n class={clsx(\"dso-header\", {\r\n [\"use-drop-down\"]: this.showDropDown,\r\n })}\r\n ref={(element) => (this.wrapper = element)}\r\n >\r\n <div class=\"logo-container\">\r\n <slot name=\"logo\" />\r\n </div>\r\n {this.showDropDown &&\r\n this.mainMenu &&\r\n (this.mainMenu.length > 0 || this.userHomeUrl || this.authStatus !== \"none\") && (\r\n <div class=\"dropdown\">\r\n <dso-dropdown-menu\r\n dropdown-align=\"right\"\r\n dropdownOptionsOffset={this.dropdownOptionsOffset}\r\n ref={(element) => (this.dropdownElement = element)}\r\n >\r\n <button type=\"button\" slot=\"toggle\">\r\n <span>{this.text(\"menu\")}</span>\r\n <dso-icon icon=\"chevron-down\"></dso-icon>\r\n </button>\r\n <div class=\"dso-dropdown-options\">\r\n <ul>\r\n {this.mainMenu.map(this.MenuItem)}\r\n {this.userHomeUrl && (\r\n <li>\r\n <a\r\n href={this.userHomeUrl}\r\n onClick={(e) => this.clickHandler(e, \"userHome\", { url: this.userHomeUrl })}\r\n >\r\n {this.text(\"userHome\")}\r\n </a>\r\n </li>\r\n )}\r\n {this.userProfileUrl && this.userProfileName && this.authStatus === \"loggedIn\" && (\r\n <li>\r\n <a\r\n href={this.userProfileUrl}\r\n onClick={(e) => this.clickHandler(e, \"profile\", { url: this.userProfileUrl })}\r\n >\r\n {this.userProfileName}\r\n <span class=\"profile-label\"> - Mijn profiel</span>\r\n </a>\r\n </li>\r\n )}\r\n {this.authStatus === \"loggedOut\" && (\r\n <li>\r\n {this.loginUrl ? (\r\n <a\r\n href={this.loginUrl}\r\n onClick={(e) => this.clickHandler(e, \"login\", { url: this.loginUrl })}\r\n >\r\n {this.text(\"login\")}\r\n </a>\r\n ) : (\r\n <button type=\"button\" onClick={(e) => this.clickHandler(e, \"login\")}>\r\n {this.text(\"login\")}\r\n </button>\r\n )}\r\n </li>\r\n )}\r\n {this.authStatus === \"loggedIn\" && (\r\n <li>\r\n {this.logoutUrl ? (\r\n <a\r\n href={this.logoutUrl}\r\n onClick={(e) => this.clickHandler(e, \"logout\", { url: this.logoutUrl })}\r\n >\r\n {this.text(\"logout\")}\r\n </a>\r\n ) : (\r\n <button type=\"button\" onClick={(e) => this.clickHandler(e, \"logout\")}>\r\n {this.text(\"logout\")}\r\n </button>\r\n )}\r\n </li>\r\n )}\r\n {this.showHelp && (\r\n <li>\r\n {this.helpUrl ? (\r\n <a\r\n href={this.helpUrl}\r\n class=\"dso-tertiary\"\r\n onClick={(e) => this.clickHandler(e, \"help\", { url: this.helpUrl })}\r\n >\r\n <span>{this.text(\"help\")}</span>\r\n <dso-icon icon=\"help\"></dso-icon>\r\n </a>\r\n ) : (\r\n <button type=\"button\" class=\"dso-tertiary\" onClick={(e) => this.clickHandler(e, \"help\")}>\r\n <span>{this.text(\"help\")}</span>\r\n <dso-icon icon=\"help\"></dso-icon>\r\n </button>\r\n )}\r\n </li>\r\n )}\r\n </ul>\r\n </div>\r\n </dso-dropdown-menu>\r\n </div>\r\n )}\r\n {!this.showDropDown && (\r\n <>\r\n <div class=\"dso-header-session\">\r\n {this.userProfileUrl && this.userProfileName && this.authStatus === \"loggedIn\" && (\r\n <div class=\"profile\">\r\n <a\r\n href={this.userProfileUrl}\r\n class=\"dso-tertiary\"\r\n onClick={(e) => this.clickHandler(e, \"profile\", { url: this.userProfileUrl })}\r\n >\r\n {this.userProfileName}\r\n </a>\r\n </div>\r\n )}\r\n {this.authStatus === \"loggedOut\" && (\r\n <div class=\"login\">\r\n {this.loginUrl ? (\r\n <a\r\n href={this.loginUrl}\r\n class=\"dso-tertiary\"\r\n onClick={(e) => this.clickHandler(e, \"login\", { url: this.loginUrl })}\r\n >\r\n {this.text(\"login\")}\r\n </a>\r\n ) : (\r\n <button class=\"dso-tertiary\" type=\"button\" onClick={(e) => this.clickHandler(e, \"login\")}>\r\n {this.text(\"login\")}\r\n </button>\r\n )}\r\n </div>\r\n )}\r\n {this.authStatus === \"loggedIn\" && (\r\n <div class=\"logout\">\r\n {this.logoutUrl ? (\r\n <a\r\n href={this.logoutUrl}\r\n class=\"dso-tertiary\"\r\n onClick={(e) => this.clickHandler(e, \"logout\", { url: this.logoutUrl })}\r\n >\r\n {this.text(\"logout\")}\r\n </a>\r\n ) : (\r\n <button class=\"dso-tertiary\" type=\"button\" onClick={(e) => this.clickHandler(e, \"logout\")}>\r\n {this.text(\"logout\")}\r\n </button>\r\n )}\r\n </div>\r\n )}\r\n {this.showHelp && (\r\n <div class=\"help\">\r\n {this.helpUrl ? (\r\n <a\r\n href={this.helpUrl}\r\n class=\"dso-tertiary\"\r\n onClick={(e) => this.clickHandler(e, \"help\", { url: this.helpUrl })}\r\n >\r\n <span>{this.text(\"help\")}</span>\r\n <dso-icon icon=\"help\"></dso-icon>\r\n </a>\r\n ) : (\r\n <button class=\"dso-tertiary\" type=\"button\" onClick={(e) => this.clickHandler(e, \"help\")}>\r\n <span>{this.text(\"help\")}</span>\r\n <dso-icon icon=\"help\"></dso-icon>\r\n </button>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n {((this.mainMenu && this.mainMenu.length > 0) || this.userHomeUrl) && (\r\n <nav class=\"dso-navbar\">\r\n <ul class=\"dso-nav dso-nav-main\" ref={(element) => (this.nav = element)}>\r\n {this.mainMenu &&\r\n this.mainMenu\r\n .filter((_, index) => this.mainMenu && index < this.mainMenu.length - this.overflowMenuItems)\r\n .map(this.MenuItem)}\r\n {this.overflowMenuItems > 0 && (\r\n <li>\r\n <dso-dropdown-menu>\r\n <button type=\"button\" slot=\"toggle\">\r\n <span>{this.text(\"overflowMenu\")}</span>\r\n <dso-icon icon=\"chevron-down\"></dso-icon>\r\n </button>\r\n <div class=\"dso-dropdown-options\">\r\n <ul>\r\n {this.mainMenu &&\r\n this.mainMenu\r\n .filter(\r\n (_, index) =>\r\n this.mainMenu && index >= this.mainMenu.length - this.overflowMenuItems,\r\n )\r\n .map(this.MenuItem)}\r\n </ul>\r\n </div>\r\n </dso-dropdown-menu>\r\n </li>\r\n )}\r\n {this.userHomeUrl && (\r\n <li class={clsx(\"menu-user-home\", { \"dso-active\": this.userHomeActive })}>\r\n <a\r\n href={this.userHomeUrl}\r\n aria-current={this.userHomeActive ? \"page\" : undefined}\r\n onClick={(e) => this.clickHandler(e, \"userHome\", { url: this.userHomeUrl })}\r\n >\r\n <dso-icon icon=\"user-line\"></dso-icon>\r\n {this.text(\"userHome\")}\r\n </a>\r\n </li>\r\n )}\r\n </ul>\r\n </nav>\r\n )}\r\n </>\r\n )}\r\n </div>\r\n </>\r\n );\r\n }\r\n}\r\n"],"version":3}