`;
}
private handleSlotChange(e: any) {
// set text prop from slotted text, for ease of access
const nodes = e.target.assignedNodes({ flatten: true });
let text = '';
for (let i = 0; i < nodes.length; i++) {
text += nodes[i].textContent.trim();
}
this.text = text;
}
private handleClick(e: Event) {
// prevent click if disabled
if (this.disabled) {
return;
}
// update selected state
if (this.multiple) {
this.selected = !this.selected;
} else {
this.selected = true;
}
// emit selected value, bubble so it can be captured by the parent dropdown
const event = new CustomEvent('on-click', {
bubbles: true,
composed: true,
detail: {
selected: this.selected,
value: this.value,
origEvent: e,
},
});
this.dispatchEvent(event);
}
private handleBlur(e: any) {
// emit blur event, bubble so it can be captured by the parent dropdown
const event = new CustomEvent('on-blur', {
bubbles: true,
composed: true,
detail: {
origEvent: e,
},
});
this.dispatchEvent(event);
}
}
declare global {
interface HTMLElementTagNameMap {
'kyn-dropdown-option': DropdownOption;
}
}