@dso-toolkit/core 29.0.1 → 31.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/dist/cjs/dso-alert.cjs.entry.js +1 -1
  2. package/dist/cjs/dso-autosuggest.cjs.entry.js +105 -75
  3. package/dist/cjs/dso-banner.cjs.entry.js +1 -1
  4. package/dist/cjs/dso-date-picker.cjs.entry.js +56 -16
  5. package/dist/cjs/dso-icon.cjs.entry.js +6 -4
  6. package/dist/cjs/dso-info-button.cjs.entry.js +26 -0
  7. package/dist/cjs/{dso-info_3.cjs.entry.js → dso-info_2.cjs.entry.js} +0 -20
  8. package/dist/cjs/dso-label.cjs.entry.js +1 -1
  9. package/dist/cjs/dso-ozon-content.cjs.entry.js +26 -13
  10. package/dist/cjs/dso-toggletip.cjs.entry.js +62 -0
  11. package/dist/cjs/dso-toolkit.cjs.js +1 -1
  12. package/dist/cjs/dso-tooltip.cjs.entry.js +33 -26
  13. package/dist/cjs/dso-tree-view.cjs.entry.js +180 -0
  14. package/dist/cjs/loader.cjs.js +1 -1
  15. package/dist/collection/collection-manifest.json +3 -1
  16. package/dist/collection/components/alert/alert.css +2 -0
  17. package/dist/collection/components/autosuggest/autosuggest.css +10 -0
  18. package/dist/collection/components/autosuggest/autosuggest.js +128 -98
  19. package/dist/collection/components/autosuggest/autosuggest.template.js +6 -6
  20. package/dist/collection/components/banner/banner.css +2 -0
  21. package/dist/collection/components/date-picker/date-localization.js +1 -1
  22. package/dist/collection/components/date-picker/date-picker.js +108 -14
  23. package/dist/collection/components/date-picker/date-picker.template.js +2 -1
  24. package/dist/collection/components/date-picker/date-utils.js +3 -3
  25. package/dist/collection/components/icon/icon.js +9 -7
  26. package/dist/collection/components/info-button/info-button.css +10 -3
  27. package/dist/collection/components/info-button/info-button.js +18 -1
  28. package/dist/collection/components/info-button/info-button.template.js +2 -1
  29. package/dist/collection/components/label/label.decorator.js +6 -0
  30. package/dist/collection/components/label/label.js +1 -0
  31. package/dist/collection/components/label/label.template.js +10 -2
  32. package/dist/collection/components/ozon-content/ozon-content.transformer.js +26 -13
  33. package/dist/collection/components/toggletip/toggletip.css +8 -0
  34. package/dist/collection/components/toggletip/toggletip.js +137 -0
  35. package/dist/collection/components/toggletip/toggletip.template.js +12 -0
  36. package/dist/collection/components/tooltip/tooltip.css +1 -1
  37. package/dist/collection/components/tooltip/tooltip.js +49 -25
  38. package/dist/collection/components/tree-view/tree-item.js +20 -0
  39. package/dist/collection/components/tree-view/tree-view.css +43 -0
  40. package/dist/collection/components/tree-view/tree-view.js +239 -0
  41. package/dist/collection/components/tree-view/tree-view.template.js +11 -0
  42. package/dist/custom-elements/index.d.ts +12 -0
  43. package/dist/custom-elements/index.js +472 -145
  44. package/dist/dso-toolkit/dso-toolkit.css +1 -1
  45. package/dist/dso-toolkit/dso-toolkit.esm.js +1 -1
  46. package/dist/dso-toolkit/{p-968d9e1d.entry.js → p-19de4cc7.entry.js} +1 -1
  47. package/dist/dso-toolkit/p-39dae284.entry.js +1 -0
  48. package/dist/dso-toolkit/p-5665f1ee.entry.js +1 -0
  49. package/dist/dso-toolkit/{p-eadba8c3.entry.js → p-5a67f3f7.entry.js} +1 -1
  50. package/dist/dso-toolkit/p-759920d0.entry.js +1 -0
  51. package/dist/dso-toolkit/{p-d748df48.entry.js → p-83f166b3.entry.js} +1 -1
  52. package/dist/dso-toolkit/p-9735f393.entry.js +1 -0
  53. package/dist/dso-toolkit/p-9e9f8bcf.entry.js +1 -0
  54. package/dist/dso-toolkit/p-a8a0e909.entry.js +1 -0
  55. package/dist/dso-toolkit/p-ad8f467f.entry.js +1 -0
  56. package/dist/dso-toolkit/p-e2dc97c4.entry.js +1 -0
  57. package/dist/dso-toolkit/p-faf19a1d.entry.js +1 -0
  58. package/dist/esm/dso-alert.entry.js +1 -1
  59. package/dist/esm/dso-autosuggest.entry.js +105 -75
  60. package/dist/esm/dso-banner.entry.js +1 -1
  61. package/dist/esm/dso-date-picker.entry.js +56 -16
  62. package/dist/esm/dso-icon.entry.js +6 -4
  63. package/dist/esm/dso-info-button.entry.js +22 -0
  64. package/dist/esm/{dso-info_3.entry.js → dso-info_2.entry.js} +1 -20
  65. package/dist/esm/dso-label.entry.js +1 -1
  66. package/dist/esm/dso-ozon-content.entry.js +26 -13
  67. package/dist/esm/dso-toggletip.entry.js +58 -0
  68. package/dist/esm/dso-toolkit.js +1 -1
  69. package/dist/esm/dso-tooltip.entry.js +33 -26
  70. package/dist/esm/dso-tree-view.entry.js +176 -0
  71. package/dist/esm/loader.js +1 -1
  72. package/dist/types/components/autosuggest/autosuggest.d.ts +19 -20
  73. package/dist/types/components/autosuggest/autosuggest.template.d.ts +3 -2
  74. package/dist/types/components/date-picker/date-picker.d.ts +20 -0
  75. package/dist/types/components/date-picker/date-picker.template.d.ts +1 -1
  76. package/dist/types/components/icon/icon.d.ts +1 -1
  77. package/dist/types/components/info-button/info-button.d.ts +1 -0
  78. package/dist/types/components/info-button/info-button.template.d.ts +1 -1
  79. package/dist/types/components/label/label.decorator.d.ts +3 -0
  80. package/dist/types/components/label/label.template.d.ts +1 -1
  81. package/dist/types/components/toggletip/toggletip.d.ts +17 -0
  82. package/dist/types/components/toggletip/toggletip.template.d.ts +2 -0
  83. package/dist/types/components/tooltip/tooltip.d.ts +6 -2
  84. package/dist/types/components/tree-view/tree-item.d.ts +13 -0
  85. package/dist/types/components/tree-view/tree-view.d.ts +36 -0
  86. package/dist/types/components/tree-view/tree-view.template.d.ts +2 -0
  87. package/dist/types/components.d.ts +95 -12
  88. package/package.json +2 -1
  89. package/dist/dso-toolkit/p-05a853b9.entry.js +0 -1
  90. package/dist/dso-toolkit/p-2c6e9460.entry.js +0 -1
  91. package/dist/dso-toolkit/p-43772cee.entry.js +0 -1
  92. package/dist/dso-toolkit/p-94500196.entry.js +0 -1
  93. package/dist/dso-toolkit/p-a2357726.entry.js +0 -1
  94. package/dist/dso-toolkit/p-c5acf7e2.entry.js +0 -1
@@ -314,21 +314,34 @@ function isURL(url, options) {
314
314
  }
315
315
 
316
316
  function transformDescriptionNote(body) {
317
- body.querySelectorAll('a.noot > div.noot_popup').forEach((e, index) => {
318
- const contentElement = e.querySelector('.od-Al');
319
- const ozonPopupElement = contentElement === null || contentElement === void 0 ? void 0 : contentElement.parentElement;
320
- const anchorElement = ozonPopupElement === null || ozonPopupElement === void 0 ? void 0 : ozonPopupElement.parentElement;
317
+ body.querySelectorAll('div.noot').forEach((nootElement, index) => {
318
+ const contentElement = nootElement.nextElementSibling;
319
+ if (!(contentElement instanceof HTMLDivElement && contentElement.classList.value === 'noot_popup')) {
320
+ return;
321
+ }
322
+ const nootAnchorElement = nootElement.querySelector('a');
323
+ if (!(nootAnchorElement instanceof HTMLAnchorElement)) {
324
+ return;
325
+ }
326
+ const contentAlElement = contentElement.querySelector(':scope > .od-Al');
327
+ if (!(contentAlElement instanceof HTMLDivElement && contentAlElement.classList.value === 'od-Al')) {
328
+ return;
329
+ }
330
+ nootElement.replaceWith(...Array.from(nootElement.childNodes));
331
+ const contentWrapper = document.createElement('div');
332
+ contentWrapper.replaceChildren(...Array.from(contentAlElement.childNodes));
333
+ contentAlElement.replaceChildren(contentWrapper);
334
+ contentElement.replaceWith(contentAlElement);
321
335
  const supElement = document.createElement('sup');
322
- supElement.replaceChildren(...Array.from(anchorElement.childNodes));
323
- anchorElement === null || anchorElement === void 0 ? void 0 : anchorElement.replaceChildren(supElement);
324
- anchorElement === null || anchorElement === void 0 ? void 0 : anchorElement.after(contentElement);
325
- ozonPopupElement === null || ozonPopupElement === void 0 ? void 0 : ozonPopupElement.remove();
336
+ supElement.replaceChildren(...Array.from(nootAnchorElement.childNodes));
337
+ nootAnchorElement.replaceChildren(supElement);
326
338
  const id = (index + 1).toString(10);
327
339
  const [termId, contentId] = [`dso-ozon-term-${id}`, `dso-ozon-content-${id}`];
328
- anchorElement === null || anchorElement === void 0 ? void 0 : anchorElement.setAttribute('id', termId);
329
- anchorElement === null || anchorElement === void 0 ? void 0 : anchorElement.setAttribute('aria-controls', contentId);
330
- anchorElement === null || anchorElement === void 0 ? void 0 : anchorElement.setAttribute('aria-expanded', 'false');
331
- contentElement === null || contentElement === void 0 ? void 0 : contentElement.setAttribute('id', contentId);
340
+ nootAnchorElement.setAttribute('href', `#${termId}`);
341
+ nootAnchorElement.setAttribute('id', termId);
342
+ nootAnchorElement.setAttribute('aria-controls', contentId);
343
+ nootAnchorElement.setAttribute('aria-expanded', 'false');
344
+ contentAlElement === null || contentAlElement === void 0 ? void 0 : contentAlElement.setAttribute('id', contentId);
332
345
  });
333
346
  return body;
334
347
  }
@@ -398,7 +411,7 @@ class OzonContentTransformer {
398
411
  return false;
399
412
  }
400
413
  // require_tld: false is needed to allow http://localhost
401
- return (_a = composedPath.slice(0, containerIndex)) === null || _a === void 0 ? void 0 : _a.some(e => { var _a; return e instanceof HTMLAnchorElement && isURL((_a = e.getAttribute('href')) !== null && _a !== void 0 ? _a : '', { require_tld: false }); });
414
+ return (_a = composedPath.slice(0, containerIndex)) === null || _a === void 0 ? void 0 : _a.some(e => { var _a; return e instanceof HTMLAnchorElement && isURL((_a = e.getAttribute('href')) !== null && _a !== void 0 ? _a : '', { require_tld: false, require_protocol: true }); });
402
415
  }
403
416
  isHostElement(value) {
404
417
  return value instanceof HTMLElement && value.tagName === 'DSO-OZON-CONTENT';
@@ -0,0 +1,58 @@
1
+ import { r as registerInstance, h, F as Fragment, g as getElement } from './index-61410be2.js';
2
+
3
+ const toggletipCss = "*,*::after,*::before{box-sizing:border-box}";
4
+
5
+ let Toggletip = class {
6
+ constructor(hostRef) {
7
+ registerInstance(this, hostRef);
8
+ this.active = false;
9
+ this.label = "Toelichting";
10
+ this.position = "right";
11
+ this.click = () => {
12
+ this.active ? this.close() : this.open();
13
+ };
14
+ this.open = () => {
15
+ this.active = true;
16
+ this.host.addEventListener("keydown", this.keyDownListener);
17
+ this.host.addEventListener("focusout", this.focusOutListener);
18
+ };
19
+ this.close = () => {
20
+ this.host.removeEventListener("focusout", this.focusOutListener);
21
+ this.host.removeEventListener("keydown", this.keyDownListener);
22
+ this.active = false;
23
+ };
24
+ this.focusOutListener = (event) => {
25
+ if (!this.host.contains(event.relatedTarget)) {
26
+ this.close();
27
+ }
28
+ };
29
+ this.keyDownListener = (event) => {
30
+ if (!event.defaultPrevented && event.key == "Escape") {
31
+ this.close();
32
+ this.button.focus();
33
+ event.preventDefault();
34
+ }
35
+ return;
36
+ };
37
+ }
38
+ componentDidRender() {
39
+ var _a, _b, _c;
40
+ const infoButton = (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector("dso-info-button");
41
+ if (!infoButton) {
42
+ throw Error("dso-info-button not found");
43
+ }
44
+ this.infoButton = infoButton;
45
+ const button = (_c = (_b = this.infoButton) === null || _b === void 0 ? void 0 : _b.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector("button");
46
+ if (!button) {
47
+ throw Error("button not found");
48
+ }
49
+ this.button = button;
50
+ }
51
+ render() {
52
+ return (h(Fragment, null, h("dso-info-button", { id: "toggle", onClick: this.click, label: this.label, active: this.active, secondary: this.secondary }), h("dso-tooltip", { stateless: true, for: "toggle", active: this.active, position: this.position, small: this.small }, h("slot", null))));
53
+ }
54
+ get host() { return getElement(this); }
55
+ };
56
+ Toggletip.style = toggletipCss;
57
+
58
+ export { Toggletip as dso_toggletip };
@@ -13,5 +13,5 @@ const patchBrowser = () => {
13
13
  };
14
14
 
15
15
  patchBrowser().then(options => {
16
- return bootstrapLazy([["dso-map-base-layers",[[1,"dso-map-base-layers",{"baseLayers":[16],"selectedBaseLayer":[1040]}]]],["dso-map-overlays",[[1,"dso-map-overlays",{"overlays":[16],"checkedOverlays":[1040]}]]],["dso-date-picker",[[1,"dso-date-picker",{"name":[1],"identifier":[1],"disabled":[516],"role":[1],"direction":[1],"required":[4],"value":[513],"min":[1],"max":[1],"activeFocus":[32],"focusedDay":[32],"open":[32],"setFocus":[64],"show":[64],"hide":[64]},[[6,"click","handleDocumentClick"]]]]],["dso-label",[[1,"dso-label",{"compact":[4],"removable":[4],"status":[1],"hover":[32]}]]],["dso-map-controls",[[1,"dso-map-controls",{"open":[1540],"disableZoom":[1,"disable-zoom"],"hideContent":[32]}]]],["dso-alert",[[1,"dso-alert",{"status":[1],"roleAlert":[4,"role-alert"]}]]],["dso-attachments-counter",[[1,"dso-attachments-counter",{"count":[2]}]]],["dso-autosuggest",[[6,"dso-autosuggest",{"fetchSuggestions":[16],"suggestOnFocus":[4,"suggest-on-focus"],"suggestions":[32],"showSuggestions":[32]},[[4,"click","onDocumentClick"]]]]],["dso-badge",[[1,"dso-badge",{"status":[1]}]]],["dso-banner",[[1,"dso-banner",{"status":[1]}]]],["dso-dropdown-menu",[[1,"dso-dropdown-menu",{"open":[1540],"dropdownAlign":[1,"dropdown-align"],"checkable":[4]}]]],["dso-highlight-box",[[1,"dso-highlight-box",{"yellow":[4],"border":[4],"white":[4],"dropShadow":[4,"drop-shadow"],"step":[2]}]]],["dso-ozon-content",[[0,"dso-ozon-content",{"content":[1]},[[0,"click","handleClick"]]]]],["dso-progress-bar",[[1,"dso-progress-bar",{"progress":[2],"min":[2],"max":[2]}]]],["dso-progress-indicator",[[1,"dso-progress-indicator",{"label":[1],"size":[1],"block":[4]}]]],["dso-tooltip",[[1,"dso-tooltip",{"position":[1],"for":[1],"noArrow":[4,"no-arrow"],"small":[4],"active":[1540],"hidden":[32],"activate":[64],"deactivate":[64]},[[0,"click","listenClick"]]]]],["dso-icon",[[1,"dso-icon",{"icon":[1]}]]],["dso-info_3",[[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]}],[1,"dso-info-button",{"active":[1540],"label":[1]}]]]], options);
16
+ return bootstrapLazy([["dso-map-base-layers",[[1,"dso-map-base-layers",{"baseLayers":[16],"selectedBaseLayer":[1040]}]]],["dso-map-overlays",[[1,"dso-map-overlays",{"overlays":[16],"checkedOverlays":[1040]}]]],["dso-toggletip",[[1,"dso-toggletip",{"label":[1],"position":[1],"small":[4],"secondary":[4],"active":[32]}]]],["dso-tree-view",[[1,"dso-tree-view",{"collection":[16]}]]],["dso-date-picker",[[1,"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-label",[[1,"dso-label",{"compact":[4],"removable":[4],"status":[1],"hover":[32]}]]],["dso-map-controls",[[1,"dso-map-controls",{"open":[1540],"disableZoom":[1,"disable-zoom"],"hideContent":[32]}]]],["dso-alert",[[1,"dso-alert",{"status":[1],"roleAlert":[4,"role-alert"]}]]],["dso-attachments-counter",[[1,"dso-attachments-counter",{"count":[2]}]]],["dso-autosuggest",[[6,"dso-autosuggest",{"suggestions":[16],"suggestOnFocus":[4,"suggest-on-focus"],"showSuggestions":[32],"selectedSuggestion":[32]},[[4,"click","onDocumentClick"]]]]],["dso-badge",[[1,"dso-badge",{"status":[1]}]]],["dso-banner",[[1,"dso-banner",{"status":[1]}]]],["dso-dropdown-menu",[[1,"dso-dropdown-menu",{"open":[1540],"dropdownAlign":[1,"dropdown-align"],"checkable":[4]}]]],["dso-highlight-box",[[1,"dso-highlight-box",{"yellow":[4],"border":[4],"white":[4],"dropShadow":[4,"drop-shadow"],"step":[2]}]]],["dso-ozon-content",[[0,"dso-ozon-content",{"content":[1]},[[0,"click","handleClick"]]]]],["dso-progress-bar",[[1,"dso-progress-bar",{"progress":[2],"min":[2],"max":[2]}]]],["dso-progress-indicator",[[1,"dso-progress-indicator",{"label":[1],"size":[1],"block":[4]}]]],["dso-tooltip",[[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-icon",[[1,"dso-icon",{"icon":[1]}]]],["dso-info-button",[[1,"dso-info-button",{"active":[1540],"secondary":[4],"label":[1]}]]],["dso-info_2",[[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]}]]]], options);
17
17
  });
@@ -1739,7 +1739,7 @@ var createPopper = /*#__PURE__*/popperGenerator({
1739
1739
  defaultModifiers: defaultModifiers
1740
1740
  }); // eslint-disable-next-line import/no-unused-modules
1741
1741
 
1742
- const tooltipCss = ":host(:not([hidden])){display:block}*,*::after,*::before{box-sizing:border-box}.tooltip{font-family:Asap, sans-serif;font-style:normal;font-weight:400;line-height:1.5;line-break:auto;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;display:block;filter:drop-shadow(0 2px 8px rgba(0, 0, 0, 0.4));font-size:14px;opacity:0;position:absolute;transition:opacity 0.15s linear;z-index:1070}.tooltip.in{opacity:0.9}.tooltip .tooltip-inner{background-color:#fff;border-radius:4px;color:#191919;display:inline-block;font-size:16px;max-width:640px;padding:8px 16px;position:relative}.tooltip .tooltip-inner.dso-small{max-width:320px}.tooltip .tooltip-arrow{border-color:transparent;border-style:solid;height:0;position:absolute;width:0}.tooltip[data-popper-placement=top]{margin-top:-3px;padding:6px 0}.tooltip[data-popper-placement=top] .tooltip-arrow{border-top-color:#fff;border-width:6px 6px 0;bottom:0;left:50%;margin-left:-6px}.tooltip[data-popper-placement=right]{margin-left:3px;padding:0 6px}.tooltip[data-popper-placement=right] .tooltip-arrow{border-right-color:#fff;border-width:6px 6px 6px 0;left:0;margin-top:-6px;top:50%}.tooltip[data-popper-placement=bottom]{margin-top:3px;padding:6px 0}.tooltip[data-popper-placement=bottom] .tooltip-arrow{border-bottom-color:#fff;border-width:0 6px 6px;left:50%;margin-left:-6px;top:0}.tooltip[data-popper-placement=left]{margin-left:-3px;padding:0 6px}.tooltip[data-popper-placement=left] .tooltip-arrow{border-left-color:#fff;border-width:6px 0 6px 6px;margin-top:-6px;right:0;top:50%}";
1742
+ const tooltipCss = ":host(:not([hidden])){display:inline-block}*,*::after,*::before{box-sizing:border-box}.tooltip{font-family:Asap, sans-serif;font-style:normal;font-weight:400;line-height:1.5;line-break:auto;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;display:block;filter:drop-shadow(0 2px 8px rgba(0, 0, 0, 0.4));font-size:14px;opacity:0;position:absolute;transition:opacity 0.15s linear;z-index:1070}.tooltip.in{opacity:0.9}.tooltip .tooltip-inner{background-color:#fff;border-radius:4px;color:#191919;display:inline-block;font-size:16px;max-width:640px;padding:8px 16px;position:relative}.tooltip .tooltip-inner.dso-small{max-width:320px}.tooltip .tooltip-arrow{border-color:transparent;border-style:solid;height:0;position:absolute;width:0}.tooltip[data-popper-placement=top]{margin-top:-3px;padding:6px 0}.tooltip[data-popper-placement=top] .tooltip-arrow{border-top-color:#fff;border-width:6px 6px 0;bottom:0;left:50%;margin-left:-6px}.tooltip[data-popper-placement=right]{margin-left:3px;padding:0 6px}.tooltip[data-popper-placement=right] .tooltip-arrow{border-right-color:#fff;border-width:6px 6px 6px 0;left:0;margin-top:-6px;top:50%}.tooltip[data-popper-placement=bottom]{margin-top:3px;padding:6px 0}.tooltip[data-popper-placement=bottom] .tooltip-arrow{border-bottom-color:#fff;border-width:0 6px 6px;left:50%;margin-left:-6px;top:0}.tooltip[data-popper-placement=left]{margin-left:-3px;padding:0 6px}.tooltip[data-popper-placement=left] .tooltip-arrow{border-left-color:#fff;border-width:6px 0 6px 6px;margin-top:-6px;right:0;top:50%}";
1743
1743
 
1744
1744
  // Keep const in sync with $tooltip-transition-duration in @dso-toolkit/sources/tooltip.scss tooltip_root() mixin
1745
1745
  const transitionDuration = 150;
@@ -1781,8 +1781,25 @@ let Tooltip = class {
1781
1781
  });
1782
1782
  }
1783
1783
  watchActive() {
1784
+ var _a;
1784
1785
  if (this.active) {
1785
1786
  this.hidden = false;
1787
+ if (!this.stateless) {
1788
+ setTimeout(() => {
1789
+ var _a;
1790
+ (_a = this.popper) === null || _a === void 0 ? void 0 : _a.setOptions({
1791
+ modifiers: [{ name: 'eventListeners', enabled: true }]
1792
+ });
1793
+ });
1794
+ }
1795
+ }
1796
+ else {
1797
+ if (!this.stateless) {
1798
+ (_a = this.popper) === null || _a === void 0 ? void 0 : _a.setOptions({
1799
+ modifiers: [{ name: 'eventListeners', enabled: false }]
1800
+ });
1801
+ }
1802
+ setTimeout(() => (this.hidden = true), transitionDuration);
1786
1803
  }
1787
1804
  }
1788
1805
  listenClick(e) {
@@ -1802,34 +1819,20 @@ let Tooltip = class {
1802
1819
  placement: this.position
1803
1820
  });
1804
1821
  this.callbacks = {
1805
- activate: () => {
1806
- this.hidden = false;
1807
- setTimeout(() => {
1808
- var _a;
1809
- this.active = true;
1810
- (_a = this.popper) === null || _a === void 0 ? void 0 : _a.setOptions({
1811
- modifiers: [{ name: 'eventListeners', enabled: true }]
1812
- });
1813
- });
1814
- },
1815
- deactivate: () => {
1816
- var _a;
1817
- this.active = false;
1818
- (_a = this.popper) === null || _a === void 0 ? void 0 : _a.setOptions({
1819
- modifiers: [{ name: 'eventListeners', enabled: false }]
1820
- });
1821
- setTimeout(() => this.hidden = true, transitionDuration);
1822
- }
1822
+ activate: () => (this.active = true),
1823
+ deactivate: () => (this.active = false)
1823
1824
  };
1824
- this.target.addEventListener('mouseenter', this.callbacks.activate);
1825
- this.target.addEventListener('mouseleave', this.callbacks.deactivate);
1826
- this.target.addEventListener('focus', this.callbacks.activate);
1827
- this.target.addEventListener('blur', this.callbacks.deactivate);
1825
+ if (!this.stateless) {
1826
+ this.target.addEventListener('mouseenter', this.callbacks.activate);
1827
+ this.target.addEventListener('mouseleave', this.callbacks.deactivate);
1828
+ this.target.addEventListener('focus', this.callbacks.activate);
1829
+ this.target.addEventListener('blur', this.callbacks.deactivate);
1830
+ }
1828
1831
  }
1829
1832
  disconnectedCallback() {
1830
1833
  var _a;
1831
1834
  (_a = this.popper) === null || _a === void 0 ? void 0 : _a.destroy();
1832
- if (this.target && this.callbacks) {
1835
+ if (!this.stateless && this.target && this.callbacks) {
1833
1836
  this.target.removeEventListener('mouseenter', this.callbacks.activate);
1834
1837
  this.target.removeEventListener('mouseleave', this.callbacks.deactivate);
1835
1838
  this.target.removeEventListener('focus', this.callbacks.activate);
@@ -1845,14 +1848,18 @@ let Tooltip = class {
1845
1848
  }
1846
1849
  }
1847
1850
  render() {
1848
- return (h(Host, { hidden: this.hidden }, h("div", { class: clsx('tooltip', { in: this.active }), role: "tooltip" }, !this.noArrow && (h("div", { class: "tooltip-arrow" })), h("div", { class: clsx('tooltip-inner', { 'dso-small': this.small }) }, h("slot", null)))));
1851
+ return (h(Host, { hidden: this.hidden }, h("div", { class: clsx('tooltip', { in: this.active }), role: "tooltip" }, !this.noArrow && h("div", { class: "tooltip-arrow" }), h("div", { class: clsx('tooltip-inner', { 'dso-small': this.small }) }, h("slot", null)))));
1849
1852
  }
1850
1853
  getTarget() {
1851
1854
  if (this.for instanceof HTMLElement) {
1852
1855
  return this.for;
1853
1856
  }
1854
1857
  if (typeof this.for === 'string') {
1855
- const reference = document.getElementById(this.for);
1858
+ const rootNode = this.element.getRootNode();
1859
+ if (!(rootNode instanceof Document || rootNode instanceof ShadowRoot)) {
1860
+ throw new Error(`rootNode is not instance of Document or ShadowRoot`);
1861
+ }
1862
+ const reference = rootNode.getElementById(this.for);
1856
1863
  if (!reference) {
1857
1864
  throw new Error(`Unable to find reference with id ${this.for}`);
1858
1865
  }
@@ -0,0 +1,176 @@
1
+ import { h, F as Fragment, r as registerInstance, c as createEvent } from './index-61410be2.js';
2
+ import { c as clsx } from './clsx.m-071989db.js';
3
+
4
+ const DsoTreeItem = ({ owner, ancestors, item, index, level, setSize }) => {
5
+ var _a, _b, _c;
6
+ return (h("li", { key: item.reference, class: clsx('tree-item', { 'has-child': item.hasItems }), role: 'none' },
7
+ h("div", { class: "tree-branch-control" }, item.hasItems
8
+ ?
9
+ h("div", { onClick: (e) => owner.itemClick(e, ancestors, item) },
10
+ h("dso-icon", { icon: item.open ? 'chevron-down' : 'chevron-right' }))
11
+ : h("dso-icon", null)),
12
+ h("p", { class: "tree-content", tabindex: level === 1 && index === 0 ? 0 : -1, role: "treeitem", "aria-expanded": item.hasItems ? '' + (!!item.open && !!((_a = item.items) === null || _a === void 0 ? void 0 : _a.length)) : undefined, "aria-level": level, "aria-setsize": setSize, "aria-posinset": index + 1, "aria-busy": item.loading ? 'true' : undefined, onClick: (e) => owner.itemClick(e, ancestors, item) },
13
+ item.href
14
+ ? h("a", { href: item.href, tabindex: "-1" }, item.label)
15
+ : h("span", null, item.label), (_b = item.icons) === null || _b === void 0 ? void 0 :
16
+ _b.map((icon) => h("dso-icon", { icon: icon.icon, title: icon.label }))),
17
+ item.open &&
18
+ h(Fragment, null, item.hasItems && !item.items && item.loading
19
+ ? h("dso-progress-indicator", { size: "small", label: "Resultaten laden: een moment geduld alstublieft." })
20
+ : h("ul", { role: "group" }, (_c = item.items) === null || _c === void 0 ? void 0 : _c.map((childItem, index, org) => h(DsoTreeItem, { owner: owner, ancestors: [...ancestors, item], item: childItem, index: index, level: level + 1, setSize: org.length }))))));
21
+ };
22
+
23
+ const treeViewCss = ":host ul{list-style-type:none}:host ul[role=tree]{padding-left:0}:host li[role=treeitem]>ul{padding-left:1.5em}:host .tree-branch-control{cursor:pointer;display:inline-block}:host .tree-content{cursor:pointer;display:inline-block;margin:8px 0}:host .tree-content a,:host .tree-content a:visited{color:#39870c;text-decoration:none}:host .tree-content a:hover,:host .tree-content a:focus{color:#676cb0;text-decoration:underline}:host .tree-content a:active{text-decoration:none}:host .tree-content dso-icon{vertical-align:text-bottom;font-size:0.75em;margin-left:0.5em}*,*::after,*::before{box-sizing:border-box}";
24
+
25
+ let TreeView = class {
26
+ constructor(hostRef) {
27
+ registerInstance(this, hostRef);
28
+ this.openItem = createEvent(this, "openItem", 7);
29
+ this.closeItem = createEvent(this, "closeItem", 7);
30
+ this.clickItem = createEvent(this, "clickItem", 7);
31
+ this.keyDownListener = (event) => {
32
+ if (event.defaultPrevented) {
33
+ return;
34
+ }
35
+ const isIndexLetter = (str) => str.length === 1 && str.match(/\S/);
36
+ const tree = event.composedPath().find(item => (item instanceof HTMLElement) ? item.className === 'dso-tree' : false);
37
+ if (!(event.target instanceof HTMLParagraphElement) || !(tree instanceof HTMLElement)) {
38
+ return;
39
+ }
40
+ switch (event.key) {
41
+ case "ArrowDown":
42
+ TreeView.moveFocus(tree, event.target, 'next');
43
+ break;
44
+ case "ArrowUp":
45
+ TreeView.moveFocus(tree, event.target, 'previous');
46
+ break;
47
+ case "ArrowRight":
48
+ TreeView.expandItemOrFocusChild(tree, event.target);
49
+ break;
50
+ case "ArrowLeft":
51
+ TreeView.collapseItemOrFocusParent(tree, event.target);
52
+ break;
53
+ case "End":
54
+ TreeView.moveFocus(tree, event.target, 'last');
55
+ break;
56
+ case "Home":
57
+ TreeView.moveFocus(tree, event.target, 'first');
58
+ break;
59
+ case "Enter":
60
+ case " ":
61
+ event.target.click();
62
+ break;
63
+ default:
64
+ if (isIndexLetter(event.key)) {
65
+ if (TreeView.setFocusByFirstCharacter(tree, event.target, event.key, event.shiftKey)) {
66
+ break;
67
+ }
68
+ }
69
+ return;
70
+ }
71
+ event.preventDefault();
72
+ };
73
+ this.itemClick = (event, ancestors, item) => {
74
+ if (!(event.target instanceof HTMLElement)) {
75
+ return;
76
+ }
77
+ const contentElement = event.target.closest('.tree-content');
78
+ if (contentElement) {
79
+ const tree = event.composedPath().find(item => (item instanceof HTMLElement) ? item.className === 'dso-tree' : false);
80
+ if (!(contentElement instanceof HTMLParagraphElement) || !(tree instanceof HTMLElement)) {
81
+ return;
82
+ }
83
+ TreeView.setFocus(tree, contentElement);
84
+ this.clickItem.emit([...ancestors, item]);
85
+ return;
86
+ }
87
+ if (item.open) {
88
+ this.closeItem.emit([...ancestors, item]);
89
+ }
90
+ else {
91
+ this.openItem.emit([...ancestors, item]);
92
+ }
93
+ };
94
+ }
95
+ static setFocus(tree, target) {
96
+ if (target) {
97
+ Array.from(tree.querySelectorAll('p'))
98
+ .filter(item => item.tabIndex === 0)
99
+ .forEach(item => item.tabIndex = -1);
100
+ target.tabIndex = 0;
101
+ target.focus();
102
+ }
103
+ }
104
+ static moveFocus(tree, el, moveTo) {
105
+ const focusableItems = Array.from(tree.querySelectorAll('p'))
106
+ .filter(item => item.offsetWidth > 0 && item.offsetHeight > 0);
107
+ let index = 0;
108
+ switch (moveTo) {
109
+ case 'first':
110
+ index = 0;
111
+ break;
112
+ case 'previous':
113
+ index = focusableItems.indexOf(el) - 1;
114
+ break;
115
+ case 'next':
116
+ index = focusableItems.indexOf(el) + 1;
117
+ break;
118
+ case 'last':
119
+ index = focusableItems.length - 1;
120
+ break;
121
+ }
122
+ TreeView.setFocus(tree, focusableItems[index]);
123
+ }
124
+ static expandItemOrFocusChild(tree, target) {
125
+ var _a;
126
+ if ((target === null || target === void 0 ? void 0 : target.getAttribute('aria-expanded')) === 'true') {
127
+ TreeView.moveFocus(tree, target, 'next');
128
+ }
129
+ else {
130
+ const controlElement = (_a = target.previousElementSibling) === null || _a === void 0 ? void 0 : _a.firstElementChild;
131
+ if (controlElement instanceof HTMLElement) {
132
+ controlElement.click();
133
+ }
134
+ }
135
+ }
136
+ static collapseItemOrFocusParent(tree, target) {
137
+ var _a, _b, _c;
138
+ if ((target === null || target === void 0 ? void 0 : target.getAttribute('aria-expanded')) === 'true') {
139
+ const controlElement = (_a = target.previousElementSibling) === null || _a === void 0 ? void 0 : _a.firstElementChild;
140
+ if (controlElement instanceof HTMLElement) {
141
+ controlElement.click();
142
+ }
143
+ }
144
+ else {
145
+ const parentTarget = (_c = (_b = target === null || target === void 0 ? void 0 : target.parentElement) === null || _b === void 0 ? void 0 : _b.parentElement) === null || _c === void 0 ? void 0 : _c.previousElementSibling;
146
+ if (parentTarget instanceof HTMLElement) {
147
+ TreeView.setFocus(tree, parentTarget);
148
+ }
149
+ }
150
+ }
151
+ static setFocusByFirstCharacter(tree, el, char, backwards) {
152
+ const focusableItems = Array.from(tree.querySelectorAll('p'))
153
+ .filter(item => item.offsetWidth > 0 && item.offsetHeight > 0);
154
+ if (backwards) {
155
+ focusableItems.reverse();
156
+ }
157
+ const current = focusableItems.indexOf(el);
158
+ char = char.toLowerCase();
159
+ let nextItem = focusableItems.find((item, index) => { var _a; return index > current && ((_a = item.textContent) === null || _a === void 0 ? void 0 : _a.toLowerCase().startsWith(char)); });
160
+ if (!nextItem) {
161
+ nextItem = focusableItems.find((item, index) => { var _a; return index < current && ((_a = item.textContent) === null || _a === void 0 ? void 0 : _a.toLowerCase().startsWith(char)); });
162
+ }
163
+ if (nextItem) {
164
+ TreeView.setFocus(tree, nextItem);
165
+ return true;
166
+ }
167
+ return false;
168
+ }
169
+ render() {
170
+ var _a;
171
+ return (h("div", { id: "tree", class: "dso-tree", onKeyDown: (e) => this.keyDownListener(e) }, h("ul", { role: "tree", "aria-label": "Objectenboom" }, (_a = this.collection) === null || _a === void 0 ? void 0 : _a.map((item, index) => h(DsoTreeItem, { owner: this, ancestors: [], item: item, index: index, level: 1, setSize: this.collection.length })))));
172
+ }
173
+ };
174
+ TreeView.style = treeViewCss;
175
+
176
+ export { TreeView as dso_tree_view };
@@ -10,7 +10,7 @@ const patchEsm = () => {
10
10
  const defineCustomElements = (win, options) => {
11
11
  if (typeof window === 'undefined') return Promise.resolve();
12
12
  return patchEsm().then(() => {
13
- return bootstrapLazy([["dso-map-base-layers",[[1,"dso-map-base-layers",{"baseLayers":[16],"selectedBaseLayer":[1040]}]]],["dso-map-overlays",[[1,"dso-map-overlays",{"overlays":[16],"checkedOverlays":[1040]}]]],["dso-date-picker",[[1,"dso-date-picker",{"name":[1],"identifier":[1],"disabled":[516],"role":[1],"direction":[1],"required":[4],"value":[513],"min":[1],"max":[1],"activeFocus":[32],"focusedDay":[32],"open":[32],"setFocus":[64],"show":[64],"hide":[64]},[[6,"click","handleDocumentClick"]]]]],["dso-label",[[1,"dso-label",{"compact":[4],"removable":[4],"status":[1],"hover":[32]}]]],["dso-map-controls",[[1,"dso-map-controls",{"open":[1540],"disableZoom":[1,"disable-zoom"],"hideContent":[32]}]]],["dso-alert",[[1,"dso-alert",{"status":[1],"roleAlert":[4,"role-alert"]}]]],["dso-attachments-counter",[[1,"dso-attachments-counter",{"count":[2]}]]],["dso-autosuggest",[[6,"dso-autosuggest",{"fetchSuggestions":[16],"suggestOnFocus":[4,"suggest-on-focus"],"suggestions":[32],"showSuggestions":[32]},[[4,"click","onDocumentClick"]]]]],["dso-badge",[[1,"dso-badge",{"status":[1]}]]],["dso-banner",[[1,"dso-banner",{"status":[1]}]]],["dso-dropdown-menu",[[1,"dso-dropdown-menu",{"open":[1540],"dropdownAlign":[1,"dropdown-align"],"checkable":[4]}]]],["dso-highlight-box",[[1,"dso-highlight-box",{"yellow":[4],"border":[4],"white":[4],"dropShadow":[4,"drop-shadow"],"step":[2]}]]],["dso-ozon-content",[[0,"dso-ozon-content",{"content":[1]},[[0,"click","handleClick"]]]]],["dso-progress-bar",[[1,"dso-progress-bar",{"progress":[2],"min":[2],"max":[2]}]]],["dso-progress-indicator",[[1,"dso-progress-indicator",{"label":[1],"size":[1],"block":[4]}]]],["dso-tooltip",[[1,"dso-tooltip",{"position":[1],"for":[1],"noArrow":[4,"no-arrow"],"small":[4],"active":[1540],"hidden":[32],"activate":[64],"deactivate":[64]},[[0,"click","listenClick"]]]]],["dso-icon",[[1,"dso-icon",{"icon":[1]}]]],["dso-info_3",[[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]}],[1,"dso-info-button",{"active":[1540],"label":[1]}]]]], options);
13
+ return bootstrapLazy([["dso-map-base-layers",[[1,"dso-map-base-layers",{"baseLayers":[16],"selectedBaseLayer":[1040]}]]],["dso-map-overlays",[[1,"dso-map-overlays",{"overlays":[16],"checkedOverlays":[1040]}]]],["dso-toggletip",[[1,"dso-toggletip",{"label":[1],"position":[1],"small":[4],"secondary":[4],"active":[32]}]]],["dso-tree-view",[[1,"dso-tree-view",{"collection":[16]}]]],["dso-date-picker",[[1,"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-label",[[1,"dso-label",{"compact":[4],"removable":[4],"status":[1],"hover":[32]}]]],["dso-map-controls",[[1,"dso-map-controls",{"open":[1540],"disableZoom":[1,"disable-zoom"],"hideContent":[32]}]]],["dso-alert",[[1,"dso-alert",{"status":[1],"roleAlert":[4,"role-alert"]}]]],["dso-attachments-counter",[[1,"dso-attachments-counter",{"count":[2]}]]],["dso-autosuggest",[[6,"dso-autosuggest",{"suggestions":[16],"suggestOnFocus":[4,"suggest-on-focus"],"showSuggestions":[32],"selectedSuggestion":[32]},[[4,"click","onDocumentClick"]]]]],["dso-badge",[[1,"dso-badge",{"status":[1]}]]],["dso-banner",[[1,"dso-banner",{"status":[1]}]]],["dso-dropdown-menu",[[1,"dso-dropdown-menu",{"open":[1540],"dropdownAlign":[1,"dropdown-align"],"checkable":[4]}]]],["dso-highlight-box",[[1,"dso-highlight-box",{"yellow":[4],"border":[4],"white":[4],"dropShadow":[4,"drop-shadow"],"step":[2]}]]],["dso-ozon-content",[[0,"dso-ozon-content",{"content":[1]},[[0,"click","handleClick"]]]]],["dso-progress-bar",[[1,"dso-progress-bar",{"progress":[2],"min":[2],"max":[2]}]]],["dso-progress-indicator",[[1,"dso-progress-indicator",{"label":[1],"size":[1],"block":[4]}]]],["dso-tooltip",[[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-icon",[[1,"dso-icon",{"icon":[1]}]]],["dso-info-button",[[1,"dso-info-button",{"active":[1540],"secondary":[4],"label":[1]}]]],["dso-info_2",[[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]}]]]], options);
14
14
  });
15
15
  };
16
16
 
@@ -3,17 +3,11 @@ export interface Suggestion {
3
3
  value: string;
4
4
  type?: string;
5
5
  }
6
- interface SuggestionState extends Suggestion {
7
- selected: boolean;
8
- id: string;
9
- }
10
6
  export declare class Autosuggest {
11
7
  /**
12
- * A method that will be called debounced with the input value as its first parameter.
13
- * This method will also be called when the input is reduced to an empty string.
14
- * @returns A promise with an array of `Suggestion`s. You should limit this array to ten items.
8
+ * The suggestions for the value of the slotted input element
15
9
  */
16
- fetchSuggestions?: (value: string) => Promise<Array<Suggestion>>;
10
+ readonly suggestions: Suggestion[];
17
11
  /**
18
12
  * Whether the previous suggestions will be presented when the input gets focus again.
19
13
  */
@@ -22,18 +16,21 @@ export declare class Autosuggest {
22
16
  * Emitted when a suggestion is selected.
23
17
  * The `detail` property of the `CustomEvent` will contain the selected suggestion.
24
18
  */
25
- selected: EventEmitter<string> | undefined;
19
+ selectEmitter: EventEmitter<Suggestion>;
20
+ /**
21
+ * This is emitted debounced for every change for the slotted input type=text element.
22
+ */
23
+ changeEmitter: EventEmitter<string>;
26
24
  host: HTMLElement;
27
- suggestions: Array<SuggestionState>;
28
- selectedIndex: number;
29
- terms: string[];
30
25
  showSuggestions: boolean;
26
+ selectedSuggestion: Suggestion | undefined;
27
+ suggestionsWatcher(): void;
31
28
  input: HTMLInputElement;
29
+ listbox: HTMLUListElement | undefined;
32
30
  listboxId: string;
33
31
  inputId: string;
34
32
  labelId: string;
35
- listbox: HTMLUListElement | undefined;
36
- debouncedFetchSuggestions: ((terms: string[]) => Promise<void>) & {
33
+ debouncedEmitValue: ((value: string) => CustomEvent<string>) & {
37
34
  clear(): void;
38
35
  } & {
39
36
  flush(): void;
@@ -44,14 +41,16 @@ export declare class Autosuggest {
44
41
  connectedCallback(): void;
45
42
  disconnectedCallback(): void;
46
43
  markTerms(suggestionValue: string, terms: string[]): (VNode | string)[];
47
- setSelectedSuggestion(index: number): void;
48
- onMouseEnterOption: (event: MouseEvent) => void;
49
- onMouseLeaveOption: () => void;
50
- onClickOption: () => void;
51
- openSuggestions(): void;
44
+ selectSuggestion(suggestion: Suggestion): void;
45
+ selectFirstSuggestion(): void;
46
+ selectLastSuggestion(): void;
47
+ selectNextSuggestion(): void;
48
+ selectPreviousSuggestion(): void;
49
+ resetSelectedSuggestion(): void;
50
+ openSuggestions(selectSuggestion?: 'first' | 'last'): void;
52
51
  closeSuggestions(): void;
53
52
  pickSelectedValue(): void;
54
53
  onKeyDown: (event: KeyboardEvent) => void;
54
+ listboxItemId(suggestion: Suggestion): string;
55
55
  render(): any;
56
56
  }
57
- export {};
@@ -1,2 +1,3 @@
1
- import { Autosuggest } from "@dso-toolkit/sources";
2
- export declare function autosuggestTemplate({ fetchSuggestions, onSelected, suggestOnFocus, }: Autosuggest): import("lit-html").TemplateResult<1>;
1
+ import { Autosuggest } from '@dso-toolkit/sources';
2
+ import { TemplateResult } from 'lit-html';
3
+ export declare function autosuggestTemplate({ suggestions, onSelect, onChange, suggestOnFocus }: Autosuggest, children: TemplateResult): TemplateResult<1>;
@@ -3,10 +3,15 @@ export declare type DsoDatePickerChangeEvent = {
3
3
  component: "dso-date-picker";
4
4
  valueAsDate: Date | undefined;
5
5
  value: string;
6
+ error?: "invalid" | "required";
6
7
  };
7
8
  export declare type DsoDatePickerFocusEvent = {
8
9
  component: "dso-date-picker";
9
10
  };
11
+ export declare type DsoDatePickerKeyboardEvent = {
12
+ component: "dso-date-picker";
13
+ originalEvent: KeyboardEvent;
14
+ };
10
15
  export declare type DsoDatePickerDirection = "left" | "right";
11
16
  export declare class DsoDatePicker implements ComponentInterface {
12
17
  /**
@@ -65,6 +70,10 @@ export declare class DsoDatePicker implements ComponentInterface {
65
70
  * Should the input be marked as required?
66
71
  */
67
72
  required: boolean;
73
+ /**
74
+ * Should the input be focused on load?
75
+ */
76
+ dsoAutofocus: boolean;
68
77
  /**
69
78
  * Date value. Must be in Dutch date format: DD-MM-YYYY.
70
79
  */
@@ -90,6 +99,14 @@ export declare class DsoDatePicker implements ComponentInterface {
90
99
  * Event emitted the date picker input is blurred.
91
100
  */
92
101
  dsoBlur: EventEmitter<DsoDatePickerFocusEvent>;
102
+ /**
103
+ * Event emitted on key up in the date picker input.
104
+ */
105
+ dsoKeyUp: EventEmitter<DsoDatePickerKeyboardEvent>;
106
+ /**
107
+ * Event emitted on key down in the date picker input.
108
+ */
109
+ dsoKeyDown: EventEmitter<DsoDatePickerKeyboardEvent>;
93
110
  /**
94
111
  * Event emitted the date picker input is focused.
95
112
  */
@@ -130,6 +147,8 @@ export declare class DsoDatePicker implements ComponentInterface {
130
147
  private toggleOpen;
131
148
  private handleEscKey;
132
149
  private handleBlur;
150
+ private handleKeyUp;
151
+ private handleKeyDown;
133
152
  private handleFocus;
134
153
  private handleTouchStart;
135
154
  private handleTouchMove;
@@ -144,6 +163,7 @@ export declare class DsoDatePicker implements ComponentInterface {
144
163
  private handleInputChange;
145
164
  private setValue;
146
165
  private processFocusedDayNode;
166
+ componentDidLoad(): void;
147
167
  /**
148
168
  * render() function
149
169
  * Always the last one in the class.
@@ -1,5 +1,5 @@
1
1
  import { DatePicker } from '@dso-toolkit/sources';
2
2
  import { TemplateResult } from 'lit-html';
3
- export declare function datePickerTemplate({ id, onDateChange, value, min, max, disabled }: DatePicker): TemplateResult<1>;
3
+ export declare function datePickerTemplate({ id, onDateChange, value, min, max, disabled, autofocus }: DatePicker): TemplateResult<1>;
4
4
  export declare function datePickerWithLabelTemplate(datePicker: TemplateResult, id: string, label: string): TemplateResult<1>;
5
5
  export declare function datePickerShowByScriptingTemplate(datePicker: TemplateResult, id: string): TemplateResult<1>;
@@ -1,4 +1,4 @@
1
1
  export declare class Icon {
2
- icon: string;
2
+ icon?: string;
3
3
  render(): any;
4
4
  }
@@ -5,6 +5,7 @@ export interface InfoButtonToggleEvent {
5
5
  }
6
6
  export declare class InfoButton {
7
7
  active?: boolean;
8
+ secondary?: boolean;
8
9
  label: string;
9
10
  toggle: EventEmitter<InfoButtonToggleEvent>;
10
11
  private handleToggle;
@@ -1,2 +1,2 @@
1
1
  import { InfoButton } from '@dso-toolkit/sources';
2
- export declare function infoButtonTemplate({ label, active, onClick }: InfoButton): import("lit-html").TemplateResult<1>;
2
+ export declare function infoButtonTemplate({ label, active, secondary, onClick }: InfoButton): import("lit-html").TemplateResult<1>;
@@ -0,0 +1,3 @@
1
+ import { LabelParameters } from '@dso-toolkit/sources';
2
+ import { TemplateResult } from 'lit-html';
3
+ export declare const decorator: LabelParameters<TemplateResult>['decorator'];
@@ -1,2 +1,2 @@
1
1
  import { Label } from '@dso-toolkit/sources';
2
- export declare function labelTemplate({ status, label, button, compact }: Label): import("lit-html").TemplateResult<1>;
2
+ export declare function labelTemplate({ status, label, button, compact, symbol }: Label): import("lit-html").TemplateResult<1>;
@@ -0,0 +1,17 @@
1
+ export declare class Toggletip {
2
+ host: HTMLElement;
3
+ active: boolean;
4
+ label: string;
5
+ position: "top" | "right" | "bottom" | "left";
6
+ small?: boolean;
7
+ secondary?: boolean;
8
+ infoButton: HTMLDsoInfoButtonElement;
9
+ button: HTMLButtonElement;
10
+ componentDidRender(): void;
11
+ click: () => void;
12
+ open: () => void;
13
+ close: () => void;
14
+ focusOutListener: (event: FocusEvent) => void;
15
+ keyDownListener: (event: KeyboardEvent) => void;
16
+ render(): any;
17
+ }
@@ -0,0 +1,2 @@
1
+ import { Toggletip } from "@dso-toolkit/sources";
2
+ export declare function toggletipTemplate({ children, label, position, small, secondary, }: Toggletip): import("lit-html").TemplateResult<1>;