@dso-toolkit/core 35.0.0 → 36.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/dist/cjs/dso-alert.cjs.entry.js +1 -1
  2. package/dist/cjs/dso-attachments-counter.cjs.entry.js +1 -1
  3. package/dist/cjs/dso-autosuggest.cjs.entry.js +2 -2
  4. package/dist/cjs/dso-badge.cjs.entry.js +1 -1
  5. package/dist/cjs/dso-banner.cjs.entry.js +1 -1
  6. package/dist/cjs/dso-date-picker.cjs.entry.js +21 -12
  7. package/dist/cjs/dso-dropdown-menu.cjs.entry.js +3 -3
  8. package/dist/cjs/dso-header.cjs.entry.js +16 -7
  9. package/dist/cjs/dso-helpcenter-panel.cjs.entry.js +1 -1
  10. package/dist/cjs/dso-highlight-box.cjs.entry.js +1 -1
  11. package/dist/cjs/dso-icon.cjs.entry.js +1 -1
  12. package/dist/cjs/dso-image-overlay.cjs.entry.js +4 -4
  13. package/dist/cjs/dso-info-button.cjs.entry.js +1 -1
  14. package/dist/cjs/dso-info_2.cjs.entry.js +2 -2
  15. package/dist/cjs/dso-label.cjs.entry.js +1 -1
  16. package/dist/cjs/dso-map-base-layers.cjs.entry.js +1 -1
  17. package/dist/cjs/dso-map-controls.cjs.entry.js +22 -19
  18. package/dist/cjs/dso-map-overlays.cjs.entry.js +1 -1
  19. package/dist/cjs/dso-ozon-content.cjs.entry.js +36 -24
  20. package/dist/cjs/dso-progress-bar.cjs.entry.js +1 -1
  21. package/dist/cjs/dso-progress-indicator.cjs.entry.js +1 -1
  22. package/dist/cjs/dso-toggletip.cjs.entry.js +1 -1
  23. package/dist/cjs/dso-toolkit.cjs.js +3 -3
  24. package/dist/cjs/dso-tooltip.cjs.entry.js +8 -4
  25. package/dist/cjs/dso-tree-view.cjs.entry.js +9 -9
  26. package/dist/cjs/dso-viewer-grid.cjs.entry.js +4 -4
  27. package/dist/cjs/{focus-trap.esm-8d3e3fb6.js → focus-trap.esm-a85643b0.js} +102 -68
  28. package/dist/cjs/{index-5ea63531.js → index-0a7c679a.js} +73 -67
  29. package/dist/cjs/index.esm-3520a2a6.js +427 -0
  30. package/dist/cjs/loader.cjs.js +3 -3
  31. package/dist/collection/collection-manifest.json +2 -2
  32. package/dist/collection/components/alert/alert.template.js +1 -1
  33. package/dist/collection/components/anchor/anchor.template.js +1 -1
  34. package/dist/collection/components/autosuggest/autosuggest.css +1 -1
  35. package/dist/collection/components/badge/badge.template.js +1 -1
  36. package/dist/collection/components/button/button.template.js +1 -1
  37. package/dist/collection/components/date-picker/date-picker.css +9 -6
  38. package/dist/collection/components/date-picker/date-picker.js +21 -11
  39. package/dist/collection/components/date-picker/date-picker.template.js +1 -1
  40. package/dist/collection/components/definition-list/definition-list.template.js +2 -2
  41. package/dist/collection/components/dropdown-menu/dropdown-menu.js +1 -1
  42. package/dist/collection/components/dropdown-menu/dropdown-menu.template.js +1 -1
  43. package/dist/collection/components/header/header.css +1 -1
  44. package/dist/collection/components/header/header.js +38 -9
  45. package/dist/collection/components/header/header.template.js +4 -2
  46. package/dist/collection/components/helpcenter-panel/helpcenter-panel.template.js +2 -2
  47. package/dist/collection/components/highlight-box/highlight-box.template.js +2 -2
  48. package/dist/collection/components/icon/icon.template.js +1 -1
  49. package/dist/collection/components/image-overlay/image-overlay.css +1 -1
  50. package/dist/collection/components/label/label.template.js +2 -2
  51. package/dist/collection/components/list/list.template.js +1 -1
  52. package/dist/collection/components/map-controls/map-controls.js +17 -19
  53. package/dist/collection/components/ozon-content/get-node-name.function.js +9 -0
  54. package/dist/collection/components/ozon-content/nodes/al.node.js +2 -1
  55. package/dist/collection/components/ozon-content/nodes/fallback.node.js +2 -1
  56. package/dist/collection/components/ozon-content/nodes/noot.node.js +15 -15
  57. package/dist/collection/components/ozon-content/ozon-content-mapper.js +9 -5
  58. package/dist/collection/components/ozon-content/ozon-content.css +76 -23
  59. package/dist/collection/components/progress-bar/progress-bar.template.js +1 -1
  60. package/dist/collection/components/progress-indicator/progress-indicator.template.js +1 -1
  61. package/dist/collection/components/selectable/selectable.css +7 -1
  62. package/dist/collection/components/selectable/selectable.template.js +1 -1
  63. package/dist/collection/components/toggletip/toggletip.template.js +2 -2
  64. package/dist/collection/components/tooltip/tooltip.css +1 -1
  65. package/dist/collection/components/tooltip/tooltip.template.js +1 -1
  66. package/dist/collection/components/tree-view/tree-item.js +7 -7
  67. package/dist/collection/components/tree-view/tree-view.css +86 -15
  68. package/dist/collection/components/viewer-grid/viewer-grid.css +2 -2
  69. package/dist/custom-elements/index.js +460 -229
  70. package/dist/dso-toolkit/dso-toolkit.css +1 -1
  71. package/dist/dso-toolkit/dso-toolkit.esm.js +1 -1
  72. package/dist/dso-toolkit/{p-5037944e.entry.js → p-121c3588.entry.js} +1 -1
  73. package/dist/dso-toolkit/p-131d54e3.js +5 -0
  74. package/dist/dso-toolkit/p-1a3db1cd.entry.js +1 -0
  75. package/dist/dso-toolkit/p-1fd3d18d.entry.js +1 -0
  76. package/dist/dso-toolkit/{p-ad540748.entry.js → p-2a611af3.entry.js} +1 -1
  77. package/dist/dso-toolkit/{p-2b6a3dfa.entry.js → p-3cb44a36.entry.js} +1 -1
  78. package/dist/dso-toolkit/{p-1fefbf8c.entry.js → p-4f904355.entry.js} +1 -1
  79. package/dist/dso-toolkit/p-5e5fbd41.js +5 -0
  80. package/dist/dso-toolkit/{p-4e573fc5.entry.js → p-5e614420.entry.js} +1 -1
  81. package/dist/dso-toolkit/p-72e47943.entry.js +1 -0
  82. package/dist/dso-toolkit/{p-50b63cf4.entry.js → p-746d70f9.entry.js} +1 -1
  83. package/dist/dso-toolkit/p-7abe091d.entry.js +1 -0
  84. package/dist/dso-toolkit/p-7b67e324.entry.js +1 -0
  85. package/dist/dso-toolkit/{p-3c4dbd89.entry.js → p-8bb8148f.entry.js} +1 -1
  86. package/dist/dso-toolkit/p-a58b3108.entry.js +1 -0
  87. package/dist/dso-toolkit/{p-225bbb28.entry.js → p-abd32847.entry.js} +1 -1
  88. package/dist/dso-toolkit/{p-c6f467b3.entry.js → p-af8a4337.entry.js} +1 -1
  89. package/dist/dso-toolkit/{p-348414bf.entry.js → p-b29184e1.entry.js} +1 -1
  90. package/dist/dso-toolkit/{p-bc14cafd.entry.js → p-b86128b3.entry.js} +1 -1
  91. package/dist/dso-toolkit/p-c62606a3.js +1 -0
  92. package/dist/dso-toolkit/{p-f0b67246.entry.js → p-d0d279cc.entry.js} +1 -1
  93. package/dist/dso-toolkit/{p-c95108fe.entry.js → p-d1f62081.entry.js} +1 -1
  94. package/dist/dso-toolkit/{p-3b493a2c.entry.js → p-d6c47662.entry.js} +1 -1
  95. package/dist/dso-toolkit/{p-c54ecae1.entry.js → p-daf049bd.entry.js} +1 -1
  96. package/dist/dso-toolkit/p-e01b1657.entry.js +1 -0
  97. package/dist/dso-toolkit/{p-94dffa65.entry.js → p-ea14647b.entry.js} +1 -1
  98. package/dist/dso-toolkit/{p-dc86d830.entry.js → p-efa4a33d.entry.js} +1 -1
  99. package/dist/dso-toolkit/{p-951f5872.entry.js → p-efb7575f.entry.js} +1 -1
  100. package/dist/esm/dso-alert.entry.js +1 -1
  101. package/dist/esm/dso-attachments-counter.entry.js +1 -1
  102. package/dist/esm/dso-autosuggest.entry.js +2 -2
  103. package/dist/esm/dso-badge.entry.js +1 -1
  104. package/dist/esm/dso-banner.entry.js +1 -1
  105. package/dist/esm/dso-date-picker.entry.js +21 -12
  106. package/dist/esm/dso-dropdown-menu.entry.js +3 -3
  107. package/dist/esm/dso-header.entry.js +16 -7
  108. package/dist/esm/dso-helpcenter-panel.entry.js +1 -1
  109. package/dist/esm/dso-highlight-box.entry.js +1 -1
  110. package/dist/esm/dso-icon.entry.js +1 -1
  111. package/dist/esm/dso-image-overlay.entry.js +4 -4
  112. package/dist/esm/dso-info-button.entry.js +1 -1
  113. package/dist/esm/dso-info_2.entry.js +2 -2
  114. package/dist/esm/dso-label.entry.js +1 -1
  115. package/dist/esm/dso-map-base-layers.entry.js +1 -1
  116. package/dist/esm/dso-map-controls.entry.js +22 -19
  117. package/dist/esm/dso-map-overlays.entry.js +1 -1
  118. package/dist/esm/dso-ozon-content.entry.js +36 -24
  119. package/dist/esm/dso-progress-bar.entry.js +1 -1
  120. package/dist/esm/dso-progress-indicator.entry.js +1 -1
  121. package/dist/esm/dso-toggletip.entry.js +1 -1
  122. package/dist/esm/dso-toolkit.js +3 -3
  123. package/dist/esm/dso-tooltip.entry.js +8 -4
  124. package/dist/esm/dso-tree-view.entry.js +9 -9
  125. package/dist/esm/dso-viewer-grid.entry.js +4 -4
  126. package/dist/esm/{focus-trap.esm-299989f2.js → focus-trap.esm-a01ad6c9.js} +102 -68
  127. package/dist/esm/{index-d54cae76.js → index-1602fde1.js} +73 -67
  128. package/dist/esm/index.esm-45465af7.js +422 -0
  129. package/dist/esm/loader.js +3 -3
  130. package/dist/types/components/date-picker/date-picker.d.ts +2 -0
  131. package/dist/types/components/dropdown-menu/dropdown-menu.d.ts +1 -1
  132. package/dist/types/components/header/header.d.ts +7 -1
  133. package/dist/types/components/header/header.template.d.ts +1 -1
  134. package/dist/types/components/ozon-content/get-node-name.function.d.ts +1 -0
  135. package/dist/types/components/ozon-content/nodes/noot.node.d.ts +2 -2
  136. package/dist/types/components/ozon-content/ozon-content-mapper.d.ts +0 -1
  137. package/dist/types/components/ozon-content/ozon-content-node-context.interface.d.ts +0 -1
  138. package/dist/types/components/ozon-content/ozon-content-node.interface.d.ts +0 -1
  139. package/dist/types/components/ozon-content/ozon-content.d.ts +0 -1
  140. package/dist/types/components.d.ts +3 -2
  141. package/dist/types/icon/dso-icon-sass-function.d.ts +1 -1
  142. package/package.json +30 -26
  143. package/dist/cjs/index.esm-2ac7081c.js +0 -267
  144. package/dist/dso-toolkit/p-44905fb1.js +0 -5
  145. package/dist/dso-toolkit/p-88bc5873.entry.js +0 -1
  146. package/dist/dso-toolkit/p-8b6e3abc.entry.js +0 -1
  147. package/dist/dso-toolkit/p-8bf3a60e.js +0 -5
  148. package/dist/dso-toolkit/p-94b79e43.entry.js +0 -1
  149. package/dist/dso-toolkit/p-a7306b7b.entry.js +0 -1
  150. package/dist/dso-toolkit/p-ad2210ad.entry.js +0 -1
  151. package/dist/dso-toolkit/p-daa1e29d.entry.js +0 -1
  152. package/dist/dso-toolkit/p-dad72605.js +0 -1
  153. package/dist/dso-toolkit/p-f193c258.entry.js +0 -1
  154. package/dist/esm/index.esm-a1362957.js +0 -262
@@ -1,4 +1,4 @@
1
- import { attachShadow, h, createEvent, Fragment, Host, forceUpdate, proxyCustomElement } from '@stencil/core/internal/client';
1
+ import { h, createEvent, Fragment, Host, forceUpdate, proxyCustomElement } from '@stencil/core/internal/client';
2
2
  export { setAssetPath, setPlatformOptions } from '@stencil/core/internal/client';
3
3
 
4
4
  function toVal(mix) {
@@ -48,7 +48,7 @@ let Alert = class extends HTMLElement {
48
48
  constructor() {
49
49
  super();
50
50
  this.__registerHost();
51
- attachShadow(this);
51
+ this.__attachShadow();
52
52
  }
53
53
  render() {
54
54
  const status = Alert.statusMap.get(this.status);
@@ -72,7 +72,7 @@ let AttachmentsCounter = class extends HTMLElement {
72
72
  constructor() {
73
73
  super();
74
74
  this.__registerHost();
75
- attachShadow(this);
75
+ this.__attachShadow();
76
76
  }
77
77
  render() {
78
78
  return (h("span", { class: "dso-attachments" }, this.count, " ", h("span", { class: "sr-only" }, "bijlage", this.count !== 1 ? 'n' : '')));
@@ -235,7 +235,7 @@ function escapeStringRegexp(string) {
235
235
  .replace(/-/g, '\\x2d');
236
236
  }
237
237
 
238
- const autosuggestCss = ".sc-dso-autosuggest-h{display:block;position:relative}ul.sc-dso-autosuggest{background-clip:padding-box;background-color:#fff;border:1px solid rgba(0, 0, 0, 0.15);border-radius:4px;box-shadow:0 6px 12px rgba(0, 0, 0, 0.175);list-style-type:none;margin-top:2px;padding:4px 0;position:absolute;left:0;right:0;top:100%;z-index:10}ul.sc-dso-autosuggest li.sc-dso-autosuggest{display:flex;justify-content:space-between;padding:4px 18px}li[aria-selected=true].sc-dso-autosuggest{cursor:pointer;background-color:#39870c}li[aria-selected=true].sc-dso-autosuggest,li[aria-selected=true].sc-dso-autosuggest .type.sc-dso-autosuggest{color:#fff}mark.sc-dso-autosuggest{font-weight:700;background-color:inherit;color:inherit;padding:0}.type.sc-dso-autosuggest{color:#666}";
238
+ const autosuggestCss = ".sc-dso-autosuggest-h{display:block;position:relative}ul.sc-dso-autosuggest{background-clip:padding-box;background-color:#fff;border:1px solid rgba(0, 0, 0, 0.15);border-radius:4px;box-shadow:0 6px 12px rgba(0, 0, 0, 0.175);list-style-type:none;margin-top:2px;padding:4px 0;position:absolute;left:0;right:0;top:100%;z-index:200}ul.sc-dso-autosuggest li.sc-dso-autosuggest{display:flex;justify-content:space-between;padding:4px 18px}li[aria-selected=true].sc-dso-autosuggest{cursor:pointer;background-color:#39870c}li[aria-selected=true].sc-dso-autosuggest,li[aria-selected=true].sc-dso-autosuggest .type.sc-dso-autosuggest{color:#fff}mark.sc-dso-autosuggest{font-weight:700;background-color:inherit;color:inherit;padding:0}.type.sc-dso-autosuggest{color:#666}";
239
239
 
240
240
  let Autosuggest = class extends HTMLElement {
241
241
  constructor() {
@@ -466,7 +466,7 @@ let Badge = class extends HTMLElement {
466
466
  constructor() {
467
467
  super();
468
468
  this.__registerHost();
469
- attachShadow(this);
469
+ this.__attachShadow();
470
470
  }
471
471
  render() {
472
472
  return (h("span", { class: clsx('dso-badge', { [`badge-${this.status}`]: this.status }) }, h("span", { class: "sr-only" }, this.status ? Badge.statusMap.get(this.status) : 'Badge', ": "), h("slot", null)));
@@ -486,7 +486,7 @@ let Banner = class extends HTMLElement {
486
486
  constructor() {
487
487
  super();
488
488
  this.__registerHost();
489
- attachShadow(this);
489
+ this.__attachShadow();
490
490
  }
491
491
  render() {
492
492
  return (h("section", { class: clsx('dso-banner', `alert-${this.status}`), role: "alert" }, h("slot", null)));
@@ -749,7 +749,7 @@ const localization = {
749
749
  ]
750
750
  };
751
751
 
752
- const datePickerCss = ".sc-dso-date-picker-h{display:block}.dso-date.sc-dso-date-picker *.sc-dso-date-picker,.dso-date.sc-dso-date-picker *.sc-dso-date-picker::before,.dso-date.sc-dso-date-picker *.sc-dso-date-picker::after{box-sizing:border-box}.dso-date.sc-dso-date-picker{box-sizing:border-box;color:#191919;display:block;font-family:\"Asap\", sans-serif;margin:0;position:relative;text-align:left;width:100%}.dso-date__input.sc-dso-date-picker{display:block;width:100%;height:40px;padding:6px 14px;font-size:16px;line-height:1.5;color:#191919;background-color:#fff;background-image:none;border:1px solid #275937;border-radius:4px;transition:border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s}.dso-date__input.sc-dso-date-picker::-moz-placeholder{color:#666;opacity:1}.dso-date__input.sc-dso-date-picker:-ms-input-placeholder{color:#666}.dso-date__input.sc-dso-date-picker::-webkit-input-placeholder{color:#666}.dso-date__input.sc-dso-date-picker::-ms-expand{background-color:transparent;border:0}.dso-date__input.sc-dso-date-picker:focus{border-color:#275937;outline:0;box-shadow:inset 0 0 0 1px #275937}.dso-date__input[disabled].sc-dso-date-picker,.dso-date__input[readonly].sc-dso-date-picker,fieldset[disabled].sc-dso-date-picker .dso-date__input.sc-dso-date-picker{background-color:#fff;opacity:1}.dso-date__input[disabled].sc-dso-date-picker,fieldset[disabled].sc-dso-date-picker .dso-date__input.sc-dso-date-picker{cursor:default}.dso-date__input[disabled].sc-dso-date-picker{border-color:#e5e5e5;color:#999}.dso-date__input[readonly].sc-dso-date-picker{border-width:1px}.dso-date__input[type=text].sc-dso-date-picker{line-height:40px}.dso-date__input[size].sc-dso-date-picker{width:auto}.dso-date__toggle.sc-dso-date-picker{-moz-appearance:none;-webkit-appearance:none;-webkit-user-select:none;align-items:center;appearance:none;background:transparent;border:0;border-radius:0;border-bottom-right-radius:4px;border-top-right-radius:4px;color:#39870c;cursor:pointer;display:flex;height:38px;justify-content:center;padding:0;position:absolute;right:0;transform:translateY(-50%);top:50%;user-select:none;width:38px;z-index:2}.dso-date__toggle.sc-dso-date-picker:disabled{color:#afcf9d;cursor:pointer}.dso-date__dialog.sc-dso-date-picker{border-width:1px;display:flex;right:0;min-width:320px;opacity:0;position:absolute;top:100%;transform:scale(0.96) translateZ(0) translateY(-20px);transform-origin:top right;transition:transform 300ms ease, opacity 300ms ease, visibility 300ms ease;visibility:hidden;will-change:transform, opacity, visibility;z-index:600}@media (max-width: 35.9375em){.dso-date__dialog.sc-dso-date-picker{background:rgba(25, 25, 25, 0.5);bottom:0;position:fixed;left:0;right:0;top:0;transform:translateZ(0);transform-origin:bottom center}}.dso-date__dialog.is-left.sc-dso-date-picker{left:-11px;right:auto;width:auto}.dso-date__dialog.is-active.sc-dso-date-picker{opacity:1;transform:scale(1.0001) translateZ(0) translateY(0);visibility:visible}.dso-date__dialog-content.sc-dso-date-picker{background:#fff;border:1px solid rgba(0, 0, 0, 0.1);border-radius:4px;box-shadow:0 8px 10px 1px rgba(0, 0, 0, 0.4);margin-left:auto;margin-right:-1px;margin-top:8px;max-width:310px;min-width:290px;padding:16px;position:relative;transform:none;width:100%;z-index:600}@media (max-width: 35.9375em){.dso-date__dialog-content.sc-dso-date-picker{border:0;border-radius:0;border-top-left-radius:4px;border-top-right-radius:4px;bottom:0;left:0;margin:0;max-width:none;min-height:26em;opacity:0;padding:0 8% 20px;position:absolute;transform:translateZ(0) translateY(100%);transition:transform 400ms ease, opacity 400ms ease, visibility 400ms ease;visibility:hidden;will-change:transform, opacity, visibility}.is-active.sc-dso-date-picker .dso-date__dialog-content.sc-dso-date-picker{opacity:1;transform:translateZ(0) translateY(0);visibility:visible}}.dso-date__table.sc-dso-date-picker{border-collapse:collapse;border-spacing:0;color:#191919;font-size:1rem;font-weight:400;line-height:1.25;min-width:280px;table-layout:fixed;text-align:center;width:100%}.dso-date__table-header.sc-dso-date-picker{font-size:0.875em;font-weight:600;height:36px;line-height:36px;text-decoration:none;text-transform:uppercase}.dso-date__cell.sc-dso-date-picker{height:40px;padding:1px;text-align:center;width:40px}.dso-date__day.sc-dso-date-picker{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0;border-radius:50%;box-shadow:0 0 0 1px transparent;color:#191919;cursor:pointer;display:inline-block;font-family:\"Asap\", sans-serif;font-variant-numeric:tabular-nums;font-weight:400;height:38px;line-height:0;padding:0;position:relative;text-align:center;vertical-align:middle;width:38px;z-index:1}.dso-date__day.is-today.sc-dso-date-picker{background:transparent;height:36px;box-shadow:0 0 0 1px #39870c;width:36px}.dso-date__day.sc-dso-date-picker:hover,.dso-date__day.sc-dso-date-picker:active{background:#39870c;color:#fff}.dso-date__day.sc-dso-date-picker:focus{background:transparent;box-shadow:0 0 0 2px #275937;color:#191919;height:34px;outline:0;width:34px}[aria-selected=true].sc-dso-date-picker .dso-date__day.sc-dso-date-picker{background:#39870c;color:#fff}[aria-selected=true].sc-dso-date-picker .dso-date__day.sc-dso-date-picker:focus{background:transparent}[aria-selected=true].sc-dso-date-picker .dso-date__day.sc-dso-date-picker:focus span[aria-hidden=true].sc-dso-date-picker{background:#39870c;border:1px solid #fff;line-height:32px}.dso-date__day.is-outside.sc-dso-date-picker{background:#f2f2f2;box-shadow:none;color:#666;cursor:default;pointer-events:none}.dso-date__day.is-disabled.sc-dso-date-picker{background:#fff;cursor:default}.dso-date__day.is-disabled.sc-dso-date-picker:hover{color:#666}.dso-date__day.sc-dso-date-picker span[aria-hidden=true].sc-dso-date-picker{border-radius:50%;display:inline-block;height:34px;line-height:34px;width:34px}.dso-date__header.sc-dso-date-picker{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px;width:100%}.dso-date__header.sc-dso-date-picker span.sc-dso-date-picker{font-size:0.875rem}.dso-date__nav.sc-dso-date-picker{white-space:nowrap}.dso-date__prev.sc-dso-date-picker,.dso-date__next.sc-dso-date-picker{-moz-appearance:none;-webkit-appearance:none;align-items:center;appearance:none;background:transparent;border:1px solid #39870c;border-radius:4px;box-sizing:border-box;color:#39870c;cursor:pointer;display:inline-flex;font-size:1em;height:32px;justify-content:center;margin-left:8px;padding:0;width:32px}@media (max-width: 35.9375em){.dso-date__prev.sc-dso-date-picker,.dso-date__next.sc-dso-date-picker{height:40px;width:40px}}.dso-date__prev.sc-dso-date-picker:hover,.dso-date__prev.sc-dso-date-picker:active,.dso-date__next.sc-dso-date-picker:hover,.dso-date__next.sc-dso-date-picker:active{background-color:#39870c;color:#fff}.dso-date__prev.sc-dso-date-picker:focus,.dso-date__next.sc-dso-date-picker:focus{background:transparent;color:#39870c}.dso-date__prev.sc-dso-date-picker:disabled,.dso-date__prev.sc-dso-date-picker:disabled:hover,.dso-date__next.sc-dso-date-picker:disabled,.dso-date__next.sc-dso-date-picker:disabled:hover{background-color:#fff;border-color:#afcf9d;color:#afcf9d;opacity:1}.dso-date__prev.sc-dso-date-picker svg.sc-dso-date-picker,.dso-date__next.sc-dso-date-picker svg.sc-dso-date-picker{margin:0 auto}.dso-date__select.sc-dso-date-picker{display:inline-flex;height:28px;line-height:28px;position:relative}.dso-date__select.sc-dso-date-picker span.sc-dso-date-picker{margin-right:4px}.dso-date__select.sc-dso-date-picker select.sc-dso-date-picker{color:#275937;cursor:pointer;font-size:1rem;height:100%;left:0;opacity:0;position:absolute;top:0;width:100%;z-index:2}.dso-date__select.sc-dso-date-picker select.sc-dso-date-picker:focus+.dso-date__select-label.sc-dso-date-picker{box-shadow:0 0 0 2px #275937}.dso-date__select.sc-dso-date-picker select.sc-dso-date-picker:disabled{color:#afcf9d}.dso-date__select-label.sc-dso-date-picker{align-items:center;border-radius:4px;color:#39870c;display:flex;padding:0 4px 0 8px;pointer-events:none;position:relative;width:100%;z-index:1}.dso-date__select-label.sc-dso-date-picker span.sc-dso-date-picker{font-size:1.25rem;font-weight:600;line-height:1.25}.dso-date__select-label.sc-dso-date-picker svg.sc-dso-date-picker{width:16px;height:16px}.dso-date__mobile.sc-dso-date-picker{align-items:center;border-bottom:1px solid rgba(0, 0, 0, 0.12);display:flex;font-size:1em;justify-content:space-between;margin-bottom:20px;margin-left:-10%;overflow:hidden;padding:12px 20px;position:relative;text-overflow:ellipsis;white-space:nowrap;width:120%}@media (min-width: 36em){.dso-date__mobile.sc-dso-date-picker{border:0;margin:0;overflow:visible;padding:0;position:absolute;right:-16px;top:-16px;width:auto}}.dso-date__mobile-heading.sc-dso-date-picker{display:inline-block;font-weight:600;max-width:84%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 36em){.dso-date__mobile-heading.sc-dso-date-picker{display:none}}.dso-date__close.sc-dso-date-picker{-webkit-appearance:none;align-items:center;appearance:none;background-color:#fff;border:0;border-radius:50%;color:#39870c;cursor:pointer;display:flex;font-size:1em;height:32px;justify-content:center;margin-right:-4px;padding:0;width:32px}@media (min-width: 36em){.dso-date__close.sc-dso-date-picker{margin-right:0;opacity:0}}.dso-date__close.sc-dso-date-picker:focus{box-shadow:0 0 0 2px #275937;outline:none}@media (min-width: 36em){.dso-date__close.sc-dso-date-picker:focus{opacity:1}}.dso-date__vhidden.sc-dso-date-picker{border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;padding:0;position:absolute;top:0;width:1px}";
752
+ const datePickerCss = ".sc-dso-date-picker-h{display:block}.dso-date.sc-dso-date-picker *.sc-dso-date-picker,.dso-date.sc-dso-date-picker *.sc-dso-date-picker::before,.dso-date.sc-dso-date-picker *.sc-dso-date-picker::after{box-sizing:border-box}.dso-date.sc-dso-date-picker{box-sizing:border-box;color:#191919;display:block;font-family:\"Asap\", sans-serif;margin:0;position:relative;text-align:left;width:100%}.dso-date.sc-dso-date-picker:not(.dso-visible) .dso-date__dialog.sc-dso-date-picker{display:none}.dso-date__input.sc-dso-date-picker{display:block;width:100%;height:40px;padding:6px 14px;font-size:16px;line-height:1.5;color:#191919;background-color:#fff;background-image:none;border:1px solid #275937;border-radius:4px;transition:border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s}.dso-date__input.sc-dso-date-picker::-moz-placeholder{color:#666;opacity:1}.dso-date__input.sc-dso-date-picker:-ms-input-placeholder{color:#666}.dso-date__input.sc-dso-date-picker::-webkit-input-placeholder{color:#666}.dso-date__input.sc-dso-date-picker::-ms-expand{background-color:transparent;border:0}.dso-date__input.sc-dso-date-picker:focus{border-color:#275937;outline:0;box-shadow:inset 0 0 0 1px #275937}.dso-date__input[disabled].sc-dso-date-picker,.dso-date__input[readonly].sc-dso-date-picker,fieldset[disabled].sc-dso-date-picker .dso-date__input.sc-dso-date-picker{background-color:#fff;opacity:1}.dso-date__input[disabled].sc-dso-date-picker,fieldset[disabled].sc-dso-date-picker .dso-date__input.sc-dso-date-picker{cursor:default}.dso-date__input[disabled].sc-dso-date-picker{border-color:#e5e5e5;color:#999}.dso-date__input[readonly].sc-dso-date-picker{border-width:1px}.dso-date__input[type=text].sc-dso-date-picker{line-height:40px}.dso-date__input[size].sc-dso-date-picker{width:auto}.dso-date__toggle.sc-dso-date-picker{-moz-appearance:none;-webkit-appearance:none;-webkit-user-select:none;align-items:center;appearance:none;background:transparent;border:0;border-radius:0;border-bottom-right-radius:4px;border-top-right-radius:4px;color:#39870c;cursor:pointer;display:flex;height:38px;justify-content:center;padding:0;position:absolute;right:0;transform:translateY(-50%);top:50%;user-select:none;width:38px;z-index:101}.dso-date__toggle.sc-dso-date-picker:disabled{color:#afcf9d;cursor:pointer}.dso-date__dialog.sc-dso-date-picker{border-width:1px;display:flex;right:0;min-width:320px;opacity:0;position:absolute;top:100%;transform:scale(0.96) translateZ(0) translateY(-20px);transform-origin:top right;transition:transform 300ms ease, opacity 300ms ease, visibility 300ms ease;visibility:hidden;will-change:transform, opacity, visibility;z-index:210}@media (max-width: 35.9375em){.dso-date__dialog.sc-dso-date-picker{background:rgba(25, 25, 25, 0.5);bottom:0;position:fixed;left:0;right:0;top:0;transform:translateZ(0);transform-origin:bottom center}}.dso-date__dialog.is-left.sc-dso-date-picker{left:-11px;right:auto;width:auto}.dso-date__dialog.is-active.sc-dso-date-picker{opacity:1;transform:scale(1.0001) translateZ(0) translateY(0);visibility:visible}.dso-date__dialog-content.sc-dso-date-picker{background:#fff;border:1px solid rgba(0, 0, 0, 0.1);border-radius:4px;box-shadow:0 8px 10px 1px rgba(0, 0, 0, 0.4);margin-left:auto;margin-right:-1px;margin-top:8px;max-width:310px;min-width:290px;padding:16px;position:relative;transform:none;width:100%;z-index:210}@media (max-width: 35.9375em){.dso-date__dialog-content.sc-dso-date-picker{border:0;border-radius:0;border-top-left-radius:4px;border-top-right-radius:4px;bottom:0;left:0;margin:0;max-width:none;min-height:26em;opacity:0;padding:0 8% 20px;position:absolute;transform:translateZ(0) translateY(100%);transition:transform 400ms ease, opacity 400ms ease, visibility 400ms ease;visibility:hidden;will-change:transform, opacity, visibility}.is-active.sc-dso-date-picker .dso-date__dialog-content.sc-dso-date-picker{opacity:1;transform:translateZ(0) translateY(0);visibility:visible}}.dso-date__table.sc-dso-date-picker{border-collapse:collapse;border-spacing:0;color:#191919;font-size:1rem;font-weight:400;line-height:1.25;min-width:280px;table-layout:fixed;text-align:center;width:100%}.dso-date__table-header.sc-dso-date-picker{font-size:0.875em;font-weight:600;height:36px;line-height:36px;text-decoration:none;text-transform:uppercase}.dso-date__cell.sc-dso-date-picker{height:40px;padding:1px;text-align:center;width:40px}.dso-date__day.sc-dso-date-picker{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0;border-radius:50%;box-shadow:0 0 0 1px transparent;color:#191919;cursor:pointer;display:inline-block;font-family:\"Asap\", sans-serif;font-variant-numeric:tabular-nums;font-weight:400;height:38px;line-height:0;padding:0;position:relative;text-align:center;vertical-align:middle;width:38px;z-index:100}.dso-date__day.is-today.sc-dso-date-picker{background:transparent;height:36px;box-shadow:0 0 0 1px #39870c;width:36px}.dso-date__day.sc-dso-date-picker:hover,.dso-date__day.sc-dso-date-picker:active{background:#39870c;color:#fff}.dso-date__day.sc-dso-date-picker:focus{background:transparent;box-shadow:0 0 0 2px #275937;color:#191919;height:34px;outline:0;width:34px}[aria-selected=true].sc-dso-date-picker .dso-date__day.sc-dso-date-picker{background:#39870c;color:#fff}[aria-selected=true].sc-dso-date-picker .dso-date__day.sc-dso-date-picker:focus{background:transparent}[aria-selected=true].sc-dso-date-picker .dso-date__day.sc-dso-date-picker:focus span[aria-hidden=true].sc-dso-date-picker{background:#39870c;border:1px solid #fff;line-height:32px}.dso-date__day.is-outside.sc-dso-date-picker{background:#f2f2f2;box-shadow:none;color:#666;cursor:default;pointer-events:none}.dso-date__day.is-disabled.sc-dso-date-picker{background:#fff;cursor:default}.dso-date__day.is-disabled.sc-dso-date-picker:hover{color:#666}.dso-date__day.sc-dso-date-picker span[aria-hidden=true].sc-dso-date-picker{border-radius:50%;display:inline-block;height:34px;line-height:34px;width:34px}.dso-date__header.sc-dso-date-picker{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px;width:100%}.dso-date__header.sc-dso-date-picker span.sc-dso-date-picker{font-size:0.875rem}.dso-date__nav.sc-dso-date-picker{white-space:nowrap}.dso-date__prev.sc-dso-date-picker,.dso-date__next.sc-dso-date-picker{-moz-appearance:none;-webkit-appearance:none;align-items:center;appearance:none;background:transparent;border:1px solid #39870c;border-radius:4px;box-sizing:border-box;color:#39870c;cursor:pointer;display:inline-flex;font-size:1em;height:32px;justify-content:center;margin-left:8px;padding:0;width:32px}@media (max-width: 35.9375em){.dso-date__prev.sc-dso-date-picker,.dso-date__next.sc-dso-date-picker{height:40px;width:40px}}.dso-date__prev.sc-dso-date-picker:hover,.dso-date__prev.sc-dso-date-picker:active,.dso-date__next.sc-dso-date-picker:hover,.dso-date__next.sc-dso-date-picker:active{background-color:#39870c;color:#fff}.dso-date__prev.sc-dso-date-picker:focus,.dso-date__next.sc-dso-date-picker:focus{background:transparent;color:#39870c}.dso-date__prev.sc-dso-date-picker:disabled,.dso-date__prev.sc-dso-date-picker:disabled:hover,.dso-date__next.sc-dso-date-picker:disabled,.dso-date__next.sc-dso-date-picker:disabled:hover{background-color:#fff;border-color:#afcf9d;color:#afcf9d;opacity:1}.dso-date__prev.sc-dso-date-picker svg.sc-dso-date-picker,.dso-date__next.sc-dso-date-picker svg.sc-dso-date-picker{margin:0 auto}.dso-date__select.sc-dso-date-picker{display:inline-flex;height:28px;line-height:28px;position:relative}.dso-date__select.sc-dso-date-picker span.sc-dso-date-picker{margin-right:4px}.dso-date__select.sc-dso-date-picker select.sc-dso-date-picker{color:#275937;cursor:pointer;font-size:1rem;height:100%;left:0;opacity:0;position:absolute;top:0;width:100%;z-index:101}.dso-date__select.sc-dso-date-picker select.sc-dso-date-picker:focus+.dso-date__select-label.sc-dso-date-picker{box-shadow:0 0 0 2px #275937}.dso-date__select.sc-dso-date-picker select.sc-dso-date-picker:disabled{color:#afcf9d}.dso-date__select-label.sc-dso-date-picker{align-items:center;border-radius:4px;color:#39870c;display:flex;padding:0 4px 0 8px;pointer-events:none;position:relative;width:100%;z-index:100}.dso-date__select-label.sc-dso-date-picker span.sc-dso-date-picker{font-size:1.25rem;font-weight:600;line-height:1.25}.dso-date__select-label.sc-dso-date-picker svg.sc-dso-date-picker{width:16px;height:16px}.dso-date__mobile.sc-dso-date-picker{align-items:center;border-bottom:1px solid rgba(0, 0, 0, 0.12);display:flex;font-size:1em;justify-content:space-between;margin-bottom:20px;margin-left:-10%;overflow:hidden;padding:12px 20px;position:relative;text-overflow:ellipsis;white-space:nowrap;width:120%}@media (min-width: 36em){.dso-date__mobile.sc-dso-date-picker{border:0;margin:0;overflow:visible;padding:0;position:absolute;right:-16px;top:-16px;width:auto}}.dso-date__mobile-heading.sc-dso-date-picker{display:inline-block;font-weight:600;max-width:84%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 36em){.dso-date__mobile-heading.sc-dso-date-picker{display:none}}.dso-date__close.sc-dso-date-picker{-webkit-appearance:none;align-items:center;appearance:none;background-color:#fff;border:0;border-radius:50%;color:#39870c;cursor:pointer;display:flex;font-size:1em;height:32px;justify-content:center;margin-right:-4px;padding:0;width:32px}@media (min-width: 36em){.dso-date__close.sc-dso-date-picker{margin-right:0;opacity:0}}.dso-date__close.sc-dso-date-picker:focus{box-shadow:0 0 0 2px #275937;outline:none}@media (min-width: 36em){.dso-date__close.sc-dso-date-picker:focus{opacity:1}}.dso-date__vhidden.sc-dso-date-picker{border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;padding:0;position:absolute;top:0;width:1px}";
753
753
 
754
754
  function range(from, to) {
755
755
  var result = [];
@@ -796,6 +796,7 @@ let DsoDatePicker$1 = class extends HTMLElement {
796
796
  this.activeFocus = false;
797
797
  this.focusedDay = new Date();
798
798
  this.open = false;
799
+ this.visible = false;
799
800
  /**
800
801
  * Public Property API
801
802
  */
@@ -1064,12 +1065,18 @@ let DsoDatePicker$1 = class extends HTMLElement {
1064
1065
  * Show the calendar modal, moving focus to the calendar inside.
1065
1066
  */
1066
1067
  async show() {
1067
- this.open = true;
1068
- this.setFocusedDay(parseDutchDate(this.value) || new Date());
1069
- if (typeof this.focusTimeoutId !== 'undefined') {
1070
- clearTimeout(this.focusTimeoutId);
1071
- }
1072
- this.focusTimeoutId = setTimeout(() => { var _a; return (_a = this.monthSelectNode) === null || _a === void 0 ? void 0 : _a.focus(); }, TRANSITION_MS);
1068
+ if (typeof this.hideTimeoutId !== 'undefined') {
1069
+ clearTimeout(this.hideTimeoutId);
1070
+ }
1071
+ this.visible = true;
1072
+ setTimeout(() => {
1073
+ this.open = true;
1074
+ this.setFocusedDay(parseDutchDate(this.value) || new Date());
1075
+ if (typeof this.focusTimeoutId !== 'undefined') {
1076
+ clearTimeout(this.focusTimeoutId);
1077
+ }
1078
+ this.focusTimeoutId = setTimeout(() => { var _a; return (_a = this.monthSelectNode) === null || _a === void 0 ? void 0 : _a.focus(); }, TRANSITION_MS);
1079
+ });
1073
1080
  }
1074
1081
  /**
1075
1082
  * Hide the calendar modal. Set `moveFocusToButton` to false to prevent focus
@@ -1082,10 +1089,12 @@ let DsoDatePicker$1 = class extends HTMLElement {
1082
1089
  if (typeof this.focusTimeoutId !== 'undefined') {
1083
1090
  clearTimeout(this.focusTimeoutId);
1084
1091
  }
1085
- if (moveFocusToButton) {
1086
- // iOS VoiceOver needs to wait for all transitions to finish.
1087
- setTimeout(() => { var _a; return (_a = this.datePickerButton) === null || _a === void 0 ? void 0 : _a.focus(); }, TRANSITION_MS + 200);
1088
- }
1092
+ this.hideTimeoutId = setTimeout(() => {
1093
+ if (moveFocusToButton && this.datePickerButton) {
1094
+ this.datePickerButton.focus();
1095
+ }
1096
+ this.visible = false;
1097
+ }, TRANSITION_MS + 200);
1089
1098
  }
1090
1099
  addDays(days) {
1091
1100
  this.setFocusedDay(addDays(this.focusedDay, days));
@@ -1153,7 +1162,7 @@ let DsoDatePicker$1 = class extends HTMLElement {
1153
1162
  if (maxDate) {
1154
1163
  maxYear = Math.min(maxYear, maxDate.getFullYear());
1155
1164
  }
1156
- return (h(Host, null, h("div", { class: "dso-date" }, h("div", { class: "dso-date__input-wrapper" }, h("input", { class: "dso-date__input", value: this.value, placeholder: this.localization.placeholder, id: this.identifier, disabled: this.disabled, role: this.role, required: this.required ? true : undefined, "aria-autocomplete": "none", onKeyPress: this.handleKeyPress, onInput: this.handleInputChange, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyUp: this.handleKeyUp, onKeyDown: this.handleKeyDown, autoComplete: "off", ref: element => (this.datePickerInput = element) }), h("button", { type: "button", class: "dso-date__toggle", onClick: this.toggleOpen, disabled: this.disabled, ref: element => (this.datePickerButton = element) }, h("span", { class: "dso-date__toggle-icon" }, h("dso-icon", { icon: "calendar" })), h("span", { class: "dso-date__vhidden" }, this.localization.buttonLabel, formattedDate && (h("span", null, ", ", this.localization.selectedDateMessage, " ", formattedDate))))), h("div", { class: {
1165
+ return (h(Host, null, h("div", { class: ({ 'dso-date': true, 'dso-visible': this.visible }) }, h("div", { class: "dso-date__input-wrapper" }, h("input", { class: "dso-date__input", value: this.value, placeholder: this.localization.placeholder, id: this.identifier, disabled: this.disabled, role: this.role, required: this.required ? true : undefined, "aria-autocomplete": "none", onKeyPress: this.handleKeyPress, onInput: this.handleInputChange, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyUp: this.handleKeyUp, onKeyDown: this.handleKeyDown, autoComplete: "off", ref: element => (this.datePickerInput = element) }), h("button", { type: "button", class: "dso-date__toggle", onClick: this.toggleOpen, disabled: this.disabled, ref: element => (this.datePickerButton = element) }, h("span", { class: "dso-date__toggle-icon" }, h("dso-icon", { icon: "calendar" })), h("span", { class: "dso-date__vhidden" }, this.localization.buttonLabel, formattedDate && (h("span", null, ", ", this.localization.selectedDateMessage, " ", formattedDate))))), h("div", { class: {
1157
1166
  "dso-date__dialog": true,
1158
1167
  "is-left": this.direction === "left",
1159
1168
  "is-active": this.open,
@@ -1164,12 +1173,24 @@ let DsoDatePicker$1 = class extends HTMLElement {
1164
1173
  };
1165
1174
 
1166
1175
  /*!
1167
- * tabbable 5.2.1
1176
+ * tabbable 5.3.1
1168
1177
  * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE
1169
1178
  */
1170
- var candidateSelectors = ['input', 'select', 'textarea', 'a[href]', 'button', '[tabindex]', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable="false"])', 'details>summary:first-of-type', 'details'];
1179
+ var candidateSelectors = ['input', 'select', 'textarea', 'a[href]', 'button', '[tabindex]:not(slot)', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable="false"])', 'details>summary:first-of-type', 'details'];
1171
1180
  var candidateSelector = /* #__PURE__ */candidateSelectors.join(',');
1172
- var matches = typeof Element === 'undefined' ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;
1181
+ var NoElement = typeof Element === 'undefined';
1182
+ var matches = NoElement ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;
1183
+ var getRootNode = !NoElement && Element.prototype.getRootNode ? function (element) {
1184
+ return element.getRootNode();
1185
+ } : function (element) {
1186
+ return element.ownerDocument;
1187
+ };
1188
+ /**
1189
+ * @param {Element} el container to check in
1190
+ * @param {boolean} includeContainer add container to check
1191
+ * @param {(node: Element) => boolean} filter filter candidates
1192
+ * @returns {Element[]}
1193
+ */
1173
1194
 
1174
1195
  var getCandidates = function getCandidates(el, includeContainer, filter) {
1175
1196
  var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));
@@ -1181,31 +1202,112 @@ var getCandidates = function getCandidates(el, includeContainer, filter) {
1181
1202
  candidates = candidates.filter(filter);
1182
1203
  return candidates;
1183
1204
  };
1205
+ /**
1206
+ * @callback GetShadowRoot
1207
+ * @param {Element} element to check for shadow root
1208
+ * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.
1209
+ */
1184
1210
 
1185
- var isContentEditable = function isContentEditable(node) {
1186
- return node.contentEditable === 'true';
1187
- };
1211
+ /**
1212
+ * @typedef {Object} CandidatesScope
1213
+ * @property {Element} scope contains inner candidates
1214
+ * @property {Element[]} candidates
1215
+ */
1188
1216
 
1189
- var getTabindex = function getTabindex(node) {
1190
- var tabindexAttr = parseInt(node.getAttribute('tabindex'), 10);
1217
+ /**
1218
+ * @typedef {Object} IterativeOptions
1219
+ * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not;
1220
+ * if a function, implies shadow support is enabled and either returns the shadow root of an element
1221
+ * or a boolean stating if it has an undisclosed shadow root
1222
+ * @property {(node: Element) => boolean} filter filter candidates
1223
+ * @property {boolean} flatten if true then result will flatten any CandidatesScope into the returned list
1224
+ */
1225
+
1226
+ /**
1227
+ * @param {Element[]} elements list of element containers to match candidates from
1228
+ * @param {boolean} includeContainer add container list to check
1229
+ * @param {IterativeOptions} options
1230
+ * @returns {Array.<Element|CandidatesScope>}
1231
+ */
1191
1232
 
1192
- if (!isNaN(tabindexAttr)) {
1193
- return tabindexAttr;
1194
- } // Browsers do not return `tabIndex` correctly for contentEditable nodes;
1195
- // so if they don't have a tabindex attribute specifically set, assume it's 0.
1196
1233
 
1234
+ var getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {
1235
+ var candidates = [];
1236
+ var elementsToCheck = Array.from(elements);
1197
1237
 
1198
- if (isContentEditable(node)) {
1199
- return 0;
1200
- } // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default
1201
- // `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,
1202
- // yet they are still part of the regular tab order; in FF, they get a default
1203
- // `tabIndex` of 0; since Chrome still puts those elements in the regular tab
1204
- // order, consider their tab index to be 0.
1238
+ while (elementsToCheck.length) {
1239
+ var element = elementsToCheck.shift();
1205
1240
 
1241
+ if (element.tagName === 'SLOT') {
1242
+ // add shadow dom slot scope (slot itself cannot be focusable)
1243
+ var assigned = element.assignedElements();
1244
+ var content = assigned.length ? assigned : element.children;
1245
+ var nestedCandidates = getCandidatesIteratively(content, true, options);
1206
1246
 
1207
- if ((node.nodeName === 'AUDIO' || node.nodeName === 'VIDEO' || node.nodeName === 'DETAILS') && node.getAttribute('tabindex') === null) {
1208
- return 0;
1247
+ if (options.flatten) {
1248
+ candidates.push.apply(candidates, nestedCandidates);
1249
+ } else {
1250
+ candidates.push({
1251
+ scope: element,
1252
+ candidates: nestedCandidates
1253
+ });
1254
+ }
1255
+ } else {
1256
+ // check candidate element
1257
+ var validCandidate = matches.call(element, candidateSelector);
1258
+
1259
+ if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {
1260
+ candidates.push(element);
1261
+ } // iterate over shadow content if possible
1262
+
1263
+
1264
+ var shadowRoot = element.shadowRoot || // check for an undisclosed shadow
1265
+ typeof options.getShadowRoot === 'function' && options.getShadowRoot(element);
1266
+
1267
+ if (shadowRoot) {
1268
+ // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed
1269
+ // shadow exists, so look at light dom children as fallback BUT create a scope for any
1270
+ // child candidates found because they're likely slotted elements (elements that are
1271
+ // children of the web component element (which has the shadow), in the light dom, but
1272
+ // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,
1273
+ // _after_ we return from this recursive call
1274
+ var _nestedCandidates = getCandidatesIteratively(shadowRoot === true ? element.children : shadowRoot.children, true, options);
1275
+
1276
+ if (options.flatten) {
1277
+ candidates.push.apply(candidates, _nestedCandidates);
1278
+ } else {
1279
+ candidates.push({
1280
+ scope: element,
1281
+ candidates: _nestedCandidates
1282
+ });
1283
+ }
1284
+ } else {
1285
+ // there's not shadow so just dig into the element's (light dom) children
1286
+ // __without__ giving the element special scope treatment
1287
+ elementsToCheck.unshift.apply(elementsToCheck, element.children);
1288
+ }
1289
+ }
1290
+ }
1291
+
1292
+ return candidates;
1293
+ };
1294
+
1295
+ var getTabindex = function getTabindex(node, isScope) {
1296
+ if (node.tabIndex < 0) {
1297
+ // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default
1298
+ // `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,
1299
+ // yet they are still part of the regular tab order; in FF, they get a default
1300
+ // `tabIndex` of 0; since Chrome still puts those elements in the regular tab
1301
+ // order, consider their tab index to be 0.
1302
+ // Also browsers do not return `tabIndex` correctly for contentEditable nodes;
1303
+ // so if they don't have a tabindex attribute specifically set, assume it's 0.
1304
+ //
1305
+ // isScope is positive for custom element with shadow root or slot that by default
1306
+ // have tabIndex -1, but need to be sorted by document order in order for their
1307
+ // content to be inserted in the correct position
1308
+ if ((isScope || /^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || node.isContentEditable) && isNaN(parseInt(node.getAttribute('tabindex'), 10))) {
1309
+ return 0;
1310
+ }
1209
1311
  }
1210
1312
 
1211
1313
  return node.tabIndex;
@@ -1243,7 +1345,7 @@ var isTabbableRadio = function isTabbableRadio(node) {
1243
1345
  return true;
1244
1346
  }
1245
1347
 
1246
- var radioScope = node.form || node.ownerDocument;
1348
+ var radioScope = node.form || getRootNode(node);
1247
1349
 
1248
1350
  var queryRadios = function queryRadios(name) {
1249
1351
  return radioScope.querySelectorAll('input[type="radio"][name="' + name + '"]');
@@ -1275,7 +1377,18 @@ var isNonTabbableRadio = function isNonTabbableRadio(node) {
1275
1377
  return isRadio(node) && !isTabbableRadio(node);
1276
1378
  };
1277
1379
 
1278
- var isHidden = function isHidden(node, displayCheck) {
1380
+ var isZeroArea = function isZeroArea(node) {
1381
+ var _node$getBoundingClie = node.getBoundingClientRect(),
1382
+ width = _node$getBoundingClie.width,
1383
+ height = _node$getBoundingClie.height;
1384
+
1385
+ return width === 0 && height === 0;
1386
+ };
1387
+
1388
+ var isHidden = function isHidden(node, _ref) {
1389
+ var displayCheck = _ref.displayCheck,
1390
+ getShadowRoot = _ref.getShadowRoot;
1391
+
1279
1392
  if (getComputedStyle(node).visibility === 'hidden') {
1280
1393
  return true;
1281
1394
  }
@@ -1288,19 +1401,47 @@ var isHidden = function isHidden(node, displayCheck) {
1288
1401
  }
1289
1402
 
1290
1403
  if (!displayCheck || displayCheck === 'full') {
1291
- while (node) {
1292
- if (getComputedStyle(node).display === 'none') {
1293
- return true;
1404
+ if (typeof getShadowRoot === 'function') {
1405
+ // figure out if we should consider the node to be in an undisclosed shadow and use the
1406
+ // 'non-zero-area' fallback
1407
+ var originalNode = node;
1408
+
1409
+ while (node) {
1410
+ var parentElement = node.parentElement;
1411
+ var rootNode = getRootNode(node);
1412
+
1413
+ if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true // check if there's an undisclosed shadow
1414
+ ) {
1415
+ // node has an undisclosed shadow which means we can only treat it as a black box, so we
1416
+ // fall back to a non-zero-area test
1417
+ return isZeroArea(node);
1418
+ } else if (node.assignedSlot) {
1419
+ // iterate up slot
1420
+ node = node.assignedSlot;
1421
+ } else if (!parentElement && rootNode !== node.ownerDocument) {
1422
+ // cross shadow boundary
1423
+ node = rootNode.host;
1424
+ } else {
1425
+ // iterate up normal dom
1426
+ node = parentElement;
1427
+ }
1294
1428
  }
1295
1429
 
1296
- node = node.parentElement;
1297
- }
1298
- } else if (displayCheck === 'non-zero-area') {
1299
- var _node$getBoundingClie = node.getBoundingClientRect(),
1300
- width = _node$getBoundingClie.width,
1301
- height = _node$getBoundingClie.height;
1430
+ node = originalNode;
1431
+ } // else, `getShadowRoot` might be true, but all that does is enable shadow DOM support
1432
+ // (i.e. it does not also presume that all nodes might have undisclosed shadows); or
1433
+ // it might be a falsy value, which means shadow DOM support is disabled
1434
+ // didn't find it sitting in an undisclosed shadow (or shadows are disabled) so now we
1435
+ // can just test to see if it would normally be visible or not
1436
+ // this works wherever the node is: if there's at least one client rect, it's
1437
+ // somehow displayed; it also covers the CSS 'display: contents' case where the
1438
+ // node itself is hidden in place of its contents; and there's no need to search
1439
+ // up the hierarchy either
1440
+
1302
1441
 
1303
- return width === 0 && height === 0;
1442
+ return !node.getClientRects().length;
1443
+ } else if (displayCheck === 'non-zero-area') {
1444
+ return isZeroArea(node);
1304
1445
  }
1305
1446
 
1306
1447
  return false;
@@ -1310,29 +1451,21 @@ var isHidden = function isHidden(node, displayCheck) {
1310
1451
 
1311
1452
 
1312
1453
  var isDisabledFromFieldset = function isDisabledFromFieldset(node) {
1313
- if (isInput(node) || node.tagName === 'SELECT' || node.tagName === 'TEXTAREA' || node.tagName === 'BUTTON') {
1314
- var parentNode = node.parentElement;
1454
+ if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {
1455
+ var parentNode = node.parentElement; // check if `node` is contained in a disabled <fieldset>
1315
1456
 
1316
1457
  while (parentNode) {
1317
1458
  if (parentNode.tagName === 'FIELDSET' && parentNode.disabled) {
1318
- // look for the first <legend> as an immediate child of the disabled
1319
- // <fieldset>: if the node is in that legend, it'll be enabled even
1320
- // though the fieldset is disabled; otherwise, the node is in a
1321
- // secondary/subsequent legend, or somewhere else within the fieldset
1322
- // (however deep nested) and it'll be disabled
1459
+ // look for the first <legend> among the children of the disabled <fieldset>
1323
1460
  for (var i = 0; i < parentNode.children.length; i++) {
1324
- var child = parentNode.children.item(i);
1461
+ var child = parentNode.children.item(i); // when the first <legend> (in document order) is found
1325
1462
 
1326
1463
  if (child.tagName === 'LEGEND') {
1327
- if (child.contains(node)) {
1328
- return false;
1329
- } // the node isn't in the first legend (in doc order), so no matter
1330
- // where it is now, it'll be disabled
1331
-
1332
-
1333
- return true;
1464
+ // if its parent <fieldset> is not nested in another disabled <fieldset>,
1465
+ // return whether `node` is a descendant of its first <legend>
1466
+ return matches.call(parentNode, 'fieldset[disabled] *') ? true : !child.contains(node);
1334
1467
  }
1335
- } // the node isn't in a legend, so no matter where it is now, it'll be disabled
1468
+ } // the disabled <fieldset> containing `node` has no <legend>
1336
1469
 
1337
1470
 
1338
1471
  return true;
@@ -1348,7 +1481,7 @@ var isDisabledFromFieldset = function isDisabledFromFieldset(node) {
1348
1481
  };
1349
1482
 
1350
1483
  var isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable(options, node) {
1351
- if (node.disabled || isHiddenInput(node) || isHidden(node, options.displayCheck) || // For a details element with a summary, the summary element gets the focus
1484
+ if (node.disabled || isHiddenInput(node) || isHidden(node, options) || // For a details element with a summary, the summary element gets the focus
1352
1485
  isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {
1353
1486
  return false;
1354
1487
  }
@@ -1357,40 +1490,76 @@ var isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable(o
1357
1490
  };
1358
1491
 
1359
1492
  var isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable(options, node) {
1360
- if (!isNodeMatchingSelectorFocusable(options, node) || isNonTabbableRadio(node) || getTabindex(node) < 0) {
1493
+ if (isNonTabbableRadio(node) || getTabindex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) {
1361
1494
  return false;
1362
1495
  }
1363
1496
 
1364
1497
  return true;
1365
1498
  };
1499
+ /**
1500
+ * @param {Array.<Element|CandidatesScope>} candidates
1501
+ * @returns Element[]
1502
+ */
1366
1503
 
1367
- var tabbable = function tabbable(el, options) {
1368
- options = options || {};
1504
+
1505
+ var sortByOrder = function sortByOrder(candidates) {
1369
1506
  var regularTabbables = [];
1370
1507
  var orderedTabbables = [];
1371
- var candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));
1372
- candidates.forEach(function (candidate, i) {
1373
- var candidateTabindex = getTabindex(candidate);
1508
+ candidates.forEach(function (item, i) {
1509
+ var isScope = !!item.scope;
1510
+ var element = isScope ? item.scope : item;
1511
+ var candidateTabindex = getTabindex(element, isScope);
1512
+ var elements = isScope ? sortByOrder(item.candidates) : element;
1374
1513
 
1375
1514
  if (candidateTabindex === 0) {
1376
- regularTabbables.push(candidate);
1515
+ isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element);
1377
1516
  } else {
1378
1517
  orderedTabbables.push({
1379
1518
  documentOrder: i,
1380
1519
  tabIndex: candidateTabindex,
1381
- node: candidate
1520
+ item: item,
1521
+ isScope: isScope,
1522
+ content: elements
1382
1523
  });
1383
1524
  }
1384
1525
  });
1385
- var tabbableNodes = orderedTabbables.sort(sortOrderedTabbables).map(function (a) {
1386
- return a.node;
1387
- }).concat(regularTabbables);
1388
- return tabbableNodes;
1526
+ return orderedTabbables.sort(sortOrderedTabbables).reduce(function (acc, sortable) {
1527
+ sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content);
1528
+ return acc;
1529
+ }, []).concat(regularTabbables);
1530
+ };
1531
+
1532
+ var tabbable = function tabbable(el, options) {
1533
+ options = options || {};
1534
+ var candidates;
1535
+
1536
+ if (options.getShadowRoot) {
1537
+ candidates = getCandidatesIteratively([el], options.includeContainer, {
1538
+ filter: isNodeMatchingSelectorTabbable.bind(null, options),
1539
+ flatten: false,
1540
+ getShadowRoot: options.getShadowRoot
1541
+ });
1542
+ } else {
1543
+ candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));
1544
+ }
1545
+
1546
+ return sortByOrder(candidates);
1389
1547
  };
1390
1548
 
1391
1549
  var focusable = function focusable(el, options) {
1392
1550
  options = options || {};
1393
- var candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));
1551
+ var candidates;
1552
+
1553
+ if (options.getShadowRoot) {
1554
+ candidates = getCandidatesIteratively([el], options.includeContainer, {
1555
+ filter: isNodeMatchingSelectorFocusable.bind(null, options),
1556
+ flatten: true,
1557
+ getShadowRoot: options.getShadowRoot
1558
+ });
1559
+ } else {
1560
+ candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));
1561
+ }
1562
+
1394
1563
  return candidates;
1395
1564
  };
1396
1565
 
@@ -1430,7 +1599,7 @@ let DropdownMenu = class extends HTMLElement {
1430
1599
  constructor() {
1431
1600
  super();
1432
1601
  this.__registerHost();
1433
- attachShadow(this);
1602
+ this.__attachShadow();
1434
1603
  /**
1435
1604
  * Whether the menu is open or closed.
1436
1605
  * This attribute is reflected and mutable.
@@ -1521,7 +1690,7 @@ let DropdownMenu = class extends HTMLElement {
1521
1690
  this.openPopup();
1522
1691
  }
1523
1692
  }
1524
- componentWillRender() {
1693
+ componentDidRender() {
1525
1694
  for (const li of Array.from(this.host.getElementsByTagName("li"))) {
1526
1695
  for (const tab of tabbable(li)) {
1527
1696
  tab.setAttribute("role", this.checkable ? "menuitemradio" : "menuitem");
@@ -1582,14 +1751,16 @@ let DropdownMenu = class extends HTMLElement {
1582
1751
  static get style() { return dropdownMenuCss; }
1583
1752
  };
1584
1753
 
1585
- const headerCss = ":host{--di-chevron-down-bosgroen:url(\"data:image/svg+xml,%3csvg id='chevron-down' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' style='color: %23275937%3b'%3e %3cpath fill='currentColor' d='M12%2c16%2c5.29%2c9.63a.93.93%2c0%2c0%2c1%2c0-1.35%2c1%2c1%2c0%2c0%2c1%2c1.42%2c0l5.29%2c5%2c5.29-5a1%2c1%2c0%2c0%2c1%2c1.42%2c0%2c.91.91%2c0%2c0%2c1%2c0%2c1.34Z'/%3e %3c/svg%3e\");--di-chevron-up-bosgroen:url(\"data:image/svg+xml,%3csvg id='chevron-up' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' style='color: %23275937%3b'%3e %3cpath fill='currentColor' d='M18%2c16a1%2c1%2c0%2c0%2c1-.71-.28l-5.29-5-5.29%2c5a1%2c1%2c0%2c0%2c1-1.42%2c0%2c.93.93%2c0%2c0%2c1%2c0-1.35L12%2c8l6.71%2c6.38a.91.91%2c0%2c0%2c1%2c0%2c1.34A1%2c1%2c0%2c0%2c1%2c18%2c16Z'/%3e %3c/svg%3e\");display:block}.dso-header{border-bottom:1px solid #ccc;display:flex;flex-wrap:wrap;padding:0 16px;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}}.logo-container{display:flex;flex-wrap:wrap;padding-bottom:16px;padding-top:16px}@media screen and (max-width: 767px){.logo-container{max-width:200px}}.logo-container+.dropdown dso-dropdown-menu{position:static}@media screen and (min-width: 768px){.sub-logo{margin-left:24px}}@media screen and (max-width: 767px){.sub-logo{flex-basis:100%}}.login,.logout{margin-right:16px}.profile a,.logout a,.login a{text-decoration:none;color:#39870c;font-weight:600}.profile a:hover,.profile a:focus,.logout a:hover,.logout a:focus,.login a:hover,.login a:focus{text-decoration:none}.profile a:active,.logout a:active,.login a:active{text-decoration:underline}.dso-header-session{display:flex;margin-left:auto}.dso-header-session .profile a{margin-left:8px}.dso-header-session .profile+.logout{border-left:3px solid #ccc;margin-left:16px;padding-left:16px}.dso-navbar{flex-basis:100%}dso-dropdown-menu>.dso-primary::after,dso-dropdown-menu>.dso-secondary::after,dso-dropdown-menu>.dso-tertiary::after,dso-dropdown-menu>.btn::after{content:\"\";display:inline-block;margin-left:8px}dso-dropdown-menu>.dso-primary::after,dso-dropdown-menu>.btn-primary::after{background:var(--dso-icon, var(--di-chevron-down-wit)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}dso-dropdown-menu>.dso-secondary::after,dso-dropdown-menu>.btn-default::after{background:var(--dso-icon, var(--di-chevron-down)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}dso-dropdown-menu>.dso-secondary:hover::after,dso-dropdown-menu>.btn-default:hover::after{--dso-icon:var(--di-chevron-down-wit)}dso-dropdown-menu>.dso-tertiary::after,dso-dropdown-menu>.btn-link::after{background:var(--dso-icon, var(--di-chevron-down)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em;position:relative;top:-2px}dso-dropdown-menu>.dso-tertiary:hover::after,dso-dropdown-menu>.btn-link:hover::after{--dso-icon:var(--di-chevron-down-scampi)}dso-dropdown-menu .dso-group-label{color:#999;font-size:0.875em;font-weight:400;margin:0;padding:4px 20px 2px;text-transform:uppercase}dso-dropdown-menu ul{margin:0;padding:0}dso-dropdown-menu ul:not(:last-child){border-bottom:1px solid #e5e5e5;margin-bottom:11px;padding-bottom: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:16px;margin:2px 0 0;min-width:160px;padding:5px 0;position:absolute;text-align:left;top:100%;z-index:1000}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;clear:both;color:#191919;display:block;font-weight:400;line-height:1.5;padding:3px 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 a:active,dso-dropdown-menu .dso-dropdown-options li button:hover,dso-dropdown-menu .dso-dropdown-options li button:focus,dso-dropdown-menu .dso-dropdown-options li button:active{text-decoration:underline}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;width:100%}dso-dropdown-menu[dropdown-align=right] .dso-dropdown-options{right:0}dso-dropdown-menu[open]>.dso-primary::after,dso-dropdown-menu[open]>.btn-primary::after{--dso-icon:var(--di-chevron-up-wit)}dso-dropdown-menu[open]>.dso-secondary::after,dso-dropdown-menu[open]>.btn-default::after{--dso-icon:var(--di-chevron-up)}dso-dropdown-menu[open]>.dso-secondary:hover::after,dso-dropdown-menu[open]>.btn-default:hover::after{--dso-icon:var(--di-chevron-up-wit)}dso-dropdown-menu[open]>.dso-tertiary::after,dso-dropdown-menu[open]>.btn-link::after{--dso-icon:var(--di-chevron-up)}dso-dropdown-menu[open]>.dso-tertiary:hover::after,dso-dropdown-menu[open]>.btn-link:hover::after{--dso-icon:var(--di-chevron-up-scampi)}dso-dropdown-menu[open] button::after{background:var(--dso-icon, var(--di-chevron-up-bosgroen)) no-repeat;background-position:center;background-size:cover;height:1.2em;vertical-align:top;width:1.2em}dso-dropdown-menu[checkable] .dso-group-label{padding-left:40px}dso-dropdown-menu[checkable] li a,dso-dropdown-menu[checkable] li button{padding-left:40px}dso-dropdown-menu[checkable] li.dso-checked a:not(:focus),dso-dropdown-menu[checkable] li.dso-checked button:not(:focus){background-color:#39870c;border-color:#39870c;color:#fff}dso-dropdown-menu[checkable] li.dso-checked a::before,dso-dropdown-menu[checkable] li.dso-checked button::before{background:var(--dso-icon, var(--di-check-wit)) no-repeat;background-position:center;background-size:cover;height:24px;vertical-align:top;width:24px;content:\"\";display:block;float:left;margin-left:-32px;margin-right:8px}dso-dropdown-menu button{align-items:flex-end;background-color:transparent;border:0;display:flex;font-family:Asap, sans-serif;padding-right:32px}dso-dropdown-menu button::after{background:var(--dso-icon, var(--di-chevron-down-bosgroen)) no-repeat;background-position:center;background-size:cover;height:1.2em;vertical-align:top;width:1.2em;content:\"\";display:inline-block;margin-left:8px;position:absolute;right:0;top:50%;transform:translateY(-50%)}@media screen and (max-width: 767px){dso-dropdown-menu{top:12px}}dso-dropdown-menu .dso-dropdown-options{border:0;border-radius:0}dso-dropdown-menu .dso-dropdown-options dso-dropdown-options ul{width:320px}@media screen and (max-width: 991px){dso-dropdown-menu .dso-dropdown-options dso-dropdown-options ul{width:100%}}dso-dropdown-menu .dso-dropdown-options dso-dropdown-options li a{color:#275937;font-size:1.25rem;padding:16px}dso-dropdown-menu .dso-dropdown-options dso-dropdown-options li a:hover{background-color:#fff;color:#275937;text-decoration:underline}dso-dropdown-menu .dso-dropdown-options dso-dropdown-options li.dso-active a{font-weight:600}dso-dropdown-menu .dso-dropdown-options dso-dropdown-options li+li{border-top:1px solid #ccc}.dropdown{margin-left:auto}@media screen and (max-width: 767px){.dropdown dso-dropdown-menu{margin-top:28px}}.dropdown dso-dropdown-menu .dso-dropdown-options{left:0;right:0;top:100%}.dropdown dso-dropdown-menu[open] button::after{background:var(--dso-icon, var(--di-chevron-up)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}.dropdown dso-dropdown-menu button{color:#39870c;font-size:16px;font-weight:600;position:relative}.dropdown dso-dropdown-menu button:hover,.dropdown dso-dropdown-menu button:active{cursor:pointer;text-decoration:underline}.dropdown dso-dropdown-menu button::after{background:var(--dso-icon, var(--di-chevron-down)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}.dso-nav{align-items:end;column-gap:32px;display:flex;list-style:none;margin-bottom:0;margin-top:0;padding-left:0}.dso-nav>li{margin-bottom: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-bottom:0}.dso-nav>li.dso-active>a,.dso-nav>li.is-active>a{border-bottom:4px solid #8b4a6a;font-weight:bold}.dso-nav.dso-nav-main>li>a{text-decoration:none;font-size:1.25em;line-height:1;margin-top:8px;padding:16px 0;white-space:nowrap}.dso-nav.dso-nav-main>li>a:hover,.dso-nav.dso-nav-main>li>a:focus,.dso-nav.dso-nav-main>li>a:active{text-decoration:underline}.dso-nav.dso-nav-main dso-dropdown-menu .dso-dropdown-options{top:calc(100% + 3px)}.dso-nav.dso-nav-main dso-dropdown-menu button{font-size:1.25em;line-height:1;margin-top:8px;padding:16px 0;align-items:center;color:#275937;padding-right:32px}.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{top:auto;transform:none}.dso-nav.dso-nav-sub>li{display:inline-block}.dso-nav.dso-nav-sub>li>a{text-decoration:none;font-size:16px;margin-top:4px;padding:4px 8px 3px}.dso-nav.dso-nav-sub>li>a:hover,.dso-nav.dso-nav-sub>li>a:focus,.dso-nav.dso-nav-sub>li>a:active{text-decoration:underline}.dso-nav .menu-user-home{margin-left:auto}.dso-nav .menu-user-home dso-icon{height:1em;margin-right:8px;position:relative;top:-2px;width:1.2em}";
1754
+ const headerCss = ":host{--di-chevron-down-bosgroen:url(\"data:image/svg+xml,%3csvg id='chevron-down' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' style='color: %23275937%3b'%3e %3cpath fill='currentColor' d='M12%2c16%2c5.29%2c9.63a.93.93%2c0%2c0%2c1%2c0-1.35%2c1%2c1%2c0%2c0%2c1%2c1.42%2c0l5.29%2c5%2c5.29-5a1%2c1%2c0%2c0%2c1%2c1.42%2c0%2c.91.91%2c0%2c0%2c1%2c0%2c1.34Z'/%3e %3c/svg%3e\");--di-chevron-up-bosgroen:url(\"data:image/svg+xml,%3csvg id='chevron-up' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' style='color: %23275937%3b'%3e %3cpath fill='currentColor' d='M18%2c16a1%2c1%2c0%2c0%2c1-.71-.28l-5.29-5-5.29%2c5a1%2c1%2c0%2c0%2c1-1.42%2c0%2c.93.93%2c0%2c0%2c1%2c0-1.35L12%2c8l6.71%2c6.38a.91.91%2c0%2c0%2c1%2c0%2c1.34A1%2c1%2c0%2c0%2c1%2c18%2c16Z'/%3e %3c/svg%3e\");display:block}.dso-header{border-bottom:1px solid #ccc;display:flex;flex-wrap:wrap;padding:0 16px;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}}.logo-container{display:flex;flex-wrap:wrap;padding-bottom:16px;padding-top:16px}@media screen and (max-width: 767px){.logo-container{max-width:200px}}.logo-container+.dropdown dso-dropdown-menu{position:static}@media screen and (min-width: 768px){.sub-logo{margin-left:24px}}@media screen and (max-width: 767px){.sub-logo{flex-basis:100%}}.login,.logout{margin-right:16px}.profile a,.logout a,.login a{text-decoration:none;color:#39870c;font-weight:600}.profile a:hover,.profile a:focus,.logout a:hover,.logout a:focus,.login a:hover,.login a:focus{text-decoration:none}.profile a:active,.logout a:active,.login a:active{text-decoration:underline}.dso-header-session{display:flex;margin-left:auto}.dso-header-session .profile a{margin-left:8px}.dso-header-session .profile+.logout{border-left:3px solid #ccc;margin-left:16px;padding-left:16px}.dso-navbar{flex-basis:100%}dso-dropdown-menu>.dso-primary::after,dso-dropdown-menu>.dso-secondary::after,dso-dropdown-menu>.dso-tertiary::after,dso-dropdown-menu>.btn::after{content:\"\";display:inline-block;margin-left:8px}dso-dropdown-menu>.dso-primary::after,dso-dropdown-menu>.btn-primary::after{background:var(--dso-icon, var(--di-chevron-down-wit)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}dso-dropdown-menu>.dso-secondary::after,dso-dropdown-menu>.btn-default::after{background:var(--dso-icon, var(--di-chevron-down)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}dso-dropdown-menu>.dso-secondary:hover::after,dso-dropdown-menu>.btn-default:hover::after{--dso-icon:var(--di-chevron-down-wit)}dso-dropdown-menu>.dso-tertiary::after,dso-dropdown-menu>.btn-link::after{background:var(--dso-icon, var(--di-chevron-down)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em;position:relative;top:-2px}dso-dropdown-menu>.dso-tertiary:hover::after,dso-dropdown-menu>.btn-link:hover::after{--dso-icon:var(--di-chevron-down-scampi)}dso-dropdown-menu .dso-group-label{color:#999;font-size:0.875em;font-weight:400;margin:0;padding:4px 20px 2px;text-transform:uppercase}dso-dropdown-menu ul{margin:0;padding:0}dso-dropdown-menu ul:not(:last-child){border-bottom:1px solid #e5e5e5;margin-bottom:11px;padding-bottom: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:16px;margin:2px 0 0;min-width:160px;padding:5px 0;position:absolute;text-align:left;top:100%;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;clear:both;color:#191919;display:block;font-weight:400;line-height:1.5;padding:3px 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 a:active,dso-dropdown-menu .dso-dropdown-options li button:hover,dso-dropdown-menu .dso-dropdown-options li button:focus,dso-dropdown-menu .dso-dropdown-options li button:active{text-decoration:underline}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;width:100%}dso-dropdown-menu[dropdown-align=right] .dso-dropdown-options{right:0}dso-dropdown-menu[open]>.dso-primary::after,dso-dropdown-menu[open]>.btn-primary::after{--dso-icon:var(--di-chevron-up-wit)}dso-dropdown-menu[open]>.dso-secondary::after,dso-dropdown-menu[open]>.btn-default::after{--dso-icon:var(--di-chevron-up)}dso-dropdown-menu[open]>.dso-secondary:hover::after,dso-dropdown-menu[open]>.btn-default:hover::after{--dso-icon:var(--di-chevron-up-wit)}dso-dropdown-menu[open]>.dso-tertiary::after,dso-dropdown-menu[open]>.btn-link::after{--dso-icon:var(--di-chevron-up)}dso-dropdown-menu[open]>.dso-tertiary:hover::after,dso-dropdown-menu[open]>.btn-link:hover::after{--dso-icon:var(--di-chevron-up-scampi)}dso-dropdown-menu[open] button::after{background:var(--dso-icon, var(--di-chevron-up-bosgroen)) no-repeat;background-position:center;background-size:cover;height:1.2em;vertical-align:top;width:1.2em}dso-dropdown-menu[checkable] .dso-group-label{padding-left:40px}dso-dropdown-menu[checkable] li a,dso-dropdown-menu[checkable] li button{padding-left:40px}dso-dropdown-menu[checkable] li.dso-checked a:not(:focus),dso-dropdown-menu[checkable] li.dso-checked button:not(:focus){background-color:#39870c;border-color:#39870c;color:#fff}dso-dropdown-menu[checkable] li.dso-checked a::before,dso-dropdown-menu[checkable] li.dso-checked button::before{background:var(--dso-icon, var(--di-check-wit)) no-repeat;background-position:center;background-size:cover;height:24px;vertical-align:top;width:24px;content:\"\";display:block;float:left;margin-left:-32px;margin-right:8px}dso-dropdown-menu button{align-items:flex-end;background-color:transparent;border:0;display:flex;font-family:Asap, sans-serif;padding-right:32px}dso-dropdown-menu button::after{background:var(--dso-icon, var(--di-chevron-down-bosgroen)) no-repeat;background-position:center;background-size:cover;height:1.2em;vertical-align:top;width:1.2em;content:\"\";display:inline-block;margin-left:8px;position:absolute;right:0;top:50%;transform:translateY(-50%)}@media screen and (max-width: 767px){dso-dropdown-menu{top:12px}}dso-dropdown-menu .dso-dropdown-options{border:0;border-radius:0}dso-dropdown-menu .dso-dropdown-options dso-dropdown-options ul{width:320px}@media screen and (max-width: 991px){dso-dropdown-menu .dso-dropdown-options dso-dropdown-options ul{width:100%}}dso-dropdown-menu .dso-dropdown-options dso-dropdown-options li a{color:#275937;font-size:1.25rem;padding:16px}dso-dropdown-menu .dso-dropdown-options dso-dropdown-options li a:hover{background-color:#fff;color:#275937;text-decoration:underline}dso-dropdown-menu .dso-dropdown-options dso-dropdown-options li.dso-active a{font-weight:600}dso-dropdown-menu .dso-dropdown-options dso-dropdown-options li+li{border-top:1px solid #ccc}.dropdown{margin-left:auto}@media screen and (max-width: 767px){.dropdown dso-dropdown-menu{margin-top:28px}}.dropdown dso-dropdown-menu .dso-dropdown-options{left:0;right:0;top:100%}.dropdown dso-dropdown-menu[open] button::after{background:var(--dso-icon, var(--di-chevron-up)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}.dropdown dso-dropdown-menu button{color:#39870c;font-size:16px;font-weight:600;position:relative}.dropdown dso-dropdown-menu button:hover,.dropdown dso-dropdown-menu button:active{cursor:pointer;text-decoration:underline}.dropdown dso-dropdown-menu button::after{background:var(--dso-icon, var(--di-chevron-down)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}.dso-nav{align-items:end;column-gap:32px;display:flex;list-style:none;margin-bottom:0;margin-top:0;padding-left:0}.dso-nav>li{margin-bottom: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-bottom:0}.dso-nav>li.dso-active>a,.dso-nav>li.is-active>a{border-bottom:4px solid #8b4a6a;font-weight:bold}.dso-nav.dso-nav-main>li>a{text-decoration:none;font-size:1.25em;line-height:1;margin-top:8px;padding:16px 0;white-space:nowrap}.dso-nav.dso-nav-main>li>a:hover,.dso-nav.dso-nav-main>li>a:focus,.dso-nav.dso-nav-main>li>a:active{text-decoration:underline}.dso-nav.dso-nav-main dso-dropdown-menu .dso-dropdown-options{top:calc(100% + 3px)}.dso-nav.dso-nav-main dso-dropdown-menu button{font-size:1.25em;line-height:1;margin-top:8px;padding:16px 0;align-items:center;color:#275937;padding-right:32px}.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{top:auto;transform:none}.dso-nav.dso-nav-sub>li{display:inline-block}.dso-nav.dso-nav-sub>li>a{text-decoration:none;font-size:16px;margin-top:4px;padding:4px 8px 3px}.dso-nav.dso-nav-sub>li>a:hover,.dso-nav.dso-nav-sub>li>a:focus,.dso-nav.dso-nav-sub>li>a:active{text-decoration:underline}.dso-nav .menu-user-home{margin-left:auto}.dso-nav .menu-user-home dso-icon{height:1em;margin-right:8px;position:relative;top:-2px;width:1.2em}";
1586
1755
 
1587
1756
  const minDesktopViewportWidth = 992;
1588
1757
  let Header = class extends HTMLElement {
1589
1758
  constructor() {
1590
1759
  super();
1591
1760
  this.__registerHost();
1592
- attachShadow(this);
1761
+ this.__attachShadow();
1762
+ this.menuItemClick = createEvent(this, "menuItemClick", 7);
1763
+ this.mainMenu = [];
1593
1764
  this.useDropDownMenu = "auto";
1594
1765
  this.showDropDown = false;
1595
1766
  this.isLoggedIn = false;
@@ -1599,6 +1770,16 @@ let Header = class extends HTMLElement {
1599
1770
  this.setDropDownMenu();
1600
1771
  this.setOverflowMenu();
1601
1772
  }, 100);
1773
+ this.MenuItem = (item) => {
1774
+ const click = (event) => {
1775
+ event.preventDefault();
1776
+ this.menuItemClick.emit({
1777
+ originalEvent: event,
1778
+ menuItem: item,
1779
+ });
1780
+ };
1781
+ return (h("li", { class: item.active ? "dso-active" : undefined }, h("a", { href: item.url, "aria-current": item.active ? "page" : undefined, onClick: click }, item.label)));
1782
+ };
1602
1783
  }
1603
1784
  watchUseDropDownMenu(value) {
1604
1785
  if (value === "auto") {
@@ -1650,16 +1831,13 @@ let Header = class extends HTMLElement {
1650
1831
  disconnectedCallback() {
1651
1832
  window.removeEventListener("resize", this.onWindowResize);
1652
1833
  }
1653
- MenuItem(item) {
1654
- return (h("li", { class: item.active ? "dso-active" : undefined }, h("a", { href: item.url, "aria-current": item.active ? "page" : undefined }, item.label)));
1655
- }
1656
1834
  render() {
1657
1835
  return (h(Fragment, null, h("div", { class: clsx("dso-header", {
1658
1836
  ["use-drop-down"]: this.showDropDown,
1659
1837
  ["has-sub-logo"]: this.hasSubLogo,
1660
- }), ref: (element) => (this.wrapper = element) }, h("div", { class: "logo-container" }, h("div", { class: "logo" }, h("slot", { name: "logo" })), h("div", { class: "sub-logo" }, h("slot", { name: "sub-logo" }))), this.showDropDown && (h("div", { class: "dropdown" }, h("dso-dropdown-menu", { "dropdown-align": "right" }, h("button", { type: "button", class: "tertiary", slot: "toggle" }, h("span", null, "Menu")), h("div", { class: "dso-dropdown-options" }, h("dso-dropdown-options", null, h("ul", null, this.mainMenu.map(this.MenuItem), this.userHomeUrl && (h("li", null, h("a", { href: this.userHomeUrl }, "Mijn Omgevingsloket"))), this.loginUrl && !this.isLoggedIn && (h("li", null, h("a", { href: this.loginUrl }, "Inloggen"))), this.userProfileUrl &&
1838
+ }), ref: (element) => (this.wrapper = element) }, h("div", { class: "logo-container" }, h("div", { class: "logo" }, h("slot", { name: "logo" })), h("div", { class: "sub-logo" }, h("slot", { name: "sub-logo" }))), this.showDropDown && this.mainMenu.length > 0 && (h("div", { class: "dropdown" }, h("dso-dropdown-menu", { "dropdown-align": "right" }, h("button", { type: "button", class: "tertiary", slot: "toggle" }, h("span", null, "Menu")), h("div", { class: "dso-dropdown-options" }, h("dso-dropdown-options", null, h("ul", null, this.mainMenu.map(this.MenuItem), this.userHomeUrl && (h("li", null, h("a", { href: this.userHomeUrl }, "Mijn Omgevingsloket"))), this.loginUrl && !this.isLoggedIn && (h("li", null, h("a", { href: this.loginUrl }, "Inloggen"))), this.userProfileUrl &&
1661
1839
  this.userProfileName &&
1662
- this.isLoggedIn && (h("li", null, h("a", { href: this.userProfileUrl }, this.userProfileName, h("span", { class: "profile-label" }, "- Mijn profiel")))), this.logoutUrl && this.isLoggedIn && (h("li", null, h("a", { href: this.logoutUrl }, "Uitloggen"))))))))), !this.showDropDown && (h(Fragment, null, h("div", { class: "dso-header-session" }, this.userProfileUrl &&
1840
+ this.isLoggedIn && (h("li", null, h("a", { href: this.userProfileUrl }, this.userProfileName, h("span", { class: "profile-label" }, "- Mijn profiel")))), this.logoutUrl && this.isLoggedIn && (h("li", null, h("a", { href: this.logoutUrl }, "Uitloggen"))))))))), !this.showDropDown && this.mainMenu.length > 0 && (h(Fragment, null, h("div", { class: "dso-header-session" }, this.userProfileUrl &&
1663
1841
  this.userProfileName &&
1664
1842
  this.isLoggedIn && (h("div", { class: "profile" }, h("span", { class: "profile-label" }, "Welkom:"), h("a", { href: this.userProfileUrl }, this.userProfileName))), this.loginUrl && !this.isLoggedIn && (h("div", { class: "login" }, h("a", { href: this.loginUrl }, "Inloggen"))), this.logoutUrl && this.isLoggedIn && (h("div", { class: "logout" }, h("a", { href: this.logoutUrl }, "Uitloggen")))), h("nav", { class: "dso-navbar" }, h("ul", { class: "dso-nav dso-nav-main", ref: (element) => (this.nav = element) }, this.mainMenu
1665
1843
  .filter((_, index) => index < this.mainMenu.length - this.overflowMenuItems)
@@ -1683,7 +1861,7 @@ let HelpcenterPanel = class extends HTMLElement {
1683
1861
  constructor() {
1684
1862
  super();
1685
1863
  this.__registerHost();
1686
- attachShadow(this);
1864
+ this.__attachShadow();
1687
1865
  this.label = "Hulp nodig";
1688
1866
  this.visibility = "hidden";
1689
1867
  this.isOpen = "close";
@@ -1721,7 +1899,7 @@ let HighlightBox = class extends HTMLElement {
1721
1899
  constructor() {
1722
1900
  super();
1723
1901
  this.__registerHost();
1724
- attachShadow(this);
1902
+ this.__attachShadow();
1725
1903
  }
1726
1904
  render() {
1727
1905
  var _a;
@@ -2320,7 +2498,7 @@ let Icon = class extends HTMLElement {
2320
2498
  constructor() {
2321
2499
  super();
2322
2500
  this.__registerHost();
2323
- attachShadow(this);
2501
+ this.__attachShadow();
2324
2502
  }
2325
2503
  render() {
2326
2504
  if (this.icon) {
@@ -2335,7 +2513,7 @@ let Icon = class extends HTMLElement {
2335
2513
  };
2336
2514
 
2337
2515
  /*!
2338
- * focus-trap 6.7.3
2516
+ * focus-trap 6.8.1
2339
2517
  * @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE
2340
2518
  */
2341
2519
 
@@ -2486,20 +2664,28 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
2486
2664
  }, userOptions);
2487
2665
 
2488
2666
  var state = {
2667
+ // containers given to createFocusTrap()
2489
2668
  // @type {Array<HTMLElement>}
2490
2669
  containers: [],
2491
- // list of objects identifying the first and last tabbable nodes in all containers/groups in
2492
- // the trap
2670
+ // list of objects identifying tabbable nodes in `containers` in the trap
2493
2671
  // NOTE: it's possible that a group has no tabbable nodes if nodes get removed while the trap
2494
2672
  // is active, but the trap should never get to a state where there isn't at least one group
2495
2673
  // with at least one tabbable node in it (that would lead to an error condition that would
2496
2674
  // result in an error being thrown)
2497
2675
  // @type {Array<{
2498
2676
  // container: HTMLElement,
2677
+ // tabbableNodes: Array<HTMLElement>, // empty if none
2678
+ // focusableNodes: Array<HTMLElement>, // empty if none
2499
2679
  // firstTabbableNode: HTMLElement|null,
2500
2680
  // lastTabbableNode: HTMLElement|null,
2501
2681
  // nextTabbableNode: (node: HTMLElement, forward: boolean) => HTMLElement|undefined
2502
2682
  // }>}
2683
+ containerGroups: [],
2684
+ // same order/length as `containers` list
2685
+ // references to objects in `containerGroups`, but only those that actually have
2686
+ // tabbable nodes in them
2687
+ // NOTE: same order as `containers` and `containerGroups`, but __not necessarily__
2688
+ // the same length
2503
2689
  tabbableGroups: [],
2504
2690
  nodeFocusedBeforeActivation: null,
2505
2691
  mostRecentlyFocusedNode: null,
@@ -2511,14 +2697,42 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
2511
2697
  };
2512
2698
  var trap; // eslint-disable-line prefer-const -- some private functions reference it, and its methods reference private functions, so we must declare here and define later
2513
2699
 
2700
+ /**
2701
+ * Gets a configuration option value.
2702
+ * @param {Object|undefined} configOverrideOptions If true, and option is defined in this set,
2703
+ * value will be taken from this object. Otherwise, value will be taken from base configuration.
2704
+ * @param {string} optionName Name of the option whose value is sought.
2705
+ * @param {string|undefined} [configOptionName] Name of option to use __instead of__ `optionName`
2706
+ * IIF `configOverrideOptions` is not defined. Otherwise, `optionName` is used.
2707
+ */
2708
+
2514
2709
  var getOption = function getOption(configOverrideOptions, optionName, configOptionName) {
2515
2710
  return configOverrideOptions && configOverrideOptions[optionName] !== undefined ? configOverrideOptions[optionName] : config[configOptionName || optionName];
2516
2711
  };
2712
+ /**
2713
+ * Finds the index of the container that contains the element.
2714
+ * @param {HTMLElement} element
2715
+ * @returns {number} Index of the container in either `state.containers` or
2716
+ * `state.containerGroups` (the order/length of these lists are the same); -1
2717
+ * if the element isn't found.
2718
+ */
2517
2719
 
2518
- var containersContain = function containersContain(element) {
2519
- return !!(element && state.containers.some(function (container) {
2520
- return container.contains(element);
2521
- }));
2720
+
2721
+ var findContainerIndex = function findContainerIndex(element) {
2722
+ // NOTE: search `containerGroups` because it's possible a group contains no tabbable
2723
+ // nodes, but still contains focusable nodes (e.g. if they all have `tabindex=-1`)
2724
+ // and we still need to find the element in there
2725
+ return state.containerGroups.findIndex(function (_ref) {
2726
+ var container = _ref.container,
2727
+ tabbableNodes = _ref.tabbableNodes;
2728
+ return container.contains(element) || // fall back to explicit tabbable search which will take into consideration any
2729
+ // web components if the `tabbableOptions.getShadowRoot` option was used for
2730
+ // the trap, enabling shadow DOM support in tabbable (`Node.contains()` doesn't
2731
+ // look inside web components even if open)
2732
+ tabbableNodes.find(function (node) {
2733
+ return node === element;
2734
+ });
2735
+ });
2522
2736
  };
2523
2737
  /**
2524
2738
  * Gets the node for the given option, which is expected to be an option that
@@ -2577,7 +2791,7 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
2577
2791
 
2578
2792
  if (node === undefined) {
2579
2793
  // option not specified: use fallback options
2580
- if (containersContain(doc.activeElement)) {
2794
+ if (findContainerIndex(doc.activeElement) >= 0) {
2581
2795
  node = doc.activeElement;
2582
2796
  } else {
2583
2797
  var firstTabbableGroup = state.tabbableGroups[0];
@@ -2595,60 +2809,61 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
2595
2809
  };
2596
2810
 
2597
2811
  var updateTabbableNodes = function updateTabbableNodes() {
2598
- state.tabbableGroups = state.containers.map(function (container) {
2599
- var tabbableNodes = tabbable(container); // NOTE: if we have tabbable nodes, we must have focusable nodes; focusable nodes
2812
+ state.containerGroups = state.containers.map(function (container) {
2813
+ var tabbableNodes = tabbable(container, config.tabbableOptions); // NOTE: if we have tabbable nodes, we must have focusable nodes; focusable nodes
2600
2814
  // are a superset of tabbable nodes
2601
2815
 
2602
- var focusableNodes = focusable(container);
2603
-
2604
- if (tabbableNodes.length > 0) {
2605
- return {
2606
- container: container,
2607
- firstTabbableNode: tabbableNodes[0],
2608
- lastTabbableNode: tabbableNodes[tabbableNodes.length - 1],
2609
-
2610
- /**
2611
- * Finds the __tabbable__ node that follows the given node in the specified direction,
2612
- * in this container, if any.
2613
- * @param {HTMLElement} node
2614
- * @param {boolean} [forward] True if going in forward tab order; false if going
2615
- * in reverse.
2616
- * @returns {HTMLElement|undefined} The next tabbable node, if any.
2617
- */
2618
- nextTabbableNode: function nextTabbableNode(node) {
2619
- var forward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
2620
- // NOTE: If tabindex is positive (in order to manipulate the tab order separate
2621
- // from the DOM order), this __will not work__ because the list of focusableNodes,
2622
- // while it contains tabbable nodes, does not sort its nodes in any order other
2623
- // than DOM order, because it can't: Where would you place focusable (but not
2624
- // tabbable) nodes in that order? They have no order, because they aren't tabbale...
2625
- // Support for positive tabindex is already broken and hard to manage (possibly
2626
- // not supportable, TBD), so this isn't going to make things worse than they
2627
- // already are, and at least makes things better for the majority of cases where
2628
- // tabindex is either 0/unset or negative.
2629
- // FYI, positive tabindex issue: https://github.com/focus-trap/focus-trap/issues/375
2630
- var nodeIdx = focusableNodes.findIndex(function (n) {
2631
- return n === node;
2632
- });
2816
+ var focusableNodes = focusable(container, config.tabbableOptions);
2817
+ return {
2818
+ container: container,
2819
+ tabbableNodes: tabbableNodes,
2820
+ focusableNodes: focusableNodes,
2821
+ firstTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[0] : null,
2822
+ lastTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[tabbableNodes.length - 1] : null,
2823
+
2824
+ /**
2825
+ * Finds the __tabbable__ node that follows the given node in the specified direction,
2826
+ * in this container, if any.
2827
+ * @param {HTMLElement} node
2828
+ * @param {boolean} [forward] True if going in forward tab order; false if going
2829
+ * in reverse.
2830
+ * @returns {HTMLElement|undefined} The next tabbable node, if any.
2831
+ */
2832
+ nextTabbableNode: function nextTabbableNode(node) {
2833
+ var forward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
2834
+ // NOTE: If tabindex is positive (in order to manipulate the tab order separate
2835
+ // from the DOM order), this __will not work__ because the list of focusableNodes,
2836
+ // while it contains tabbable nodes, does not sort its nodes in any order other
2837
+ // than DOM order, because it can't: Where would you place focusable (but not
2838
+ // tabbable) nodes in that order? They have no order, because they aren't tabbale...
2839
+ // Support for positive tabindex is already broken and hard to manage (possibly
2840
+ // not supportable, TBD), so this isn't going to make things worse than they
2841
+ // already are, and at least makes things better for the majority of cases where
2842
+ // tabindex is either 0/unset or negative.
2843
+ // FYI, positive tabindex issue: https://github.com/focus-trap/focus-trap/issues/375
2844
+ var nodeIdx = focusableNodes.findIndex(function (n) {
2845
+ return n === node;
2846
+ });
2633
2847
 
2634
- if (forward) {
2635
- return focusableNodes.slice(nodeIdx + 1).find(function (n) {
2636
- return isTabbable(n);
2637
- });
2638
- }
2848
+ if (nodeIdx < 0) {
2849
+ return undefined;
2850
+ }
2639
2851
 
2640
- return focusableNodes.slice(0, nodeIdx).reverse().find(function (n) {
2641
- return isTabbable(n);
2852
+ if (forward) {
2853
+ return focusableNodes.slice(nodeIdx + 1).find(function (n) {
2854
+ return isTabbable(n, config.tabbableOptions);
2642
2855
  });
2643
2856
  }
2644
- };
2645
- }
2646
2857
 
2647
- return undefined;
2648
- }).filter(function (group) {
2649
- return !!group;
2650
- }); // remove groups with no tabbable nodes
2651
- // throw if no groups have tabbable nodes and we don't have a fallback focus node either
2858
+ return focusableNodes.slice(0, nodeIdx).reverse().find(function (n) {
2859
+ return isTabbable(n, config.tabbableOptions);
2860
+ });
2861
+ }
2862
+ };
2863
+ });
2864
+ state.tabbableGroups = state.containerGroups.filter(function (group) {
2865
+ return group.tabbableNodes.length > 0;
2866
+ }); // throw if no groups have tabbable nodes and we don't have a fallback focus node either
2652
2867
 
2653
2868
  if (state.tabbableGroups.length <= 0 && !getNodeForOption('fallbackFocus') // returning false not supported for this option
2654
2869
  ) {
@@ -2690,7 +2905,7 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
2690
2905
  var checkPointerDown = function checkPointerDown(e) {
2691
2906
  var target = getActualTarget(e);
2692
2907
 
2693
- if (containersContain(target)) {
2908
+ if (findContainerIndex(target) >= 0) {
2694
2909
  // allow the click since it ocurred inside the trap
2695
2910
  return;
2696
2911
  }
@@ -2709,7 +2924,7 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
2709
2924
  // that was clicked, whether it's focusable or not; by setting
2710
2925
  // `returnFocus: true`, we'll attempt to re-focus the node originally-focused
2711
2926
  // on activation (or the configured `setReturnFocus` node)
2712
- returnFocus: config.returnFocusOnDeactivate && !isFocusable(target)
2927
+ returnFocus: config.returnFocusOnDeactivate && !isFocusable(target, config.tabbableOptions)
2713
2928
  });
2714
2929
  return;
2715
2930
  } // This is needed for mobile devices.
@@ -2729,7 +2944,7 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
2729
2944
 
2730
2945
  var checkFocusIn = function checkFocusIn(e) {
2731
2946
  var target = getActualTarget(e);
2732
- var targetContained = containersContain(target); // In Firefox when you Tab out of an iframe the Document is briefly focused.
2947
+ var targetContained = findContainerIndex(target) >= 0; // In Firefox when you Tab out of an iframe the Document is briefly focused.
2733
2948
 
2734
2949
  if (targetContained || target instanceof Document) {
2735
2950
  if (targetContained) {
@@ -2755,11 +2970,8 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
2755
2970
  // make sure the target is actually contained in a group
2756
2971
  // NOTE: the target may also be the container itself if it's focusable
2757
2972
  // with tabIndex='-1' and was given initial focus
2758
- var containerIndex = findIndex(state.tabbableGroups, function (_ref) {
2759
- var container = _ref.container;
2760
- return container.contains(target);
2761
- });
2762
- var containerGroup = containerIndex >= 0 ? state.tabbableGroups[containerIndex] : undefined;
2973
+ var containerIndex = findContainerIndex(target);
2974
+ var containerGroup = containerIndex >= 0 ? state.containerGroups[containerIndex] : undefined;
2763
2975
 
2764
2976
  if (containerIndex < 0) {
2765
2977
  // target not found in any group: quite possible focus has escaped the trap,
@@ -2779,7 +2991,7 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
2779
2991
  return target === firstTabbableNode;
2780
2992
  });
2781
2993
 
2782
- if (startOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target) && !isTabbable(target) && !containerGroup.nextTabbableNode(target, false))) {
2994
+ if (startOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target, false))) {
2783
2995
  // an exception case where the target is either the container itself, or
2784
2996
  // a non-tabbable node that was given focus (i.e. tabindex is negative
2785
2997
  // and user clicked on it or node was programmatically given focus)
@@ -2805,7 +3017,7 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
2805
3017
  return target === lastTabbableNode;
2806
3018
  });
2807
3019
 
2808
- if (lastOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target) && !isTabbable(target) && !containerGroup.nextTabbableNode(target))) {
3020
+ if (lastOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target))) {
2809
3021
  // an exception case where the target is the container itself, or
2810
3022
  // a non-tabbable node that was given focus (i.e. tabindex is negative
2811
3023
  // and user clicked on it or node was programmatically given focus)
@@ -2857,7 +3069,7 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
2857
3069
 
2858
3070
  var target = getActualTarget(e);
2859
3071
 
2860
- if (containersContain(target)) {
3072
+ if (findContainerIndex(target) >= 0) {
2861
3073
  return;
2862
3074
  }
2863
3075
 
@@ -3041,13 +3253,13 @@ var createFocusTrap = function createFocusTrap(elements, userOptions) {
3041
3253
  return trap;
3042
3254
  };
3043
3255
 
3044
- const imageOverlayCss = "button{-webkit-appearance:button;color:inherit;cursor:pointer;font:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible;text-transform:none}button[disabled]{cursor:default}button::-moz-focus-inner{border:0;padding:0}:host{display:inline-block;position:relative}:host(:hover) .open,.open:focus{opacity:1}.open{display:inline-block;font-size:1em;font-weight:500;margin-bottom:0;text-decoration:none;touch-action:manipulation;text-align:left;user-select:none;vertical-align:middle;background-color:#fff;border-color:#39870c;color:#39870c;border-width:1px;border-style:solid;border-radius:4px;line-height:1.5;min-width:56px;padding:11px 15px;border:0;box-shadow:0 1px 4px 0 rgba(0, 0, 0, 0.5);min-width:auto;padding:8px;opacity:0;position:absolute;right:16px;top:16px}.open:focus,.open:focus-visible{outline-offset:2px}.open:active{outline:0}.open.extern::after,.open.download::after{content:\"\";display:inline-block;height:1.5em;margin-left:8px;vertical-align:top;width:1.5em}.open:hover{background-color:#39870c;border-color:#39870c;color:#fff}.open:active{background-color:#275937;border-color:#275937;color:#fff}.open[disabled],.open[disabled]:hover{background-color:#fff;border-color:#afcf9d;color:#afcf9d}.open.btn-sm{line-height:16px}.open.btn-sm dso-icon,.open.btn-sm svg.di,.open.btn-sm.extern::after,.open.btn-sm.download::after{margin-bottom:-4px;margin-top:-4px}.open.download::after{background:var(--dso-icon, var(--di-download)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}.open.download:hover::after{--dso-icon:var(--di-download-wit)}.open.download[disabled]::after{--dso-icon:var(--di-download-grasgroen-40)}.open.extern::after{background:var(--dso-icon, var(--di-external-link)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}.open.extern:hover::after{--dso-icon:var(--di-external-link-wit)}.open.extern[disabled]::after{--dso-icon:var(--di-external-link-grasgroen-40)}.open>span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.dimmer{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1;display:flex;padding:32px;background-color:rgba(255, 255, 255, 0.8);justify-content:center}.wrapper{box-shadow:0 8px 24px 0 rgba(25, 25, 25, 0.4);position:relative;z-index:20;align-self:center;line-height:0}.wrapper img{width:auto;height:auto;max-width:100%;max-height:calc(100vh - 64px)}.close{display:inline-block;font-size:1em;font-weight:500;margin-bottom:0;text-decoration:none;touch-action:manipulation;text-align:left;user-select:none;vertical-align:middle;background-color:#fff;border-color:#39870c;color:#39870c;border-width:1px;border-style:solid;border-radius:4px;line-height:1.5;min-width:56px;padding:11px 15px;border:0;box-shadow:0 1px 4px 0 rgba(0, 0, 0, 0.5);min-width:auto;padding:8px;position:absolute;top:16px;right:16px}.close:focus,.close:focus-visible{outline-offset:2px}.close:active{outline:0}.close.extern::after,.close.download::after{content:\"\";display:inline-block;height:1.5em;margin-left:8px;vertical-align:top;width:1.5em}.close:hover{background-color:#39870c;border-color:#39870c;color:#fff}.close:active{background-color:#275937;border-color:#275937;color:#fff}.close[disabled],.close[disabled]:hover{background-color:#fff;border-color:#afcf9d;color:#afcf9d}.close.btn-sm{line-height:16px}.close.btn-sm dso-icon,.close.btn-sm svg.di,.close.btn-sm.extern::after,.close.btn-sm.download::after{margin-bottom:-4px;margin-top:-4px}.close.download::after{background:var(--dso-icon, var(--di-download)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}.close.download:hover::after{--dso-icon:var(--di-download-wit)}.close.download[disabled]::after{--dso-icon:var(--di-download-grasgroen-40)}.close.extern::after{background:var(--dso-icon, var(--di-external-link)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}.close.extern:hover::after{--dso-icon:var(--di-external-link-wit)}.close.extern[disabled]::after{--dso-icon:var(--di-external-link-grasgroen-40)}.close>span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}";
3256
+ const imageOverlayCss = "button{-webkit-appearance:button;color:inherit;cursor:pointer;font:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible;text-transform:none}button[disabled]{cursor:default}button::-moz-focus-inner{border:0;padding:0}:host{display:inline-block;position:relative}:host(:hover) .open,.open:focus{opacity:1}.open{display:inline-block;font-size:1em;font-weight:500;margin-bottom:0;text-decoration:none;touch-action:manipulation;text-align:left;user-select:none;vertical-align:middle;background-color:#fff;border-color:#39870c;color:#39870c;border-width:1px;border-style:solid;border-radius:4px;line-height:1.5;min-width:56px;padding:11px 15px;border:0;box-shadow:0 1px 4px 0 rgba(0, 0, 0, 0.5);min-width:auto;padding:8px;opacity:0;position:absolute;right:16px;top:16px}.open:focus,.open:focus-visible{outline-offset:2px}.open:active{outline:0}.open.extern::after,.open.download::after{content:\"\";display:inline-block;height:1.5em;margin-left:8px;vertical-align:top;width:1.5em}.open:hover{background-color:#39870c;border-color:#39870c;color:#fff}.open:active{background-color:#275937;border-color:#275937;color:#fff}.open[disabled],.open[disabled]:hover{background-color:#fff;border-color:#afcf9d;color:#afcf9d}.open.btn-sm{line-height:16px}.open.btn-sm dso-icon,.open.btn-sm svg.di,.open.btn-sm.extern::after,.open.btn-sm.download::after{margin-bottom:-4px;margin-top:-4px}.open.download::after{background:var(--dso-icon, var(--di-download)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}.open.download:hover::after{--dso-icon:var(--di-download-wit)}.open.download[disabled]::after{--dso-icon:var(--di-download-grasgroen-40)}.open.extern::after{background:var(--dso-icon, var(--di-external-link)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}.open.extern:hover::after{--dso-icon:var(--di-external-link-wit)}.open.extern[disabled]::after{--dso-icon:var(--di-external-link-grasgroen-40)}.open>span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.dimmer{position:fixed;top:0;left:0;right:0;bottom:0;z-index:19;display:flex;padding:32px;background-color:rgba(255, 255, 255, 0.8);justify-content:center}.wrapper{box-shadow:0 8px 24px 0 rgba(25, 25, 25, 0.4);position:relative;z-index:20;align-self:center;line-height:0}.wrapper img{width:auto;height:auto;max-width:100%;max-height:calc(100vh - 64px)}.close{display:inline-block;font-size:1em;font-weight:500;margin-bottom:0;text-decoration:none;touch-action:manipulation;text-align:left;user-select:none;vertical-align:middle;background-color:#fff;border-color:#39870c;color:#39870c;border-width:1px;border-style:solid;border-radius:4px;line-height:1.5;min-width:56px;padding:11px 15px;border:0;box-shadow:0 1px 4px 0 rgba(0, 0, 0, 0.5);min-width:auto;padding:8px;position:absolute;top:16px;right:16px}.close:focus,.close:focus-visible{outline-offset:2px}.close:active{outline:0}.close.extern::after,.close.download::after{content:\"\";display:inline-block;height:1.5em;margin-left:8px;vertical-align:top;width:1.5em}.close:hover{background-color:#39870c;border-color:#39870c;color:#fff}.close:active{background-color:#275937;border-color:#275937;color:#fff}.close[disabled],.close[disabled]:hover{background-color:#fff;border-color:#afcf9d;color:#afcf9d}.close.btn-sm{line-height:16px}.close.btn-sm dso-icon,.close.btn-sm svg.di,.close.btn-sm.extern::after,.close.btn-sm.download::after{margin-bottom:-4px;margin-top:-4px}.close.download::after{background:var(--dso-icon, var(--di-download)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}.close.download:hover::after{--dso-icon:var(--di-download-wit)}.close.download[disabled]::after{--dso-icon:var(--di-download-grasgroen-40)}.close.extern::after{background:var(--dso-icon, var(--di-external-link)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}.close.extern:hover::after{--dso-icon:var(--di-external-link-wit)}.close.extern[disabled]::after{--dso-icon:var(--di-external-link-grasgroen-40)}.close>span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}";
3045
3257
 
3046
3258
  let ImageOverlay = class extends HTMLElement {
3047
3259
  constructor() {
3048
3260
  super();
3049
3261
  this.__registerHost();
3050
- attachShadow(this);
3262
+ this.__attachShadow();
3051
3263
  this.active = false;
3052
3264
  this.focused = false;
3053
3265
  }
@@ -3102,7 +3314,7 @@ let Info = class extends HTMLElement {
3102
3314
  constructor() {
3103
3315
  super();
3104
3316
  this.__registerHost();
3105
- attachShadow(this);
3317
+ this.__attachShadow();
3106
3318
  this.close = createEvent(this, "close", 7);
3107
3319
  }
3108
3320
  render() {
@@ -3117,7 +3329,7 @@ let InfoButton = class extends HTMLElement {
3117
3329
  constructor() {
3118
3330
  super();
3119
3331
  this.__registerHost();
3120
- attachShadow(this);
3332
+ this.__attachShadow();
3121
3333
  this.toggle = createEvent(this, "toggle", 7);
3122
3334
  this.label = 'Toelichting bij optie';
3123
3335
  }
@@ -3137,7 +3349,7 @@ let Label = class extends HTMLElement {
3137
3349
  constructor() {
3138
3350
  super();
3139
3351
  this.__registerHost();
3140
- attachShadow(this);
3352
+ this.__attachShadow();
3141
3353
  this.removeClick = createEvent(this, "removeClick", 7);
3142
3354
  }
3143
3355
  render() {
@@ -3159,7 +3371,7 @@ let MapBaseLayers = class extends HTMLElement {
3159
3371
  constructor() {
3160
3372
  super();
3161
3373
  this.__registerHost();
3162
- attachShadow(this);
3374
+ this.__attachShadow();
3163
3375
  this.baseLayerChange = createEvent(this, "baseLayerChange", 7);
3164
3376
  this.selectableRefs = {};
3165
3377
  }
@@ -3188,54 +3400,57 @@ let MapBaseLayers = class extends HTMLElement {
3188
3400
 
3189
3401
  const mapControlsCss = "button{-webkit-appearance:button;color:inherit;cursor:pointer;font:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible;text-transform:none}button[disabled]{cursor:default}button::-moz-focus-inner{border:0;padding:0}:host{background-color:#fff;border:1px solid #ccc;bottom:0;display:block;font-family:Asap, sans-serif;position:absolute;top:0;left:100%;transition:transform 300ms ease;width:300px}*,*::after,*::before{box-sizing:border-box}:host([open]){box-shadow:0 1px 4px 0 rgba(0, 0, 0, 0.3);transform:translateX(-100%)}:host([open]) #toggle-visibility-button{display:none}#toggle-visibility-button{display:inline-block;font-size:1em;font-weight:500;margin-bottom:0;text-decoration:none;touch-action:manipulation;text-align:left;user-select:none;vertical-align:middle;background-color:#fff;border-color:#39870c;color:#39870c;border-width:1px;border-style:solid;border-radius:4px;line-height:1.5;min-width:56px;padding:11px 15px;border:0;box-shadow:0 1px 4px 0 rgba(0, 0, 0, 0.5);font-weight:600;margin-right:16px;padding:8px 16px;white-space:nowrap;position:absolute;right:calc(100% + 56px);top:16px}#toggle-visibility-button:focus,#toggle-visibility-button:focus-visible{outline-offset:2px}#toggle-visibility-button:active{outline:0}#toggle-visibility-button.extern::after,#toggle-visibility-button.download::after{content:\"\";display:inline-block;height:1.5em;margin-left:8px;vertical-align:top;width:1.5em}#toggle-visibility-button:hover{background-color:#39870c;border-color:#39870c;color:#fff}#toggle-visibility-button:active{background-color:#275937;border-color:#275937;color:#fff}#toggle-visibility-button[disabled],#toggle-visibility-button[disabled]:hover{background-color:#fff;border-color:#afcf9d;color:#afcf9d}#toggle-visibility-button.btn-sm{line-height:16px}#toggle-visibility-button.btn-sm dso-icon,#toggle-visibility-button.btn-sm svg.di,#toggle-visibility-button.btn-sm.extern::after,#toggle-visibility-button.btn-sm.download::after{margin-bottom:-4px;margin-top:-4px}#toggle-visibility-button.download::after{background:var(--dso-icon, var(--di-download)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}#toggle-visibility-button.download:hover::after{--dso-icon:var(--di-download-wit)}#toggle-visibility-button.download[disabled]::after{--dso-icon:var(--di-download-grasgroen-40)}#toggle-visibility-button.extern::after{background:var(--dso-icon, var(--di-external-link)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}#toggle-visibility-button.extern:hover::after{--dso-icon:var(--di-external-link-wit)}#toggle-visibility-button.extern[disabled]::after{--dso-icon:var(--di-external-link-grasgroen-40)}#toggle-visibility-button dso-icon,#toggle-visibility-button svg.di{margin-left:-8px;margin-right:8px}#toggle-visibility-button span+dso-icon,#toggle-visibility-button span+svg.di{margin-left:8px;margin-right:-8px}#toggle-visibility-button:focus-visible{background-color:#39870c;border-color:#39870c;color:#fff;outline:none}#zoom-buttons{border-radius:4px;box-shadow:0 1px 4px 0 rgba(0, 0, 0, 0.5);display:flex;flex-wrap:wrap;flex:0 0;position:absolute;right:calc(100% + 16px);top:16px}#zoom-buttons button{display:inline-block;font-size:1em;font-weight:500;margin-bottom:0;text-decoration:none;touch-action:manipulation;text-align:left;user-select:none;vertical-align:middle;background-color:#fff;border-color:#39870c;color:#39870c;border-width:1px;border-style:solid;border-radius:4px;line-height:1.5;min-width:56px;padding:11px 15px;border:0;padding:8px;border-radius:0;border-top-left-radius:4px;border-top-right-radius:4px;flex:0 0 100%;height:40px;min-width:auto;width:40px}#zoom-buttons button:focus,#zoom-buttons button:focus-visible{outline-offset:2px}#zoom-buttons button:active{outline:0}#zoom-buttons button.extern::after,#zoom-buttons button.download::after{content:\"\";display:inline-block;height:1.5em;margin-left:8px;vertical-align:top;width:1.5em}#zoom-buttons button:hover{background-color:#39870c;border-color:#39870c;color:#fff}#zoom-buttons button:active{background-color:#275937;border-color:#275937;color:#fff}#zoom-buttons button[disabled],#zoom-buttons button[disabled]:hover{background-color:#fff;border-color:#afcf9d;color:#afcf9d}#zoom-buttons button.btn-sm{line-height:16px}#zoom-buttons button.btn-sm dso-icon,#zoom-buttons button.btn-sm svg.di,#zoom-buttons button.btn-sm.extern::after,#zoom-buttons button.btn-sm.download::after{margin-bottom:-4px;margin-top:-4px}#zoom-buttons button.download::after{background:var(--dso-icon, var(--di-download)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}#zoom-buttons button.download:hover::after{--dso-icon:var(--di-download-wit)}#zoom-buttons button.download[disabled]::after{--dso-icon:var(--di-download-grasgroen-40)}#zoom-buttons button.extern::after{background:var(--dso-icon, var(--di-external-link)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}#zoom-buttons button.extern:hover::after{--dso-icon:var(--di-external-link-wit)}#zoom-buttons button.extern[disabled]::after{--dso-icon:var(--di-external-link-grasgroen-40)}#zoom-buttons button>span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}#zoom-buttons button:focus-visible{background-color:#39870c;border-color:#39870c;color:#fff;outline:none}#zoom-buttons button+button{border-radius:0;border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-top:1px solid #ccc}#close-button{display:inline-block;font-size:1em;font-weight:500;margin-bottom:0;text-decoration:none;touch-action:manipulation;text-align:left;user-select:none;vertical-align:middle;border:0;color:#39870c;line-height:1;padding:0;background-color:transparent;padding:0;position:absolute;right:16px;top:16px}#close-button:focus,#close-button:focus-visible{outline-offset:2px}#close-button:active{outline:0}#close-button.extern::after,#close-button.download::after{content:\"\";display:inline-block;height:1.5em;margin-left:8px;vertical-align:top;width:1.5em}#close-button[disabled]{color:#afcf9d}#close-button:not([disabled]):hover{color:#676cb0;text-decoration:underline}#close-button:not([disabled]):active{color:#676cb0}#close-button.btn-align{line-height:calc(1.5em - 1px);padding:11px 0;position:relative}#close-button.extern::after,#close-button.download::after{position:relative;top:-2px}#close-button.download::after{background:var(--dso-icon, var(--di-download)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}#close-button.download[disabled]::after{--dso-icon:var(--di-download-grasgroen-40)}#close-button.download:not([disabled]):hover::after,#close-button.download:not([disabled]):active::after{--dso-icon:var(--di-download-scampi)}#close-button.extern::after{background:var(--dso-icon, var(--di-external-link)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}#close-button.extern[disabled]::after{--dso-icon:var(--di-external-link-grasgroen-40)}#close-button.extern:not([disabled]):hover::after,#close-button.extern:not([disabled]):active::after{--dso-icon:var(--di-external-link-scampi)}#close-button>span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}section{display:flex;flex-direction:column;height:100%}header,.content{padding:16px}header{border-bottom:1px solid #ccc;flex-grow:0;position:relative}header h2{color:#275937;font-family:\"Asap\", sans-serif;line-height:1;margin:0}.content{flex-grow:1;overflow-y:auto}";
3190
3402
 
3191
- var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, privateMap) {
3192
- if (!privateMap.has(receiver)) {
3193
- throw new TypeError("attempted to get private field on non-instance");
3194
- }
3195
- return privateMap.get(receiver);
3403
+ var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3404
+ if (kind === "a" && !f)
3405
+ throw new TypeError("Private accessor was defined without a getter");
3406
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
3407
+ throw new TypeError("Cannot read private member from an object whose class did not declare it");
3408
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
3196
3409
  };
3197
- var __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, privateMap, value) {
3198
- if (!privateMap.has(receiver)) {
3199
- throw new TypeError("attempted to set private field on non-instance");
3200
- }
3201
- privateMap.set(receiver, value);
3202
- return value;
3410
+ var __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3411
+ if (kind === "m")
3412
+ throw new TypeError("Private method is not writable");
3413
+ if (kind === "a" && !f)
3414
+ throw new TypeError("Private accessor was defined without a setter");
3415
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
3416
+ throw new TypeError("Cannot write private member to an object whose class did not declare it");
3417
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
3203
3418
  };
3204
- var _closeButtonElement, _toggleButtonElement;
3419
+ var _MapControls_closeButtonElement, _MapControls_toggleButtonElement;
3205
3420
  const transitionDuration$1 = 300; // Sync with $transition-duration in ./map-controls.scss
3206
3421
  let MapControls = class extends HTMLElement {
3207
3422
  constructor() {
3208
3423
  super();
3209
3424
  this.__registerHost();
3210
- attachShadow(this);
3425
+ this.__attachShadow();
3211
3426
  this.zoomIn = createEvent(this, "zoomIn", 7);
3212
3427
  this.zoomOut = createEvent(this, "zoomOut", 7);
3213
3428
  this.open = false;
3214
3429
  this.hideContent = !this.open;
3215
- _closeButtonElement.set(this, void 0);
3216
- _toggleButtonElement.set(this, void 0);
3430
+ _MapControls_closeButtonElement.set(this, void 0);
3431
+ _MapControls_toggleButtonElement.set(this, void 0);
3217
3432
  }
3218
3433
  watchOpen(open) {
3219
3434
  if (open) {
3220
3435
  this.hideContent = false;
3221
- setTimeout(() => __classPrivateFieldGet(this, _closeButtonElement).focus(), transitionDuration$1);
3436
+ setTimeout(() => __classPrivateFieldGet(this, _MapControls_closeButtonElement, "f").focus(), transitionDuration$1);
3222
3437
  }
3223
3438
  else {
3224
3439
  setTimeout(() => {
3225
3440
  this.hideContent = true;
3226
- __classPrivateFieldGet(this, _toggleButtonElement).focus();
3441
+ __classPrivateFieldGet(this, _MapControls_toggleButtonElement, "f").focus();
3227
3442
  }, transitionDuration$1);
3228
3443
  }
3229
3444
  }
3230
3445
  render() {
3231
- return (h(Host, null, h("button", { type: "button", id: "toggle-visibility-button", onClick: () => this.open = !this.open, ref: element => __classPrivateFieldSet(this, _toggleButtonElement, element) }, h("dso-icon", { icon: "layers" }), h("span", null, "Kaartlagen")), h("div", { id: "zoom-buttons" }, h("button", { type: "button", onClick: e => this.zoomIn.emit(e), disabled: this.disableZoom === 'in' || this.disableZoom === 'both' }, h("span", null, "Zoom in"), h("dso-icon", { icon: "plus" })), h("button", { type: "button", onClick: e => this.zoomOut.emit(e), disabled: this.disableZoom === 'out' || this.disableZoom === 'both' }, h("span", null, "Zoom uit"), h("dso-icon", { icon: "minus" }))), h("section", { hidden: this.hideContent }, h("header", null, h("h2", null, "Kaartlagen"), h("button", { type: "button", id: "close-button", onClick: () => this.open = false, ref: element => __classPrivateFieldSet(this, _closeButtonElement, element) }, h("span", null, "Sluit dialoog"), h("dso-icon", { icon: "times" }))), h("div", { class: "content" }, h("slot", null)))));
3446
+ return (h(Host, null, h("button", { type: "button", id: "toggle-visibility-button", onClick: () => this.open = !this.open, ref: element => __classPrivateFieldSet(this, _MapControls_toggleButtonElement, element, "f") }, h("dso-icon", { icon: "layers" }), h("span", null, "Kaartlagen")), h("div", { id: "zoom-buttons" }, h("button", { type: "button", onClick: e => this.zoomIn.emit(e), disabled: this.disableZoom === 'in' || this.disableZoom === 'both' }, h("span", null, "Zoom in"), h("dso-icon", { icon: "plus" })), h("button", { type: "button", onClick: e => this.zoomOut.emit(e), disabled: this.disableZoom === 'out' || this.disableZoom === 'both' }, h("span", null, "Zoom uit"), h("dso-icon", { icon: "minus" }))), h("section", { hidden: this.hideContent }, h("header", null, h("h2", null, "Kaartlagen"), h("button", { type: "button", id: "close-button", onClick: () => this.open = false, ref: element => __classPrivateFieldSet(this, _MapControls_closeButtonElement, element, "f") }, h("span", null, "Sluit dialoog"), h("dso-icon", { icon: "times" }))), h("div", { class: "content" }, h("slot", null)))));
3232
3447
  }
3233
3448
  static get watchers() { return {
3234
3449
  "open": ["watchOpen"]
3235
3450
  }; }
3236
3451
  static get style() { return mapControlsCss; }
3237
3452
  };
3238
- _closeButtonElement = new WeakMap(), _toggleButtonElement = new WeakMap();
3453
+ _MapControls_closeButtonElement = new WeakMap(), _MapControls_toggleButtonElement = new WeakMap();
3239
3454
 
3240
3455
  const mapOverlaysCss = ":host{display:block}*,*::after,*::before{box-sizing:border-box}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}fieldset{border:0;margin:0;min-width:0;padding:0}fieldset .control-label{display:inline-block;font-weight:bold;margin-bottom:8px;max-width:100%;text-align:left}p[slot=info]{margin:0}";
3241
3456
 
@@ -3243,7 +3458,7 @@ let MapOverlays = class extends HTMLElement {
3243
3458
  constructor() {
3244
3459
  super();
3245
3460
  this.__registerHost();
3246
- attachShadow(this);
3461
+ this.__attachShadow();
3247
3462
  this.toggleOverlay = createEvent(this, "toggleOverlay", 7);
3248
3463
  this.selectableRefs = {};
3249
3464
  }
@@ -3271,12 +3486,22 @@ let MapOverlays = class extends HTMLElement {
3271
3486
  static get style() { return mapOverlaysCss; }
3272
3487
  };
3273
3488
 
3489
+ function getNodeName$1(node) {
3490
+ if (node instanceof Element) {
3491
+ return node.localName;
3492
+ }
3493
+ if (node.nodeName.includes(':')) {
3494
+ return node.nodeName.substring(node.nodeName.indexOf(':') + 1);
3495
+ }
3496
+ return node.nodeName;
3497
+ }
3498
+
3274
3499
  class OzonContentAlNode {
3275
3500
  constructor() {
3276
3501
  this.name = 'Al';
3277
3502
  }
3278
3503
  render(node, { mapNodeToJsx, path }) {
3279
- const nestedAl = path.some(node => node.nodeName === 'Al');
3504
+ const nestedAl = path.some(node => getNodeName$1(node) === 'Al');
3280
3505
  const content = mapNodeToJsx(node.childNodes);
3281
3506
  return nestedAl
3282
3507
  ? h("span", { role: "paragraph" }, content)
@@ -3387,25 +3612,24 @@ class OzonContentNootNode {
3387
3612
  this.name = 'Noot';
3388
3613
  this.handles = ['NootNummer'];
3389
3614
  }
3390
- identify(node) {
3391
- var _a;
3392
- return (_a = node.getAttribute("id")) !== null && _a !== void 0 ? _a : undefined;
3615
+ identify() {
3616
+ return 'Noot';
3393
3617
  }
3394
- render(node, { mapNodeToJsx, state: noteIsOpen, setState }) {
3618
+ render(node, { mapNodeToJsx, state: openNoteId, setState }) {
3395
3619
  var _a, _b;
3396
- const noteId = (_a = node.getAttribute('id')) !== null && _a !== void 0 ? _a : undefined;
3397
- const noteControlsId = noteId && `dso-ozon-note-${noteId}`;
3398
- const noteHref = noteId && `#${noteControlsId}`;
3620
+ const noteId = node.getAttribute('id');
3621
+ if (!noteId) {
3622
+ console.error('Noot node without id', node);
3623
+ return h(Fragment, null);
3624
+ }
3625
+ const noteControlsId = `dso-ozon-note-${noteId}`;
3399
3626
  const childNodes = Array.from(node.childNodes);
3400
- const nootNummer = (_b = childNodes.find(n => n.nodeName === 'NootNummer')) === null || _b === void 0 ? void 0 : _b.textContent;
3401
- const onClickNote = (event) => {
3402
- event.preventDefault();
3403
- setState === null || setState === void 0 ? void 0 : setState(!noteIsOpen);
3404
- };
3627
+ const nootNummer = (_b = (_a = childNodes.find(n => getNodeName$1(n) === 'NootNummer')) === null || _a === void 0 ? void 0 : _a.textContent) !== null && _b !== void 0 ? _b : noteId;
3405
3628
  return (h(Fragment, null,
3406
- h("a", { class: { noot: true, "dso-open": !!noteIsOpen }, href: noteHref, "aria-controls": noteControlsId, "aria-expanded": noteIsOpen ? "true" : "false", onClick: onClickNote },
3407
- h("sup", null, nootNummer)),
3408
- h("span", { id: noteControlsId, role: "section" }, mapNodeToJsx(Array.from(node.querySelectorAll(':scope > Al'))))));
3629
+ h("sup", null,
3630
+ h("button", { type: "button", class: "toggle-note", id: noteControlsId, onClick: () => setState === null || setState === void 0 ? void 0 : setState(openNoteId === noteId ? undefined : noteId), onBlur: () => setState === null || setState === void 0 ? void 0 : setState(undefined), "aria-expanded": openNoteId === noteId ? 'true' : 'false' }, nootNummer)),
3631
+ h("dso-tooltip", { active: openNoteId === noteId, for: noteControlsId, stateless: true },
3632
+ h("span", { role: "section" }, mapNodeToJsx(Array.from(node.querySelectorAll(':scope > Al')))))));
3409
3633
  }
3410
3634
  }
3411
3635
 
@@ -3526,7 +3750,7 @@ class OzonContentFallbackNode {
3526
3750
  this.name = ['<fallback>'];
3527
3751
  }
3528
3752
  render(node, { mapNodeToJsx }) {
3529
- return (h("span", { class: `fallback od-${node instanceof Element ? node.localName : node.nodeName}` }, mapNodeToJsx(node.childNodes)));
3753
+ return (h("span", { class: `fallback od-${getNodeName$1(node)}` }, mapNodeToJsx(node.childNodes)));
3530
3754
  }
3531
3755
  }
3532
3756
 
@@ -3566,25 +3790,28 @@ class Mapper {
3566
3790
  })) !== null && _a !== void 0 ? _a : this.fallbackNode;
3567
3791
  }
3568
3792
  mapNodeToJsx(node, context, path) {
3569
- var _a, _b;
3793
+ var _a;
3570
3794
  if (node instanceof NodeList) {
3571
3795
  return h(Fragment, null, Array.from(node).map(n => this.mapNodeToJsx(n, context, path)));
3572
3796
  }
3573
3797
  if (Array.isArray(node)) {
3574
3798
  return h(Fragment, null, node.map(n => this.mapNodeToJsx(n, context, path)));
3575
3799
  }
3576
- const nodeName = node instanceof Element ? node.localName : node.nodeName;
3800
+ const nodeName = getNodeName$1(node);
3577
3801
  const mapper = this.findMapper(nodeName);
3578
- const identity = (_a = mapper === null || mapper === void 0 ? void 0 : mapper.identify) === null || _a === void 0 ? void 0 : _a.call(mapper, node);
3802
+ if (!mapper) {
3803
+ return h(Fragment, null);
3804
+ }
3805
+ const identity = (_a = mapper.identify) === null || _a === void 0 ? void 0 : _a.call(mapper, node);
3579
3806
  const state = identity ? context.state[identity] : undefined;
3580
3807
  const setState = identity ? (state) => context.setState(Object.assign(Object.assign({}, context.state), { [identity]: state })) : undefined;
3581
- return (_b = mapper === null || mapper === void 0 ? void 0 : mapper.render(node, {
3808
+ return mapper.render(node, {
3582
3809
  mapNodeToJsx: n => this.mapNodeToJsx(n, context, [...path, node]),
3583
3810
  emitAnchorClick: context.emitAnchorClick,
3584
3811
  setState,
3585
3812
  state,
3586
3813
  path
3587
- })) !== null && _b !== void 0 ? _b : h(Fragment, null);
3814
+ });
3588
3815
  }
3589
3816
  transform(xml, context) {
3590
3817
  if (!this.cache || this.cache.xml !== xml) {
@@ -3595,7 +3822,7 @@ class Mapper {
3595
3822
  }
3596
3823
  }
3597
3824
 
3598
- const ozonContentCss = ".sc-dso-ozon-content-h{display:block}.noot.sc-dso-ozon-content{text-decoration:none}.noot.sc-dso-ozon-content:not(.dso-open)+*.sc-dso-ozon-content{display:none}.noot.dso-open.sc-dso-ozon-content+*.sc-dso-ozon-content{display:block}.noot.sc-dso-ozon-content+*.sc-dso-ozon-content{margin:4px 0;padding:8px 32px 8px 8px;position:relative}.noot.sc-dso-ozon-content+*.sc-dso-ozon-content>a.sc-dso-ozon-content{display:block;height:24px;position:absolute;right:0;text-align:center;top:0;width:24px}.noot.sc-dso-ozon-content+*.sc-dso-ozon-content>a.sc-dso-ozon-content::before{background:var(--dso-icon, var(--di-times-zwart)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em;content:\"\";display:block}.noot.sc-dso-ozon-content+*.sc-dso-ozon-content{background-color:#ebf3e6}span[role=paragraph].sc-dso-ozon-content{display:block}.fallback.sc-dso-ozon-content{display:block}.od-Term.sc-dso-ozon-content{font-weight:700}.od-Definitie.sc-dso-ozon-content,.od-Tussenkop.sc-dso-ozon-content{font-style:italic}.od-Inhoud.sc-dso-ozon-content,.od-Inhoud.sc-dso-ozon-content>.od-Lijst.sc-dso-ozon-content,.od-IntIoRef.sc-dso-ozon-content,.od-Lidnr.sc-dso-ozon-content,.od-LiNr.sc-dso-ozon-content,.od-Opschrift.sc-dso-ozon-content,.od-Tussenkop.sc-dso-ozon-content{display:inline}.od-Al.sc-dso-ozon-content,.od-Lijstaanhef.sc-dso-ozon-content{margin-bottom:0.75em}.od-IntIoRef.sc-dso-ozon-content{border-bottom:1px dotted}.od-LiNummer.sc-dso-ozon-content{float:left;min-width:0.7em;padding-right:0.3em;text-align:right}.od-Figuur.sc-dso-ozon-content img.sc-dso-ozon-content{margin-left:25px;max-width:100%;height:auto}.od-Figuur.sc-dso-ozon-content .od-Bijschrift.sc-dso-ozon-content{font-size:0.75rem;margin-left:25px;padding-bottom:2.5rem}.od-Tabel.sc-dso-ozon-content thead.sc-dso-ozon-content{font-weight:600}.od-Kadertekst.sc-dso-ozon-content{border:1px solid #e5e5e5;margin-bottom:1rem;padding:1rem}";
3825
+ const ozonContentCss = ".sc-dso-ozon-content-h{display:block}button.toggle-note.sc-dso-ozon-content{display:inline-block;font-size:1em;font-weight:500;margin-bottom:0;text-decoration:none;touch-action:manipulation;text-align:left;user-select:none;vertical-align:middle;border:0;color:#39870c;line-height:1;padding:0;background-color:transparent}button.toggle-note.sc-dso-ozon-content:focus,button.toggle-note.sc-dso-ozon-content:focus-visible{outline-offset:2px}button.toggle-note.sc-dso-ozon-content:active{outline:0}button.toggle-note.extern.sc-dso-ozon-content::after,button.toggle-note.download.sc-dso-ozon-content::after{content:\"\";display:inline-block;height:1.5em;margin-left:8px;vertical-align:top;width:1.5em}button.toggle-note[disabled].sc-dso-ozon-content{color:#afcf9d}button.toggle-note.sc-dso-ozon-content:not([disabled]):hover{color:#676cb0;text-decoration:underline}button.toggle-note.sc-dso-ozon-content:not([disabled]):active{color:#676cb0}button.toggle-note.btn-align.sc-dso-ozon-content{line-height:calc(1.5em - 1px);padding:11px 0;position:relative}button.toggle-note.extern.sc-dso-ozon-content::after,button.toggle-note.download.sc-dso-ozon-content::after{position:relative;top:-2px}button.toggle-note.download.sc-dso-ozon-content::after{background:var(--dso-icon, var(--di-download)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}button.toggle-note.download[disabled].sc-dso-ozon-content::after{--dso-icon:var(--di-download-grasgroen-40)}button.toggle-note.download.sc-dso-ozon-content:not([disabled]):hover::after,button.toggle-note.download.sc-dso-ozon-content:not([disabled]):active::after{--dso-icon:var(--di-download-scampi)}button.toggle-note.extern.sc-dso-ozon-content::after{background:var(--dso-icon, var(--di-external-link)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}button.toggle-note.extern[disabled].sc-dso-ozon-content::after{--dso-icon:var(--di-external-link-grasgroen-40)}button.toggle-note.extern.sc-dso-ozon-content:not([disabled]):hover::after,button.toggle-note.extern.sc-dso-ozon-content:not([disabled]):active::after{--dso-icon:var(--di-external-link-scampi)}button.toggle-note.sc-dso-ozon-content dso-icon.sc-dso-ozon-content+span.sc-dso-ozon-content:not(.sr-only),button.toggle-note.sc-dso-ozon-content svg.di.sc-dso-ozon-content+span.sc-dso-ozon-content:not(.sr-only),button.toggle-note.sc-dso-ozon-content span.sc-dso-ozon-content:not(.sr-only)+dso-icon.sc-dso-ozon-content,button.toggle-note.sc-dso-ozon-content span.sc-dso-ozon-content:not(.sr-only)+svg.di.sc-dso-ozon-content{margin-left:8px}button.toggle-note.sc-dso-ozon-content dso-icon.sc-dso-ozon-content,button.toggle-note.sc-dso-ozon-content svg.di.sc-dso-ozon-content,button.toggle-note.sc-dso-ozon-content span.sc-dso-ozon-content{vertical-align:middle}span[role=section].sc-dso-ozon-content,span[role=paragraph].sc-dso-ozon-content{display:block}.fallback.sc-dso-ozon-content{display:block}.od-Term.sc-dso-ozon-content{font-weight:700}.od-Definitie.sc-dso-ozon-content,.od-Tussenkop.sc-dso-ozon-content{font-style:italic}.od-Inhoud.sc-dso-ozon-content,.od-Inhoud.sc-dso-ozon-content>.od-Lijst.sc-dso-ozon-content,.od-IntIoRef.sc-dso-ozon-content,.od-Lidnr.sc-dso-ozon-content,.od-LiNr.sc-dso-ozon-content,.od-Opschrift.sc-dso-ozon-content,.od-Tussenkop.sc-dso-ozon-content{display:inline}.od-Al.sc-dso-ozon-content,.od-Lijstaanhef.sc-dso-ozon-content{margin-bottom:0.75em}.od-IntIoRef.sc-dso-ozon-content{border-bottom:1px dotted}.od-LiNummer.sc-dso-ozon-content{float:left;min-width:0.7em;padding-right:0.3em;text-align:right}.od-Figuur.sc-dso-ozon-content img.sc-dso-ozon-content{margin-left:25px;max-width:100%;height:auto}.od-Figuur.sc-dso-ozon-content .od-Bijschrift.sc-dso-ozon-content{font-size:0.75rem;margin-left:25px;padding-bottom:2.5rem}.od-Tabel.sc-dso-ozon-content thead.sc-dso-ozon-content{font-weight:600}.od-Kadertekst.sc-dso-ozon-content{border:1px solid #e5e5e5;margin-bottom:1rem;padding:1rem}";
3599
3826
 
3600
3827
  let OzonContent = class extends HTMLElement {
3601
3828
  constructor() {
@@ -3623,7 +3850,7 @@ let ProgressBar = class extends HTMLElement {
3623
3850
  constructor() {
3624
3851
  super();
3625
3852
  this.__registerHost();
3626
- attachShadow(this);
3853
+ this.__attachShadow();
3627
3854
  this.min = 0;
3628
3855
  this.max = 100;
3629
3856
  }
@@ -3641,7 +3868,7 @@ let Progressindicator = class extends HTMLElement {
3641
3868
  constructor() {
3642
3869
  super();
3643
3870
  this.__registerHost();
3644
- attachShadow(this);
3871
+ this.__attachShadow();
3645
3872
  }
3646
3873
  render() {
3647
3874
  var _a;
@@ -3656,13 +3883,13 @@ let Progressindicator = class extends HTMLElement {
3656
3883
  static get style() { return progressIndicatorCss; }
3657
3884
  };
3658
3885
 
3659
- const selectableCss = ":host{display:block;padding:0 0 0 32px;position:relative}:host .dso-selectable-options{list-style:none;margin-top:8px;padding-left:0}:host .dso-selectable-options li+li{margin-top:8px}:host label{font-weight:400;line-height:24px;margin:0}:host input[type=checkbox][disabled]+label::before,:host input[type=checkbox][disabled]:active+label::before,:host input[type=checkbox][disabled]:focus+label::before,:host input[type=radio][disabled]+label::before,:host input[type=radio][disabled]:active+label::before,:host input[type=radio][disabled]:focus+label::before{background-color:#fff;box-shadow:0 0 0 2px #e5e5e5}:host input[type=checkbox],:host input[type=radio]{height:24px;left:0;margin:0;opacity:0;position:absolute;top:0;width:24px;z-index:1;zoom:1}:host input[type=checkbox]:not([disabled]),:host input[type=radio]:not([disabled]){cursor:pointer}:host input[type=checkbox]+label,:host input[type=radio]+label{display:inline;font-style:normal;padding-left:0}:host input[type=checkbox]+label::before,:host input[type=radio]+label::before{background:#fff;border:0;box-shadow:0 0 0 2px var(--dso-selectable-color, #275937);content:\"\";height:20px;left:2px;position:absolute;top:2px;width:20px}:host input[type=checkbox]:focus,:host input[type=radio]:focus{outline:0}:host input[type=checkbox]:focus+label::before,:host input[type=radio]:focus+label::before{box-shadow:0 0 0 3px var(--dso-selectable-color, #275937);height:18px;left:3px;top:3px;width:18px}:host input[type=checkbox]:active+label::before,:host input[type=checkbox].active+label::before,:host input[type=radio]:active+label::before,:host input[type=radio].active+label::before{background-color:#ebf3e6;box-shadow:0 0 0 1px #275937;height:22px;left:1px;top:1px;width:22px}:host input[type=checkbox]+label::before{border-radius:4px}:host input[type=checkbox]+label::after{background:transparent;content:\"\";left:6px;opacity:0;position:absolute;top:6px;zoom:1}:host input[type=checkbox]:checked+label::after,:host input[type=checkbox]:indeterminate+label::after{opacity:1}:host input[type=checkbox]:checked+label::after{border:solid;border-color:var(--dso-selectable-color, #39870c);border-top-color:transparent;border-width:0 0 3px 3px;height:8px;transform:rotate(-45deg);width:13px}:host input[type=checkbox]:indeterminate+label::after{background-color:var(--dso-selectable-color, #39870c);height:12px;width:12px}:host input[type=radio]+label::before{border-radius:50%}:host input[type=radio]+label::after{background-color:transparent;border-radius:50%;content:\"\";height:12px;left:6px;opacity:0;position:absolute;top:6px;width:12px;zoom:1}:host input[type=radio]:checked+label::after{background-color:var(--dso-selectable-color, #39870c);opacity:1}:host>dso-info{float:none;margin:8px 16px 0 -32px;width:calc(100% + 32px)}:host(:not(:last-child)){margin-bottom:8px}*,*::after,*::before{box-sizing:border-box}";
3886
+ const selectableCss = ":host{display:block;padding:0 0 0 32px;position:relative}:host .dso-selectable-options{list-style:none;margin-top:8px;padding-left:0}:host .dso-selectable-options li+li{margin-top:8px}:host label{font-weight:400;line-height:24px;margin:0}:host input[type=checkbox][disabled]+label::before,:host input[type=checkbox][disabled]:active+label::before,:host input[type=checkbox][disabled]:focus+label::before,:host input[type=radio][disabled]+label::before,:host input[type=radio][disabled]:active+label::before,:host input[type=radio][disabled]:focus+label::before{background-color:#fff;box-shadow:0 0 0 2px #e5e5e5}:host input[type=checkbox],:host input[type=radio]{height:24px;left:0;margin:0;opacity:0;position:absolute;top:0;width:24px;z-index:100;zoom:1}@media (prefers-contrast: more){:host input[type=checkbox],:host input[type=radio]{opacity:1}}:host input[type=checkbox]:not([disabled]),:host input[type=radio]:not([disabled]){cursor:pointer}:host input[type=checkbox]+label,:host input[type=radio]+label{display:inline;font-style:normal;padding-left:0}:host input[type=checkbox]+label::before,:host input[type=radio]+label::before{background:#fff;border:0;box-shadow:0 0 0 2px var(--dso-selectable-color, #275937);content:\"\";height:20px;left:2px;position:absolute;top:2px;width:20px}:host input[type=checkbox]:focus,:host input[type=radio]:focus{outline:0}:host input[type=checkbox]:focus+label::before,:host input[type=radio]:focus+label::before{box-shadow:0 0 0 3px var(--dso-selectable-color, #275937);height:18px;left:3px;top:3px;width:18px}:host input[type=checkbox]:active+label::before,:host input[type=checkbox].active+label::before,:host input[type=radio]:active+label::before,:host input[type=radio].active+label::before{background-color:#ebf3e6;box-shadow:0 0 0 1px #275937;height:22px;left:1px;top:1px;width:22px}:host input[type=checkbox]+label::before{border-radius:4px}:host input[type=checkbox]+label::after{background:transparent;content:\"\";left:6px;opacity:0;position:absolute;top:6px;zoom:1}:host input[type=checkbox]:checked+label::after,:host input[type=checkbox]:indeterminate+label::after{opacity:1}:host input[type=checkbox]:checked+label::after{border:solid;border-color:var(--dso-selectable-color, #39870c);border-top-color:transparent;border-width:0 0 3px 3px;height:8px;transform:rotate(-45deg);width:13px}:host input[type=checkbox]:indeterminate+label::after{background-color:var(--dso-selectable-color, #39870c);height:12px;width:12px}:host input[type=radio]+label::before{border-radius:50%}:host input[type=radio]+label::after{background-color:transparent;border-radius:50%;content:\"\";height:12px;left:6px;opacity:0;position:absolute;top:6px;width:12px;zoom:1}:host input[type=radio]:checked+label::after{background-color:var(--dso-selectable-color, #39870c);opacity:1}:host>dso-info{float:none;margin:8px 16px 0 -32px;width:calc(100% + 32px)}:host(:not(:last-child)){margin-bottom:8px}*,*::after,*::before{box-sizing:border-box}";
3660
3887
 
3661
3888
  let Selectable = class extends HTMLElement {
3662
3889
  constructor() {
3663
3890
  super();
3664
3891
  this.__registerHost();
3665
- attachShadow(this);
3892
+ this.__attachShadow();
3666
3893
  this.change = createEvent(this, "dsoChange", 7);
3667
3894
  this.infoActive = false;
3668
3895
  this.fallbackIdentifier = createIdentifier('DsoSelectable');
@@ -3711,7 +3938,7 @@ let Toggletip = class extends HTMLElement {
3711
3938
  constructor() {
3712
3939
  super();
3713
3940
  this.__registerHost();
3714
- attachShadow(this);
3941
+ this.__attachShadow();
3715
3942
  this.active = false;
3716
3943
  this.label = "Toelichting";
3717
3944
  this.position = "right";
@@ -4063,6 +4290,10 @@ function getContainingBlock(element) {
4063
4290
 
4064
4291
  var currentNode = getParentNode(element);
4065
4292
 
4293
+ if (isShadowRoot(currentNode)) {
4294
+ currentNode = currentNode.host;
4295
+ }
4296
+
4066
4297
  while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {
4067
4298
  var css = getComputedStyle$1(currentNode); // This is non-exhaustive but covers the most common CSS properties that
4068
4299
  // create a containing block.
@@ -4286,7 +4517,7 @@ function mapToStyles(_ref2) {
4286
4517
 
4287
4518
  if (placement === top || (placement === left || placement === right) && variation === end) {
4288
4519
  sideY = bottom;
4289
- var offsetY = isFixed && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]
4520
+ var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]
4290
4521
  offsetParent[heightProp];
4291
4522
  y -= offsetY - popperRect.height;
4292
4523
  y *= gpuAcceleration ? 1 : -1;
@@ -4294,7 +4525,7 @@ function mapToStyles(_ref2) {
4294
4525
 
4295
4526
  if (placement === left || (placement === top || placement === bottom) && variation === end) {
4296
4527
  sideX = right;
4297
- var offsetX = isFixed && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]
4528
+ var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]
4298
4529
  offsetParent[widthProp];
4299
4530
  x -= offsetX - popperRect.width;
4300
4531
  x *= gpuAcceleration ? 1 : -1;
@@ -5580,7 +5811,7 @@ var maxSize = {
5580
5811
  }
5581
5812
  };
5582
5813
 
5583
- const tooltipCss = ":host(.hidden){visibility:hidden}:host-context(dso-toggletip){color:red !important}:host-context(dso-toggletip) *[data-popper-placement=top] .tooltip-arrow{margin-left:3px}:host-context(dso-toggletip) *[data-popper-placement=right] .tooltip-arrow{margin-top:0}:host-context(dso-toggletip) *[data-popper-placement=bottom] .tooltip-arrow{margin-left:3px}:host-context(dso-toggletip) *[data-popper-placement=left]{margin-right:-8px !important}:host-context(dso-toggletip) *[data-popper-placement=left] .tooltip-arrow{margin-top:0}*,*::after,*::before{box-sizing:border-box}.tooltip{font-family:Asap, sans-serif;font-style:normal;font-weight:400;line-height:1.5;line-break:auto;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;display:block;filter:drop-shadow(0 2px 8px rgba(0, 0, 0, 0.4));font-size:14px;opacity:0;position:absolute;transition:opacity 0.15s linear;z-index:1070}.tooltip.in{opacity:1}.tooltip .tooltip-inner{background-color:#fff;border-radius:4px;color:#191919;display:inline-block;font-size:16px;max-width:640px;padding:8px 16px;position:relative}.tooltip .tooltip-inner.dso-small{max-width:320px}.tooltip .tooltip-arrow{border-color:transparent;border-style:solid;height:0;width:0}.tooltip[data-popper-placement=top]{margin-top:-3px;padding:6px 0}.tooltip[data-popper-placement=top] .tooltip-arrow{border-top-color:#fff;border-width:6px 6px 0;bottom:0}.tooltip[data-popper-placement=top] .tooltip-arrow{margin-left:-3px}.tooltip[data-popper-placement=right]{margin-left:3px;padding:0 6px}.tooltip[data-popper-placement=right] .tooltip-arrow{border-right-color:#fff;border-width:6px 6px 6px 0;left:0}.tooltip[data-popper-placement=right] .tooltip-arrow{margin-top:-3px}.tooltip[data-popper-placement=bottom]{margin-top:3px;padding:6px 0}.tooltip[data-popper-placement=bottom] .tooltip-arrow{border-bottom-color:#fff;border-width:0 6px 6px;top:0}.tooltip[data-popper-placement=bottom] .tooltip-arrow{margin-left:-3px}.tooltip[data-popper-placement=left]{margin-left:-3px;padding:0 6px}.tooltip[data-popper-placement=left] .tooltip-arrow{border-left-color:#fff;border-width:6px 0 6px 6px;right:0}.tooltip[data-popper-placement=left] .tooltip-arrow{margin-top:-3px}";
5814
+ const tooltipCss = ":host(.hidden){visibility:hidden}:host-context(dso-toggletip){color:red !important}:host-context(dso-toggletip) *[data-popper-placement=top] .tooltip-arrow{margin-left:3px}:host-context(dso-toggletip) *[data-popper-placement=right] .tooltip-arrow{margin-top:0}:host-context(dso-toggletip) *[data-popper-placement=bottom] .tooltip-arrow{margin-left:3px}:host-context(dso-toggletip) *[data-popper-placement=left]{margin-right:-8px !important}:host-context(dso-toggletip) *[data-popper-placement=left] .tooltip-arrow{margin-top:0}*,*::after,*::before{box-sizing:border-box}.tooltip{font-family:Asap, sans-serif;font-style:normal;font-weight:400;line-height:1.5;line-break:auto;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;display:block;filter:drop-shadow(0 2px 8px rgba(0, 0, 0, 0.4));font-size:14px;opacity:0;position:absolute;transition:opacity 0.15s linear;z-index:410}.tooltip.in{opacity:1}.tooltip .tooltip-inner{background-color:#fff;border-radius:4px;color:#191919;display:inline-block;font-size:16px;max-width:640px;padding:8px 16px;position:relative}.tooltip .tooltip-inner.dso-small{max-width:320px}.tooltip .tooltip-arrow{border-color:transparent;border-style:solid;height:0;width:0}.tooltip[data-popper-placement=top]{margin-top:-3px;padding:6px 0}.tooltip[data-popper-placement=top] .tooltip-arrow{border-top-color:#fff;border-width:6px 6px 0;bottom:0}.tooltip[data-popper-placement=top] .tooltip-arrow{margin-left:-3px}.tooltip[data-popper-placement=right]{margin-left:3px;padding:0 6px}.tooltip[data-popper-placement=right] .tooltip-arrow{border-right-color:#fff;border-width:6px 6px 6px 0;left:0}.tooltip[data-popper-placement=right] .tooltip-arrow{margin-top:-3px}.tooltip[data-popper-placement=bottom]{margin-top:3px;padding:6px 0}.tooltip[data-popper-placement=bottom] .tooltip-arrow{border-bottom-color:#fff;border-width:0 6px 6px;top:0}.tooltip[data-popper-placement=bottom] .tooltip-arrow{margin-left:-3px}.tooltip[data-popper-placement=left]{margin-left:-3px;padding:0 6px}.tooltip[data-popper-placement=left] .tooltip-arrow{border-left-color:#fff;border-width:6px 0 6px 6px;right:0}.tooltip[data-popper-placement=left] .tooltip-arrow{margin-top:-3px}";
5584
5815
 
5585
5816
  // Keep const in sync with $tooltip-transition-duration in @dso-toolkit/sources/tooltip.scss tooltip_root() mixin
5586
5817
  const transitionDuration = 150;
@@ -5588,7 +5819,7 @@ let Tooltip = class extends HTMLElement {
5588
5819
  constructor() {
5589
5820
  super();
5590
5821
  this.__registerHost();
5591
- attachShadow(this);
5822
+ this.__attachShadow();
5592
5823
  /**
5593
5824
  * Set position of tooltip relative to target
5594
5825
  */
@@ -5737,32 +5968,32 @@ let Tooltip = class extends HTMLElement {
5737
5968
  };
5738
5969
 
5739
5970
  const DsoTreeItem = ({ owner, ancestors, item, index, level, setSize }) => {
5740
- var _a, _b, _c;
5741
- return (h("li", { key: item.id, class: clsx('tree-item', { 'has-child': item.hasItems }), role: 'none' },
5971
+ var _a, _b, _c, _d;
5972
+ return (h("li", { key: item.id, class: clsx('tree-item', { 'has-child': item.hasItems, 'is-expanded': (!!item.open && !!((_a = item.items) === null || _a === void 0 ? void 0 : _a.length)) }), role: 'none' },
5742
5973
  h("div", { class: "tree-branch-control" }, item.hasItems
5743
5974
  ?
5744
5975
  h("div", { onClick: (e) => owner.itemClick(e, ancestors, item) },
5745
- h("dso-icon", { icon: item.open ? 'chevron-down' : 'chevron-right' }))
5976
+ h("dso-icon", { icon: item.open ? 'minus-square' : 'plus-square' }))
5746
5977
  : h("dso-icon", null)),
5747
- h("p", { class: clsx('tree-content', { 'active': item.active }, { 'selected': item.selected }), tabindex: level === 1 && index === 0 ? 0 : -1, role: "treeitem", "aria-expanded": item.hasItems ? '' + (!!item.open && !!((_a = item.items) === null || _a === void 0 ? void 0 : _a.length)) : undefined, "aria-current": item.active ? 'true' : undefined, "aria-level": level, "aria-setsize": setSize, "aria-posinset": index + 1, "aria-busy": item.loading ? 'true' : undefined, onClick: (e) => owner.itemClick(e, ancestors, item) },
5978
+ h("p", { class: clsx('tree-content', { 'active': item.active }, { 'selected': item.selected }), tabindex: level === 1 && index === 0 ? 0 : -1, role: "treeitem", "aria-expanded": item.hasItems ? '' + (!!item.open && !!((_b = item.items) === null || _b === void 0 ? void 0 : _b.length)) : undefined, "aria-current": item.active ? 'true' : undefined, "aria-level": level, "aria-setsize": setSize, "aria-posinset": index + 1, "aria-busy": item.loading ? 'true' : undefined, onClick: (e) => owner.itemClick(e, ancestors, item) },
5748
5979
  item.selected && h("span", { class: "sr-only" }, "Resultaat: "),
5749
5980
  item.href
5750
5981
  ? h("a", { href: item.href, tabindex: "-1" }, item.label)
5751
- : h("span", null, item.label), (_b = item.icons) === null || _b === void 0 ? void 0 :
5752
- _b.map((icon) => h("dso-icon", { icon: icon.icon, title: icon.label }))),
5982
+ : h("span", null, item.label), (_c = item.icons) === null || _c === void 0 ? void 0 :
5983
+ _c.map((icon) => h("dso-icon", { icon: icon.icon, title: icon.label }))),
5753
5984
  item.open &&
5754
5985
  h(Fragment, null, item.hasItems && !item.items && item.loading
5755
5986
  ? h("dso-progress-indicator", { size: "small", label: "Resultaten laden: een moment geduld alstublieft." })
5756
- : h("ul", { role: "group" }, (_c = item.items) === null || _c === void 0 ? void 0 : _c.map((childItem, index, org) => h(DsoTreeItem, { owner: owner, ancestors: [...ancestors, item], item: childItem, index: index, level: level + 1, setSize: org.length }))))));
5987
+ : h("ul", { role: "group" }, (_d = item.items) === null || _d === void 0 ? void 0 : _d.map((childItem, index, org) => h(DsoTreeItem, { owner: owner, ancestors: [...ancestors, item], item: childItem, index: index, level: level + 1, setSize: org.length }))))));
5757
5988
  };
5758
5989
 
5759
- const treeViewCss = ":host ul{list-style-type:none}:host ul[role=tree]{padding-left:0}:host li[role=treeitem]>ul{padding-left:1.5em}:host .tree-branch-control{cursor:pointer;display:inline-block;margin:8px 0;vertical-align:top}:host .tree-content{cursor:pointer;display:inline-block;margin:8px 0;width:calc(100% - 24px)}:host .tree-content.active{font-weight:700}:host .tree-content.active:hover{text-decoration:underline}:host .tree-content.active a{text-decoration:none}:host .tree-content.selected{color:#191919;font-weight:700;text-decoration:underline}:host .tree-content.selected:hover,:host .tree-content.selected:focus{text-decoration:none}:host .tree-content a,:host .tree-content a:visited{color:#191919;text-decoration:underline}:host .tree-content a:hover,:host .tree-content a:focus{color:#191919;text-decoration:none}:host .tree-content a:active{text-decoration:none}:host .tree-content dso-icon{font-size:0.75em;margin-left:0.5em;vertical-align:text-bottom}*,*::after,*::before{box-sizing:border-box}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}";
5990
+ const treeViewCss = ":host ul{list-style-type:none;padding-inline-start:32px;position:relative}:host li{position:relative}:host ul[role=tree]{padding-left:0}:host ul[role=group]::before{border-left:1px solid #275937;content:\"\";height:8px;left:44px;position:absolute;top:0;width:0}:host li:not(.has-child)::before{border-top:1px solid #275937;content:\"\";height:0;left:12px;position:absolute;top:20px;width:16px}:host li:not(.has-child)::after{border-left:1px solid #275937;content:\"\";height:100%;left:12px;position:absolute;top:8px;width:0}:host li:not(.has-child):last-child::after{height:20px;top:0}:host li.has-child::before{border-top:1px solid #275937;content:\"\";height:0;left:24px;position:absolute;top:20px;width:4px}:host li.has-child:not(:last-child)::after{border-left:1px solid #275937;content:\"\";height:calc(100% - 24px);left:12px;position:absolute;top:32px;width:0}:host li.has-child.is-expanded:last-child::after{border-left:1px solid #275937;content:\"\";height:calc(100% - 32px);left:12px;position:absolute;top:32px;width:0}:host .tree-branch-control{color:#39870c;display:inline-block;font-size:16px;margin:8px 8px 8px 0;vertical-align:top}:host .tree-branch-control>div{cursor:pointer}:host .tree-content{cursor:pointer;display:inline-block;margin:8px 0;max-width:calc(100% - 40px)}:host .tree-content a{color:#191919;text-decoration:underline}:host .tree-content a:hover,:host .tree-content a:focus{color:#191919;text-decoration:none}:host .tree-content a:active{text-decoration:none}:host .tree-content.selected{color:#191919;font-weight:700;text-decoration:underline}:host .tree-content.selected:hover,:host .tree-content.selected:focus{text-decoration:none}:host .tree-content.active{color:#8b4a6a;font-style:italic;font-weight:700;text-decoration:underline}:host .tree-content.active:hover,:host .tree-content.active:focus{text-decoration:none}:host .tree-content.active a{color:#8b4a6a}:host .tree-content.active a:hover,:host .tree-content.active a:focus{text-decoration:none}:host .tree-content dso-icon{color:#39870c;font-size:0.75em;margin-left:0.5em;vertical-align:text-bottom}*,*::after,*::before{box-sizing:border-box}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}";
5760
5991
 
5761
5992
  let TreeView = class extends HTMLElement {
5762
5993
  constructor() {
5763
5994
  super();
5764
5995
  this.__registerHost();
5765
- attachShadow(this);
5996
+ this.__attachShadow();
5766
5997
  this.openItem = createEvent(this, "openItem", 7);
5767
5998
  this.closeItem = createEvent(this, "closeItem", 7);
5768
5999
  this.clickItem = createEvent(this, "clickItem", 7);
@@ -5918,13 +6149,13 @@ const ViewerGridFilterpanelButtons = ({ onApply, onCancel }) => (h("div", { clas
5918
6149
  h("span", null, "Toepassen"),
5919
6150
  h("dso-icon", { icon: "chevron-right" }))));
5920
6151
 
5921
- const viewerGridCss = "button{-webkit-appearance:button;color:inherit;cursor:pointer;font:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible;text-transform:none}button[disabled]{cursor:default}button::-moz-focus-inner{border:0;padding:0}h1,.h1,h2,.h2,h3,.h3{margin-bottom:16px;margin-top:24px}h1,.h1{line-height:1.25}h1{color:#275937;font-size:2rem;font-weight:700}h2,.h2{line-height:1.33}h2{color:#275937;font-size:1.5rem;font-weight:700}h3,.h3{line-height:1.2}h3{color:#275937;font-size:1.25rem;font-weight:600}h4,.h4,h5,.h5,h6,.h6{margin-bottom:16px;margin-top:12px}h4,.h4{line-height:1.5}h4{color:#275937;font-size:1rem;font-weight:600}h5,.h5{line-height:1.5}h5{color:#191919;font-size:1rem;font-weight:600}h6,.h6{line-height:1.5}*,*::after,*::before{box-sizing:border-box}:host{display:flex;height:100vh;overflow:hidden;position:relative}:host([small]) .dso-map-panel{flex-basis:375px;min-width:0;max-width:375px}@media screen and (max-width: 375px){:host([small]) .dso-map-panel{flex-basis:100vw;max-width:100vw;min-width:0;transition:none}}:host([medium]) .dso-map-panel{flex-basis:624px;min-width:375px;max-width:624px}@media screen and (max-width: 624px){:host([medium]) .dso-map-panel{flex-basis:100vw;max-width:100vw;min-width:375px;transition:none}}:host([large]) .dso-map-panel{flex-basis:60%;min-width:768px;max-width:1024px}@media screen and (max-width: 768px){:host([large]) .dso-map-panel{flex-basis:100vw;max-width:100vw;min-width:768px;transition:none}}.shrink,.expand,.overlay-close-button{display:inline-block;font-size:1em;font-weight:500;margin-bottom:0;text-decoration:none;touch-action:manipulation;text-align:left;user-select:none;vertical-align:middle;border:0;color:#39870c;line-height:1;padding:0;background-color:transparent}.shrink:focus,.shrink:focus-visible,.expand:focus,.expand:focus-visible,.overlay-close-button:focus,.overlay-close-button:focus-visible{outline-offset:2px}.shrink:active,.expand:active,.overlay-close-button:active{outline:0}.shrink.extern::after,.shrink.download::after,.expand.extern::after,.expand.download::after,.overlay-close-button.extern::after,.overlay-close-button.download::after{content:\"\";display:inline-block;height:1.5em;margin-left:8px;vertical-align:top;width:1.5em}.shrink[disabled],.expand[disabled],.overlay-close-button[disabled]{color:#afcf9d}.shrink:not([disabled]):hover,.expand:not([disabled]):hover,.overlay-close-button:not([disabled]):hover{color:#676cb0;text-decoration:underline}.shrink:not([disabled]):active,.expand:not([disabled]):active,.overlay-close-button:not([disabled]):active{color:#676cb0}.shrink.btn-align,.expand.btn-align,.overlay-close-button.btn-align{line-height:calc(1.5em - 1px);padding:11px 0;position:relative}.shrink.extern::after,.shrink.download::after,.expand.extern::after,.expand.download::after,.overlay-close-button.extern::after,.overlay-close-button.download::after{position:relative;top:-2px}.shrink.download::after,.expand.download::after,.overlay-close-button.download::after{background:var(--dso-icon, var(--di-download)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}.shrink.download[disabled]::after,.expand.download[disabled]::after,.overlay-close-button.download[disabled]::after{--dso-icon:var(--di-download-grasgroen-40)}.shrink.download:not([disabled]):hover::after,.shrink.download:not([disabled]):active::after,.expand.download:not([disabled]):hover::after,.expand.download:not([disabled]):active::after,.overlay-close-button.download:not([disabled]):hover::after,.overlay-close-button.download:not([disabled]):active::after{--dso-icon:var(--di-download-scampi)}.shrink.extern::after,.expand.extern::after,.overlay-close-button.extern::after{background:var(--dso-icon, var(--di-external-link)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}.shrink.extern[disabled]::after,.expand.extern[disabled]::after,.overlay-close-button.extern[disabled]::after{--dso-icon:var(--di-external-link-grasgroen-40)}.shrink.extern:not([disabled]):hover::after,.shrink.extern:not([disabled]):active::after,.expand.extern:not([disabled]):hover::after,.expand.extern:not([disabled]):active::after,.overlay-close-button.extern:not([disabled]):hover::after,.overlay-close-button.extern:not([disabled]):active::after{--dso-icon:var(--di-external-link-scampi)}.shrink dso-icon+span:not(.sr-only),.shrink svg.di+span:not(.sr-only),.shrink span:not(.sr-only)+dso-icon,.shrink span:not(.sr-only)+svg.di,.expand dso-icon+span:not(.sr-only),.expand svg.di+span:not(.sr-only),.expand span:not(.sr-only)+dso-icon,.expand span:not(.sr-only)+svg.di,.overlay-close-button dso-icon+span:not(.sr-only),.overlay-close-button svg.di+span:not(.sr-only),.overlay-close-button span:not(.sr-only)+dso-icon,.overlay-close-button span:not(.sr-only)+svg.di{margin-left:8px}.shrink dso-icon,.shrink svg.di,.shrink span,.expand dso-icon,.expand svg.di,.expand span,.overlay-close-button dso-icon,.overlay-close-button svg.di,.overlay-close-button span{vertical-align:middle}.shrink:hover,.expand:hover,.overlay-close-button:hover{cursor:pointer}.shrink[disabled],.expand[disabled],.overlay-close-button[disabled]{display:none}.overlay-close-button{position:absolute;top:8px;right:16px}.overlay-close-button .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.dso-map-panel{background-color:#fff;box-shadow:2px 0 8px 0 rgba(0, 0, 0, 0.4);flex-shrink:0;flex-grow:0;padding-right:8px;position:relative;transition:flex-basis 0.2s ease-in, max-width 0.2s ease-in, min-width 0.2s ease-in;z-index:1}.dso-map-panel .dso-filterblok-address{font-weight:bold;margin:8px 0}.dso-map-panel .main{height:100%;overflow-y:scroll;padding:8px 16px}.sizing-buttons{left:calc(100% + 1px);overflow-x:hidden;padding:0 4px 4px 0;position:absolute;top:16px;transition:left 0.2s ease-in;width:44px;z-index:-1}.sizing-buttons button{display:inline-block;font-size:1em;font-weight:500;margin-bottom:0;text-decoration:none;touch-action:manipulation;text-align:left;user-select:none;vertical-align:middle;background-color:#fff;border-color:#39870c;color:#39870c;border-width:1px;border-style:solid;border-radius:4px;line-height:1.5;min-width:56px;padding:11px 15px;border:0;padding:8px;border-radius:0;border-bottom-right-radius:4px;border-top-right-radius:4px;box-shadow:0 1px 4px 0 rgba(0, 0, 0, 0.4);flex:0 0 100%;height:40px;min-width:auto;width:40px}.sizing-buttons button:focus,.sizing-buttons button:focus-visible{outline-offset:2px}.sizing-buttons button:active{outline:0}.sizing-buttons button.extern::after,.sizing-buttons button.download::after{content:\"\";display:inline-block;height:1.5em;margin-left:8px;vertical-align:top;width:1.5em}.sizing-buttons button:hover{background-color:#39870c;border-color:#39870c;color:#fff}.sizing-buttons button:active{background-color:#275937;border-color:#275937;color:#fff}.sizing-buttons button[disabled],.sizing-buttons button[disabled]:hover{background-color:#fff;border-color:#afcf9d;color:#afcf9d}.sizing-buttons button.btn-sm{line-height:16px}.sizing-buttons button.btn-sm dso-icon,.sizing-buttons button.btn-sm svg.di,.sizing-buttons button.btn-sm.extern::after,.sizing-buttons button.btn-sm.download::after{margin-bottom:-4px;margin-top:-4px}.sizing-buttons button.download::after{background:var(--dso-icon, var(--di-download)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}.sizing-buttons button.download:hover::after{--dso-icon:var(--di-download-wit)}.sizing-buttons button.download[disabled]::after{--dso-icon:var(--di-download-grasgroen-40)}.sizing-buttons button.extern::after{background:var(--dso-icon, var(--di-external-link)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}.sizing-buttons button.extern:hover::after{--dso-icon:var(--di-external-link-wit)}.sizing-buttons button.extern[disabled]::after{--dso-icon:var(--di-external-link-grasgroen-40)}.sizing-buttons button>span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sizing-buttons button:focus-visible{background-color:#39870c;border-color:#39870c;color:#fff;outline:none}.sizing-buttons button:hover dso-icon{color:#fff}.map{height:100%;width:100%;overflow:hidden}#filterpanel,.overlay{background-color:#fff;height:100%;overflow-y:auto;position:absolute;z-index:2}#filterpanel{box-shadow:2px 0 5px #666;padding:40px 16px 8px;left:0;max-width:896px;width:calc(100vw - 40px)}@media screen and (max-width: 768px){#filterpanel{width:100vw}#filterpanel::before{display:none !important}}#filterpanel::before{content:\"\";display:block;position:fixed;top:0;bottom:0;right:0;left:896px;background-color:rgba(0, 0, 0, 0.5)}@media screen and (max-width: 936px){#filterpanel::before{left:auto;width:40px}}.overlay{box-shadow:-2px 0 5px #666;padding:40px 16px 8px;right:0;width:624px}@media screen and (max-width: 624px){.overlay{width:100vw}}.overlay::before{content:\"\";display:block;position:fixed;top:0;bottom:0;left:0;right:624px;background-color:rgba(0, 0, 0, 0.5)}.filterpanel-buttons{text-align:right}.filterpanel-buttons .cancel-button{display:inline-block;font-size:1em;font-weight:500;margin-bottom:0;text-decoration:none;touch-action:manipulation;text-align:left;user-select:none;vertical-align:middle;background-color:#fff;border-color:#39870c;color:#39870c;border-width:1px;border-style:solid;border-radius:4px;line-height:1.5;min-width:56px;padding:11px 15px;line-height:16px}.filterpanel-buttons .cancel-button:focus,.filterpanel-buttons .cancel-button:focus-visible{outline-offset:2px}.filterpanel-buttons .cancel-button:active{outline:0}.filterpanel-buttons .cancel-button.extern::after,.filterpanel-buttons .cancel-button.download::after{content:\"\";display:inline-block;height:1.5em;margin-left:8px;vertical-align:top;width:1.5em}.filterpanel-buttons .cancel-button:hover{background-color:#39870c;border-color:#39870c;color:#fff}.filterpanel-buttons .cancel-button:active{background-color:#275937;border-color:#275937;color:#fff}.filterpanel-buttons .cancel-button[disabled],.filterpanel-buttons .cancel-button[disabled]:hover{background-color:#fff;border-color:#afcf9d;color:#afcf9d}.filterpanel-buttons .cancel-button.btn-sm{line-height:16px}.filterpanel-buttons .cancel-button.btn-sm dso-icon,.filterpanel-buttons .cancel-button.btn-sm svg.di,.filterpanel-buttons .cancel-button.btn-sm.extern::after,.filterpanel-buttons .cancel-button.btn-sm.download::after{margin-bottom:-4px;margin-top:-4px}.filterpanel-buttons .cancel-button.download::after{background:var(--dso-icon, var(--di-download)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}.filterpanel-buttons .cancel-button.download:hover::after{--dso-icon:var(--di-download-wit)}.filterpanel-buttons .cancel-button.download[disabled]::after{--dso-icon:var(--di-download-grasgroen-40)}.filterpanel-buttons .cancel-button.extern::after{background:var(--dso-icon, var(--di-external-link)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}.filterpanel-buttons .cancel-button.extern:hover::after{--dso-icon:var(--di-external-link-wit)}.filterpanel-buttons .cancel-button.extern[disabled]::after{--dso-icon:var(--di-external-link-grasgroen-40)}.filterpanel-buttons .cancel-button dso-icon,.filterpanel-buttons .cancel-button svg.di{margin-left:-8px;margin-right:8px}.filterpanel-buttons .cancel-button span+dso-icon,.filterpanel-buttons .cancel-button span+svg.di{margin-left:8px;margin-right:-8px}.filterpanel-buttons .cancel-button dso-icon,.filterpanel-buttons .cancel-button svg.di,.filterpanel-buttons .cancel-button.extern::after,.filterpanel-buttons .cancel-button.download::after{margin-bottom:-4px;margin-top:-4px}.filterpanel-buttons .apply-button{display:inline-block;font-size:1em;font-weight:500;margin-bottom:0;text-decoration:none;touch-action:manipulation;text-align:left;user-select:none;vertical-align:middle;background-color:#39870c;border-color:#39870c;color:#fff;border-width:1px;border-style:solid;border-radius:4px;line-height:1.5;min-width:56px;padding:11px 15px;line-height:16px}.filterpanel-buttons .apply-button:focus,.filterpanel-buttons .apply-button:focus-visible{outline-offset:2px}.filterpanel-buttons .apply-button:active{outline:0}.filterpanel-buttons .apply-button.extern::after,.filterpanel-buttons .apply-button.download::after{content:\"\";display:inline-block;height:1.5em;margin-left:8px;vertical-align:top;width:1.5em}.filterpanel-buttons .apply-button:hover{background-color:#275937;border-color:#275937;color:#fff}.filterpanel-buttons .apply-button:active{background-color:#15301e;border-color:#15301e;color:#fff}.filterpanel-buttons .apply-button[disabled],.filterpanel-buttons .apply-button[disabled]:hover{background-color:#afcf9d;border-color:#afcf9d;color:#fff}.filterpanel-buttons .apply-button.btn-sm{line-height:16px}.filterpanel-buttons .apply-button.btn-sm dso-icon,.filterpanel-buttons .apply-button.btn-sm svg.di,.filterpanel-buttons .apply-button.btn-sm.extern::after,.filterpanel-buttons .apply-button.btn-sm.download::after{margin-bottom:-4px;margin-top:-4px}.filterpanel-buttons .apply-button.download::after{background:var(--dso-icon, var(--di-download-wit)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}.filterpanel-buttons .apply-button.extern::after{background:var(--dso-icon, var(--di-external-link-wit)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}.filterpanel-buttons .apply-button dso-icon,.filterpanel-buttons .apply-button svg.di{margin-left:-8px;margin-right:8px}.filterpanel-buttons .apply-button span+dso-icon,.filterpanel-buttons .apply-button span+svg.di{margin-left:8px;margin-right:-8px}.filterpanel-buttons .apply-button dso-icon,.filterpanel-buttons .apply-button svg.di,.filterpanel-buttons .apply-button.extern::after,.filterpanel-buttons .apply-button.download::after{margin-bottom:-4px;margin-top:-4px}.filterpanel-buttons .cancel-button+.apply-button{margin-left:16px}";
6152
+ const viewerGridCss = "button{-webkit-appearance:button;color:inherit;cursor:pointer;font:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible;text-transform:none}button[disabled]{cursor:default}button::-moz-focus-inner{border:0;padding:0}h1,.h1,h2,.h2,h3,.h3{margin-bottom:16px;margin-top:24px}h1,.h1{line-height:1.25}h1{color:#275937;font-size:2rem;font-weight:700}h2,.h2{line-height:1.33}h2{color:#275937;font-size:1.5rem;font-weight:700}h3,.h3{line-height:1.2}h3{color:#275937;font-size:1.25rem;font-weight:600}h4,.h4,h5,.h5,h6,.h6{margin-bottom:16px;margin-top:12px}h4,.h4{line-height:1.5}h4{color:#275937;font-size:1rem;font-weight:600}h5,.h5{line-height:1.5}h5{color:#191919;font-size:1rem;font-weight:600}h6,.h6{line-height:1.5}*,*::after,*::before{box-sizing:border-box}:host{display:flex;height:100vh;overflow:hidden;position:relative}:host([small]) .dso-map-panel{flex-basis:375px;min-width:0;max-width:375px}@media screen and (max-width: 375px){:host([small]) .dso-map-panel{flex-basis:100vw;max-width:100vw;min-width:0;transition:none}}:host([medium]) .dso-map-panel{flex-basis:624px;min-width:375px;max-width:624px}@media screen and (max-width: 624px){:host([medium]) .dso-map-panel{flex-basis:100vw;max-width:100vw;min-width:375px;transition:none}}:host([large]) .dso-map-panel{flex-basis:60%;min-width:768px;max-width:1024px}@media screen and (max-width: 768px){:host([large]) .dso-map-panel{flex-basis:100vw;max-width:100vw;min-width:768px;transition:none}}.shrink,.expand,.overlay-close-button{display:inline-block;font-size:1em;font-weight:500;margin-bottom:0;text-decoration:none;touch-action:manipulation;text-align:left;user-select:none;vertical-align:middle;border:0;color:#39870c;line-height:1;padding:0;background-color:transparent}.shrink:focus,.shrink:focus-visible,.expand:focus,.expand:focus-visible,.overlay-close-button:focus,.overlay-close-button:focus-visible{outline-offset:2px}.shrink:active,.expand:active,.overlay-close-button:active{outline:0}.shrink.extern::after,.shrink.download::after,.expand.extern::after,.expand.download::after,.overlay-close-button.extern::after,.overlay-close-button.download::after{content:\"\";display:inline-block;height:1.5em;margin-left:8px;vertical-align:top;width:1.5em}.shrink[disabled],.expand[disabled],.overlay-close-button[disabled]{color:#afcf9d}.shrink:not([disabled]):hover,.expand:not([disabled]):hover,.overlay-close-button:not([disabled]):hover{color:#676cb0;text-decoration:underline}.shrink:not([disabled]):active,.expand:not([disabled]):active,.overlay-close-button:not([disabled]):active{color:#676cb0}.shrink.btn-align,.expand.btn-align,.overlay-close-button.btn-align{line-height:calc(1.5em - 1px);padding:11px 0;position:relative}.shrink.extern::after,.shrink.download::after,.expand.extern::after,.expand.download::after,.overlay-close-button.extern::after,.overlay-close-button.download::after{position:relative;top:-2px}.shrink.download::after,.expand.download::after,.overlay-close-button.download::after{background:var(--dso-icon, var(--di-download)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}.shrink.download[disabled]::after,.expand.download[disabled]::after,.overlay-close-button.download[disabled]::after{--dso-icon:var(--di-download-grasgroen-40)}.shrink.download:not([disabled]):hover::after,.shrink.download:not([disabled]):active::after,.expand.download:not([disabled]):hover::after,.expand.download:not([disabled]):active::after,.overlay-close-button.download:not([disabled]):hover::after,.overlay-close-button.download:not([disabled]):active::after{--dso-icon:var(--di-download-scampi)}.shrink.extern::after,.expand.extern::after,.overlay-close-button.extern::after{background:var(--dso-icon, var(--di-external-link)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}.shrink.extern[disabled]::after,.expand.extern[disabled]::after,.overlay-close-button.extern[disabled]::after{--dso-icon:var(--di-external-link-grasgroen-40)}.shrink.extern:not([disabled]):hover::after,.shrink.extern:not([disabled]):active::after,.expand.extern:not([disabled]):hover::after,.expand.extern:not([disabled]):active::after,.overlay-close-button.extern:not([disabled]):hover::after,.overlay-close-button.extern:not([disabled]):active::after{--dso-icon:var(--di-external-link-scampi)}.shrink dso-icon+span:not(.sr-only),.shrink svg.di+span:not(.sr-only),.shrink span:not(.sr-only)+dso-icon,.shrink span:not(.sr-only)+svg.di,.expand dso-icon+span:not(.sr-only),.expand svg.di+span:not(.sr-only),.expand span:not(.sr-only)+dso-icon,.expand span:not(.sr-only)+svg.di,.overlay-close-button dso-icon+span:not(.sr-only),.overlay-close-button svg.di+span:not(.sr-only),.overlay-close-button span:not(.sr-only)+dso-icon,.overlay-close-button span:not(.sr-only)+svg.di{margin-left:8px}.shrink dso-icon,.shrink svg.di,.shrink span,.expand dso-icon,.expand svg.di,.expand span,.overlay-close-button dso-icon,.overlay-close-button svg.di,.overlay-close-button span{vertical-align:middle}.shrink:hover,.expand:hover,.overlay-close-button:hover{cursor:pointer}.shrink[disabled],.expand[disabled],.overlay-close-button[disabled]{display:none}.overlay-close-button{position:absolute;top:8px;right:16px}.overlay-close-button .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.dso-map-panel{background-color:#fff;box-shadow:2px 0 8px 0 rgba(0, 0, 0, 0.4);flex-shrink:0;flex-grow:0;padding-right:8px;position:relative;transition:flex-basis 0.2s ease-in, max-width 0.2s ease-in, min-width 0.2s ease-in;z-index:100}.dso-map-panel .dso-filterblok-address{font-weight:bold;margin:8px 0}.dso-map-panel .main{height:100%;overflow-y:scroll;padding:8px 16px}.sizing-buttons{left:calc(100% + 1px);overflow-x:hidden;padding:0 4px 4px 0;position:absolute;top:16px;transition:left 0.2s ease-in;width:44px;z-index:-1}.sizing-buttons button{display:inline-block;font-size:1em;font-weight:500;margin-bottom:0;text-decoration:none;touch-action:manipulation;text-align:left;user-select:none;vertical-align:middle;background-color:#fff;border-color:#39870c;color:#39870c;border-width:1px;border-style:solid;border-radius:4px;line-height:1.5;min-width:56px;padding:11px 15px;border:0;padding:8px;border-radius:0;border-bottom-right-radius:4px;border-top-right-radius:4px;box-shadow:0 1px 4px 0 rgba(0, 0, 0, 0.4);flex:0 0 100%;height:40px;min-width:auto;width:40px}.sizing-buttons button:focus,.sizing-buttons button:focus-visible{outline-offset:2px}.sizing-buttons button:active{outline:0}.sizing-buttons button.extern::after,.sizing-buttons button.download::after{content:\"\";display:inline-block;height:1.5em;margin-left:8px;vertical-align:top;width:1.5em}.sizing-buttons button:hover{background-color:#39870c;border-color:#39870c;color:#fff}.sizing-buttons button:active{background-color:#275937;border-color:#275937;color:#fff}.sizing-buttons button[disabled],.sizing-buttons button[disabled]:hover{background-color:#fff;border-color:#afcf9d;color:#afcf9d}.sizing-buttons button.btn-sm{line-height:16px}.sizing-buttons button.btn-sm dso-icon,.sizing-buttons button.btn-sm svg.di,.sizing-buttons button.btn-sm.extern::after,.sizing-buttons button.btn-sm.download::after{margin-bottom:-4px;margin-top:-4px}.sizing-buttons button.download::after{background:var(--dso-icon, var(--di-download)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}.sizing-buttons button.download:hover::after{--dso-icon:var(--di-download-wit)}.sizing-buttons button.download[disabled]::after{--dso-icon:var(--di-download-grasgroen-40)}.sizing-buttons button.extern::after{background:var(--dso-icon, var(--di-external-link)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}.sizing-buttons button.extern:hover::after{--dso-icon:var(--di-external-link-wit)}.sizing-buttons button.extern[disabled]::after{--dso-icon:var(--di-external-link-grasgroen-40)}.sizing-buttons button>span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sizing-buttons button:focus-visible{background-color:#39870c;border-color:#39870c;color:#fff;outline:none}.sizing-buttons button:hover dso-icon{color:#fff}.map{height:100%;width:100%;overflow:hidden}#filterpanel,.overlay{background-color:#fff;height:100%;overflow-y:auto;position:absolute;z-index:101}#filterpanel{box-shadow:2px 0 5px #666;padding:40px 16px 8px;left:0;max-width:896px;width:calc(100vw - 40px)}@media screen and (max-width: 768px){#filterpanel{width:100vw}#filterpanel::before{display:none !important}}#filterpanel::before{content:\"\";display:block;position:fixed;top:0;bottom:0;right:0;left:896px;background-color:rgba(0, 0, 0, 0.5)}@media screen and (max-width: 936px){#filterpanel::before{left:auto;width:40px}}.overlay{box-shadow:-2px 0 5px #666;padding:40px 16px 8px;right:0;width:624px}@media screen and (max-width: 624px){.overlay{width:100vw}}.overlay::before{content:\"\";display:block;position:fixed;top:0;bottom:0;left:0;right:624px;background-color:rgba(0, 0, 0, 0.5)}.filterpanel-buttons{text-align:right}.filterpanel-buttons .cancel-button{display:inline-block;font-size:1em;font-weight:500;margin-bottom:0;text-decoration:none;touch-action:manipulation;text-align:left;user-select:none;vertical-align:middle;background-color:#fff;border-color:#39870c;color:#39870c;border-width:1px;border-style:solid;border-radius:4px;line-height:1.5;min-width:56px;padding:11px 15px;line-height:16px}.filterpanel-buttons .cancel-button:focus,.filterpanel-buttons .cancel-button:focus-visible{outline-offset:2px}.filterpanel-buttons .cancel-button:active{outline:0}.filterpanel-buttons .cancel-button.extern::after,.filterpanel-buttons .cancel-button.download::after{content:\"\";display:inline-block;height:1.5em;margin-left:8px;vertical-align:top;width:1.5em}.filterpanel-buttons .cancel-button:hover{background-color:#39870c;border-color:#39870c;color:#fff}.filterpanel-buttons .cancel-button:active{background-color:#275937;border-color:#275937;color:#fff}.filterpanel-buttons .cancel-button[disabled],.filterpanel-buttons .cancel-button[disabled]:hover{background-color:#fff;border-color:#afcf9d;color:#afcf9d}.filterpanel-buttons .cancel-button.btn-sm{line-height:16px}.filterpanel-buttons .cancel-button.btn-sm dso-icon,.filterpanel-buttons .cancel-button.btn-sm svg.di,.filterpanel-buttons .cancel-button.btn-sm.extern::after,.filterpanel-buttons .cancel-button.btn-sm.download::after{margin-bottom:-4px;margin-top:-4px}.filterpanel-buttons .cancel-button.download::after{background:var(--dso-icon, var(--di-download)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}.filterpanel-buttons .cancel-button.download:hover::after{--dso-icon:var(--di-download-wit)}.filterpanel-buttons .cancel-button.download[disabled]::after{--dso-icon:var(--di-download-grasgroen-40)}.filterpanel-buttons .cancel-button.extern::after{background:var(--dso-icon, var(--di-external-link)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}.filterpanel-buttons .cancel-button.extern:hover::after{--dso-icon:var(--di-external-link-wit)}.filterpanel-buttons .cancel-button.extern[disabled]::after{--dso-icon:var(--di-external-link-grasgroen-40)}.filterpanel-buttons .cancel-button dso-icon,.filterpanel-buttons .cancel-button svg.di{margin-left:-8px;margin-right:8px}.filterpanel-buttons .cancel-button span+dso-icon,.filterpanel-buttons .cancel-button span+svg.di{margin-left:8px;margin-right:-8px}.filterpanel-buttons .cancel-button dso-icon,.filterpanel-buttons .cancel-button svg.di,.filterpanel-buttons .cancel-button.extern::after,.filterpanel-buttons .cancel-button.download::after{margin-bottom:-4px;margin-top:-4px}.filterpanel-buttons .apply-button{display:inline-block;font-size:1em;font-weight:500;margin-bottom:0;text-decoration:none;touch-action:manipulation;text-align:left;user-select:none;vertical-align:middle;background-color:#39870c;border-color:#39870c;color:#fff;border-width:1px;border-style:solid;border-radius:4px;line-height:1.5;min-width:56px;padding:11px 15px;line-height:16px}.filterpanel-buttons .apply-button:focus,.filterpanel-buttons .apply-button:focus-visible{outline-offset:2px}.filterpanel-buttons .apply-button:active{outline:0}.filterpanel-buttons .apply-button.extern::after,.filterpanel-buttons .apply-button.download::after{content:\"\";display:inline-block;height:1.5em;margin-left:8px;vertical-align:top;width:1.5em}.filterpanel-buttons .apply-button:hover{background-color:#275937;border-color:#275937;color:#fff}.filterpanel-buttons .apply-button:active{background-color:#15301e;border-color:#15301e;color:#fff}.filterpanel-buttons .apply-button[disabled],.filterpanel-buttons .apply-button[disabled]:hover{background-color:#afcf9d;border-color:#afcf9d;color:#fff}.filterpanel-buttons .apply-button.btn-sm{line-height:16px}.filterpanel-buttons .apply-button.btn-sm dso-icon,.filterpanel-buttons .apply-button.btn-sm svg.di,.filterpanel-buttons .apply-button.btn-sm.extern::after,.filterpanel-buttons .apply-button.btn-sm.download::after{margin-bottom:-4px;margin-top:-4px}.filterpanel-buttons .apply-button.download::after{background:var(--dso-icon, var(--di-download-wit)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}.filterpanel-buttons .apply-button.extern::after{background:var(--dso-icon, var(--di-external-link-wit)) no-repeat;background-position:center;background-size:cover;height:1.5em;vertical-align:top;width:1.5em}.filterpanel-buttons .apply-button dso-icon,.filterpanel-buttons .apply-button svg.di{margin-left:-8px;margin-right:8px}.filterpanel-buttons .apply-button span+dso-icon,.filterpanel-buttons .apply-button span+svg.di{margin-left:8px;margin-right:-8px}.filterpanel-buttons .apply-button dso-icon,.filterpanel-buttons .apply-button svg.di,.filterpanel-buttons .apply-button.extern::after,.filterpanel-buttons .apply-button.download::after{margin-bottom:-4px;margin-top:-4px}.filterpanel-buttons .cancel-button+.apply-button{margin-left:16px}";
5922
6153
 
5923
6154
  let ViewerGrid = class extends HTMLElement {
5924
6155
  constructor() {
5925
6156
  super();
5926
6157
  this.__registerHost();
5927
- attachShadow(this);
6158
+ this.__attachShadow();
5928
6159
  this.closeOverlay = createEvent(this, "closeOverlay", 7);
5929
6160
  this.filterpanelCancel = createEvent(this, "filterpanelCancel", 7);
5930
6161
  this.filterpanelApply = createEvent(this, "filterpanelApply", 7);
@@ -6018,7 +6249,7 @@ const DsoAttachmentsCounter = /*@__PURE__*/proxyCustomElement(AttachmentsCounter
6018
6249
  const DsoAutosuggest = /*@__PURE__*/proxyCustomElement(Autosuggest, [6,"dso-autosuggest",{"suggestions":[16],"suggestOnFocus":[4,"suggest-on-focus"],"showSuggestions":[32],"selectedSuggestion":[32]},[[4,"click","onDocumentClick"]]]);
6019
6250
  const DsoBadge = /*@__PURE__*/proxyCustomElement(Badge, [1,"dso-badge",{"status":[1]}]);
6020
6251
  const DsoBanner = /*@__PURE__*/proxyCustomElement(Banner, [1,"dso-banner",{"status":[1]}]);
6021
- const DsoDatePicker = /*@__PURE__*/proxyCustomElement(DsoDatePicker$1, [2,"dso-date-picker",{"name":[1],"identifier":[1],"disabled":[516],"role":[1],"direction":[1],"required":[4],"dsoAutofocus":[4,"dso-autofocus"],"value":[1537],"min":[1],"max":[1],"activeFocus":[32],"focusedDay":[32],"open":[32]},[[6,"click","handleDocumentClick"]]]);
6252
+ const DsoDatePicker = /*@__PURE__*/proxyCustomElement(DsoDatePicker$1, [2,"dso-date-picker",{"name":[1],"identifier":[1],"disabled":[516],"role":[1],"direction":[1],"required":[4],"dsoAutofocus":[4,"dso-autofocus"],"value":[1537],"min":[1],"max":[1],"activeFocus":[32],"focusedDay":[32],"open":[32],"visible":[32]},[[6,"click","handleDocumentClick"]]]);
6022
6253
  const DsoDropdownMenu = /*@__PURE__*/proxyCustomElement(DropdownMenu, [1,"dso-dropdown-menu",{"open":[1540],"dropdownAlign":[1,"dropdown-align"],"checkable":[4]}]);
6023
6254
  const DsoHeader = /*@__PURE__*/proxyCustomElement(Header, [1,"dso-header",{"loginUrl":[1,"login-url"],"logoutUrl":[1,"logout-url"],"mainMenu":[16],"useDropDownMenu":[1,"use-drop-down-menu"],"isLoggedIn":[4,"is-logged-in"],"userProfileName":[1,"user-profile-name"],"userProfileUrl":[1,"user-profile-url"],"userHomeUrl":[1,"user-home-url"],"showDropDown":[32],"hasSubLogo":[32],"overflowMenuItems":[32]}]);
6024
6255
  const DsoHelpcenterPanel = /*@__PURE__*/proxyCustomElement(HelpcenterPanel, [1,"dso-helpcenter-panel",{"label":[1],"url":[1],"visibility":[32],"isOpen":[32],"slideState":[32],"loadIframe":[32]}]);