@dso-toolkit/core 78.1.0 → 79.0.0-pre.1

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 (328) hide show
  1. package/dist/bundle/dso-accordion-section.js +5 -5
  2. package/dist/bundle/dso-action-list-item.js +1 -1
  3. package/dist/bundle/dso-advanced-select.js +3 -3
  4. package/dist/bundle/dso-alert.js +1 -1
  5. package/dist/bundle/dso-annotation-activiteit.js +4 -4
  6. package/dist/bundle/dso-annotation-gebiedsaanwijzing.js +4 -4
  7. package/dist/bundle/dso-annotation-kaart.js +2 -2
  8. package/dist/bundle/dso-annotation-locatie.js +1 -1
  9. package/dist/bundle/dso-annotation-omgevingsnormwaarde.js +4 -4
  10. package/dist/bundle/dso-attachments-counter.js +1 -1
  11. package/dist/bundle/dso-autosuggest.js +3 -3
  12. package/dist/bundle/dso-card.js +1 -1
  13. package/dist/bundle/dso-date-picker-legacy.js +1 -1
  14. package/dist/bundle/dso-document-card.js +1 -1
  15. package/dist/bundle/dso-document-component.js +1 -1
  16. package/dist/bundle/dso-dropdown-menu.js +1 -1
  17. package/dist/bundle/dso-header.js +98 -97
  18. package/dist/bundle/dso-header.js.map +1 -1
  19. package/dist/bundle/dso-highlight-box.js +1 -1
  20. package/dist/bundle/dso-icon.js +1 -1
  21. package/dist/bundle/dso-image-overlay.js +1 -1
  22. package/dist/bundle/dso-info-button.js +1 -1
  23. package/dist/bundle/dso-info.js +1 -1
  24. package/dist/bundle/dso-input-range.js +2 -2
  25. package/dist/bundle/dso-label.js +1 -1
  26. package/dist/bundle/dso-legend-item.js +6 -6
  27. package/dist/bundle/dso-list-button.js +5 -5
  28. package/dist/bundle/dso-logo.js +2 -2
  29. package/dist/bundle/dso-logo.js.map +1 -1
  30. package/dist/bundle/dso-map-base-layers.js +5 -5
  31. package/dist/bundle/dso-map-controls.js +3 -3
  32. package/dist/bundle/dso-map-overlays.js +5 -5
  33. package/dist/bundle/dso-mark-bar.js +2 -2
  34. package/dist/bundle/dso-modal.js +3 -3
  35. package/dist/bundle/dso-onboarding-tip.js +2 -2
  36. package/dist/bundle/dso-ozon-content.js +1 -1
  37. package/dist/bundle/dso-pagination.js +2 -2
  38. package/dist/bundle/dso-panel.js +1 -1
  39. package/dist/bundle/dso-plekinfo-card.js +2 -2
  40. package/dist/bundle/dso-progress-bar.js +1 -1
  41. package/dist/bundle/dso-progress-indicator.js +1 -1
  42. package/dist/bundle/dso-project-item.js +4 -4
  43. package/dist/bundle/dso-responsive-element.js +1 -1
  44. package/dist/bundle/dso-scrollable.js +1 -1
  45. package/dist/bundle/dso-selectable.js +1 -1
  46. package/dist/bundle/dso-skiplink.js +2 -2
  47. package/dist/bundle/dso-slide-toggle.js +1 -1
  48. package/dist/bundle/dso-survey-rating.js +4 -4
  49. package/dist/bundle/dso-table.js +1 -1
  50. package/dist/bundle/dso-tabs.js +1 -1
  51. package/dist/bundle/dso-toggletip.js +1 -1
  52. package/dist/bundle/dso-tooltip.js +1 -1
  53. package/dist/bundle/dso-tree-view.js +3 -3
  54. package/dist/bundle/dso-viewer-grid.js +1 -1
  55. package/dist/bundle/dsot-document-component-demo.js +12 -12
  56. package/dist/bundle/{p-lE-KxpG-.js → p-7ffg336s.js} +3 -3
  57. package/dist/bundle/{p-lE-KxpG-.js.map → p-7ffg336s.js.map} +1 -1
  58. package/dist/bundle/{p-BZUv4Fwx.js → p-B3Alb07i.js} +6 -6
  59. package/dist/bundle/{p-BZUv4Fwx.js.map → p-B3Alb07i.js.map} +1 -1
  60. package/dist/bundle/{p-CUZmPl-a.js → p-BELL2NPR.js} +7 -7
  61. package/dist/bundle/{p-CUZmPl-a.js.map → p-BELL2NPR.js.map} +1 -1
  62. package/dist/bundle/{p-BQF5fCSD.js → p-BOvMM9C8.js} +3 -3
  63. package/dist/bundle/{p-BQF5fCSD.js.map → p-BOvMM9C8.js.map} +1 -1
  64. package/dist/bundle/{p-BnSdv9VD.js → p-B_9Gan2F.js} +10 -10
  65. package/dist/bundle/{p-BnSdv9VD.js.map → p-B_9Gan2F.js.map} +1 -1
  66. package/dist/bundle/{p-D0gB2lgu.js → p-Bgqhjszl.js} +3 -3
  67. package/dist/bundle/{p-D0gB2lgu.js.map → p-Bgqhjszl.js.map} +1 -1
  68. package/dist/bundle/{p-D92MZVkr.js → p-BqKuHNTU.js} +3 -3
  69. package/dist/bundle/{p-D92MZVkr.js.map → p-BqKuHNTU.js.map} +1 -1
  70. package/dist/bundle/{p-DNULhBX2.js → p-BrQ3aUVb.js} +3 -3
  71. package/dist/bundle/{p-DNULhBX2.js.map → p-BrQ3aUVb.js.map} +1 -1
  72. package/dist/bundle/{p-C2Ek2dWW.js → p-Bxrualn7.js} +40 -36
  73. package/dist/bundle/p-Bxrualn7.js.map +1 -0
  74. package/dist/bundle/{p-DcxEm1dI.js → p-C5KKL3gn.js} +7 -7
  75. package/dist/bundle/{p-DcxEm1dI.js.map → p-C5KKL3gn.js.map} +1 -1
  76. package/dist/bundle/{p-CwKyBrf3.js → p-CEFYoazH.js} +4 -4
  77. package/dist/bundle/{p-CwKyBrf3.js.map → p-CEFYoazH.js.map} +1 -1
  78. package/dist/bundle/{p-CXEXoC_s.js → p-CeXiA7z5.js} +3 -3
  79. package/dist/bundle/{p-CXEXoC_s.js.map → p-CeXiA7z5.js.map} +1 -1
  80. package/dist/bundle/{p-WmD5BfeO.js → p-CynPODEC.js} +4 -4
  81. package/dist/bundle/{p-WmD5BfeO.js.map → p-CynPODEC.js.map} +1 -1
  82. package/dist/bundle/{p-Dt1j98T1.js → p-DAJsc8Jk.js} +3 -3
  83. package/dist/bundle/{p-Dt1j98T1.js.map → p-DAJsc8Jk.js.map} +1 -1
  84. package/dist/bundle/{p--iZjxqv3.js → p-DrWTFwlB.js} +4 -4
  85. package/dist/bundle/{p--iZjxqv3.js.map → p-DrWTFwlB.js.map} +1 -1
  86. package/dist/bundle/{p-D3I3eS2K.js → p-DrrX-h-R.js} +4 -4
  87. package/dist/bundle/{p-D3I3eS2K.js.map → p-DrrX-h-R.js.map} +1 -1
  88. package/dist/bundle/{p-BLPc0VWK.js → p-S0YMB18e.js} +6 -6
  89. package/dist/bundle/{p-BLPc0VWK.js.map → p-S0YMB18e.js.map} +1 -1
  90. package/dist/bundle/{p-CH8BjCNJ.js → p-X4ksz0z1.js} +6 -6
  91. package/dist/bundle/{p-CH8BjCNJ.js.map → p-X4ksz0z1.js.map} +1 -1
  92. package/dist/bundle/{p-CYNNmESE.js → p-_H6ui1La.js} +3 -3
  93. package/dist/bundle/{p-CYNNmESE.js.map → p-_H6ui1La.js.map} +1 -1
  94. package/dist/bundle/{p-ChsWtZdt.js → p-uUOjJ6kU.js} +4 -4
  95. package/dist/bundle/{p-ChsWtZdt.js.map → p-uUOjJ6kU.js.map} +1 -1
  96. package/dist/cjs/dso-alert_6.cjs.entry.js +2 -2
  97. package/dist/cjs/dso-dropdown-menu.cjs.entry.js +37 -33
  98. package/dist/cjs/dso-dropdown-menu.cjs.entry.js.map +1 -1
  99. package/dist/cjs/dso-dropdown-menu.entry.cjs.js.map +1 -1
  100. package/dist/cjs/dso-header.cjs.entry.js +91 -89
  101. package/dist/cjs/dso-header.cjs.entry.js.map +1 -1
  102. package/dist/cjs/dso-header.entry.cjs.js.map +1 -1
  103. package/dist/cjs/dso-highlight-box.cjs.entry.js +1 -1
  104. package/dist/cjs/dso-icon.cjs.entry.js +1 -1
  105. package/dist/cjs/dso-info-button.cjs.entry.js +1 -1
  106. package/dist/cjs/dso-info_2.cjs.entry.js +2 -2
  107. package/dist/cjs/dso-input-range.cjs.entry.js +2 -2
  108. package/dist/cjs/dso-label_3.cjs.entry.js +4 -4
  109. package/dist/cjs/dso-legend-item.cjs.entry.js +1 -1
  110. package/dist/cjs/dso-list-button.cjs.entry.js +1 -1
  111. package/dist/cjs/dso-logo.cjs.entry.js +2 -2
  112. package/dist/cjs/dso-logo.cjs.entry.js.map +1 -1
  113. package/dist/cjs/dso-logo.entry.cjs.js.map +1 -1
  114. package/dist/cjs/dso-map-base-layers.cjs.entry.js +1 -1
  115. package/dist/cjs/dso-map-controls.cjs.entry.js +1 -1
  116. package/dist/cjs/dso-map-overlays.cjs.entry.js +1 -1
  117. package/dist/cjs/dso-mark-bar.cjs.entry.js +1 -1
  118. package/dist/cjs/dso-modal.cjs.entry.js +1 -1
  119. package/dist/cjs/dso-onboarding-tip.cjs.entry.js +1 -1
  120. package/dist/cjs/dso-plekinfo-card.cjs.entry.js +1 -1
  121. package/dist/cjs/dso-progress-bar.cjs.entry.js +1 -1
  122. package/dist/cjs/dso-progress-indicator.cjs.entry.js +1 -1
  123. package/dist/cjs/dso-project-item.cjs.entry.js +1 -1
  124. package/dist/cjs/dso-responsive-element.cjs.entry.js +1 -1
  125. package/dist/cjs/dso-scrollable.cjs.entry.js +2 -2
  126. package/dist/cjs/dso-skiplink.cjs.entry.js +1 -1
  127. package/dist/cjs/dso-survey-rating.cjs.entry.js +2 -2
  128. package/dist/cjs/dso-tabs.cjs.entry.js +1 -1
  129. package/dist/cjs/dso-toggletip.cjs.entry.js +1 -1
  130. package/dist/cjs/dso-toolkit.cjs.js +1 -1
  131. package/dist/cjs/dso-tooltip.cjs.entry.js +1 -1
  132. package/dist/cjs/dso-tree-view.cjs.entry.js +1 -1
  133. package/dist/cjs/dso-viewer-grid.cjs.entry.js +1 -1
  134. package/dist/cjs/loader.cjs.js +1 -1
  135. package/dist/collection/components/dropdown-menu/dropdown-menu.js +37 -39
  136. package/dist/collection/components/dropdown-menu/dropdown-menu.js.map +1 -1
  137. package/dist/collection/components/header/header.css +28 -28
  138. package/dist/collection/components/header/header.interfaces.js.map +1 -1
  139. package/dist/collection/components/header/header.js +126 -107
  140. package/dist/collection/components/header/header.js.map +1 -1
  141. package/dist/collection/components/header/menu-item.functional-component.js +6 -0
  142. package/dist/collection/components/header/menu-item.functional-component.js.map +1 -0
  143. package/dist/collection/components/highlight-box/highlight-box.js +1 -1
  144. package/dist/collection/components/icon/icon.js +1 -1
  145. package/dist/collection/components/info/info.js +1 -1
  146. package/dist/collection/components/info-button/info-button.js +1 -1
  147. package/dist/collection/components/input-range/input-range.js +2 -2
  148. package/dist/collection/components/label/label.js +3 -3
  149. package/dist/collection/components/legend-item/legend-item.js +1 -1
  150. package/dist/collection/components/list-button/list-button.js +1 -1
  151. package/dist/collection/components/logo/logo.css +2 -8
  152. package/dist/collection/components/logo/logo.js +1 -1
  153. package/dist/collection/components/map-base-layers/map-base-layers.js +1 -1
  154. package/dist/collection/components/map-controls/map-controls.js +1 -1
  155. package/dist/collection/components/map-overlays/map-overlays.js +1 -1
  156. package/dist/collection/components/mark-bar/mark-bar.js +1 -1
  157. package/dist/collection/components/modal/modal.js +1 -1
  158. package/dist/collection/components/onboarding-tip/onboarding-tip.js +1 -1
  159. package/dist/collection/components/ozon-content/ozon-content.js +1 -1
  160. package/dist/collection/components/plekinfo-card/plekinfo-card.js +1 -1
  161. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  162. package/dist/collection/components/progress-indicator/progress-indicator.js +1 -1
  163. package/dist/collection/components/project-item/project-item.js +1 -1
  164. package/dist/collection/components/responsive-element/responsive-element.js +1 -1
  165. package/dist/collection/components/scrollable/scrollable.js +2 -2
  166. package/dist/collection/components/selectable/selectable.js +1 -1
  167. package/dist/collection/components/skiplink/skiplink.js +1 -1
  168. package/dist/collection/components/slide-toggle/slide-toggle.js +1 -1
  169. package/dist/collection/components/survey-rating/survey-rating.js +2 -2
  170. package/dist/collection/components/table/table.js +1 -1
  171. package/dist/collection/components/tabs/tabs.js +1 -1
  172. package/dist/collection/components/toggletip/toggletip.js +1 -1
  173. package/dist/collection/components/tooltip/tooltip.js +1 -1
  174. package/dist/collection/components/tree-view/tree-view.js +1 -1
  175. package/dist/collection/components/viewer-grid/viewer-grid.js +1 -1
  176. package/dist/components/dropdown-menu.js +38 -34
  177. package/dist/components/dropdown-menu.js.map +1 -1
  178. package/dist/components/dso-header.js +96 -95
  179. package/dist/components/dso-header.js.map +1 -1
  180. package/dist/components/dso-highlight-box.js +1 -1
  181. package/dist/components/dso-input-range.js +2 -2
  182. package/dist/components/dso-legend-item.js +1 -1
  183. package/dist/components/dso-list-button.js +1 -1
  184. package/dist/components/dso-logo.js +2 -2
  185. package/dist/components/dso-logo.js.map +1 -1
  186. package/dist/components/dso-map-base-layers.js +1 -1
  187. package/dist/components/dso-map-controls.js +1 -1
  188. package/dist/components/dso-map-overlays.js +1 -1
  189. package/dist/components/dso-mark-bar.js +1 -1
  190. package/dist/components/dso-modal.js +1 -1
  191. package/dist/components/dso-onboarding-tip.js +1 -1
  192. package/dist/components/dso-plekinfo-card.js +1 -1
  193. package/dist/components/dso-progress-bar.js +1 -1
  194. package/dist/components/dso-project-item.js +1 -1
  195. package/dist/components/dso-skiplink.js +1 -1
  196. package/dist/components/dso-survey-rating.js +2 -2
  197. package/dist/components/dso-tabs.js +1 -1
  198. package/dist/components/dso-tree-view.js +1 -1
  199. package/dist/components/dso-viewer-grid.js +1 -1
  200. package/dist/components/icon.js +1 -1
  201. package/dist/components/info-button.js +1 -1
  202. package/dist/components/info.js +1 -1
  203. package/dist/components/label.js +3 -3
  204. package/dist/components/ozon-content.js +1 -1
  205. package/dist/components/progress-indicator.js +1 -1
  206. package/dist/components/responsive-element.js +1 -1
  207. package/dist/components/scrollable.js +2 -2
  208. package/dist/components/selectable.js +1 -1
  209. package/dist/components/slide-toggle.js +1 -1
  210. package/dist/components/table.js +1 -1
  211. package/dist/components/toggletip.js +1 -1
  212. package/dist/components/tooltip.js +1 -1
  213. package/dist/dso-toolkit/dso-dropdown-menu.entry.esm.js.map +1 -1
  214. package/dist/dso-toolkit/dso-header.entry.esm.js.map +1 -1
  215. package/dist/dso-toolkit/dso-logo.entry.esm.js.map +1 -1
  216. package/dist/dso-toolkit/dso-toolkit.esm.js +1 -1
  217. package/dist/dso-toolkit/{p-53466f70.entry.js → p-01e90e48.entry.js} +2 -2
  218. package/dist/dso-toolkit/{p-78a12530.entry.js → p-071846be.entry.js} +2 -2
  219. package/dist/dso-toolkit/{p-8128fe57.entry.js → p-08efe022.entry.js} +2 -2
  220. package/dist/dso-toolkit/{p-f055ab17.entry.js → p-1cc4cc04.entry.js} +2 -2
  221. package/dist/dso-toolkit/{p-6aff6420.entry.js → p-257a4650.entry.js} +2 -2
  222. package/dist/dso-toolkit/p-2660ebab.entry.js +2 -0
  223. package/dist/dso-toolkit/p-2660ebab.entry.js.map +1 -0
  224. package/dist/dso-toolkit/{p-443a78e5.entry.js → p-275e5ec7.entry.js} +2 -2
  225. package/dist/dso-toolkit/{p-3300fe1e.entry.js → p-2cec1fea.entry.js} +2 -2
  226. package/dist/dso-toolkit/{p-53a81213.entry.js → p-445aba67.entry.js} +2 -2
  227. package/dist/dso-toolkit/{p-7731d7bb.entry.js → p-55637fe3.entry.js} +2 -2
  228. package/dist/dso-toolkit/{p-c359f83e.entry.js → p-67b6a838.entry.js} +2 -2
  229. package/dist/dso-toolkit/{p-b245449a.entry.js → p-6902ffb5.entry.js} +2 -2
  230. package/dist/dso-toolkit/{p-17219f16.entry.js → p-81711068.entry.js} +2 -2
  231. package/dist/dso-toolkit/p-82a89d77.entry.js +2 -0
  232. package/dist/dso-toolkit/p-82a89d77.entry.js.map +1 -0
  233. package/dist/dso-toolkit/{p-afaee982.entry.js → p-898de91a.entry.js} +2 -2
  234. package/dist/dso-toolkit/{p-02491a35.entry.js → p-9566b0a7.entry.js} +2 -2
  235. package/dist/dso-toolkit/p-9b2ca189.entry.js +2 -0
  236. package/dist/dso-toolkit/{p-3522c1dd.entry.js.map → p-9b2ca189.entry.js.map} +1 -1
  237. package/dist/dso-toolkit/{p-16255f29.entry.js → p-a38fbc5c.entry.js} +2 -2
  238. package/dist/dso-toolkit/{p-5c0322dc.entry.js → p-a62f368d.entry.js} +2 -2
  239. package/dist/dso-toolkit/{p-d51d9d66.entry.js → p-add3ca45.entry.js} +2 -2
  240. package/dist/dso-toolkit/{p-04d6ae97.entry.js → p-b4931ff4.entry.js} +2 -2
  241. package/dist/dso-toolkit/{p-f8557ec8.entry.js → p-b4ba87ac.entry.js} +2 -2
  242. package/dist/dso-toolkit/{p-ea71badf.entry.js → p-c45258d3.entry.js} +2 -2
  243. package/dist/dso-toolkit/{p-d0e82c62.entry.js → p-d864f7da.entry.js} +2 -2
  244. package/dist/dso-toolkit/{p-4d885de2.entry.js → p-d947dd25.entry.js} +2 -2
  245. package/dist/dso-toolkit/{p-1aa49aa7.entry.js → p-e299ac60.entry.js} +2 -2
  246. package/dist/dso-toolkit/{p-8fd586d4.entry.js → p-ef042313.entry.js} +2 -2
  247. package/dist/dso-toolkit/{p-fd42a8cd.entry.js → p-f2a61198.entry.js} +2 -2
  248. package/dist/dso-toolkit/{p-218b1fe3.entry.js → p-f4a1a07b.entry.js} +2 -2
  249. package/dist/dso-toolkit/p-f65ace88.entry.js +2 -0
  250. package/dist/dso-toolkit/p-f65ace88.entry.js.map +1 -0
  251. package/dist/dso-toolkit/{p-43564b05.entry.js → p-f9bc4e87.entry.js} +2 -2
  252. package/dist/esm/dso-alert_6.entry.js +2 -2
  253. package/dist/esm/dso-dropdown-menu.entry.js +37 -33
  254. package/dist/esm/dso-dropdown-menu.entry.js.map +1 -1
  255. package/dist/esm/dso-header.entry.js +92 -90
  256. package/dist/esm/dso-header.entry.js.map +1 -1
  257. package/dist/esm/dso-highlight-box.entry.js +1 -1
  258. package/dist/esm/dso-icon.entry.js +1 -1
  259. package/dist/esm/dso-info-button.entry.js +1 -1
  260. package/dist/esm/dso-info_2.entry.js +2 -2
  261. package/dist/esm/dso-input-range.entry.js +2 -2
  262. package/dist/esm/dso-label_3.entry.js +4 -4
  263. package/dist/esm/dso-legend-item.entry.js +1 -1
  264. package/dist/esm/dso-list-button.entry.js +1 -1
  265. package/dist/esm/dso-logo.entry.js +2 -2
  266. package/dist/esm/dso-logo.entry.js.map +1 -1
  267. package/dist/esm/dso-map-base-layers.entry.js +1 -1
  268. package/dist/esm/dso-map-controls.entry.js +1 -1
  269. package/dist/esm/dso-map-overlays.entry.js +1 -1
  270. package/dist/esm/dso-mark-bar.entry.js +1 -1
  271. package/dist/esm/dso-modal.entry.js +1 -1
  272. package/dist/esm/dso-onboarding-tip.entry.js +1 -1
  273. package/dist/esm/dso-plekinfo-card.entry.js +1 -1
  274. package/dist/esm/dso-progress-bar.entry.js +1 -1
  275. package/dist/esm/dso-progress-indicator.entry.js +1 -1
  276. package/dist/esm/dso-project-item.entry.js +1 -1
  277. package/dist/esm/dso-responsive-element.entry.js +1 -1
  278. package/dist/esm/dso-scrollable.entry.js +2 -2
  279. package/dist/esm/dso-skiplink.entry.js +1 -1
  280. package/dist/esm/dso-survey-rating.entry.js +2 -2
  281. package/dist/esm/dso-tabs.entry.js +1 -1
  282. package/dist/esm/dso-toggletip.entry.js +1 -1
  283. package/dist/esm/dso-toolkit.js +1 -1
  284. package/dist/esm/dso-tooltip.entry.js +1 -1
  285. package/dist/esm/dso-tree-view.entry.js +1 -1
  286. package/dist/esm/dso-viewer-grid.entry.js +1 -1
  287. package/dist/esm/loader.js +1 -1
  288. package/dist/types/components/dropdown-menu/dropdown-menu.d.ts +2 -1
  289. package/dist/types/components/header/header.d.ts +38 -26
  290. package/dist/types/components/header/header.interfaces.d.ts +2 -0
  291. package/dist/types/components/header/menu-item.functional-component.d.ts +9 -0
  292. package/dist/types/components.d.ts +20 -18
  293. package/package.json +3 -3
  294. package/dist/bundle/p-C2Ek2dWW.js.map +0 -1
  295. package/dist/dso-toolkit/p-1a06ea3b.entry.js +0 -2
  296. package/dist/dso-toolkit/p-1a06ea3b.entry.js.map +0 -1
  297. package/dist/dso-toolkit/p-3522c1dd.entry.js +0 -2
  298. package/dist/dso-toolkit/p-6a813c6c.entry.js +0 -2
  299. package/dist/dso-toolkit/p-6a813c6c.entry.js.map +0 -1
  300. package/dist/dso-toolkit/p-a85afaa8.entry.js +0 -2
  301. package/dist/dso-toolkit/p-a85afaa8.entry.js.map +0 -1
  302. /package/dist/dso-toolkit/{p-53466f70.entry.js.map → p-01e90e48.entry.js.map} +0 -0
  303. /package/dist/dso-toolkit/{p-78a12530.entry.js.map → p-071846be.entry.js.map} +0 -0
  304. /package/dist/dso-toolkit/{p-8128fe57.entry.js.map → p-08efe022.entry.js.map} +0 -0
  305. /package/dist/dso-toolkit/{p-f055ab17.entry.js.map → p-1cc4cc04.entry.js.map} +0 -0
  306. /package/dist/dso-toolkit/{p-6aff6420.entry.js.map → p-257a4650.entry.js.map} +0 -0
  307. /package/dist/dso-toolkit/{p-443a78e5.entry.js.map → p-275e5ec7.entry.js.map} +0 -0
  308. /package/dist/dso-toolkit/{p-3300fe1e.entry.js.map → p-2cec1fea.entry.js.map} +0 -0
  309. /package/dist/dso-toolkit/{p-53a81213.entry.js.map → p-445aba67.entry.js.map} +0 -0
  310. /package/dist/dso-toolkit/{p-7731d7bb.entry.js.map → p-55637fe3.entry.js.map} +0 -0
  311. /package/dist/dso-toolkit/{p-c359f83e.entry.js.map → p-67b6a838.entry.js.map} +0 -0
  312. /package/dist/dso-toolkit/{p-b245449a.entry.js.map → p-6902ffb5.entry.js.map} +0 -0
  313. /package/dist/dso-toolkit/{p-17219f16.entry.js.map → p-81711068.entry.js.map} +0 -0
  314. /package/dist/dso-toolkit/{p-afaee982.entry.js.map → p-898de91a.entry.js.map} +0 -0
  315. /package/dist/dso-toolkit/{p-02491a35.entry.js.map → p-9566b0a7.entry.js.map} +0 -0
  316. /package/dist/dso-toolkit/{p-16255f29.entry.js.map → p-a38fbc5c.entry.js.map} +0 -0
  317. /package/dist/dso-toolkit/{p-5c0322dc.entry.js.map → p-a62f368d.entry.js.map} +0 -0
  318. /package/dist/dso-toolkit/{p-d51d9d66.entry.js.map → p-add3ca45.entry.js.map} +0 -0
  319. /package/dist/dso-toolkit/{p-04d6ae97.entry.js.map → p-b4931ff4.entry.js.map} +0 -0
  320. /package/dist/dso-toolkit/{p-f8557ec8.entry.js.map → p-b4ba87ac.entry.js.map} +0 -0
  321. /package/dist/dso-toolkit/{p-ea71badf.entry.js.map → p-c45258d3.entry.js.map} +0 -0
  322. /package/dist/dso-toolkit/{p-d0e82c62.entry.js.map → p-d864f7da.entry.js.map} +0 -0
  323. /package/dist/dso-toolkit/{p-4d885de2.entry.js.map → p-d947dd25.entry.js.map} +0 -0
  324. /package/dist/dso-toolkit/{p-1aa49aa7.entry.js.map → p-e299ac60.entry.js.map} +0 -0
  325. /package/dist/dso-toolkit/{p-8fd586d4.entry.js.map → p-ef042313.entry.js.map} +0 -0
  326. /package/dist/dso-toolkit/{p-fd42a8cd.entry.js.map → p-f2a61198.entry.js.map} +0 -0
  327. /package/dist/dso-toolkit/{p-218b1fe3.entry.js.map → p-f4a1a07b.entry.js.map} +0 -0
  328. /package/dist/dso-toolkit/{p-43564b05.entry.js.map → p-f9bc4e87.entry.js.map} +0 -0
@@ -25,7 +25,7 @@ export class SlideToggle {
25
25
  this.hasVisibleLabel = this.host.querySelector("*") !== null;
26
26
  }
27
27
  render() {
28
- return (h(Fragment, null, h("button", Object.assign({ key: '2687a8e260347da037c9042e52e77671b67ecb7f', id: this.identifier, role: "switch", class: "dso-slider", "aria-checked": "" + this.checked, disabled: this.disabled, onClick: (e) => this.handleSwitch(e) }, (this.accessibleLabel ? { "aria-label": this.accessibleLabel } : {}), (this.labelledbyId ? { "aria-labelledby": this.labelledbyId } : {})), h("svg", { key: '0274a0de7b39ca3c8d49498e6d9f8f20feedb3d9', xmlns: "http://www.w3.org/2000/svg", width: "40", height: "20", viewBox: "0 0 40 20" }, h("g", { key: '29a2cd9081df854eeb432313ede37642f1940d27', fill: "none", "fill-rule": "evenodd" }, h("rect", { key: '676f0c561f27aae117d52017b0988cc2715f44dd', width: "40", height: "20", fill: "currentColor", rx: "10" }), h("circle", { key: '7e55a33bb6e47a543e6c9f1b0f3c3271b714cba6', cy: "10", r: "8", fill: "currentColor" })))), this.hasVisibleLabel && (h("label", { key: '20928974be6f841a43d41a23a980070d9df81b42', htmlFor: this.identifier }, h("slot", { key: '6b00a5c5956eb38d2a05c02e8b44fd38a38c428a' })))));
28
+ return (h(Fragment, null, h("button", Object.assign({ key: 'dd056ac89f47164e9ce9132438a9965fbdf78aea', id: this.identifier, role: "switch", class: "dso-slider", "aria-checked": "" + this.checked, disabled: this.disabled, onClick: (e) => this.handleSwitch(e) }, (this.accessibleLabel ? { "aria-label": this.accessibleLabel } : {}), (this.labelledbyId ? { "aria-labelledby": this.labelledbyId } : {})), h("svg", { key: 'ad71efc4e160b53099a2c6d80241fce699839f20', xmlns: "http://www.w3.org/2000/svg", width: "40", height: "20", viewBox: "0 0 40 20" }, h("g", { key: '585e75df75ce6fbb97bc573d5d3cc675ea74679a', fill: "none", "fill-rule": "evenodd" }, h("rect", { key: '6f3b445153a59a77bf8f673ab6cbc0eb65df1e54', width: "40", height: "20", fill: "currentColor", rx: "10" }), h("circle", { key: '58a7a02f8c5d8d92da2e661a709934d5295fb2e1', cy: "10", r: "8", fill: "currentColor" })))), this.hasVisibleLabel && (h("label", { key: 'fd1ec32c47da948e012a747a1830c9292c881cbc', htmlFor: this.identifier }, h("slot", { key: 'ecde5f3d46badc0e71463951cebe906b76aabf6a' })))));
29
29
  }
30
30
  static get is() { return "dso-slide-toggle"; }
31
31
  static get encapsulation() { return "scoped"; }
@@ -18,10 +18,10 @@ export class SurveyRating {
18
18
  "Makkelijk",
19
19
  "Heel makkelijk",
20
20
  ];
21
- return (h("dso-panel", { key: '81016f7594822935a6ae309ed6318b77bc406827', emphasized: true, onDsoCloseClick: (e) => this.dsoClose.emit({ originalEvent: e }), role: "dialog", "aria-labelledby": "panel-heading" }, h("h2", { key: 'dac3edef0341cc1002e0744182d1a7e067b1ee8b', id: "panel-heading", slot: "heading" }, "Help ons met een onderzoek"), h("strong", { key: '90262990003ecebe19ff7c369c9c8b2ed60a5267' }, "Hoe moeilijk of makkelijk was deze taak om uit te voeren?"), h("form", { key: 'b7c091b8dc46acca220d84f7177d0b659dcd421a', onSubmit: (e) => this.handleForm(e) }, h("div", { key: '79601a8c24e799a5aeaf6b84e344b6b627a434c9', class: "visual-rating-labels", "aria-hidden": "true" }, h("span", { key: 'f68646c5634aea4fe1389508c179f7c0c6535bcc' }, "Heel moeilijk"), h("span", { key: '43242db84c7c9e2fa4d19b68467dc12f785f5429' }, "Heel makkelijk")), h("div", { key: 'f73be9a133488ca779c807279ba101eaa390497e', role: "radiogroup" }, ratings.map((rating, index) => {
21
+ return (h("dso-panel", { key: 'a08440a75488ac48b76bad9520140f5ee8de22ab', emphasized: true, onDsoCloseClick: (e) => this.dsoClose.emit({ originalEvent: e }), role: "dialog", "aria-labelledby": "panel-heading" }, h("h2", { key: 'e749e905ceb649aa5e270428de76b1b3a454df4e', id: "panel-heading", slot: "heading" }, "Help ons met een onderzoek"), h("strong", { key: 'c3bec20428494f1e7299375ac1c8477c162de0c7' }, "Hoe moeilijk of makkelijk was deze taak om uit te voeren?"), h("form", { key: '227cf4b049533f58a7648abc0b8e48a452f2c350', onSubmit: (e) => this.handleForm(e) }, h("div", { key: 'ae139bf5bc7278bb6b17d280c70c40b857f111fb', class: "visual-rating-labels", "aria-hidden": "true" }, h("span", { key: 'ffa6cc1b544787a787fba144c4849eca1fb4bef6' }, "Heel moeilijk"), h("span", { key: 'a8fb7698c548b932faa687c66a85dbc40b1a70c4' }, "Heel makkelijk")), h("div", { key: 'fed9a5ae6b53237a2e2c4323bc1ec2ddb77b9418', role: "radiogroup" }, ratings.map((rating, index) => {
22
22
  const ratingNumber = index + 1;
23
23
  return (h(Fragment, null, h("label", { class: `survey-rating-${ratingNumber}` }, ratingNumber, h("span", { class: "sr-only" }, rating), h("input", { type: "radio", name: "rating", value: ratingNumber, checked: ratingNumber === this.rating, onChange: (e) => this.handleChange(e) }))));
24
- })), h("button", { key: '46aa917170f7a02185c118d1ca4dfe8db7c4a8ab', type: "submit", class: "dso-secondary" }, h("span", { key: '955d1cde7295127ce3328c56e42cf5b1c1e9a77a' }, "Antwoord verzenden")))));
24
+ })), h("button", { key: '6f2f4f4f10358bed4c7bce9f3097c51f7e958593', type: "submit", class: "dso-secondary" }, h("span", { key: '0e98c6ea0ae5808638b2a631e936b797a11513b7' }, "Antwoord verzenden")))));
25
25
  }
26
26
  static get is() { return "dso-survey-rating"; }
27
27
  static get encapsulation() { return "shadow"; }
@@ -31,7 +31,7 @@ export class Table {
31
31
  render() {
32
32
  var _a, _b, _c;
33
33
  const caption = (_b = (_a = this.host.querySelector(":scope > table > caption")) === null || _a === void 0 ? void 0 : _a.textContent) === null || _b === void 0 ? void 0 : _b.trim();
34
- return (h(Host, { key: 'b20bb8cd5254e8e6d022b4c397222f7614688651', "is-responsive": (_c = this.isResponsive) === null || _c === void 0 ? void 0 : _c.toString() }, this.modalActive && this.placeholderHeight && (h("div", { key: '4f3bc04a4928f843a3cf8cf85c367e9a823ad733', class: "dso-table-placeholder", style: { height: `${this.placeholderHeight}px` } })), this.modalActive && h("div", { key: 'ab44696db6e67a7bf639b1889346e6a0f9b93f50', class: "dso-modal-overlay" }), h("div", { key: 'fb0b187652f98637797e2f566b6ed27c56e16ef6', class: { "dso-modal": this.modalActive } }, h("div", Object.assign({ key: '68a076be53936c4cdc03dc6900be22df0baf5f2e', class: { "dso-dialog": this.modalActive, "dso-table-dialog": true }, ref: (element) => (this.focusTrapElement = element) }, (this.modalActive ? { ["aria-labelledby"]: this.labelledbyId, role: "dialog" } : {})), (this.isResponsive || !this.noModal) && (h("div", { key: '018eb3c73125f59ad112556bb12714b1d4f16835', class: "dso-table-utilities", style: this.modalActive ? { display: "none" } : undefined }, this.isResponsive && (h("div", { key: 'f00bb764feee55c153ccdf18ede5b83001d9aa43', class: "dso-responsive-message" }, h("span", { key: '92f7ec692ad605724b83a610b0608497a9bf5dae' }, "beweeg de tabel van links naar rechts"))), !this.noModal && (h("button", { key: '0342eac9aa6193a07ba1868a7299518ee2f3c750', type: "button", class: "dso-tertiary open-modal-button", ref: (element) => (this.buttonElement = element), onClick: () => this.openModal() }, h("span", { key: 'c9ebbc3d2a4fabf85225b54f505c700dab61d40d', class: "sr-only" }, "tabel ", caption !== null && caption !== void 0 ? caption : "", " "), h("span", { key: 'ae5c0bfc7e8bbbf38bb1e570ccede1cd22fa912e' }, "vergroten"), h("dso-icon", { key: 'a0122dd44e958612fd03b2c93f829897decee9fb', icon: "external-link" }))))), this.modalActive && (h("div", { key: '282ec9dc6d345af64c07a37d46a7713fdf9614ab', class: "dso-header" }, h("h2", { key: 'e3d28e9221a5c7eb095c41fa793806825bf4c284', id: this.labelledbyId, class: { "sr-only": !caption } }, caption || "Uitvergrote tabel dialoog"), h("button", { key: '7a7eb3d0c8402630de9d78ce522a068ad5cbec8b', type: "button", class: "dso-close", onClick: () => this.closeModal() }, h("dso-icon", { key: '89c2be788e056f4ea03aedc4cb961130983c7e8e', icon: "times" }), h("span", { key: 'c2364e58a8c5f8d6979800ed426f5ab2941deab2', class: "sr-only" }, "Sluiten")))), h("div", { key: 'f60f63ef817d24361a2115e5ba37646dcebfd541', class: { "dso-body": this.modalActive, "dso-table-body": true } }, h("slot", { key: 'a66e801444bf25160e87b03d6fbb1ae31c58851f' }))))));
34
+ return (h(Host, { key: '5953cc01c1eb25f20bf44b20d91091c6398bf938', "is-responsive": (_c = this.isResponsive) === null || _c === void 0 ? void 0 : _c.toString() }, this.modalActive && this.placeholderHeight && (h("div", { key: '848e53047bfca26a6f0c8cc1b014ca48c2ee2540', class: "dso-table-placeholder", style: { height: `${this.placeholderHeight}px` } })), this.modalActive && h("div", { key: '4bdd3f62085641103af4cc9469b5caf1d4f89b56', class: "dso-modal-overlay" }), h("div", { key: '6f21154d50a873ed118f42b68762861db360cea3', class: { "dso-modal": this.modalActive } }, h("div", Object.assign({ key: '2240f097c3f06b7145742a9cb2cbd6b59d7fe6e5', class: { "dso-dialog": this.modalActive, "dso-table-dialog": true }, ref: (element) => (this.focusTrapElement = element) }, (this.modalActive ? { ["aria-labelledby"]: this.labelledbyId, role: "dialog" } : {})), (this.isResponsive || !this.noModal) && (h("div", { key: '3a8b0929f7a16736add3a505f9e8c6fe0a98f14a', class: "dso-table-utilities", style: this.modalActive ? { display: "none" } : undefined }, this.isResponsive && (h("div", { key: 'fa982924130e442bf31f4241d2a7d9017a869dec', class: "dso-responsive-message" }, h("span", { key: 'f693422c76f65f066c23b85781db45593794727b' }, "beweeg de tabel van links naar rechts"))), !this.noModal && (h("button", { key: '0ed185c75afd0afa0fed98e91b37928f5689150f', type: "button", class: "dso-tertiary open-modal-button", ref: (element) => (this.buttonElement = element), onClick: () => this.openModal() }, h("span", { key: '843045b7dd0352c6086d9cbeaf5ede722ebab9fd', class: "sr-only" }, "tabel ", caption !== null && caption !== void 0 ? caption : "", " "), h("span", { key: '799a93a9bbb45e81bb28ce7962b6bfb6d496e110' }, "vergroten"), h("dso-icon", { key: '6cb6608bfbc75fda7097d772ee348e0128808155', icon: "external-link" }))))), this.modalActive && (h("div", { key: '50d963ebb8a22c31a3f7afdc3f10787d948fbc57', class: "dso-header" }, h("h2", { key: '182a1f7c968e360295a260798cbd46d15e00d22d', id: this.labelledbyId, class: { "sr-only": !caption } }, caption || "Uitvergrote tabel dialoog"), h("button", { key: '2590c8227264090f867af9b2768de31a68ea47ac', type: "button", class: "dso-close", onClick: () => this.closeModal() }, h("dso-icon", { key: '7683598fc37fb2da97292ab4fa13621f2f1c20e6', icon: "times" }), h("span", { key: 'fe6b5126af1678abef39cfd9fc983356323dd2d5', class: "sr-only" }, "Sluiten")))), h("div", { key: '0ef436349c8c72aa96f61fc7a84284d6b0a2e5e1', class: { "dso-body": this.modalActive, "dso-table-body": true } }, h("slot", { key: 'f3d14e2988b79b07a0f4235ff6b3f82b04807de2' }))))));
35
35
  }
36
36
  openModal() {
37
37
  this.placeholderHeight = this.host.clientHeight;
@@ -64,7 +64,7 @@ export class Tabs {
64
64
  (_a = this.mutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
65
65
  }
66
66
  render() {
67
- return (h(Host, { key: 'ee52a51bd4dce360be086fe4ac9603c3b1e12255' }, h("div", { key: '7f9270557289a2d6a2d8e949cbf8ee7a8ba286a7', class: "tabs", role: "tablist", onKeyUp: this.keyUpHandler }, h("slot", { key: '47ad707d1b2dc383074db54e70f85fdd60c8a3d4' })), h("div", { key: '5864caa924fcee7d74ef10410ee3b0d38d8af2c0', role: "tabpanel", tabindex: "0" }, h("slot", { key: 'a01b5c9915c4385c713dea531eaccecd9757a940', name: "panel" }))));
67
+ return (h(Host, { key: 'b782efe0ddc342dd3ee576d3d089ce11e722ecdb' }, h("div", { key: 'b814881b616f7b6e9aa3b90c5e5e4c9e698ccce5', class: "tabs", role: "tablist", onKeyUp: this.keyUpHandler }, h("slot", { key: '3c5624281b6985c11d5151848e20cdee9ab165cf' })), h("div", { key: 'd6497e4ebfc5e2de3b0ec2e532214c9184994588', role: "tabpanel", tabindex: "0" }, h("slot", { key: '11fdef18f42f99efa7b02c53108b06311109675a', name: "panel" }))));
68
68
  }
69
69
  static get is() { return "dso-tabs"; }
70
70
  static get encapsulation() { return "shadow"; }
@@ -44,7 +44,7 @@ export class Toggletip {
44
44
  };
45
45
  }
46
46
  render() {
47
- return (h(Fragment, null, h("dso-info-button", { key: '111128db00e6c05e29bdee109ccc04faddb86c66', "aria-describedby": "toggle", onClick: this.click, label: this.label, active: this.active, secondary: this.secondary, ref: (element) => (this.infoButton = element) }), h("dso-tooltip", { key: '42728fdc33b9c2994a6a3dc78ef487beb2c7acab', stateless: true, descriptive: true, id: "toggle", strategy: "absolute", active: this.active, position: this.position, small: this.small }, h("slot", { key: '96d983d968250a2e81727d90990e3145fb2ed1fc' }))));
47
+ return (h(Fragment, null, h("dso-info-button", { key: 'ed1c4c1dd5ff84030e74ce568666481a546dbef5', "aria-describedby": "toggle", onClick: this.click, label: this.label, active: this.active, secondary: this.secondary, ref: (element) => (this.infoButton = element) }), h("dso-tooltip", { key: '48d22cbdbf55a6b73b72b1b52047329661af9837', stateless: true, descriptive: true, id: "toggle", strategy: "absolute", active: this.active, position: this.position, small: this.small }, h("slot", { key: '9261b395053da5a89f5d4d2edf6f7e0e6661a95b' }))));
48
48
  }
49
49
  static get is() { return "dso-toggletip"; }
50
50
  static get encapsulation() { return "shadow"; }
@@ -189,7 +189,7 @@ export class Tooltip {
189
189
  }
190
190
  }
191
191
  render() {
192
- return (h(Host, { key: 'eff3b2b70b8a7dcf3a0cf044b455493eb150bb56', class: { hidden: this.hidden }, role: "tooltip", onClick: this.listenClick }, h("div", { key: 'f01664821ef0389bb10e30a5029e9e0d01dd4718', class: clsx("tooltip", { in: this.active }) }, !this.noArrow && h("div", { key: 'fd4b1942cf719a4df49049cd07383ae16f485d9f', "data-popper-arrow": true, class: "tooltip-arrow" }), h("div", { key: 'ad7b70bd41618de9b834cd8259f3485ac1b4670c', "aria-hidden": !this.descriptive || undefined, class: clsx("tooltip-inner", { "dso-small": this.small }) }, h("slot", { key: 'f3a11c6f3fa1c575295d7efeaa0992355245b59c' })))));
192
+ return (h(Host, { key: '65a589c9c6b0e0b893dca1c59d81b09a896d8653', class: { hidden: this.hidden }, role: "tooltip", onClick: this.listenClick }, h("div", { key: 'ea85cf288a414a7a206749f6f77c46e6d21246d9', class: clsx("tooltip", { in: this.active }) }, !this.noArrow && h("div", { key: '1c3cac60088a4bdf9f5fc12157b509112cffa4d4', "data-popper-arrow": true, class: "tooltip-arrow" }), h("div", { key: 'be5c98d6bc64027526c2722e8d3c883c329333d8', "aria-hidden": !this.descriptive || undefined, class: clsx("tooltip-inner", { "dso-small": this.small }) }, h("slot", { key: '2436ff2bd355779bb4c01e7938b7430175ac5bb9' })))));
193
193
  }
194
194
  activatePopper() {
195
195
  var _a;
@@ -174,7 +174,7 @@ export class TreeView {
174
174
  }
175
175
  render() {
176
176
  var _a;
177
- return (h("div", { key: '8fa6eac8e8c49987f8d84e3eb5d6a36cca0aa4fc', id: "tree", class: "dso-tree", onKeyDown: (e) => this.keyDownListener(e), ref: (element) => (this.tree = element) }, h("ul", { key: '7e985edbbd740375b87cdc4de51acf898ce1a653', role: "tree", "aria-label": "Objectenboom" }, (_a = this.collection) === null || _a === void 0 ? void 0 : _a.map((item, index) => (h(DsoTreeItem, { owner: this, ancestors: [], item: item, index: index, level: 1, setSize: this.collection.length }))))));
177
+ return (h("div", { key: 'df518bf4e90740863ffefdbd13598671010a8126', id: "tree", class: "dso-tree", onKeyDown: (e) => this.keyDownListener(e), ref: (element) => (this.tree = element) }, h("ul", { key: '17b6a9e1c6051321ef13dff80d28876bda733ad9', role: "tree", "aria-label": "Objectenboom" }, (_a = this.collection) === null || _a === void 0 ? void 0 : _a.map((item, index) => (h(DsoTreeItem, { owner: this, ancestors: [], item: item, index: index, level: 1, setSize: this.collection.length }))))));
178
178
  }
179
179
  static get is() { return "dso-tree-view"; }
180
180
  static get encapsulation() { return "shadow"; }
@@ -158,7 +158,7 @@ export class ViewerGrid {
158
158
  }
159
159
  }
160
160
  render() {
161
- return (h(Fragment, null, h("slot", { key: '4868f367922b80e7a2a3092823a2d9c42a5fb258', name: "top-bar" }), h("div", { key: '50799816c0d5e6f1c08df7b007aa96c0dc4c59b4', class: "viewer-grid-columns" }, this.tabView && (h("nav", { key: 'cab657aa54352e9bbb7fe04ce778fc32bbba17b3', class: "dso-navbar" }, h("ul", { key: 'dcbb8067da17c53deff1d80fb8ec69416654ab3a', class: "dso-nav dso-nav-sub" }, viewerGridTabs.map((tab) => (h("li", { key: tab, class: clsx({ "dso-active": this.activeTab === tab }) }, h("button", { type: "button", class: "dso-tertiary", onClick: () => this.switchActiveTab(tab) }, viewerGridTabLabelMap[tab]))))))), (!this.tabView || (this.tabView && this.activeTab === "search")) && (h(MainPanel, { key: '6da04458c9379be5b3b17a384b06b55820971f79', tabView: this.tabView, mainSize: this.mainSize, documentPanelOpen: this.documentPanelOpen, mainPanelExpanded: this.mainPanelExpanded, mainPanelHidden: this.mainPanelHidden, toggleMainPanel: this.toggleMainPanel, dsoMainSizeChangeAnimationEnd: this.dsoMainSizeChangeAnimationEnd })), (!this.tabView || (this.tabView && this.activeTab === "search")) && (h(FilterPanel, { key: '7313ab492851fe551712f6bb856316cbf06cc2a7', title: this.filterPanelTitle, ref: (element) => (this.filterPanel = element), dsoCloseFilterPanel: (e) => this.dsoCloseFilterPanel.emit({ originalEvent: e }) })), (!this.tabView || (this.tabView && this.activeTab === "map")) && (h("div", { key: '8d524c067be71cb48d9133ce1ca473066f725e6e', class: "map", ref: (element) => (this.mapElement = element) }, h("slot", { key: '956a83c6a4a3679cef160fdbed9267c66bb2eb08', name: "map" }))), ((!this.tabView && this.documentPanelOpen) || (this.tabView && this.activeTab === "document")) && (h(DocumentPanel, { key: '8995cd103d7c74615c130bf6243314aee5761768', tabView: this.tabView, panelSize: this.documentPanelSize, shrinkDocumentPanel: this.shrinkDocumentPanel, expandDocumentPanel: this.expandDocumentPanel, dsoDocumentPanelSizeChangeAnimationEnd: this.dsoDocumentPanelSizeChangeAnimationEnd })), h(Overlay, { key: 'e861a7e0b09b23eaf12704c578882f4218f73384', ref: (element) => (this.overlay = element), dsoCloseOverlay: (e) => this.dsoCloseOverlay.emit({ originalEvent: e }) }))));
161
+ return (h(Fragment, null, h("slot", { key: 'ac6069fa519432697e22d6f5675da589a8e39026', name: "top-bar" }), h("div", { key: '8649818c89255fa5f928b422aa0522f807fc6313', class: "viewer-grid-columns" }, this.tabView && (h("nav", { key: '4b0939e88ed178a5d2f951e7d17be7fa38bbb9fd', class: "dso-navbar" }, h("ul", { key: 'f06385a28cb4cf3aa20587b1fcf4a2189dfe49aa', class: "dso-nav dso-nav-sub" }, viewerGridTabs.map((tab) => (h("li", { key: tab, class: clsx({ "dso-active": this.activeTab === tab }) }, h("button", { type: "button", class: "dso-tertiary", onClick: () => this.switchActiveTab(tab) }, viewerGridTabLabelMap[tab]))))))), (!this.tabView || (this.tabView && this.activeTab === "search")) && (h(MainPanel, { key: '5ec42973090737a661a3a3cce7c1b443043e7351', tabView: this.tabView, mainSize: this.mainSize, documentPanelOpen: this.documentPanelOpen, mainPanelExpanded: this.mainPanelExpanded, mainPanelHidden: this.mainPanelHidden, toggleMainPanel: this.toggleMainPanel, dsoMainSizeChangeAnimationEnd: this.dsoMainSizeChangeAnimationEnd })), (!this.tabView || (this.tabView && this.activeTab === "search")) && (h(FilterPanel, { key: 'c007f7915f4c4d2fe372700aa4d39cf1b7e1b8b7', title: this.filterPanelTitle, ref: (element) => (this.filterPanel = element), dsoCloseFilterPanel: (e) => this.dsoCloseFilterPanel.emit({ originalEvent: e }) })), (!this.tabView || (this.tabView && this.activeTab === "map")) && (h("div", { key: '7556ea286b75bf6a0ada1c086aa69732ba008262', class: "map", ref: (element) => (this.mapElement = element) }, h("slot", { key: 'ff2507e5a54987f338e8fc5671deef0886f01d71', name: "map" }))), ((!this.tabView && this.documentPanelOpen) || (this.tabView && this.activeTab === "document")) && (h(DocumentPanel, { key: 'c1b327f81a4a7e77a9f83cc260e77c07d423cd7b', tabView: this.tabView, panelSize: this.documentPanelSize, shrinkDocumentPanel: this.shrinkDocumentPanel, expandDocumentPanel: this.expandDocumentPanel, dsoDocumentPanelSizeChangeAnimationEnd: this.dsoDocumentPanelSizeChangeAnimationEnd })), h(Overlay, { key: 'd07c8f2a88b40d3462b49f41af7b107dce9e1210', ref: (element) => (this.overlay = element), dsoCloseOverlay: (e) => this.dsoCloseOverlay.emit({ originalEvent: e }) }))));
162
162
  }
163
163
  static get is() { return "dso-viewer-grid"; }
164
164
  static get encapsulation() { return "shadow"; }
@@ -34,6 +34,38 @@ const DropdownMenu = /*@__PURE__*/ proxyCustomElement(class DropdownMenu extends
34
34
  this.toggleOptions(false);
35
35
  }
36
36
  };
37
+ this.keyDownListener = (event) => {
38
+ if (event.defaultPrevented || !this.open) {
39
+ return;
40
+ }
41
+ switch (event.key) {
42
+ case "Tab":
43
+ if (event.shiftKey) {
44
+ this.tabInPopup(this.tabbables(true), -1);
45
+ }
46
+ else {
47
+ this.tabInPopup(this.tabbables(true), 1);
48
+ }
49
+ break;
50
+ case "ArrowDown":
51
+ this.tabInPopup(this.tabbables(false), 1);
52
+ break;
53
+ case "ArrowUp":
54
+ this.tabInPopup(this.tabbables(false), -1);
55
+ break;
56
+ case "Escape":
57
+ this.escape();
58
+ break;
59
+ case " ":
60
+ if (event.target instanceof HTMLElement) {
61
+ event.target.click();
62
+ }
63
+ break;
64
+ default:
65
+ return;
66
+ }
67
+ event.preventDefault();
68
+ };
37
69
  this.escape = () => {
38
70
  this.button.focus();
39
71
  this.toggleOptions(false);
@@ -126,41 +158,13 @@ const DropdownMenu = /*@__PURE__*/ proxyCustomElement(class DropdownMenu extends
126
158
  this.cleanUp = undefined;
127
159
  }
128
160
  }
161
+ connectedCallback() {
162
+ this.host.addEventListener("keydown", this.keyDownListener);
163
+ }
129
164
  disconnectedCallback() {
165
+ this.host.removeEventListener("keydown", this.keyDownListener);
130
166
  this.toggleOptions(false);
131
167
  }
132
- keyDownListener(event) {
133
- if (event.defaultPrevented || !this.open) {
134
- return;
135
- }
136
- switch (event.key) {
137
- case "Tab":
138
- if (event.shiftKey) {
139
- this.tabInPopup(this.tabbables(true), -1);
140
- }
141
- else {
142
- this.tabInPopup(this.tabbables(true), 1);
143
- }
144
- break;
145
- case "ArrowDown":
146
- this.tabInPopup(this.tabbables(false), 1);
147
- break;
148
- case "ArrowUp":
149
- this.tabInPopup(this.tabbables(false), -1);
150
- break;
151
- case "Escape":
152
- this.escape();
153
- break;
154
- case " ":
155
- if (event.target instanceof HTMLElement) {
156
- event.target.click();
157
- }
158
- break;
159
- default:
160
- return;
161
- }
162
- event.preventDefault();
163
- }
164
168
  tabInPopup(tabbables, direction) {
165
169
  var _a;
166
170
  const currentIndex = tabbables.findIndex((e) => e === getActiveElement());
@@ -174,7 +178,7 @@ const DropdownMenu = /*@__PURE__*/ proxyCustomElement(class DropdownMenu extends
174
178
  (_a = tabbables[nextIndex]) === null || _a === void 0 ? void 0 : _a.focus();
175
179
  }
176
180
  render() {
177
- return (h(Host, { key: '9afd8972737639f89ad1a4692630873b783e4565', onFocusout: this.focusOutListener }, h("slot", { key: '1dcb47d44aa64263048235e5ef126a9c021fc2d9', name: "toggle" }), h("div", { key: 'ad7d1edefabae59820c974da1b2a37088baaf1ce', popover: "manual", ref: (element) => (this.popoverElement = element) }, h("slot", { key: 'b2a5188261a9edca8d948365152d817b69104936' }))));
181
+ return (h(Host, { key: 'ca433c0742f0b1a86f40f821dde1ced6c103f6d5', onFocusout: this.focusOutListener }, h("slot", { key: '049bbf82db468f4912615b75628f82335b2b13ab', name: "toggle" }), h("div", { key: 'a480ad769709596bac365e26186d0ff39d4a9646', popover: "manual", ref: (element) => (this.popoverElement = element) }, h("slot", { key: '6aa0977a24f5af0acc2883b2afe7a7a99ec26f7d' }))));
178
182
  }
179
183
  get host() { return this; }
180
184
  static get style() { return dropdownMenuCss; }
@@ -183,7 +187,7 @@ const DropdownMenu = /*@__PURE__*/ proxyCustomElement(class DropdownMenu extends
183
187
  "dropdownAlign": [1, "dropdown-align"],
184
188
  "dropdownOptionsOffset": [2, "dropdown-options-offset"],
185
189
  "checkable": [4]
186
- }, [[8, "click", "onClick"], [8, "keydown", "keyDownListener"]]]);
190
+ }, [[8, "click", "onClick"]]]);
187
191
  function defineCustomElement() {
188
192
  if (typeof customElements === "undefined") {
189
193
  return;
@@ -1 +1 @@
1
- {"file":"dropdown-menu.js","mappings":"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","names":["__stencil_proxyCustomElement","uuidv4"],"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
+ {"file":"dropdown-menu.js","mappings":"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","names":["__stencil_proxyCustomElement","uuidv4"],"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 connectedCallback() {\r\n this.host.addEventListener(\"keydown\", this.keyDownListener);\r\n }\r\n\r\n disconnectedCallback() {\r\n this.host.removeEventListener(\"keydown\", this.keyDownListener);\r\n\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 private 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,4 +1,4 @@
1
- import { proxyCustomElement, HTMLElement, createEvent, h, Fragment } from '@stencil/core/internal/client';
1
+ import { h, proxyCustomElement, HTMLElement, createEvent, forceUpdate, Host, Fragment } from '@stencil/core/internal/client';
2
2
  import { c as clsx } from './clsx.js';
3
3
  import { d as debounce } from './index2.js';
4
4
  import { i as i18n } from './i18n.js';
@@ -28,7 +28,12 @@ const translations = {
28
28
  },
29
29
  };
30
30
 
31
- const headerCss = "@charset \"UTF-8\";*,*::after,*::before{box-sizing:border-box}:host{display:block}.dso-header{border-block-end:1px solid #ccc;display:flex;flex-wrap:wrap;position:relative}@media screen and (min-width: 768px){.dso-header{align-items:center}}@media screen and (max-width: 991px){.dso-header.use-drop-down{flex-wrap:nowrap}}.dso-header .dso-nav{border:0}.logo-container{flex:1 1 12.5rem;margin-inline-end:24px;padding-block-end:16px;padding-block-start:16px}.dso-header-session{display:flex;align-items:center;margin-inline-start:auto}.dso-header-session .profile .dso-tertiary,.dso-header-session .login .dso-tertiary,.dso-header-session .logout .dso-tertiary,.dso-header-session .help .dso-tertiary{display:flex;gap:0.5rem;cursor:pointer;border:0;background-color:transparent;padding-inline-start:0;outline-offset:2px;font-family:Asap, sans-serif;color:#39870c;font-size:1rem;font-weight:600;line-height:1.5;text-decoration:none}.dso-header-session .profile .dso-tertiary:hover,.dso-header-session .login .dso-tertiary:hover,.dso-header-session .logout .dso-tertiary:hover,.dso-header-session .help .dso-tertiary:hover{text-decoration:underline}.dso-header-session .profile+.logout,.dso-header-session .logout+.help,.dso-header-session .login+.help{border-inline-start:3px solid #ccc;margin-inline-start:8px;padding-inline-start:8px}.dso-header-session .help a,.dso-header-session .help button{display:flex}.dso-navbar{flex-basis:100%}dso-dropdown-menu>button:not(.dso-primary):not(.dso-secondary):not(.dso-tertiary),dso-dropdown-menu>.dso-primary,dso-dropdown-menu>.dso-secondary,dso-dropdown-menu>.dso-tertiary{position:relative}dso-dropdown-menu>button:not(.dso-primary):not(.dso-secondary):not(.dso-tertiary)::after,dso-dropdown-menu>.dso-primary::after,dso-dropdown-menu>.dso-secondary::after,dso-dropdown-menu>.dso-tertiary::after{content:\"\";display:inline-block}dso-dropdown-menu>.dso-primary::after,dso-dropdown-menu>.dso-secondary::after{margin-inline-start:8px}dso-dropdown-menu .dso-group-label{color:#999;font-size:0.875em;font-weight:400;margin:0;padding-block:4px 2px;padding-inline:20px;text-transform:uppercase}dso-dropdown-menu ul{margin:0;padding:0}dso-dropdown-menu ul:not(:last-child){border-block-end:1px solid #e5e5e5;margin-block-end:11px;padding-block-end:11px}dso-dropdown-menu .dso-dropdown-options{background-clip:padding-box;background-color:#fff;border-radius:4px;border:1px solid rgba(0, 0, 0, 0.15);box-shadow:0 8px 10px 1px rgba(0, 0, 0, 0.4);font-size:1rem;min-inline-size:160px;padding-block:5px;padding-inline:0;z-index:220}dso-dropdown-menu .dso-dropdown-options li{list-style:none}dso-dropdown-menu .dso-dropdown-options li a:visited{color:#191919}dso-dropdown-menu .dso-dropdown-options li a,dso-dropdown-menu .dso-dropdown-options li button{text-decoration:none}dso-dropdown-menu .dso-dropdown-options li a:hover,dso-dropdown-menu .dso-dropdown-options li a:focus-visible,dso-dropdown-menu .dso-dropdown-options li a:active,dso-dropdown-menu .dso-dropdown-options li button:hover,dso-dropdown-menu .dso-dropdown-options li button:focus-visible,dso-dropdown-menu .dso-dropdown-options li button:active{text-decoration:underline}dso-dropdown-menu .dso-dropdown-options li a,dso-dropdown-menu .dso-dropdown-options li button{clear:both;color:#191919;display:block;font-weight:400;line-height:1.5;padding-block:3px;padding-inline:20px;text-decoration:none;white-space:nowrap}dso-dropdown-menu .dso-dropdown-options li a:hover,dso-dropdown-menu .dso-dropdown-options li a:focus,dso-dropdown-menu .dso-dropdown-options li button:hover,dso-dropdown-menu .dso-dropdown-options li button:focus{background-color:#39870c;border-color:#39870c;color:#fff;text-decoration:none}dso-dropdown-menu .dso-dropdown-options li button{background-color:transparent;border:0;border-radius:0;text-align:inherit;inline-size:100%}dso-dropdown-menu button{background-color:transparent;border:0;display:flex;font-family:Asap, sans-serif;align-items:center;position:relative}dso-dropdown-menu button dso-icon{inline-size:24px;block-size:24px;margin-inline-start:8px;padding-block-start:2px}dso-dropdown-menu button[aria-expanded=true] dso-icon{transform:rotate(180deg)}dso-dropdown-menu .dso-dropdown-options{border:0;border-radius:0;box-shadow:0 8px 10px 1px rgba(0, 0, 0, 0.4)}@media screen and (min-width: 768px){dso-dropdown-menu .dso-dropdown-options{inline-size:375px}}@media screen and (max-width: 767px){dso-dropdown-menu .dso-dropdown-options{inline-size:100%}}dso-dropdown-menu .dso-dropdown-options ul{margin:0;padding:0;list-style:none}dso-dropdown-menu .dso-dropdown-options ul li a,dso-dropdown-menu .dso-dropdown-options ul li button{display:block;padding:16px;color:#275937;font-size:1.25rem;white-space:pre-wrap;text-decoration:none}dso-dropdown-menu .dso-dropdown-options ul li a:focus-visible,dso-dropdown-menu .dso-dropdown-options ul li button:focus-visible{background-color:#39870c;color:#fff}dso-dropdown-menu .dso-dropdown-options ul li a:hover,dso-dropdown-menu .dso-dropdown-options ul li button:hover{background-color:#fff;color:#275937;text-decoration:underline}dso-dropdown-menu .dso-dropdown-options ul li a:visited,dso-dropdown-menu .dso-dropdown-options ul li button:visited{color:#275937}dso-dropdown-menu .dso-dropdown-options ul li button{inline-size:100%;text-align:start}dso-dropdown-menu .dso-dropdown-options ul li button dso-icon{margin-inline-start:8px}dso-dropdown-menu .dso-dropdown-options ul li.dso-active a{font-weight:600}dso-dropdown-menu .dso-dropdown-options ul li+li{border-block-start:1px solid #ccc}.dropdown{margin-inline-start:auto;display:flex;align-items:center}.dropdown dso-dropdown-menu{position:static}.dropdown dso-dropdown-menu .dso-dropdown-options{inset-inline-end:0;inset-block-start:100%;box-shadow:0 8px 10px 1px rgba(0, 0, 0, 0.4)}.dropdown dso-dropdown-menu>button{color:#39870c;font-size:16px;font-weight:600;line-height:normal;position:relative}.dropdown dso-dropdown-menu>button::after{margin-inline-start:8px;position:absolute;inset-inline-end:0px;inset-block-start:50%;transform:translateY(-50%)}.dropdown dso-dropdown-menu>button:hover,.dropdown dso-dropdown-menu>button:active{cursor:pointer;text-decoration:underline}.dso-nav{align-items:end;column-gap:32px;display:flex;list-style:none;margin-block-end:0;margin-block-start:0;padding-inline-start:0}.dso-nav>li{margin-block-end:4px}.dso-nav>li>a{display:block}.dso-nav>li>a,.dso-nav>li>a:hover,.dso-nav>li>a:focus,.dso-nav>li>a:visited{color:#275937}.dso-nav>li.dso-active,.dso-nav>li.is-active{margin-block-end:0}.dso-nav>li.dso-active>a,.dso-nav>li.is-active>a{border-block-end:4px solid #8b4a6a;font-weight:bold}.dso-nav.dso-nav-main{display:flex !important}.dso-nav.dso-nav-main>li>a{text-decoration:none;font-size:1.25em;line-height:1;margin-block-start:8px;padding-block:16px;padding-inline:0;white-space:nowrap}.dso-nav.dso-nav-main>li>a:hover,.dso-nav.dso-nav-main>li>a:focus-visible,.dso-nav.dso-nav-main>li>a:active{text-decoration:underline}.dso-nav.dso-nav-main dso-dropdown-menu .dso-dropdown-options{inset-inline-start:-1rem !important;inset-block-start:3px !important}.dso-nav.dso-nav-main dso-dropdown-menu button{font-size:1.25em;line-height:1;margin-block-start:8px;padding-block:16px;padding-inline:0;align-items:flex-end;color:#275937}.dso-nav.dso-nav-main dso-dropdown-menu button:hover,.dso-nav.dso-nav-main dso-dropdown-menu button:active{cursor:pointer;text-decoration:underline}.dso-nav.dso-nav-main dso-dropdown-menu button::after{margin-inline-start:8px;position:absolute;inset-inline-end:0px;inset-block-start:auto;transform:none}.dso-nav .menu-user-home{margin-inline-start:auto}.dso-nav .menu-user-home dso-icon{block-size:1em;margin-inline-end:8px;position:relative;inset-block-start:-2px;inline-size:1.2em}";
31
+ const MenuItem = ({ item, onClick, key, ref }) => {
32
+ return (h("li", { class: clsx({ "dso-active": item.active }), key: key, ref: ref },
33
+ h("a", { href: item.url, "aria-current": item.active ? "page" : undefined, onClick: onClick }, item.label)));
34
+ };
35
+
36
+ const headerCss = "@charset \"UTF-8\";*,*::after,*::before{box-sizing:border-box}:host{display:block}:host([is-compact]) ::slotted([slot=logo]){--_dso-logo-block-size:2.5rem !important}:host([is-compact]) .dso-header{flex-wrap:nowrap}:host([is-compact]) dso-dropdown-menu .dso-dropdown-options{inline-size:100%}:host(:not([is-compact])) .dso-header{align-items:center}:host(:not([is-compact])) dso-dropdown-menu .dso-dropdown-options{inline-size:375px}.dso-header{border-block-end:1px solid #ccc;display:flex;flex-wrap:wrap;position:relative}.dso-header .dso-nav{border:0}.logo-container{flex:1 1 12.5rem;margin-inline-end:24px;padding-block-end:16px;padding-block-start:16px}.dso-header-session{display:flex;align-items:center;margin-inline-start:auto}.dso-header-session .profile .dso-tertiary,.dso-header-session .login .dso-tertiary,.dso-header-session .logout .dso-tertiary,.dso-header-session .help .dso-tertiary{display:flex;gap:0.5rem;cursor:pointer;border:0;background-color:transparent;padding-inline-start:0;outline-offset:2px;font-family:Asap, sans-serif;color:#39870c;font-size:1rem;font-weight:600;line-height:1.5;text-decoration:none}.dso-header-session .profile .dso-tertiary:hover,.dso-header-session .login .dso-tertiary:hover,.dso-header-session .logout .dso-tertiary:hover,.dso-header-session .help .dso-tertiary:hover{text-decoration:underline}.dso-header-session .profile+.logout,.dso-header-session .logout+.help,.dso-header-session .login+.help{border-inline-start:3px solid #ccc;margin-inline-start:8px;padding-inline-start:8px}.dso-header-session .help a,.dso-header-session .help button{display:flex}.dso-navbar{flex-basis:100%;max-inline-size:100%;position:relative}dso-dropdown-menu>button:not(.dso-primary):not(.dso-secondary):not(.dso-tertiary),dso-dropdown-menu>.dso-primary,dso-dropdown-menu>.dso-secondary,dso-dropdown-menu>.dso-tertiary{position:relative}dso-dropdown-menu>button:not(.dso-primary):not(.dso-secondary):not(.dso-tertiary)::after,dso-dropdown-menu>.dso-primary::after,dso-dropdown-menu>.dso-secondary::after,dso-dropdown-menu>.dso-tertiary::after{content:\"\";display:inline-block}dso-dropdown-menu>.dso-primary::after,dso-dropdown-menu>.dso-secondary::after{margin-inline-start:8px}dso-dropdown-menu .dso-group-label{color:#999;font-size:0.875em;font-weight:400;margin:0;padding-block:4px 2px;padding-inline:20px;text-transform:uppercase}dso-dropdown-menu ul{margin:0;padding:0}dso-dropdown-menu ul:not(:last-child){border-block-end:1px solid #e5e5e5;margin-block-end:11px;padding-block-end:11px}dso-dropdown-menu .dso-dropdown-options{background-clip:padding-box;background-color:#fff;border-radius:4px;border:1px solid rgba(0, 0, 0, 0.15);box-shadow:0 8px 10px 1px rgba(0, 0, 0, 0.4);font-size:1rem;min-inline-size:160px;padding-block:5px;padding-inline:0;z-index:220}dso-dropdown-menu .dso-dropdown-options li{list-style:none}dso-dropdown-menu .dso-dropdown-options li a:visited{color:#191919}dso-dropdown-menu .dso-dropdown-options li a,dso-dropdown-menu .dso-dropdown-options li button{text-decoration:none}dso-dropdown-menu .dso-dropdown-options li a:hover,dso-dropdown-menu .dso-dropdown-options li a:focus-visible,dso-dropdown-menu .dso-dropdown-options li a:active,dso-dropdown-menu .dso-dropdown-options li button:hover,dso-dropdown-menu .dso-dropdown-options li button:focus-visible,dso-dropdown-menu .dso-dropdown-options li button:active{text-decoration:underline}dso-dropdown-menu .dso-dropdown-options li a,dso-dropdown-menu .dso-dropdown-options li button{clear:both;color:#191919;display:block;font-weight:400;line-height:1.5;padding-block:3px;padding-inline:20px;text-decoration:none;white-space:nowrap}dso-dropdown-menu .dso-dropdown-options li a:hover,dso-dropdown-menu .dso-dropdown-options li a:focus,dso-dropdown-menu .dso-dropdown-options li button:hover,dso-dropdown-menu .dso-dropdown-options li button:focus{background-color:#39870c;border-color:#39870c;color:#fff;text-decoration:none}dso-dropdown-menu .dso-dropdown-options li button{background-color:transparent;border:0;border-radius:0;text-align:inherit;inline-size:100%}dso-dropdown-menu button{background-color:transparent;border:0;display:flex;font-family:Asap, sans-serif;align-items:center;position:relative}dso-dropdown-menu button dso-icon{inline-size:24px;block-size:24px;margin-inline-start:8px;padding-block-start:2px}dso-dropdown-menu button[aria-expanded=true] dso-icon{transform:rotate(180deg)}dso-dropdown-menu .dso-dropdown-options{border:0;border-radius:0;box-shadow:0 8px 10px 1px rgba(0, 0, 0, 0.4)}dso-dropdown-menu .dso-dropdown-options ul{margin:0;padding:0;list-style:none}dso-dropdown-menu .dso-dropdown-options ul li a,dso-dropdown-menu .dso-dropdown-options ul li button{display:block;padding:16px;color:#275937;font-size:1.25rem;white-space:pre-wrap;text-decoration:none}dso-dropdown-menu .dso-dropdown-options ul li a:focus-visible,dso-dropdown-menu .dso-dropdown-options ul li button:focus-visible{background-color:#39870c;color:#fff}dso-dropdown-menu .dso-dropdown-options ul li a:hover,dso-dropdown-menu .dso-dropdown-options ul li button:hover{background-color:#fff;color:#275937;text-decoration:underline}dso-dropdown-menu .dso-dropdown-options ul li a:visited:not(:hover):not(:focus-visible),dso-dropdown-menu .dso-dropdown-options ul li button:visited:not(:hover):not(:focus-visible){color:#275937}dso-dropdown-menu .dso-dropdown-options ul li button{inline-size:100%;text-align:start}dso-dropdown-menu .dso-dropdown-options ul li button dso-icon{margin-inline-start:8px}dso-dropdown-menu .dso-dropdown-options ul li.dso-active a{font-weight:600}dso-dropdown-menu .dso-dropdown-options ul li+li{border-block-start:1px solid #ccc}.dropdown{margin-inline-start:auto;display:flex;align-items:center}.dropdown dso-dropdown-menu{position:static}.dropdown dso-dropdown-menu .dso-dropdown-options{inset-inline-end:0;inset-block-start:100%;box-shadow:0 8px 10px 1px rgba(0, 0, 0, 0.4)}.dropdown dso-dropdown-menu>button{color:#39870c;font-size:16px;font-weight:600;line-height:normal;position:relative}.dropdown dso-dropdown-menu>button::after{margin-inline-start:8px;position:absolute;inset-inline-end:0px;inset-block-start:50%;transform:translateY(-50%)}.dropdown dso-dropdown-menu>button:hover,.dropdown dso-dropdown-menu>button:active{cursor:pointer;text-decoration:underline}.dso-nav{align-items:end;column-gap:32px;display:flex;list-style:none;margin-block-end:0;margin-block-start:0;padding-inline-start:0}.dso-nav.ready .menu-user-home{margin-inline-start:auto}.dso-nav>li{margin-block-end:4px}.dso-nav>li>a{display:block}.dso-nav>li>a,.dso-nav>li>a:hover,.dso-nav>li>a:focus,.dso-nav>li>a:visited{color:#275937}.dso-nav>li.dso-active,.dso-nav>li.is-active{margin-block-end:0}.dso-nav>li.dso-active>a,.dso-nav>li.is-active>a{border-block-end:4px solid #8b4a6a;font-weight:bold}.dso-nav.dso-nav-main{display:flex !important}.dso-nav.dso-nav-main>li>a{text-decoration:none;font-size:1.25em;line-height:1;padding-block:16px;padding-inline:0;white-space:nowrap}.dso-nav.dso-nav-main>li>a:hover,.dso-nav.dso-nav-main>li>a:focus-visible,.dso-nav.dso-nav-main>li>a:active{text-decoration:underline}.dso-nav.dso-nav-main dso-dropdown-menu .dso-dropdown-options{inset-inline-start:-1rem !important;inset-block-start:3px !important}.dso-nav.dso-nav-main dso-dropdown-menu button{font-size:1.25em;line-height:1;padding-block:16px;padding-inline:0;align-items:flex-end;color:#275937}.dso-nav.dso-nav-main dso-dropdown-menu button:hover,.dso-nav.dso-nav-main dso-dropdown-menu button:active{cursor:pointer;text-decoration:underline}.dso-nav.dso-nav-main dso-dropdown-menu button::after{margin-inline-start:8px;position:absolute;inset-inline-end:0px;inset-block-start:auto;transform:none}.dso-nav .main-menu-item-icon{block-size:1em;margin-inline-end:8px;position:relative;inset-block-start:-2px;inline-size:1.2em}.dso-nav .dropdown-menu-item .main-menu-item-icon{margin-inline-end:0}";
32
37
 
33
38
  const minDesktopViewportWidth = 992;
34
39
  const Header = /*@__PURE__*/ proxyCustomElement(class Header extends HTMLElement {
@@ -42,9 +47,10 @@ const Header = /*@__PURE__*/ proxyCustomElement(class Header extends HTMLElement
42
47
  */
43
48
  this.mainMenu = [];
44
49
  /**
45
- * Either have the dropdown menu appear automatically or always.
50
+ * Set to "always" to force the header to be compact. Otherwise it will be compact when
51
+ * the viewport is smaller than 992px.
46
52
  */
47
- this.useDropDownMenu = "auto";
53
+ this.compact = "auto";
48
54
  /**
49
55
  * Used to show the login/logout option. 'none' renders nothing.
50
56
  */
@@ -53,83 +59,73 @@ const Header = /*@__PURE__*/ proxyCustomElement(class Header extends HTMLElement
53
59
  * Show a help-button or link in the header
54
60
  */
55
61
  this.showHelp = false;
56
- this.overflowMenuItems = 0;
62
+ /**
63
+ * Set this to true when the user is at "Mijn Omgevingsloket".
64
+ */
65
+ this.userHomeActive = false;
66
+ this.visibleMenuItemsCount = undefined;
57
67
  this.dropdownOptionsOffset = 0;
58
- this.text = i18n(() => this.host, translations);
59
- this.onWindowResize = debounce(() => {
68
+ this.onWindowResize = debounce(() => this.resetVisibleMenuItems(), 20);
69
+ this.resetVisibleMenuItems = () => {
70
+ this.visibleMenuItemsCount = undefined;
71
+ forceUpdate(this.host);
72
+ };
73
+ this.clickHandler = (e, type, options) => {
60
74
  var _a, _b;
61
- (_a = this.dropdownElement) === null || _a === void 0 ? void 0 : _a.removeAttribute("open");
62
- (_b = this.dropdownElement) === null || _b === void 0 ? void 0 : _b.removeAttribute("tabindex");
63
- this.setDropDownMenu();
64
- this.setOverflowMenu();
65
- if (this.showDropDown) {
66
- this.dropdownOptionsOffset = this.calculateDropdownOptionsOffset();
67
- }
68
- }, 100);
69
- this.MenuItem = (item) => {
70
- return (h("li", { class: item.active ? "dso-active" : undefined }, h("a", { href: item.url, "aria-current": item.active ? "page" : undefined, onClick: (e) => this.clickHandler(e, "menuItem", { menuItem: item }) }, item.label)));
75
+ this.dsoHeaderClick.emit({
76
+ originalEvent: e,
77
+ isModifiedEvent: isModifiedEvent(e),
78
+ type,
79
+ menuItem: options === null || options === void 0 ? void 0 : options.menuItem,
80
+ url: (_a = options === null || options === void 0 ? void 0 : options.url) !== null && _a !== void 0 ? _a : (_b = options === null || options === void 0 ? void 0 : options.menuItem) === null || _b === void 0 ? void 0 : _b.url,
81
+ });
71
82
  };
83
+ this.menuItemElementRefs = [];
84
+ this.text = i18n(() => this.host, translations);
72
85
  }
73
- clickHandler(e, type, options) {
74
- var _a, _b;
75
- this.dsoHeaderClick.emit({
76
- originalEvent: e,
77
- isModifiedEvent: isModifiedEvent(e),
78
- type,
79
- menuItem: options === null || options === void 0 ? void 0 : options.menuItem,
80
- url: (_a = options === null || options === void 0 ? void 0 : options.url) !== null && _a !== void 0 ? _a : (_b = options === null || options === void 0 ? void 0 : options.menuItem) === null || _b === void 0 ? void 0 : _b.url,
81
- });
86
+ mainMenuChanged() {
87
+ this.resetVisibleMenuItems();
82
88
  }
83
- setShowDropDown(value) {
84
- if (value === "auto") {
85
- this.setDropDownMenu();
86
- return;
87
- }
88
- this.showDropDown = value === "always";
89
+ resizeListener() {
90
+ this.onWindowResize();
89
91
  }
90
- shrinkMenuToFit() {
91
- if (!this.wrapper || !this.nav) {
92
- return;
93
- }
94
- if (this.wrapper.clientWidth >= this.nav.clientWidth) {
95
- return;
96
- }
97
- if (this.mainMenu && this.overflowMenuItems >= this.mainMenu.length) {
98
- return;
99
- }
100
- this.overflowMenuItems++;
92
+ get isCompact() {
93
+ return this.compact === "always" || window.innerWidth < minDesktopViewportWidth;
101
94
  }
102
- componentDidRender() {
103
- if (!this.host.isConnected) {
104
- return;
105
- }
106
- if (this.showDropDown) {
107
- this.dropdownOptionsOffset = this.calculateDropdownOptionsOffset();
108
- return;
109
- }
110
- window.setTimeout(() => this.shrinkMenuToFit(), 0);
111
- }
112
- componentDidLoad() {
113
- this.setShowDropDown(this.useDropDownMenu);
114
- if (this.showDropDown) {
115
- this.dropdownOptionsOffset = this.calculateDropdownOptionsOffset();
116
- }
117
- }
118
- setOverflowMenu() {
119
- if (this.showDropDown) {
120
- return;
95
+ /**
96
+ * Before determining the visible menu items, all the menu items are rendered (including the dropdown menu item and the user home menu item).
97
+ * Then the visible menu items are calculated in componentDidRender() and ONLY when the visibleMenuItemsCount is undefined.
98
+ *
99
+ * When the window resizes or this.mainMenu changes, a reset is triggered to recalculate the visible menu items.
100
+ *
101
+ * @param navElement The navigation element to calculate the overflow menu item count for.
102
+ * @returns The number of menu items that can fit in the available space.
103
+ */
104
+ calculateOverflowMenuItemCount(navElement) {
105
+ var _a;
106
+ const availableWidth = navElement.offsetWidth;
107
+ const lastMenuItem = this.menuItemElementRefs[this.menuItemElementRefs.length - 1];
108
+ const mostRightMenuItem = (_a = this.userHomeMenuItemElementRef) !== null && _a !== void 0 ? _a : lastMenuItem;
109
+ const dropdownMenuItem = this.dropdownMenuItemElementRef;
110
+ if (!mostRightMenuItem || !dropdownMenuItem || !lastMenuItem) {
111
+ return this.menuItemElementRefs.length;
121
112
  }
122
- if (this.overflowMenuItems !== 0) {
123
- this.overflowMenuItems = 0;
124
- return;
113
+ const dropdownMenuItemEffectiveWidth = dropdownMenuItem.offsetLeft + dropdownMenuItem.offsetWidth - (lastMenuItem.offsetLeft + lastMenuItem.offsetWidth);
114
+ const requiredWidth = mostRightMenuItem.offsetLeft + mostRightMenuItem.offsetWidth - dropdownMenuItemEffectiveWidth;
115
+ if (requiredWidth <= availableWidth) {
116
+ return this.menuItemElementRefs.length;
125
117
  }
126
- this.shrinkMenuToFit();
127
- }
128
- setDropDownMenu() {
129
- if (this.useDropDownMenu !== "auto") {
130
- return;
118
+ const userHomeMenuItemEffectiveWidth = this.userHomeMenuItemElementRef
119
+ ? this.userHomeMenuItemElementRef.offsetLeft +
120
+ this.userHomeMenuItemElementRef.offsetWidth -
121
+ (dropdownMenuItem.offsetLeft + dropdownMenuItem.offsetWidth)
122
+ : 0;
123
+ const remainingWidth = availableWidth - dropdownMenuItemEffectiveWidth - userHomeMenuItemEffectiveWidth;
124
+ const visibleMenuItems = this.menuItemElementRefs.findIndex((menuItem) => menuItem && menuItem.offsetLeft + menuItem.offsetWidth > remainingWidth);
125
+ if (visibleMenuItems < 0) {
126
+ return this.menuItemElementRefs.length;
131
127
  }
132
- this.showDropDown = window.innerWidth < minDesktopViewportWidth;
128
+ return visibleMenuItems;
133
129
  }
134
130
  calculateDropdownOptionsOffset() {
135
131
  var _a;
@@ -139,37 +135,43 @@ const Header = /*@__PURE__*/ proxyCustomElement(class Header extends HTMLElement
139
135
  return (this.host.clientHeight -
140
136
  (((_a = this.dropdownElement) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect().bottom) - this.host.getBoundingClientRect().top));
141
137
  }
142
- connectedCallback() {
143
- window.addEventListener("resize", this.onWindowResize);
138
+ get visibleMainMenuItems() {
139
+ return typeof this.visibleMenuItemsCount === "number"
140
+ ? this.mainMenu.slice(0, this.visibleMenuItemsCount)
141
+ : this.mainMenu;
144
142
  }
145
- disconnectedCallback() {
146
- window.removeEventListener("resize", this.onWindowResize);
143
+ get hiddenMainMenuItems() {
144
+ return typeof this.visibleMenuItemsCount === "number" ? this.mainMenu.slice(this.visibleMenuItemsCount) : [];
147
145
  }
148
- render() {
149
- // Prevent 'flickering' when useDropDownMenu = 'always'
150
- if (this.showDropDown === undefined) {
146
+ componentDidRender() {
147
+ if (!this.host.isConnected) {
151
148
  return;
152
149
  }
153
- return (h(Fragment, null, h("div", { class: clsx("dso-header", {
154
- ["use-drop-down"]: this.showDropDown,
155
- }), ref: (element) => (this.wrapper = element) }, h("div", { class: "logo-container" }, h("slot", { name: "logo" })), this.showDropDown &&
156
- this.mainMenu &&
157
- (this.mainMenu.length > 0 || this.userHomeUrl || this.authStatus !== "none") && (h("div", { class: "dropdown" }, h("dso-dropdown-menu", { "dropdown-align": "right", dropdownOptionsOffset: this.dropdownOptionsOffset, ref: (element) => (this.dropdownElement = element) }, h("button", { type: "button", slot: "toggle" }, h("span", null, this.text("menu")), h("dso-icon", { icon: "chevron-down" })), h("div", { class: "dso-dropdown-options" }, h("ul", null, this.mainMenu.map(this.MenuItem), this.userHomeUrl && (h("li", null, h("a", { href: this.userHomeUrl, onClick: (e) => this.clickHandler(e, "userHome", { url: this.userHomeUrl }) }, this.text("userHome")))), this.userProfileUrl && this.userProfileName && this.authStatus === "loggedIn" && (h("li", null, h("a", { href: this.userProfileUrl, onClick: (e) => this.clickHandler(e, "profile", { url: this.userProfileUrl }) }, this.userProfileName, h("span", { class: "profile-label" }, " - Mijn profiel")))), this.authStatus === "loggedOut" && (h("li", null, this.loginUrl ? (h("a", { href: this.loginUrl, onClick: (e) => this.clickHandler(e, "login", { url: this.loginUrl }) }, this.text("login"))) : (h("button", { type: "button", onClick: (e) => this.clickHandler(e, "login") }, this.text("login"))))), this.authStatus === "loggedIn" && (h("li", null, this.logoutUrl ? (h("a", { href: this.logoutUrl, onClick: (e) => this.clickHandler(e, "logout", { url: this.logoutUrl }) }, this.text("logout"))) : (h("button", { type: "button", onClick: (e) => this.clickHandler(e, "logout") }, this.text("logout"))))), this.showHelp && (h("li", null, this.helpUrl ? (h("a", { href: this.helpUrl, class: "dso-tertiary", onClick: (e) => this.clickHandler(e, "help", { url: this.helpUrl }) }, h("span", null, this.text("help")), h("dso-icon", { icon: "help" }))) : (h("button", { type: "button", class: "dso-tertiary", onClick: (e) => this.clickHandler(e, "help") }, h("span", null, this.text("help")), h("dso-icon", { icon: "help" })))))))))), !this.showDropDown && (h(Fragment, null, h("div", { class: "dso-header-session" }, this.userProfileUrl && this.userProfileName && this.authStatus === "loggedIn" && (h("div", { class: "profile" }, h("a", { href: this.userProfileUrl, class: "dso-tertiary", onClick: (e) => this.clickHandler(e, "profile", { url: this.userProfileUrl }) }, this.userProfileName))), this.authStatus === "loggedOut" && (h("div", { class: "login" }, this.loginUrl ? (h("a", { href: this.loginUrl, class: "dso-tertiary", onClick: (e) => this.clickHandler(e, "login", { url: this.loginUrl }) }, this.text("login"))) : (h("button", { class: "dso-tertiary", type: "button", onClick: (e) => this.clickHandler(e, "login") }, this.text("login"))))), this.authStatus === "loggedIn" && (h("div", { class: "logout" }, this.logoutUrl ? (h("a", { href: this.logoutUrl, class: "dso-tertiary", onClick: (e) => this.clickHandler(e, "logout", { url: this.logoutUrl }) }, this.text("logout"))) : (h("button", { class: "dso-tertiary", type: "button", onClick: (e) => this.clickHandler(e, "logout") }, this.text("logout"))))), this.showHelp && (h("div", { class: "help" }, this.helpUrl ? (h("a", { href: this.helpUrl, class: "dso-tertiary", onClick: (e) => this.clickHandler(e, "help", { url: this.helpUrl }) }, h("span", null, this.text("help")), h("dso-icon", { icon: "help" }))) : (h("button", { class: "dso-tertiary", type: "button", onClick: (e) => this.clickHandler(e, "help") }, h("span", null, this.text("help")), h("dso-icon", { icon: "help" })))))), ((this.mainMenu && this.mainMenu.length > 0) || this.userHomeUrl) && (h("nav", { class: "dso-navbar" }, h("ul", { class: "dso-nav dso-nav-main", ref: (element) => (this.nav = element) }, this.mainMenu &&
158
- this.mainMenu
159
- .filter((_, index) => this.mainMenu && index < this.mainMenu.length - this.overflowMenuItems)
160
- .map(this.MenuItem), this.overflowMenuItems > 0 && (h("li", null, h("dso-dropdown-menu", null, h("button", { type: "button", slot: "toggle" }, h("span", null, this.text("overflowMenu")), h("dso-icon", { icon: "chevron-down" })), h("div", { class: "dso-dropdown-options" }, h("ul", null, this.mainMenu &&
161
- this.mainMenu
162
- .filter((_, index) => this.mainMenu && index >= this.mainMenu.length - this.overflowMenuItems)
163
- .map(this.MenuItem)))))), this.userHomeUrl && (h("li", { class: clsx("menu-user-home", { "dso-active": this.userHomeActive }) }, h("a", { href: this.userHomeUrl, "aria-current": this.userHomeActive ? "page" : undefined, onClick: (e) => this.clickHandler(e, "userHome", { url: this.userHomeUrl }) }, h("dso-icon", { icon: "user-line" }), this.text("userHome"))))))))))));
150
+ if (this.isCompact && this.dropdownElement) {
151
+ this.dropdownElement.dropdownOptionsOffset = this.calculateDropdownOptionsOffset();
152
+ }
153
+ if (typeof this.visibleMenuItemsCount === "undefined" && this.navElement) {
154
+ this.visibleMenuItemsCount = this.calculateOverflowMenuItemCount(this.navElement);
155
+ }
156
+ }
157
+ render() {
158
+ return (h(Host, { key: '8e00a5489946b71addacb1b71c2f9f36d443c14f', "is-compact": this.isCompact }, h("div", { key: '220b6faaeb955c2631dd038434fb91f74f90f233', class: "dso-header" }, h("div", { key: '00800011fd196a1c59e6401309ecbd3e97d7be6f', class: "logo-container" }, h("slot", { key: '6285ba06ebca475c7d38d3fb4ab60fdbb82a60e3', name: "logo" })), this.isCompact ? this.renderCompact() : this.renderNormal())));
159
+ }
160
+ renderCompact() {
161
+ return ((this.mainMenu.length > 0 || this.userHomeUrl || this.authStatus !== "none") && (h("div", { class: "dropdown" }, h("dso-dropdown-menu", { "dropdown-align": "right", dropdownOptionsOffset: this.dropdownOptionsOffset, ref: (element) => (this.dropdownElement = element) }, h("button", { type: "button", slot: "toggle" }, h("span", null, this.text("menu")), h("dso-icon", { icon: "chevron-down" })), h("div", { class: "dso-dropdown-options" }, h("ul", null, this.mainMenu.map((menuItem) => (h(MenuItem, { item: menuItem, onClick: (e) => this.clickHandler(e, "menuItem", { menuItem }) }))), this.userHomeUrl && (h("li", null, h("a", { href: this.userHomeUrl, onClick: (e) => this.clickHandler(e, "userHome", { url: this.userHomeUrl }) }, this.text("userHome")))), this.userProfileUrl && this.userProfileName && this.authStatus === "loggedIn" && (h("li", null, h("a", { href: this.userProfileUrl, onClick: (e) => this.clickHandler(e, "profile", { url: this.userProfileUrl }) }, this.userProfileName, h("span", { class: "profile-label" }, " - Mijn profiel")))), this.authStatus === "loggedOut" && (h("li", null, this.loginUrl ? (h("a", { href: this.loginUrl, onClick: (e) => this.clickHandler(e, "login", { url: this.loginUrl }) }, this.text("login"))) : (h("button", { type: "button", onClick: (e) => this.clickHandler(e, "login") }, this.text("login"))))), this.authStatus === "loggedIn" && (h("li", null, this.logoutUrl ? (h("a", { href: this.logoutUrl, onClick: (e) => this.clickHandler(e, "logout", { url: this.logoutUrl }) }, this.text("logout"))) : (h("button", { type: "button", onClick: (e) => this.clickHandler(e, "logout") }, this.text("logout"))))), this.showHelp && (h("li", null, this.helpUrl ? (h("a", { href: this.helpUrl, class: "dso-tertiary", onClick: (e) => this.clickHandler(e, "help", { url: this.helpUrl }) }, h("span", null, this.text("help")), h("dso-icon", { icon: "help" }))) : (h("button", { type: "button", class: "dso-tertiary", onClick: (e) => this.clickHandler(e, "help") }, h("span", null, this.text("help")), h("dso-icon", { icon: "help" })))))))))));
162
+ }
163
+ renderNormal() {
164
+ this.menuItemElementRefs = [];
165
+ return (h(Fragment, null, h("div", { class: "dso-header-session" }, this.userProfileUrl && this.userProfileName && this.authStatus === "loggedIn" && (h("div", { class: "profile" }, h("a", { href: this.userProfileUrl, class: "dso-tertiary", onClick: (e) => this.clickHandler(e, "profile", { url: this.userProfileUrl }) }, this.userProfileName))), this.authStatus === "loggedOut" && (h("div", { class: "login" }, this.loginUrl ? (h("a", { href: this.loginUrl, class: "dso-tertiary", onClick: (e) => this.clickHandler(e, "login", { url: this.loginUrl }) }, this.text("login"))) : (h("button", { class: "dso-tertiary", type: "button", onClick: (e) => this.clickHandler(e, "login") }, this.text("login"))))), this.authStatus === "loggedIn" && (h("div", { class: "logout" }, this.logoutUrl ? (h("a", { href: this.logoutUrl, class: "dso-tertiary", onClick: (e) => this.clickHandler(e, "logout", { url: this.logoutUrl }) }, this.text("logout"))) : (h("button", { class: "dso-tertiary", type: "button", onClick: (e) => this.clickHandler(e, "logout") }, this.text("logout"))))), this.showHelp && (h("div", { class: "help" }, this.helpUrl ? (h("a", { href: this.helpUrl, class: "dso-tertiary", onClick: (e) => this.clickHandler(e, "help", { url: this.helpUrl }) }, h("span", null, this.text("help")), h("dso-icon", { icon: "help" }))) : (h("button", { class: "dso-tertiary", type: "button", onClick: (e) => this.clickHandler(e, "help") }, h("span", null, this.text("help")), h("dso-icon", { icon: "help" })))))), (this.mainMenu.length > 0 || this.userHomeUrl) && (h("nav", { class: "dso-navbar" }, h("ul", { class: clsx("dso-nav", "dso-nav-main", { ready: this.visibleMenuItemsCount !== undefined }), ref: (element) => (this.navElement = element) }, this.visibleMainMenuItems.map((menuItem, i) => (h(MenuItem, { item: menuItem, onClick: (e) => this.clickHandler(e, "menuItem", { menuItem }), key: menuItem.label, ref: (el) => (this.menuItemElementRefs[i] = el) }))), (this.visibleMenuItemsCount === undefined || this.hiddenMainMenuItems.length > 0) && (h("li", { "aria-hidden": this.visibleMenuItemsCount === undefined, ref: (el) => (this.dropdownMenuItemElementRef = el), class: "dropdown-menu-item" }, h("dso-dropdown-menu", null, h("button", { type: "button", slot: "toggle" }, h("span", null, this.text("overflowMenu")), h("dso-icon", { icon: "chevron-down", class: "main-menu-item-icon" })), h("div", { class: "dso-dropdown-options" }, h("ul", null, this.hiddenMainMenuItems.map((menuItem) => (h(MenuItem, { item: menuItem, onClick: (e) => this.clickHandler(e, "menuItem", { menuItem }) })))))))), this.userHomeUrl && (h("li", { class: clsx("menu-user-home", { "dso-active": this.userHomeActive }), ref: (el) => (this.userHomeMenuItemElementRef = el) }, h("a", { href: this.userHomeUrl, "aria-current": this.userHomeActive ? "page" : undefined, onClick: (e) => this.clickHandler(e, "userHome", { url: this.userHomeUrl }) }, h("dso-icon", { icon: "user-line", class: "main-menu-item-icon" }), this.text("userHome")))))))));
164
166
  }
165
167
  get host() { return this; }
166
168
  static get watchers() { return {
167
- "useDropDownMenu": ["setShowDropDown"]
169
+ "mainMenu": ["mainMenuChanged"]
168
170
  }; }
169
171
  static get style() { return headerCss; }
170
172
  }, [257, "dso-header", {
171
173
  "mainMenu": [16, "main-menu"],
172
- "useDropDownMenu": [1, "use-drop-down-menu"],
174
+ "compact": [1],
173
175
  "authStatus": [1, "auth-status"],
174
176
  "loginUrl": [1, "login-url"],
175
177
  "logoutUrl": [1, "logout-url"],
@@ -179,11 +181,10 @@ const Header = /*@__PURE__*/ proxyCustomElement(class Header extends HTMLElement
179
181
  "userProfileUrl": [1, "user-profile-url"],
180
182
  "userHomeUrl": [1, "user-home-url"],
181
183
  "userHomeActive": [4, "user-home-active"],
182
- "showDropDown": [32],
183
- "overflowMenuItems": [32],
184
+ "visibleMenuItemsCount": [32],
184
185
  "dropdownOptionsOffset": [32]
185
- }, undefined, {
186
- "useDropDownMenu": ["setShowDropDown"]
186
+ }, [[9, "resize", "resizeListener"]], {
187
+ "mainMenu": ["mainMenuChanged"]
187
188
  }]);
188
189
  function defineCustomElement$1() {
189
190
  if (typeof customElements === "undefined") {