UNPKG

@fancyapps/ui

Version:

Robust JavaScript UI Component Library

1 lines 5.69 kB
!/*! License details at fancyapps.com/license */function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).window=t.window||{})}(this,function(t){"use strict";var e;let o=t=>"object"==typeof t&&null!==t&&t.constructor===Object&&"[object Object]"===Object.prototype.toString.call(t),l=t=>"string"==typeof t,n=function(t){var e=new DOMParser().parseFromString(t,"text/html").body;if(e.childElementCount>1){for(var o=document.createElement("div");e.firstChild;)o.appendChild(e.firstChild);return o}let l=e.firstChild;if(l&&!(l instanceof HTMLElement)){var o=document.createElement("div");return o.appendChild(l),o}return l},a='<circle cx="11" cy="11" r="7.5"/><path d="m21 21-4.35-4.35M8 11h6"/>',i='<g><line x1="11" y1="8" x2="11" y2="14"></line></g>'+a,r={};for(let[t,e]of Object.entries({moveLeft:["moveLeft","MOVE_LEFT",'<path d="M5 12h14M5 12l6 6M5 12l6-6"/>'],moveRight:["moveRight","MOVE_RIGHT",'<path d="M5 12h14M13 18l6-6M13 6l6 6"/>'],moveUp:["moveUp","MOVE_UP",'<path d="M12 5v14M18 11l-6-6M6 11l6-6"/>'],moveDown:["moveDown","MOVE_DOWN",'<path d="M12 5v14M18 13l-6 6M6 13l6 6"/>'],zoomOut:["zoomOut","ZOOM_OUT",a],zoomIn:["zoomIn","ZOOM_IN",i],toggleFull:["toggleFull","TOGGLE_FULL",i],iterateZoom:["iterateZoom","ITERATE_ZOOM",i],toggle1to1:["toggleFull","TOGGLE_FULL",'<path d="M3.51 3.07c5.74.02 11.48-.02 17.22.02 1.37.1 2.34 1.64 2.18 3.13 0 4.08.02 8.16 0 12.23-.1 1.54-1.47 2.64-2.79 2.46-5.61-.01-11.24.02-16.86-.01-1.36-.12-2.33-1.65-2.17-3.14 0-4.07-.02-8.16 0-12.23.1-1.36 1.22-2.48 2.42-2.46Z"/><path d="M5.65 8.54h1.49v6.92m8.94-6.92h1.49v6.92M11.5 9.4v.02m0 5.18v0"/>'],rotateCCW:["rotateCCW","ROTATE_CCW",'<path d="M15 4.55a8 8 0 0 0-6 14.9M9 15v5H4M18.37 7.16v.01M13 19.94v.01M16.84 18.37v.01M19.37 15.1v.01M19.94 11v.01"/>'],rotateCW:["rotateCW","ROTATE_CW",'<path d="M9 4.55a8 8 0 0 1 6 14.9M15 15v5h5M5.63 7.16v.01M4.06 11v.01M4.63 15.1v.01M7.16 18.37v.01M11 19.94v.01"/>'],flipX:["flipX","FLIP_X",'<path d="M12 3v18M16 7v10h5L16 7M8 7v10H3L8 7"/>'],flipY:["flipY","FLIP_Y",'<path d="M3 12h18M7 16h10L7 21v-5M7 8h10L7 3v5"/>'],reset:["reset","RESET",'<path d="M20 11A8.1 8.1 0 0 0 4.5 9M4 5v4h4M4 13a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4"/>'],toggleFS:["toggleFS","TOGGLE_FS",'<g><path d="M14.5 9.5 21 3m0 0h-6m6 0v6M3 21l6.5-6.5M3 21v-6m0 6h6"/></g><g><path d="m14 10 7-7m-7 7h6m-6 0V4M3 21l7-7m0 0v6m0-6H4"/></g>']}))r[t]={tpl:`<button data-panzoom-action="${e[0]}" class="f-button" title="{{${e[1]}}}"><svg>${e[2]}</svg></button>`};let s=(t,...e)=>{let l=e.length;for(let n=0;n<l;n++)Object.entries(e[n]||{}).forEach(([e,l])=>{let n=Array.isArray(l)?[]:{};t[e]||Object.assign(t,{[e]:n}),o(l)?Object.assign(t[e],s(t[e],l)):Array.isArray(l)?Object.assign(t,{[e]:[...l]}):Object.assign(t,{[e]:l})});return t},d=((e={}).Left="left",e.middle="middle",e.right="right",e),c={counter:{tpl:'<div class="f-counter"><span data-carousel-page></span>/<span data-carousel-pages></span></div>'},download:{tpl:'<button data-carousel-download class="f-button" title="{{DOWNLOAD}}"><svg><path d="M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2M7 11l5 5 5-5M12 4v12"/></svg></button>'},autoplay:{tpl:'<button data-autoplay-action="toggle" class="f-button" title="{{TOGGLE_AUTOPLAY}}"><svg><g><path d="M5 3.5 19 12 5 20.5Z"/></g><g><path d="M8 4v15M17 4v15"/></g></svg></button>'},thumbs:{tpl:'<button data-thumbs-action="toggle" class="f-button" title="{{TOGGLE_THUMBS}}"><svg><rect width="18" height="14" x="3" y="3" rx="2"/><path d="M4 21h1M9 21h1M14 21h1M19 21h1"/></svg></button>'},...r},u={absolute:!1,display:{left:[],middle:["zoomIn","zoomOut","toggle1to1","rotateCCW","rotateCW","flipX","flipY","reset"],right:[]},enabled:"auto",items:{}};t.Toolbar=()=>{let t,e;function a(e){let l=t?.getOptions().Toolbar,n=(o(l)?{...u,...l}:u)[e];return n&&"function"==typeof n&&t?n(t):n}function i(){if(!t?.getOptions().Toolbar||!t||e)return;let i=t.getContainer();if(!i)return;let d=a("enabled");if(!d)return;let u=a("absolute"),f=t.getSlides().length>1,p=!1,g=!1;for(let e of t.getSlides())e.panzoomRef&&(p=!0),(e.downloadSrc||"image"===e.type&&e.src)&&(g=!0);let h=t.getPlugins().Thumbs?.isEnabled()||!1,v=f&&t.getPlugins().Autoplay||!1,m=t.getPlugins().Fullscreen&&(document.fullscreenEnabled||document.webkitFullscreenEnabled);if("auto"===d&&(d=p),!d)return;(e=i.querySelector(".f-carousel__toolbar")||void 0)||(e=document.createElement("div")).classList.add("f-carousel__toolbar");let M=a("display"),b=s({},c,a("items"));for(let a of["left","middle","right"]){let i=M[a]||[],s=document.createElement("div");for(let e of(s.classList.add("f-carousel__toolbar__column"),s.classList.add(`is-${a}`),i)){let a;if(l(e)){if("counter"===e&&!f||"autoplay"===e&&!v||r[e]&&!p||"fullscreen"===e&&!m||"thumbs"===e&&!h||"download"===e&&!g)continue;a=b[e]}if(o(e)&&(a=e),a&&a.tpl){let e=t.localize(a.tpl),o=n(e=e.split("<svg>").join('<svg tabindex="-1" width="24" height="24" viewBox="0 0 24 24">'));o&&("function"==typeof a.click&&t&&o.addEventListener("click",e=>{e.preventDefault(),e.stopPropagation(),"function"==typeof a.click&&t&&a.click(t,e)}),s.append(o))}}e.append(s)}if(e.childElementCount){if(u&&e.classList.add("is-absolute"),!e.parentElement){let o=a("parentEl");o?o.insertAdjacentElement("afterbegin",e):t.getViewport()?.insertAdjacentElement("beforebegin",e)}i.contains(e)&&i.classList.add("has-toolbar")}}return{init:function(e){t=e,t?.on("initSlides",i)},destroy:function(){t?.off("initSlides",i),t?.getContainer()?.classList.remove("has-toolbar"),e?.remove(),e=void 0},add:function(t,e){c[t]=e},isEnabled:function(){return!!e}}},t.ToolbarColumn=d});