UNPKG

@fancyapps/ui

Version:

Robust JavaScript UI Component Library

2 lines 1.43 kB
/*! License details at fancyapps.com/license */ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports):typeof define==`function`&&define.amd?define([`exports`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.window=e.window||{}))})(this,function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`}),e.Pins=()=>{let e,t=[];function n(){return e?.getOptions().Pins!==!1}function r(){a(),s()}function i(){s()}function a(){let r=e?.getContainer(),i=e?.getWrapper();if(!r||!n())return;t=[];let a=Array.from(r.querySelectorAll(`.f-panzoom__pin`));for(let e of a)t.push({x:e.dataset.x??`0`,y:e.dataset.y??`0`,el:e}),i&&e.parentElement!==i&&i.appendChild(e)}function o(e,t,n){let r=String(e),i=parseFloat(r);return Number.isFinite(i)?r.includes(`%`)?i/100*n:t?i/t*n:0:0}function s(){if(!e||!t.length||!n())return;let{width:r,height:i}=e.getFullDim(),a=e.getTransform(),s=e.getWrapper()?.getBoundingClientRect();if(!s)return;let c=a.angle||0,l=a.flipX||1,u=a.flipY||1,d=a.x||0,f=a.y||0,p=a.scale||1,m=s.width,h=s.height,g=new DOMMatrix([p,0,0,p,d,f]).scale(l,1).scale(1,u).rotate(c);for(let e of t){let t=o(e.x,r,m)-m*.5,n=o(e.y,i,h)-h*.5,a=new DOMPoint(t,n).matrixTransform(g);e.el.style.transform=`translate3d(${a.x}px, ${a.y}px, 0)`}}return{init:function(t){e=t,e.on(`ready`,r),e.on(`render`,i)},destroy:function(){e?.off(`ready`,r),e?.off(`render`,i);for(let e of t)e.el.style.transform=``;e=void 0,t=[]}}}});