UNPKG

@furystack/shades-common-components

Version:

Common UI components for FuryStack Shades

24 lines 751 B
export class ClickAwayService { element; onClickAway; [Symbol.dispose]() { window.removeEventListener('click', this.clickOutsideListener, true); } getElement() { if (this.element instanceof HTMLElement) return this.element; return this.element.current; } clickOutsideListener = ((ev) => { const el = this.getElement(); if (ev.target && el && !el.contains(ev.target)) { this.onClickAway(); } }).bind(this); constructor(element, onClickAway) { this.element = element; this.onClickAway = onClickAway; window.addEventListener('click', this.clickOutsideListener, true); } } //# sourceMappingURL=click-away-service.js.map