@fancyapps/ui
Version:
Robust JavaScript UI Component Library
3 lines (2 loc) • 1.52 kB
JavaScript
/*! License details at fancyapps.com/license */
import{isPlainObject as t}from"../utils/isPlainObject.js";import{stringToHtml as o}from"../utils/strToHtml.js";import{PanzoomButtons as n}from"../shared/buttons.js";const e={display:["zoomIn","zoomOut","toggle1to1","rotateCCW","rotateCW","flipX","flipY","reset"],items:{},svgAttr:{tabindex:"-1",width:"24",height:"24",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"}},i=()=>{let i,s;function r(){const o=null==i?void 0:i.getOptions().Controls;return t(o)?Object.assign(Object.assign({},e),o):e}return{init:function(t){i=t,function(){var t,e;if(!1===(null==i?void 0:i.getOptions().Controls))return;if(!i||s)return;s=document.createElement("div"),s.classList.add("f-controls");const l=Object.assign(Object.assign({},n),r().items),c=Object.entries(r().svgAttr);for(const t of r().display){const n=l[t];if(n&&n.tpl){const t=o(i.localize(n.tpl));if(t){const o=t.querySelector("svg");if(o)for(const[t,n]of c)o.getAttribute(t)||o.setAttribute(t,String(n));"function"==typeof n.click&&i&&t.addEventListener("click",(t=>{t.preventDefault(),t.stopPropagation(),"function"==typeof n.click&&i&&n.click(i,t)})),s.append(t)}}}s.childElementCount&&(null===(t=i.getContainer())||void 0===t||t.classList.add("has-controls"),null===(e=i.getContainer())||void 0===e||e.insertAdjacentElement("afterbegin",s))}()},destroy:function(){var t;null===(t=null==i?void 0:i.getContainer())||void 0===t||t.classList.remove("has-controls"),null==s||s.remove(),s=void 0}}};export{i as Controls};