UNPKG

@fancyapps/ui

Version:

Robust JavaScript UI Component Library

2 lines 2.2 kB
/*! 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={syncOnChange:!1,syncOnClick:!0,syncOnHover:!1};e.Sync=()=>{let e,r;function i(){let r=e?.getOptions().Sync;return t(r)?{...n,...r}:n}function a(t){!e||!t||(r=t,e.getOptions().classes={...e.getOptions().classes,isSelected:``},e.getOptions().initialSlide=r.getPage()?.slides[0]?.index||0,i().syncOnChange&&e.on(`change`,u),i().syncOnClick&&e.on(`click`,f),i().syncOnHover&&e.getViewport()?.addEventListener(`mouseover`,p),o())}function o(){!e||!r||(e.on(`ready`,l),e.on(`refresh`,m),r.on(`change`,d),r.on(`filter`,h))}function s(){e?.off(`ready`,l),e?.off(`refresh`,m),e?.off(`change`,u),e?.off(`click`,f),e?.getViewport()?.removeEventListener(`mouseover`,p),r?.off(`change`,d),r?.off(`filter`,h),r=void 0}function c(){let t=i().target;e&&t&&a(t)}function l(){g()}function u(){if(e&&r){let t=e.getPage()?.slides||[],n=r.getPageIndex(t[0].index||0);n>-1&&r.goTo(n,e.hasNavigated()?void 0:{tween:!1,transition:!1}),g()}}function d(){if(e&&r){let t=e.getPageIndex(r.getPage()?.slides[0].index||0);t>-1&&e.goTo(t,r.hasNavigated()?void 0:{tween:!1,transition:!1}),g()}}function f(t,n){if(!e||!r||e.getTween()?.isRunning())return;let i=e?.getOptions().classes.slide;if(!i)return;let a=n.target.closest(`.${i}`);if(a){let e=parseInt(a.getAttribute(`index`)||``)||0,t=r.getPageIndex(e);r.goTo(t)}}function p(t){e&&f(e,t)}function m(){if(e&&r){let t=e.getPageIndex(r.getPage()?.slides[0].index||0);t>-1&&e.goTo(t,{tween:!1,transition:!1}),g()}}function h(t,n){e&&r&&(e.filter(n),d())}function g(){if(!r)return;let t=r.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,e.on(`initSlides`,c)},destroy:function(){s(),e?.off(`initSlides`,c),e=void 0},getTarget:function(){return r}}}});