@fancyapps/ui
Version:
Robust JavaScript UI Component Library
3 lines (2 loc) • 3.53 kB
JavaScript
/*! License details at fancyapps.com/license */
import{extend as o}from"../utils/extend.js";import{isPlainObject as e}from"../utils/isPlainObject.js";var n;!function(o){o.Reset="reset",o.Zoom="zoom",o.ZoomIn="zoomIn",o.ZoomOut="zoomOut",o.ZoomTo="zoomTo",o.ToggleCover="toggleCover",o.ToggleFull="toggleFull",o.ToggleMax="toggleMax",o.IterateZoom="iterateZoom",o.Pan="pan",o.Swipe="swipe",o.Move="move",o.MoveLeft="moveLeft",o.MoveRight="moveRight",o.MoveUp="moveUp",o.MoveDown="moveDown",o.RotateCCW="rotateCCW",o.RotateCW="rotateCW",o.FlipX="flipX",o.FlipY="flipY"}(n||(n={}));const t={mediaQuery:"(max-width: 578px), (max-height: 578px)"},i=()=>{let i,l,a,c=!1,s=null,d=null;function u(o){g(o.matches)}function r(){if(!i||!1===i.getOptions().Compactmode)return;i.on("backdropClick",m),i.on("Carousel.panzoom:init",v);const n=function(){const o=null==i?void 0:i.getOptions().Compactmode;return e(o)?Object.assign(Object.assign({},t),o):t}().mediaQuery;if(!n||!n.length)return;const c=i.getOptions();l=o({},c),a=window.matchMedia(n),g(a.matches),a.addEventListener("change",u)}function m(){var o;c&&(null===(o=null==i?void 0:i.getContainer())||void 0===o||o.classList.toggle("is-idle"))}function v(o,t,a){a&&a.panzoomRef&&(a.panzoomRef.on("singleClick",(()=>{var o;c&&(null===(o=null==i?void 0:i.getContainer())||void 0===o||o.classList.toggle("is-idle"))})),a.panzoomRef.on("dblClick",(()=>{var o,t,i;if(c){const c=null===(o=null==l?void 0:l.Carousel)||void 0===o?void 0:o.Zoomable,s=c&&e(c)?null===(t=c.Panzoom)||void 0===t?void 0:t.clickAction:n.ToggleFull;s&&(null===(i=null==a?void 0:a.panzoomRef)||void 0===i||i.execute(s))}})))}function g(t){var a,u,r,m,v,g,p,f;c=t;const C=null==i?void 0:i.getContainer();if(!i||!C)return;C.classList.toggle("is-compact",c);const b=(null===(a=null==l?void 0:l.Carousel)||void 0===a?void 0:a.Thumbs)||{},E=(null===(u=null==l?void 0:l.Carousel)||void 0===u?void 0:u.Zoomable)||{},h=o({clickAction:n.ToggleFull,singleClickAction:!1,dblClickAction:!1},c?{clickAction:!1,singleClickAction:!1,dblClickAction:!1}:e(E)?E.Panzoom:{});c?(s||(s=document.createElement("div"),s.classList.add("fancybox__footer"),C.appendChild(s)),d||(d=document.createElement("div"),d.classList.add("f-caption"),s.appendChild(d))):C.classList.remove("is-idle");const k=i.getOptions(),z=null===(r=i.getCarousel())||void 0===r?void 0:r.getOptions(),x=null===(m=i.getCarousel())||void 0===m?void 0:m.getPlugins().Thumbs;if(x&&x.isEnabled()){const o=x.getContainer();s&&o&&s.insertAdjacentElement("beforeend",o)}for(const e of(null===(v=i.getCarousel())||void 0===v?void 0:v.getSlides())||[]){const n=e.index===(null===(g=i.getCarousel())||void 0===g?void 0:g.getPageIndex());e.panzoomRef&&o(e.panzoomRef.getOptions(),h),c&&e.captionEl&&(n?(null==s||s.insertAdjacentElement("afterbegin",e.captionEl),d&&d.remove(),d=e.captionEl,d.removeAttribute("id")):e.captionEl.remove(),e.captionEl=void 0),!c&&n&&d&&(null===(p=e.el)||void 0===p||p.insertAdjacentElement("beforeend",d),e.captionEl=d,d=null)}const L={captionEl:c?d:null===(f=null==l?void 0:l.Carousel)||void 0===f?void 0:f.captionEl,Thumbs:{parentEl:c?s:e(b)?b.parentEl:null},Zoomable:{Panzoom:Object.assign({},h)}};o(k,{idle:!1,backdropClick:!c&&((null==l?void 0:l.backdropClick)||"close"),Carousel:L}),z&&o(z,L)}return{init:function(o){i=o,i.on("initLayout",r)},destroy:function(){null==i||i.off("initLayout",r),null==i||i.off("Carousel.panzoom:init",v),null==a||a.removeEventListener("change",u),a=void 0},isEnabled:function(){return c}}};export{i as Compactmode};