bulma-extensions
Advanced tools
Comparing version 1.0.20 to 1.0.21
@@ -0,1 +1,6 @@ | ||
<a name="2.0.7"></a> | ||
## [2.0.7](https://github.com/Wikiki/bulma-carousel/compare/2.0.6...2.0.7) (2018-05-11) | ||
<a name="2.0.6"></a> | ||
@@ -2,0 +7,0 @@ ## [2.0.6](https://github.com/Wikiki/bulma-carousel/compare/2.0.5...2.0.6) (2018-05-11) |
@@ -133,138 +133,2 @@ (function (global, factory) { | ||
return EventEmitter; | ||
}))); | ||
(function (global, factory) { | ||
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : | ||
typeof define === 'function' && define.amd ? define('bulmaCarousel', factory) : | ||
(global.bulmaCarousel = factory()); | ||
}(this, (function () { 'use strict'; | ||
class EventEmitter { | ||
constructor(listeners = []) { | ||
this._listeners = new Map(listeners); | ||
this._middlewares = new Map(); | ||
} | ||
listenerCount(eventName) { | ||
if (!this._listeners.has(eventName)) { | ||
return 0; | ||
} | ||
const eventListeners = this._listeners.get(eventName); | ||
return eventListeners.length; | ||
} | ||
removeListeners(eventName = null, middleware = false) { | ||
if (eventName !== null) { | ||
if (Array.isArray(eventName)) { | ||
name.forEach(e => this.removeListeners(e, middleware)); | ||
} else { | ||
this._listeners.delete(eventName); | ||
if (middleware) { | ||
this.removeMiddleware(eventName); | ||
} | ||
} | ||
} else { | ||
this._listeners = new Map(); | ||
} | ||
} | ||
middleware(eventName, fn) { | ||
if (Array.isArray(eventName)) { | ||
name.forEach(e => this.middleware(e, fn)); | ||
} else { | ||
if (!Array.isArray(this._middlewares.get(eventName))) { | ||
this._middlewares.set(eventName, []); | ||
} | ||
(this._middlewares.get(eventName)).push(fn); | ||
} | ||
} | ||
removeMiddleware(eventName = null) { | ||
if (eventName !== null) { | ||
if (Array.isArray(eventName)) { | ||
name.forEach(e => this.removeMiddleware(e)); | ||
} else { | ||
this._middlewares.delete(eventName); | ||
} | ||
} else { | ||
this._middlewares = new Map(); | ||
} | ||
} | ||
on(name, callback, once = false) { | ||
if (Array.isArray(name)) { | ||
name.forEach(e => this.on(e, callback)); | ||
} else { | ||
name = name.toString(); | ||
const split = name.split(/,|, | /); | ||
if (split.length > 1) { | ||
split.forEach(e => this.on(e, callback)); | ||
} else { | ||
if (!Array.isArray(this._listeners.get(name))) { | ||
this._listeners.set(name, []); | ||
} | ||
(this._listeners.get(name)).push({once: once, callback: callback}); | ||
} | ||
} | ||
} | ||
once(name, callback) { | ||
this.on(name, callback, true); | ||
} | ||
emit(name, data, silent = false) { | ||
name = name.toString(); | ||
let listeners = this._listeners.get(name); | ||
let middlewares = null; | ||
let doneCount = 0; | ||
let execute = silent; | ||
if (Array.isArray(listeners)) { | ||
listeners.forEach((listener, index) => { | ||
// Start Middleware checks unless we're doing a silent emit | ||
if (!silent) { | ||
middlewares = this._middlewares.get(name); | ||
// Check and execute Middleware | ||
if (Array.isArray(middlewares)) { | ||
middlewares.forEach(middleware => { | ||
middleware(data, (newData = null) => { | ||
if (newData !== null) { | ||
data = newData; | ||
} | ||
doneCount++; | ||
}, name); | ||
}); | ||
if (doneCount >= middlewares.length) { | ||
execute = true; | ||
} | ||
} else { | ||
execute = true; | ||
} | ||
} | ||
// If Middleware checks have been passed, execute | ||
if (execute) { | ||
if (listener.once) { | ||
listeners[index] = null; | ||
} | ||
listener.callback(data); | ||
} | ||
}); | ||
// Dirty way of removing used Events | ||
while (listeners.indexOf(null) !== -1) { | ||
listeners.splice(listeners.indexOf(null), 1); | ||
} | ||
} | ||
} | ||
} | ||
class Carousel extends EventEmitter { | ||
@@ -271,0 +135,0 @@ constructor(selector) { |
@@ -1,1 +0,1 @@ | ||
(function(a,b){'object'==typeof exports&&'undefined'!=typeof module?module.exports=b():'function'==typeof define&&define.amd?define('bulmaCarousel',b):a.bulmaCarousel=b()})(this,function(){'use strict';return class{constructor(a=[]){this._listeners=new Map(a),this._middlewares=new Map}listenerCount(a){if(!this._listeners.has(a))return 0;const b=this._listeners.get(a);return b.length}removeListeners(a=null,b=!1){null===a?this._listeners=new Map:Array.isArray(a)?name.forEach((a)=>this.removeListeners(a,b)):(this._listeners.delete(a),b&&this.removeMiddleware(a))}middleware(a,b){Array.isArray(a)?name.forEach((a)=>this.middleware(a,b)):(!Array.isArray(this._middlewares.get(a))&&this._middlewares.set(a,[]),this._middlewares.get(a).push(b))}removeMiddleware(a=null){null===a?this._middlewares=new Map:Array.isArray(a)?name.forEach((a)=>this.removeMiddleware(a)):this._middlewares.delete(a)}on(a,b,c=!1){if(Array.isArray(a))a.forEach((a)=>this.on(a,b));else{a=a.toString();const d=a.split(/,|, | /);1<d.length?d.forEach((a)=>this.on(a,b)):(!Array.isArray(this._listeners.get(a))&&this._listeners.set(a,[]),this._listeners.get(a).push({once:c,callback:b}))}}once(a,b){this.on(a,b,!0)}emit(a,b,c=!1){a=a.toString();let d=this._listeners.get(a),e=null,f=0,g=c;if(Array.isArray(d))for(d.forEach((h,i)=>{c||(e=this._middlewares.get(a),Array.isArray(e)?(e.forEach((c)=>{c(b,(a=null)=>{null!==a&&(b=a),f++},a)}),f>=e.length&&(g=!0)):g=!0),g&&(h.once&&(d[i]=null),h.callback(b))});-1!==d.indexOf(null);)d.splice(d.indexOf(null),1)}}}),function(a,b){'object'==typeof exports&&'undefined'!=typeof module?module.exports=b():'function'==typeof define&&define.amd?define('bulmaCarousel',b):a.bulmaCarousel=b()}(this,function(){'use strict';class a{constructor(a=[]){this._listeners=new Map(a),this._middlewares=new Map}listenerCount(a){if(!this._listeners.has(a))return 0;const b=this._listeners.get(a);return b.length}removeListeners(a=null,b=!1){null===a?this._listeners=new Map:Array.isArray(a)?name.forEach((a)=>this.removeListeners(a,b)):(this._listeners.delete(a),b&&this.removeMiddleware(a))}middleware(a,b){Array.isArray(a)?name.forEach((a)=>this.middleware(a,b)):(!Array.isArray(this._middlewares.get(a))&&this._middlewares.set(a,[]),this._middlewares.get(a).push(b))}removeMiddleware(a=null){null===a?this._middlewares=new Map:Array.isArray(a)?name.forEach((a)=>this.removeMiddleware(a)):this._middlewares.delete(a)}on(a,b,c=!1){if(Array.isArray(a))a.forEach((a)=>this.on(a,b));else{a=a.toString();const d=a.split(/,|, | /);1<d.length?d.forEach((a)=>this.on(a,b)):(!Array.isArray(this._listeners.get(a))&&this._listeners.set(a,[]),this._listeners.get(a).push({once:c,callback:b}))}}once(a,b){this.on(a,b,!0)}emit(a,b,c=!1){a=a.toString();let d=this._listeners.get(a),e=null,f=0,g=c;if(Array.isArray(d))for(d.forEach((h,i)=>{c||(e=this._middlewares.get(a),Array.isArray(e)?(e.forEach((c)=>{c(b,(a=null)=>{null!==a&&(b=a),f++},a)}),f>=e.length&&(g=!0)):g=!0),g&&(h.once&&(d[i]=null),h.callback(b))});-1!==d.indexOf(null);)d.splice(d.indexOf(null),1)}}class b extends a{constructor(a){if(super(),this._clickEvents=['touchstart','click'],this.carousel='string'==typeof a?document.querySelector(a):a,!this.carousel)throw new Error('An invalid selector or non-DOM node has been provided.');this.init()}static attach(a='.carousel, .hero-carousel'){let c=[];const d=document.querySelectorAll(a);return[].forEach.call(d,(a)=>{setTimeout(()=>{c.push(new b(a))},100)}),c}init(){let a=!1;if(this.computedStyle=window.getComputedStyle(this.carousel),this.carouselContainer=this.carousel.querySelector('.carousel-container'),this.carouselItems=this.carousel.querySelectorAll('.carousel-item'),this.carouselItemsArray=Array.from(this.carouselItems),this.carousel.dataset.size&&!this.carousel.classList.contains('carousel-animate-fade')&&(this.carouselWidth=parseInt(this.computedStyle.getPropertyValue('width'),10),this.carousel.dataset.size>=this.carouselItemsArray.length?(this.offset=0,a=!0):this.offset=this.carouselWidth/this.carousel.dataset.size,this.carouselContainer.style.left=0-this.offset+'px',this.carouselContainer.style.transform=`translateX(${this.offset}px)`,[].forEach.call(this.carouselItems,(a)=>{a.style.flexBasis=`${this.offset}px`})),this._initNavigation(a),this.carousel.classList.contains('carousel-animate-fade')&&this.carouselItems.length){let a=this.carouselItems[0].querySelector('img');a.onload=()=>{this.carouselContainer.style.height=a.naturalWidth+'px'}}this.currentItem={carousel:this.carousel,node:null,pos:-1},this.currentItem.node=this.carousel.querySelector('.carousel-item.is-active'),this.currentItem.pos=this.currentItem.node?this.carouselItemsArray.indexOf(this.currentItem.node):-1,this.currentItem.node||(this.currentItem.node=this.carouselItems[0],this.currentItem.node.classList.add('is-active'),this.currentItem.pos=0),this._setOrder(),this.carousel.dataset.autoplay&&'true'==this.carousel.dataset.autoplay&&this._autoPlay(this.carousel.dataset.delay||5e3),this._bindEvents(),this.emit('carousel:ready',this.currentItem)}_initNavigation(a=!1){this.previousControl=this.carousel.querySelector('.carousel-nav-left'),this.nextControl=this.carousel.querySelector('.carousel-nav-right'),(1>=this.carouselItems.length||a)&&(this.carouselContainer&&(this.carouselContainer.style.left='0'),this.previousControl&&(this.previousControl.style.display='none'),this.nextControl&&(this.nextControl.style.display='none'))}_bindEvents(){this.previousControl&&this._clickEvents.forEach((a)=>{this.previousControl.addEventListener(a,(a)=>{a.preventDefault(),this._slide('previous'),this._autoPlayInterval&&(clearInterval(this._autoPlayInterval),this._autoPlay(this.carousel.dataset.delay||5e3))})}),this.nextControl&&this._clickEvents.forEach((a)=>{this.nextControl.addEventListener(a,(a)=>{a.preventDefault(),this._slide('next'),this._autoPlayInterval&&(clearInterval(this._autoPlayInterval),this._autoPlay(this.carousel.dataset.delay||5e3))})}),this.carousel.addEventListener('touchstart',(a)=>{this._swipeStart(a)}),this.carousel.addEventListener('mousedown',(a)=>{this._swipeStart(a)}),this.carousel.addEventListener('touchend',(a)=>{this._swipeEnd(a)}),this.carousel.addEventListener('mouseup',(a)=>{this._swipeEnd(a)})}_next(a){return a.nextElementSibling?a.nextElementSibling:this.carouselItems[0]}_previous(a){return a.previousElementSibling?a.previousElementSibling:this.carouselItems[this.carouselItems.length-1]}_setOrder(){this.currentItem.node.style.order='1',this.currentItem.node.style.zIndex='1';let a,b,c,d=this.currentItem.node;for(a=b=2,c=this.carouselItemsArray.length;2<=c?b<=c:b>=c;a=2<=c?++b:--b)d=this._next(d),d.style.order=''+a%this.carouselItemsArray.length,d.style.zIndex='0'}_swipeStart(a){this._touch={start:{x:a.clientX,y:a.clientY},end:{x:a.clientX,y:a.clientY}}}_swipeEnd(a){this._touch.end={x:a.clientX,y:a.clientY},this._handleGesture()}_handleGesture(){const a={horizontal:(this._touch.end.x-this._touch.start.x)/parseInt(this.computedStyle.getPropertyValue('width')),vertical:(this._touch.end.y-this._touch.start.y)/parseInt(this.computedStyle.getPropertyValue('height'))};a.horizontal>a.vertical&&.25<a.horizontal&&this._slide('previous'),a.horizontal<a.vertical&&-.25>a.horizontal&&this._slide('next')}_slide(a='next'){var b=Math.abs;this.carouselItems.length&&(this.emit('carousel:slide:before',this.currentItem),this.currentItem.node.classList.remove('is-active'),'previous'===a?(this.currentItem.node=this._previous(this.currentItem.node),!this.carousel.classList.contains('carousel-animate-fade')&&(this.carousel.classList.add('is-reversing'),this.carouselContainer.style.transform=`translateX(${-b(this.offset)}px)`)):(this.currentItem.node=this._next(this.currentItem.node),this.carousel.classList.remove('is-reversing'),this.carouselContainer.style.transform=`translateX(${b(this.offset)}px)`),this.currentItem.node.classList.add('is-active'),this.carousel.classList.remove('carousel-animated'),setTimeout(()=>{this.carousel.classList.add('carousel-animated')},50),this._setOrder(),this.emit('carousel:slide:after',this.currentItem))}_autoPlay(a=5e3){this._autoPlayInterval=setInterval(()=>{this._slide('next')},a)}}return b}); | ||
(function(a,b){'object'==typeof exports&&'undefined'!=typeof module?module.exports=b():'function'==typeof define&&define.amd?define('bulmaCarousel',b):a.bulmaCarousel=b()})(this,function(){'use strict';class a{constructor(a=[]){this._listeners=new Map(a),this._middlewares=new Map}listenerCount(a){if(!this._listeners.has(a))return 0;const b=this._listeners.get(a);return b.length}removeListeners(a=null,b=!1){null===a?this._listeners=new Map:Array.isArray(a)?name.forEach((a)=>this.removeListeners(a,b)):(this._listeners.delete(a),b&&this.removeMiddleware(a))}middleware(a,b){Array.isArray(a)?name.forEach((a)=>this.middleware(a,b)):(!Array.isArray(this._middlewares.get(a))&&this._middlewares.set(a,[]),this._middlewares.get(a).push(b))}removeMiddleware(a=null){null===a?this._middlewares=new Map:Array.isArray(a)?name.forEach((a)=>this.removeMiddleware(a)):this._middlewares.delete(a)}on(a,b,c=!1){if(Array.isArray(a))a.forEach((a)=>this.on(a,b));else{a=a.toString();const d=a.split(/,|, | /);1<d.length?d.forEach((a)=>this.on(a,b)):(!Array.isArray(this._listeners.get(a))&&this._listeners.set(a,[]),this._listeners.get(a).push({once:c,callback:b}))}}once(a,b){this.on(a,b,!0)}emit(a,b,c=!1){a=a.toString();let d=this._listeners.get(a),e=null,f=0,g=c;if(Array.isArray(d))for(d.forEach((h,i)=>{c||(e=this._middlewares.get(a),Array.isArray(e)?(e.forEach((c)=>{c(b,(a=null)=>{null!==a&&(b=a),f++},a)}),f>=e.length&&(g=!0)):g=!0),g&&(h.once&&(d[i]=null),h.callback(b))});-1!==d.indexOf(null);)d.splice(d.indexOf(null),1)}}class b extends a{constructor(a){if(super(),this._clickEvents=['touchstart','click'],this.carousel='string'==typeof a?document.querySelector(a):a,!this.carousel)throw new Error('An invalid selector or non-DOM node has been provided.');this.init()}static attach(a='.carousel, .hero-carousel'){let c=[];const d=document.querySelectorAll(a);return[].forEach.call(d,(a)=>{setTimeout(()=>{c.push(new b(a))},100)}),c}init(){let a=!1;if(this.computedStyle=window.getComputedStyle(this.carousel),this.carouselContainer=this.carousel.querySelector('.carousel-container'),this.carouselItems=this.carousel.querySelectorAll('.carousel-item'),this.carouselItemsArray=Array.from(this.carouselItems),this.carousel.dataset.size&&!this.carousel.classList.contains('carousel-animate-fade')&&(this.carouselWidth=parseInt(this.computedStyle.getPropertyValue('width'),10),this.carousel.dataset.size>=this.carouselItemsArray.length?(this.offset=0,a=!0):this.offset=this.carouselWidth/this.carousel.dataset.size,this.carouselContainer.style.left=0-this.offset+'px',this.carouselContainer.style.transform=`translateX(${this.offset}px)`,[].forEach.call(this.carouselItems,(a)=>{a.style.flexBasis=`${this.offset}px`})),this._initNavigation(a),this.carousel.classList.contains('carousel-animate-fade')&&this.carouselItems.length){let a=this.carouselItems[0].querySelector('img');a.onload=()=>{this.carouselContainer.style.height=a.naturalWidth+'px'}}this.currentItem={carousel:this.carousel,node:null,pos:-1},this.currentItem.node=this.carousel.querySelector('.carousel-item.is-active'),this.currentItem.pos=this.currentItem.node?this.carouselItemsArray.indexOf(this.currentItem.node):-1,this.currentItem.node||(this.currentItem.node=this.carouselItems[0],this.currentItem.node.classList.add('is-active'),this.currentItem.pos=0),this._setOrder(),this.carousel.dataset.autoplay&&'true'==this.carousel.dataset.autoplay&&this._autoPlay(this.carousel.dataset.delay||5e3),this._bindEvents(),this.emit('carousel:ready',this.currentItem)}_initNavigation(a=!1){this.previousControl=this.carousel.querySelector('.carousel-nav-left'),this.nextControl=this.carousel.querySelector('.carousel-nav-right'),(1>=this.carouselItems.length||a)&&(this.carouselContainer&&(this.carouselContainer.style.left='0'),this.previousControl&&(this.previousControl.style.display='none'),this.nextControl&&(this.nextControl.style.display='none'))}_bindEvents(){this.previousControl&&this._clickEvents.forEach((a)=>{this.previousControl.addEventListener(a,(a)=>{a.preventDefault(),this._slide('previous'),this._autoPlayInterval&&(clearInterval(this._autoPlayInterval),this._autoPlay(this.carousel.dataset.delay||5e3))})}),this.nextControl&&this._clickEvents.forEach((a)=>{this.nextControl.addEventListener(a,(a)=>{a.preventDefault(),this._slide('next'),this._autoPlayInterval&&(clearInterval(this._autoPlayInterval),this._autoPlay(this.carousel.dataset.delay||5e3))})}),this.carousel.addEventListener('touchstart',(a)=>{this._swipeStart(a)}),this.carousel.addEventListener('mousedown',(a)=>{this._swipeStart(a)}),this.carousel.addEventListener('touchend',(a)=>{this._swipeEnd(a)}),this.carousel.addEventListener('mouseup',(a)=>{this._swipeEnd(a)})}_next(a){return a.nextElementSibling?a.nextElementSibling:this.carouselItems[0]}_previous(a){return a.previousElementSibling?a.previousElementSibling:this.carouselItems[this.carouselItems.length-1]}_setOrder(){this.currentItem.node.style.order='1',this.currentItem.node.style.zIndex='1';let a,b,c,d=this.currentItem.node;for(a=b=2,c=this.carouselItemsArray.length;2<=c?b<=c:b>=c;a=2<=c?++b:--b)d=this._next(d),d.style.order=''+a%this.carouselItemsArray.length,d.style.zIndex='0'}_swipeStart(a){this._touch={start:{x:a.clientX,y:a.clientY},end:{x:a.clientX,y:a.clientY}}}_swipeEnd(a){this._touch.end={x:a.clientX,y:a.clientY},this._handleGesture()}_handleGesture(){const a={horizontal:(this._touch.end.x-this._touch.start.x)/parseInt(this.computedStyle.getPropertyValue('width')),vertical:(this._touch.end.y-this._touch.start.y)/parseInt(this.computedStyle.getPropertyValue('height'))};a.horizontal>a.vertical&&.25<a.horizontal&&this._slide('previous'),a.horizontal<a.vertical&&-.25>a.horizontal&&this._slide('next')}_slide(a='next'){var b=Math.abs;this.carouselItems.length&&(this.emit('carousel:slide:before',this.currentItem),this.currentItem.node.classList.remove('is-active'),'previous'===a?(this.currentItem.node=this._previous(this.currentItem.node),!this.carousel.classList.contains('carousel-animate-fade')&&(this.carousel.classList.add('is-reversing'),this.carouselContainer.style.transform=`translateX(${-b(this.offset)}px)`)):(this.currentItem.node=this._next(this.currentItem.node),this.carousel.classList.remove('is-reversing'),this.carouselContainer.style.transform=`translateX(${b(this.offset)}px)`),this.currentItem.node.classList.add('is-active'),this.carousel.classList.remove('carousel-animated'),setTimeout(()=>{this.carousel.classList.add('carousel-animated')},50),this._setOrder(),this.emit('carousel:slide:after',this.currentItem))}_autoPlay(a=5e3){this._autoPlayInterval=setInterval(()=>{this._slide('next')},a)}}return b}); |
{ | ||
"name": "bulma-carousel", | ||
"version": "2.0.6", | ||
"version": "2.0.7", | ||
"description": "Display a Image / Content carousel", | ||
@@ -5,0 +5,0 @@ "main": "dist/bulma-carousel.sass", |
@@ -0,1 +1,6 @@ | ||
<a name="1.0.21"></a> | ||
## [1.0.21](https://github.com/Wikiki/bulma-extensions/compare/1.0.20...1.0.21) (2018-05-11) | ||
<a name="1.0.20"></a> | ||
@@ -2,0 +7,0 @@ ## [1.0.20](https://github.com/Wikiki/bulma-extensions/compare/1.0.19...1.0.20) (2018-05-11) |
{ | ||
"name": "bulma-extensions", | ||
"version": "1.0.20", | ||
"version": "1.0.21", | ||
"description": "Set of extensions for Bulma.io CSS Framework", | ||
@@ -5,0 +5,0 @@ "main": "dist/extensions.sass", |
793075
2938