`;
}
private handlePointerEnter(e: PointerEvent) {
if (e.pointerType === 'mouse') {
this.open = true;
}
}
private handlePointerLeave(e: PointerEvent) {
if (e.pointerType === 'mouse' && e.relatedTarget !== null) {
this.open = false;
}
}
private handleClick() {
this.open = !this.open;
}
private handleClickOut(e: Event) {
if (!e.composedPath().includes(this)) {
this.open = false;
}
}
override connectedCallback() {
super.connectedCallback();
document.addEventListener('click', (e) => this.handleClickOut(e));
this.testBreakpoint();
window?.addEventListener(
'resize',
debounce(() => {
this.testBreakpoint();
})
);
}
override disconnectedCallback() {
document.removeEventListener('click', (e) => this.handleClickOut(e));
window?.removeEventListener(
'resize',
debounce(() => {
this.testBreakpoint();
})
);
super.disconnectedCallback();
}
private testBreakpoint() {
const nav = querySelectorDeep('kyn-header');
if (nav) {
this.breakpointHit = nav!.breakpointHit;
}
}
}
declare global {
interface HTMLElementTagNameMap {
'kyn-header-flyout': HeaderFlyout;
}
}