@dso-toolkit/core 51.4.0 → 52.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 (61) hide show
  1. package/dist/cjs/dso-card.cjs.entry.js +1 -0
  2. package/dist/cjs/dso-date-picker.cjs.entry.js +4 -3
  3. package/dist/cjs/dso-dropdown-menu.cjs.entry.js +39 -6
  4. package/dist/cjs/dso-info_2.cjs.entry.js +1 -1
  5. package/dist/cjs/dso-ozon-content.cjs.entry.js +30 -5
  6. package/dist/cjs/dso-toolkit.cjs.js +1 -1
  7. package/dist/cjs/dso-tooltip.cjs.entry.js +5 -12
  8. package/dist/cjs/{popper-6adb1c1a.js → has-overflow-b1b4f3f3.js} +9 -0
  9. package/dist/cjs/loader.cjs.js +1 -1
  10. package/dist/collection/components/card/card.js +24 -0
  11. package/dist/collection/components/date-picker/date-picker.css +4 -1
  12. package/dist/collection/components/date-picker/date-picker.js +20 -2
  13. package/dist/collection/components/dropdown-menu/dropdown-menu.js +58 -4
  14. package/dist/collection/components/ozon-content/nodes/lijst.node.js +2 -2
  15. package/dist/collection/components/ozon-content/nodes/nieuwe-tekst.node.js +9 -0
  16. package/dist/collection/components/ozon-content/nodes/table.node/table.node.js +7 -2
  17. package/dist/collection/components/ozon-content/nodes/verwijderde-tekst.node.js +9 -0
  18. package/dist/collection/components/ozon-content/ozon-content-mapper.js +4 -0
  19. package/dist/collection/components/ozon-content/ozon-content.css +17 -0
  20. package/dist/collection/components/selectable/selectable.css +5 -0
  21. package/dist/collection/components/tooltip/tooltip.js +1 -7
  22. package/dist/collection/utils/has-overflow.js +7 -0
  23. package/dist/components/dropdown-menu.js +41 -7
  24. package/dist/components/dso-card.js +3 -1
  25. package/dist/components/dso-date-picker.js +5 -3
  26. package/dist/components/dso-ozon-content.js +30 -5
  27. package/dist/components/{popper.js → has-overflow.js} +9 -1
  28. package/dist/components/selectable.js +1 -1
  29. package/dist/components/tooltip.js +1 -8
  30. package/dist/dso-toolkit/dso-toolkit.esm.js +1 -1
  31. package/dist/dso-toolkit/p-4ae40ddc.entry.js +1 -0
  32. package/dist/dso-toolkit/p-61ac8d40.entry.js +1 -0
  33. package/dist/dso-toolkit/p-b8052fd6.entry.js +1 -0
  34. package/dist/dso-toolkit/p-bdc3b14b.entry.js +1 -0
  35. package/dist/dso-toolkit/{p-1cea3b99.js → p-d3ed00f6.js} +1 -1
  36. package/dist/dso-toolkit/p-e3bd7689.entry.js +1 -0
  37. package/dist/dso-toolkit/p-e6e9f613.entry.js +1 -0
  38. package/dist/esm/dso-card.entry.js +1 -0
  39. package/dist/esm/dso-date-picker.entry.js +4 -3
  40. package/dist/esm/dso-dropdown-menu.entry.js +39 -6
  41. package/dist/esm/dso-info_2.entry.js +1 -1
  42. package/dist/esm/dso-ozon-content.entry.js +30 -5
  43. package/dist/esm/dso-toolkit.js +1 -1
  44. package/dist/esm/dso-tooltip.entry.js +1 -8
  45. package/dist/esm/{popper-467f7841.js → has-overflow-c44a8a0a.js} +9 -1
  46. package/dist/esm/loader.js +1 -1
  47. package/dist/types/components/card/card.d.ts +7 -1
  48. package/dist/types/components/card/card.interfaces.d.ts +1 -0
  49. package/dist/types/components/date-picker/date-picker.d.ts +4 -0
  50. package/dist/types/components/dropdown-menu/dropdown-menu.d.ts +6 -0
  51. package/dist/types/components/ozon-content/nodes/nieuwe-tekst.node.d.ts +6 -0
  52. package/dist/types/components/ozon-content/nodes/verwijderde-tekst.node.d.ts +6 -0
  53. package/dist/types/components.d.ts +25 -1
  54. package/dist/types/utils/has-overflow.d.ts +1 -0
  55. package/package.json +2 -2
  56. package/dist/dso-toolkit/p-1aef13ee.entry.js +0 -1
  57. package/dist/dso-toolkit/p-30df5586.entry.js +0 -1
  58. package/dist/dso-toolkit/p-6cdc1acd.entry.js +0 -1
  59. package/dist/dso-toolkit/p-c16ce11e.entry.js +0 -1
  60. package/dist/dso-toolkit/p-c2a4f4ea.entry.js +0 -1
  61. package/dist/dso-toolkit/p-e3c9c7d0.entry.js +0 -1
@@ -2,6 +2,7 @@ import { createPopper } from "@popperjs/core";
2
2
  import { h, Host } from "@stencil/core";
3
3
  import { tabbable } from "tabbable";
4
4
  import { v4 as uuidv4 } from "uuid";
5
+ import { hasOverflow } from "../../utils/has-overflow";
5
6
  export class DropdownMenu {
6
7
  constructor() {
7
8
  this.focusOutListener = (event) => {
@@ -41,6 +42,7 @@ export class DropdownMenu {
41
42
  this.dropdownAlign = "left";
42
43
  this.checkable = false;
43
44
  this.boundary = undefined;
45
+ this.strategy = "auto";
44
46
  }
45
47
  watchPosition() {
46
48
  if (!this.popper) {
@@ -50,6 +52,34 @@ export class DropdownMenu {
50
52
  placement: this.dropdownAlign === "right" ? "bottom-end" : "bottom-start",
51
53
  });
52
54
  }
55
+ watchStrategy() {
56
+ this.setStrategy();
57
+ }
58
+ setStrategy() {
59
+ if (!this.popper) {
60
+ return;
61
+ }
62
+ if (this.strategy === "absolute" || this.strategy === "fixed") {
63
+ this.popper.setOptions({
64
+ strategy: this.strategy,
65
+ });
66
+ return;
67
+ }
68
+ let element = this.host;
69
+ const boundary = this.boundary || document;
70
+ while (element && element.parentNode !== boundary) {
71
+ element = element.parentNode instanceof ShadowRoot ? element.parentNode.host : element.parentElement;
72
+ if (element !== null && hasOverflow(element)) {
73
+ this.popper.setOptions({
74
+ strategy: "fixed",
75
+ });
76
+ return;
77
+ }
78
+ }
79
+ this.popper.setOptions({
80
+ strategy: "absolute",
81
+ });
82
+ }
53
83
  get button() {
54
84
  const button = this.host.querySelector('button[slot="toggle"]');
55
85
  if (!(button instanceof HTMLButtonElement)) {
@@ -84,11 +114,11 @@ export class DropdownMenu {
84
114
  if (this.popper) {
85
115
  return;
86
116
  }
87
- const dropdownOptions = this.host.querySelector(".dso-dropdown-options");
88
- if (!(dropdownOptions instanceof HTMLElement)) {
117
+ const dropdownOptionsElement = this.host.querySelector(".dso-dropdown-options");
118
+ if (!(dropdownOptionsElement instanceof HTMLElement)) {
89
119
  throw new Error("dropdown options element is not instanceof HTMLElement");
90
120
  }
91
- this.popper = createPopper(this.button, dropdownOptions, {
121
+ this.popper = createPopper(this.button, dropdownOptionsElement, {
92
122
  placement: this.dropdownAlign === "right" ? "bottom-end" : "bottom-start",
93
123
  modifiers: [
94
124
  {
@@ -109,7 +139,10 @@ export class DropdownMenu {
109
139
  }
110
140
  componentDidRender() {
111
141
  var _a;
112
- (_a = this.popper) === null || _a === void 0 ? void 0 : _a.update();
142
+ this.setStrategy();
143
+ if (this.open) {
144
+ (_a = this.popper) === null || _a === void 0 ? void 0 : _a.update();
145
+ }
113
146
  for (const li of Array.from(this.host.getElementsByTagName("li"))) {
114
147
  for (const tab of tabbable(li)) {
115
148
  tab.setAttribute("role", this.checkable ? "menuitemradio" : "menuitem");
@@ -243,6 +276,24 @@ export class DropdownMenu {
243
276
  },
244
277
  "attribute": "boundary",
245
278
  "reflect": false
279
+ },
280
+ "strategy": {
281
+ "type": "string",
282
+ "mutable": false,
283
+ "complexType": {
284
+ "original": "\"auto\" | \"absolute\" | \"fixed\"",
285
+ "resolved": "\"absolute\" | \"auto\" | \"fixed\"",
286
+ "references": {}
287
+ },
288
+ "required": false,
289
+ "optional": false,
290
+ "docs": {
291
+ "tags": [],
292
+ "text": "Set position strategy of dropdown options"
293
+ },
294
+ "attribute": "strategy",
295
+ "reflect": false,
296
+ "defaultValue": "\"auto\""
246
297
  }
247
298
  };
248
299
  }
@@ -251,6 +302,9 @@ export class DropdownMenu {
251
302
  return [{
252
303
  "propName": "dropdownAlign",
253
304
  "methodName": "watchPosition"
305
+ }, {
306
+ "propName": "strategy",
307
+ "methodName": "watchStrategy"
254
308
  }];
255
309
  }
256
310
  }
@@ -13,8 +13,8 @@ export class OzonContentLijstNode {
13
13
  return (h("div", { class: "dso-ozon-lijst od-Lijst" }, aanhef && mapNodeToJsx(aanhef), h("ul", { class: (_a = node.getAttribute("type")) !== null && _a !== void 0 ? _a : "" }, listItems.map((item) => {
14
14
  var _a;
15
15
  const itemNodes = Array.from(item.childNodes);
16
- const liNummer = (_a = itemNodes.find((n) => getNodeName(n) === "LiNummer")) === null || _a === void 0 ? void 0 : _a.textContent;
17
- return (h("li", { class: "od-Li" }, liNummer && h("span", { class: "od-LiNummer" }, liNummer), mapNodeToJsx(itemNodes.filter((n) => getNodeName(n) !== "LiNummer"))));
16
+ const liNummer = (_a = itemNodes.find((n) => getNodeName(n) === "LiNummer")) === null || _a === void 0 ? void 0 : _a.childNodes;
17
+ return (h("li", { class: "od-Li" }, liNummer && h("span", { class: "od-LiNummer" }, mapNodeToJsx(liNummer)), mapNodeToJsx(itemNodes.filter((n) => getNodeName(n) !== "LiNummer"))));
18
18
  })), sluiting && mapNodeToJsx(sluiting)));
19
19
  }
20
20
  }
@@ -0,0 +1,9 @@
1
+ import { h } from "@stencil/core";
2
+ export class OzonContentNieuweTekstNode {
3
+ constructor() {
4
+ this.name = "NieuweTekst";
5
+ }
6
+ render(node, { mapNodeToJsx }) {
7
+ return h("ins", null, mapNodeToJsx(node.childNodes));
8
+ }
9
+ }
@@ -1,4 +1,5 @@
1
1
  import { h } from "@stencil/core";
2
+ import clsx from "clsx";
2
3
  import { v4 as uuidv4 } from "uuid";
3
4
  import { getNodeName } from "../../get-node-name.function";
4
5
  import { mapColspecs } from "./colspec/colspec-mapper";
@@ -14,6 +15,7 @@ function mapData(node) {
14
15
  colspecs: tgroup && columnCount ? mapColspecs(columnCount, tgroup.querySelectorAll(":scope > colspec")) : undefined,
15
16
  headRows: Array.from(node.querySelectorAll(":scope > tgroup > thead > row")),
16
17
  bodyRows: Array.from(node.querySelectorAll(":scope > tgroup > tbody > row")),
18
+ editAction: node.getAttribute("wijzigactie"),
17
19
  };
18
20
  }
19
21
  export class OzonContentTableNode {
@@ -23,8 +25,11 @@ export class OzonContentTableNode {
23
25
  this.id = uuidv4();
24
26
  }
25
27
  render(node, context) {
26
- const { caption, colspecs, headRows, bodyRows } = mapData(node);
28
+ const { caption, colspecs, headRows, bodyRows, editAction } = mapData(node);
27
29
  const bron = Array.from(node.childNodes).find((n) => getNodeName(n) === "Bron");
28
- return (h("dso-table", null, h("table", Object.assign({ class: "table dso-table-vertical-lines" }, (bron ? { "aria-describedby": this.id } : {})), caption && h("caption", null, caption), colspecs && h(Colgroup, { colspecs: colspecs }), headRows.length > 0 && (h("thead", null, h(Rows, { rows: headRows, colspecs: colspecs, context: context }))), bodyRows.length > 0 && (h("tbody", null, h(Rows, { rows: bodyRows, colspecs: colspecs, context: context })))), bron && h("div", { id: this.id }, context.mapNodeToJsx(bron))));
30
+ return (h("dso-table", null, h("table", Object.assign({ class: clsx("table dso-table-vertical-lines", {
31
+ "dso-del": editAction === "verwijder",
32
+ "dso-ins": editAction === "voegtoe",
33
+ }) }, (bron ? { "aria-describedby": this.id } : {})), caption && h("caption", null, caption), colspecs && h(Colgroup, { colspecs: colspecs }), headRows.length > 0 && (h("thead", null, h(Rows, { rows: headRows, colspecs: colspecs, context: context }))), bodyRows.length > 0 && (h("tbody", null, h(Rows, { rows: bodyRows, colspecs: colspecs, context: context })))), bron && h("div", { id: this.id }, context.mapNodeToJsx(bron))));
29
34
  }
30
35
  }
@@ -0,0 +1,9 @@
1
+ import { h } from "@stencil/core";
2
+ export class OzonContentVerwijderdeTekstNode {
3
+ constructor() {
4
+ this.name = "VerwijderdeTekst";
5
+ }
6
+ render(node, { mapNodeToJsx }) {
7
+ return h("del", null, mapNodeToJsx(node.childNodes));
8
+ }
9
+ }
@@ -12,10 +12,12 @@ import { OzonContentInlineNodes } from "./nodes/inline.nodes";
12
12
  import { OzonContentIntIoRefNode } from "./nodes/int-io-ref.node";
13
13
  import { OzonContentIntRefNode } from "./nodes/int-ref.node";
14
14
  import { OzonContentLijstNode } from "./nodes/lijst.node";
15
+ import { OzonContentNieuweTekstNode } from "./nodes/nieuwe-tekst.node";
15
16
  import { OzonContentNootNode } from "./nodes/noot.node";
16
17
  import { OzonContentOpschriftNode } from "./nodes/opschrift.node";
17
18
  import { OzonContentTableNode } from "./nodes/table.node";
18
19
  import { OzonContentTextNode } from "./nodes/text.node";
20
+ import { OzonContentVerwijderdeTekstNode } from "./nodes/verwijderde-tekst.node";
19
21
  export class Mapper {
20
22
  constructor() {
21
23
  this.mappers = [
@@ -34,6 +36,8 @@ export class Mapper {
34
36
  new OzonContentFiguurNode(),
35
37
  new OzonContentLijstNode(),
36
38
  new OzonContentBronNode(),
39
+ new OzonContentNieuweTekstNode(),
40
+ new OzonContentVerwijderdeTekstNode(),
37
41
  ];
38
42
  this.skip = this.mappers.reduce((t, m) => {
39
43
  if (m.handles) {
@@ -219,4 +219,21 @@ span[role=paragraph] {
219
219
  border: 1px solid #e5e5e5;
220
220
  margin-bottom: 1rem;
221
221
  padding: 1rem;
222
+ }
223
+
224
+ .dso-del {
225
+ background-color: #f5d8dc;
226
+ color: #000;
227
+ text-decoration: line-through;
228
+ }
229
+ .dso-del a {
230
+ color: #000;
231
+ }
232
+
233
+ .dso-ins {
234
+ background-color: #e4f1d4;
235
+ color: #000;
236
+ }
237
+ .dso-ins a {
238
+ color: #000;
222
239
  }
@@ -1,5 +1,6 @@
1
1
  :host {
2
2
  display: block;
3
+ padding-left: 32px;
3
4
  position: relative;
4
5
  }
5
6
  :host .dso-selectable-options {
@@ -137,6 +138,9 @@
137
138
  margin: 8px 16px 0 -32px;
138
139
  width: calc(100% + 32px);
139
140
  }
141
+ :host[invalid] {
142
+ --dso-selectable-color: #ce3f51;
143
+ }
140
144
 
141
145
  :host(:not(:last-child)) {
142
146
  margin-bottom: 8px;
@@ -150,6 +154,7 @@
150
154
 
151
155
  .dso-selectable-input-wrapper {
152
156
  display: inline-block;
157
+ margin-left: -32px;
153
158
  min-height: 24px;
154
159
  padding-left: 32px;
155
160
  }
@@ -2,15 +2,9 @@ import { beforeWrite, createPopper } from "@popperjs/core";
2
2
  import maxSize from "popper-max-size-modifier";
3
3
  import { h, Host } from "@stencil/core";
4
4
  import clsx from "clsx";
5
+ import { hasOverflow } from "../../utils/has-overflow";
5
6
  // Keep const in sync with $tooltip-transition-duration in dso-toolkit/src/components/tooltip/tooltip.scss tooltip_root() mixin
6
7
  const transitionDuration = 150;
7
- function hasOverflow(el) {
8
- const style = window.getComputedStyle(el);
9
- const overflowX = style.getPropertyValue("overflow-x");
10
- const overflowY = style.getPropertyValue("overflow-y");
11
- const overflowValues = ["hidden", "clip"];
12
- return overflowValues.indexOf(overflowX) !== -1 || overflowValues.indexOf(overflowY) !== -1;
13
- }
14
8
  export class Tooltip {
15
9
  constructor() {
16
10
  this.applyMaxSize = {
@@ -0,0 +1,7 @@
1
+ export function hasOverflow(el) {
2
+ const style = window.getComputedStyle(el);
3
+ const overflowX = style.getPropertyValue("overflow-x");
4
+ const overflowY = style.getPropertyValue("overflow-y");
5
+ const overflowValues = ["hidden", "clip"];
6
+ return overflowValues.indexOf(overflowX) !== -1 || overflowValues.indexOf(overflowY) !== -1;
7
+ }
@@ -1,7 +1,7 @@
1
1
  import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
2
  import { t as tabbable } from './index.esm.js';
3
+ import { h as hasOverflow, c as createPopper } from './has-overflow.js';
3
4
  import { v as v4 } from './v4.js';
4
- import { c as createPopper } from './popper.js';
5
5
 
6
6
  const dropdownMenuCss = ":host(:focus){outline:none}:host{display:inline-block}";
7
7
 
@@ -47,6 +47,7 @@ const DropdownMenu = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
47
47
  this.dropdownAlign = "left";
48
48
  this.checkable = false;
49
49
  this.boundary = undefined;
50
+ this.strategy = "auto";
50
51
  }
51
52
  watchPosition() {
52
53
  if (!this.popper) {
@@ -56,6 +57,34 @@ const DropdownMenu = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
56
57
  placement: this.dropdownAlign === "right" ? "bottom-end" : "bottom-start",
57
58
  });
58
59
  }
60
+ watchStrategy() {
61
+ this.setStrategy();
62
+ }
63
+ setStrategy() {
64
+ if (!this.popper) {
65
+ return;
66
+ }
67
+ if (this.strategy === "absolute" || this.strategy === "fixed") {
68
+ this.popper.setOptions({
69
+ strategy: this.strategy,
70
+ });
71
+ return;
72
+ }
73
+ let element = this.host;
74
+ const boundary = this.boundary || document;
75
+ while (element && element.parentNode !== boundary) {
76
+ element = element.parentNode instanceof ShadowRoot ? element.parentNode.host : element.parentElement;
77
+ if (element !== null && hasOverflow(element)) {
78
+ this.popper.setOptions({
79
+ strategy: "fixed",
80
+ });
81
+ return;
82
+ }
83
+ }
84
+ this.popper.setOptions({
85
+ strategy: "absolute",
86
+ });
87
+ }
59
88
  get button() {
60
89
  const button = this.host.querySelector('button[slot="toggle"]');
61
90
  if (!(button instanceof HTMLButtonElement)) {
@@ -90,11 +119,11 @@ const DropdownMenu = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
90
119
  if (this.popper) {
91
120
  return;
92
121
  }
93
- const dropdownOptions = this.host.querySelector(".dso-dropdown-options");
94
- if (!(dropdownOptions instanceof HTMLElement)) {
122
+ const dropdownOptionsElement = this.host.querySelector(".dso-dropdown-options");
123
+ if (!(dropdownOptionsElement instanceof HTMLElement)) {
95
124
  throw new Error("dropdown options element is not instanceof HTMLElement");
96
125
  }
97
- this.popper = createPopper(this.button, dropdownOptions, {
126
+ this.popper = createPopper(this.button, dropdownOptionsElement, {
98
127
  placement: this.dropdownAlign === "right" ? "bottom-end" : "bottom-start",
99
128
  modifiers: [
100
129
  {
@@ -115,7 +144,10 @@ const DropdownMenu = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
115
144
  }
116
145
  componentDidRender() {
117
146
  var _a;
118
- (_a = this.popper) === null || _a === void 0 ? void 0 : _a.update();
147
+ this.setStrategy();
148
+ if (this.open) {
149
+ (_a = this.popper) === null || _a === void 0 ? void 0 : _a.update();
150
+ }
119
151
  for (const li of Array.from(this.host.getElementsByTagName("li"))) {
120
152
  for (const tab of tabbable(li)) {
121
153
  tab.setAttribute("role", this.checkable ? "menuitemradio" : "menuitem");
@@ -167,14 +199,16 @@ const DropdownMenu = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
167
199
  }
168
200
  get host() { return this; }
169
201
  static get watchers() { return {
170
- "dropdownAlign": ["watchPosition"]
202
+ "dropdownAlign": ["watchPosition"],
203
+ "strategy": ["watchStrategy"]
171
204
  }; }
172
205
  static get style() { return dropdownMenuCss; }
173
206
  }, [1, "dso-dropdown-menu", {
174
207
  "open": [1540],
175
208
  "dropdownAlign": [1, "dropdown-align"],
176
209
  "checkable": [4],
177
- "boundary": [1]
210
+ "boundary": [1],
211
+ "strategy": [1]
178
212
  }]);
179
213
  function defineCustomElement() {
180
214
  if (typeof customElements === "undefined") {
@@ -20,6 +20,7 @@ const Card = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
20
20
  this.isSelectable = false;
21
21
  this.hasImage = false;
22
22
  this.clickable = true;
23
+ this.imageShape = "normal";
23
24
  }
24
25
  clickEventHandler(e) {
25
26
  if (!(e.target instanceof HTMLElement) || !this.clickable) {
@@ -51,7 +52,8 @@ const Card = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
51
52
  }, [1, "dso-card", {
52
53
  "isSelectable": [516, "is-selectable"],
53
54
  "hasImage": [516, "has-image"],
54
- "clickable": [4]
55
+ "clickable": [4],
56
+ "imageShape": [513, "image-shape"]
55
57
  }]);
56
58
  function defineCustomElement$1() {
57
59
  if (typeof customElements === "undefined") {
@@ -218,7 +218,7 @@ const localization = {
218
218
  monthNamesShort: ["Jan", "Feb", "Mrt", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"],
219
219
  };
220
220
 
221
- const datePickerCss = ".sc-dso-date-picker-h{display:block}.dso-date.sc-dso-date-picker *.sc-dso-date-picker,.dso-date.sc-dso-date-picker *.sc-dso-date-picker::before,.dso-date.sc-dso-date-picker *.sc-dso-date-picker::after{box-sizing:border-box}.dso-date.sc-dso-date-picker{box-sizing:border-box;color:#191919;display:block;font-family:\"Asap\", sans-serif;margin:0;position:relative;text-align:left;width:100%}.dso-date.sc-dso-date-picker:not(.dso-visible) .dso-date__dialog.sc-dso-date-picker{display:none}.dso-date__input.sc-dso-date-picker{display:block;width:100%;height:40px;padding:6px 14px;font-size:1rem;line-height:1.5;color:#191919;background-color:#fff;background-image:none;border:1px solid #275937;border-radius:4px;transition:border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s}.dso-date__input.sc-dso-date-picker::-moz-placeholder{color:#666;opacity:1}.dso-date__input.sc-dso-date-picker:-ms-input-placeholder{color:#666}.dso-date__input.sc-dso-date-picker::-webkit-input-placeholder{color:#666}.dso-date__input.sc-dso-date-picker::-ms-expand{background-color:transparent;border:0}.dso-date__input.sc-dso-date-picker:focus{border-color:#275937;outline:0;box-shadow:inset 0 0 0 1px #275937}.dso-date__input[disabled].sc-dso-date-picker,.dso-date__input[readonly].sc-dso-date-picker,fieldset[disabled].sc-dso-date-picker .dso-date__input.sc-dso-date-picker{background-color:#fff;opacity:1}.dso-date__input[disabled].sc-dso-date-picker,fieldset[disabled].sc-dso-date-picker .dso-date__input.sc-dso-date-picker{cursor:default}.dso-date__input[disabled].sc-dso-date-picker{border-color:#e5e5e5;color:#999}.dso-date__input[readonly].sc-dso-date-picker{border-width:1px}.dso-date__input[type=text].sc-dso-date-picker{line-height:40px}.dso-date__input[size].sc-dso-date-picker{width:auto}.dso-date__toggle.sc-dso-date-picker{-moz-appearance:none;-webkit-appearance:none;-webkit-user-select:none;align-items:center;appearance:none;background:transparent;border:0;border-radius:0;border-bottom-right-radius:4px;border-top-right-radius:4px;color:#39870c;cursor:pointer;display:flex;height:38px;justify-content:center;padding:0;position:absolute;right:0;transform:translateY(-50%);top:50%;user-select:none;width:38px;z-index:101}.dso-date__toggle.sc-dso-date-picker:disabled{color:#afcf9d;cursor:pointer}.dso-date__dialog.sc-dso-date-picker{border-width:1px;display:flex;right:0;min-width:320px;opacity:0;position:absolute;top:100%;transform:scale(0.96) translateZ(0) translateY(-20px);transform-origin:top right;transition:transform 300ms ease, opacity 300ms ease, visibility 300ms ease;visibility:hidden;will-change:transform, opacity, visibility;z-index:210}@media (max-width: 35.9375em){.dso-date__dialog.sc-dso-date-picker{background:rgba(25, 25, 25, 0.5);bottom:0;position:fixed;left:0;right:0;top:0;transform:translateZ(0);transform-origin:bottom center}}.dso-date__dialog.is-left.sc-dso-date-picker{left:-11px;right:auto;width:auto}.dso-date__dialog.is-active.sc-dso-date-picker{opacity:1;transform:scale(1.0001) translateZ(0) translateY(0);visibility:visible}.dso-date__dialog-content.sc-dso-date-picker{background:#fff;border:1px solid rgba(0, 0, 0, 0.1);border-radius:4px;box-shadow:0 8px 10px 1px rgba(0, 0, 0, 0.4);margin-left:auto;margin-right:-1px;margin-top:8px;max-width:310px;min-width:290px;padding:16px;position:relative;transform:none;width:100%;z-index:210}@media (max-width: 35.9375em){.dso-date__dialog-content.sc-dso-date-picker{border:0;border-radius:0;border-top-left-radius:4px;border-top-right-radius:4px;bottom:0;left:0;margin:0;max-width:none;min-height:26em;opacity:0;padding:0 8% 20px;position:absolute;transform:translateZ(0) translateY(100%);transition:transform 400ms ease, opacity 400ms ease, visibility 400ms ease;visibility:hidden;will-change:transform, opacity, visibility}.is-active.sc-dso-date-picker .dso-date__dialog-content.sc-dso-date-picker{opacity:1;transform:translateZ(0) translateY(0);visibility:visible}}.dso-date__table.sc-dso-date-picker{border-collapse:collapse;border-spacing:0;color:#191919;font-size:1rem;font-weight:400;line-height:1.25;min-width:280px;table-layout:fixed;text-align:center;width:100%}.dso-date__table-header.sc-dso-date-picker{font-size:0.875em;font-weight:600;height:36px;line-height:36px;text-decoration:none;text-transform:uppercase}.dso-date__cell.sc-dso-date-picker{height:40px;padding:1px;text-align:center;width:40px}.dso-date__day.sc-dso-date-picker{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0;border-radius:50%;box-shadow:0 0 0 1px transparent;color:#191919;cursor:pointer;display:inline-block;font-family:\"Asap\", sans-serif;font-variant-numeric:tabular-nums;font-weight:400;height:38px;line-height:0;padding:0;position:relative;text-align:center;vertical-align:middle;width:38px;z-index:100}.dso-date__day.is-today.sc-dso-date-picker{background:transparent;height:36px;box-shadow:0 0 0 1px #39870c;width:36px}.dso-date__day.sc-dso-date-picker:hover,.dso-date__day.sc-dso-date-picker:active{background:#39870c;color:#fff}.dso-date__day.sc-dso-date-picker:focus{background:transparent;box-shadow:0 0 0 2px #275937;color:#191919;height:34px;outline:0;width:34px}[aria-selected=true].sc-dso-date-picker .dso-date__day.sc-dso-date-picker{background:#39870c;color:#fff}[aria-selected=true].sc-dso-date-picker .dso-date__day.sc-dso-date-picker:focus{background:transparent}[aria-selected=true].sc-dso-date-picker .dso-date__day.sc-dso-date-picker:focus span[aria-hidden=true].sc-dso-date-picker{background:#39870c;border:1px solid #fff;line-height:32px}.dso-date__day.is-outside.sc-dso-date-picker{background:#f2f2f2;box-shadow:none;color:#666;cursor:default;pointer-events:none}.dso-date__day.is-disabled.sc-dso-date-picker{background:#fff;cursor:default}.dso-date__day.is-disabled.sc-dso-date-picker:hover{color:#666}.dso-date__day.sc-dso-date-picker span[aria-hidden=true].sc-dso-date-picker{border-radius:50%;display:inline-block;height:34px;line-height:34px;width:34px}.dso-date__header.sc-dso-date-picker{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px;width:100%}.dso-date__header.sc-dso-date-picker span.sc-dso-date-picker{font-size:0.875rem}.dso-date__nav.sc-dso-date-picker{white-space:nowrap}.dso-date__prev.sc-dso-date-picker,.dso-date__next.sc-dso-date-picker{-moz-appearance:none;-webkit-appearance:none;align-items:center;appearance:none;background:transparent;border:1px solid #39870c;border-radius:4px;box-sizing:border-box;color:#39870c;cursor:pointer;display:inline-flex;font-size:1em;height:32px;justify-content:center;margin-left:8px;padding:0;width:32px}@media (max-width: 35.9375em){.dso-date__prev.sc-dso-date-picker,.dso-date__next.sc-dso-date-picker{height:40px;width:40px}}.dso-date__prev.sc-dso-date-picker:hover,.dso-date__prev.sc-dso-date-picker:active,.dso-date__next.sc-dso-date-picker:hover,.dso-date__next.sc-dso-date-picker:active{background-color:#39870c;color:#fff}.dso-date__prev.sc-dso-date-picker:focus,.dso-date__next.sc-dso-date-picker:focus{background:transparent;color:#39870c}.dso-date__prev.sc-dso-date-picker:disabled,.dso-date__prev.sc-dso-date-picker:disabled:hover,.dso-date__next.sc-dso-date-picker:disabled,.dso-date__next.sc-dso-date-picker:disabled:hover{background-color:#fff;border-color:#afcf9d;color:#afcf9d;opacity:1}.dso-date__prev.sc-dso-date-picker svg.sc-dso-date-picker,.dso-date__next.sc-dso-date-picker svg.sc-dso-date-picker{margin:0 auto}.dso-date__select.sc-dso-date-picker{display:inline-flex;height:28px;line-height:28px;position:relative}.dso-date__select.sc-dso-date-picker span.sc-dso-date-picker{margin-right:4px}.dso-date__select.sc-dso-date-picker select.sc-dso-date-picker{color:#275937;cursor:pointer;font-size:1rem;height:100%;left:0;opacity:0;position:absolute;top:0;width:100%;z-index:101}.dso-date__select.sc-dso-date-picker select.sc-dso-date-picker:focus+.dso-date__select-label.sc-dso-date-picker{box-shadow:0 0 0 2px #275937}.dso-date__select.sc-dso-date-picker select.sc-dso-date-picker:disabled{color:#afcf9d}.dso-date__select-label.sc-dso-date-picker{align-items:center;border-radius:4px;color:#39870c;display:flex;padding:0 4px 0 8px;pointer-events:none;position:relative;width:100%;z-index:100}.dso-date__select-label.sc-dso-date-picker span.sc-dso-date-picker{font-size:1.25rem;font-weight:600;line-height:1.25}.dso-date__select-label.sc-dso-date-picker svg.sc-dso-date-picker{width:16px;height:16px}.dso-date__mobile.sc-dso-date-picker{align-items:center;border-bottom:1px solid rgba(0, 0, 0, 0.12);display:flex;font-size:1em;justify-content:space-between;margin-bottom:20px;margin-left:-10%;overflow:hidden;padding:12px 20px;position:relative;text-overflow:ellipsis;white-space:nowrap;width:120%}@media (min-width: 36em){.dso-date__mobile.sc-dso-date-picker{border:0;margin:0;overflow:visible;padding:0;position:absolute;right:-16px;top:-16px;width:auto}}.dso-date__mobile-heading.sc-dso-date-picker{display:inline-block;font-weight:600;max-width:84%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 36em){.dso-date__mobile-heading.sc-dso-date-picker{display:none}}.dso-date__close.sc-dso-date-picker{-webkit-appearance:none;align-items:center;appearance:none;background-color:#fff;border:0;border-radius:50%;color:#39870c;cursor:pointer;display:flex;font-size:1em;height:32px;justify-content:center;margin-right:-4px;padding:0;width:32px}@media (min-width: 36em){.dso-date__close.sc-dso-date-picker{margin-right:0;opacity:0}}.dso-date__close.sc-dso-date-picker:focus{box-shadow:0 0 0 2px #275937;outline:none}@media (min-width: 36em){.dso-date__close.sc-dso-date-picker:focus{opacity:1}}.dso-date__vhidden.sc-dso-date-picker{border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;padding:0;position:absolute;top:0;width:1px}";
221
+ const datePickerCss = ".sc-dso-date-picker-h{display:block}[invalid].sc-dso-date-picker-h .dso-date__input.sc-dso-date-picker{border-color:#ce3f51}.dso-date.sc-dso-date-picker *.sc-dso-date-picker,.dso-date.sc-dso-date-picker *.sc-dso-date-picker::before,.dso-date.sc-dso-date-picker *.sc-dso-date-picker::after{box-sizing:border-box}.dso-date.sc-dso-date-picker{box-sizing:border-box;color:#191919;display:block;font-family:\"Asap\", sans-serif;margin:0;position:relative;text-align:left;width:100%}.dso-date.sc-dso-date-picker:not(.dso-visible) .dso-date__dialog.sc-dso-date-picker{display:none}.dso-date__input.sc-dso-date-picker{display:block;width:100%;height:40px;padding:6px 14px;font-size:1rem;line-height:1.5;color:#191919;background-color:#fff;background-image:none;border:1px solid #275937;border-radius:4px;transition:border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s}.dso-date__input.sc-dso-date-picker::-moz-placeholder{color:#666;opacity:1}.dso-date__input.sc-dso-date-picker:-ms-input-placeholder{color:#666}.dso-date__input.sc-dso-date-picker::-webkit-input-placeholder{color:#666}.dso-date__input.sc-dso-date-picker::-ms-expand{background-color:transparent;border:0}.dso-date__input.sc-dso-date-picker:focus{border-color:#275937;outline:0;box-shadow:inset 0 0 0 1px #275937}.dso-date__input[disabled].sc-dso-date-picker,.dso-date__input[readonly].sc-dso-date-picker,fieldset[disabled].sc-dso-date-picker .dso-date__input.sc-dso-date-picker{background-color:#fff;opacity:1}.dso-date__input[disabled].sc-dso-date-picker,fieldset[disabled].sc-dso-date-picker .dso-date__input.sc-dso-date-picker{cursor:default}.dso-date__input[disabled].sc-dso-date-picker{border-color:#e5e5e5;color:#999}.dso-date__input[readonly].sc-dso-date-picker{border-width:1px}.dso-date__input[type=text].sc-dso-date-picker{line-height:40px}.dso-date__input[size].sc-dso-date-picker{width:auto}.dso-date__toggle.sc-dso-date-picker{-moz-appearance:none;-webkit-appearance:none;-webkit-user-select:none;align-items:center;appearance:none;background:transparent;border:0;border-radius:0;border-bottom-right-radius:4px;border-top-right-radius:4px;color:#39870c;cursor:pointer;display:flex;height:38px;justify-content:center;padding:0;position:absolute;right:0;transform:translateY(-50%);top:50%;user-select:none;width:38px;z-index:101}.dso-date__toggle.sc-dso-date-picker:disabled{color:#afcf9d;cursor:default}.dso-date__dialog.sc-dso-date-picker{border-width:1px;display:flex;right:0;min-width:320px;opacity:0;position:absolute;top:100%;transform:scale(0.96) translateZ(0) translateY(-20px);transform-origin:top right;transition:transform 300ms ease, opacity 300ms ease, visibility 300ms ease;visibility:hidden;will-change:transform, opacity, visibility;z-index:210}@media (max-width: 35.9375em){.dso-date__dialog.sc-dso-date-picker{background:rgba(25, 25, 25, 0.5);bottom:0;position:fixed;left:0;right:0;top:0;transform:translateZ(0);transform-origin:bottom center}}.dso-date__dialog.is-left.sc-dso-date-picker{left:-11px;right:auto;width:auto}.dso-date__dialog.is-active.sc-dso-date-picker{opacity:1;transform:scale(1.0001) translateZ(0) translateY(0);visibility:visible}.dso-date__dialog-content.sc-dso-date-picker{background:#fff;border:1px solid rgba(0, 0, 0, 0.1);border-radius:4px;box-shadow:0 8px 10px 1px rgba(0, 0, 0, 0.4);margin-left:auto;margin-right:-1px;margin-top:8px;max-width:310px;min-width:290px;padding:16px;position:relative;transform:none;width:100%;z-index:210}@media (max-width: 35.9375em){.dso-date__dialog-content.sc-dso-date-picker{border:0;border-radius:0;border-top-left-radius:4px;border-top-right-radius:4px;bottom:0;left:0;margin:0;max-width:none;min-height:26em;opacity:0;padding:0 8% 20px;position:absolute;transform:translateZ(0) translateY(100%);transition:transform 400ms ease, opacity 400ms ease, visibility 400ms ease;visibility:hidden;will-change:transform, opacity, visibility}.is-active.sc-dso-date-picker .dso-date__dialog-content.sc-dso-date-picker{opacity:1;transform:translateZ(0) translateY(0);visibility:visible}}.dso-date__table.sc-dso-date-picker{border-collapse:collapse;border-spacing:0;color:#191919;font-size:1rem;font-weight:400;line-height:1.25;min-width:280px;table-layout:fixed;text-align:center;width:100%}.dso-date__table-header.sc-dso-date-picker{font-size:0.875em;font-weight:600;height:36px;line-height:36px;text-decoration:none;text-transform:uppercase}.dso-date__cell.sc-dso-date-picker{height:40px;padding:1px;text-align:center;width:40px}.dso-date__day.sc-dso-date-picker{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:transparent;border:0;border-radius:50%;box-shadow:0 0 0 1px transparent;color:#191919;cursor:pointer;display:inline-block;font-family:\"Asap\", sans-serif;font-variant-numeric:tabular-nums;font-weight:400;height:38px;line-height:0;padding:0;position:relative;text-align:center;vertical-align:middle;width:38px;z-index:100}.dso-date__day.is-today.sc-dso-date-picker{background:transparent;height:36px;box-shadow:0 0 0 1px #39870c;width:36px}.dso-date__day.sc-dso-date-picker:hover,.dso-date__day.sc-dso-date-picker:active{background:#39870c;color:#fff}.dso-date__day.sc-dso-date-picker:focus{background:transparent;box-shadow:0 0 0 2px #275937;color:#191919;height:34px;outline:0;width:34px}[aria-selected=true].sc-dso-date-picker .dso-date__day.sc-dso-date-picker{background:#39870c;color:#fff}[aria-selected=true].sc-dso-date-picker .dso-date__day.sc-dso-date-picker:focus{background:transparent}[aria-selected=true].sc-dso-date-picker .dso-date__day.sc-dso-date-picker:focus span[aria-hidden=true].sc-dso-date-picker{background:#39870c;border:1px solid #fff;line-height:32px}.dso-date__day.is-outside.sc-dso-date-picker{background:#f2f2f2;box-shadow:none;color:#666;cursor:default;pointer-events:none}.dso-date__day.is-disabled.sc-dso-date-picker{background:#fff;cursor:default}.dso-date__day.is-disabled.sc-dso-date-picker:hover{color:#666}.dso-date__day.sc-dso-date-picker span[aria-hidden=true].sc-dso-date-picker{border-radius:50%;display:inline-block;height:34px;line-height:34px;width:34px}.dso-date__header.sc-dso-date-picker{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px;width:100%}.dso-date__header.sc-dso-date-picker span.sc-dso-date-picker{font-size:0.875rem}.dso-date__nav.sc-dso-date-picker{white-space:nowrap}.dso-date__prev.sc-dso-date-picker,.dso-date__next.sc-dso-date-picker{-moz-appearance:none;-webkit-appearance:none;align-items:center;appearance:none;background:transparent;border:1px solid #39870c;border-radius:4px;box-sizing:border-box;color:#39870c;cursor:pointer;display:inline-flex;font-size:1em;height:32px;justify-content:center;margin-left:8px;padding:0;width:32px}@media (max-width: 35.9375em){.dso-date__prev.sc-dso-date-picker,.dso-date__next.sc-dso-date-picker{height:40px;width:40px}}.dso-date__prev.sc-dso-date-picker:hover,.dso-date__prev.sc-dso-date-picker:active,.dso-date__next.sc-dso-date-picker:hover,.dso-date__next.sc-dso-date-picker:active{background-color:#39870c;color:#fff}.dso-date__prev.sc-dso-date-picker:focus,.dso-date__next.sc-dso-date-picker:focus{background:transparent;color:#39870c}.dso-date__prev.sc-dso-date-picker:disabled,.dso-date__prev.sc-dso-date-picker:disabled:hover,.dso-date__next.sc-dso-date-picker:disabled,.dso-date__next.sc-dso-date-picker:disabled:hover{background-color:#fff;border-color:#afcf9d;color:#afcf9d;opacity:1}.dso-date__prev.sc-dso-date-picker svg.sc-dso-date-picker,.dso-date__next.sc-dso-date-picker svg.sc-dso-date-picker{margin:0 auto}.dso-date__select.sc-dso-date-picker{display:inline-flex;height:28px;line-height:28px;position:relative}.dso-date__select.sc-dso-date-picker span.sc-dso-date-picker{margin-right:4px}.dso-date__select.sc-dso-date-picker select.sc-dso-date-picker{color:#275937;cursor:pointer;font-size:1rem;height:100%;left:0;opacity:0;position:absolute;top:0;width:100%;z-index:101}.dso-date__select.sc-dso-date-picker select.sc-dso-date-picker:focus+.dso-date__select-label.sc-dso-date-picker{box-shadow:0 0 0 2px #275937}.dso-date__select.sc-dso-date-picker select.sc-dso-date-picker:disabled{color:#afcf9d}.dso-date__select-label.sc-dso-date-picker{align-items:center;border-radius:4px;color:#39870c;display:flex;padding:0 4px 0 8px;pointer-events:none;position:relative;width:100%;z-index:100}.dso-date__select-label.sc-dso-date-picker span.sc-dso-date-picker{font-size:1.25rem;font-weight:600;line-height:1.25}.dso-date__select-label.sc-dso-date-picker svg.sc-dso-date-picker{width:16px;height:16px}.dso-date__mobile.sc-dso-date-picker{align-items:center;border-bottom:1px solid rgba(0, 0, 0, 0.12);display:flex;font-size:1em;justify-content:space-between;margin-bottom:20px;margin-left:-10%;overflow:hidden;padding:12px 20px;position:relative;text-overflow:ellipsis;white-space:nowrap;width:120%}@media (min-width: 36em){.dso-date__mobile.sc-dso-date-picker{border:0;margin:0;overflow:visible;padding:0;position:absolute;right:-16px;top:-16px;width:auto}}.dso-date__mobile-heading.sc-dso-date-picker{display:inline-block;font-weight:600;max-width:84%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 36em){.dso-date__mobile-heading.sc-dso-date-picker{display:none}}.dso-date__close.sc-dso-date-picker{-webkit-appearance:none;align-items:center;appearance:none;background-color:#fff;border:0;border-radius:50%;color:#39870c;cursor:pointer;display:flex;font-size:1em;height:32px;justify-content:center;margin-right:-4px;padding:0;width:32px}@media (min-width: 36em){.dso-date__close.sc-dso-date-picker{margin-right:0;opacity:0}}.dso-date__close.sc-dso-date-picker:focus{box-shadow:0 0 0 2px #275937;outline:none}@media (min-width: 36em){.dso-date__close.sc-dso-date-picker:focus{opacity:1}}.dso-date__vhidden.sc-dso-date-picker{border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;padding:0;position:absolute;top:0;width:1px}";
222
222
 
223
223
  function range(from, to) {
224
224
  const result = [];
@@ -495,6 +495,7 @@ const DsoDatePicker$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
495
495
  this.role = null;
496
496
  this.direction = "right";
497
497
  this.required = false;
498
+ this.invalid = undefined;
498
499
  this.dsoAutofocus = false;
499
500
  this.value = "";
500
501
  this.min = undefined;
@@ -612,7 +613,7 @@ const DsoDatePicker$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
612
613
  * Always the last one in the class.
613
614
  */
614
615
  render() {
615
- var _a;
616
+ var _a, _b;
616
617
  const valueAsDate = parseDutchDate(this.value);
617
618
  const formattedDate = valueAsDate && printDutchDate(valueAsDate);
618
619
  const selectedYear = (valueAsDate || this.focusedDay).getFullYear();
@@ -630,7 +631,7 @@ const DsoDatePicker$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
630
631
  if (maxDate) {
631
632
  maxYear = Math.min(maxYear, maxDate.getFullYear());
632
633
  }
633
- return (h(Host, null, h("div", { class: { "dso-date": true, "dso-visible": this.visible } }, h("div", { class: "dso-date__input-wrapper" }, h("input", { class: "dso-date__input", value: this.value, placeholder: this.localization.placeholder, id: this.identifier, disabled: this.disabled, role: (_a = this.role) !== null && _a !== void 0 ? _a : undefined, required: this.required ? true : undefined, "aria-autocomplete": "none", onInput: this.handleInputChange, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyUp: this.handleKeyUp, onKeyDown: this.handleKeyDown, autoComplete: "off", ref: (element) => (this.datePickerInput = element) }), h("button", { type: "button", class: "dso-date__toggle", onClick: this.toggleOpen, disabled: this.disabled, ref: (element) => (this.datePickerButton = element) }, h("span", { class: "dso-date__toggle-icon" }, h("dso-icon", { icon: "calendar" })), h("span", { class: "dso-date__vhidden" }, this.localization.buttonLabel, formattedDate && (h("span", null, ", ", this.localization.selectedDateMessage, " ", formattedDate))))), h("div", { class: {
634
+ return (h(Host, null, h("div", { class: { "dso-date": true, "dso-visible": this.visible } }, h("div", { class: "dso-date__input-wrapper" }, h("input", { class: "dso-date__input", value: this.value, placeholder: this.localization.placeholder, id: this.identifier, disabled: this.disabled, role: (_a = this.role) !== null && _a !== void 0 ? _a : undefined, required: this.required ? true : undefined, "aria-autocomplete": "none", "aria-invalid": (_b = this.invalid) === null || _b === void 0 ? void 0 : _b.toString(), onInput: this.handleInputChange, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyUp: this.handleKeyUp, onKeyDown: this.handleKeyDown, autoComplete: "off", ref: (element) => (this.datePickerInput = element) }), h("button", { type: "button", class: "dso-date__toggle", onClick: this.toggleOpen, disabled: this.disabled, ref: (element) => (this.datePickerButton = element) }, h("span", { class: "dso-date__toggle-icon" }, h("dso-icon", { icon: "calendar" })), h("span", { class: "dso-date__vhidden" }, this.localization.buttonLabel, formattedDate && (h("span", null, ", ", this.localization.selectedDateMessage, " ", formattedDate))))), h("div", { class: {
634
635
  "dso-date__dialog": true,
635
636
  "is-left": this.direction === "left",
636
637
  "is-active": this.open,
@@ -645,6 +646,7 @@ const DsoDatePicker$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
645
646
  "role": [1],
646
647
  "direction": [1],
647
648
  "required": [4],
649
+ "invalid": [4],
648
650
  "dsoAutofocus": [4, "dso-autofocus"],
649
651
  "value": [1537],
650
652
  "min": [1],
@@ -1,5 +1,6 @@
1
1
  import { h, Fragment, proxyCustomElement, HTMLElement, createEvent, Host } from '@stencil/core/internal/client';
2
2
  import { i as isTabbable } from './index.esm.js';
3
+ import { c as clsx } from './clsx.m.js';
3
4
  import { v as v4 } from './v4.js';
4
5
 
5
6
  function getNodeName(node) {
@@ -225,15 +226,24 @@ class OzonContentLijstNode {
225
226
  h("ul", { class: (_a = node.getAttribute("type")) !== null && _a !== void 0 ? _a : "" }, listItems.map((item) => {
226
227
  var _a;
227
228
  const itemNodes = Array.from(item.childNodes);
228
- const liNummer = (_a = itemNodes.find((n) => getNodeName(n) === "LiNummer")) === null || _a === void 0 ? void 0 : _a.textContent;
229
+ const liNummer = (_a = itemNodes.find((n) => getNodeName(n) === "LiNummer")) === null || _a === void 0 ? void 0 : _a.childNodes;
229
230
  return (h("li", { class: "od-Li" },
230
- liNummer && h("span", { class: "od-LiNummer" }, liNummer),
231
+ liNummer && h("span", { class: "od-LiNummer" }, mapNodeToJsx(liNummer)),
231
232
  mapNodeToJsx(itemNodes.filter((n) => getNodeName(n) !== "LiNummer"))));
232
233
  })),
233
234
  sluiting && mapNodeToJsx(sluiting)));
234
235
  }
235
236
  }
236
237
 
238
+ class OzonContentNieuweTekstNode {
239
+ constructor() {
240
+ this.name = "NieuweTekst";
241
+ }
242
+ render(node, { mapNodeToJsx }) {
243
+ return h("ins", null, mapNodeToJsx(node.childNodes));
244
+ }
245
+ }
246
+
237
247
  class OzonContentNootNode {
238
248
  constructor() {
239
249
  this.name = "Noot";
@@ -350,6 +360,7 @@ function mapData(node) {
350
360
  colspecs: tgroup && columnCount ? mapColspecs(columnCount, tgroup.querySelectorAll(":scope > colspec")) : undefined,
351
361
  headRows: Array.from(node.querySelectorAll(":scope > tgroup > thead > row")),
352
362
  bodyRows: Array.from(node.querySelectorAll(":scope > tgroup > tbody > row")),
363
+ editAction: node.getAttribute("wijzigactie"),
353
364
  };
354
365
  }
355
366
  class OzonContentTableNode {
@@ -359,10 +370,13 @@ class OzonContentTableNode {
359
370
  this.id = v4();
360
371
  }
361
372
  render(node, context) {
362
- const { caption, colspecs, headRows, bodyRows } = mapData(node);
373
+ const { caption, colspecs, headRows, bodyRows, editAction } = mapData(node);
363
374
  const bron = Array.from(node.childNodes).find((n) => getNodeName(n) === "Bron");
364
375
  return (h("dso-table", null,
365
- h("table", Object.assign({ class: "table dso-table-vertical-lines" }, (bron ? { "aria-describedby": this.id } : {})),
376
+ h("table", Object.assign({ class: clsx("table dso-table-vertical-lines", {
377
+ "dso-del": editAction === "verwijder",
378
+ "dso-ins": editAction === "voegtoe",
379
+ }) }, (bron ? { "aria-describedby": this.id } : {})),
366
380
  caption && h("caption", null, caption),
367
381
  colspecs && h(Colgroup, { colspecs: colspecs }),
368
382
  headRows.length > 0 && (h("thead", null,
@@ -382,6 +396,15 @@ class OzonContentTextNode {
382
396
  }
383
397
  }
384
398
 
399
+ class OzonContentVerwijderdeTekstNode {
400
+ constructor() {
401
+ this.name = "VerwijderdeTekst";
402
+ }
403
+ render(node, { mapNodeToJsx }) {
404
+ return h("del", null, mapNodeToJsx(node.childNodes));
405
+ }
406
+ }
407
+
385
408
  class Mapper {
386
409
  constructor() {
387
410
  this.mappers = [
@@ -400,6 +423,8 @@ class Mapper {
400
423
  new OzonContentFiguurNode(),
401
424
  new OzonContentLijstNode(),
402
425
  new OzonContentBronNode(),
426
+ new OzonContentNieuweTekstNode(),
427
+ new OzonContentVerwijderdeTekstNode(),
403
428
  ];
404
429
  this.skip = this.mappers.reduce((t, m) => {
405
430
  if (m.handles) {
@@ -457,7 +482,7 @@ class Mapper {
457
482
  }
458
483
  }
459
484
 
460
- const ozonContentCss = ".sc-dso-ozon-content-h:not([inline]) {\n display: block;\n}\n\n[inline].sc-dso-ozon-content-h {\n display: inline;\n}\n\n[deleted].sc-dso-ozon-content-h *.sc-dso-ozon-content {\n text-decoration: line-through !important;\n}\n\n[interactive].sc-dso-ozon-content-h {\n background-color: transparent;\n color: #39870c;\n text-decoration: underline;\n cursor: pointer;\n color: #275937;\n font-weight: 600;\n text-decoration: none;\n}\n[interactive].sc-dso-ozon-content-h:hover, [interactive].sc-dso-ozon-content-h:focus {\n color: #676cb0;\n text-decoration: underline;\n}\n[interactive].sc-dso-ozon-content-h:active {\n text-decoration: none;\n}\n\n[interactive=sub].sc-dso-ozon-content-h {\n color: #191919;\n}\n\n.deleted-start.sc-dso-ozon-content, .deleted-end.sc-dso-ozon-content {\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\nbutton.toggle-note.sc-dso-ozon-content {\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}\nbutton.toggle-note.sc-dso-ozon-content:focus, button.toggle-note.sc-dso-ozon-content:focus-visible {\n outline-offset: 2px;\n}\nbutton.toggle-note.sc-dso-ozon-content:active {\n outline: 0;\n}\nbutton.toggle-note[disabled].sc-dso-ozon-content {\n color: #afcf9d;\n}\nbutton.toggle-note[disabled].dso-spinner-left.sc-dso-ozon-content, button.toggle-note[disabled].dso-spinner-right.sc-dso-ozon-content {\n color: #39870c;\n}\nbutton.toggle-note.sc-dso-ozon-content:not([disabled]):hover {\n color: #676cb0;\n text-decoration: underline;\n text-underline-position: under;\n}\nbutton.toggle-note.sc-dso-ozon-content:not([disabled]):active {\n color: #676cb0;\n}\nbutton.toggle-note.btn-align.sc-dso-ozon-content {\n line-height: calc(1.5em - 1px);\n padding: 11px 0;\n position: relative;\n}\nbutton.toggle-note.dso-spinner-left.sc-dso-ozon-content::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}\nbutton.toggle-note.dso-spinner-right.sc-dso-ozon-content::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}\nbutton.toggle-note.sc-dso-ozon-content dso-icon.sc-dso-ozon-content + span.sc-dso-ozon-content:not(.sr-only), button.toggle-note.sc-dso-ozon-content svg.di.sc-dso-ozon-content + span.sc-dso-ozon-content:not(.sr-only), button.toggle-note.sc-dso-ozon-content span.sc-dso-ozon-content:not(.sr-only) + dso-icon.sc-dso-ozon-content, button.toggle-note.sc-dso-ozon-content span.sc-dso-ozon-content:not(.sr-only) + svg.di.sc-dso-ozon-content {\n margin-left: 8px;\n}\nbutton.toggle-note.sc-dso-ozon-content svg.di.di-chevron-down.sc-dso-ozon-content + span.sc-dso-ozon-content:not(.sr-only), button.toggle-note.sc-dso-ozon-content svg.di.di-chevron-up.sc-dso-ozon-content + span.sc-dso-ozon-content:not(.sr-only), button.toggle-note.sc-dso-ozon-content span.sc-dso-ozon-content:not(.sr-only) + svg.di.di-chevron-down.sc-dso-ozon-content, button.toggle-note.sc-dso-ozon-content span.sc-dso-ozon-content:not(.sr-only) + svg.di.di-chevron-up.sc-dso-ozon-content {\n margin-left: 4px;\n}\nbutton.toggle-note.sc-dso-ozon-content dso-icon[icon=chevron-left].sc-dso-ozon-content + span.sc-dso-ozon-content:not(.sr-only), button.toggle-note.sc-dso-ozon-content dso-icon[icon=chevron-right].sc-dso-ozon-content + span.sc-dso-ozon-content:not(.sr-only), button.toggle-note.sc-dso-ozon-content svg.di.di-angle-down.sc-dso-ozon-content + span.sc-dso-ozon-content:not(.sr-only), button.toggle-note.sc-dso-ozon-content svg.di.di-angle-up.sc-dso-ozon-content + span.sc-dso-ozon-content:not(.sr-only), button.toggle-note.sc-dso-ozon-content span.sc-dso-ozon-content:not(.sr-only) + svg.di.di-angle-down.sc-dso-ozon-content, button.toggle-note.sc-dso-ozon-content span.sc-dso-ozon-content:not(.sr-only) + svg.di.di-angle-up.sc-dso-ozon-content, button.toggle-note.sc-dso-ozon-content span.sc-dso-ozon-content:not(.sr-only) + dso-icon[icon=chevron-left].sc-dso-ozon-content, button.toggle-note.sc-dso-ozon-content span.sc-dso-ozon-content:not(.sr-only) + dso-icon[icon=chevron-right].sc-dso-ozon-content {\n margin-left: 0;\n}\nbutton.toggle-note.sc-dso-ozon-content dso-icon.sc-dso-ozon-content, button.toggle-note.sc-dso-ozon-content svg.di.sc-dso-ozon-content, button.toggle-note.sc-dso-ozon-content span.sc-dso-ozon-content {\n vertical-align: middle;\n}\n\nspan[role=section].sc-dso-ozon-content, span[role=paragraph].sc-dso-ozon-content {\n display: block;\n}\n\n.fallback.sc-dso-ozon-content {\n display: block;\n}\n\n.od-Term.sc-dso-ozon-content {\n font-weight: 700;\n}\n\n.od-Definitie.sc-dso-ozon-content, .od-Tussenkop.sc-dso-ozon-content {\n font-style: italic;\n}\n\n.od-Inhoud.sc-dso-ozon-content, .od-Inhoud.sc-dso-ozon-content > .od-Lijst.sc-dso-ozon-content, .od-IntIoRef.sc-dso-ozon-content, .od-Lidnr.sc-dso-ozon-content, .od-LiNr.sc-dso-ozon-content, .od-Opschrift.sc-dso-ozon-content, .od-Tussenkop.sc-dso-ozon-content {\n display: inline;\n}\n\n.od-Al.sc-dso-ozon-content {\n margin-bottom: 0.75em;\n}\n\n.od-IntIoRef.sc-dso-ozon-content {\n border-bottom: 1px dotted;\n}\n\n.dso-ozon-bron.sc-dso-ozon-content {\n font-style: italic;\n font-size: 0.75rem;\n}\n\n.dso-ozon-figuur.sc-dso-ozon-content {\n margin-bottom: 16px;\n}\n.dso-ozon-figuur.sc-dso-ozon-content .figuur-bijschrift.sc-dso-ozon-content {\n display: block;\n font-size: 0.75rem;\n font-style: italic;\n}\n.dso-ozon-figuur.bijschrift-boven.sc-dso-ozon-content .figuur-bijschrift.sc-dso-ozon-content {\n padding-bottom: 0.25rem;\n}\n.dso-ozon-figuur.bijschrift-onder.sc-dso-ozon-content .figuur-bijschrift.sc-dso-ozon-content {\n padding-top: 0.25rem;\n}\n.dso-ozon-figuur.sc-dso-ozon-content .figuur-titel.sc-dso-ozon-content {\n color: #8b4a6a;\n display: block;\n font-weight: 500;\n padding-bottom: 0.5rem;\n}\n\n.dso-ozon-lijst.sc-dso-ozon-content span.od-Lijstaanhef.sc-dso-ozon-content, .dso-ozon-lijst.sc-dso-ozon-content span.od-Lijstsluiting.sc-dso-ozon-content {\n margin-bottom: 1rem;\n}\n.dso-ozon-lijst.sc-dso-ozon-content ul.expliciet.sc-dso-ozon-content {\n list-style: none;\n}\n.dso-ozon-lijst.sc-dso-ozon-content ul.expliciet.sc-dso-ozon-content > .od-Li.sc-dso-ozon-content {\n position: relative;\n}\n.dso-ozon-lijst.sc-dso-ozon-content ul.expliciet.sc-dso-ozon-content > .od-Li.sc-dso-ozon-content > span.od-LiNummer.sc-dso-ozon-content {\n position: absolute;\n left: -44px;\n text-align: right;\n width: 40px;\n}\n\n.od-Tabel.sc-dso-ozon-content thead.sc-dso-ozon-content {\n font-weight: 600;\n}\n\n.od-Kadertekst.sc-dso-ozon-content {\n border: 1px solid #e5e5e5;\n margin-bottom: 1rem;\n padding: 1rem;\n}";
485
+ const ozonContentCss = ".sc-dso-ozon-content-h:not([inline]) {\n display: block;\n}\n\n[inline].sc-dso-ozon-content-h {\n display: inline;\n}\n\n[deleted].sc-dso-ozon-content-h *.sc-dso-ozon-content {\n text-decoration: line-through !important;\n}\n\n[interactive].sc-dso-ozon-content-h {\n background-color: transparent;\n color: #39870c;\n text-decoration: underline;\n cursor: pointer;\n color: #275937;\n font-weight: 600;\n text-decoration: none;\n}\n[interactive].sc-dso-ozon-content-h:hover, [interactive].sc-dso-ozon-content-h:focus {\n color: #676cb0;\n text-decoration: underline;\n}\n[interactive].sc-dso-ozon-content-h:active {\n text-decoration: none;\n}\n\n[interactive=sub].sc-dso-ozon-content-h {\n color: #191919;\n}\n\n.deleted-start.sc-dso-ozon-content, .deleted-end.sc-dso-ozon-content {\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\nbutton.toggle-note.sc-dso-ozon-content {\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}\nbutton.toggle-note.sc-dso-ozon-content:focus, button.toggle-note.sc-dso-ozon-content:focus-visible {\n outline-offset: 2px;\n}\nbutton.toggle-note.sc-dso-ozon-content:active {\n outline: 0;\n}\nbutton.toggle-note[disabled].sc-dso-ozon-content {\n color: #afcf9d;\n}\nbutton.toggle-note[disabled].dso-spinner-left.sc-dso-ozon-content, button.toggle-note[disabled].dso-spinner-right.sc-dso-ozon-content {\n color: #39870c;\n}\nbutton.toggle-note.sc-dso-ozon-content:not([disabled]):hover {\n color: #676cb0;\n text-decoration: underline;\n text-underline-position: under;\n}\nbutton.toggle-note.sc-dso-ozon-content:not([disabled]):active {\n color: #676cb0;\n}\nbutton.toggle-note.btn-align.sc-dso-ozon-content {\n line-height: calc(1.5em - 1px);\n padding: 11px 0;\n position: relative;\n}\nbutton.toggle-note.dso-spinner-left.sc-dso-ozon-content::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}\nbutton.toggle-note.dso-spinner-right.sc-dso-ozon-content::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}\nbutton.toggle-note.sc-dso-ozon-content dso-icon.sc-dso-ozon-content + span.sc-dso-ozon-content:not(.sr-only), button.toggle-note.sc-dso-ozon-content svg.di.sc-dso-ozon-content + span.sc-dso-ozon-content:not(.sr-only), button.toggle-note.sc-dso-ozon-content span.sc-dso-ozon-content:not(.sr-only) + dso-icon.sc-dso-ozon-content, button.toggle-note.sc-dso-ozon-content span.sc-dso-ozon-content:not(.sr-only) + svg.di.sc-dso-ozon-content {\n margin-left: 8px;\n}\nbutton.toggle-note.sc-dso-ozon-content svg.di.di-chevron-down.sc-dso-ozon-content + span.sc-dso-ozon-content:not(.sr-only), button.toggle-note.sc-dso-ozon-content svg.di.di-chevron-up.sc-dso-ozon-content + span.sc-dso-ozon-content:not(.sr-only), button.toggle-note.sc-dso-ozon-content span.sc-dso-ozon-content:not(.sr-only) + svg.di.di-chevron-down.sc-dso-ozon-content, button.toggle-note.sc-dso-ozon-content span.sc-dso-ozon-content:not(.sr-only) + svg.di.di-chevron-up.sc-dso-ozon-content {\n margin-left: 4px;\n}\nbutton.toggle-note.sc-dso-ozon-content dso-icon[icon=chevron-left].sc-dso-ozon-content + span.sc-dso-ozon-content:not(.sr-only), button.toggle-note.sc-dso-ozon-content dso-icon[icon=chevron-right].sc-dso-ozon-content + span.sc-dso-ozon-content:not(.sr-only), button.toggle-note.sc-dso-ozon-content svg.di.di-angle-down.sc-dso-ozon-content + span.sc-dso-ozon-content:not(.sr-only), button.toggle-note.sc-dso-ozon-content svg.di.di-angle-up.sc-dso-ozon-content + span.sc-dso-ozon-content:not(.sr-only), button.toggle-note.sc-dso-ozon-content span.sc-dso-ozon-content:not(.sr-only) + svg.di.di-angle-down.sc-dso-ozon-content, button.toggle-note.sc-dso-ozon-content span.sc-dso-ozon-content:not(.sr-only) + svg.di.di-angle-up.sc-dso-ozon-content, button.toggle-note.sc-dso-ozon-content span.sc-dso-ozon-content:not(.sr-only) + dso-icon[icon=chevron-left].sc-dso-ozon-content, button.toggle-note.sc-dso-ozon-content span.sc-dso-ozon-content:not(.sr-only) + dso-icon[icon=chevron-right].sc-dso-ozon-content {\n margin-left: 0;\n}\nbutton.toggle-note.sc-dso-ozon-content dso-icon.sc-dso-ozon-content, button.toggle-note.sc-dso-ozon-content svg.di.sc-dso-ozon-content, button.toggle-note.sc-dso-ozon-content span.sc-dso-ozon-content {\n vertical-align: middle;\n}\n\nspan[role=section].sc-dso-ozon-content, span[role=paragraph].sc-dso-ozon-content {\n display: block;\n}\n\n.fallback.sc-dso-ozon-content {\n display: block;\n}\n\n.od-Term.sc-dso-ozon-content {\n font-weight: 700;\n}\n\n.od-Definitie.sc-dso-ozon-content, .od-Tussenkop.sc-dso-ozon-content {\n font-style: italic;\n}\n\n.od-Inhoud.sc-dso-ozon-content, .od-Inhoud.sc-dso-ozon-content > .od-Lijst.sc-dso-ozon-content, .od-IntIoRef.sc-dso-ozon-content, .od-Lidnr.sc-dso-ozon-content, .od-LiNr.sc-dso-ozon-content, .od-Opschrift.sc-dso-ozon-content, .od-Tussenkop.sc-dso-ozon-content {\n display: inline;\n}\n\n.od-Al.sc-dso-ozon-content {\n margin-bottom: 0.75em;\n}\n\n.od-IntIoRef.sc-dso-ozon-content {\n border-bottom: 1px dotted;\n}\n\n.dso-ozon-bron.sc-dso-ozon-content {\n font-style: italic;\n font-size: 0.75rem;\n}\n\n.dso-ozon-figuur.sc-dso-ozon-content {\n margin-bottom: 16px;\n}\n.dso-ozon-figuur.sc-dso-ozon-content .figuur-bijschrift.sc-dso-ozon-content {\n display: block;\n font-size: 0.75rem;\n font-style: italic;\n}\n.dso-ozon-figuur.bijschrift-boven.sc-dso-ozon-content .figuur-bijschrift.sc-dso-ozon-content {\n padding-bottom: 0.25rem;\n}\n.dso-ozon-figuur.bijschrift-onder.sc-dso-ozon-content .figuur-bijschrift.sc-dso-ozon-content {\n padding-top: 0.25rem;\n}\n.dso-ozon-figuur.sc-dso-ozon-content .figuur-titel.sc-dso-ozon-content {\n color: #8b4a6a;\n display: block;\n font-weight: 500;\n padding-bottom: 0.5rem;\n}\n\n.dso-ozon-lijst.sc-dso-ozon-content span.od-Lijstaanhef.sc-dso-ozon-content, .dso-ozon-lijst.sc-dso-ozon-content span.od-Lijstsluiting.sc-dso-ozon-content {\n margin-bottom: 1rem;\n}\n.dso-ozon-lijst.sc-dso-ozon-content ul.expliciet.sc-dso-ozon-content {\n list-style: none;\n}\n.dso-ozon-lijst.sc-dso-ozon-content ul.expliciet.sc-dso-ozon-content > .od-Li.sc-dso-ozon-content {\n position: relative;\n}\n.dso-ozon-lijst.sc-dso-ozon-content ul.expliciet.sc-dso-ozon-content > .od-Li.sc-dso-ozon-content > span.od-LiNummer.sc-dso-ozon-content {\n position: absolute;\n left: -44px;\n text-align: right;\n width: 40px;\n}\n\n.od-Tabel.sc-dso-ozon-content thead.sc-dso-ozon-content {\n font-weight: 600;\n}\n\n.od-Kadertekst.sc-dso-ozon-content {\n border: 1px solid #e5e5e5;\n margin-bottom: 1rem;\n padding: 1rem;\n}\n\n.dso-del.sc-dso-ozon-content {\n background-color: #f5d8dc;\n color: #000;\n text-decoration: line-through;\n}\n.dso-del.sc-dso-ozon-content a.sc-dso-ozon-content {\n color: #000;\n}\n\n.dso-ins.sc-dso-ozon-content {\n background-color: #e4f1d4;\n color: #000;\n}\n.dso-ins.sc-dso-ozon-content a.sc-dso-ozon-content {\n color: #000;\n}";
461
486
 
462
487
  const OzonContent = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
463
488
  constructor() {
@@ -1796,4 +1796,12 @@ var createPopper = /*#__PURE__*/popperGenerator({
1796
1796
  defaultModifiers: defaultModifiers
1797
1797
  }); // eslint-disable-next-line import/no-unused-modules
1798
1798
 
1799
- export { beforeWrite as b, createPopper as c, detectOverflow as d };
1799
+ function hasOverflow(el) {
1800
+ const style = window.getComputedStyle(el);
1801
+ const overflowX = style.getPropertyValue("overflow-x");
1802
+ const overflowY = style.getPropertyValue("overflow-y");
1803
+ const overflowValues = ["hidden", "clip"];
1804
+ return overflowValues.indexOf(overflowX) !== -1 || overflowValues.indexOf(overflowY) !== -1;
1805
+ }
1806
+
1807
+ export { beforeWrite as b, createPopper as c, detectOverflow as d, hasOverflow as h };