@dso-toolkit/core 34.1.0 → 35.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 (116) hide show
  1. package/dist/cjs/dso-autosuggest.cjs.entry.js +5 -1
  2. package/dist/cjs/dso-header.cjs.entry.js +1 -1
  3. package/dist/cjs/dso-image-overlay.cjs.entry.js +62 -0
  4. package/dist/cjs/dso-info_2.cjs.entry.js +4 -1
  5. package/dist/cjs/dso-map-base-layers.cjs.entry.js +14 -1
  6. package/dist/cjs/dso-map-overlays.cjs.entry.js +14 -1
  7. package/dist/cjs/dso-ozon-content.cjs.entry.js +281 -423
  8. package/dist/cjs/dso-toolkit.cjs.js +1 -1
  9. package/dist/cjs/dso-viewer-grid.cjs.entry.js +57 -726
  10. package/dist/cjs/focus-trap.esm-8d3e3fb6.js +712 -0
  11. package/dist/cjs/loader.cjs.js +1 -1
  12. package/dist/collection/collection-manifest.json +3 -2
  13. package/dist/collection/components/autosuggest/autosuggest.js +6 -2
  14. package/dist/collection/components/header/header.css +21 -13
  15. package/dist/collection/components/highlight-box/highlight-box.template.js +4 -1
  16. package/dist/collection/components/image-overlay/image-overlay.css +263 -0
  17. package/dist/collection/components/image-overlay/image-overlay.js +72 -0
  18. package/dist/collection/components/image-overlay/image-overlay.template.js +7 -0
  19. package/dist/collection/components/info/info.css +20 -0
  20. package/dist/collection/components/map-base-layers/map-base-layers.js +16 -1
  21. package/dist/collection/components/map-overlays/map-overlays.js +16 -1
  22. package/dist/collection/components/ozon-content/nodes/al.node.js +13 -0
  23. package/dist/collection/components/ozon-content/nodes/document.node.js +9 -0
  24. package/dist/collection/components/ozon-content/nodes/ext-ref.node.js +15 -0
  25. package/dist/collection/components/ozon-content/nodes/fallback.node.js +10 -0
  26. package/dist/collection/components/ozon-content/nodes/illustratie.node.js +13 -0
  27. package/dist/collection/components/ozon-content/nodes/inhoud.node.js +14 -0
  28. package/dist/collection/components/ozon-content/nodes/inline.nodes.js +21 -0
  29. package/dist/collection/components/ozon-content/nodes/int-ref.node.js +26 -0
  30. package/dist/collection/components/ozon-content/nodes/noot.node.js +27 -0
  31. package/dist/collection/components/ozon-content/nodes/table.node/colspec/colspec-mapper.js +39 -0
  32. package/dist/collection/components/ozon-content/nodes/table.node/colspec/colspec.interface.js +2 -0
  33. package/dist/collection/components/ozon-content/nodes/table.node/index.js +1 -0
  34. package/dist/collection/components/ozon-content/nodes/table.node/table-cell.js +25 -0
  35. package/dist/collection/components/ozon-content/nodes/table.node/table-colgroup.js +4 -0
  36. package/dist/collection/components/ozon-content/nodes/table.node/table-rows.js +5 -0
  37. package/dist/collection/components/ozon-content/nodes/table.node/table.node.js +32 -0
  38. package/dist/collection/components/ozon-content/nodes/text.node.js +9 -0
  39. package/dist/collection/components/ozon-content/ozon-content-context.interface.js +1 -0
  40. package/dist/collection/components/ozon-content/ozon-content-mapper.js +76 -0
  41. package/dist/collection/components/ozon-content/ozon-content-node-context.interface.js +1 -0
  42. package/dist/collection/components/ozon-content/ozon-content-node-state.interface.js +1 -0
  43. package/dist/collection/components/ozon-content/ozon-content-node.interface.js +1 -0
  44. package/dist/collection/components/ozon-content/ozon-content.css +15 -7
  45. package/dist/collection/components/ozon-content/ozon-content.js +21 -33
  46. package/dist/collection/components/selectable/selectable.js +25 -1
  47. package/dist/collection/components/viewer-grid/viewer-grid-filterpanel-buttons.js +7 -0
  48. package/dist/collection/components/viewer-grid/viewer-grid.css +351 -3
  49. package/dist/collection/components/viewer-grid/viewer-grid.js +109 -19
  50. package/dist/collection/components/viewer-grid/viewer-grid.template.js +7 -3
  51. package/dist/custom-elements/index.d.ts +6 -0
  52. package/dist/custom-elements/index.js +3088 -3103
  53. package/dist/dso-toolkit/dso-toolkit.css +1 -1
  54. package/dist/dso-toolkit/dso-toolkit.esm.js +1 -1
  55. package/dist/dso-toolkit/p-225bbb28.entry.js +1 -0
  56. package/dist/dso-toolkit/p-3c4dbd89.entry.js +1 -0
  57. package/dist/dso-toolkit/p-44905fb1.js +5 -0
  58. package/dist/dso-toolkit/p-50b63cf4.entry.js +1 -0
  59. package/dist/dso-toolkit/p-8b6e3abc.entry.js +1 -0
  60. package/dist/dso-toolkit/p-ad540748.entry.js +1 -0
  61. package/dist/dso-toolkit/p-c6f467b3.entry.js +1 -0
  62. package/dist/dso-toolkit/p-f193c258.entry.js +1 -0
  63. package/dist/esm/dso-autosuggest.entry.js +5 -1
  64. package/dist/esm/dso-header.entry.js +1 -1
  65. package/dist/esm/dso-image-overlay.entry.js +58 -0
  66. package/dist/esm/dso-info_2.entry.js +4 -1
  67. package/dist/esm/dso-map-base-layers.entry.js +14 -1
  68. package/dist/esm/dso-map-overlays.entry.js +14 -1
  69. package/dist/esm/dso-ozon-content.entry.js +282 -424
  70. package/dist/esm/dso-toolkit.js +1 -1
  71. package/dist/esm/dso-viewer-grid.entry.js +58 -727
  72. package/dist/esm/focus-trap.esm-299989f2.js +710 -0
  73. package/dist/esm/loader.js +1 -1
  74. package/dist/types/components/autosuggest/autosuggest.d.ts +15 -1
  75. package/dist/types/components/image-overlay/image-overlay.d.ts +15 -0
  76. package/dist/types/components/image-overlay/image-overlay.template.d.ts +2 -0
  77. package/dist/types/components/map-base-layers/map-base-layers.d.ts +7 -2
  78. package/dist/types/components/map-overlays/map-overlays.d.ts +7 -2
  79. package/dist/types/components/ozon-content/nodes/al.node.d.ts +6 -0
  80. package/dist/types/components/ozon-content/nodes/document.node.d.ts +6 -0
  81. package/dist/types/components/ozon-content/nodes/ext-ref.node.d.ts +6 -0
  82. package/dist/types/components/ozon-content/nodes/fallback.node.d.ts +6 -0
  83. package/dist/types/components/ozon-content/nodes/illustratie.node.d.ts +5 -0
  84. package/dist/types/components/ozon-content/nodes/inhoud.node.d.ts +6 -0
  85. package/dist/types/components/ozon-content/nodes/inline.nodes.d.ts +6 -0
  86. package/dist/types/components/ozon-content/nodes/int-ref.node.d.ts +6 -0
  87. package/dist/types/components/ozon-content/nodes/noot.node.d.ts +8 -0
  88. package/dist/types/components/ozon-content/nodes/table.node/colspec/colspec-mapper.d.ts +2 -0
  89. package/dist/types/components/ozon-content/nodes/table.node/colspec/colspec.interface.d.ts +10 -0
  90. package/dist/types/components/ozon-content/nodes/table.node/index.d.ts +1 -0
  91. package/dist/types/components/ozon-content/nodes/table.node/table-cell.d.ts +8 -0
  92. package/dist/types/components/ozon-content/nodes/table.node/table-colgroup.d.ts +5 -0
  93. package/dist/types/components/ozon-content/nodes/table.node/table-rows.d.ts +8 -0
  94. package/dist/types/components/ozon-content/nodes/table.node/table.node.d.ts +7 -0
  95. package/dist/types/components/ozon-content/nodes/text.node.d.ts +5 -0
  96. package/dist/types/components/ozon-content/ozon-content-context.interface.d.ts +8 -0
  97. package/dist/types/components/ozon-content/ozon-content-mapper.d.ts +12 -0
  98. package/dist/types/components/ozon-content/ozon-content-node-context.interface.d.ts +8 -0
  99. package/dist/types/components/ozon-content/ozon-content-node-state.interface.d.ts +3 -0
  100. package/dist/types/components/ozon-content/ozon-content-node.interface.d.ts +8 -0
  101. package/dist/types/components/ozon-content/ozon-content.d.ts +8 -10
  102. package/dist/types/components/ozon-content/ozon-content.interfaces.d.ts +2 -2
  103. package/dist/types/components/selectable/selectable.d.ts +1 -0
  104. package/dist/types/components/viewer-grid/viewer-grid-filterpanel-buttons.d.ts +6 -0
  105. package/dist/types/components/viewer-grid/viewer-grid.d.ts +14 -3
  106. package/dist/types/components/viewer-grid/viewer-grid.template.d.ts +1 -1
  107. package/dist/types/components.d.ts +25 -6
  108. package/package.json +2 -2
  109. package/dist/collection/components/ozon-content/ozon-content.transformer.js +0 -105
  110. package/dist/dso-toolkit/p-06de0fa1.entry.js +0 -1
  111. package/dist/dso-toolkit/p-17f073d1.entry.js +0 -1
  112. package/dist/dso-toolkit/p-20856f91.entry.js +0 -1
  113. package/dist/dso-toolkit/p-7b006b11.entry.js +0 -1
  114. package/dist/dso-toolkit/p-aadc4f8e.entry.js +0 -1
  115. package/dist/dso-toolkit/p-b69134ed.entry.js +0 -5
  116. package/dist/types/components/ozon-content/ozon-content.transformer.d.ts +0 -15
@@ -14,7 +14,7 @@ const patchEsm = () => {
14
14
  const defineCustomElements = (win, options) => {
15
15
  if (typeof window === 'undefined') return Promise.resolve();
16
16
  return patchEsm().then(() => {
17
- return index.bootstrapLazy([["dso-map-base-layers.cjs",[[1,"dso-map-base-layers",{"baseLayers":[16]}]]],["dso-map-overlays.cjs",[[1,"dso-map-overlays",{"overlays":[16]}]]],["dso-header.cjs",[[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]}]]],["dso-toggletip.cjs",[[1,"dso-toggletip",{"label":[1],"position":[1],"small":[4],"secondary":[4],"active":[32]}]]],["dso-tree-view.cjs",[[1,"dso-tree-view",{"collection":[16]}]]],["dso-date-picker.cjs",[[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],"setFocus":[64],"show":[64],"hide":[64]},[[6,"click","handleDocumentClick"]]]]],["dso-helpcenter-panel.cjs",[[1,"dso-helpcenter-panel",{"label":[1],"url":[1],"visibility":[32],"isOpen":[32],"slideState":[32],"loadIframe":[32]}]]],["dso-label.cjs",[[1,"dso-label",{"compact":[4],"removable":[4],"status":[1],"hover":[32]}]]],["dso-map-controls.cjs",[[1,"dso-map-controls",{"open":[1540],"disableZoom":[1,"disable-zoom"],"hideContent":[32]}]]],["dso-viewer-grid.cjs",[[1,"dso-viewer-grid",{"overlayOpen":[4,"overlay-open"],"mainSize":[32]}]]],["dso-alert.cjs",[[1,"dso-alert",{"status":[1],"roleAlert":[4,"role-alert"]}]]],["dso-attachments-counter.cjs",[[1,"dso-attachments-counter",{"count":[2]}]]],["dso-autosuggest.cjs",[[6,"dso-autosuggest",{"suggestions":[16],"suggestOnFocus":[4,"suggest-on-focus"],"showSuggestions":[32],"selectedSuggestion":[32]},[[4,"click","onDocumentClick"]]]]],["dso-badge.cjs",[[1,"dso-badge",{"status":[1]}]]],["dso-banner.cjs",[[1,"dso-banner",{"status":[1]}]]],["dso-highlight-box.cjs",[[1,"dso-highlight-box",{"yellow":[4],"border":[4],"white":[4],"dropShadow":[4,"drop-shadow"],"step":[2]}]]],["dso-ozon-content.cjs",[[0,"dso-ozon-content",{"content":[1]},[[0,"click","handleClick"]]]]],["dso-progress-bar.cjs",[[1,"dso-progress-bar",{"progress":[2],"min":[2],"max":[2]}]]],["dso-dropdown-menu.cjs",[[1,"dso-dropdown-menu",{"open":[1540],"dropdownAlign":[1,"dropdown-align"],"checkable":[4]}]]],["dso-progress-indicator.cjs",[[1,"dso-progress-indicator",{"label":[1],"size":[1],"block":[4]}]]],["dso-tooltip.cjs",[[1,"dso-tooltip",{"position":[1],"for":[1],"noArrow":[4,"no-arrow"],"stateless":[4],"small":[4],"active":[1540],"hidden":[32],"activate":[64],"deactivate":[64]},[[0,"click","listenClick"]]]]],["dso-info-button.cjs",[[1,"dso-info-button",{"active":[1540],"secondary":[4],"label":[1]}]]],["dso-info_2.cjs",[[1,"dso-selectable",{"type":[1],"identifier":[1],"name":[1],"value":[1],"invalid":[4],"describedById":[1,"described-by-id"],"disabled":[4],"required":[4],"checked":[4],"indeterminate":[4],"infoFixed":[4,"info-fixed"],"infoActive":[32]}],[1,"dso-info",{"fixed":[516],"active":[516]}]]],["dso-icon.cjs",[[1,"dso-icon",{"icon":[1]}]]]], options);
17
+ return index.bootstrapLazy([["dso-map-base-layers.cjs",[[1,"dso-map-base-layers",{"baseLayers":[16]}]]],["dso-map-overlays.cjs",[[1,"dso-map-overlays",{"overlays":[16]}]]],["dso-header.cjs",[[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]}]]],["dso-toggletip.cjs",[[1,"dso-toggletip",{"label":[1],"position":[1],"small":[4],"secondary":[4],"active":[32]}]]],["dso-tree-view.cjs",[[1,"dso-tree-view",{"collection":[16]}]]],["dso-date-picker.cjs",[[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],"setFocus":[64],"show":[64],"hide":[64]},[[6,"click","handleDocumentClick"]]]]],["dso-helpcenter-panel.cjs",[[1,"dso-helpcenter-panel",{"label":[1],"url":[1],"visibility":[32],"isOpen":[32],"slideState":[32],"loadIframe":[32]}]]],["dso-image-overlay.cjs",[[1,"dso-image-overlay",{"active":[32],"focused":[32]}]]],["dso-label.cjs",[[1,"dso-label",{"compact":[4],"removable":[4],"status":[1],"hover":[32]}]]],["dso-map-controls.cjs",[[1,"dso-map-controls",{"open":[1540],"disableZoom":[1,"disable-zoom"],"hideContent":[32]}]]],["dso-viewer-grid.cjs",[[1,"dso-viewer-grid",{"filterpanelOpen":[516,"filterpanel-open"],"overlayOpen":[516,"overlay-open"],"mainSize":[32]}]]],["dso-alert.cjs",[[1,"dso-alert",{"status":[1],"roleAlert":[4,"role-alert"]}]]],["dso-attachments-counter.cjs",[[1,"dso-attachments-counter",{"count":[2]}]]],["dso-autosuggest.cjs",[[6,"dso-autosuggest",{"suggestions":[16],"suggestOnFocus":[4,"suggest-on-focus"],"showSuggestions":[32],"selectedSuggestion":[32]},[[4,"click","onDocumentClick"]]]]],["dso-badge.cjs",[[1,"dso-badge",{"status":[1]}]]],["dso-banner.cjs",[[1,"dso-banner",{"status":[1]}]]],["dso-highlight-box.cjs",[[1,"dso-highlight-box",{"yellow":[4],"border":[4],"white":[4],"dropShadow":[4,"drop-shadow"],"step":[2]}]]],["dso-ozon-content.cjs",[[2,"dso-ozon-content",{"content":[1],"state":[32]}]]],["dso-progress-bar.cjs",[[1,"dso-progress-bar",{"progress":[2],"min":[2],"max":[2]}]]],["dso-dropdown-menu.cjs",[[1,"dso-dropdown-menu",{"open":[1540],"dropdownAlign":[1,"dropdown-align"],"checkable":[4]}]]],["dso-progress-indicator.cjs",[[1,"dso-progress-indicator",{"label":[1],"size":[1],"block":[4]}]]],["dso-tooltip.cjs",[[1,"dso-tooltip",{"position":[1],"for":[1],"noArrow":[4,"no-arrow"],"stateless":[4],"small":[4],"active":[1540],"hidden":[32],"activate":[64],"deactivate":[64]},[[0,"click","listenClick"]]]]],["dso-info-button.cjs",[[1,"dso-info-button",{"active":[1540],"secondary":[4],"label":[1]}]]],["dso-info_2.cjs",[[1,"dso-selectable",{"type":[1],"identifier":[1],"name":[1],"value":[1],"invalid":[4],"describedById":[1,"described-by-id"],"disabled":[4],"required":[4],"checked":[4],"indeterminate":[4],"infoFixed":[4,"info-fixed"],"infoActive":[32],"toggleInfo":[64]}],[1,"dso-info",{"fixed":[516],"active":[516]}]]],["dso-icon.cjs",[[1,"dso-icon",{"icon":[1]}]]]], options);
18
18
  });
19
19
  };
20
20
 
@@ -5,6 +5,7 @@
5
5
  "./components/header/header.js",
6
6
  "./components/info-button/info-button.js",
7
7
  "./components/selectable/selectable.js",
8
+ "./components/viewer-grid/viewer-grid.js",
8
9
  "./components/alert/alert.js",
9
10
  "./components/attachments-counter/attachments-counter.js",
10
11
  "./components/badge/badge.js",
@@ -13,6 +14,7 @@
13
14
  "./components/helpcenter-panel/helpcenter-panel.js",
14
15
  "./components/highlight-box/highlight-box.js",
15
16
  "./components/icon/icon.js",
17
+ "./components/image-overlay/image-overlay.js",
16
18
  "./components/info/info.js",
17
19
  "./components/label/label.js",
18
20
  "./components/map-base-layers/map-base-layers.js",
@@ -23,8 +25,7 @@
23
25
  "./components/progress-indicator/progress-indicator.js",
24
26
  "./components/toggletip/toggletip.js",
25
27
  "./components/tooltip/tooltip.js",
26
- "./components/tree-view/tree-view.js",
27
- "./components/viewer-grid/viewer-grid.js"
28
+ "./components/tree-view/tree-view.js"
28
29
  ],
29
30
  "compiler": {
30
31
  "name": "@stencil/core",
@@ -5,7 +5,11 @@ import escapeStringRegexp from "escape-string-regexp";
5
5
  export class Autosuggest {
6
6
  constructor() {
7
7
  /**
8
- * The suggestions for the value of the slotted input element
8
+ * The suggestions for the value of the slotted input element. Optionally a
9
+ * Suggestion can have a `type` and `item`.
10
+ *
11
+ * The `type` is used to style the suggestion. `item` can be use to reference
12
+ * the original object that was used to create the suggestion.
9
13
  */
10
14
  this.suggestions = [];
11
15
  /**
@@ -238,7 +242,7 @@ export class Autosuggest {
238
242
  "optional": false,
239
243
  "docs": {
240
244
  "tags": [],
241
- "text": "The suggestions for the value of the slotted input element"
245
+ "text": "The suggestions for the value of the slotted input element. Optionally a\nSuggestion can have a `type` and `item`.\n\nThe `type` is used to style the suggestion. `item` can be use to reference\nthe original object that was used to create the suggestion."
242
246
  },
243
247
  "defaultValue": "[]"
244
248
  },
@@ -8,6 +8,8 @@
8
8
  border-bottom: 1px solid #ccc;
9
9
  display: flex;
10
10
  flex-wrap: wrap;
11
+ padding: 0 16px;
12
+ position: relative;
11
13
  }
12
14
  @media screen and (min-width: 768px) {
13
15
  .dso-header {
@@ -26,6 +28,14 @@
26
28
  padding-bottom: 16px;
27
29
  padding-top: 16px;
28
30
  }
31
+ @media screen and (max-width: 767px) {
32
+ .logo-container {
33
+ max-width: 200px;
34
+ }
35
+ }
36
+ .logo-container + .dropdown dso-dropdown-menu {
37
+ position: static;
38
+ }
29
39
 
30
40
  @media screen and (min-width: 768px) {
31
41
  .sub-logo {
@@ -277,11 +287,6 @@ dso-dropdown-menu button::after {
277
287
  top: 50%;
278
288
  transform: translateY(-50%);
279
289
  }
280
- @media screen and (max-width: 991px) {
281
- dso-dropdown-menu[dropdown-align=right] .dso-dropdown-options {
282
- right: -16px;
283
- }
284
- }
285
290
  @media screen and (max-width: 767px) {
286
291
  dso-dropdown-menu {
287
292
  top: 12px;
@@ -296,7 +301,7 @@ dso-dropdown-menu .dso-dropdown-options dso-dropdown-options ul {
296
301
  }
297
302
  @media screen and (max-width: 991px) {
298
303
  dso-dropdown-menu .dso-dropdown-options dso-dropdown-options ul {
299
- width: 100vw;
304
+ width: 100%;
300
305
  }
301
306
  }
302
307
  dso-dropdown-menu .dso-dropdown-options dso-dropdown-options li a {
@@ -304,6 +309,11 @@ dso-dropdown-menu .dso-dropdown-options dso-dropdown-options li a {
304
309
  font-size: 1.25rem;
305
310
  padding: 16px;
306
311
  }
312
+ dso-dropdown-menu .dso-dropdown-options dso-dropdown-options li a:hover {
313
+ background-color: #fff;
314
+ color: #275937;
315
+ text-decoration: underline;
316
+ }
307
317
  dso-dropdown-menu .dso-dropdown-options dso-dropdown-options li.dso-active a {
308
318
  font-weight: 600;
309
319
  }
@@ -316,16 +326,13 @@ dso-dropdown-menu .dso-dropdown-options dso-dropdown-options li + li {
316
326
  }
317
327
  @media screen and (max-width: 767px) {
318
328
  .dropdown dso-dropdown-menu {
319
- top: 28px;
329
+ margin-top: 28px;
320
330
  }
321
331
  }
322
332
  .dropdown dso-dropdown-menu .dso-dropdown-options {
323
- top: calc(100% + 29px);
324
- }
325
- @media screen and (max-width: 767px) {
326
- .dropdown dso-dropdown-menu .dso-dropdown-options {
327
- top: 72px;
328
- }
333
+ left: 0;
334
+ right: 0;
335
+ top: 100%;
329
336
  }
330
337
  .dropdown dso-dropdown-menu[open] button::after {
331
338
  background: var(--dso-icon, var(--di-chevron-up)) no-repeat;
@@ -339,6 +346,7 @@ dso-dropdown-menu .dso-dropdown-options dso-dropdown-options li + li {
339
346
  color: #39870c;
340
347
  font-size: 16px;
341
348
  font-weight: 600;
349
+ position: relative;
342
350
  }
343
351
  .dropdown dso-dropdown-menu button:hover, .dropdown dso-dropdown-menu button:active {
344
352
  cursor: pointer;
@@ -1,5 +1,6 @@
1
1
  import { html } from 'lit-html';
2
2
  import { ifDefined } from 'lit-html/directives/if-defined';
3
+ import { unsafeHTML } from 'lit-html/directives/unsafe-html';
3
4
  import { iconTemplate } from '../icon/icon.template';
4
5
  export function highlightBoxTemplate({ yellow, white, dropShadow, border, step, icon, richContent }) {
5
6
  return html `
@@ -11,7 +12,9 @@ export function highlightBoxTemplate({ yellow, white, dropShadow, border, step,
11
12
  ?border=${border}
12
13
  >
13
14
  ${icon && iconTemplate({ icon }, 'icon')}
14
- ${richContent}
15
+ <div class="dso-rich-content">
16
+ ${typeof richContent === 'string' ? unsafeHTML(richContent) : richContent}
17
+ </div>
15
18
  </dso-highlight-box>
16
19
  `;
17
20
  }
@@ -0,0 +1,263 @@
1
+ button {
2
+ -webkit-appearance: button;
3
+ color: inherit;
4
+ cursor: pointer;
5
+ font: inherit;
6
+ font-family: inherit;
7
+ font-size: inherit;
8
+ line-height: inherit;
9
+ margin: 0;
10
+ overflow: visible;
11
+ text-transform: none;
12
+ }
13
+ button[disabled] {
14
+ cursor: default;
15
+ }
16
+ button::-moz-focus-inner {
17
+ border: 0;
18
+ padding: 0;
19
+ }
20
+
21
+ :host {
22
+ display: inline-block;
23
+ position: relative;
24
+ }
25
+
26
+ :host(:hover) .open,
27
+ .open:focus {
28
+ opacity: 1;
29
+ }
30
+
31
+ .open {
32
+ display: inline-block;
33
+ font-size: 1em;
34
+ font-weight: 500;
35
+ margin-bottom: 0;
36
+ text-decoration: none;
37
+ touch-action: manipulation;
38
+ text-align: left;
39
+ user-select: none;
40
+ vertical-align: middle;
41
+ background-color: #fff;
42
+ border-color: #39870c;
43
+ color: #39870c;
44
+ border-width: 1px;
45
+ border-style: solid;
46
+ border-radius: 4px;
47
+ line-height: 1.5;
48
+ min-width: 56px;
49
+ padding: 11px 15px;
50
+ border: 0;
51
+ box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.5);
52
+ min-width: auto;
53
+ padding: 8px;
54
+ opacity: 0;
55
+ position: absolute;
56
+ right: 16px;
57
+ top: 16px;
58
+ }
59
+ .open:focus, .open:focus-visible {
60
+ outline-offset: 2px;
61
+ }
62
+ .open:active {
63
+ outline: 0;
64
+ }
65
+ .open.extern::after, .open.download::after {
66
+ content: "";
67
+ display: inline-block;
68
+ height: 1.5em;
69
+ margin-left: 8px;
70
+ vertical-align: top;
71
+ width: 1.5em;
72
+ }
73
+ .open:hover {
74
+ background-color: #39870c;
75
+ border-color: #39870c;
76
+ color: #fff;
77
+ }
78
+ .open:active {
79
+ background-color: #275937;
80
+ border-color: #275937;
81
+ color: #fff;
82
+ }
83
+ .open[disabled], .open[disabled]:hover {
84
+ background-color: #fff;
85
+ border-color: #afcf9d;
86
+ color: #afcf9d;
87
+ }
88
+ .open.btn-sm {
89
+ line-height: 16px;
90
+ }
91
+ .open.btn-sm dso-icon,
92
+ .open.btn-sm svg.di, .open.btn-sm.extern::after, .open.btn-sm.download::after {
93
+ margin-bottom: -4px;
94
+ margin-top: -4px;
95
+ }
96
+ .open.download::after {
97
+ background: var(--dso-icon, var(--di-download)) no-repeat;
98
+ background-position: center;
99
+ background-size: cover;
100
+ height: 1.5em;
101
+ vertical-align: top;
102
+ width: 1.5em;
103
+ }
104
+ .open.download:hover::after {
105
+ --dso-icon: var(--di-download-wit);
106
+ }
107
+ .open.download[disabled]::after {
108
+ --dso-icon: var(--di-download-grasgroen-40);
109
+ }
110
+ .open.extern::after {
111
+ background: var(--dso-icon, var(--di-external-link)) no-repeat;
112
+ background-position: center;
113
+ background-size: cover;
114
+ height: 1.5em;
115
+ vertical-align: top;
116
+ width: 1.5em;
117
+ }
118
+ .open.extern:hover::after {
119
+ --dso-icon: var(--di-external-link-wit);
120
+ }
121
+ .open.extern[disabled]::after {
122
+ --dso-icon: var(--di-external-link-grasgroen-40);
123
+ }
124
+ .open > span {
125
+ position: absolute;
126
+ width: 1px;
127
+ height: 1px;
128
+ padding: 0;
129
+ margin: -1px;
130
+ overflow: hidden;
131
+ clip: rect(0, 0, 0, 0);
132
+ border: 0;
133
+ }
134
+
135
+ .dimmer {
136
+ position: fixed;
137
+ top: 0;
138
+ left: 0;
139
+ right: 0;
140
+ bottom: 0;
141
+ z-index: 1;
142
+ display: flex;
143
+ padding: 32px;
144
+ background-color: rgba(255, 255, 255, 0.8);
145
+ justify-content: center;
146
+ }
147
+
148
+ .wrapper {
149
+ box-shadow: 0 8px 24px 0 rgba(25, 25, 25, 0.4);
150
+ position: relative;
151
+ z-index: 20;
152
+ align-self: center;
153
+ line-height: 0;
154
+ }
155
+ .wrapper img {
156
+ width: auto;
157
+ height: auto;
158
+ max-width: 100%;
159
+ max-height: calc(100vh - 64px);
160
+ }
161
+
162
+ .close {
163
+ display: inline-block;
164
+ font-size: 1em;
165
+ font-weight: 500;
166
+ margin-bottom: 0;
167
+ text-decoration: none;
168
+ touch-action: manipulation;
169
+ text-align: left;
170
+ user-select: none;
171
+ vertical-align: middle;
172
+ background-color: #fff;
173
+ border-color: #39870c;
174
+ color: #39870c;
175
+ border-width: 1px;
176
+ border-style: solid;
177
+ border-radius: 4px;
178
+ line-height: 1.5;
179
+ min-width: 56px;
180
+ padding: 11px 15px;
181
+ border: 0;
182
+ box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.5);
183
+ min-width: auto;
184
+ padding: 8px;
185
+ position: absolute;
186
+ top: 16px;
187
+ right: 16px;
188
+ }
189
+ .close:focus, .close:focus-visible {
190
+ outline-offset: 2px;
191
+ }
192
+ .close:active {
193
+ outline: 0;
194
+ }
195
+ .close.extern::after, .close.download::after {
196
+ content: "";
197
+ display: inline-block;
198
+ height: 1.5em;
199
+ margin-left: 8px;
200
+ vertical-align: top;
201
+ width: 1.5em;
202
+ }
203
+ .close:hover {
204
+ background-color: #39870c;
205
+ border-color: #39870c;
206
+ color: #fff;
207
+ }
208
+ .close:active {
209
+ background-color: #275937;
210
+ border-color: #275937;
211
+ color: #fff;
212
+ }
213
+ .close[disabled], .close[disabled]:hover {
214
+ background-color: #fff;
215
+ border-color: #afcf9d;
216
+ color: #afcf9d;
217
+ }
218
+ .close.btn-sm {
219
+ line-height: 16px;
220
+ }
221
+ .close.btn-sm dso-icon,
222
+ .close.btn-sm svg.di, .close.btn-sm.extern::after, .close.btn-sm.download::after {
223
+ margin-bottom: -4px;
224
+ margin-top: -4px;
225
+ }
226
+ .close.download::after {
227
+ background: var(--dso-icon, var(--di-download)) no-repeat;
228
+ background-position: center;
229
+ background-size: cover;
230
+ height: 1.5em;
231
+ vertical-align: top;
232
+ width: 1.5em;
233
+ }
234
+ .close.download:hover::after {
235
+ --dso-icon: var(--di-download-wit);
236
+ }
237
+ .close.download[disabled]::after {
238
+ --dso-icon: var(--di-download-grasgroen-40);
239
+ }
240
+ .close.extern::after {
241
+ background: var(--dso-icon, var(--di-external-link)) no-repeat;
242
+ background-position: center;
243
+ background-size: cover;
244
+ height: 1.5em;
245
+ vertical-align: top;
246
+ width: 1.5em;
247
+ }
248
+ .close.extern:hover::after {
249
+ --dso-icon: var(--di-external-link-wit);
250
+ }
251
+ .close.extern[disabled]::after {
252
+ --dso-icon: var(--di-external-link-grasgroen-40);
253
+ }
254
+ .close > span {
255
+ position: absolute;
256
+ width: 1px;
257
+ height: 1px;
258
+ padding: 0;
259
+ margin: -1px;
260
+ overflow: hidden;
261
+ clip: rect(0, 0, 0, 0);
262
+ border: 0;
263
+ }
@@ -0,0 +1,72 @@
1
+ import { Component, Element, forceUpdate, h, Host, State } from "@stencil/core";
2
+ import { createFocusTrap } from 'focus-trap';
3
+ export class ImageOverlay {
4
+ constructor() {
5
+ this.active = false;
6
+ this.focused = false;
7
+ }
8
+ componentDidLoad() {
9
+ this.mutationObserver = new MutationObserver(() => forceUpdate(this.host));
10
+ this.mutationObserver.observe(this.host, {
11
+ attributes: true,
12
+ subtree: true
13
+ });
14
+ }
15
+ disconnectedCallback() {
16
+ var _a, _b;
17
+ (_a = this.trap) === null || _a === void 0 ? void 0 : _a.deactivate();
18
+ (_b = this.mutationObserver) === null || _b === void 0 ? void 0 : _b.disconnect();
19
+ }
20
+ render() {
21
+ var _a;
22
+ const { src, alt } = (_a = this.host.querySelector('img')) !== null && _a !== void 0 ? _a : {};
23
+ return (h(Host, { tabindex: this.focused ? -1 : 0, onFocus: () => {
24
+ var _a;
25
+ (_a = this.buttonElement) === null || _a === void 0 ? void 0 : _a.focus();
26
+ } },
27
+ this.active && src && alt && (h("div", { class: "dimmer", ref: element => this.wrapperElement = element },
28
+ h("div", { class: "wrapper" },
29
+ h("img", { src: src, alt: alt }),
30
+ h("button", { type: "button", class: "close", onClick: () => this.active = false },
31
+ h("dso-icon", { icon: "times" }),
32
+ h("span", null, "Sluiten"))))),
33
+ h("slot", null),
34
+ h("button", { type: "button", class: "open", ref: element => this.buttonElement = element, onClick: () => this.active = true, onFocus: () => this.focused = true, onBlur: () => this.focused = false },
35
+ h("dso-icon", { icon: "external-link" }),
36
+ h("span", null, "Afbeelding vergroot weergeven"))));
37
+ }
38
+ componentDidRender() {
39
+ var _a, _b;
40
+ if (this.active && this.wrapperElement && !this.trap) {
41
+ this.trap = createFocusTrap(this.wrapperElement, {
42
+ escapeDeactivates: true,
43
+ clickOutsideDeactivates: (e) => {
44
+ if (e instanceof MouseEvent && e.composedPath()[0] === this.wrapperElement) {
45
+ this.active = false;
46
+ return false;
47
+ }
48
+ return true;
49
+ },
50
+ setReturnFocus: (_a = this.buttonElement) !== null && _a !== void 0 ? _a : false,
51
+ onDeactivate: () => this.active = false
52
+ }).activate();
53
+ }
54
+ else if (!this.active && this.trap) {
55
+ (_b = this.trap) === null || _b === void 0 ? void 0 : _b.deactivate();
56
+ delete this.trap;
57
+ }
58
+ }
59
+ static get is() { return "dso-image-overlay"; }
60
+ static get encapsulation() { return "shadow"; }
61
+ static get originalStyleUrls() { return {
62
+ "$": ["./image-overlay.scss"]
63
+ }; }
64
+ static get styleUrls() { return {
65
+ "$": ["image-overlay.css"]
66
+ }; }
67
+ static get states() { return {
68
+ "active": {},
69
+ "focused": {}
70
+ }; }
71
+ static get elementRef() { return "host"; }
72
+ }
@@ -0,0 +1,7 @@
1
+ import { html } from "lit-html";
2
+ import { imageTemplate } from '@dso-toolkit/css/src/components/image/image.template';
3
+ export function imageOverlayTemplate({ image }) {
4
+ return html `
5
+ <dso-image-overlay>${imageTemplate(image)}</dso-image-overlay>
6
+ `;
7
+ }
@@ -1,3 +1,23 @@
1
+ button {
2
+ -webkit-appearance: button;
3
+ color: inherit;
4
+ cursor: pointer;
5
+ font: inherit;
6
+ font-family: inherit;
7
+ font-size: inherit;
8
+ line-height: inherit;
9
+ margin: 0;
10
+ overflow: visible;
11
+ text-transform: none;
12
+ }
13
+ button[disabled] {
14
+ cursor: default;
15
+ }
16
+ button::-moz-focus-inner {
17
+ border: 0;
18
+ padding: 0;
19
+ }
20
+
1
21
  :host {
2
22
  --di-times-grijs90: url("data:image/svg+xml,%3csvg id='times' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' style='color: %23191919%3b'%3e %3cpath fill='currentColor' d='M13.36%2c12l3.3-3.3A1%2c1%2c0%2c1%2c0%2c15.3%2c7.34L12%2c10.64%2c8.7%2c7.34A1%2c1%2c0%2c1%2c0%2c7.34%2c8.7l3.3%2c3.3-3.3%2c3.3A1%2c1%2c0%2c1%2c0%2c8.7%2c16.66l3.3-3.3%2c3.3%2c3.3a1%2c1%2c0%2c1%2c0%2c1.36-1.36Z'/%3e %3c/svg%3e");
3
23
  display: block;
@@ -1,14 +1,29 @@
1
1
  import { Component, h, Prop, Event } from '@stencil/core';
2
2
  export class MapBaseLayers {
3
+ constructor() {
4
+ this.selectableRefs = {};
5
+ }
3
6
  baseLayerChangeHandler(baseLayer) {
4
7
  this.baseLayerChange.emit({ activeBaseLayer: baseLayer });
5
8
  }
9
+ componentDidRender() {
10
+ this.baseLayers
11
+ .filter(l => { var _a, _b; return !l.disabled && ((_b = (_a = this.previousBaselayers) === null || _a === void 0 ? void 0 : _a.find(p => p.id === l.id)) === null || _b === void 0 ? void 0 : _b.disabled) === true; })
12
+ .forEach(o => {
13
+ var _a;
14
+ (_a = this.selectableRefs[o.id]) === null || _a === void 0 ? void 0 : _a.toggleInfo(false);
15
+ });
16
+ this.previousBaselayers = this.baseLayers;
17
+ }
6
18
  render() {
19
+ for (const ref in this.selectableRefs) {
20
+ delete this.selectableRefs[ref];
21
+ }
7
22
  return (h("fieldset", { class: "form-group dso-radios" },
8
23
  h("legend", { class: "sr-only" }, "Achtergrond"),
9
24
  h("div", { class: "dso-label-container" },
10
25
  h("span", { class: "control-label", "aria-hidden": "true" }, "Achtergrond")),
11
- h("div", { class: "dso-field-container" }, this.baseLayers.map(baseLayer => (h("dso-selectable", { key: baseLayer.id, type: "radio", value: baseLayer.name, checked: baseLayer.checked, disabled: baseLayer.disabled, onDsoChange: () => this.baseLayerChangeHandler(baseLayer) },
26
+ h("div", { class: "dso-field-container" }, this.baseLayers.map(baseLayer => (h("dso-selectable", { key: baseLayer.id, type: "radio", value: baseLayer.name, checked: baseLayer.checked, disabled: baseLayer.disabled, ref: ref => this.selectableRefs[baseLayer.id] = ref, onDsoChange: () => this.baseLayerChangeHandler(baseLayer) },
12
27
  baseLayer.name,
13
28
  baseLayer.info
14
29
  ? h("p", { slot: "info" }, baseLayer.info)
@@ -1,15 +1,30 @@
1
1
  import { Component, Event, Prop, h } from '@stencil/core';
2
2
  export class MapOverlays {
3
+ constructor() {
4
+ this.selectableRefs = {};
5
+ }
3
6
  overlayChangeHandler(overlay, e) {
4
7
  const checked = e.detail.target instanceof HTMLInputElement ? !!e.detail.target.checked : false;
5
8
  this.toggleOverlay.emit({ overlay, checked });
6
9
  }
10
+ componentDidRender() {
11
+ this.overlays
12
+ .filter(o => { var _a, _b; return !o.disabled && ((_b = (_a = this.previousOverlays) === null || _a === void 0 ? void 0 : _a.find(p => p.id === o.id)) === null || _b === void 0 ? void 0 : _b.disabled) === true; })
13
+ .forEach(o => {
14
+ var _a;
15
+ (_a = this.selectableRefs[o.id]) === null || _a === void 0 ? void 0 : _a.toggleInfo(false);
16
+ });
17
+ this.previousOverlays = this.overlays;
18
+ }
7
19
  render() {
20
+ for (const ref in this.selectableRefs) {
21
+ delete this.selectableRefs[ref];
22
+ }
8
23
  return (h("fieldset", { class: "form-group dso-checkboxes" },
9
24
  h("legend", { class: "sr-only" }, "Kaartlagen"),
10
25
  h("div", { class: "dso-label-container" },
11
26
  h("span", { class: "control-label", "aria-hidden": "true" }, "Kaartlagen")),
12
- h("div", { class: "dso-field-container" }, this.overlays.map(overlay => (h("dso-selectable", { type: "checkbox", value: overlay.name, checked: overlay.checked, disabled: overlay.disabled, onDsoChange: e => this.overlayChangeHandler(overlay, e) },
27
+ h("div", { class: "dso-field-container" }, this.overlays.map(overlay => (h("dso-selectable", { key: overlay.id, type: "checkbox", value: overlay.name, checked: overlay.checked, disabled: overlay.disabled, ref: ref => this.selectableRefs[overlay.id] = ref, onDsoChange: e => this.overlayChangeHandler(overlay, e) },
13
28
  overlay.name,
14
29
  overlay.info
15
30
  ? h("p", { slot: "info" }, overlay.info)
@@ -0,0 +1,13 @@
1
+ import { h } from '@stencil/core';
2
+ export class OzonContentAlNode {
3
+ constructor() {
4
+ this.name = 'Al';
5
+ }
6
+ render(node, { mapNodeToJsx, path }) {
7
+ const nestedAl = path.some(node => node.nodeName === 'Al');
8
+ const content = mapNodeToJsx(node.childNodes);
9
+ return nestedAl
10
+ ? h("span", { role: "paragraph" }, content)
11
+ : h("p", null, content);
12
+ }
13
+ }
@@ -0,0 +1,9 @@
1
+ import { Fragment, h } from '@stencil/core';
2
+ export class OzonContentDocumentNode {
3
+ constructor() {
4
+ this.name = '#document';
5
+ }
6
+ render(node, { mapNodeToJsx }) {
7
+ return h(Fragment, null, mapNodeToJsx(node.childNodes));
8
+ }
9
+ }
@@ -0,0 +1,15 @@
1
+ import { h } from '@stencil/core';
2
+ export class OzonContentExtRefNode {
3
+ constructor() {
4
+ this.name = [
5
+ 'ExtRef',
6
+ 'ExtIoRef'
7
+ ];
8
+ }
9
+ render(node, { mapNodeToJsx }) {
10
+ var _a;
11
+ return (h("a", { target: "_blank", rel: "noopener noreferrer", href: (_a = node.getAttribute('ref')) !== null && _a !== void 0 ? _a : undefined },
12
+ h("span", { class: "sr-only" }, "opent in nieuw venster"),
13
+ mapNodeToJsx(node.childNodes)));
14
+ }
15
+ }
@@ -0,0 +1,10 @@
1
+ import { h } from '@stencil/core';
2
+ export class OzonContentFallbackNode {
3
+ constructor() {
4
+ // This name does not match any elements
5
+ this.name = ['<fallback>'];
6
+ }
7
+ render(node, { mapNodeToJsx }) {
8
+ return (h("span", { class: `fallback od-${node instanceof Element ? node.localName : node.nodeName}` }, mapNodeToJsx(node.childNodes)));
9
+ }
10
+ }
@@ -0,0 +1,13 @@
1
+ import { h } from '@stencil/core';
2
+ export class OzonContentIllustratieNode {
3
+ constructor() {
4
+ this.name = [
5
+ 'Illustratie',
6
+ 'InlineTekstAfbeelding'
7
+ ];
8
+ }
9
+ render(node) {
10
+ var _a, _b, _c, _d;
11
+ return (h("img", { src: (_a = node.getAttribute('naam')) !== null && _a !== void 0 ? _a : undefined, alt: (_b = node.getAttribute('naam')) !== null && _b !== void 0 ? _b : undefined, height: (_c = node.getAttribute('hoogte')) !== null && _c !== void 0 ? _c : undefined, width: (_d = node.getAttribute('breedte')) !== null && _d !== void 0 ? _d : undefined }));
12
+ }
13
+ }