import Vue from 'vue'; import {isFunction,isEmpty} from 'utils/validate'; let popover; const hidePopover = ()=>{ if(popover) popover.style.display = 'none' } const showPopover = ()=>{ if(popover) popover.style.display = 'block' } document.addEventListener('click',(e)=>{ hidePopover() }); export default{ hide:hidePopover, bind(el, binding, vnode){ el.addEventListener('contextmenu',(e)=>{ if(isEmpty(binding.value) || !Array.isArray(binding.value)) return; e.preventDefault(); let component; let visibleItems = [] if(binding.modifiers.message) component = vnode.context; else if(binding.modifiers.contact) component = vnode.child; if(!popover){ popover = document.createElement('div'); popover.className = 'lemon-dropdown'; document.body.appendChild(popover); } popover.innerHTML = binding.value.map((item)=>{ let visible; if(isFunction(item.visible)){ visible = item.visible(component); }else{ visible = item.visible === undefined ? true : item.visible; } if(visible){ visibleItems.push(item); const icon = item.icon ? `` : ''; return `