Sha256: 91ba30618f7bbdb84434bdb0334ede013ba8f13d13a895a676a7ea2a2a0e178c
Contents?: true
Size: 1003 Bytes
Versions: 23
Compression:
Stored size: 1003 Bytes
Contents
import Component from "@ember/component"; import { bound } from "client-app/lib/decorators"; export default Component.extend({ showMenu: false, tagName: "span", @bound outsideClickHandler(event) { if ( this.element && !this.element.contains(event.target) && this.element !== event.target ) { this.set("showMenu", false); this.updateMenu(); } }, updateMenu() { if (this.showMenu) { this.addOutsideClickHandler(); } else { this.removeOutsideClickHandler(); } }, addOutsideClickHandler() { document.addEventListener("click", this.outsideClickHandler); }, removeOutsideClickHandler() { document.removeEventListener("click", this.outsideClickHandler); }, willDestroyElement() { this._super(...arguments); this.removeOutsideClickHandler(); }, actions: { expandMenu() { this.toggleProperty("showMenu"); this.updateMenu(); }, share() { this.share(); } } });
Version data entries
23 entries across 23 versions & 1 rubygems