@mozert-studio/mozert-slider 0.0.0-stage → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,6 @@
1
+ /*!
2
+ * Mozert Swiper-style API v1.0.0 | MIT
3
+ * new Mozert.Swiper('.swiper', { slidesPerView: 3, loop: true, pagination: { el: '.swiper-pagination' } })
4
+ * Load after mozert.min.js. If `window.Swiper` is not defined, it is set to Mozert.Swiper so existing code keeps working.
5
+ */
6
+ ;(function(root,factory){if(typeof define==='function'&&define.amd)define(['mozert'],factory);else if(typeof module==='object'&&module.exports)module.exports=factory(require('./mozert.js'));else factory(root.Mozert);}(typeof self!=='undefined'?self:this,function(Mozert){'use strict';if(!Mozert)throw new Error('Mozert.Swiper needs Mozert loaded first');var isObj=function(v){return v&&typeof v==='object'&&!Array.isArray(v)&&!v.nodeType;};var node=function(v,scope){return!v?null:typeof v==='string'?(scope&&scope.querySelector(v))||document.querySelector(v):v;};var obj=function(v,d){return isObj(v)?v:(v?d||{}:null);};function mapOptions(p,ctx){var o={};if(p.slidesPerView!==undefined){if(p.slidesPerView==='auto')o.variableWidth=true;else{o.slidesToShow=p.slidesPerView;o.variableWidth=false;}}if(p.slidesPerGroup!==undefined)o.slidesToScroll=p.slidesPerGroup;if(p.spaceBetween!==undefined)o.spaceBetween=parseFloat(p.spaceBetween)||0;if(p.loop!==undefined)o.infinite=!!p.loop;if(p.speed!==undefined)o.speed=p.speed;if(p.initialSlide!==undefined)o.initialSlide=p.initialSlide;if(p.direction)o.vertical=p.direction==='vertical';if(p.centeredSlides!==undefined){o.centerMode=!!p.centeredSlides;o.centerPadding='0px';}if(p.autoHeight!==undefined)o.adaptiveHeight=!!p.autoHeight;if(p.allowTouchMove!==undefined){o.draggable=!!p.allowTouchMove;o.touchMove=!!p.allowTouchMove;}if(p.touchRatio!==undefined)o.touchRatio=p.touchRatio;if(p.threshold!==undefined)o.dragThreshold=Math.max(p.threshold,1);if(p.slidesOffsetBefore!==undefined)o.edgePadding=p.slidesOffsetBefore;if(p.a11y!==undefined)o.accessibility=p.a11y!==false;if(p.effect){o.effect=p.effect;['coverflow','cube','flip','cards','creative'].forEach(function(k){if(p[k+'Effect'])o[k+'Effect']=p[k+'Effect'];});}if(p.autoplay){var a=obj(p.autoplay,{});o.autoplay=true;o.autoplaySpeed=a.delay!==undefined?a.delay:3000;o.pauseOnHover=!!a.pauseOnMouseEnter;o.disableOnInteraction=a.disableOnInteraction!==false;o.autoplayReverse=!!a.reverseDirection;o.stopOnLastSlide=!!a.stopOnLastSlide;}else if(p.autoplay===false)o.autoplay=false;if(p.freeMode)o.freeMode=p.freeMode;if(p.mousewheel)o.mousewheel=p.mousewheel;if(p.keyboard)o.globalKeyboard=obj(p.keyboard,{}).enabled===false?false:p.keyboard;if(p.zoom){var z=obj(p.zoom,{});o.zoom={max:z.maxRatio||3,min:z.minRatio||1,toggle:z.toggle!==false};}if(p.parallax)o.parallax=true;if(p.virtual)o.virtual=p.virtual;if(p.hashNavigation)o.hashNavigation=p.hashNavigation;if(p.grid&&p.grid.rows>1){o.rows=p.grid.rows;o.slidesPerRow=1;}if(p.scrollbar){var sb=obj(p.scrollbar,{});o.scrollbar={el:node(sb.el,ctx.el),draggable:!!sb.draggable,hide:!!sb.hide};}if(p.pagination){var pg=obj(p.pagination,{});o.pagination={el:node(pg.el,ctx.el),type:pg.dynamicBullets&&(!pg.type||pg.type==='bullets')?'dynamic':pg.type||'bullets',clickable:pg.clickable!==false,renderBullet:pg.renderBullet,renderFraction:pg.renderFraction,renderCustom:pg.renderCustom,progressbarOpposite:!!pg.progressbarOpposite,dynamicMainBullets:pg.dynamicMainBullets||1};}return o;}var EV={slideChange:'beforeChange',slideChangeTransitionStart:'beforeChange',slideChangeTransitionEnd:'afterChange',transitionEnd:'afterChange',transitionStart:'beforeChange',resize:'setPosition',lazyImageReady:'lazyLoaded',touchEnd:'swipe',sliderMove:'swipe'};var CLS={'mozert-slide':'swiper-slide','mozert-current':'swiper-slide-active','mozert-active':'swiper-slide-visible','mozert-cloned':'swiper-slide-duplicate','mozert-track':'swiper-wrapper','mozert-vertical':'swiper-vertical','mozert-bullet':'swiper-pagination-bullet','mozert-bullet-active':'swiper-pagination-bullet-active','mozert-pagination':'swiper-pagination','mozert-pagination-bullets':'swiper-pagination-bullets','mozert-pagination-fraction':'swiper-pagination-fraction','mozert-pagination-progressbar':'swiper-pagination-progressbar','mozert-pg-fill':'swiper-pagination-progressbar-fill','mozert-pg-current':'swiper-pagination-current','mozert-pg-total':'swiper-pagination-total','mozert-scrollbar':'swiper-scrollbar','mozert-scrollbar-drag':'swiper-scrollbar-drag','mozert-initialized':'swiper-initialized'};function mirror(n){var l=n.classList;if(!l)return;Array.prototype.slice.call(l).forEach(function(c){var m=CLS[c];if(m&&!l.contains(m))l.add(m);});}function mirrorTree(r){mirror(r);var a=r.querySelectorAll('[class*="mozert-"]');for(var i=0;i<a.length;i++)mirror(a[i]);}function Swiper(target,params){if(!(this instanceof Swiper))return new Swiper(target,params);var el=typeof target==='string'?document.querySelector(target):target;if(!el)throw new Error('Swiper: container not found');if(el.swiper)return el.swiper;var p=this.params=Object.assign({slidesPerView:1,spaceBetween:0,speed:300,init:true},params||{});this.el=el;el.swiper=this;this.destroyed=false;this._h={};this.allowSlideNext=true;this.allowSlidePrev=true;this.previousIndex=0;if(p.init!==false)this.init();}var P=Swiper.prototype;P.init=function(){var self=this,p=this.params,el=this.el,i;this._fire('beforeInit');this._nextEl=node(p.navigation&&p.navigation.nextEl,el);this._prevEl=node(p.navigation&&p.navigation.prevEl,el);var o=mapOptions(p,this);o.arrows=!!p.navigation&&!(this._nextEl||this._prevEl)?true:false;o.dots=false;if(p.dir==='rtl'||el.getAttribute('dir')==='rtl'||p.rtl)o.rtl=true;if(p.breakpoints){o.mobileFirst=true;o.responsive=Object.keys(p.breakpoints).map(Number).sort(function(a,b){return a-b;}).map(function(bp){return{breakpoint:bp,settings:mapOptions(p.breakpoints[bp],self)};});}if(p.thumbs&&p.thumbs.swiper)o._thumbs=p.thumbs.swiper;if(p.controller&&p.controller.control)o._control=p.controller.control;var wrap=el.querySelector(':scope > .swiper-wrapper');this._parked=[];if(wrap){Array.prototype.slice.call(el.children).forEach(function(c){if(c!==wrap){self._parked.push([c,c.nextSibling]);el.removeChild(c);}});var kids=Array.prototype.slice.call(wrap.children);el.removeChild(wrap);kids.forEach(function(k){el.appendChild(k);});}this._cleanOpts=o;var m=this.mozert=new Mozert(el,Object.assign({},o));this._parked.forEach(function(pair){el.appendChild(pair[0]);});this._wireNav();this._wireEvents();if(typeof MutationObserver==='function'){this._mo=new MutationObserver(function(recs){recs.forEach(function(r){if(r.type==='attributes')mirror(r.target);else Array.prototype.forEach.call(r.addedNodes,function(n){if(n.nodeType===1)mirrorTree(n);});});});var obsRoots=[el];if(o.pagination&&o.pagination.el)obsRoots.push(o.pagination.el);if(o.scrollbar&&o.scrollbar.el)obsRoots.push(o.scrollbar.el);obsRoots.forEach(function(r){mirrorTree(r);self._mo.observe(r,{subtree:true,childList:true,attributes:true,attributeFilter:['class']});});}['beforeChange','afterChange','reInit'].forEach(function(e){m.on(e,function(){self._neighbours();});});this._neighbours();var other=(p.thumbs&&p.thumbs.swiper)||(p.controller&&p.controller.control);if(other)[].concat(other).forEach(function(t){self._link(t);});if(p.thumbs&&p.thumbs.swiper)this._thumbsSetup(p.thumbs.swiper,p.thumbs.slideThumbActiveClass||'swiper-slide-thumb-active');this.mozert.on('beforeChange',function(s,old,real){self.previousIndex=old;});this._fire('init');this._fire('afterInit');return this;};P._wireNav=function(){var self=this,m=this.mozert,n=this._nextEl,pv=this._prevEl;this._navOff=[];var on=function(e,f){if(e){e.addEventListener('click',f);self._navOff.push(function(){e.removeEventListener('click',f);});}};on(n,function(e){e.preventDefault();if(self.allowSlideNext){m._user();m.next();}});on(pv,function(e){e.preventDefault();if(self.allowSlidePrev){m._user();m.prev();}});var upd=function(){if(n){n.classList.toggle('swiper-button-disabled',!m.s.infinite&&self.isEnd);n.classList.add('swiper-button-next');}if(pv){pv.classList.toggle('swiper-button-disabled',!m.s.infinite&&self.isBeginning);pv.classList.add('swiper-button-prev');}};m.on('beforeChange',upd);m.on('afterChange',upd);m.on('reInit',upd);upd();};P._neighbours=function(){var m=this.mozert;if(!m||!m._units)return;var c=m.current,n=m._units.length;m._units.forEach(function(u,i){u.classList.toggle('swiper-slide-next',n>1&&i===(c+1)%n);u.classList.toggle('swiper-slide-prev',n>1&&i===(c-1+n)%n);});};P._wireEvents=function(){var self=this,on=this.params.on;if(on)Object.keys(on).forEach(function(k){self.on(k,on[k]);});var m=this.mozert;m.on('afterChange',function(){if(self.isEnd)self._fire('reachEnd');if(self.isBeginning)self._fire('reachBeginning');self._fire('slideChangeTransitionEnd');self._fire('transitionEnd');});m.on('beforeChange',function(){self._fire('slideChange');self._fire('slideChangeTransitionStart');self._fire('transitionStart');});['autoplayStart','autoplayStop','autoplayTimeLeft','zoomChange','breakpoint','setPosition','lazyLoaded','swipe'].forEach(function(k){m.on(k,function(){var a=Array.prototype.slice.call(arguments,1);var sw=k==='setPosition'?'resize':k==='lazyLoaded'?'lazyImageReady':k==='swipe'?'sliderMove':k;self._fire.apply(self,[sw].concat(a));});});m.on('destroy',function(){self._fire('destroy');});};P._link=function(other){var self=this;other=other&&other.mozert?other:null;if(!other)return;var lock=false;var sync=function(a,b){a.mozert.on('beforeChange',function(s,o,real){if(lock)return;lock=true;b.slideTo(real);lock=false;});};sync(self,other);sync(other,self);};P._thumbsSetup=function(t,cls){var self=this;var mark=function(){(t.slides||[]).forEach(function(s,i){s.classList.toggle(cls,i===self.realIndex);});};this.mozert.on('beforeChange',mark);mark();(t.slides||[]).forEach(function(s,i){s.addEventListener('click',function(){self.slideTo(i);});});};P.on=function(n,f,prepend){var a=this._h[n]=this._h[n]||[];if(prepend)a.unshift(f);else a.push(f);return this;};P.once=function(n,f){var s=this;var w=function(){s.off(n,w);f.apply(s,arguments);};w._o=f;return this.on(n,w);};P.off=function(n,f){if(!n)this._h={};else if(!f)delete this._h[n];else this._h[n]=(this._h[n]||[]).filter(function(x){return x!==f&&x._o!==f;});return this;};P.emit=function(n){return this._fire.apply(this,arguments);};P._fire=function(n){var a=Array.prototype.slice.call(arguments,1),s=this;(this._h[n]||[]).slice().forEach(function(f){f.apply(s,[s].concat(a));});(this._h['*']||[]).slice().forEach(function(f){f.apply(s,[n,s].concat(a));});return this;};P.slideTo=function(i,speed,run){var m=this.mozert;if(speed===0)m.goTo(i,true);else m.goTo(i);return this;};P.slideToLoop=P.slideTo;P.slideNext=function(speed){this.mozert.next();return this;};P.slidePrev=function(speed){this.mozert.prev();return this;};P.slideReset=function(){this.mozert._snapBack();return this;};P.update=P.updateSlides=P.updateSize=P.updateSlidesClasses=P.updateProgress=function(){this.mozert.refresh();return this;};P.enable=function(){this.mozert.setOption('draggable',true);return this;};P.disable=function(){this.mozert.setOption('draggable',false);return this;};P.changeDirection=function(d){this.mozert.setOption('vertical',d==='vertical');return this;};P.destroy=function(deleteInstance,clean){if(this.destroyed)return;(this._navOff||[]).forEach(function(f){f();});if(this._mo)this._mo.disconnect();this.mozert.destroy();this.destroyed=true;this._fire('destroy');if(deleteInstance!==false)delete this.el.swiper;};var toNode=function(h){if(typeof h==='string'){var d=document.createElement('div');d.innerHTML=h.trim();return d.firstElementChild||d;}return h;};P.appendSlide=function(s){var m=this.mozert;[].concat(s).forEach(function(x){m.add(toNode(x));});return this;};P.prependSlide=function(s){var m=this.mozert;[].concat(s).reverse().forEach(function(x){m.add(toNode(x),true);});return this;};P.addSlide=function(i,s){var m=this.mozert;if(i<=0)return this.prependSlide(s);[].concat(s).forEach(function(x,k){m.add(toNode(x),i-1+k);});return this;};P.removeSlide=function(i){var m=this.mozert;(Array.isArray(i)?i.slice().sort(function(a,b){return b-a;}):[i]).forEach(function(k){m.remove(k);});return this;};P.removeAllSlides=function(){this.mozert.removeAll();return this;};var def=function(k,g){Object.defineProperty(P,k,{get:g,configurable:true});};def('activeIndex',function(){return this.mozert.currentSlide();});def('realIndex',function(){return this.mozert.currentSlide();});def('slides',function(){return this.mozert._units.slice();});def('wrapperEl',function(){return this.mozert.track;});def('isBeginning',function(){var m=this.mozert;return!m.s.infinite&&m.current<=0;});def('isEnd',function(){var m=this.mozert;return!m.s.infinite&&m.current>=m.maxIndex;});def('width',function(){return this.mozert.list.clientWidth;});def('height',function(){return this.mozert.list.clientHeight;});def('translate',function(){return this.mozert._cur;});def('progress',function(){var m=this.mozert;return m.maxIndex?Math.max(0,Math.min(1,m._pvFromT(m._cur)/m.maxIndex)):0;});def('autoplay',function(){var m=this.mozert;return{running:m.isPlaying(),start:function(){m.play();return true;},stop:function(){m.pause();return true;},pause:function(){m.pause();},resume:function(){m.play();}};});def('zoom',function(){var z=this.mozert.zoom;return z?{in:z.in,out:z.out,toggle:z.toggle,scale:z.scale}:undefined;});def('virtual',function(){return this.mozert.virtual;});Swiper.use=function(){return Swiper;};Swiper.defaults={};Swiper.version=Mozert.version;Swiper.default=Swiper;Mozert.Swiper=Swiper;if(typeof window!=='undefined'&&!window.Swiper)window.Swiper=Swiper;return Swiper;}));
package/package.json CHANGED
@@ -1,6 +1,124 @@
1
1
  {
2
2
  "name": "@mozert-studio/mozert-slider",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
3
+ "version": "1.1.1",
4
+ "description": "Mozert Slider: a lightweight, dependency-free JavaScript slider and carousel plugin for React, Vue, jQuery and plain HTML. Touch, responsive, accessible, with thumbnail gallery, lightbox, hover magnifier, scroll-driven mode, 3D coverflow, parallax and zoom.",
5
+ "keywords": [
6
+ "mozert",
7
+ "mozert-slider",
8
+ "mozert-studio",
9
+ "slider",
10
+ "carousel",
11
+ "image-slider",
12
+ "image-carousel",
13
+ "javascript-slider",
14
+ "javascript-carousel",
15
+ "slider-plugin",
16
+ "carousel-plugin",
17
+ "jquery-plugin",
18
+ "vanilla-js",
19
+ "dependency-free",
20
+ "lightweight",
21
+ "typescript",
22
+ "touch-slider",
23
+ "swipe",
24
+ "responsive-slider",
25
+ "responsive-carousel",
26
+ "mobile-slider",
27
+ "slideshow",
28
+ "image-gallery",
29
+ "product-gallery",
30
+ "product-slider",
31
+ "thumbnails",
32
+ "lightbox",
33
+ "image-zoom",
34
+ "magnifier",
35
+ "hover-zoom",
36
+ "scroll-driven",
37
+ "scroll-slider",
38
+ "parallax",
39
+ "coverflow",
40
+ "3d-carousel",
41
+ "3d-slider",
42
+ "cube-effect",
43
+ "fade-effect",
44
+ "expanding-cards",
45
+ "card-slider",
46
+ "hero-slider",
47
+ "banner-slider",
48
+ "testimonial-slider",
49
+ "logo-carousel",
50
+ "marquee",
51
+ "infinite-slider",
52
+ "autoplay",
53
+ "center-mode",
54
+ "vertical-slider",
55
+ "rtl",
56
+ "accessible",
57
+ "a11y",
58
+ "lazy-loading",
59
+ "react-slider",
60
+ "react-carousel",
61
+ "vue-slider",
62
+ "vue-carousel",
63
+ "nextjs",
64
+ "nuxt",
65
+ "shopify",
66
+ "magento",
67
+ "hyva",
68
+ "woocommerce",
69
+ "wordpress",
70
+ "ecommerce"
71
+ ],
72
+ "author": "Mozert Studio",
73
+ "license": "MIT",
74
+ "main": "dist/mozert.js",
75
+ "module": "dist/mozert.esm.mjs",
76
+ "unpkg": "dist/mozert.min.js",
77
+ "jsdelivr": "dist/mozert.min.js",
78
+ "style": "dist/mozert.min.css",
79
+ "types": "types/mozert.d.ts",
80
+ "exports": {
81
+ ".": {
82
+ "types": "./types/mozert.d.ts",
83
+ "import": "./dist/mozert.esm.mjs",
84
+ "require": "./dist/mozert.js"
85
+ },
86
+ "./core": "./dist/mozert.core.js",
87
+ "./jquery": "./dist/mozert.jquery.js",
88
+ "./css": "./dist/mozert.min.css",
89
+ "./theme.css": "./dist/mozert-theme.min.css",
90
+ "./dist/*": "./dist/*"
91
+ },
92
+ "files": [
93
+ "dist",
94
+ "types",
95
+ "README.md",
96
+ "LICENSE"
97
+ ],
98
+ "sideEffects": [
99
+ "*.css"
100
+ ],
101
+ "directories": {
102
+ "doc": "site",
103
+ "test": "tests"
104
+ },
105
+ "scripts": {
106
+ "dev": "node scripts/dev.mjs",
107
+ "start": "node scripts/dev.mjs",
108
+ "build": "node scripts/build.mjs",
109
+ "test": "node tests/run.cjs dist/mozert.min.js && node tests/extra.cjs dist/mozert.min.js && node tests/labels.cjs dist/mozert.min.js && node tests/modules.cjs dist/mozert.min.js && node tests/features.cjs dist/mozert.min.js && node tests/jquery.cjs && node tests/packages.cjs && node tests/site.cjs",
110
+ "prepublishOnly": "npm run build",
111
+ "site": "node scripts/site.mjs"
112
+ },
113
+ "homepage": "https://mozert-slider.netlify.app/",
114
+ "repository": {
115
+ "type": "git",
116
+ "url": "git+https://github.com/mozert-studio/mozert-slider.git"
117
+ },
118
+ "bugs": {
119
+ "url": "https://github.com/mozert-studio/mozert-slider/issues"
120
+ },
121
+ "publishConfig": {
122
+ "access": "public"
123
+ }
6
124
  }
@@ -0,0 +1,183 @@
1
+ export type Easing = 'linear' | 'swing' | 'easeInQuad' | 'easeOutQuad' | 'easeInOutQuad' | 'easeInCubic' | 'easeOutCubic' | 'easeInOutCubic' | 'easeInOutQuart' | ((t: number) => number);
2
+ type NodeLike = string | Element | ArrayLike<Element>;
3
+
4
+ export interface MozertOptions {
5
+ /** Slides visible at once; fractional values (2.5) are supported. */
6
+ spaceBetween?: number;
7
+ slideWidth?: number;
8
+ edgePadding?: number | string;
9
+ touchRatio?: number;
10
+ dragThreshold?: number;
11
+ disableOnInteraction?: boolean;
12
+ autoplayReverse?: boolean;
13
+ stopOnLastSlide?: boolean;
14
+ effect?: 'slide' | 'fade' | 'coverflow' | 'cube' | 'flip' | 'cards' | 'creative' | 'expand';
15
+ expandEffect?: { extra?: number };
16
+ coverflowEffect?: { rotate?: number; depth?: number; scale?: number; stretch?: number; modifier?: number; lift?: number; fade?: number };
17
+ cubeEffect?: { perspective?: number };
18
+ flipEffect?: { perspective?: number; limitRotation?: boolean };
19
+ cardsEffect?: { perSlideOffset?: number; perSlideRotate?: number; rotate?: boolean; visible?: number };
20
+ creativeEffect?: { limitProgress?: number; prev?: MozertCreativeStep; next?: MozertCreativeStep };
21
+ freeMode?: boolean | { momentum?: boolean; momentumRatio?: number; sticky?: boolean; minimumVelocity?: number };
22
+ mousewheel?: boolean | { sensitivity?: number; forceToAxis?: boolean; releaseOnEdges?: boolean; thresholdTime?: number };
23
+ globalKeyboard?: boolean | { onlyInViewport?: boolean };
24
+ parallax?: boolean;
25
+ zoom?: boolean | { max?: number; min?: number; toggle?: boolean; step?: number };
26
+ virtual?: { slides: any[]; renderSlide?: (data: any, index: number) => string | Element; addSlidesBefore?: number; addSlidesAfter?: number; cache?: boolean };
27
+ hashNavigation?: boolean | { watchState?: boolean; replaceState?: boolean; prefix?: string };
28
+ scrollbar?: boolean | { el?: string | Element; draggable?: boolean; hide?: boolean };
29
+ pagination?: boolean | MozertPagination;
30
+ marquee?: boolean | { speed?: number; pauseOnHover?: boolean; direction?: 'left' | 'right' };
31
+ videoAutoplay?: boolean | { wait?: boolean; pauseOthers?: boolean; rewind?: boolean };
32
+ fullscreen?: boolean;
33
+ thumbs?: boolean | string | Element | { el?: string | Element; count?: number; position?: 'bottom' | 'top' | 'left' | 'right'; breakpoint?: number; options?: MozertOptions };
34
+ lightbox?: boolean | { zoom?: boolean; loop?: boolean; maxZoom?: number };
35
+ magnifier?: boolean | { zoom?: number; button?: boolean; active?: boolean };
36
+ scrollDriven?: boolean | { step?: number; top?: number | 'center'; offset?: number; speed?: number; fill?: boolean; bottom?: number };
37
+ bleed?: boolean | 'left' | 'right';
38
+ accessibility: boolean;
39
+ adaptiveHeight: boolean;
40
+ appendArrows: NodeLike | null;
41
+ appendDots: NodeLike | null;
42
+ arrows: boolean;
43
+ asNavFor: string | Element | Mozert | null;
44
+ autoplay: boolean;
45
+ autoplaySpeed: number;
46
+ centerMode: boolean;
47
+ centerPadding: string;
48
+ cssEase: string;
49
+ customPaging: ((slider: Mozert, index: number) => string | Element) | null;
50
+ dots: boolean;
51
+ dotsClass: string;
52
+ draggable: boolean;
53
+ easing: Easing;
54
+ edgeFriction: number;
55
+ fade: boolean;
56
+ focusOnSelect: boolean;
57
+ infinite: boolean;
58
+ initialSlide: number;
59
+ lazyLoad: 'ondemand' | 'progressive';
60
+ mobileFirst: boolean;
61
+ nextArrow: string | Element | null;
62
+ pauseOnDotsHover: boolean;
63
+ pauseOnFocus: boolean;
64
+ pauseOnHover: boolean;
65
+ prevArrow: string | Element | null;
66
+ respectReducedMotion: boolean;
67
+ respondTo: 'window' | 'slider' | 'min';
68
+ responsive: MozertBreakpoint[] | null;
69
+ rows: number;
70
+ rtl: boolean;
71
+ slide: string;
72
+ slidesPerRow: number;
73
+ slidesToScroll: number;
74
+ slidesToShow: number;
75
+ speed: number;
76
+ swipe: boolean;
77
+ swipeToSlide: boolean;
78
+ touchMove: boolean;
79
+ touchThreshold: number;
80
+ useCSS: boolean;
81
+ useTransform: boolean;
82
+ variableWidth: boolean;
83
+ vertical: boolean;
84
+ verticalSwiping: boolean;
85
+ waitForAnimate: boolean;
86
+ zIndex: number;
87
+ on: Partial<{ [K in keyof MozertEvents]: (slider: Mozert, ...args: MozertEvents[K]) => void }> | null;
88
+ }
89
+
90
+ export interface MozertBreakpoint {
91
+ breakpoint: number;
92
+ settings: Partial<MozertOptions> | 'destroy';
93
+ }
94
+
95
+ export interface MozertEvents {
96
+ init: [];
97
+ reInit: [];
98
+ beforeChange: [current: number, next: number];
99
+ afterChange: [current: number];
100
+ breakpoint: [breakpoint: number | null];
101
+ edge: [direction: 'left' | 'right' | 'up' | 'down'];
102
+ swipe: [direction: 'left' | 'right' | 'up' | 'down'];
103
+ setPosition: [];
104
+ lazyLoaded: [image: HTMLImageElement, src: string];
105
+ lazyLoadError: [image: HTMLImageElement, src: string];
106
+ destroy: [];
107
+ }
108
+
109
+ export interface MozertState {
110
+ active: boolean;
111
+ current: number;
112
+ count: number;
113
+ total: number;
114
+ inner: number;
115
+ clones: number;
116
+ offset: number;
117
+ animating: boolean;
118
+ canNavigate: boolean;
119
+ playing: boolean;
120
+ breakpoint: number | null;
121
+ }
122
+
123
+ export default class Mozert {
124
+ /** Present when the lightbox option is on. */
125
+ lightbox?: { open(index: number): void; close(): void; readonly isOpen: boolean };
126
+ /** Present when magnifier is on. */
127
+ magnifier?: { enable(): void; disable(): void; toggle(): void; isOn(): boolean };
128
+ /** Present when scrollDriven is on. */
129
+ scrollDriven?: { update(): void };
130
+ static readonly version: string;
131
+ static readonly defaults: MozertOptions;
132
+ static get(el: string | Element): Mozert | null;
133
+ static use(module: { name: string; defaults?: object; create(slider: Mozert): { destroy(): void } | null }): typeof Mozert;
134
+ static initAll(root?: ParentNode, options?: Partial<MozertOptions>): Mozert[];
135
+
136
+ constructor(el: string | Element, options?: Partial<MozertOptions>);
137
+
138
+ readonly el: Element;
139
+ readonly track: HTMLElement;
140
+ readonly list: HTMLElement;
141
+
142
+ next(): this;
143
+ prev(): this;
144
+ goTo(index: number, instant?: boolean): this;
145
+ currentSlide(): number;
146
+ slideCount(): number;
147
+ play(): this;
148
+ pause(): this;
149
+ isPlaying(): boolean;
150
+ add(markup: string | Element, index?: number | boolean, addBefore?: boolean): this | false;
151
+ remove(index?: number | boolean, removeBefore?: boolean): this | false;
152
+ removeAll(): this;
153
+ filter(selectorOrFn: string | ((this: Element, index: number, el: Element) => boolean)): this;
154
+ unfilter(): this;
155
+ getSlides(): Element[];
156
+ getOption<K extends keyof MozertOptions>(name: K): MozertOptions[K];
157
+ setOption<K extends keyof MozertOptions>(name: K, value: MozertOptions[K], refresh?: boolean): this;
158
+ setOption(options: Partial<MozertOptions>, refresh?: boolean): this;
159
+ getState(): MozertState;
160
+ refresh(): this;
161
+ setPosition(): this;
162
+ destroy(): this;
163
+
164
+ on<K extends keyof MozertEvents>(name: K, fn: (slider: Mozert, ...args: MozertEvents[K]) => void): this;
165
+ one<K extends keyof MozertEvents>(name: K, fn: (slider: Mozert, ...args: MozertEvents[K]) => void): this;
166
+ once<K extends keyof MozertEvents>(name: K, fn: (slider: Mozert, ...args: MozertEvents[K]) => void): this;
167
+ off(name?: keyof MozertEvents, fn?: (...args: any[]) => void): this;
168
+ }
169
+
170
+ export { Mozert };
171
+
172
+ export interface MozertCreativeStep { translate?: (string | number)[]; rotate?: number[]; opacity?: number; scale?: number; zIndex?: number }
173
+ export interface MozertPagination {
174
+ el?: string | Element;
175
+ type?: 'bullets' | 'dynamic' | 'fraction' | 'progressbar' | 'custom';
176
+ clickable?: boolean;
177
+ dynamicMainBullets?: number;
178
+ progressbarOpposite?: boolean;
179
+ renderBullet?: (index: number, className: string) => string;
180
+ renderFraction?: (currentClass: string, totalClass: string, current: number, total: number) => string;
181
+ renderCustom?: (slider: Mozert, current: number, total: number) => string;
182
+ }
183
+