@fancyapps/ui
Version:
Robust JavaScript UI Component Library
3 lines (2 loc) • 1.17 kB
JavaScript
/*! License details at fancyapps.com/license */
const t=()=>{let t,n=[];function e(){!function(){const e=null==t?void 0:t.getContainer();if(!e)return;n=[];const o=Array.from(e.querySelectorAll(".f-panzoom__pin"));if(o.length)for(const t of o)n.push({x:t.dataset.x+"",y:t.dataset.y+"",el:t})}(),l()}function o(){l()}function l(){var e;if(t&&n.length)for(const o of n){if(!o.el)continue;let{width:n,height:l}=t.getFullDim();const r=o.x+"",i=o.y+"";let a=0,s=0;const f=t.getTransform(),c=f.angle||0,u=f.flipX||0,d=f.flipY||0,p=f.x||0,g=f.y||0,y=f.scale||1,x=null===(e=null==t?void 0:t.getWrapper())||void 0===e?void 0:e.getBoundingClientRect();let h=0,m=0;x&&(h=x.width,m=x.height),a=r.includes("%")?h*(parseFloat(r)/100):parseFloat(r)/n*h,a-=.5*h,s=i.includes("%")?m*(parseFloat(i)/100):parseFloat(i)/l*m,s-=.5*m;let v=new DOMMatrix([y,0,0,y,p,g]);v=v.scale(u,1),v=v.scale(1,d),v=v.rotate(c);const F=new DOMPoint(a,s).matrixTransform(v);a=F.x,s=F.y,o.el.style.transform=`translate3d(${a||0}px, ${s||0}px, 0)`}}return{init:function(n){t=n,t.on("ready",e),t.on("render",o)},destroy:function(){null==t||t.off("ready",e),null==t||t.off("render",o),t=void 0}}};export{t as Pins};