Files

1 line
3.4 KiB
JavaScript

import{$ as e,At as t,B as n,G as r,H as i,K as a,Mt as o,Nt as s,Tt as c,V as l,W as u,Y as d,Z as f,bt as p,ct as m,dt as h,j as g,ut as _,vt as v,xt as y}from"./vue-B11_pI9F.js";import{t as b}from"./_plugin-vue_export-helper-B67ILkmu.js";var x=b(f({__name:`Tooltip`,props:{content:{},placement:{}},setup(e){let r=e,o=i(()=>r.content?.split(`\\n`)??[]);return(r,i)=>(m(),a(`div`,{class:t([`kimi-tooltip`,`tooltip-${e.placement}`])},[h(r.$slots,`default`,{},()=>[(m(!0),a(n,null,_(o.value,e=>(m(),a(`div`,{key:e},s(e),1))),128))],!0)],2))}}),[[`__scopeId`,`data-v-6a3a8090`]]),S=b(f({__name:`LazyTooltip`,props:{content:{},placement:{},show:{type:Boolean},style:{}},setup(e){return(t,n)=>(m(),u(g,{name:`fade`},{default:p(()=>[e.show?(m(),u(l,{key:0,to:`body`},[d(x,{style:o({zIndex:`20`,...e.style}),content:e.content,placement:e.placement},{default:p(()=>[h(t.$slots,`default`,{},void 0,!0)]),_:3},8,[`style`,`content`,`placement`])])):r(``,!0)]),_:3}))}}),[[`__scopeId`,`data-v-4166fe69`]]),C=(e,t,n)=>({mounted(r){r.tooltipMouseenter=()=>{e.value=!0;let i=r.getBoundingClientRect(),a=`${n.includes(`left`)||n.includes(`right`)?i.width/2:20}px`;n===`top`?t.value={top:`${i.top}px`,left:`${i.left}px`,transform:`translate(-50%, -100%)`,marginLeft:`${i.width/2}px`,marginTop:`-8px`}:n===`bottom`?t.value={top:`${i.bottom}px`,left:`${i.left}px`,transform:`translate(-50%, 0)`,marginLeft:`${i.width/2}px`,marginTop:`8px`}:n===`left`?t.value={top:`${i.top}px`,left:`${i.left}px`,transform:`translate(-100%, -50%)`,marginLeft:`-8px`,marginTop:`${i.height/2}px`}:n===`right`?t.value={top:`${i.top}px`,left:`${i.right}px`,transform:`translate(0, -50%)`,marginLeft:`8px`,marginTop:`${i.height/2}px`}:n===`top-left`?t.value={top:`${i.top}px`,left:`${i.left}px`,transform:`translate(0, -100%)`,marginTop:`-8px`,"--tooltip-arrow-offset":a}:n===`top-right`?t.value={top:`${i.top}px`,left:`${i.left}px`,transform:`translate(-100%, -100%)`,marginLeft:`${i.width}px`,marginTop:`-8px`,"--tooltip-arrow-offset":a}:n===`bottom-left`?t.value={top:`${i.bottom}px`,left:`${i.left}px`,transform:`translate(0, 0)`,marginTop:`8px`,"--tooltip-arrow-offset":a}:n===`bottom-right`&&(t.value={top:`${i.bottom}px`,left:`${i.right}px`,transform:`translate(-100%, 0)`,marginTop:`8px`,"--tooltip-arrow-offset":a}),t.value.zIndex=`1000`},r.tooltipMouseleave=()=>{e.value=!1},r.addEventListener(`mouseenter`,r.tooltipMouseenter),r.addEventListener(`mouseleave`,r.tooltipMouseleave)},beforeUnmount(e){e.removeEventListener(`mouseenter`,e.tooltipMouseenter),e.removeEventListener(`mouseleave`,e.tooltipMouseleave)}}),w=f({name:`WithTooltip`,props:{content:String,placement:{type:String,default:`top`},disabled:{type:Boolean,default:!1},style:{type:Object,default:()=>({})}},setup(t,{slots:n}){let r=c(!1),i=c({});return v(()=>t.disabled,e=>{e&&(r.value=!1)},{immediate:!0}),()=>{let a=n.trigger?.()?.[0];return a?t.disabled?a:[y(a,[[C(r,i,t.placement)]]),e(S,{show:r.value,content:t.content,placement:t.placement,style:{position:`fixed`,...i.value,...t.style}})]:null}}});function T(e,t){if(!e||!t)return!1;let n=e.offsetTop,r=n+e.offsetHeight,i=t.scrollTop,a=i+t.clientHeight;return n>=i&&r<=a}function E(e,t){e&&(t?.scrollBox&&T(e,t.scrollBox)||e.scrollIntoView({behavior:t?.behavior??`smooth`,block:t?.pos??`center`}))}function D(e){let t=document.createElement(`iframe`);return t.hidden=!0,e&&(t.src=e),document.body.appendChild(t),t}export{D as n,w as r,E as t};