quasar-framework
Version:
Build responsive SPA, SSR, PWA, Hybrid Mobile Apps and Electron apps, all simultaneously using the same codebase
32 lines (31 loc) • 787 B
JavaScript
export default {
name: 'close-overlay',
bind (el, binding, vnode) {
const
handler = ev => {
let vm = vnode.componentInstance
while ((vm = vm.$parent)) {
const name = vm.$options.name
if (name === 'QPopover' || name === 'QModal') {
vm.hide(ev)
break
}
}
},
handlerKey = ev => {
if (ev.keyCode === 13) {
handler(ev)
}
}
el.__qclose = { handler, handlerKey }
el.addEventListener('click', handler)
el.addEventListener('keyup', handlerKey)
},
unbind (el) {
const ctx = el.__qclose
if (!ctx) { return }
el.removeEventListener('click', ctx.handler)
el.removeEventListener('keyup', ctx.handlerKey)
delete el.__qclose
}
}