@dso-toolkit/core 47.0.1 → 48.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/dist/cjs/dso-accordion-section.cjs.entry.js +1447 -58
  2. package/dist/cjs/dso-autosuggest.cjs.entry.js +57 -47
  3. package/dist/cjs/dso-date-picker.cjs.entry.js +3 -2
  4. package/dist/cjs/dso-dropdown-menu.cjs.entry.js +2 -2
  5. package/dist/cjs/dso-helpcenter-panel.cjs.entry.js +1 -1
  6. package/dist/cjs/dso-image-overlay.cjs.entry.js +1 -1
  7. package/dist/cjs/dso-info_2.cjs.entry.js +2 -2
  8. package/dist/cjs/dso-label.cjs.entry.js +2 -2
  9. package/dist/cjs/dso-modal.cjs.entry.js +4 -7
  10. package/dist/cjs/dso-ozon-content.cjs.entry.js +3 -3
  11. package/dist/cjs/dso-table.cjs.entry.js +3 -5
  12. package/dist/cjs/dso-toggletip.cjs.entry.js +1 -1
  13. package/dist/cjs/dso-toolkit.cjs.js +2 -2
  14. package/dist/cjs/dso-tooltip.cjs.entry.js +13 -21
  15. package/dist/cjs/dso-viewer-grid.cjs.entry.js +8 -3
  16. package/dist/cjs/{focus-trap.esm-d83fd673.js → focus-trap.esm-c501d382.js} +82 -155
  17. package/dist/cjs/loader.cjs.js +2 -2
  18. package/dist/collection/collection-manifest.json +8 -8
  19. package/dist/collection/components/accordion/components/accordion-section.css +27 -4
  20. package/dist/collection/components/accordion/components/accordion-section.interfaces.js +6 -0
  21. package/dist/collection/components/accordion/components/accordion-section.js +91 -59
  22. package/dist/collection/components/accordion/components/handles/element.handle.js +7 -0
  23. package/dist/collection/components/accordion/components/handles/heading.handle.js +14 -0
  24. package/dist/collection/components/accordion/components/handles/icon.handle.js +13 -0
  25. package/dist/collection/components/accordion/components/handles/index.js +4 -0
  26. package/dist/collection/components/accordion/components/handles/state-icon.handle.js +15 -0
  27. package/dist/collection/components/autosuggest/autosuggest.interfaces.js +1 -0
  28. package/dist/collection/components/autosuggest/autosuggest.js +61 -49
  29. package/dist/collection/components/banner/banner.js +1 -1
  30. package/dist/collection/components/card-container/card-container.js +1 -1
  31. package/dist/collection/components/date-picker/date-picker.interfaces.js +1 -0
  32. package/dist/collection/components/date-picker/date-picker.js +19 -11
  33. package/dist/collection/components/dropdown-menu/dropdown-menu.js +2 -2
  34. package/dist/collection/components/header/header.js +2 -6
  35. package/dist/collection/components/info-button/info-button.interfaces.js +1 -0
  36. package/dist/collection/components/info-button/info-button.js +2 -1
  37. package/dist/collection/components/label/label.js +2 -2
  38. package/dist/collection/components/modal/modal.css +103 -75
  39. package/dist/collection/components/modal/modal.interfaces.js +1 -0
  40. package/dist/collection/components/modal/modal.js +5 -7
  41. package/dist/collection/components/ozon-content/nodes/noot.node.js +1 -1
  42. package/dist/collection/components/ozon-content/nodes/table.node/table.node.js +1 -1
  43. package/dist/collection/components/progress-indicator/progress-indicator.js +1 -1
  44. package/dist/collection/components/selectable/selectable.css +18 -1
  45. package/dist/collection/components/selectable/selectable.interfaces.js +1 -0
  46. package/dist/collection/components/selectable/selectable.js +3 -2
  47. package/dist/collection/components/table/table.css +49 -16
  48. package/dist/collection/components/table/table.js +2 -4
  49. package/dist/collection/components/toggletip/toggletip.js +1 -1
  50. package/dist/collection/components/tooltip/tooltip.js +13 -42
  51. package/dist/collection/components/tree-view/tree-view.js +8 -2
  52. package/dist/collection/components/viewer-grid/viewer-grid.interfaces.js +1 -0
  53. package/dist/collection/components/viewer-grid/viewer-grid.js +19 -11
  54. package/dist/collection/index.js +13 -0
  55. package/dist/components/clsx.m.js +3 -0
  56. package/dist/components/create-identifier.js +15 -0
  57. package/dist/components/dropdown-menu.js +151 -0
  58. package/dist/components/dso-accordion-section.d.ts +11 -0
  59. package/dist/components/dso-accordion-section.js +1535 -0
  60. package/dist/components/dso-accordion.d.ts +11 -0
  61. package/dist/components/dso-accordion.js +316 -0
  62. package/dist/components/dso-alert.d.ts +11 -0
  63. package/dist/components/dso-alert.js +55 -0
  64. package/dist/components/dso-attachments-counter.d.ts +11 -0
  65. package/dist/components/dso-attachments-counter.js +42 -0
  66. package/dist/components/dso-autosuggest.d.ts +11 -0
  67. package/dist/components/dso-autosuggest.js +309 -0
  68. package/dist/components/dso-badge.d.ts +11 -0
  69. package/dist/components/dso-badge.js +37 -0
  70. package/dist/components/dso-banner.d.ts +11 -0
  71. package/dist/components/dso-banner.js +37 -0
  72. package/dist/components/dso-card-container.d.ts +11 -0
  73. package/dist/components/dso-card-container.js +36 -0
  74. package/dist/components/dso-card.d.ts +11 -0
  75. package/dist/components/dso-card.js +66 -0
  76. package/dist/components/dso-date-picker.d.ts +11 -0
  77. package/dist/components/dso-date-picker.js +682 -0
  78. package/dist/components/dso-dropdown-menu.d.ts +11 -0
  79. package/dist/components/dso-dropdown-menu.js +6 -0
  80. package/dist/components/dso-header.d.ts +11 -0
  81. package/dist/components/dso-header.js +159 -0
  82. package/dist/components/dso-helpcenter-panel.d.ts +11 -0
  83. package/dist/components/dso-helpcenter-panel.js +127 -0
  84. package/dist/components/dso-highlight-box.d.ts +11 -0
  85. package/dist/components/dso-highlight-box.js +55 -0
  86. package/dist/components/dso-icon.d.ts +11 -0
  87. package/dist/components/dso-icon.js +6 -0
  88. package/dist/components/dso-image-overlay.d.ts +11 -0
  89. package/dist/components/dso-image-overlay.js +129 -0
  90. package/dist/components/dso-info-button.d.ts +11 -0
  91. package/dist/components/dso-info-button.js +6 -0
  92. package/dist/components/dso-info.d.ts +11 -0
  93. package/dist/components/dso-info.js +6 -0
  94. package/dist/components/dso-label.d.ts +11 -0
  95. package/dist/components/dso-label.js +156 -0
  96. package/dist/components/dso-map-base-layers.d.ts +11 -0
  97. package/dist/components/dso-map-base-layers.js +80 -0
  98. package/dist/components/dso-map-controls.d.ts +11 -0
  99. package/dist/components/dso-map-controls.js +86 -0
  100. package/dist/components/dso-map-overlays.d.ts +11 -0
  101. package/dist/components/dso-map-overlays.js +81 -0
  102. package/dist/components/dso-modal.d.ts +11 -0
  103. package/dist/components/dso-modal.js +85 -0
  104. package/dist/components/dso-ozon-content.d.ts +11 -0
  105. package/dist/components/dso-ozon-content.js +507 -0
  106. package/dist/components/dso-pagination.d.ts +11 -0
  107. package/dist/components/dso-pagination.js +159 -0
  108. package/dist/components/dso-progress-bar.d.ts +11 -0
  109. package/dist/components/dso-progress-bar.js +42 -0
  110. package/dist/components/dso-progress-indicator.d.ts +11 -0
  111. package/dist/components/dso-progress-indicator.js +6 -0
  112. package/dist/components/dso-responsive-element.d.ts +11 -0
  113. package/dist/components/dso-responsive-element.js +6 -0
  114. package/dist/components/dso-selectable.d.ts +11 -0
  115. package/dist/components/dso-selectable.js +6 -0
  116. package/dist/components/dso-table.d.ts +11 -0
  117. package/dist/components/dso-table.js +111 -0
  118. package/dist/components/dso-toggletip.d.ts +11 -0
  119. package/dist/components/dso-toggletip.js +90 -0
  120. package/dist/components/dso-tooltip.d.ts +11 -0
  121. package/dist/components/dso-tooltip.js +6 -0
  122. package/dist/components/dso-tree-view.d.ts +11 -0
  123. package/dist/components/dso-tree-view.js +227 -0
  124. package/dist/components/dso-viewer-grid.d.ts +11 -0
  125. package/dist/components/dso-viewer-grid.js +171 -0
  126. package/dist/components/focus-trap.esm.js +688 -0
  127. package/dist/components/icon.js +663 -0
  128. package/dist/components/index.d.ts +55 -0
  129. package/dist/components/index.esm.js +458 -0
  130. package/dist/components/index.js +35 -0
  131. package/dist/components/index2.js +70 -0
  132. package/dist/components/info-button.js +56 -0
  133. package/dist/components/info.js +42 -0
  134. package/dist/components/is-modified-event.js +4 -0
  135. package/dist/components/progress-indicator.js +44 -0
  136. package/dist/components/responsive-element.js +67 -0
  137. package/dist/components/selectable.js +108 -0
  138. package/dist/components/tooltip.js +2047 -0
  139. package/dist/components/v4.js +66 -0
  140. package/dist/dso-toolkit/dso-toolkit.esm.js +1 -1
  141. package/dist/dso-toolkit/p-04ffcc93.entry.js +1 -0
  142. package/dist/dso-toolkit/{p-e0a37d82.entry.js → p-06b4f78d.entry.js} +1 -1
  143. package/dist/dso-toolkit/{p-2b83a825.entry.js → p-35687d62.entry.js} +1 -1
  144. package/dist/dso-toolkit/p-52bc72d0.entry.js +1 -0
  145. package/dist/dso-toolkit/p-57ceabab.js +5 -0
  146. package/dist/dso-toolkit/p-655eff47.entry.js +1 -0
  147. package/dist/dso-toolkit/p-672c8323.entry.js +1 -0
  148. package/dist/dso-toolkit/p-7f8be9bc.entry.js +1 -0
  149. package/dist/dso-toolkit/p-80575700.entry.js +1 -0
  150. package/dist/dso-toolkit/p-8e9f6355.entry.js +1 -0
  151. package/dist/dso-toolkit/p-a8cb2eae.entry.js +1 -0
  152. package/dist/dso-toolkit/p-d31805a9.entry.js +1 -0
  153. package/dist/dso-toolkit/{p-dcc74039.entry.js → p-d7b2adc3.entry.js} +1 -1
  154. package/dist/dso-toolkit/{p-800e1267.entry.js → p-daee3252.entry.js} +1 -1
  155. package/dist/dso-toolkit/p-ec5412aa.entry.js +1 -0
  156. package/dist/esm/dso-accordion-section.entry.js +1448 -59
  157. package/dist/esm/dso-autosuggest.entry.js +57 -47
  158. package/dist/esm/dso-date-picker.entry.js +3 -2
  159. package/dist/esm/dso-dropdown-menu.entry.js +2 -2
  160. package/dist/esm/dso-helpcenter-panel.entry.js +1 -1
  161. package/dist/esm/dso-image-overlay.entry.js +1 -1
  162. package/dist/esm/dso-info_2.entry.js +2 -2
  163. package/dist/esm/dso-label.entry.js +2 -2
  164. package/dist/esm/dso-modal.entry.js +5 -8
  165. package/dist/esm/dso-ozon-content.entry.js +3 -3
  166. package/dist/esm/dso-table.entry.js +3 -5
  167. package/dist/esm/dso-toggletip.entry.js +1 -1
  168. package/dist/esm/dso-toolkit.js +2 -2
  169. package/dist/esm/dso-tooltip.entry.js +13 -21
  170. package/dist/esm/dso-viewer-grid.entry.js +8 -3
  171. package/dist/esm/{focus-trap.esm-33203b60.js → focus-trap.esm-94794d92.js} +82 -155
  172. package/dist/esm/loader.js +2 -2
  173. package/dist/types/components/accordion/accordion.interfaces.d.ts +0 -2
  174. package/dist/types/components/accordion/components/accordion-section.d.ts +10 -1
  175. package/dist/types/components/accordion/components/accordion-section.interfaces.d.ts +3 -0
  176. package/dist/types/components/accordion/components/handles/element.handle.d.ts +6 -0
  177. package/dist/types/components/accordion/components/handles/heading.handle.d.ts +5 -0
  178. package/dist/types/components/accordion/components/handles/icon.handle.d.ts +7 -0
  179. package/dist/types/components/accordion/components/handles/index.d.ts +4 -0
  180. package/dist/types/components/accordion/components/handles/state-icon.handle.d.ts +5 -0
  181. package/dist/types/components/autosuggest/autosuggest.d.ts +2 -15
  182. package/dist/types/components/autosuggest/autosuggest.interfaces.d.ts +14 -0
  183. package/dist/types/components/date-picker/date-picker.d.ts +2 -15
  184. package/dist/types/components/date-picker/date-picker.interfaces.d.ts +14 -0
  185. package/dist/types/components/dropdown-menu/dropdown-menu.d.ts +1 -1
  186. package/dist/types/components/header/header.d.ts +2 -2
  187. package/dist/types/components/header/header.interfaces.d.ts +1 -0
  188. package/dist/types/components/info-button/info-button.d.ts +1 -4
  189. package/dist/types/components/info-button/info-button.interfaces.d.ts +4 -0
  190. package/dist/types/components/map-overlays/map-overlays.d.ts +1 -1
  191. package/dist/types/components/modal/modal.d.ts +2 -4
  192. package/dist/types/components/modal/modal.interfaces.d.ts +3 -0
  193. package/dist/types/components/selectable/selectable.d.ts +1 -2
  194. package/dist/types/components/selectable/selectable.interfaces.d.ts +2 -0
  195. package/dist/types/components/table/table.d.ts +1 -1
  196. package/dist/types/components/tooltip/tooltip.d.ts +0 -8
  197. package/dist/types/components/tree-view/tree-view.d.ts +2 -2
  198. package/dist/types/components/viewer-grid/viewer-grid.d.ts +5 -16
  199. package/dist/types/components/viewer-grid/viewer-grid.interfaces.d.ts +15 -0
  200. package/dist/types/components.d.ts +20 -26
  201. package/dist/types/index.d.ts +13 -0
  202. package/package.json +8 -8
  203. package/dist/custom-elements/index.d.ts +0 -243
  204. package/dist/custom-elements/index.js +0 -7555
  205. package/dist/dso-toolkit/p-0917f18a.entry.js +0 -1
  206. package/dist/dso-toolkit/p-0c8cd0d8.entry.js +0 -1
  207. package/dist/dso-toolkit/p-203fc66c.entry.js +0 -1
  208. package/dist/dso-toolkit/p-3ab4441a.entry.js +0 -1
  209. package/dist/dso-toolkit/p-44c0bb3e.entry.js +0 -1
  210. package/dist/dso-toolkit/p-89d262b7.js +0 -5
  211. package/dist/dso-toolkit/p-9aa3fa9d.entry.js +0 -1
  212. package/dist/dso-toolkit/p-ba253bcd.entry.js +0 -1
  213. package/dist/dso-toolkit/p-e43e39cf.entry.js +0 -1
  214. package/dist/dso-toolkit/p-e8b22546.entry.js +0 -1
  215. package/dist/dso-toolkit/p-f93b7c7a.entry.js +0 -1
@@ -0,0 +1,227 @@
1
+ import { h, Fragment, proxyCustomElement, HTMLElement, createEvent } from '@stencil/core/internal/client';
2
+ import { c as clsx } from './clsx.m.js';
3
+ import { d as defineCustomElement$3 } from './icon.js';
4
+ import { d as defineCustomElement$2 } from './progress-indicator.js';
5
+
6
+ const DsoTreeItem = ({ owner, ancestors, item, index, level, setSize, }) => {
7
+ var _a, _b, _c, _d;
8
+ 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" },
9
+ h("div", { class: "tree-branch-control" }, item.hasItems ? (h("div", { onClick: (e) => owner.itemClick(e, ancestors, item) },
10
+ h("dso-icon", { icon: item.open ? "minus-square" : "plus-square" }))) : (h("dso-icon", null))),
11
+ 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, "data-item-id": item.id, onClick: (e) => owner.itemClick(e, ancestors, item) },
12
+ item.selected && h("span", { class: "sr-only" }, "Resultaat: "),
13
+ item.href ? (h("a", { href: item.href, tabindex: "-1" }, item.label)) : (h("span", null, item.label)), (_c = item.icons) === null || _c === void 0 ? void 0 :
14
+ _c.map((icon) => (h("dso-icon", { icon: icon.icon, title: icon.label })))),
15
+ item.open && (h(Fragment, null, item.hasItems && !item.items && item.loading ? (h("dso-progress-indicator", { size: "small", label: "Resultaten laden: een moment geduld alstublieft." })) : (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 })))))))));
16
+ };
17
+
18
+ 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}";
19
+
20
+ const TreeView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
21
+ constructor() {
22
+ super();
23
+ this.__registerHost();
24
+ this.__attachShadow();
25
+ this.dsoOpenItem = createEvent(this, "dsoOpenItem", 7);
26
+ this.dsoCloseItem = createEvent(this, "dsoCloseItem", 7);
27
+ this.dsoClickItem = createEvent(this, "dsoClickItem", 7);
28
+ this.keyDownListener = (event) => {
29
+ if (event.defaultPrevented) {
30
+ return;
31
+ }
32
+ const isIndexLetter = (str) => str.length === 1 && str.match(/\S/);
33
+ const tree = event
34
+ .composedPath()
35
+ .find((item) => (item instanceof HTMLElement ? item.className === "dso-tree" : false));
36
+ if (!(event.target instanceof HTMLParagraphElement) || !(tree instanceof HTMLElement)) {
37
+ return;
38
+ }
39
+ switch (event.key) {
40
+ case "ArrowDown":
41
+ TreeView.moveFocus(tree, event.target, "next");
42
+ break;
43
+ case "ArrowUp":
44
+ TreeView.moveFocus(tree, event.target, "previous");
45
+ break;
46
+ case "ArrowRight":
47
+ TreeView.expandItemOrFocusChild(tree, event.target);
48
+ break;
49
+ case "ArrowLeft":
50
+ TreeView.collapseItemOrFocusParent(tree, event.target);
51
+ break;
52
+ case "End":
53
+ TreeView.moveFocus(tree, event.target, "last");
54
+ break;
55
+ case "Home":
56
+ TreeView.moveFocus(tree, event.target, "first");
57
+ break;
58
+ case "Enter":
59
+ case " ":
60
+ event.target.click();
61
+ break;
62
+ default:
63
+ if (isIndexLetter(event.key)) {
64
+ if (TreeView.setFocusByFirstCharacter(tree, event.target, event.key, event.shiftKey)) {
65
+ break;
66
+ }
67
+ }
68
+ return;
69
+ }
70
+ event.preventDefault();
71
+ };
72
+ this.itemClick = (event, ancestors, item) => {
73
+ if (!(event.target instanceof HTMLElement)) {
74
+ return;
75
+ }
76
+ const contentElement = event.target.closest(".tree-content");
77
+ if (contentElement) {
78
+ const tree = event
79
+ .composedPath()
80
+ .find((item) => (item instanceof HTMLElement ? item.className === "dso-tree" : false));
81
+ if (!(contentElement instanceof HTMLParagraphElement) || !(tree instanceof HTMLElement)) {
82
+ return;
83
+ }
84
+ TreeView.setFocus(tree, contentElement);
85
+ this.dsoClickItem.emit({ path: [...ancestors, item], originalEvent: event });
86
+ return;
87
+ }
88
+ if (item.open) {
89
+ this.dsoCloseItem.emit([...ancestors, item]);
90
+ }
91
+ else {
92
+ this.dsoOpenItem.emit([...ancestors, item]);
93
+ }
94
+ };
95
+ this.collection = undefined;
96
+ }
97
+ /**
98
+ * Set focus on the last item in the specified path.
99
+ * The consumer is responsible for providing a TreeView collection where the last item is visible.
100
+ * @async
101
+ * @returns Whether the item was found.
102
+ */
103
+ async focusItem(path) {
104
+ var _a;
105
+ const tree = this.tree;
106
+ if (!tree || path.length === 0) {
107
+ return false;
108
+ }
109
+ const itemToFocus = path[path.length - 1];
110
+ const elementToFocus = Array.from((_a = tree.querySelectorAll("p")) !== null && _a !== void 0 ? _a : [])
111
+ .filter((item) => item.offsetWidth > 0 && item.offsetHeight > 0)
112
+ .find((item) => item.dataset["itemId"] === itemToFocus.id);
113
+ if (!elementToFocus) {
114
+ return false;
115
+ }
116
+ TreeView.setFocus(tree, elementToFocus);
117
+ return true;
118
+ }
119
+ static setFocus(tree, target) {
120
+ if (target) {
121
+ Array.from(tree.querySelectorAll("p"))
122
+ .filter((item) => item.tabIndex === 0)
123
+ .forEach((item) => (item.tabIndex = -1));
124
+ target.tabIndex = 0;
125
+ target.focus();
126
+ }
127
+ }
128
+ static moveFocus(tree, el, moveTo) {
129
+ const focusableItems = Array.from(tree.querySelectorAll("p")).filter((item) => item.offsetWidth > 0 && item.offsetHeight > 0);
130
+ let index = 0;
131
+ switch (moveTo) {
132
+ case "first":
133
+ index = 0;
134
+ break;
135
+ case "previous":
136
+ index = focusableItems.indexOf(el) - 1;
137
+ break;
138
+ case "next":
139
+ index = focusableItems.indexOf(el) + 1;
140
+ break;
141
+ case "last":
142
+ index = focusableItems.length - 1;
143
+ break;
144
+ }
145
+ TreeView.setFocus(tree, focusableItems[index]);
146
+ }
147
+ static expandItemOrFocusChild(tree, target) {
148
+ var _a;
149
+ if ((target === null || target === void 0 ? void 0 : target.getAttribute("aria-expanded")) === "true") {
150
+ TreeView.moveFocus(tree, target, "next");
151
+ }
152
+ else {
153
+ const controlElement = (_a = target.previousElementSibling) === null || _a === void 0 ? void 0 : _a.firstElementChild;
154
+ if (controlElement instanceof HTMLElement) {
155
+ controlElement.click();
156
+ }
157
+ }
158
+ }
159
+ static collapseItemOrFocusParent(tree, target) {
160
+ var _a, _b, _c;
161
+ if ((target === null || target === void 0 ? void 0 : target.getAttribute("aria-expanded")) === "true") {
162
+ const controlElement = (_a = target.previousElementSibling) === null || _a === void 0 ? void 0 : _a.firstElementChild;
163
+ if (controlElement instanceof HTMLElement) {
164
+ controlElement.click();
165
+ }
166
+ }
167
+ else {
168
+ const parentTarget = (_c = (_b = target === null || target === void 0 ? void 0 : target.parentElement) === null || _b === void 0 ? void 0 : _b.parentElement) === null || _c === void 0 ? void 0 : _c.previousElementSibling;
169
+ if (parentTarget instanceof HTMLElement) {
170
+ TreeView.setFocus(tree, parentTarget);
171
+ }
172
+ }
173
+ }
174
+ static setFocusByFirstCharacter(tree, el, char, backwards) {
175
+ const focusableItems = Array.from(tree.querySelectorAll("p")).filter((item) => item.offsetWidth > 0 && item.offsetHeight > 0);
176
+ if (backwards) {
177
+ focusableItems.reverse();
178
+ }
179
+ const current = focusableItems.indexOf(el);
180
+ char = char.toLowerCase();
181
+ let nextItem = focusableItems.find((item, index) => { var _a; return index > current && ((_a = item.textContent) === null || _a === void 0 ? void 0 : _a.toLowerCase().startsWith(char)); });
182
+ if (!nextItem) {
183
+ nextItem = focusableItems.find((item, index) => { var _a; return index < current && ((_a = item.textContent) === null || _a === void 0 ? void 0 : _a.toLowerCase().startsWith(char)); });
184
+ }
185
+ if (nextItem) {
186
+ TreeView.setFocus(tree, nextItem);
187
+ return true;
188
+ }
189
+ return false;
190
+ }
191
+ render() {
192
+ var _a;
193
+ return (h("div", { id: "tree", class: "dso-tree", onKeyDown: (e) => this.keyDownListener(e), ref: (element) => (this.tree = element) }, h("ul", { role: "tree", "aria-label": "Objectenboom" }, (_a = this.collection) === null || _a === void 0 ? void 0 : _a.map((item, index) => (h(DsoTreeItem, { owner: this, ancestors: [], item: item, index: index, level: 1, setSize: this.collection.length }))))));
194
+ }
195
+ static get style() { return treeViewCss; }
196
+ }, [1, "dso-tree-view", {
197
+ "collection": [16],
198
+ "focusItem": [64]
199
+ }]);
200
+ function defineCustomElement$1() {
201
+ if (typeof customElements === "undefined") {
202
+ return;
203
+ }
204
+ const components = ["dso-tree-view", "dso-icon", "dso-progress-indicator"];
205
+ components.forEach(tagName => { switch (tagName) {
206
+ case "dso-tree-view":
207
+ if (!customElements.get(tagName)) {
208
+ customElements.define(tagName, TreeView);
209
+ }
210
+ break;
211
+ case "dso-icon":
212
+ if (!customElements.get(tagName)) {
213
+ defineCustomElement$3();
214
+ }
215
+ break;
216
+ case "dso-progress-indicator":
217
+ if (!customElements.get(tagName)) {
218
+ defineCustomElement$2();
219
+ }
220
+ break;
221
+ } });
222
+ }
223
+
224
+ const DsoTreeView = TreeView;
225
+ const defineCustomElement = defineCustomElement$1;
226
+
227
+ export { DsoTreeView, defineCustomElement };
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface DsoViewerGrid extends Components.DsoViewerGrid, HTMLElement {}
4
+ export const DsoViewerGrid: {
5
+ prototype: DsoViewerGrid;
6
+ new (): DsoViewerGrid;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,171 @@
1
+ import { h, proxyCustomElement, HTMLElement, createEvent, Host } from '@stencil/core/internal/client';
2
+ import { c as createFocusTrap } from './focus-trap.esm.js';
3
+ import { d as defineCustomElement$2 } from './icon.js';
4
+
5
+ const ViewerGridFilterpanelButtons = ({ onApply, onCancel, }) => (h("div", { class: "filterpanel-buttons" },
6
+ h("button", { type: "button", class: "cancel-button", onClick: onCancel },
7
+ h("span", null, "Annuleren")),
8
+ h("button", { type: "button", class: "apply-button", onClick: onApply },
9
+ h("span", null, "Toepassen"),
10
+ h("dso-icon", { icon: "chevron-right" }))));
11
+
12
+ const viewerGridCss = "*,\n*::after,\n*::before {\n box-sizing: border-box;\n}\n\n:host {\n display: flex;\n height: 100vh;\n overflow: hidden;\n position: relative;\n}\n\n:host([small]) .dso-map-panel {\n flex-basis: 375px;\n min-width: 0;\n max-width: 375px;\n}\n@media screen and (max-width: 375px) {\n :host([small]) .dso-map-panel {\n flex-basis: 100vw;\n max-width: 100vw;\n min-width: 0;\n transition: none;\n }\n}\n\n:host([medium]) .dso-map-panel {\n flex-basis: 624px;\n min-width: 375px;\n max-width: 624px;\n}\n@media screen and (max-width: 624px) {\n :host([medium]) .dso-map-panel {\n flex-basis: 100vw;\n max-width: 100vw;\n min-width: 375px;\n transition: none;\n }\n}\n\n:host([large]) .dso-map-panel {\n flex-basis: 60%;\n min-width: 768px;\n max-width: 1024px;\n}\n@media screen and (max-width: 768px) {\n :host([large]) .dso-map-panel {\n flex-basis: 100vw;\n max-width: 100vw;\n min-width: 768px;\n transition: none;\n }\n}\n\nbutton {\n -webkit-appearance: button;\n color: inherit;\n cursor: pointer;\n font: inherit;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n margin: 0;\n overflow: visible;\n text-transform: none;\n}\nbutton[disabled] {\n cursor: default;\n}\nbutton::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n\n.shrink,\n.expand,\n.overlay-close-button {\n display: inline-block;\n font-size: 1em;\n font-weight: 500;\n margin-bottom: 0;\n text-decoration: none;\n touch-action: manipulation;\n text-align: left;\n user-select: none;\n vertical-align: middle;\n border: 0;\n color: #39870c;\n line-height: 1;\n padding: 0;\n background-color: transparent;\n}\n.shrink:focus, .shrink:focus-visible,\n.expand:focus,\n.expand:focus-visible,\n.overlay-close-button:focus,\n.overlay-close-button:focus-visible {\n outline-offset: 2px;\n}\n.shrink:active,\n.expand:active,\n.overlay-close-button:active {\n outline: 0;\n}\n.shrink[disabled],\n.expand[disabled],\n.overlay-close-button[disabled] {\n color: #afcf9d;\n}\n.shrink[disabled].dso-spinner-left, .shrink[disabled].dso-spinner-right,\n.expand[disabled].dso-spinner-left,\n.expand[disabled].dso-spinner-right,\n.overlay-close-button[disabled].dso-spinner-left,\n.overlay-close-button[disabled].dso-spinner-right {\n color: #39870c;\n}\n.shrink:not([disabled]):hover,\n.expand:not([disabled]):hover,\n.overlay-close-button:not([disabled]):hover {\n color: #676cb0;\n text-decoration: underline;\n text-underline-position: under;\n}\n.shrink:not([disabled]):active,\n.expand:not([disabled]):active,\n.overlay-close-button:not([disabled]):active {\n color: #676cb0;\n}\n.shrink.btn-align,\n.expand.btn-align,\n.overlay-close-button.btn-align {\n line-height: calc(1.5em - 1px);\n padding: 11px 0;\n position: relative;\n}\n.shrink.dso-spinner-left::before,\n.expand.dso-spinner-left::before,\n.overlay-close-button.dso-spinner-left::before {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %2339870c; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n height: 24px;\n vertical-align: middle;\n width: 24px;\n margin-right: 8px;\n}\n.shrink.dso-spinner-right::after,\n.expand.dso-spinner-right::after,\n.overlay-close-button.dso-spinner-right::after {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %2339870c; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n height: 24px;\n vertical-align: middle;\n width: 24px;\n margin-left: 8px;\n}\n.shrink dso-icon + span:not(.sr-only),\n.shrink svg.di + span:not(.sr-only),\n.shrink span:not(.sr-only) + dso-icon,\n.shrink span:not(.sr-only) + svg.di,\n.expand dso-icon + span:not(.sr-only),\n.expand svg.di + span:not(.sr-only),\n.expand span:not(.sr-only) + dso-icon,\n.expand span:not(.sr-only) + svg.di,\n.overlay-close-button dso-icon + span:not(.sr-only),\n.overlay-close-button svg.di + span:not(.sr-only),\n.overlay-close-button span:not(.sr-only) + dso-icon,\n.overlay-close-button span:not(.sr-only) + svg.di {\n margin-left: 8px;\n}\n.shrink svg.di.di-chevron-down + span:not(.sr-only),\n.shrink svg.di.di-chevron-up + span:not(.sr-only),\n.shrink span:not(.sr-only) + svg.di.di-chevron-down,\n.shrink span:not(.sr-only) + svg.di.di-chevron-up,\n.expand svg.di.di-chevron-down + span:not(.sr-only),\n.expand svg.di.di-chevron-up + span:not(.sr-only),\n.expand span:not(.sr-only) + svg.di.di-chevron-down,\n.expand span:not(.sr-only) + svg.di.di-chevron-up,\n.overlay-close-button svg.di.di-chevron-down + span:not(.sr-only),\n.overlay-close-button svg.di.di-chevron-up + span:not(.sr-only),\n.overlay-close-button span:not(.sr-only) + svg.di.di-chevron-down,\n.overlay-close-button span:not(.sr-only) + svg.di.di-chevron-up {\n margin-left: 4px;\n}\n.shrink dso-icon[icon=chevron-left] + span:not(.sr-only),\n.shrink dso-icon[icon=chevron-right] + span:not(.sr-only),\n.shrink svg.di.di-angle-down + span:not(.sr-only),\n.shrink svg.di.di-angle-up + span:not(.sr-only),\n.shrink span:not(.sr-only) + svg.di.di-angle-down,\n.shrink span:not(.sr-only) + svg.di.di-angle-up,\n.shrink span:not(.sr-only) + dso-icon[icon=chevron-left],\n.shrink span:not(.sr-only) + dso-icon[icon=chevron-right],\n.expand dso-icon[icon=chevron-left] + span:not(.sr-only),\n.expand dso-icon[icon=chevron-right] + span:not(.sr-only),\n.expand svg.di.di-angle-down + span:not(.sr-only),\n.expand svg.di.di-angle-up + span:not(.sr-only),\n.expand span:not(.sr-only) + svg.di.di-angle-down,\n.expand span:not(.sr-only) + svg.di.di-angle-up,\n.expand span:not(.sr-only) + dso-icon[icon=chevron-left],\n.expand span:not(.sr-only) + dso-icon[icon=chevron-right],\n.overlay-close-button dso-icon[icon=chevron-left] + span:not(.sr-only),\n.overlay-close-button dso-icon[icon=chevron-right] + span:not(.sr-only),\n.overlay-close-button svg.di.di-angle-down + span:not(.sr-only),\n.overlay-close-button svg.di.di-angle-up + span:not(.sr-only),\n.overlay-close-button span:not(.sr-only) + svg.di.di-angle-down,\n.overlay-close-button span:not(.sr-only) + svg.di.di-angle-up,\n.overlay-close-button span:not(.sr-only) + dso-icon[icon=chevron-left],\n.overlay-close-button span:not(.sr-only) + dso-icon[icon=chevron-right] {\n margin-left: 0;\n}\n.shrink dso-icon,\n.shrink svg.di,\n.shrink span,\n.expand dso-icon,\n.expand svg.di,\n.expand span,\n.overlay-close-button dso-icon,\n.overlay-close-button svg.di,\n.overlay-close-button span {\n vertical-align: middle;\n}\n.shrink:hover,\n.expand:hover,\n.overlay-close-button:hover {\n cursor: pointer;\n}\n.shrink[disabled],\n.expand[disabled],\n.overlay-close-button[disabled] {\n display: none;\n}\n\n.overlay-close-button {\n position: absolute;\n top: 8px;\n right: 16px;\n}\n\n.dso-map-panel {\n background-color: #fff;\n box-shadow: 2px 0 8px 0 rgba(0, 0, 0, 0.4);\n flex-shrink: 0;\n flex-grow: 0;\n padding-right: 8px;\n position: relative;\n transition: flex-basis 200ms ease-in, max-width 200ms ease-in, min-width 200ms ease-in;\n z-index: 100;\n}\n.dso-map-panel .dso-filterblok-address {\n font-weight: bold;\n margin: 8px 0;\n}\n.dso-map-panel .main {\n height: 100%;\n overflow-y: scroll;\n padding: 0 16px 8px;\n}\n\n.sizing-buttons {\n left: calc(100% + 1px);\n overflow-x: hidden;\n padding: 0 4px 4px 0;\n position: absolute;\n top: 16px;\n transition: left 200ms ease-in;\n width: 44px;\n z-index: -1;\n}\n.sizing-buttons button {\n display: inline-block;\n font-size: 1em;\n font-weight: 500;\n margin-bottom: 0;\n text-decoration: none;\n touch-action: manipulation;\n text-align: left;\n user-select: none;\n vertical-align: middle;\n background-color: #fff;\n border-color: #39870c;\n color: #39870c;\n border-width: 1px;\n border-style: solid;\n border-radius: 4px;\n line-height: 1.5;\n min-width: 56px;\n padding: 11px 15px;\n border: 0;\n padding: 8px;\n border-radius: 0;\n border-bottom-right-radius: 4px;\n border-top-right-radius: 4px;\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.4);\n flex: 0 0 100%;\n height: 40px;\n min-width: auto;\n width: 40px;\n}\n.sizing-buttons button:focus, .sizing-buttons button:focus-visible {\n outline-offset: 2px;\n}\n.sizing-buttons button:active {\n outline: 0;\n}\n.sizing-buttons button:hover {\n background-color: #39870c;\n border-color: #39870c;\n color: #fff;\n}\n.sizing-buttons button:active {\n background-color: #275937;\n border-color: #275937;\n color: #fff;\n}\n.sizing-buttons button[disabled], .sizing-buttons button[disabled]:hover {\n background-color: #fff;\n border-color: #afcf9d;\n color: #afcf9d;\n}\n.sizing-buttons button.btn-sm {\n line-height: 1rem;\n}\n.sizing-buttons button.btn-sm dso-icon,\n.sizing-buttons button.btn-sm svg.di, .sizing-buttons button.btn-sm.extern::after, .sizing-buttons button.btn-sm.download::after, .sizing-buttons button.btn-sm.dso-spinner::before {\n margin-bottom: -4px;\n margin-top: -4px;\n}\n.sizing-buttons button.btn-sm.dso-spinner-left::before {\n height: 16px;\n width: 16px;\n}\n.sizing-buttons button.btn-sm.dso-spinner-right::after {\n height: 16px;\n width: 16px;\n}\n.sizing-buttons button > span {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sizing-buttons button.dso-spinner-left[disabled], .sizing-buttons button.dso-spinner-right[disabled] {\n background-color: #fff;\n border-color: #39870c;\n color: #39870c;\n}\n.sizing-buttons button.dso-spinner-left::before {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %2339870c; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n height: 24px;\n vertical-align: top;\n width: 24px;\n margin-right: 8px;\n}\n.sizing-buttons button.dso-spinner-left:not([disabled]):hover::before {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %23fff; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n height: 24px;\n vertical-align: top;\n width: 24px;\n margin-right: 8px;\n}\n.sizing-buttons button.dso-spinner-left:not([disabled]).btn-sm:hover::before {\n height: 16px;\n width: 16px;\n}\n.sizing-buttons button.dso-spinner-right::after {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %2339870c; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n height: 24px;\n vertical-align: top;\n width: 24px;\n margin-left: 8px;\n}\n.sizing-buttons button.dso-spinner-right:not([disabled]):hover::after {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %23fff; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n height: 24px;\n vertical-align: top;\n width: 24px;\n margin-left: 8px;\n}\n.sizing-buttons button.dso-spinner-right:not([disabled]).btn-sm:hover::after {\n height: 16px;\n width: 16px;\n}\n.sizing-buttons button:focus-visible {\n background-color: #39870c;\n border-color: #39870c;\n color: #fff;\n outline: none;\n}\n.sizing-buttons button:hover dso-icon {\n color: #fff;\n}\n\n.map {\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\n#filterpanel,\n.overlay {\n background-color: #fff;\n height: 100%;\n overflow-y: auto;\n position: absolute;\n z-index: 101;\n}\n\n#filterpanel {\n box-shadow: 2px 0 5px #666;\n padding: 40px 16px 8px;\n left: 0;\n max-width: 896px;\n width: calc(100vw - 40px);\n}\n@media screen and (max-width: 768px) {\n #filterpanel {\n width: 100vw;\n }\n #filterpanel::before {\n display: none !important;\n }\n}\n#filterpanel::before {\n content: \"\";\n display: block;\n position: fixed;\n top: 0;\n bottom: 0;\n right: 0;\n left: 896px;\n background-color: rgba(0, 0, 0, 0.5);\n}\n@media screen and (max-width: 936px) {\n #filterpanel::before {\n left: auto;\n width: 40px;\n }\n}\n\n.overlay {\n box-shadow: -2px 0 5px #666;\n padding: 40px 16px 8px;\n right: 0;\n width: 624px;\n}\n@media screen and (max-width: 624px) {\n .overlay {\n width: 100vw;\n }\n}\n\n.dimscreen {\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 624px;\n background-color: rgba(0, 0, 0, 0.5);\n z-index: 102;\n}\n\n.filterpanel-buttons {\n text-align: right;\n}\n.filterpanel-buttons .cancel-button {\n display: inline-block;\n font-size: 1em;\n font-weight: 500;\n margin-bottom: 0;\n text-decoration: none;\n touch-action: manipulation;\n text-align: left;\n user-select: none;\n vertical-align: middle;\n background-color: #fff;\n border-color: #39870c;\n color: #39870c;\n border-width: 1px;\n border-style: solid;\n border-radius: 4px;\n line-height: 1.5;\n min-width: 56px;\n padding: 11px 15px;\n line-height: 1rem;\n}\n.filterpanel-buttons .cancel-button:focus, .filterpanel-buttons .cancel-button:focus-visible {\n outline-offset: 2px;\n}\n.filterpanel-buttons .cancel-button:active {\n outline: 0;\n}\n.filterpanel-buttons .cancel-button:hover {\n background-color: #39870c;\n border-color: #39870c;\n color: #fff;\n}\n.filterpanel-buttons .cancel-button:active {\n background-color: #275937;\n border-color: #275937;\n color: #fff;\n}\n.filterpanel-buttons .cancel-button[disabled], .filterpanel-buttons .cancel-button[disabled]:hover {\n background-color: #fff;\n border-color: #afcf9d;\n color: #afcf9d;\n}\n.filterpanel-buttons .cancel-button.btn-sm {\n line-height: 1rem;\n}\n.filterpanel-buttons .cancel-button.btn-sm dso-icon,\n.filterpanel-buttons .cancel-button.btn-sm svg.di, .filterpanel-buttons .cancel-button.btn-sm.extern::after, .filterpanel-buttons .cancel-button.btn-sm.download::after, .filterpanel-buttons .cancel-button.btn-sm.dso-spinner::before {\n margin-bottom: -4px;\n margin-top: -4px;\n}\n.filterpanel-buttons .cancel-button.btn-sm.dso-spinner-left::before {\n height: 16px;\n width: 16px;\n}\n.filterpanel-buttons .cancel-button.btn-sm.dso-spinner-right::after {\n height: 16px;\n width: 16px;\n}\n.filterpanel-buttons .cancel-button dso-icon,\n.filterpanel-buttons .cancel-button svg.di {\n margin-left: -8px;\n margin-right: 8px;\n}\n.filterpanel-buttons .cancel-button span + dso-icon,\n.filterpanel-buttons .cancel-button span + svg.di {\n margin-left: 8px;\n margin-right: -8px;\n}\n.filterpanel-buttons .cancel-button.dso-spinner-left[disabled], .filterpanel-buttons .cancel-button.dso-spinner-right[disabled] {\n background-color: #fff;\n border-color: #39870c;\n color: #39870c;\n}\n.filterpanel-buttons .cancel-button.dso-spinner-left::before {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %2339870c; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n height: 24px;\n vertical-align: top;\n width: 24px;\n margin-right: 8px;\n}\n.filterpanel-buttons .cancel-button.dso-spinner-left:not([disabled]):hover::before {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %23fff; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n height: 24px;\n vertical-align: top;\n width: 24px;\n margin-right: 8px;\n}\n.filterpanel-buttons .cancel-button.dso-spinner-left:not([disabled]).btn-sm:hover::before {\n height: 16px;\n width: 16px;\n}\n.filterpanel-buttons .cancel-button.dso-spinner-right::after {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %2339870c; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n height: 24px;\n vertical-align: top;\n width: 24px;\n margin-left: 8px;\n}\n.filterpanel-buttons .cancel-button.dso-spinner-right:not([disabled]):hover::after {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %23fff; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n height: 24px;\n vertical-align: top;\n width: 24px;\n margin-left: 8px;\n}\n.filterpanel-buttons .cancel-button.dso-spinner-right:not([disabled]).btn-sm:hover::after {\n height: 16px;\n width: 16px;\n}\n.filterpanel-buttons .cancel-button dso-icon,\n.filterpanel-buttons .cancel-button svg.di, .filterpanel-buttons .cancel-button.extern::after, .filterpanel-buttons .cancel-button.download::after, .filterpanel-buttons .cancel-button.dso-spinner::before {\n margin-bottom: -4px;\n margin-top: -4px;\n}\n.filterpanel-buttons .cancel-button.dso-spinner-left::before {\n height: 16px;\n width: 16px;\n}\n.filterpanel-buttons .cancel-button.dso-spinner-right::after {\n height: 16px;\n width: 16px;\n}\n.filterpanel-buttons .apply-button {\n display: inline-block;\n font-size: 1em;\n font-weight: 500;\n margin-bottom: 0;\n text-decoration: none;\n touch-action: manipulation;\n text-align: left;\n user-select: none;\n vertical-align: middle;\n background-color: #39870c;\n border-color: #39870c;\n color: #fff;\n border-width: 1px;\n border-style: solid;\n border-radius: 4px;\n line-height: 1.5;\n min-width: 56px;\n padding: 11px 15px;\n line-height: 1rem;\n}\n.filterpanel-buttons .apply-button:focus, .filterpanel-buttons .apply-button:focus-visible {\n outline-offset: 2px;\n}\n.filterpanel-buttons .apply-button:active {\n outline: 0;\n}\n.filterpanel-buttons .apply-button:hover {\n background-color: #275937;\n border-color: #275937;\n color: #fff;\n}\n.filterpanel-buttons .apply-button:active {\n background-color: #15301e;\n border-color: #15301e;\n color: #fff;\n}\n.filterpanel-buttons .apply-button[disabled], .filterpanel-buttons .apply-button[disabled]:hover {\n background-color: #afcf9d;\n border-color: #afcf9d;\n color: #fff;\n}\n.filterpanel-buttons .apply-button.btn-sm {\n line-height: 1rem;\n}\n.filterpanel-buttons .apply-button.btn-sm dso-icon,\n.filterpanel-buttons .apply-button.btn-sm svg.di, .filterpanel-buttons .apply-button.btn-sm.extern::after, .filterpanel-buttons .apply-button.btn-sm.download::after, .filterpanel-buttons .apply-button.btn-sm.dso-spinner::before {\n margin-bottom: -4px;\n margin-top: -4px;\n}\n.filterpanel-buttons .apply-button.btn-sm.dso-spinner-left::before {\n height: 16px;\n width: 16px;\n}\n.filterpanel-buttons .apply-button.btn-sm.dso-spinner-right::after {\n height: 16px;\n width: 16px;\n}\n.filterpanel-buttons .apply-button dso-icon,\n.filterpanel-buttons .apply-button svg.di {\n margin-left: -8px;\n margin-right: 8px;\n}\n.filterpanel-buttons .apply-button span + dso-icon,\n.filterpanel-buttons .apply-button span + svg.di {\n margin-left: 8px;\n margin-right: -8px;\n}\n.filterpanel-buttons .apply-button.dso-spinner-left[disabled], .filterpanel-buttons .apply-button.dso-spinner-right[disabled] {\n background-color: #39870c;\n border-color: #39870c;\n color: #fff;\n}\n.filterpanel-buttons .apply-button.dso-spinner-left::before {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %23fff; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n height: 24px;\n vertical-align: top;\n width: 24px;\n margin-right: 8px;\n}\n.filterpanel-buttons .apply-button.dso-spinner-right::after {\n background-image: url(\"data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %23fff; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n content: \"\";\n display: inline-block;\n height: 24px;\n vertical-align: top;\n width: 24px;\n margin-left: 8px;\n}\n.filterpanel-buttons .apply-button dso-icon,\n.filterpanel-buttons .apply-button svg.di, .filterpanel-buttons .apply-button.extern::after, .filterpanel-buttons .apply-button.download::after, .filterpanel-buttons .apply-button.dso-spinner::before {\n margin-bottom: -4px;\n margin-top: -4px;\n}\n.filterpanel-buttons .apply-button.dso-spinner-left::before {\n height: 16px;\n width: 16px;\n}\n.filterpanel-buttons .apply-button.dso-spinner-right::after {\n height: 16px;\n width: 16px;\n}\n.filterpanel-buttons .cancel-button + .apply-button {\n margin-left: 16px;\n}";
13
+
14
+ const ViewerGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
15
+ constructor() {
16
+ super();
17
+ this.__registerHost();
18
+ this.__attachShadow();
19
+ this.dsoCloseOverlay = createEvent(this, "dsoCloseOverlay", 7);
20
+ this.dsoFilterpanelCancel = createEvent(this, "dsoFilterpanelCancel", 7);
21
+ this.dsoFilterpanelApply = createEvent(this, "dsoFilterpanelApply", 7);
22
+ this.dsoMainSizeChange = createEvent(this, "dsoMainSizeChange", 7);
23
+ this.sizeLabelMap = {
24
+ small: "smal",
25
+ medium: "middel",
26
+ large: "breed",
27
+ };
28
+ this.filterpanelSlot = null;
29
+ this.overlaySlot = null;
30
+ this.shrinkMain = () => {
31
+ this.mainSize = this.mainSize === "large" ? "medium" : "small";
32
+ };
33
+ this.expandMain = () => {
34
+ this.mainSize = this.mainSize === "small" ? "medium" : "large";
35
+ };
36
+ this.keyDownListener = (event) => {
37
+ if (event.key !== "Escape") {
38
+ return;
39
+ }
40
+ this.dsoCloseOverlay.emit(event);
41
+ };
42
+ this.filterpanelOpen = false;
43
+ this.overlayOpen = false;
44
+ this.initialMainSize = undefined;
45
+ this.mainSize = "large";
46
+ }
47
+ mainSizeWatcher(currentSize, previousSize) {
48
+ var _a;
49
+ this.dsoMainSizeChange.emit({
50
+ stage: "start",
51
+ previousSize,
52
+ currentSize,
53
+ });
54
+ (_a = this.mapPanel) === null || _a === void 0 ? void 0 : _a.addEventListener("transitionend", (e) => {
55
+ if (e.propertyName === "flex-basis") {
56
+ this.dsoMainSizeChange.emit({
57
+ stage: "end",
58
+ previousSize,
59
+ currentSize,
60
+ });
61
+ }
62
+ }, { once: true });
63
+ }
64
+ updateFocusTrap() {
65
+ var _a, _b;
66
+ if (this.filterpanelOpen && this.overlayOpen) {
67
+ return;
68
+ }
69
+ if (this.filterpanelFocustrap) {
70
+ if (this.filterpanelOpen && !((_a = this.filterpanel) === null || _a === void 0 ? void 0 : _a.hidden)) {
71
+ this.filterpanelFocustrap.activate();
72
+ this.host.addEventListener("keydown", this.keyDownListener);
73
+ }
74
+ else {
75
+ this.filterpanelFocustrap.deactivate();
76
+ this.host.removeEventListener("keydown", this.keyDownListener);
77
+ }
78
+ }
79
+ if (this.overlayFocustrap) {
80
+ if (this.overlayOpen && !((_b = this.overlay) === null || _b === void 0 ? void 0 : _b.hidden)) {
81
+ this.overlayFocustrap.activate();
82
+ this.host.addEventListener("keydown", this.keyDownListener);
83
+ }
84
+ else {
85
+ this.overlayFocustrap.deactivate();
86
+ this.host.removeEventListener("keydown", this.keyDownListener);
87
+ }
88
+ }
89
+ }
90
+ connectedCallback() {
91
+ this.filterpanelSlot = this.host.querySelector("div[slot='filterpanel']");
92
+ this.overlaySlot = this.host.querySelector("div[slot='overlay']");
93
+ }
94
+ componentDidLoad() {
95
+ if (this.filterpanel && this.filterpanelSlot) {
96
+ this.filterpanelFocustrap = createFocusTrap([this.filterpanel, this.filterpanelSlot], {
97
+ escapeDeactivates: false,
98
+ allowOutsideClick: true,
99
+ tabbableOptions: {
100
+ getShadowRoot: true,
101
+ },
102
+ });
103
+ }
104
+ if (this.overlay && this.overlaySlot) {
105
+ this.overlayFocustrap = createFocusTrap([this.overlay, this.overlaySlot], {
106
+ escapeDeactivates: false,
107
+ allowOutsideClick: true,
108
+ tabbableOptions: {
109
+ getShadowRoot: true,
110
+ },
111
+ });
112
+ }
113
+ this.updateFocusTrap();
114
+ }
115
+ componentWillLoad() {
116
+ if (this.initialMainSize) {
117
+ this.mainSize = this.initialMainSize;
118
+ }
119
+ }
120
+ componentDidUpdate() {
121
+ this.updateFocusTrap();
122
+ }
123
+ disconnectedCallback() {
124
+ var _a, _b;
125
+ (_a = this.overlayFocustrap) === null || _a === void 0 ? void 0 : _a.deactivate();
126
+ (_b = this.filterpanelFocustrap) === null || _b === void 0 ? void 0 : _b.deactivate();
127
+ this.host.removeEventListener("keydown", this.keyDownListener);
128
+ }
129
+ handleFilterpanelApply(mouseEvent) {
130
+ this.dsoFilterpanelApply.emit({ originalEvent: mouseEvent });
131
+ }
132
+ handleFilterpanelCancel(mouseEvent) {
133
+ this.dsoFilterpanelCancel.emit({ originalEvent: mouseEvent });
134
+ }
135
+ render() {
136
+ return (h(Host, Object.assign({}, { [this.mainSize]: true }), h("div", { class: "dso-map-panel", ref: (element) => (this.mapPanel = element) }, h("div", { class: "sizing-buttons" }, h("span", { class: "sr-only", "aria-live": "polite", "aria-atomic": "true" }, "breedte tekstpaneel: ", this.sizeLabelMap[this.mainSize]), h("button", { type: "button", class: "shrink", disabled: this.mainSize === "small", onClick: this.shrinkMain }, h("span", { class: "sr-only" }, "Kaartpaneel smaller maken"), h("dso-icon", { icon: "chevron-left" })), h("button", { type: "button", class: "expand", disabled: this.mainSize === "large", onClick: this.expandMain }, h("span", { class: "sr-only" }, "Kaartpaneel breder maken"), h("dso-icon", { icon: "chevron-right" }))), h("div", { class: "main" }, h("slot", { name: "main" }))), h("div", { id: "filterpanel", hidden: !this.filterpanelOpen || !this.filterpanelSlot, ref: (element) => (this.filterpanel = element) }, h("h2", null, "Uw keuzes"), h(ViewerGridFilterpanelButtons, { onApply: (e) => this.handleFilterpanelApply(e), onCancel: (e) => this.handleFilterpanelCancel(e) }), h("slot", { name: "filterpanel" }), h(ViewerGridFilterpanelButtons, { onApply: (e) => this.handleFilterpanelApply(e), onCancel: (e) => this.handleFilterpanelCancel(e) })), h("div", { class: "map" }, h("slot", { name: "map" })), h("div", { hidden: !this.overlayOpen || !this.overlaySlot, class: "dimscreen" }), h("div", { class: "overlay", hidden: !this.overlayOpen || !this.overlaySlot, ref: (element) => (this.overlay = element) }, h("button", { type: "button", class: "overlay-close-button", onClick: (e) => this.dsoCloseOverlay.emit(e) }, h("dso-icon", { icon: "times" }), h("span", { class: "sr-only" }, "sluiten")), h("slot", { name: "overlay" }), h("button", { "aria-hidden": "true", type: "button", class: "overlay-close-button", style: { zIndex: "-100" } }, h("dso-icon", { icon: "times" }), h("span", { class: "sr-only" }, "sluiten")))));
137
+ }
138
+ get host() { return this; }
139
+ static get watchers() { return {
140
+ "mainSize": ["mainSizeWatcher"]
141
+ }; }
142
+ static get style() { return viewerGridCss; }
143
+ }, [1, "dso-viewer-grid", {
144
+ "filterpanelOpen": [516, "filterpanel-open"],
145
+ "overlayOpen": [516, "overlay-open"],
146
+ "initialMainSize": [1, "initial-main-size"],
147
+ "mainSize": [32]
148
+ }]);
149
+ function defineCustomElement$1() {
150
+ if (typeof customElements === "undefined") {
151
+ return;
152
+ }
153
+ const components = ["dso-viewer-grid", "dso-icon"];
154
+ components.forEach(tagName => { switch (tagName) {
155
+ case "dso-viewer-grid":
156
+ if (!customElements.get(tagName)) {
157
+ customElements.define(tagName, ViewerGrid);
158
+ }
159
+ break;
160
+ case "dso-icon":
161
+ if (!customElements.get(tagName)) {
162
+ defineCustomElement$2();
163
+ }
164
+ break;
165
+ } });
166
+ }
167
+
168
+ const DsoViewerGrid = ViewerGrid;
169
+ const defineCustomElement = defineCustomElement$1;
170
+
171
+ export { DsoViewerGrid, defineCustomElement };