zview-plus
Version:
基于 Vue3 的 UI 组件库
2 lines (1 loc) • 2.45 kB
JavaScript
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),m=require("../../../../node_modules/.pnpm/@vueuse_core@9.13.0_vue@3.2.47/node_modules/@vueuse/core/index.js"),h=require("./popover.js"),w=["aria-hidden"],b=["textContent"],y={name:"ZPopover"},C=e.defineComponent({...y,props:h.popoverProps,setup(u){const t=u,i=e.ref(null),o=e.ref(!1),s=e.computed(()=>t.trigger!=="manual"?o.value:t.modelValue),c=e.computed(()=>{let r={};return(t.width??null)&&(r.width=t.width+"px"),r}),l=e.ref(null),n=e.ref(null);e.onMounted(()=>{if(t.placement.includes("top")||t.placement.includes("bottom")){let r=l.value.clientWidth;n.value.style.setProperty("--geticonsite",r/2+"px")}else if(t.placement.includes("left")||t.placement.includes("right")){let r=l.value.clientHeight;n.value.style.setProperty("--geticonsite",r/2+"px")}});const a=e.ref(null);function d(){t.trigger.toLowerCase()==="click"&&(t.disabled||(o.value=!o.value))}m.onClickOutside(i,r=>{o.value=!1});function f(){t.trigger.toLowerCase()==="focus"&&(t.disabled||(o.value=!0))}function p(){t.trigger.toLowerCase()==="focus"&&(t.disabled||(o.value=!1))}function v(){t.trigger.toLowerCase()==="hover"&&(t.disabled||(clearTimeout(a.value),o.value=!0))}function g(){t.trigger.toLowerCase()==="hover"&&(t.disabled||(a.value=setTimeout(()=>{o.value=!1},300)))}return(r,k)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"target",ref:i,class:"popover-box",onMouseenter:v,onMouseleave:g},[e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(["popover-outbox",r.placement,r.popperClass]),"aria-hidden":r.disabled||!e.unref(s)?"true":"false"},[e.createElementVNode("div",{class:"popover-arrow",ref_key:"popoverArrow",ref:n},null,512),e.createElementVNode("div",{class:e.normalizeClass(["popover-box-content"]),style:e.normalizeStyle(e.unref(c))},[r.title?(e.openBlock(),e.createElementBlock("div",{key:0,textContent:e.toDisplayString(r.title),class:"popover-title"},null,8,b)):e.createCommentVNode("",!0),e.renderSlot(r.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(r.content),1)])],4)],10,w),[[e.vShow,!r.disabled&&e.unref(s)]])]),_:3}),e.createElementVNode("div",{ref_key:"reference",ref:l,class:"reference-content",onClick:d,onMousedown:f,onMouseup:p},[e.renderSlot(r.$slots,"reference")],544)],544))}});exports.default=C;