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