@dso-toolkit/core 33.2.0 → 34.1.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 (170) hide show
  1. package/dist/cjs/dso-alert.cjs.entry.js +1 -1
  2. package/dist/cjs/dso-attachments-counter.cjs.entry.js +2 -2
  3. package/dist/cjs/dso-autosuggest.cjs.entry.js +3 -71
  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 +49 -28
  7. package/dist/cjs/dso-dropdown-menu.cjs.entry.js +19 -232
  8. package/dist/cjs/dso-header.cjs.entry.js +101 -0
  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-info-button.cjs.entry.js +2 -2
  13. package/dist/cjs/dso-info_2.cjs.entry.js +2 -2
  14. package/dist/cjs/dso-label.cjs.entry.js +1 -1
  15. package/dist/cjs/dso-map-base-layers.cjs.entry.js +7 -6
  16. package/dist/cjs/dso-map-controls.cjs.entry.js +3 -3
  17. package/dist/cjs/dso-map-overlays.cjs.entry.js +9 -10
  18. package/dist/cjs/dso-ozon-content.cjs.entry.js +1 -1
  19. package/dist/cjs/dso-progress-bar.cjs.entry.js +1 -1
  20. package/dist/cjs/dso-progress-indicator.cjs.entry.js +1 -1
  21. package/dist/cjs/dso-toggletip.cjs.entry.js +1 -1
  22. package/dist/cjs/dso-toolkit.cjs.js +2 -2
  23. package/dist/cjs/dso-tooltip.cjs.entry.js +169 -76
  24. package/dist/cjs/dso-tree-view.cjs.entry.js +2 -2
  25. package/dist/cjs/dso-viewer-grid.cjs.entry.js +778 -0
  26. package/dist/cjs/{index-fcdfdd38.js → index-5ea63531.js} +26 -2
  27. package/dist/cjs/index-794ad37a.js +72 -0
  28. package/dist/cjs/index.esm-2ac7081c.js +267 -0
  29. package/dist/cjs/loader.cjs.js +2 -2
  30. package/dist/collection/collection-manifest.json +3 -1
  31. package/dist/collection/components/alert/alert.css +0 -3
  32. package/dist/collection/components/anchor/anchor.template.js +17 -0
  33. package/dist/collection/components/attachments-counter/attachments-counter.css +0 -4
  34. package/dist/collection/components/autosuggest/autosuggest.css +0 -3
  35. package/dist/collection/components/badge/badge.css +0 -3
  36. package/dist/collection/components/banner/banner.css +0 -3
  37. package/dist/collection/components/button/button.template.js +48 -0
  38. package/dist/collection/components/context/context.template.js +42 -0
  39. package/dist/collection/components/date-picker/date-picker.css +3 -5
  40. package/dist/collection/components/date-picker/date-picker.js +49 -28
  41. package/dist/collection/components/date-picker/date-picker.template.js +2 -1
  42. package/dist/collection/components/definition-list/definition-list.template.js +36 -0
  43. package/dist/collection/components/dropdown-menu/dropdown-menu.css +0 -3
  44. package/dist/collection/components/dropdown-menu/dropdown-menu.js +15 -4
  45. package/dist/collection/components/header/header.css +433 -0
  46. package/dist/collection/components/header/header.js +294 -0
  47. package/dist/collection/components/header/header.template.js +32 -0
  48. package/dist/collection/components/helpcenter-panel/helpcenter-panel.css +0 -3
  49. package/dist/collection/components/highlight-box/highlight-box.css +0 -3
  50. package/dist/collection/components/icon/icon.css +0 -4
  51. package/dist/collection/components/info/info.css +1 -4
  52. package/dist/collection/components/info-button/info-button.css +1 -3
  53. package/dist/collection/components/label/label.css +0 -3
  54. package/dist/collection/components/label-group/label-group.template.js +7 -0
  55. package/dist/collection/components/list/list.template.js +37 -0
  56. package/dist/collection/components/map-base-layers/map-base-layers.css +4 -3
  57. package/dist/collection/components/map-base-layers/map-base-layers.js +10 -27
  58. package/dist/collection/components/map-controls/map-controls.css +30 -11
  59. package/dist/collection/components/map-controls/map-controls.js +10 -11
  60. package/dist/collection/components/map-controls/map-controls.template.js +12 -20
  61. package/dist/collection/components/map-overlays/map-overlays.css +4 -3
  62. package/dist/collection/components/map-overlays/map-overlays.js +13 -35
  63. package/dist/collection/components/ozon-content/ozon-content.css +0 -3
  64. package/dist/collection/components/progress-bar/progress-bar.css +0 -3
  65. package/dist/collection/components/progress-indicator/progress-indicator.css +0 -3
  66. package/dist/collection/components/selectable/selectable.css +0 -3
  67. package/dist/collection/components/toggletip/toggletip.css +0 -3
  68. package/dist/collection/components/tooltip/tooltip.css +34 -15
  69. package/dist/collection/components/tooltip/tooltip.js +19 -4
  70. package/dist/collection/components/tooltip/tooltip.template.js +3 -5
  71. package/dist/collection/components/tree-view/tree-view.css +3 -3
  72. package/dist/collection/components/viewer-grid/viewer-grid-document-header.template.js +39 -0
  73. package/dist/collection/components/viewer-grid/viewer-grid-document-list-item.template.js +19 -0
  74. package/dist/collection/components/viewer-grid/viewer-grid-filterblok.template.js +28 -0
  75. package/dist/collection/components/viewer-grid/viewer-grid.css +386 -0
  76. package/dist/collection/components/viewer-grid/viewer-grid.js +128 -0
  77. package/dist/collection/components/viewer-grid/viewer-grid.template.js +23 -0
  78. package/dist/custom-elements/index.d.ts +12 -0
  79. package/dist/custom-elements/index.js +1162 -132
  80. package/dist/dso-toolkit/dso-toolkit.css +1 -1
  81. package/dist/dso-toolkit/dso-toolkit.esm.js +1 -1
  82. package/dist/dso-toolkit/p-06de0fa1.entry.js +1 -0
  83. package/dist/dso-toolkit/p-17f073d1.entry.js +1 -0
  84. package/dist/dso-toolkit/p-1805f5b0.js +1 -0
  85. package/dist/dso-toolkit/{p-75233655.entry.js → p-1fefbf8c.entry.js} +1 -1
  86. package/dist/dso-toolkit/{p-a52d3623.entry.js → p-20856f91.entry.js} +1 -1
  87. package/dist/dso-toolkit/{p-262858dd.entry.js → p-2b6a3dfa.entry.js} +1 -1
  88. package/dist/dso-toolkit/{p-be5682cc.entry.js → p-348414bf.entry.js} +1 -1
  89. package/dist/dso-toolkit/{p-984551a8.entry.js → p-3b493a2c.entry.js} +1 -1
  90. package/dist/dso-toolkit/{p-0a08ac9f.entry.js → p-4e573fc5.entry.js} +1 -1
  91. package/dist/dso-toolkit/{p-c9c1bc8f.entry.js → p-5037944e.entry.js} +1 -1
  92. package/dist/dso-toolkit/p-7b006b11.entry.js +1 -0
  93. package/dist/dso-toolkit/p-88bc5873.entry.js +1 -0
  94. package/dist/dso-toolkit/p-8bf3a60e.js +5 -0
  95. package/dist/dso-toolkit/p-94b79e43.entry.js +1 -0
  96. package/dist/dso-toolkit/{p-83f166b3.entry.js → p-94dffa65.entry.js} +1 -1
  97. package/dist/dso-toolkit/{p-b07991b9.entry.js → p-951f5872.entry.js} +1 -1
  98. package/dist/dso-toolkit/p-a7306b7b.entry.js +1 -0
  99. package/dist/dso-toolkit/p-aadc4f8e.entry.js +1 -0
  100. package/dist/dso-toolkit/p-ad2210ad.entry.js +1 -0
  101. package/dist/dso-toolkit/p-b69134ed.entry.js +5 -0
  102. package/dist/dso-toolkit/{p-b5b946de.entry.js → p-bc14cafd.entry.js} +1 -1
  103. package/dist/dso-toolkit/{p-5665f1ee.entry.js → p-c54ecae1.entry.js} +1 -1
  104. package/dist/dso-toolkit/p-c95108fe.entry.js +1 -0
  105. package/dist/dso-toolkit/{p-e814d644.entry.js → p-daa1e29d.entry.js} +1 -1
  106. package/dist/dso-toolkit/p-dad72605.js +1 -0
  107. package/dist/dso-toolkit/{p-2e7d535c.entry.js → p-dc86d830.entry.js} +1 -1
  108. package/dist/dso-toolkit/{p-19de4cc7.entry.js → p-f0b67246.entry.js} +1 -1
  109. package/dist/esm/dso-alert.entry.js +1 -1
  110. package/dist/esm/dso-attachments-counter.entry.js +2 -2
  111. package/dist/esm/dso-autosuggest.entry.js +2 -70
  112. package/dist/esm/dso-badge.entry.js +1 -1
  113. package/dist/esm/dso-banner.entry.js +1 -1
  114. package/dist/esm/dso-date-picker.entry.js +49 -28
  115. package/dist/esm/dso-dropdown-menu.entry.js +17 -230
  116. package/dist/esm/dso-header.entry.js +97 -0
  117. package/dist/esm/dso-helpcenter-panel.entry.js +1 -1
  118. package/dist/esm/dso-highlight-box.entry.js +1 -1
  119. package/dist/esm/dso-icon.entry.js +1 -1
  120. package/dist/esm/dso-info-button.entry.js +2 -2
  121. package/dist/esm/dso-info_2.entry.js +2 -2
  122. package/dist/esm/dso-label.entry.js +1 -1
  123. package/dist/esm/dso-map-base-layers.entry.js +7 -6
  124. package/dist/esm/dso-map-controls.entry.js +3 -3
  125. package/dist/esm/dso-map-overlays.entry.js +9 -10
  126. package/dist/esm/dso-ozon-content.entry.js +1 -1
  127. package/dist/esm/dso-progress-bar.entry.js +1 -1
  128. package/dist/esm/dso-progress-indicator.entry.js +1 -1
  129. package/dist/esm/dso-toggletip.entry.js +1 -1
  130. package/dist/esm/dso-toolkit.js +2 -2
  131. package/dist/esm/dso-tooltip.entry.js +169 -76
  132. package/dist/esm/dso-tree-view.entry.js +2 -2
  133. package/dist/esm/dso-viewer-grid.entry.js +774 -0
  134. package/dist/esm/{index-61410be2.js → index-d54cae76.js} +26 -2
  135. package/dist/esm/index-f2bf58ce.js +70 -0
  136. package/dist/esm/index.esm-a1362957.js +262 -0
  137. package/dist/esm/loader.js +2 -2
  138. package/dist/types/components/anchor/anchor.template.d.ts +2 -0
  139. package/dist/types/components/button/button.template.d.ts +2 -0
  140. package/dist/types/components/context/context.template.d.ts +3 -0
  141. package/dist/types/components/date-picker/date-picker.d.ts +3 -1
  142. package/dist/types/components/date-picker/date-picker.template.d.ts +1 -1
  143. package/dist/types/components/definition-list/definition-list.template.d.ts +3 -0
  144. package/dist/types/components/dropdown-menu/dropdown-menu.d.ts +1 -1
  145. package/dist/types/components/header/header.d.ts +36 -0
  146. package/dist/types/components/header/header.template.d.ts +2 -0
  147. package/dist/types/components/label-group/label-group.template.d.ts +2 -0
  148. package/dist/types/components/list/list.template.d.ts +3 -0
  149. package/dist/types/components/map-base-layers/map-base-layers.d.ts +3 -4
  150. package/dist/types/components/map-base-layers/map-base-layers.interfaces.d.ts +6 -1
  151. package/dist/types/components/map-controls/map-controls.template.d.ts +1 -1
  152. package/dist/types/components/map-overlays/map-overlays.d.ts +4 -4
  153. package/dist/types/components/map-overlays/map-overlays.interfaces.d.ts +7 -1
  154. package/dist/types/components/tooltip/tooltip.d.ts +1 -0
  155. package/dist/types/components/viewer-grid/viewer-grid-document-header.template.d.ts +3 -0
  156. package/dist/types/components/viewer-grid/viewer-grid-document-list-item.template.d.ts +3 -0
  157. package/dist/types/components/viewer-grid/viewer-grid-filterblok.template.d.ts +3 -0
  158. package/dist/types/components/viewer-grid/viewer-grid.d.ts +22 -0
  159. package/dist/types/components/viewer-grid/viewer-grid.template.d.ts +3 -0
  160. package/dist/types/components.d.ts +50 -8
  161. package/package.json +4 -2
  162. package/dist/dso-toolkit/p-08427682.entry.js +0 -1
  163. package/dist/dso-toolkit/p-731a9631.entry.js +0 -1
  164. package/dist/dso-toolkit/p-741e96de.entry.js +0 -5
  165. package/dist/dso-toolkit/p-759920d0.entry.js +0 -1
  166. package/dist/dso-toolkit/p-a40eeb32.js +0 -1
  167. package/dist/dso-toolkit/p-affe82e6.entry.js +0 -1
  168. package/dist/dso-toolkit/p-e4269e02.entry.js +0 -1
  169. package/dist/dso-toolkit/p-e7700d9e.entry.js +0 -1
  170. package/dist/dso-toolkit/p-fd5e24c9.entry.js +0 -1
@@ -0,0 +1,386 @@
1
+ *,
2
+ *::after,
3
+ *::before {
4
+ box-sizing: border-box;
5
+ }
6
+
7
+ :host {
8
+ display: flex;
9
+ height: 100vh;
10
+ overflow: hidden;
11
+ position: relative;
12
+ }
13
+
14
+ :host([small]) .dso-map-panel {
15
+ flex-basis: 375px;
16
+ min-width: 0;
17
+ max-width: 375px;
18
+ }
19
+ @media screen and (max-width: 375px) {
20
+ :host([small]) .dso-map-panel {
21
+ flex-basis: 100vw;
22
+ max-width: 100vw;
23
+ min-width: 0;
24
+ transition: none;
25
+ }
26
+ }
27
+
28
+ :host([medium]) .dso-map-panel {
29
+ flex-basis: 624px;
30
+ min-width: 375px;
31
+ max-width: 624px;
32
+ }
33
+ @media screen and (max-width: 624px) {
34
+ :host([medium]) .dso-map-panel {
35
+ flex-basis: 100vw;
36
+ max-width: 100vw;
37
+ min-width: 375px;
38
+ transition: none;
39
+ }
40
+ }
41
+
42
+ :host([large]) .dso-map-panel {
43
+ flex-basis: 60%;
44
+ min-width: 768px;
45
+ max-width: 1024px;
46
+ }
47
+ @media screen and (max-width: 768px) {
48
+ :host([large]) .dso-map-panel {
49
+ flex-basis: 100vw;
50
+ max-width: 100vw;
51
+ min-width: 768px;
52
+ transition: none;
53
+ }
54
+ }
55
+
56
+ .shrink,
57
+ .expand,
58
+ .overlay-close-button {
59
+ display: inline-block;
60
+ font-size: 1em;
61
+ font-weight: 500;
62
+ margin-bottom: 0;
63
+ text-decoration: none;
64
+ touch-action: manipulation;
65
+ text-align: left;
66
+ user-select: none;
67
+ vertical-align: middle;
68
+ border: 0;
69
+ color: #39870c;
70
+ line-height: 1;
71
+ padding: 0;
72
+ background-color: transparent;
73
+ }
74
+ .shrink:focus, .shrink:focus-visible,
75
+ .expand:focus,
76
+ .expand:focus-visible,
77
+ .overlay-close-button:focus,
78
+ .overlay-close-button:focus-visible {
79
+ outline-offset: 2px;
80
+ }
81
+ .shrink:active,
82
+ .expand:active,
83
+ .overlay-close-button:active {
84
+ outline: 0;
85
+ }
86
+ .shrink.extern::after, .shrink.download::after,
87
+ .expand.extern::after,
88
+ .expand.download::after,
89
+ .overlay-close-button.extern::after,
90
+ .overlay-close-button.download::after {
91
+ content: "";
92
+ display: inline-block;
93
+ height: 1.5em;
94
+ margin-left: 8px;
95
+ vertical-align: top;
96
+ width: 1.5em;
97
+ }
98
+ .shrink[disabled],
99
+ .expand[disabled],
100
+ .overlay-close-button[disabled] {
101
+ color: #afcf9d;
102
+ }
103
+ .shrink:not([disabled]):hover,
104
+ .expand:not([disabled]):hover,
105
+ .overlay-close-button:not([disabled]):hover {
106
+ color: #676cb0;
107
+ text-decoration: underline;
108
+ }
109
+ .shrink:not([disabled]):active,
110
+ .expand:not([disabled]):active,
111
+ .overlay-close-button:not([disabled]):active {
112
+ color: #676cb0;
113
+ }
114
+ .shrink.btn-align,
115
+ .expand.btn-align,
116
+ .overlay-close-button.btn-align {
117
+ line-height: calc(1.5em - 1px);
118
+ padding: 11px 0;
119
+ position: relative;
120
+ }
121
+ .shrink.extern::after, .shrink.download::after,
122
+ .expand.extern::after,
123
+ .expand.download::after,
124
+ .overlay-close-button.extern::after,
125
+ .overlay-close-button.download::after {
126
+ position: relative;
127
+ top: -2px;
128
+ }
129
+ .shrink.download::after,
130
+ .expand.download::after,
131
+ .overlay-close-button.download::after {
132
+ background: var(--dso-icon, var(--di-download)) no-repeat;
133
+ background-position: center;
134
+ background-size: cover;
135
+ height: 1.5em;
136
+ vertical-align: top;
137
+ width: 1.5em;
138
+ }
139
+ .shrink.download[disabled]::after,
140
+ .expand.download[disabled]::after,
141
+ .overlay-close-button.download[disabled]::after {
142
+ --dso-icon: var(--di-download-grasgroen-40);
143
+ }
144
+ .shrink.download:not([disabled]):hover::after, .shrink.download:not([disabled]):active::after,
145
+ .expand.download:not([disabled]):hover::after,
146
+ .expand.download:not([disabled]):active::after,
147
+ .overlay-close-button.download:not([disabled]):hover::after,
148
+ .overlay-close-button.download:not([disabled]):active::after {
149
+ --dso-icon: var(--di-download-scampi);
150
+ }
151
+ .shrink.extern::after,
152
+ .expand.extern::after,
153
+ .overlay-close-button.extern::after {
154
+ background: var(--dso-icon, var(--di-external-link)) no-repeat;
155
+ background-position: center;
156
+ background-size: cover;
157
+ height: 1.5em;
158
+ vertical-align: top;
159
+ width: 1.5em;
160
+ }
161
+ .shrink.extern[disabled]::after,
162
+ .expand.extern[disabled]::after,
163
+ .overlay-close-button.extern[disabled]::after {
164
+ --dso-icon: var(--di-external-link-grasgroen-40);
165
+ }
166
+ .shrink.extern:not([disabled]):hover::after, .shrink.extern:not([disabled]):active::after,
167
+ .expand.extern:not([disabled]):hover::after,
168
+ .expand.extern:not([disabled]):active::after,
169
+ .overlay-close-button.extern:not([disabled]):hover::after,
170
+ .overlay-close-button.extern:not([disabled]):active::after {
171
+ --dso-icon: var(--di-external-link-scampi);
172
+ }
173
+ .shrink dso-icon + span:not(.sr-only),
174
+ .shrink svg.di + span:not(.sr-only),
175
+ .shrink span:not(.sr-only) + dso-icon,
176
+ .shrink span:not(.sr-only) + svg.di,
177
+ .expand dso-icon + span:not(.sr-only),
178
+ .expand svg.di + span:not(.sr-only),
179
+ .expand span:not(.sr-only) + dso-icon,
180
+ .expand span:not(.sr-only) + svg.di,
181
+ .overlay-close-button dso-icon + span:not(.sr-only),
182
+ .overlay-close-button svg.di + span:not(.sr-only),
183
+ .overlay-close-button span:not(.sr-only) + dso-icon,
184
+ .overlay-close-button span:not(.sr-only) + svg.di {
185
+ margin-left: 8px;
186
+ }
187
+ .shrink dso-icon,
188
+ .shrink svg.di,
189
+ .shrink span,
190
+ .expand dso-icon,
191
+ .expand svg.di,
192
+ .expand span,
193
+ .overlay-close-button dso-icon,
194
+ .overlay-close-button svg.di,
195
+ .overlay-close-button span {
196
+ vertical-align: middle;
197
+ }
198
+ .shrink:hover,
199
+ .expand:hover,
200
+ .overlay-close-button:hover {
201
+ cursor: pointer;
202
+ }
203
+ .shrink[disabled],
204
+ .expand[disabled],
205
+ .overlay-close-button[disabled] {
206
+ display: none;
207
+ }
208
+
209
+ .overlay-close-button {
210
+ position: absolute;
211
+ top: 8px;
212
+ right: 16px;
213
+ }
214
+ .overlay-close-button .sr-only {
215
+ position: absolute;
216
+ width: 1px;
217
+ height: 1px;
218
+ padding: 0;
219
+ margin: -1px;
220
+ overflow: hidden;
221
+ clip: rect(0, 0, 0, 0);
222
+ border: 0;
223
+ }
224
+
225
+ .dso-map-panel {
226
+ background-color: #fff;
227
+ box-shadow: 2px 0 8px 0 rgba(0, 0, 0, 0.4);
228
+ flex-shrink: 0;
229
+ flex-grow: 0;
230
+ padding-right: 8px;
231
+ position: relative;
232
+ transition: flex-basis 0.2s ease-in, max-width 0.2s ease-in, min-width 0.2s ease-in;
233
+ z-index: 1;
234
+ }
235
+ .dso-map-panel .dso-filterblok-address {
236
+ font-weight: bold;
237
+ margin: 8px 0;
238
+ }
239
+ .dso-map-panel .main {
240
+ height: 100%;
241
+ overflow-y: scroll;
242
+ padding: 8px 16px;
243
+ }
244
+
245
+ .sizing-buttons {
246
+ left: calc(100% + 1px);
247
+ overflow-x: hidden;
248
+ padding: 0 4px 4px 0;
249
+ position: absolute;
250
+ top: 16px;
251
+ transition: left 0.2s ease-in;
252
+ width: 44px;
253
+ z-index: -1;
254
+ }
255
+ .sizing-buttons button {
256
+ display: inline-block;
257
+ font-size: 1em;
258
+ font-weight: 500;
259
+ margin-bottom: 0;
260
+ text-decoration: none;
261
+ touch-action: manipulation;
262
+ text-align: left;
263
+ user-select: none;
264
+ vertical-align: middle;
265
+ background-color: #fff;
266
+ border-color: #39870c;
267
+ color: #39870c;
268
+ border-width: 1px;
269
+ border-style: solid;
270
+ border-radius: 4px;
271
+ line-height: 1.5;
272
+ min-width: 56px;
273
+ padding: 11px 15px;
274
+ border: 0;
275
+ padding: 8px;
276
+ border-radius: 0;
277
+ border-bottom-right-radius: 4px;
278
+ border-top-right-radius: 4px;
279
+ box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.4);
280
+ flex: 0 0 100%;
281
+ height: 40px;
282
+ min-width: auto;
283
+ width: 40px;
284
+ }
285
+ .sizing-buttons button:focus, .sizing-buttons button:focus-visible {
286
+ outline-offset: 2px;
287
+ }
288
+ .sizing-buttons button:active {
289
+ outline: 0;
290
+ }
291
+ .sizing-buttons button.extern::after, .sizing-buttons button.download::after {
292
+ content: "";
293
+ display: inline-block;
294
+ height: 1.5em;
295
+ margin-left: 8px;
296
+ vertical-align: top;
297
+ width: 1.5em;
298
+ }
299
+ .sizing-buttons button:hover {
300
+ background-color: #39870c;
301
+ border-color: #39870c;
302
+ color: #fff;
303
+ }
304
+ .sizing-buttons button:active {
305
+ background-color: #275937;
306
+ border-color: #275937;
307
+ color: #fff;
308
+ }
309
+ .sizing-buttons button[disabled], .sizing-buttons button[disabled]:hover {
310
+ background-color: #fff;
311
+ border-color: #afcf9d;
312
+ color: #afcf9d;
313
+ }
314
+ .sizing-buttons button.btn-sm {
315
+ line-height: 16px;
316
+ }
317
+ .sizing-buttons button.btn-sm dso-icon,
318
+ .sizing-buttons button.btn-sm svg.di, .sizing-buttons button.btn-sm.extern::after, .sizing-buttons button.btn-sm.download::after {
319
+ margin-bottom: -4px;
320
+ margin-top: -4px;
321
+ }
322
+ .sizing-buttons button.download::after {
323
+ background: var(--dso-icon, var(--di-download)) no-repeat;
324
+ background-position: center;
325
+ background-size: cover;
326
+ height: 1.5em;
327
+ vertical-align: top;
328
+ width: 1.5em;
329
+ }
330
+ .sizing-buttons button.download:hover::after {
331
+ --dso-icon: var(--di-download-wit);
332
+ }
333
+ .sizing-buttons button.download[disabled]::after {
334
+ --dso-icon: var(--di-download-grasgroen-40);
335
+ }
336
+ .sizing-buttons button.extern::after {
337
+ background: var(--dso-icon, var(--di-external-link)) no-repeat;
338
+ background-position: center;
339
+ background-size: cover;
340
+ height: 1.5em;
341
+ vertical-align: top;
342
+ width: 1.5em;
343
+ }
344
+ .sizing-buttons button.extern:hover::after {
345
+ --dso-icon: var(--di-external-link-wit);
346
+ }
347
+ .sizing-buttons button.extern[disabled]::after {
348
+ --dso-icon: var(--di-external-link-grasgroen-40);
349
+ }
350
+ .sizing-buttons button > span {
351
+ position: absolute;
352
+ width: 1px;
353
+ height: 1px;
354
+ padding: 0;
355
+ margin: -1px;
356
+ overflow: hidden;
357
+ clip: rect(0, 0, 0, 0);
358
+ border: 0;
359
+ }
360
+ .sizing-buttons button:focus-visible {
361
+ background-color: #39870c;
362
+ border-color: #39870c;
363
+ color: #fff;
364
+ outline: none;
365
+ }
366
+ .sizing-buttons button:hover dso-icon {
367
+ color: #fff;
368
+ }
369
+
370
+ .map {
371
+ height: 100%;
372
+ width: 100%;
373
+ overflow: hidden;
374
+ }
375
+
376
+ .overlay {
377
+ background-color: #fff;
378
+ box-shadow: -2px 0 5px #666;
379
+ height: 100%;
380
+ overflow-y: auto;
381
+ padding: 40px 16px 8px;
382
+ position: absolute;
383
+ right: 0;
384
+ width: 624px;
385
+ z-index: 2;
386
+ }
@@ -0,0 +1,128 @@
1
+ import { h, Component, Prop, State, Host, Element, Event, } from "@stencil/core";
2
+ import * as focusTrap from "focus-trap";
3
+ export class ViewerGrid {
4
+ constructor() {
5
+ this.overlayOpen = false;
6
+ this.mainSize = "large";
7
+ this.shrinkMain = () => {
8
+ this.mainSize = this.mainSize == "large" ? "medium" : "small";
9
+ };
10
+ this.expandMain = () => {
11
+ this.mainSize = this.mainSize == "small" ? "medium" : "large";
12
+ };
13
+ this.keyDownListener = (event) => {
14
+ if (event.key != "Escape") {
15
+ return;
16
+ }
17
+ this.closeOverlay.emit(event);
18
+ };
19
+ }
20
+ updateFocusTrap() {
21
+ if (!this.trap) {
22
+ return;
23
+ }
24
+ if (this.overlayOpen) {
25
+ this.trap.activate();
26
+ this.host.addEventListener("keydown", this.keyDownListener);
27
+ }
28
+ else {
29
+ this.trap.deactivate();
30
+ this.host.removeEventListener("keydown", this.keyDownListener);
31
+ }
32
+ }
33
+ connectedCallback() {
34
+ this.overlaySlot = this.host.querySelector("div[slot = 'overlay']");
35
+ }
36
+ componentDidLoad() {
37
+ if (!this.overlay || !this.overlaySlot) {
38
+ return;
39
+ }
40
+ this.trap = focusTrap.createFocusTrap([this.overlay, this.overlaySlot], {
41
+ escapeDeactivates: false,
42
+ allowOutsideClick: true,
43
+ });
44
+ this.updateFocusTrap();
45
+ }
46
+ componentDidUpdate() {
47
+ this.updateFocusTrap();
48
+ }
49
+ disconnectedCallback() {
50
+ if (this.trap) {
51
+ this.trap.deactivate();
52
+ }
53
+ this.host.removeEventListener("keydown", this.keyDownListener);
54
+ }
55
+ render() {
56
+ return (h(Host, Object.assign({}, { [this.mainSize]: true }),
57
+ h("div", { class: "dso-map-panel" },
58
+ h("div", { class: "sizing-buttons" },
59
+ h("button", { type: "button", class: "shrink", disabled: this.mainSize == "small", onClick: this.shrinkMain },
60
+ h("dso-icon", { icon: "chevron-left" })),
61
+ h("button", { type: "button", class: "expand", disabled: this.mainSize == "large", onClick: this.expandMain },
62
+ h("dso-icon", { icon: "chevron-right" }))),
63
+ h("div", { class: "main" },
64
+ h("slot", { name: "main" }))),
65
+ h("div", { class: "map" },
66
+ h("slot", { name: "map" })),
67
+ h("div", { class: "overlay", hidden: !this.overlayOpen || !this.overlaySlot, ref: (element) => (this.overlay = element) },
68
+ h("button", { type: "button", class: "overlay-close-button", onClick: (e) => this.closeOverlay.emit(e) },
69
+ h("dso-icon", { icon: "times" }),
70
+ h("span", { class: "sr-only" }, "sluiten")),
71
+ h("slot", { name: "overlay" }))));
72
+ }
73
+ static get is() { return "dso-viewer-grid"; }
74
+ static get encapsulation() { return "shadow"; }
75
+ static get originalStyleUrls() { return {
76
+ "$": ["viewer-grid.scss"]
77
+ }; }
78
+ static get styleUrls() { return {
79
+ "$": ["viewer-grid.css"]
80
+ }; }
81
+ static get properties() { return {
82
+ "overlayOpen": {
83
+ "type": "boolean",
84
+ "mutable": false,
85
+ "complexType": {
86
+ "original": "boolean",
87
+ "resolved": "boolean",
88
+ "references": {}
89
+ },
90
+ "required": false,
91
+ "optional": false,
92
+ "docs": {
93
+ "tags": [],
94
+ "text": ""
95
+ },
96
+ "attribute": "overlay-open",
97
+ "reflect": false,
98
+ "defaultValue": "false"
99
+ }
100
+ }; }
101
+ static get states() { return {
102
+ "mainSize": {}
103
+ }; }
104
+ static get events() { return [{
105
+ "method": "closeOverlay",
106
+ "name": "closeOverlay",
107
+ "bubbles": true,
108
+ "cancelable": true,
109
+ "composed": true,
110
+ "docs": {
111
+ "tags": [],
112
+ "text": ""
113
+ },
114
+ "complexType": {
115
+ "original": "MouseEvent | KeyboardEvent",
116
+ "resolved": "KeyboardEvent | MouseEvent",
117
+ "references": {
118
+ "MouseEvent": {
119
+ "location": "global"
120
+ },
121
+ "KeyboardEvent": {
122
+ "location": "global"
123
+ }
124
+ }
125
+ }
126
+ }]; }
127
+ static get elementRef() { return "host"; }
128
+ }
@@ -0,0 +1,23 @@
1
+ import { html } from "lit-html";
2
+ export function viewerGridTemplate({ main, map, overlay, noOverlay, overlayOpen, closeOverlay, }) {
3
+ return noOverlay
4
+ ? html `
5
+ <dso-viewer-grid
6
+ overlay-open=${overlayOpen}
7
+ @closeOverlay=${closeOverlay}
8
+ >
9
+ <div slot="main">${main}</div>
10
+ <div slot="map">${map}</div>
11
+ </dso-viewer-grid>
12
+ `
13
+ : html `
14
+ <dso-viewer-grid
15
+ overlay-open=${overlayOpen}
16
+ @closeOverlay=${closeOverlay}
17
+ >
18
+ <div slot="main">${main}</div>
19
+ <div slot="map">${map}</div>
20
+ <div slot="overlay">${overlay}</div>
21
+ </dso-viewer-grid>
22
+ `;
23
+ }
@@ -44,6 +44,12 @@ export const DsoDropdownMenu: {
44
44
  new (): DsoDropdownMenu;
45
45
  };
46
46
 
47
+ interface DsoHeader extends Components.DsoHeader, HTMLElement {}
48
+ export const DsoHeader: {
49
+ prototype: DsoHeader;
50
+ new (): DsoHeader;
51
+ };
52
+
47
53
  interface DsoHelpcenterPanel extends Components.DsoHelpcenterPanel, HTMLElement {}
48
54
  export const DsoHelpcenterPanel: {
49
55
  prototype: DsoHelpcenterPanel;
@@ -140,6 +146,12 @@ export const DsoTreeView: {
140
146
  new (): DsoTreeView;
141
147
  };
142
148
 
149
+ interface DsoViewerGrid extends Components.DsoViewerGrid, HTMLElement {}
150
+ export const DsoViewerGrid: {
151
+ prototype: DsoViewerGrid;
152
+ new (): DsoViewerGrid;
153
+ };
154
+
143
155
  /**
144
156
  * Utility to define all custom elements within this package using the tag name provided in the component's source.
145
157
  * When defining each custom element, it will also check it's safe to define by: