@fancyapps/ui
Version:
Robust JavaScript UI Component Library
1 lines • 2.13 kB
JavaScript
!/*! License details at fancyapps.com/license */function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).window=e.window||{})}(this,function(e){"use strict";let t=e=>"object"==typeof e&&null!==e&&e.constructor===Object&&"[object Object]"===Object.prototype.toString.call(e),n={syncOnChange:!1,syncOnClick:!0,syncOnHover:!1};e.Sync=()=>{let e,i;function o(){let i=e?.getOptions().Sync;return t(i)?{...n,...i}:n}function s(){let t=o().target;e&&t&&e&&t&&(i=t,e.getOptions().classes={...e.getOptions().classes,isSelected:""},e.getOptions().initialSlide=i.getPage()?.slides[0]?.index||0,o().syncOnChange&&e.on("change",c),o().syncOnClick&&e.on("click",g),o().syncOnHover&&e.getViewport()?.addEventListener("mouseover",r),e&&i&&(e.on("ready",f),e.on("refresh",d),i.on("change",l),i.on("filter",a)))}function f(){u()}function c(){if(e&&i){let t=e.getPage()?.slides||[],n=i.getPageIndex(t[0].index||0);n>-1&&i.goTo(n,e.hasNavigated()?void 0:{tween:!1,transition:!1}),u()}}function l(){if(e&&i){let t=e.getPageIndex(i.getPage()?.slides[0].index||0);t>-1&&e.goTo(t,i.hasNavigated()?void 0:{tween:!1,transition:!1}),u()}}function g(t,n){if(!e||!i||e.getTween()?.isRunning())return;let o=e?.getOptions().classes.slide;if(!o)return;let s=o?n.target.closest(`.${o}`):null;if(s){let e=parseInt(s.getAttribute("index")||"")||0,t=i.getPageIndex(e);i.goTo(t)}}function r(t){e&&g(e,t)}function d(){if(e&&i){let t=e.getPageIndex(i.getPage()?.slides[0].index||0);t>-1&&e.goTo(t,{tween:!1,transition:!1}),u()}}function a(t,n){e&&i&&(e.filter(n),l())}function u(){if(!i)return;let t=i.getPage()?.slides[0]?.index||0;for(let n of e?.getSlides()||[])n.el?.classList.toggle("is-selected",n.index===t)}return{init:function(t){(e=t).on("initSlides",s)},destroy:function(){e?.off("ready",f),e?.off("refresh",d),e?.off("change",c),e?.off("click",g),e?.getViewport()?.removeEventListener("mouseover",r),i?.off("change",l),i?.off("filter",a),i=void 0,e?.off("initSlides",s),e=void 0},getTarget:function(){return i}}}});