@fancyapps/ui
Version:
Robust JavaScript UI Component Library
3 lines (2 loc) • 23.1 kB
JavaScript
/*! License details at fancyapps.com/license */
import{isPlainObject as e}from"../utils/isPlainObject.js";import{isString as t}from"../utils/isString.js";import{isNode as n}from"../utils/isNode.js";import{stringToHtml as o}from"../utils/strToHtml.js";import{getScrollableParent as i}from"../utils/getScrollableParent.js";import{scrollLock as s}from"../utils/scrollLock.js";import{extend as l}from"../utils/extend.js";import{canUseDOM as r}from"../utils/canUseDOM.js";import{map as a}from"../utils/map.js";import{addClass as c}from"../utils/addClass.js";import{PANZOOM_DEFAULT_POS as u}from"../panzoom/panzoom.js";export{Panzoom,PanzoomAction,PanzoomZoomLevel}from"../panzoom/panzoom.js";import{Carousel as d}from"../carousel/carousel.js";import{Zoomable as f}from"../carousel/carousel.zoomable.js";import{Sync as m}from"../carousel/carousel.sync.js";import{Lazyload as p}from"../carousel/carousel.lazyload.js";import{Arrows as g}from"../carousel/carousel.arrows.js";import{Toolbar as v}from"../carousel/carousel.toolbar.js";export{ToolbarColumn}from"../carousel/carousel.toolbar.js";import{Autoplay as y}from"../carousel/carousel.autoplay.js";import{Thumbs as h}from"../carousel/carousel.thumbs.js";import{Html as b}from"../carousel/carousel.html.js";import{Video as E}from"../carousel/carousel.video.js";import{Fullscreen as x}from"../carousel/carousel.fullscreen.js";import{Hash as w}from"./fancybox.hash.js";import{Tween as L}from"../libs/tween.js";import{en_EN as j}from"./l10n/en_EN.js";import{Gestures as P}from"../libs/gestures.js";import{removeClass as S}from"../utils/removeClass.js";import{toggleClass as C}from"../utils/toggleClass.js";const T='<button class="f-button" title="{{CLOSE}}" data-fancybox-close><svg><path d="M19.286 4.714 4.714 19.286M4.714 4.714l14.572 14.572" /></svg></button>';v().add("close",{tpl:T});const A=e=>{e&&e.dispatchEvent(new CustomEvent("animationend",{bubbles:!1,cancelable:!0,currentTarget:e}))},M=(e=null,t="",n)=>{if(!e||!e.parentElement||!t)return void(n&&n());A(e);const o=i=>{i.target===e&&e.dataset.animationName&&(e.removeEventListener("animationend",o),delete e.dataset.animationName,n&&n(),e.classList.remove(t))};e.dataset.animationName=t,e.addEventListener("animationend",o),c(e,t)};var k;!function(e){e[e.Init=0]="Init",e[e.Ready=1]="Ready",e[e.Closing=2]="Closing",e[e.Destroyed=3]="Destroyed"}(k||(k={}));const _={ajax:null,backdropClick:"close",Carousel:{},closeButton:"auto",closeExisting:!1,delegateEl:void 0,dragToClose:!0,fadeEffect:!0,groupAll:!1,groupAttr:"data-fancybox",hideClass:"f-fadeOut",hideScrollbar:!0,id:void 0,idle:!1,keyboard:{Escape:"close",Delete:"close",Backspace:"close",PageUp:"next",PageDown:"prev",ArrowUp:"prev",ArrowDown:"next",ArrowRight:"next",ArrowLeft:"prev"},l10n:j,mainClass:"",mainStyle:{},mainTpl:'<dialog class="fancybox__dialog">\n <div class="fancybox__container" tabindex="0" aria-label="{{MODAL}}">\n <div class="fancybox__backdrop"></div>\n <div class="fancybox__carousel"></div>\n </div>\n </dialog>',on:{},parentEl:void 0,placeFocusBack:!0,showClass:"f-zoomInUp",startIndex:0,sync:void 0,theme:"dark",triggerEl:void 0,triggerEvent:void 0,zoomEffect:!0},O=new Map;let D=0;const R="with-fancybox",I=()=>{let r,w,j,I,H,B=k.Init,N=Object.assign({},_),q=-1,V={},F=[],W=!1,$=!0,K=0;function U(e,...t){let n=N[e];return n&&"function"==typeof n?n(Pe,...t):n}function X(e,t=[]){const n=U("l10n")||{};e=String(e).replace(/\{\{(\w+)\}\}/g,((e,t)=>n[t]||e));for(let n=0;n<t.length;n++)e=e.split(t[n][0]).join(t[n][1]);return e=e.replace(/\{\{(.*?)\}\}/g,((e,t)=>t))}const G=new Map;function Y(e,...t){const n=[...G.get(e)||[]];for(const[t,o]of Object.entries(N.on||{}))(t===e||t.split(" ").indexOf(e)>-1)&&n.push(o);for(const e of n)e&&"function"==typeof e&&e(Pe,...t);"*"!==e&&Y("*",e,...t)}function Z(t=[],n={}){B!==k.Init&&(Pe.destroy(),B=k.Init),N=l({},_,n),q=U("id")||"fancybox-"+ ++D;const a=O.get(q);if(a&&a.destroy(),O.set(q,Pe),Y("init"),function(){for(const[e,t]of Object.entries(Object.assign(Object.assign({},z.Plugins),N.plugins||{})))if(e&&!V[e]&&t instanceof Function){const n=t();n.init(Pe),V[e]=n}Y("initPlugins")}(),function(e=[]){Y("initSlides",e),F=[...e]}(t),function(){const t=U("parentEl")||document.body;if(!(t&&t instanceof HTMLElement))return;const n=X(U("mainTpl")||"");if(r=o(n)||void 0,!(r&&r instanceof HTMLDialogElement))return;if(w=r.querySelector(".fancybox__container"),!(w&&w instanceof HTMLElement))return;const l=U("mainClass");l&&c(w,l);const a=U("mainStyle");if(a&&e(a))for(const[e,t]of Object.entries(a))w.style.setProperty(e,t);const u=U("theme"),d="auto"===u?window.matchMedia("(prefers-color-scheme:light)").matches:"light"===u;w.setAttribute("theme",d?"light":"dark"),r.setAttribute("id",`${q}`),r.addEventListener("keydown",(e=>{"Escape"===e.key&&e.preventDefault()})),r.addEventListener("wheel",(e=>{const t=e.target;let n=U("wheel",e);t.closest(".f-thumbs")&&(n="slide");const o="slide"===n,s=[-e.deltaX||0,-e.deltaY||0,-e.detail||0].reduce((function(e,t){return Math.abs(t)>Math.abs(e)?t:e})),l=Math.max(-1,Math.min(1,s)),r=Date.now();K&&r-K<300?o&&e.preventDefault():(K=r,Y("wheel",e,l),e.defaultPrevented||("close"===n?we(e):"slide"===n&&I&&!i(t)&&(e.preventDefault(),I[l>0?"prev":"next"]())))}),{capture:!0,passive:!1}),r.addEventListener("cancel",(e=>{we(e)})),t.append(r),1===O.size&&(U("hideScrollbar")&&s(!0),document.documentElement.classList.add(R));r.showModal(),Y("initLayout")}(),function(){if(j=(null==r?void 0:r.querySelector(".fancybox__carousel"))||void 0,!j)return;const e=l({},{Autoplay:{autoStart:!1,pauseOnHover:!1,progressbarParentEl:e=>{const t=e.getContainer();return(null==t?void 0:t.querySelector(".f-carousel__toolbar [data-autoplay-action]"))||t}},Fullscreen:{el:w},Toolbar:{absolute:!0,display:{left:["counter"],right:["toggleFull","autoplay","fullscreen","thumbs","close"]}},Video:{autoplay:!0},Thumbs:{minCount:2,Carousel:{classes:{container:"fancybox__thumbs"}}},classes:{container:"fancybox__carousel",viewport:"fancybox__viewport",slide:"fancybox__slide"},spinnerTpl:'<div class="f-spinner" data-fancybox-close></div>',dragFree:!1,slidesPerPage:1,plugins:{Sync:m,Arrows:g,Lazyload:p,Zoomable:f,Html:b,Video:E,Autoplay:y,Fullscreen:x,Thumbs:h,Toolbar:v}},U("Carousel")||{},{slides:F,enabled:!0,initialPage:U("startIndex")||0,l10n:U("l10n")});I=d(j,e),Y("initCarousel",I),I.on("*",((e,t,...n)=>{Y(`Carousel.${t}`,e,...n)})),I.on("attachSlideEl",Q),I.on("detachSlideEl",ee),I.on("contentReady",se),I.on("ready",oe),I.on("change",ne),I.on("settle",ie),I.on("thumbs:ready",le),I.on("thumbs:destroy",le),I.init()}(),r&&w){if(U("closeExisting"))for(const[e,t]of O.entries())e!==q&&t.close();U("fadeEffect")?(setTimeout((()=>{J()}),500),c(w,"is-revealing")):J(),w.classList.add("is-ready"),B=k.Ready,Y("ready")}}function J(){S(w,"is-revealing");try{if(document.activeElement===r){((null==w?void 0:w.querySelector("[autofocus]"))||w).focus()}}catch(e){}}function Q(e,n){var o;de(n),null===(o=n.el)||void 0===o||o.addEventListener("click",te),"inline"!==n.type&&"clone"!==n.type||function(e){if(!I||!e||!e.el)return;let n=null;if(t(e.src)){const t=e.src.split("#",2).pop();n=t?document.getElementById(t):null}if(n){if(c(n,"f-html"),"clone"===e.type||n.closest(".fancybox__carousel")){n=n.cloneNode(!0);const t=n.dataset.animationName;t&&(n.classList.remove(t),delete n.dataset.animationName);let o=n.getAttribute("id");o=o?`${o}--clone`:`clone-${q}-${e.index}`,n.setAttribute("id",o)}else if(n.parentNode){const t=document.createElement("div");t.inert=!0,n.parentNode.insertBefore(t,n),e.placeholderEl=t}e.htmlEl=n,c(e.el,"has-html"),e.el.prepend(n),n.classList.remove("hidden"),"none"===n.style.display&&(n.style.display=""),"none"===getComputedStyle(n).getPropertyValue("display")&&(n.style.display=n.dataset.display||"flex"),null==I||I.emit("contentReady",e)}else null==I||I.showError(e,"{{ELEMENT_NOT_FOUND}}")}(n),"ajax"===n.type&&function(e){const t=e.el;if(!t)return;if(e.htmlEl||e.xhr)return;null==I||I.showLoading(e),e.state=0;const n=new XMLHttpRequest;n.onreadystatechange=function(){if(n.readyState===XMLHttpRequest.DONE&&B===k.Ready)if(null==I||I.hideLoading(e),e.state=1,200===n.status){let o=n.responseText+"",i=null,s=null;if(e.filter){const t=document.createElement("div");t.innerHTML=o,s=t.querySelector(e.filter+"")}s&&s instanceof HTMLElement?i=s:(i=document.createElement("div"),i.innerHTML=o),i.classList.add("f-html"),e.htmlEl=i,t.classList.add("has-html"),t.classList.add("has-ajax"),t.prepend(i),null==I||I.emit("contentReady",e)}else null==I||I.showError(e)};const o=U("ajax")||null;n.open(o?"POST":"GET",e.src+""),n.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),n.setRequestHeader("X-Requested-With","XMLHttpRequest"),n.send(o),e.xhr=n}(n)}function ee(e,t){var n;!function(e){e.closeButtonEl&&(e.closeButtonEl.remove(),e.closeButtonEl=void 0)}(t),null===(n=t.el)||void 0===n||n.removeEventListener("click",te),"inline"!==t.type&&"clone"!==t.type||function(e){const t=e.htmlEl,n=e.placeholderEl;t&&("none"!==getComputedStyle(t).getPropertyValue("display")&&(t.style.display="none"),t.offsetHeight);n&&(t&&n.parentNode&&n.parentNode.insertBefore(t,n),n.remove());e.htmlEl=void 0,e.placeholderEl=void 0}(t),t.xhr&&(t.xhr.abort(),t.xhr=void 0)}function te(e){if(!me())return;if(B!==k.Ready)return e.preventDefault(),void e.stopPropagation();if(e.defaultPrevented)return;if(!P.isClickAllowed())return;const t=e.composedPath()[0];t.closest(".fancybox__carousel")&&t.classList.contains("fancybox__slide")&&re(e)}function ne(){$=!1,w&&I&&w.classList.remove("is-revealing");const e=U("sync");if(I&&e){const t=e.getPageIndex(I.getPageIndex())||0;e.goTo(t,{transition:!1})}}function oe(){var e;if(B!==k.Ready)return;fe(pe()),function(){if(!U("dragToClose"))return;if(!I)return;const e=I.getViewport();if(!e)return;const t=P(e).init();if(!t)return;let n=0,o=0,s=L().on("step",(e=>{n=e.y;const t=null==I?void 0:I.getViewport();if(w&&t){const e=a(Math.abs(n),0,.5*t.getBoundingClientRect().height,1,.5);w.style.setProperty("--f-drag-opacity",e+""),w.style.setProperty("--f-drag-offset",n+"px")}})).on("end",(()=>{if(!n){w&&w.style.removeProperty("--f-opacity");const e=null==I?void 0:I.getViewport();e&&(e.style.transform="")}}));t.on("start",(function(){s.pause()})).on("panstart",(e=>{var t;const n=e.srcEvent.target;n&&!i(n)&&(null===(t=null==I?void 0:I.getViewport())||void 0===t||t.classList.add("is-dragging"))})).on("pan",(function(e){const t=e.srcEvent.target;if(t&&i(t))return;(null==I?void 0:I.getViewport())&&"y"===e.axis&&(o+=e.deltaY,s.spring({clamp:!0,mass:1,tension:860,friction:17,restDelta:.01,restSpeed:.01}).from({y:n}).to({y:o}).start())})).on("end",(function(e){s.pause(),"y"===e.axis&&Math.abs(e.velocityY)>5&&Math.abs(o)>0&&(we(e.srcEvent,"f-throwOut"+(e.velocityY>0?"Down":"Up")),B===k.Closing)||0!==o&&(o=0,s.spring({clamp:!0,mass:1,tension:140,friction:25,restDelta:.1,restSpeed:.1,maxSpeed:1/0}).from({y:n}).to({y:o}).start())}))}(),document.body.addEventListener("click",ue),document.body.addEventListener("keydown",ce,{passive:!1,capture:!0}),he();const t=U("sync");t&&(null===(e=t.getTween())||void 0===e||e.start())}function ie(){(null==I?void 0:I.canGoNext())?he():xe()}function se(e,t){de(t),fe(t)}function le(){var e;const t=null==I?void 0:I.getPlugins().Thumbs;C(w,"has-thumbs",(null==t?void 0:t.isEnabled())||!1),C(w,"has-vertical-thumbs",(null===(e=null==t?void 0:t.getCarousel())||void 0===e?void 0:e.isVertical())||!1)}function re(e){if(!!e.composedPath()[0].closest("[data-fancybox-close]"))return void we(e);if(Y("backdropClick",e),e.defaultPrevented)return;U("backdropClick")&&we(e)}function ae(){Ee()}function ce(e){if(!me())return;if(B!==k.Ready)return;const t=e.key,o=U("keyboard");if(!o)return;if(e.ctrlKey||e.altKey||e.shiftKey)return;const i=e.composedPath()[0];if(!n(i))return;if("Escape"!==t&&(e=>{const t=["input","textarea","select","option","video","iframe","[contenteditable]","[data-selectable]","[data-draggable]"].join(",");return e.matches(t)||e.closest(t)})(i))return;if(Y("keydown",e),e.defaultPrevented)return;const s=o[t];if(s)switch(s){case"close":we(e);break;case"next":e.preventDefault(),null==I||I.next();break;case"prev":e.preventDefault(),null==I||I.prev()}}function ue(e){if(!me())return;if(B!==k.Ready)return;if(Ee(),e.defaultPrevented)return;const t=e.composedPath()[0],n=!!t.closest("[data-fancybox-close]"),o=t.classList.contains("fancybox__backdrop");(n||o)&&re(e)}function de(e){var t;const{el:n,htmlEl:i,closeButtonEl:s}=e;if(!n||!i||s)return;let l=U("closeButton");if("auto"===l&&(l=!0!==(null===(t=null==I?void 0:I.getPlugins().Toolbar)||void 0===t?void 0:t.isEnabled())),l){const t=o(X(T));t&&(e.closeButtonEl=i.insertAdjacentElement("afterbegin",t),n.classList.add("has-close-btn"))}}function fe(e){if(!($&&I&&1===I.getState()&&e&&e.index===I.getOptions().initialPage&&e.el&&e.el.parentElement))return;if(void 0!==e.state&&1!==e.state)return;$=!1;const t=e.panzoomRef,n=null==t?void 0:t.getTween(),o=U("zoomEffect")?ve(e):void 0;if(t&&n&&o){const e=t.getScale("base")||1,{x:i,y:s}=t.getMousemovePos(e)||{x:0,y:0};return void n.spring({tension:225,friction:25,restDelta:.001,restSpeed:.001,maxSpeed:1/0}).from(o).to({x:i,y:s,scale:e}).start()}const i=(null==t?void 0:t.getWrapper())||e.htmlEl;i&&M(i,U("showClass",e))}function me(){var e;return(null===(e=z.getInstance())||void 0===e?void 0:e.getId())===q}function pe(){var e;return null===(e=null==I?void 0:I.getPage())||void 0===e?void 0:e.slides[0]}function ge(){const e=pe();return e?e.triggerEl||U("triggerEl"):void 0}function ve(e){var t,n;const o=null===(n=null===(t=e.panzoomRef)||void 0===t?void 0:t.getWrapper())||void 0===n?void 0:n.getBoundingClientRect(),i=null==o?void 0:o.width,s=null==o?void 0:o.height;if(!i||!s)return;const l=e.thumbEl;if(!l)return;const r=l.getBoundingClientRect();let a=r.width,c=r.height,u=r.left,d=r.top;if(!r||!a||!c)return;if(!(e=>{const t=e.getBoundingClientRect(),n=e.closest("[style]"),o=null==n?void 0:n.parentElement;if(n&&n.style.transform&&o){const e=o.getBoundingClientRect();if(t.left<e.left||t.left>e.left+e.width-t.width)return!1;if(t.top<e.top||t.top>e.top+e.height-t.height)return!1}const i=Math.max(document.documentElement.clientHeight,window.innerHeight),s=Math.max(document.documentElement.clientWidth,window.innerWidth);return!(t.bottom<0||t.top-i>=0||t.right<0||t.left-s>=0)})(l))return;if(l instanceof HTMLImageElement){const e=window.getComputedStyle(l).getPropertyValue("object-fit");if("contain"===e||"scale-down"===e){const{width:t,height:n}=((e,t,n,o,i="contain")=>{if("contain"===i||e>n||t>o){const i=n/e,s=o/t,l=Math.min(i,s);e*=l,t*=l}return{width:e,height:t}})(l.naturalWidth,l.naturalHeight,a,c,e);u+=.5*(a-t),d+=.5*(c-n),a=t,c=n}}if(Math.abs(i/s-a/c)>.1)return;return{x:u+.5*a-(o.left+.5*i),y:d+.5*c-(o.top+.5*s),scale:a/i}}function ye(){H&&clearTimeout(H),H=void 0,document.removeEventListener("mousemove",ae)}function he(){if(W)return;if(H)return;const e=U("idle");e&&(H=setTimeout(be,e))}function be(){w&&(ye(),c(w,"is-idle"),document.addEventListener("mousemove",ae),W=!0)}function Ee(){W&&(xe(),he())}function xe(){ye(),null==w||w.classList.remove("is-idle"),W=!1}function we(e,t){var n,o,i,s,r,a;if(B===k.Closing||B===k.Destroyed)return;const c=new Event("shouldClose",{bubbles:!0,cancelable:!0});if(Y("shouldClose",c,e),c.defaultPrevented)return;if(ye(),e){if(e.defaultPrevented)return;e.cancelable&&e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation()}if(B=k.Closing,I){null===(n=I.getGestures())||void 0===n||n.destroy(),null===(o=I.getTween())||void 0===o||o.pause();const e=pe(),t=null==e?void 0:e.panzoomRef;e&&t&&l(t.getOptions(),{clickAction:!1,wheelAction:!1,bounds:!1,minScale:0,maxScale:1/0});for(const e of I.getSlides())null===(s=null===(i=e.panzoomRef)||void 0===i?void 0:i.getGestures())||void 0===s||s.destroy(),null===(a=null===(r=e.panzoomRef)||void 0===r?void 0:r.getTween())||void 0===a||a.pause()}const u=null==I?void 0:I.getPlugins().fullscreen;u&&u.inFullscreen()?Promise.resolve(u.exit()).then((()=>{setTimeout((()=>{Le(e,t)}),150)})):Le(e,t)}function Le(e,t){var n,o,i,s,l;if(B!==k.Closing)return;if(Y("close",e),U("placeFocusBack")){const e=ge();!e||(l=e.getBoundingClientRect()).bottom>0&&l.right>0&&l.left<(window.innerWidth||document.documentElement.clientWidth)&&l.top<(window.innerHeight||document.documentElement.clientHeight)||e.scrollIntoView({behavior:"instant",block:"center",inline:"center"})}U("fadeEffect")&&(null==w||w.classList.remove("is-ready"),null==w||w.classList.add("is-hiding")),null==w||w.classList.add("is-closing");const r=pe(),a=null==r?void 0:r.panzoomRef,c=null===(n=null==r?void 0:r.panzoomRef)||void 0===n?void 0:n.getTween(),d=t||U("hideClass");let f=!1,m=!1;if(I&&r&&a&&c){let e;U("zoomEffect")&&((null===(i=null===(o=I.getTween())||void 0===o?void 0:o.getCurrentVelocities())||void 0===i?void 0:i.pos)||0)<700&&1===r.state&&(e=ve(r)),e&&(f=!0,I.on("refresh",(()=>{const e=ve(r);e&&c.to(Object.assign(Object.assign({},u),e))})),c.easing(L.Easings.EaseOut).duration(350).from(Object.assign({},a.getTransform())).to(Object.assign(Object.assign({},u),e)).start())}const p=(null==r?void 0:r.htmlEl)||(null===(s=null==r?void 0:r.panzoomRef)||void 0===s?void 0:s.getWrapper());p&&A(p),!f&&d&&p&&(m=!0,M(p,d,(()=>{je()}))),f||m?setTimeout((()=>{je()}),350):je()}function je(){var e,t,n,o,i;if(B===k.Destroyed)return;B=k.Destroyed,document.body.removeEventListener("click",ue),document.body.removeEventListener("keydown",ce,{passive:!1,capture:!0});const l=ge();Y("destroy"),null===(t=null===(e=U("sync"))||void 0===e?void 0:e.getPlugins().Autoplay)||void 0===t||t.resume(),null===(o=null===(n=U("sync"))||void 0===n?void 0:n.getPlugins().Autoscroll)||void 0===o||o.resume(),r instanceof HTMLDialogElement&&r.close(),null===(i=null==I?void 0:I.getContainer())||void 0===i||i.classList.remove("is-idle"),null==I||I.destroy();for(const e of Object.values(V))null==e||e.destroy();if(V={},null==r||r.remove(),r=void 0,w=void 0,I=void 0,O.delete(q),!O.size&&(s(!1),document.documentElement.classList.remove(R),U("placeFocusBack")))try{null==l||l.focus({preventScroll:!0})}catch(e){}}const Pe={close:we,destroy:je,getCarousel:function(){return I},getContainer:function(){return w},getId:function(){return q},getOptions:function(){return N},getPlugins:function(){return V},getSlide:function(){return pe()},getState:function(){return B},init:function(e=[],t={}){return Z(e,t),Pe},isCurrentSlide:function(e){const t=pe();return!(!e||!t)&&t.index===e.index},isTopMost:function(){return me()},off:function(e,t){return G.has(e)&&G.set(e,G.get(e).filter((e=>e!==t))),Pe},on:function(e,t){return G.set(e,[...G.get(e)||[],t]),Pe},toggleIdle(e){(W||!0===e)&&be(),W&&!1!==e||xe()}};return Pe};const z={Plugins:{Hash:w},version:"6.0.25",openers:new Map,bind:function(e,n,o){if(!r())return;let i=document.body,s="[data-fancybox]",l={};if(t(e)?(i=document.body,s=e,"object"==typeof n&&(l=n||{})):e instanceof Element&&(i=e,t(n)&&(s=n),"object"==typeof o&&(l=o||{})),!(i&&i instanceof Element&&s))return!1;const a=z.openers.get(i)||new Map;if(a.set(s,l),z.openers.set(i,a),1===a.size){i.addEventListener("click",z.fromEvent);for(const e of Object.values(z.Plugins)){const t=e.setup;"function"==typeof t&&t(z)}}return!0},close:function(e=!0,...t){if(e)for(const e of O.values())e.close(...t);else{const e=z.getInstance();e&&e.close(...t)}},destroy:function(){let e;for(;e=z.getInstance();)e.destroy();for(const e of z.openers.keys())e.removeEventListener("click",z.fromEvent);z.openers.clear()},fromEvent:function(e){var t,n,o;if(e.defaultPrevented)return;if(e.button&&0!==e.button)return;if(e.ctrlKey||e.metaKey||e.shiftKey)return;let i=e.composedPath()[0];if(i.closest(".fancybox__container.is-hiding"))return e.preventDefault(),void e.stopPropagation();const s=i.closest("[data-fancybox-delegate]")||void 0;if(s){const e=s.dataset.fancyboxDelegate||"",t=document.querySelectorAll(`[data-fancybox="${e}"]`);i=t[parseInt(s.dataset.fancyboxIndex||"",10)||0]||t[0]}if(!(i&&i instanceof Element))return;let r,a,c={};for(const[e,t]of z.openers)if(t&&e.contains(i))for(const[n,o]of t){let t=null;try{t=i.closest(n)}catch(e){}t&&(i=t,r=e,a=n,l(c,o||{}))}if(!r||!a)return;e.preventDefault();const u=l({},_,{triggerEvent:e,triggerEl:i,delegateEl:s},c),d=u.groupAll,f=u.groupAttr,m=f&&i?i.getAttribute(`${f}`):"";let p=[];const g=null===(t=i.closest(".f-carousel"))||void 0===t?void 0:t.carousel;if(g){const e=[];for(const t of null==g?void 0:g.getSlides()){const n=t.el;n&&(n.matches(a)?e.push(n):e.push(...[].slice.call(n.querySelectorAll(a))))}e.length&&(p=[...e],null===(n=g.getPlugins().Autoplay)||void 0===n||n.pause(),null===(o=g.getPlugins().Autoscroll)||void 0===o||o.pause(),u.sync=g)}else(!i||m||d)&&(p=[].slice.call(r.querySelectorAll(a)));if(i&&!d&&(p=m?p.filter((e=>e.getAttribute(`${f}`)===m)):[i]),!p.length)return;const v=z.getInstance();if(v){const e=v.getOptions().triggerEl;if(e&&p.indexOf(e)>-1)return}return Object.assign({},u.Carousel||{}).rtl&&(p=p.reverse()),i&&(u.startIndex=p.indexOf(i)),z.fromNodes(p,u)},fromNodes:function(e,t){t=l({},_,t||{});const n=[],o=e=>e instanceof HTMLImageElement?e:e instanceof HTMLElement?e.querySelector("img:not([aria-hidden])"):void 0;for(const i of e){const s=i.dataset||{},l=t.delegateEl&&e.indexOf(i)===t.startIndex?t.delegateEl:void 0,r=o(l)||o(i)||void 0,a=s.src||i.getAttribute("href")||i.getAttribute("currentSrc")||i.getAttribute("src")||void 0,c=s.thumb||s.thumbSrc||(null==r?void 0:r.getAttribute("currentSrc"))||(null==r?void 0:r.getAttribute("src"))||(null==r?void 0:r.dataset.lazySrc)||void 0,u={src:a,alt:s.alt||(null==r?void 0:r.getAttribute("alt"))||void 0,thumbSrc:c,thumbEl:r,triggerEl:i,delegateEl:l};for(const e in s){let t=s[e]+"";t="false"!==t&&("true"===t||t),u[e]=t}n.push(u)}return z.show(n,t)},fromSelector:function(e,n,o){let i=document.body,s="",r={};if(t(e)?s=e:e instanceof Element&&(i=e,t(n)&&(s=n),"object"==typeof o&&(r=o||{})),!(i&&i instanceof Element&&s))return;const a=z.openers.get(i);return a?(r=l({},a.get(s)||{},r),r?z.fromNodes(Array.from(i.querySelectorAll(s)),r):void 0):void 0},getCarousel:function(){var e;return(null===(e=z.getInstance())||void 0===e?void 0:e.getCarousel())||void 0},getDefaults:function(){return _},getInstance:function(e){if(e){const t=O.get(e);return t&&t.getState()!==k.Destroyed?t:void 0}return Array.from(O.values()).reverse().find((e=>{if(e.getState()!==k.Destroyed)return e}))||void 0},getSlide:function(){var e;return(null===(e=z.getInstance())||void 0===e?void 0:e.getSlide())||void 0},show:function(e=[],t={}){return I().init(e,t)},unbind:function(e,n){let o=document.body,i="";if(t(e)?i=e:e instanceof Element&&(o=e,t(n)&&(i=n)),o){const e=z.openers.get(o);e&&i&&e.delete(i),(null==e?void 0:e.size)&&i||z.openers.delete(o),o.removeEventListener("click",z.fromEvent)}}};export{g as Arrows,y as Autoplay,d as Carousel,z as Fancybox,k as FancyboxState,x as Fullscreen,b as Html,p as Lazyload,u as PANZOOM_DEFAULT_POS,m as Sync,h as Thumbs,v as Toolbar,E as Video,f as Zoomable};