UNPKG

iking-directive

Version:

金合前端-VUE指令

2 lines (1 loc) 1.26 kB
import{ikStore as e,paramType as n,ikDomUtil as t}from"iking-utils";var o={name:"btnRole",dir:{mounted(n,t){const o=t.value;if(o){let t=(async n=>{const t=await e.forage.getItem("menu-button");return!!t&&t?.find((e=>e.permissionCode===n))})(o);t||n?.parentNode?.removeChild(n)}}}};const r=new Map;let a;function i(e,n){let t=[];return Array.isArray(n.arg)?t=n.arg:t.push(n.arg),function(o,r){const a=n.instance.popperRef,i=o.target,d=r.target,s=!n||!n.instance,u=!i||!d,c=e.contains(i)||e.contains(d),l=e===i,m=t.length&&t.some((e=>e?.contains(i)))||t.length&&t.includes(d),f=a&&(a.contains(i)||a.contains(d));s||u||c||l||m||f||n.value()}}n.isServer||(t.on(document,"mousedown",(e=>a=e)),t.on(document,"mouseup",(e=>{for(const{documentHandler:n}of r.values())n(e,a)})));var d={name:"outside",dir:{beforeMount(e,n){r.set(e,{documentHandler:i(e,n),bindingFn:n.value})},updated(e,n){r.set(e,{documentHandler:i(e,n),bindingFn:n.value})},unmounted(e){r.delete(e)}}};var s="focus",u={mounted:e=>{if("INPUT"===e.tagName)e.focus();else for(let n=0;n<e.children.length;n++)if("INPUT"===e.children[n].tagName){try{e.children[n].focus()}catch(e){}return}}};const c={install(e,n){e.directive(s,u),e.directive(d.name,d.dir),e.directive(o.name,o.dir)}};export{c as default};