@dso-toolkit/core 32.1.0 → 33.2.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.
- package/dist/cjs/dso-autosuggest.cjs.entry.js +5 -1
- package/dist/cjs/dso-date-picker.cjs.entry.js +8 -7
- package/dist/cjs/dso-dropdown-menu.cjs.entry.js +4 -1
- package/dist/cjs/dso-label.cjs.entry.js +1 -1
- package/dist/cjs/dso-toggletip.cjs.entry.js +2 -1
- package/dist/cjs/dso-tree-view.cjs.entry.js +5 -4
- package/dist/collection/components/autosuggest/autosuggest.js +19 -1
- package/dist/collection/components/autosuggest/autosuggest.template.js +2 -1
- package/dist/collection/components/date-picker/date-picker.js +8 -7
- package/dist/collection/components/dropdown-menu/dropdown-menu.css +4 -0
- package/dist/collection/components/dropdown-menu/dropdown-menu.js +3 -0
- package/dist/collection/components/label/label.js +2 -1
- package/dist/collection/components/toggletip/toggletip.css +4 -0
- package/dist/collection/components/toggletip/toggletip.js +1 -0
- package/dist/collection/components/tree-view/tree-item.js +3 -2
- package/dist/collection/components/tree-view/tree-view.css +33 -5
- package/dist/collection/components/tree-view/tree-view.js +11 -11
- package/dist/custom-elements/index.js +25 -15
- package/dist/dso-toolkit/dso-toolkit.esm.js +1 -1
- package/dist/dso-toolkit/p-0a08ac9f.entry.js +1 -0
- package/dist/dso-toolkit/p-731a9631.entry.js +1 -0
- package/dist/dso-toolkit/p-741e96de.entry.js +5 -0
- package/dist/dso-toolkit/{p-e2dc97c4.entry.js → p-984551a8.entry.js} +1 -1
- package/dist/dso-toolkit/p-e814d644.entry.js +1 -0
- package/dist/dso-toolkit/p-fd5e24c9.entry.js +1 -0
- package/dist/esm/dso-autosuggest.entry.js +5 -1
- package/dist/esm/dso-date-picker.entry.js +8 -7
- package/dist/esm/dso-dropdown-menu.entry.js +4 -1
- package/dist/esm/dso-label.entry.js +1 -1
- package/dist/esm/dso-toggletip.entry.js +2 -1
- package/dist/esm/dso-tree-view.entry.js +5 -4
- package/dist/types/components/autosuggest/autosuggest.d.ts +5 -0
- package/dist/types/components/autosuggest/autosuggest.template.d.ts +1 -1
- package/dist/types/components/dropdown-menu/dropdown-menu.d.ts +1 -0
- package/dist/types/components/tree-view/tree-item.d.ts +4 -4
- package/dist/types/components/tree-view/tree-view.d.ts +12 -9
- package/dist/types/components/tree-view/tree-view.interfaces.d.ts +14 -4
- package/dist/types/components/tree-view/tree-view.template.d.ts +1 -1
- package/dist/types/components.d.ts +11 -7
- package/package.json +1 -8
- package/dist/dso-toolkit/p-12f7e7d7.entry.js +0 -5
- package/dist/dso-toolkit/p-39dae284.entry.js +0 -1
- package/dist/dso-toolkit/p-9e9f8bcf.entry.js +0 -1
- package/dist/dso-toolkit/p-ad8f467f.entry.js +0 -1
- package/dist/dso-toolkit/p-e03d7741.entry.js +0 -1
|
@@ -93,6 +93,7 @@ let Autosuggest = class {
|
|
|
93
93
|
index.registerInstance(this, hostRef);
|
|
94
94
|
this.selectEmitter = index.createEvent(this, "dsoSelect", 7);
|
|
95
95
|
this.changeEmitter = index.createEvent(this, "dsoChange", 7);
|
|
96
|
+
this.searchEmitter = index.createEvent(this, "dsoSearch", 7);
|
|
96
97
|
/**
|
|
97
98
|
* The suggestions for the value of the slotted input element
|
|
98
99
|
*/
|
|
@@ -279,9 +280,12 @@ let Autosuggest = class {
|
|
|
279
280
|
this.selectFirstSuggestion();
|
|
280
281
|
}
|
|
281
282
|
pickSelectedValue() {
|
|
282
|
-
if (this.selectedSuggestion) {
|
|
283
|
+
if (this.selectedSuggestion && this.showSuggestions) {
|
|
283
284
|
this.selectEmitter.emit(this.selectedSuggestion);
|
|
284
285
|
}
|
|
286
|
+
else {
|
|
287
|
+
this.searchEmitter.emit(this.input.value);
|
|
288
|
+
}
|
|
285
289
|
this.closeSuggestions();
|
|
286
290
|
}
|
|
287
291
|
listboxItemId(suggestion) {
|
|
@@ -478,8 +478,7 @@ let DsoDatePicker = class {
|
|
|
478
478
|
};
|
|
479
479
|
this.handleInputChange = (e) => {
|
|
480
480
|
const target = e.target;
|
|
481
|
-
|
|
482
|
-
this.setValue(target.value);
|
|
481
|
+
this.setValue(target.value.replace(DISALLOWED_CHARACTERS, ""));
|
|
483
482
|
};
|
|
484
483
|
this.processFocusedDayNode = (element) => {
|
|
485
484
|
this.focusedDayNode = element;
|
|
@@ -585,10 +584,7 @@ let DsoDatePicker = class {
|
|
|
585
584
|
event.valueAsDate = parseDutchDate(value);
|
|
586
585
|
}
|
|
587
586
|
if (event.valueAsDate) {
|
|
588
|
-
event.value =
|
|
589
|
-
}
|
|
590
|
-
else {
|
|
591
|
-
this.value = "";
|
|
587
|
+
event.value = printDutchDate(event.valueAsDate);
|
|
592
588
|
}
|
|
593
589
|
if (!event.valueAsDate && this.required) {
|
|
594
590
|
event.error = "required";
|
|
@@ -596,9 +592,14 @@ let DsoDatePicker = class {
|
|
|
596
592
|
if (event.value && !event.valueAsDate) {
|
|
597
593
|
event.error = "invalid";
|
|
598
594
|
}
|
|
595
|
+
this.value = event.value;
|
|
599
596
|
this.dateChange.emit(event);
|
|
600
597
|
}
|
|
601
598
|
componentDidLoad() {
|
|
599
|
+
const valueAsDate = parseDutchDate(this.value);
|
|
600
|
+
if (valueAsDate) {
|
|
601
|
+
this.value = printDutchDate(valueAsDate);
|
|
602
|
+
}
|
|
602
603
|
if (this.dsoAutofocus) {
|
|
603
604
|
this.setFocus();
|
|
604
605
|
}
|
|
@@ -625,7 +626,7 @@ let DsoDatePicker = class {
|
|
|
625
626
|
if (maxDate) {
|
|
626
627
|
maxYear = Math.min(maxYear, maxDate.getFullYear());
|
|
627
628
|
}
|
|
628
|
-
return (index.h(index.Host, null, index.h("div", { class: "dso-date" }, index.h("div", { class: "dso-date__input-wrapper" }, index.h("input", { class: "dso-date__input", value:
|
|
629
|
+
return (index.h(index.Host, null, index.h("div", { class: "dso-date" }, index.h("div", { class: "dso-date__input-wrapper" }, index.h("input", { class: "dso-date__input", value: this.value, placeholder: this.localization.placeholder, id: this.identifier, disabled: this.disabled, role: this.role, 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) }), index.h("button", { type: "button", class: "dso-date__toggle", onClick: this.toggleOpen, disabled: this.disabled, ref: element => (this.datePickerButton = element) }, index.h("span", { class: "dso-date__toggle-icon" }, index.h("dso-icon", { icon: "calendar" })), index.h("span", { class: "dso-date__vhidden" }, this.localization.buttonLabel, formattedDate && (index.h("span", null, ", ", this.localization.selectedDateMessage, " ", formattedDate))))), index.h("div", { class: {
|
|
629
630
|
"dso-date__dialog": true,
|
|
630
631
|
"is-left": this.direction === "left",
|
|
631
632
|
"is-active": this.open,
|
|
@@ -230,7 +230,7 @@ var tabbable = function tabbable(el, options) {
|
|
|
230
230
|
return tabbableNodes;
|
|
231
231
|
};
|
|
232
232
|
|
|
233
|
-
const dropdownMenuCss = ":host{--di-check-wit:url(\"data:image/svg+xml,%3csvg id='check' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' style='color: white%3b'%3e %3cpath fill='currentColor' d='M10.11%2c18%2c5.29%2c13.31A.92.92%2c0%2c0%2c1%2c5.3%2c12a1%2c1%2c0%2c0%2c1%2c1.41%2c0l3.4%2c3.3%2c7.18-7a1%2c1%2c0%2c0%2c1%2c1.41%2c0%2c.92.92%2c0%2c0%2c1%2c0%2c1.35Z'/%3e %3c/svg%3e\");--di-chevron-down:url(\"data:image/svg+xml,%3csvg id='chevron-down' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' style='color: %2339870c%3b'%3e %3cpath fill='currentColor' d='M12%2c16%2c5.29%2c9.63a.93.93%2c0%2c0%2c1%2c0-1.35%2c1%2c1%2c0%2c0%2c1%2c1.42%2c0l5.29%2c5%2c5.29-5a1%2c1%2c0%2c0%2c1%2c1.42%2c0%2c.91.91%2c0%2c0%2c1%2c0%2c1.34Z'/%3e %3c/svg%3e\");--di-chevron-down-scampi:url(\"data:image/svg+xml,%3csvg id='chevron-down' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' style='color: %23676cb0%3b'%3e %3cpath fill='currentColor' d='M12%2c16%2c5.29%2c9.63a.93.93%2c0%2c0%2c1%2c0-1.35%2c1%2c1%2c0%2c0%2c1%2c1.42%2c0l5.29%2c5%2c5.29-5a1%2c1%2c0%2c0%2c1%2c1.42%2c0%2c.91.91%2c0%2c0%2c1%2c0%2c1.34Z'/%3e %3c/svg%3e\");--di-chevron-down-wit:url(\"data:image/svg+xml,%3csvg id='chevron-down' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' style='color: white%3b'%3e %3cpath fill='currentColor' d='M12%2c16%2c5.29%2c9.63a.93.93%2c0%2c0%2c1%2c0-1.35%2c1%2c1%2c0%2c0%2c1%2c1.42%2c0l5.29%2c5%2c5.29-5a1%2c1%2c0%2c0%2c1%2c1.42%2c0%2c.91.91%2c0%2c0%2c1%2c0%2c1.34Z'/%3e %3c/svg%3e\");--di-chevron-up:url(\"data:image/svg+xml,%3csvg id='chevron-up' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' style='color: %2339870c%3b'%3e %3cpath fill='currentColor' d='M18%2c16a1%2c1%2c0%2c0%2c1-.71-.28l-5.29-5-5.29%2c5a1%2c1%2c0%2c0%2c1-1.42%2c0%2c.93.93%2c0%2c0%2c1%2c0-1.35L12%2c8l6.71%2c6.38a.91.91%2c0%2c0%2c1%2c0%2c1.34A1%2c1%2c0%2c0%2c1%2c18%2c16Z'/%3e %3c/svg%3e\");--di-chevron-up-scampi:url(\"data:image/svg+xml,%3csvg id='chevron-up' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' style='color: %23676cb0%3b'%3e %3cpath fill='currentColor' d='M18%2c16a1%2c1%2c0%2c0%2c1-.71-.28l-5.29-5-5.29%2c5a1%2c1%2c0%2c0%2c1-1.42%2c0%2c.93.93%2c0%2c0%2c1%2c0-1.35L12%2c8l6.71%2c6.38a.91.91%2c0%2c0%2c1%2c0%2c1.34A1%2c1%2c0%2c0%2c1%2c18%2c16Z'/%3e %3c/svg%3e\");--di-chevron-up-wit:url(\"data:image/svg+xml,%3csvg id='chevron-up' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' style='color: white%3b'%3e %3cpath fill='currentColor' d='M18%2c16a1%2c1%2c0%2c0%2c1-.71-.28l-5.29-5-5.29%2c5a1%2c1%2c0%2c0%2c1-1.42%2c0%2c.93.93%2c0%2c0%2c1%2c0-1.35L12%2c8l6.71%2c6.38a.91.91%2c0%2c0%2c1%2c0%2c1.34A1%2c1%2c0%2c0%2c1%2c18%2c16Z'/%3e %3c/svg%3e\");display:inline-block;position:relative}";
|
|
233
|
+
const dropdownMenuCss = ":host(:focus){outline:none}:host{--di-check-wit:url(\"data:image/svg+xml,%3csvg id='check' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' style='color: white%3b'%3e %3cpath fill='currentColor' d='M10.11%2c18%2c5.29%2c13.31A.92.92%2c0%2c0%2c1%2c5.3%2c12a1%2c1%2c0%2c0%2c1%2c1.41%2c0l3.4%2c3.3%2c7.18-7a1%2c1%2c0%2c0%2c1%2c1.41%2c0%2c.92.92%2c0%2c0%2c1%2c0%2c1.35Z'/%3e %3c/svg%3e\");--di-chevron-down:url(\"data:image/svg+xml,%3csvg id='chevron-down' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' style='color: %2339870c%3b'%3e %3cpath fill='currentColor' d='M12%2c16%2c5.29%2c9.63a.93.93%2c0%2c0%2c1%2c0-1.35%2c1%2c1%2c0%2c0%2c1%2c1.42%2c0l5.29%2c5%2c5.29-5a1%2c1%2c0%2c0%2c1%2c1.42%2c0%2c.91.91%2c0%2c0%2c1%2c0%2c1.34Z'/%3e %3c/svg%3e\");--di-chevron-down-scampi:url(\"data:image/svg+xml,%3csvg id='chevron-down' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' style='color: %23676cb0%3b'%3e %3cpath fill='currentColor' d='M12%2c16%2c5.29%2c9.63a.93.93%2c0%2c0%2c1%2c0-1.35%2c1%2c1%2c0%2c0%2c1%2c1.42%2c0l5.29%2c5%2c5.29-5a1%2c1%2c0%2c0%2c1%2c1.42%2c0%2c.91.91%2c0%2c0%2c1%2c0%2c1.34Z'/%3e %3c/svg%3e\");--di-chevron-down-wit:url(\"data:image/svg+xml,%3csvg id='chevron-down' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' style='color: white%3b'%3e %3cpath fill='currentColor' d='M12%2c16%2c5.29%2c9.63a.93.93%2c0%2c0%2c1%2c0-1.35%2c1%2c1%2c0%2c0%2c1%2c1.42%2c0l5.29%2c5%2c5.29-5a1%2c1%2c0%2c0%2c1%2c1.42%2c0%2c.91.91%2c0%2c0%2c1%2c0%2c1.34Z'/%3e %3c/svg%3e\");--di-chevron-up:url(\"data:image/svg+xml,%3csvg id='chevron-up' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' style='color: %2339870c%3b'%3e %3cpath fill='currentColor' d='M18%2c16a1%2c1%2c0%2c0%2c1-.71-.28l-5.29-5-5.29%2c5a1%2c1%2c0%2c0%2c1-1.42%2c0%2c.93.93%2c0%2c0%2c1%2c0-1.35L12%2c8l6.71%2c6.38a.91.91%2c0%2c0%2c1%2c0%2c1.34A1%2c1%2c0%2c0%2c1%2c18%2c16Z'/%3e %3c/svg%3e\");--di-chevron-up-scampi:url(\"data:image/svg+xml,%3csvg id='chevron-up' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' style='color: %23676cb0%3b'%3e %3cpath fill='currentColor' d='M18%2c16a1%2c1%2c0%2c0%2c1-.71-.28l-5.29-5-5.29%2c5a1%2c1%2c0%2c0%2c1-1.42%2c0%2c.93.93%2c0%2c0%2c1%2c0-1.35L12%2c8l6.71%2c6.38a.91.91%2c0%2c0%2c1%2c0%2c1.34A1%2c1%2c0%2c0%2c1%2c18%2c16Z'/%3e %3c/svg%3e\");--di-chevron-up-wit:url(\"data:image/svg+xml,%3csvg id='chevron-up' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' style='color: white%3b'%3e %3cpath fill='currentColor' d='M18%2c16a1%2c1%2c0%2c0%2c1-.71-.28l-5.29-5-5.29%2c5a1%2c1%2c0%2c0%2c1-1.42%2c0%2c.93.93%2c0%2c0%2c1%2c0-1.35L12%2c8l6.71%2c6.38a.91.91%2c0%2c0%2c1%2c0%2c1.34A1%2c1%2c0%2c0%2c1%2c18%2c16Z'/%3e %3c/svg%3e\");display:inline-block;position:relative}";
|
|
234
234
|
|
|
235
235
|
let DropdownMenu = class {
|
|
236
236
|
constructor(hostRef) {
|
|
@@ -325,6 +325,9 @@ let DropdownMenu = class {
|
|
|
325
325
|
this.openPopup();
|
|
326
326
|
}
|
|
327
327
|
}
|
|
328
|
+
componentDidRender() {
|
|
329
|
+
this.host.setAttribute("tabindex", "-1");
|
|
330
|
+
}
|
|
328
331
|
componentWillRender() {
|
|
329
332
|
for (const li of Array.from(this.host.getElementsByTagName("li"))) {
|
|
330
333
|
for (const tab of tabbable(li)) {
|
|
@@ -14,7 +14,7 @@ let Label = class {
|
|
|
14
14
|
}
|
|
15
15
|
render() {
|
|
16
16
|
const status = this.status && Label.statusMap.get(this.status);
|
|
17
|
-
return (index.h("span", { class: clsx_m.clsx('dso-label', { [`dso-label-${this.status}`]: this.status, 'dso-compact': this.compact && !this.removable, 'dso-hover': this.hover }) }, index.h("slot", { name: "symbol" }), status && (index.h("span", { class: "sr-only" }, status, ": ")), index.h("slot", null), this.removable && (index.h("button", { type: "button", onClick: e => this.removeClick.emit(e),
|
|
17
|
+
return (index.h("span", { class: clsx_m.clsx('dso-label', { [`dso-label-${this.status}`]: this.status, 'dso-compact': this.compact && !this.removable, 'dso-hover': this.hover }) }, index.h("slot", { name: "symbol" }), status && (index.h("span", { class: "sr-only" }, status, ": ")), index.h("slot", null), this.removable && (index.h("button", { type: "button", onClick: e => this.removeClick.emit(e), onMouseEnter: () => this.hover = true, onMouseLeave: () => this.hover = false }, index.h("span", { class: "sr-only" }, "Verwijder"), index.h("dso-icon", { icon: "times" })))));
|
|
18
18
|
}
|
|
19
19
|
};
|
|
20
20
|
Label.statusMap = new Map([
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
const index = require('./index-fcdfdd38.js');
|
|
6
6
|
|
|
7
|
-
const toggletipCss = "*,*::after,*::before{box-sizing:border-box}";
|
|
7
|
+
const toggletipCss = "*,*::after,*::before{box-sizing:border-box}:host(:focus){outline:none}";
|
|
8
8
|
|
|
9
9
|
let Toggletip = class {
|
|
10
10
|
constructor(hostRef) {
|
|
@@ -51,6 +51,7 @@ let Toggletip = class {
|
|
|
51
51
|
throw Error("button not found");
|
|
52
52
|
}
|
|
53
53
|
this.button = button;
|
|
54
|
+
this.host.setAttribute("tabindex", "-1");
|
|
54
55
|
}
|
|
55
56
|
render() {
|
|
56
57
|
return (index.h(index.Fragment, null, index.h("dso-info-button", { id: "toggle", onClick: this.click, label: this.label, active: this.active, secondary: this.secondary }), index.h("dso-tooltip", { stateless: true, for: "toggle", active: this.active, position: this.position, small: this.small }, index.h("slot", null))));
|
|
@@ -7,13 +7,14 @@ const clsx_m = require('./clsx.m-b00fa5e1.js');
|
|
|
7
7
|
|
|
8
8
|
const DsoTreeItem = ({ owner, ancestors, item, index: index$1, level, setSize }) => {
|
|
9
9
|
var _a, _b, _c;
|
|
10
|
-
return (index.h("li", { key: item.
|
|
10
|
+
return (index.h("li", { key: item.id, class: clsx_m.clsx('tree-item', { 'has-child': item.hasItems }), role: 'none' },
|
|
11
11
|
index.h("div", { class: "tree-branch-control" }, item.hasItems
|
|
12
12
|
?
|
|
13
13
|
index.h("div", { onClick: (e) => owner.itemClick(e, ancestors, item) },
|
|
14
14
|
index.h("dso-icon", { icon: item.open ? 'chevron-down' : 'chevron-right' }))
|
|
15
15
|
: index.h("dso-icon", null)),
|
|
16
|
-
index.h("p", { class:
|
|
16
|
+
index.h("p", { class: clsx_m.clsx('tree-content', { 'active': item.active }, { 'selected': item.selected }), tabindex: level === 1 && index$1 === 0 ? 0 : -1, role: "treeitem", "aria-expanded": item.hasItems ? '' + (!!item.open && !!((_a = item.items) === null || _a === void 0 ? void 0 : _a.length)) : undefined, "aria-current": item.active ? 'true' : undefined, "aria-level": level, "aria-setsize": setSize, "aria-posinset": index$1 + 1, "aria-busy": item.loading ? 'true' : undefined, onClick: (e) => owner.itemClick(e, ancestors, item) },
|
|
17
|
+
item.selected && index.h("span", { class: "sr-only" }, "Resultaat: "),
|
|
17
18
|
item.href
|
|
18
19
|
? index.h("a", { href: item.href, tabindex: "-1" }, item.label)
|
|
19
20
|
: index.h("span", null, item.label), (_b = item.icons) === null || _b === void 0 ? void 0 :
|
|
@@ -24,7 +25,7 @@ const DsoTreeItem = ({ owner, ancestors, item, index: index$1, level, setSize })
|
|
|
24
25
|
: index.h("ul", { role: "group" }, (_c = item.items) === null || _c === void 0 ? void 0 : _c.map((childItem, index$1, org) => index.h(DsoTreeItem, { owner: owner, ancestors: [...ancestors, item], item: childItem, index: index$1, level: level + 1, setSize: org.length }))))));
|
|
25
26
|
};
|
|
26
27
|
|
|
27
|
-
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:#
|
|
28
|
+
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.active{font-weight:700}:host .tree-content.active:hover{text-decoration:underline}:host .tree-content.active a{text-decoration:none}:host .tree-content.selected{color:#191919;font-weight:700;text-decoration:underline}:host .tree-content.selected:hover,:host .tree-content.selected:focus{text-decoration:none}:host .tree-content a,:host .tree-content a:visited{color:#191919;text-decoration:underline}:host .tree-content a:hover,:host .tree-content a:focus{color:#191919;text-decoration:none}:host .tree-content a:active{text-decoration:none}:host .tree-content dso-icon{font-size:0.75em;margin-left:0.5em;vertical-align:text-bottom}*,*::after,*::before{box-sizing:border-box}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}";
|
|
28
29
|
|
|
29
30
|
let TreeView = class {
|
|
30
31
|
constructor(hostRef) {
|
|
@@ -85,7 +86,7 @@ let TreeView = class {
|
|
|
85
86
|
return;
|
|
86
87
|
}
|
|
87
88
|
TreeView.setFocus(tree, contentElement);
|
|
88
|
-
this.clickItem.emit([...ancestors, item]);
|
|
89
|
+
this.clickItem.emit({ path: [...ancestors, item], originalEvent: event });
|
|
89
90
|
return;
|
|
90
91
|
}
|
|
91
92
|
if (item.open) {
|
|
@@ -190,9 +190,12 @@ export class Autosuggest {
|
|
|
190
190
|
this.selectFirstSuggestion();
|
|
191
191
|
}
|
|
192
192
|
pickSelectedValue() {
|
|
193
|
-
if (this.selectedSuggestion) {
|
|
193
|
+
if (this.selectedSuggestion && this.showSuggestions) {
|
|
194
194
|
this.selectEmitter.emit(this.selectedSuggestion);
|
|
195
195
|
}
|
|
196
|
+
else {
|
|
197
|
+
this.searchEmitter.emit(this.input.value);
|
|
198
|
+
}
|
|
196
199
|
this.closeSuggestions();
|
|
197
200
|
}
|
|
198
201
|
listboxItemId(suggestion) {
|
|
@@ -296,6 +299,21 @@ export class Autosuggest {
|
|
|
296
299
|
"resolved": "string",
|
|
297
300
|
"references": {}
|
|
298
301
|
}
|
|
302
|
+
}, {
|
|
303
|
+
"method": "searchEmitter",
|
|
304
|
+
"name": "dsoSearch",
|
|
305
|
+
"bubbles": true,
|
|
306
|
+
"cancelable": true,
|
|
307
|
+
"composed": true,
|
|
308
|
+
"docs": {
|
|
309
|
+
"tags": [],
|
|
310
|
+
"text": "Emitted when enter is pressed.\nThe `detail` property of the `CustomEvent`\u00A0will contain the input text."
|
|
311
|
+
},
|
|
312
|
+
"complexType": {
|
|
313
|
+
"original": "string",
|
|
314
|
+
"resolved": "string",
|
|
315
|
+
"references": {}
|
|
316
|
+
}
|
|
299
317
|
}]; }
|
|
300
318
|
static get elementRef() { return "host"; }
|
|
301
319
|
static get watchers() { return [{
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { html } from 'lit-html';
|
|
2
|
-
export function autosuggestTemplate({ suggestions, onSelect, onChange, suggestOnFocus }, children) {
|
|
2
|
+
export function autosuggestTemplate({ suggestions, onSelect, onChange, onSearch, suggestOnFocus }, children) {
|
|
3
3
|
return html `
|
|
4
4
|
<dso-autosuggest
|
|
5
5
|
.suggestions=${suggestions}
|
|
6
6
|
@dsoSelect=${onSelect}
|
|
7
7
|
@dsoChange=${onChange}
|
|
8
|
+
@dsoSearch=${onSearch}
|
|
8
9
|
?suggest-on-focus=${suggestOnFocus}
|
|
9
10
|
>
|
|
10
11
|
${children}
|
|
@@ -229,8 +229,7 @@ export class DsoDatePicker {
|
|
|
229
229
|
};
|
|
230
230
|
this.handleInputChange = (e) => {
|
|
231
231
|
const target = e.target;
|
|
232
|
-
|
|
233
|
-
this.setValue(target.value);
|
|
232
|
+
this.setValue(target.value.replace(DISALLOWED_CHARACTERS, ""));
|
|
234
233
|
};
|
|
235
234
|
this.processFocusedDayNode = (element) => {
|
|
236
235
|
this.focusedDayNode = element;
|
|
@@ -336,10 +335,7 @@ export class DsoDatePicker {
|
|
|
336
335
|
event.valueAsDate = parseDutchDate(value);
|
|
337
336
|
}
|
|
338
337
|
if (event.valueAsDate) {
|
|
339
|
-
event.value =
|
|
340
|
-
}
|
|
341
|
-
else {
|
|
342
|
-
this.value = "";
|
|
338
|
+
event.value = printDutchDate(event.valueAsDate);
|
|
343
339
|
}
|
|
344
340
|
if (!event.valueAsDate && this.required) {
|
|
345
341
|
event.error = "required";
|
|
@@ -347,9 +343,14 @@ export class DsoDatePicker {
|
|
|
347
343
|
if (event.value && !event.valueAsDate) {
|
|
348
344
|
event.error = "invalid";
|
|
349
345
|
}
|
|
346
|
+
this.value = event.value;
|
|
350
347
|
this.dateChange.emit(event);
|
|
351
348
|
}
|
|
352
349
|
componentDidLoad() {
|
|
350
|
+
const valueAsDate = parseDutchDate(this.value);
|
|
351
|
+
if (valueAsDate) {
|
|
352
|
+
this.value = printDutchDate(valueAsDate);
|
|
353
|
+
}
|
|
353
354
|
if (this.dsoAutofocus) {
|
|
354
355
|
this.setFocus();
|
|
355
356
|
}
|
|
@@ -379,7 +380,7 @@ export class DsoDatePicker {
|
|
|
379
380
|
return (h(Host, null,
|
|
380
381
|
h("div", { class: "dso-date" },
|
|
381
382
|
h("div", { class: "dso-date__input-wrapper" },
|
|
382
|
-
h("input", { class: "dso-date__input", value:
|
|
383
|
+
h("input", { class: "dso-date__input", value: this.value, placeholder: this.localization.placeholder, id: this.identifier, disabled: this.disabled, role: this.role, 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) }),
|
|
383
384
|
h("button", { type: "button", class: "dso-date__toggle", onClick: this.toggleOpen, disabled: this.disabled, ref: element => (this.datePickerButton = element) },
|
|
384
385
|
h("span", { class: "dso-date__toggle-icon" },
|
|
385
386
|
h("dso-icon", { icon: "calendar" })),
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
/* stylelint-disable value-keyword-case */
|
|
2
2
|
/* stylelint-disable string-no-newline */
|
|
3
3
|
/* stylelint-enable */
|
|
4
|
+
:host(:focus) {
|
|
5
|
+
outline: none;
|
|
6
|
+
}
|
|
7
|
+
|
|
4
8
|
:host {
|
|
5
9
|
--di-check-wit: url("data:image/svg+xml,%3csvg id='check' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' style='color: white%3b'%3e %3cpath fill='currentColor' d='M10.11%2c18%2c5.29%2c13.31A.92.92%2c0%2c0%2c1%2c5.3%2c12a1%2c1%2c0%2c0%2c1%2c1.41%2c0l3.4%2c3.3%2c7.18-7a1%2c1%2c0%2c0%2c1%2c1.41%2c0%2c.92.92%2c0%2c0%2c1%2c0%2c1.35Z'/%3e %3c/svg%3e");
|
|
6
10
|
--di-chevron-down: url("data:image/svg+xml,%3csvg id='chevron-down' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' style='color: %2339870c%3b'%3e %3cpath fill='currentColor' d='M12%2c16%2c5.29%2c9.63a.93.93%2c0%2c0%2c1%2c0-1.35%2c1%2c1%2c0%2c0%2c1%2c1.42%2c0l5.29%2c5%2c5.29-5a1%2c1%2c0%2c0%2c1%2c1.42%2c0%2c.91.91%2c0%2c0%2c1%2c0%2c1.34Z'/%3e %3c/svg%3e");
|
|
@@ -93,6 +93,9 @@ export class DropdownMenu {
|
|
|
93
93
|
this.openPopup();
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
|
+
componentDidRender() {
|
|
97
|
+
this.host.setAttribute("tabindex", "-1");
|
|
98
|
+
}
|
|
96
99
|
componentWillRender() {
|
|
97
100
|
for (const li of Array.from(this.host.getElementsByTagName("li"))) {
|
|
98
101
|
for (const tab of tabbable(li)) {
|
|
@@ -9,7 +9,8 @@ export class Label {
|
|
|
9
9
|
status,
|
|
10
10
|
": ")),
|
|
11
11
|
h("slot", null),
|
|
12
|
-
this.removable && (h("button", { type: "button", onClick: e => this.removeClick.emit(e),
|
|
12
|
+
this.removable && (h("button", { type: "button", onClick: e => this.removeClick.emit(e), onMouseEnter: () => this.hover = true, onMouseLeave: () => this.hover = false },
|
|
13
|
+
h("span", { class: "sr-only" }, "Verwijder"),
|
|
13
14
|
h("dso-icon", { icon: "times" })))));
|
|
14
15
|
}
|
|
15
16
|
static get is() { return "dso-label"; }
|
|
@@ -2,13 +2,14 @@ import { h, Fragment } from '@stencil/core';
|
|
|
2
2
|
import clsx from 'clsx';
|
|
3
3
|
export const DsoTreeItem = ({ owner, ancestors, item, index, level, setSize }) => {
|
|
4
4
|
var _a, _b, _c;
|
|
5
|
-
return (h("li", { key: item.
|
|
5
|
+
return (h("li", { key: item.id, class: clsx('tree-item', { 'has-child': item.hasItems }), role: 'none' },
|
|
6
6
|
h("div", { class: "tree-branch-control" }, item.hasItems
|
|
7
7
|
?
|
|
8
8
|
h("div", { onClick: (e) => owner.itemClick(e, ancestors, item) },
|
|
9
9
|
h("dso-icon", { icon: item.open ? 'chevron-down' : 'chevron-right' }))
|
|
10
10
|
: h("dso-icon", null)),
|
|
11
|
-
h("p", { class:
|
|
11
|
+
h("p", { class: clsx('tree-content', { 'active': item.active }, { 'selected': item.selected }), tabindex: level === 1 && index === 0 ? 0 : -1, role: "treeitem", "aria-expanded": item.hasItems ? '' + (!!item.open && !!((_a = item.items) === null || _a === void 0 ? void 0 : _a.length)) : undefined, "aria-current": item.active ? 'true' : undefined, "aria-level": level, "aria-setsize": setSize, "aria-posinset": index + 1, "aria-busy": item.loading ? 'true' : undefined, onClick: (e) => owner.itemClick(e, ancestors, item) },
|
|
12
|
+
item.selected && h("span", { class: "sr-only" }, "Resultaat: "),
|
|
12
13
|
item.href
|
|
13
14
|
? h("a", { href: item.href, tabindex: "-1" }, item.label)
|
|
14
15
|
: h("span", null, item.label), (_b = item.icons) === null || _b === void 0 ? void 0 :
|
|
@@ -19,25 +19,53 @@
|
|
|
19
19
|
display: inline-block;
|
|
20
20
|
margin: 8px 0;
|
|
21
21
|
}
|
|
22
|
-
:host .tree-content
|
|
23
|
-
|
|
22
|
+
:host .tree-content.active {
|
|
23
|
+
font-weight: 700;
|
|
24
|
+
}
|
|
25
|
+
:host .tree-content.active:hover {
|
|
26
|
+
text-decoration: underline;
|
|
27
|
+
}
|
|
28
|
+
:host .tree-content.active a {
|
|
24
29
|
text-decoration: none;
|
|
25
30
|
}
|
|
26
|
-
:host .tree-content
|
|
27
|
-
color: #
|
|
31
|
+
:host .tree-content.selected {
|
|
32
|
+
color: #191919;
|
|
33
|
+
font-weight: 700;
|
|
28
34
|
text-decoration: underline;
|
|
29
35
|
}
|
|
36
|
+
:host .tree-content.selected:hover, :host .tree-content.selected:focus {
|
|
37
|
+
text-decoration: none;
|
|
38
|
+
}
|
|
39
|
+
:host .tree-content a, :host .tree-content a:visited {
|
|
40
|
+
color: #191919;
|
|
41
|
+
text-decoration: underline;
|
|
42
|
+
}
|
|
43
|
+
:host .tree-content a:hover, :host .tree-content a:focus {
|
|
44
|
+
color: #191919;
|
|
45
|
+
text-decoration: none;
|
|
46
|
+
}
|
|
30
47
|
:host .tree-content a:active {
|
|
31
48
|
text-decoration: none;
|
|
32
49
|
}
|
|
33
50
|
:host .tree-content dso-icon {
|
|
34
|
-
vertical-align: text-bottom;
|
|
35
51
|
font-size: 0.75em;
|
|
36
52
|
margin-left: 0.5em;
|
|
53
|
+
vertical-align: text-bottom;
|
|
37
54
|
}
|
|
38
55
|
|
|
39
56
|
*,
|
|
40
57
|
*::after,
|
|
41
58
|
*::before {
|
|
42
59
|
box-sizing: border-box;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.sr-only {
|
|
63
|
+
position: absolute;
|
|
64
|
+
width: 1px;
|
|
65
|
+
height: 1px;
|
|
66
|
+
padding: 0;
|
|
67
|
+
margin: -1px;
|
|
68
|
+
overflow: hidden;
|
|
69
|
+
clip: rect(0, 0, 0, 0);
|
|
70
|
+
border: 0;
|
|
43
71
|
}
|
|
@@ -55,7 +55,7 @@ export class TreeView {
|
|
|
55
55
|
return;
|
|
56
56
|
}
|
|
57
57
|
TreeView.setFocus(tree, contentElement);
|
|
58
|
-
this.clickItem.emit([...ancestors, item]);
|
|
58
|
+
this.clickItem.emit({ path: [...ancestors, item], originalEvent: event });
|
|
59
59
|
return;
|
|
60
60
|
}
|
|
61
61
|
if (item.open) {
|
|
@@ -158,8 +158,8 @@ export class TreeView {
|
|
|
158
158
|
"type": "unknown",
|
|
159
159
|
"mutable": false,
|
|
160
160
|
"complexType": {
|
|
161
|
-
"original": "TreeViewItem
|
|
162
|
-
"resolved": "TreeViewItem
|
|
161
|
+
"original": "TreeViewItem[]",
|
|
162
|
+
"resolved": "TreeViewItem[]",
|
|
163
163
|
"references": {
|
|
164
164
|
"TreeViewItem": {
|
|
165
165
|
"location": "import",
|
|
@@ -186,8 +186,8 @@ export class TreeView {
|
|
|
186
186
|
"text": "Emitted when a tree view item is opened.\nThe `detail` property of the `CustomEvent`\u00A0will contain the complete path of TreeViewItems from the\nroot to the item that is emitting the open event. The consumer of the event is responsible for updating\nthe TreeView's collection (usually set the open state on the last TreeViewItem in path)."
|
|
187
187
|
},
|
|
188
188
|
"complexType": {
|
|
189
|
-
"original": "TreeViewItem
|
|
190
|
-
"resolved": "TreeViewItem
|
|
189
|
+
"original": "TreeViewItem[]",
|
|
190
|
+
"resolved": "TreeViewItem[]",
|
|
191
191
|
"references": {
|
|
192
192
|
"TreeViewItem": {
|
|
193
193
|
"location": "import",
|
|
@@ -206,8 +206,8 @@ export class TreeView {
|
|
|
206
206
|
"text": "Emitted when a tree view item is closed.\nThe `detail` property of the `CustomEvent`\u00A0will contain the complete path of TreeViewItems from the\nroot to the item that is emitting the close event. The consumer of the event is responsible for updating\nthe TreeView's collection (usually set the closed state on the last TreeViewItem in path)."
|
|
207
207
|
},
|
|
208
208
|
"complexType": {
|
|
209
|
-
"original": "TreeViewItem
|
|
210
|
-
"resolved": "TreeViewItem
|
|
209
|
+
"original": "TreeViewItem[]",
|
|
210
|
+
"resolved": "TreeViewItem[]",
|
|
211
211
|
"references": {
|
|
212
212
|
"TreeViewItem": {
|
|
213
213
|
"location": "import",
|
|
@@ -223,13 +223,13 @@ export class TreeView {
|
|
|
223
223
|
"composed": true,
|
|
224
224
|
"docs": {
|
|
225
225
|
"tags": [],
|
|
226
|
-
"text": "Emitted when a tree view item is clicked.\nThe `detail` property of the `CustomEvent`\u00A0will contain the complete path of TreeViewItems from the
|
|
226
|
+
"text": "Emitted when a tree view item is clicked.\nThe `detail` property of the `CustomEvent`\u00A0will contain an object with:\n`path` = the complete path of TreeViewItems from the root to the item that is emitting the clicked event.\n`originalEvent` = the original click event.\nThe consumer of the event is responsible for updating the TreeView's collection (usually set the active\nstate on the last TreeViewItem in path and clear all other active item states)."
|
|
227
227
|
},
|
|
228
228
|
"complexType": {
|
|
229
|
-
"original": "
|
|
230
|
-
"resolved": "
|
|
229
|
+
"original": "TreeViewPointerEvent",
|
|
230
|
+
"resolved": "TreeViewPointerEvent",
|
|
231
231
|
"references": {
|
|
232
|
-
"
|
|
232
|
+
"TreeViewPointerEvent": {
|
|
233
233
|
"location": "import",
|
|
234
234
|
"path": "./tree-view.interfaces"
|
|
235
235
|
}
|
|
@@ -243,6 +243,7 @@ let Autosuggest = class extends HTMLElement {
|
|
|
243
243
|
this.__registerHost();
|
|
244
244
|
this.selectEmitter = createEvent(this, "dsoSelect", 7);
|
|
245
245
|
this.changeEmitter = createEvent(this, "dsoChange", 7);
|
|
246
|
+
this.searchEmitter = createEvent(this, "dsoSearch", 7);
|
|
246
247
|
/**
|
|
247
248
|
* The suggestions for the value of the slotted input element
|
|
248
249
|
*/
|
|
@@ -429,9 +430,12 @@ let Autosuggest = class extends HTMLElement {
|
|
|
429
430
|
this.selectFirstSuggestion();
|
|
430
431
|
}
|
|
431
432
|
pickSelectedValue() {
|
|
432
|
-
if (this.selectedSuggestion) {
|
|
433
|
+
if (this.selectedSuggestion && this.showSuggestions) {
|
|
433
434
|
this.selectEmitter.emit(this.selectedSuggestion);
|
|
434
435
|
}
|
|
436
|
+
else {
|
|
437
|
+
this.searchEmitter.emit(this.input.value);
|
|
438
|
+
}
|
|
435
439
|
this.closeSuggestions();
|
|
436
440
|
}
|
|
437
441
|
listboxItemId(suggestion) {
|
|
@@ -977,8 +981,7 @@ let DsoDatePicker$1 = class extends HTMLElement {
|
|
|
977
981
|
};
|
|
978
982
|
this.handleInputChange = (e) => {
|
|
979
983
|
const target = e.target;
|
|
980
|
-
|
|
981
|
-
this.setValue(target.value);
|
|
984
|
+
this.setValue(target.value.replace(DISALLOWED_CHARACTERS, ""));
|
|
982
985
|
};
|
|
983
986
|
this.processFocusedDayNode = (element) => {
|
|
984
987
|
this.focusedDayNode = element;
|
|
@@ -1084,10 +1087,7 @@ let DsoDatePicker$1 = class extends HTMLElement {
|
|
|
1084
1087
|
event.valueAsDate = parseDutchDate(value);
|
|
1085
1088
|
}
|
|
1086
1089
|
if (event.valueAsDate) {
|
|
1087
|
-
event.value =
|
|
1088
|
-
}
|
|
1089
|
-
else {
|
|
1090
|
-
this.value = "";
|
|
1090
|
+
event.value = printDutchDate(event.valueAsDate);
|
|
1091
1091
|
}
|
|
1092
1092
|
if (!event.valueAsDate && this.required) {
|
|
1093
1093
|
event.error = "required";
|
|
@@ -1095,9 +1095,14 @@ let DsoDatePicker$1 = class extends HTMLElement {
|
|
|
1095
1095
|
if (event.value && !event.valueAsDate) {
|
|
1096
1096
|
event.error = "invalid";
|
|
1097
1097
|
}
|
|
1098
|
+
this.value = event.value;
|
|
1098
1099
|
this.dateChange.emit(event);
|
|
1099
1100
|
}
|
|
1100
1101
|
componentDidLoad() {
|
|
1102
|
+
const valueAsDate = parseDutchDate(this.value);
|
|
1103
|
+
if (valueAsDate) {
|
|
1104
|
+
this.value = printDutchDate(valueAsDate);
|
|
1105
|
+
}
|
|
1101
1106
|
if (this.dsoAutofocus) {
|
|
1102
1107
|
this.setFocus();
|
|
1103
1108
|
}
|
|
@@ -1124,7 +1129,7 @@ let DsoDatePicker$1 = class extends HTMLElement {
|
|
|
1124
1129
|
if (maxDate) {
|
|
1125
1130
|
maxYear = Math.min(maxYear, maxDate.getFullYear());
|
|
1126
1131
|
}
|
|
1127
|
-
return (h(Host, null, h("div", { class: "dso-date" }, h("div", { class: "dso-date__input-wrapper" }, h("input", { class: "dso-date__input", value:
|
|
1132
|
+
return (h(Host, null, h("div", { class: "dso-date" }, 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: this.role, 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: {
|
|
1128
1133
|
"dso-date__dialog": true,
|
|
1129
1134
|
"is-left": this.direction === "left",
|
|
1130
1135
|
"is-active": this.open,
|
|
@@ -1359,7 +1364,7 @@ var tabbable = function tabbable(el, options) {
|
|
|
1359
1364
|
return tabbableNodes;
|
|
1360
1365
|
};
|
|
1361
1366
|
|
|
1362
|
-
const dropdownMenuCss = ":host{--di-check-wit:url(\"data:image/svg+xml,%3csvg id='check' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' style='color: white%3b'%3e %3cpath fill='currentColor' d='M10.11%2c18%2c5.29%2c13.31A.92.92%2c0%2c0%2c1%2c5.3%2c12a1%2c1%2c0%2c0%2c1%2c1.41%2c0l3.4%2c3.3%2c7.18-7a1%2c1%2c0%2c0%2c1%2c1.41%2c0%2c.92.92%2c0%2c0%2c1%2c0%2c1.35Z'/%3e %3c/svg%3e\");--di-chevron-down:url(\"data:image/svg+xml,%3csvg id='chevron-down' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' style='color: %2339870c%3b'%3e %3cpath fill='currentColor' d='M12%2c16%2c5.29%2c9.63a.93.93%2c0%2c0%2c1%2c0-1.35%2c1%2c1%2c0%2c0%2c1%2c1.42%2c0l5.29%2c5%2c5.29-5a1%2c1%2c0%2c0%2c1%2c1.42%2c0%2c.91.91%2c0%2c0%2c1%2c0%2c1.34Z'/%3e %3c/svg%3e\");--di-chevron-down-scampi:url(\"data:image/svg+xml,%3csvg id='chevron-down' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' style='color: %23676cb0%3b'%3e %3cpath fill='currentColor' d='M12%2c16%2c5.29%2c9.63a.93.93%2c0%2c0%2c1%2c0-1.35%2c1%2c1%2c0%2c0%2c1%2c1.42%2c0l5.29%2c5%2c5.29-5a1%2c1%2c0%2c0%2c1%2c1.42%2c0%2c.91.91%2c0%2c0%2c1%2c0%2c1.34Z'/%3e %3c/svg%3e\");--di-chevron-down-wit:url(\"data:image/svg+xml,%3csvg id='chevron-down' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' style='color: white%3b'%3e %3cpath fill='currentColor' d='M12%2c16%2c5.29%2c9.63a.93.93%2c0%2c0%2c1%2c0-1.35%2c1%2c1%2c0%2c0%2c1%2c1.42%2c0l5.29%2c5%2c5.29-5a1%2c1%2c0%2c0%2c1%2c1.42%2c0%2c.91.91%2c0%2c0%2c1%2c0%2c1.34Z'/%3e %3c/svg%3e\");--di-chevron-up:url(\"data:image/svg+xml,%3csvg id='chevron-up' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' style='color: %2339870c%3b'%3e %3cpath fill='currentColor' d='M18%2c16a1%2c1%2c0%2c0%2c1-.71-.28l-5.29-5-5.29%2c5a1%2c1%2c0%2c0%2c1-1.42%2c0%2c.93.93%2c0%2c0%2c1%2c0-1.35L12%2c8l6.71%2c6.38a.91.91%2c0%2c0%2c1%2c0%2c1.34A1%2c1%2c0%2c0%2c1%2c18%2c16Z'/%3e %3c/svg%3e\");--di-chevron-up-scampi:url(\"data:image/svg+xml,%3csvg id='chevron-up' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' style='color: %23676cb0%3b'%3e %3cpath fill='currentColor' d='M18%2c16a1%2c1%2c0%2c0%2c1-.71-.28l-5.29-5-5.29%2c5a1%2c1%2c0%2c0%2c1-1.42%2c0%2c.93.93%2c0%2c0%2c1%2c0-1.35L12%2c8l6.71%2c6.38a.91.91%2c0%2c0%2c1%2c0%2c1.34A1%2c1%2c0%2c0%2c1%2c18%2c16Z'/%3e %3c/svg%3e\");--di-chevron-up-wit:url(\"data:image/svg+xml,%3csvg id='chevron-up' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' style='color: white%3b'%3e %3cpath fill='currentColor' d='M18%2c16a1%2c1%2c0%2c0%2c1-.71-.28l-5.29-5-5.29%2c5a1%2c1%2c0%2c0%2c1-1.42%2c0%2c.93.93%2c0%2c0%2c1%2c0-1.35L12%2c8l6.71%2c6.38a.91.91%2c0%2c0%2c1%2c0%2c1.34A1%2c1%2c0%2c0%2c1%2c18%2c16Z'/%3e %3c/svg%3e\");display:inline-block;position:relative}";
|
|
1367
|
+
const dropdownMenuCss = ":host(:focus){outline:none}:host{--di-check-wit:url(\"data:image/svg+xml,%3csvg id='check' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' style='color: white%3b'%3e %3cpath fill='currentColor' d='M10.11%2c18%2c5.29%2c13.31A.92.92%2c0%2c0%2c1%2c5.3%2c12a1%2c1%2c0%2c0%2c1%2c1.41%2c0l3.4%2c3.3%2c7.18-7a1%2c1%2c0%2c0%2c1%2c1.41%2c0%2c.92.92%2c0%2c0%2c1%2c0%2c1.35Z'/%3e %3c/svg%3e\");--di-chevron-down:url(\"data:image/svg+xml,%3csvg id='chevron-down' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' style='color: %2339870c%3b'%3e %3cpath fill='currentColor' d='M12%2c16%2c5.29%2c9.63a.93.93%2c0%2c0%2c1%2c0-1.35%2c1%2c1%2c0%2c0%2c1%2c1.42%2c0l5.29%2c5%2c5.29-5a1%2c1%2c0%2c0%2c1%2c1.42%2c0%2c.91.91%2c0%2c0%2c1%2c0%2c1.34Z'/%3e %3c/svg%3e\");--di-chevron-down-scampi:url(\"data:image/svg+xml,%3csvg id='chevron-down' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' style='color: %23676cb0%3b'%3e %3cpath fill='currentColor' d='M12%2c16%2c5.29%2c9.63a.93.93%2c0%2c0%2c1%2c0-1.35%2c1%2c1%2c0%2c0%2c1%2c1.42%2c0l5.29%2c5%2c5.29-5a1%2c1%2c0%2c0%2c1%2c1.42%2c0%2c.91.91%2c0%2c0%2c1%2c0%2c1.34Z'/%3e %3c/svg%3e\");--di-chevron-down-wit:url(\"data:image/svg+xml,%3csvg id='chevron-down' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' style='color: white%3b'%3e %3cpath fill='currentColor' d='M12%2c16%2c5.29%2c9.63a.93.93%2c0%2c0%2c1%2c0-1.35%2c1%2c1%2c0%2c0%2c1%2c1.42%2c0l5.29%2c5%2c5.29-5a1%2c1%2c0%2c0%2c1%2c1.42%2c0%2c.91.91%2c0%2c0%2c1%2c0%2c1.34Z'/%3e %3c/svg%3e\");--di-chevron-up:url(\"data:image/svg+xml,%3csvg id='chevron-up' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' style='color: %2339870c%3b'%3e %3cpath fill='currentColor' d='M18%2c16a1%2c1%2c0%2c0%2c1-.71-.28l-5.29-5-5.29%2c5a1%2c1%2c0%2c0%2c1-1.42%2c0%2c.93.93%2c0%2c0%2c1%2c0-1.35L12%2c8l6.71%2c6.38a.91.91%2c0%2c0%2c1%2c0%2c1.34A1%2c1%2c0%2c0%2c1%2c18%2c16Z'/%3e %3c/svg%3e\");--di-chevron-up-scampi:url(\"data:image/svg+xml,%3csvg id='chevron-up' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' style='color: %23676cb0%3b'%3e %3cpath fill='currentColor' d='M18%2c16a1%2c1%2c0%2c0%2c1-.71-.28l-5.29-5-5.29%2c5a1%2c1%2c0%2c0%2c1-1.42%2c0%2c.93.93%2c0%2c0%2c1%2c0-1.35L12%2c8l6.71%2c6.38a.91.91%2c0%2c0%2c1%2c0%2c1.34A1%2c1%2c0%2c0%2c1%2c18%2c16Z'/%3e %3c/svg%3e\");--di-chevron-up-wit:url(\"data:image/svg+xml,%3csvg id='chevron-up' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' style='color: white%3b'%3e %3cpath fill='currentColor' d='M18%2c16a1%2c1%2c0%2c0%2c1-.71-.28l-5.29-5-5.29%2c5a1%2c1%2c0%2c0%2c1-1.42%2c0%2c.93.93%2c0%2c0%2c1%2c0-1.35L12%2c8l6.71%2c6.38a.91.91%2c0%2c0%2c1%2c0%2c1.34A1%2c1%2c0%2c0%2c1%2c18%2c16Z'/%3e %3c/svg%3e\");display:inline-block;position:relative}";
|
|
1363
1368
|
|
|
1364
1369
|
let DropdownMenu = class extends HTMLElement {
|
|
1365
1370
|
constructor() {
|
|
@@ -1456,6 +1461,9 @@ let DropdownMenu = class extends HTMLElement {
|
|
|
1456
1461
|
this.openPopup();
|
|
1457
1462
|
}
|
|
1458
1463
|
}
|
|
1464
|
+
componentDidRender() {
|
|
1465
|
+
this.host.setAttribute("tabindex", "-1");
|
|
1466
|
+
}
|
|
1459
1467
|
componentWillRender() {
|
|
1460
1468
|
for (const li of Array.from(this.host.getElementsByTagName("li"))) {
|
|
1461
1469
|
for (const tab of tabbable(li)) {
|
|
@@ -2207,7 +2215,7 @@ let Label = class extends HTMLElement {
|
|
|
2207
2215
|
}
|
|
2208
2216
|
render() {
|
|
2209
2217
|
const status = this.status && Label.statusMap.get(this.status);
|
|
2210
|
-
return (h("span", { class: clsx('dso-label', { [`dso-label-${this.status}`]: this.status, 'dso-compact': this.compact && !this.removable, 'dso-hover': this.hover }) }, h("slot", { name: "symbol" }), status && (h("span", { class: "sr-only" }, status, ": ")), h("slot", null), this.removable && (h("button", { type: "button", onClick: e => this.removeClick.emit(e),
|
|
2218
|
+
return (h("span", { class: clsx('dso-label', { [`dso-label-${this.status}`]: this.status, 'dso-compact': this.compact && !this.removable, 'dso-hover': this.hover }) }, h("slot", { name: "symbol" }), status && (h("span", { class: "sr-only" }, status, ": ")), h("slot", null), this.removable && (h("button", { type: "button", onClick: e => this.removeClick.emit(e), onMouseEnter: () => this.hover = true, onMouseLeave: () => this.hover = false }, h("span", { class: "sr-only" }, "Verwijder"), h("dso-icon", { icon: "times" })))));
|
|
2211
2219
|
}
|
|
2212
2220
|
static get style() { return labelCss; }
|
|
2213
2221
|
};
|
|
@@ -2883,7 +2891,7 @@ let Selectable = class extends HTMLElement {
|
|
|
2883
2891
|
static get style() { return selectableCss; }
|
|
2884
2892
|
};
|
|
2885
2893
|
|
|
2886
|
-
const toggletipCss = "*,*::after,*::before{box-sizing:border-box}";
|
|
2894
|
+
const toggletipCss = "*,*::after,*::before{box-sizing:border-box}:host(:focus){outline:none}";
|
|
2887
2895
|
|
|
2888
2896
|
let Toggletip = class extends HTMLElement {
|
|
2889
2897
|
constructor() {
|
|
@@ -2932,6 +2940,7 @@ let Toggletip = class extends HTMLElement {
|
|
|
2932
2940
|
throw Error("button not found");
|
|
2933
2941
|
}
|
|
2934
2942
|
this.button = button;
|
|
2943
|
+
this.host.setAttribute("tabindex", "-1");
|
|
2935
2944
|
}
|
|
2936
2945
|
render() {
|
|
2937
2946
|
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))));
|
|
@@ -4822,13 +4831,14 @@ let Tooltip = class extends HTMLElement {
|
|
|
4822
4831
|
|
|
4823
4832
|
const DsoTreeItem = ({ owner, ancestors, item, index, level, setSize }) => {
|
|
4824
4833
|
var _a, _b, _c;
|
|
4825
|
-
return (h("li", { key: item.
|
|
4834
|
+
return (h("li", { key: item.id, class: clsx('tree-item', { 'has-child': item.hasItems }), role: 'none' },
|
|
4826
4835
|
h("div", { class: "tree-branch-control" }, item.hasItems
|
|
4827
4836
|
?
|
|
4828
4837
|
h("div", { onClick: (e) => owner.itemClick(e, ancestors, item) },
|
|
4829
4838
|
h("dso-icon", { icon: item.open ? 'chevron-down' : 'chevron-right' }))
|
|
4830
4839
|
: h("dso-icon", null)),
|
|
4831
|
-
h("p", { class:
|
|
4840
|
+
h("p", { class: clsx('tree-content', { 'active': item.active }, { 'selected': item.selected }), tabindex: level === 1 && index === 0 ? 0 : -1, role: "treeitem", "aria-expanded": item.hasItems ? '' + (!!item.open && !!((_a = item.items) === null || _a === void 0 ? void 0 : _a.length)) : undefined, "aria-current": item.active ? 'true' : undefined, "aria-level": level, "aria-setsize": setSize, "aria-posinset": index + 1, "aria-busy": item.loading ? 'true' : undefined, onClick: (e) => owner.itemClick(e, ancestors, item) },
|
|
4841
|
+
item.selected && h("span", { class: "sr-only" }, "Resultaat: "),
|
|
4832
4842
|
item.href
|
|
4833
4843
|
? h("a", { href: item.href, tabindex: "-1" }, item.label)
|
|
4834
4844
|
: h("span", null, item.label), (_b = item.icons) === null || _b === void 0 ? void 0 :
|
|
@@ -4839,7 +4849,7 @@ const DsoTreeItem = ({ owner, ancestors, item, index, level, setSize }) => {
|
|
|
4839
4849
|
: 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 }))))));
|
|
4840
4850
|
};
|
|
4841
4851
|
|
|
4842
|
-
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:#
|
|
4852
|
+
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.active{font-weight:700}:host .tree-content.active:hover{text-decoration:underline}:host .tree-content.active a{text-decoration:none}:host .tree-content.selected{color:#191919;font-weight:700;text-decoration:underline}:host .tree-content.selected:hover,:host .tree-content.selected:focus{text-decoration:none}:host .tree-content a,:host .tree-content a:visited{color:#191919;text-decoration:underline}:host .tree-content a:hover,:host .tree-content a:focus{color:#191919;text-decoration:none}:host .tree-content a:active{text-decoration:none}:host .tree-content dso-icon{font-size:0.75em;margin-left:0.5em;vertical-align:text-bottom}*,*::after,*::before{box-sizing:border-box}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}";
|
|
4843
4853
|
|
|
4844
4854
|
let TreeView = class extends HTMLElement {
|
|
4845
4855
|
constructor() {
|
|
@@ -4902,7 +4912,7 @@ let TreeView = class extends HTMLElement {
|
|
|
4902
4912
|
return;
|
|
4903
4913
|
}
|
|
4904
4914
|
TreeView.setFocus(tree, contentElement);
|
|
4905
|
-
this.clickItem.emit([...ancestors, item]);
|
|
4915
|
+
this.clickItem.emit({ path: [...ancestors, item], originalEvent: event });
|
|
4906
4916
|
return;
|
|
4907
4917
|
}
|
|
4908
4918
|
if (item.open) {
|