UNPKG

@fancyapps/ui

Version:

Robust JavaScript UI Component Library

3 lines (2 loc) 3.56 kB
/*! 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",v),i.on("Carousel.panzoom:init",m);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 v(){var o;c&&(null===(o=null==i?void 0:i.getContainer())||void 0===o||o.classList.toggle("is-idle"))}function m(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",((o,t)=>{var i,s,d;if(c){const o=null===(i=null==l?void 0:l.Carousel)||void 0===i?void 0:i.Zoomable,c=o&&e(o)?null===(s=o.Panzoom)||void 0===s?void 0:s.clickAction:n.ToggleFull;c&&(null===(d=null==a?void 0:a.panzoomRef)||void 0===d||d.execute(c,{srcEvent:t.srcEvent}))}})))}function g(t){var a,u,r,v,m,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.Zoomable,E=null===(u=null==l?void 0:l.Carousel)||void 0===u?void 0:u.Thumbs,h=o({clickAction:n.ToggleFull,singleClickAction:!1,dblClickAction:!1},c?{clickAction:!1,singleClickAction:!1,dblClickAction:!1}:e(b)?b.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===(v=i.getCarousel())||void 0===v?void 0:v.getPlugins().Thumbs;if(x&&x.isEnabled()){const o=x.getContainer();s&&o&&s.insertAdjacentElement("beforeend",o)}for(const e of(null===(m=i.getCarousel())||void 0===m?void 0:m.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:!1!==E&&{parentEl:c?s:e(E)?E.parentEl:null},Zoomable:!1!==b&&{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",m),null==a||a.removeEventListener("change",u),a=void 0},isEnabled:function(){return c}}};export{i as Compactmode};