@fancyapps/ui
Version:
Robust JavaScript UI Component Library
1 lines • 3.38 kB
JavaScript
!/*! License details at fancyapps.com/license */function(e,o){"object"==typeof exports&&"u">typeof module?o(exports):"function"==typeof define&&define.amd?define(["exports"],o):o((e="u">typeof globalThis?globalThis:e||self).window=e.window||{})}(this,function(e){"use strict";let o=e=>"object"==typeof e&&null!==e&&e.constructor===Object&&"[object Object]"===Object.prototype.toString.call(e),t=(e,...n)=>{let i=n.length;for(let l=0;l<i;l++)Object.entries(n[l]||{}).forEach(([n,i])=>{let l=Array.isArray(i)?[]:{};e[n]||Object.assign(e,{[n]:l}),o(i)?Object.assign(e[n],t(e[n],i)):Array.isArray(i)?Object.assign(e,{[n]:[...i]}):Object.assign(e,{[n]:i})});return e};var n,i=((n=i||{}).Reset="reset",n.Zoom="zoom",n.ZoomIn="zoomIn",n.ZoomOut="zoomOut",n.ZoomTo="zoomTo",n.ToggleCover="toggleCover",n.ToggleFull="toggleFull",n.ToggleMax="toggleMax",n.IterateZoom="iterateZoom",n.Pan="pan",n.Swipe="swipe",n.Move="move",n.MoveLeft="moveLeft",n.MoveRight="moveRight",n.MoveUp="moveUp",n.MoveDown="moveDown",n.RotateCCW="rotateCCW",n.RotateCW="rotateCW",n.FlipX="flipX",n.FlipY="flipY",n);let l={mediaQuery:"(max-width: 578px), (max-height: 578px)"};e.Compactmode=()=>{let e,n,a,c=!1,s=null,r=null;function m(e){u(e.matches)}function g(){let i;if(!e||!1===e.getOptions().Compactmode)return;let c=(o(i=e?.getOptions().Compactmode)?{...l,...i}:l).mediaQuery;c&&c.length&&(e.on("backdropClick",p),e.on("Carousel.panzoom:init",d),n=t({},e.getOptions()),u((a=window.matchMedia(c)).matches),a.addEventListener("change",m))}function p(){c&&e?.getContainer()?.classList.toggle("is-idle")}function d(t,l,a){a&&a.panzoomRef&&(a.panzoomRef.on("singleClick",()=>{c&&e?.getContainer()?.classList.toggle("is-idle")}),a.panzoomRef.on("dblClick",(e,t)=>{if(c){let e=n?.Carousel?.Zoomable,l=e&&o(e)?e.Panzoom?.clickAction:i.ToggleFull;l&&a?.panzoomRef?.execute(l,{srcEvent:t.srcEvent})}}))}function u(l){c=l;let a=e?.getContainer(),m=e?.getCarousel();if(!e||!a)return;let g=e?.getPlugins()?.Sidebar?.isEnabled(),p=e.getOptions(),d=n?.Carousel?.Zoomable,u=n?.Carousel?.Thumbs;a.classList.toggle("is-compact",c);let f=t({clickAction:i.ToggleFull,singleClickAction:!1,dblClickAction:!1},c?{clickAction:!1,singleClickAction:!1,dblClickAction:!1}:o(d)?d.Panzoom:{});if(c?(s||((s=document.createElement("div")).classList.add("fancybox__footer"),a.appendChild(s)),r||g||((r=document.createElement("div")).classList.add("f-caption"),s.appendChild(r))):a.classList.remove("is-idle"),m){let e=m.getPlugins().Thumbs;if(e&&e.isEnabled()){let o=e.getContainer();s&&o&&s.insertAdjacentElement("beforeend",o)}}if(m&&!g)for(let e of m.getSlides()||[]){let o=e.index===m.getPageIndex();e.panzoomRef&&t(e.panzoomRef.getOptions(),f),c&&e.captionEl&&(o?(s?.insertAdjacentElement("afterbegin",e.captionEl),r&&r.remove(),(r=e.captionEl).removeAttribute("id")):e.captionEl.remove(),e.captionEl=void 0),!c&&o&&r&&(e.el?.insertAdjacentElement("beforeend",r),e.captionEl=r,r=null)}let b={captionEl:c&&!g?r:n?.Carousel?.captionEl,Thumbs:!1!==u&&{parentEl:c?s:o(u)?u.parentEl:null},Zoomable:!1!==d&&{Panzoom:{...f}}};t(p,{idle:!1,backdropClick:!c&&(n?.backdropClick||"close"),Carousel:b});let C=m?.getOptions();C&&t(C,b)}return{init:function(o){(e=o).on("initLayout",g)},destroy:function(){c=!1,e?.off("initLayout",g),e?.off("Carousel.panzoom:init",d),a?.removeEventListener("change",m),a=void 0},isEnabled:function(){return c}}}});