diff --git a/angular-carousel.js b/angular-carousel.js
index 6dbc9b5..f4c6098 100644
--- a/angular-carousel.js
+++ b/angular-carousel.js
@@ -64,7 +64,9 @@ angular.module('angular-carousel', [])
//
var constructor = function(slidesCount, scope, options) {
options = options || {};
- if (typeof options.looping === 'undefined') options.looping = true;
+ if (typeof options.looping === 'undefined'){
+ options.looping = true;
+ }
var instance = this;
@@ -138,7 +140,9 @@ angular.module('angular-carousel', [])
// Operation: unbind on slide change callback
this.unbindOnSlideChangeCallback = function(index) {
- if(typeof(this.onSlideChangeCallbacks[index]) === 'undefined') return;
+ if(typeof(this.onSlideChangeCallbacks[index]) === 'undefined'){
+ return;
+ }
this.onSlideChangeCallbacks.splice(index, 1);
};
}
@@ -173,7 +177,7 @@ angular.module('angular-carousel', [])
var interval = false, timeoutPromise = false, random = false, name = '', looping = false;
interval = typeof(attrs.ngCarouselTimer) !== 'undefined' && parseInt(attrs.ngCarouselTimer, 10) > 0 ? parseInt(attrs.ngCarouselTimer, 10) : false;
random = typeof(attrs.ngCarouselRandom) !== 'undefined';
- looping = !(attrs.ngCarouselLoop === 'false');
+ looping = (attrs.ngCarouselLoop !== 'false');
// Function to initialize interaction with dom (should be loaded after the dom has changed)
var slides, currentCarousel, firstSlideCopy, lastSlideCopy, slideContainer, hammer, name;
@@ -209,7 +213,9 @@ angular.module('angular-carousel', [])
// Remove old duplicated slides
var removeOldVirtualSlides = function() {
var oldSlides = angular.element(element[0].querySelectorAll('.carousel-slide-copy'));
- if(oldSlides.length > 0) oldSlides.remove();
+ if(oldSlides.length > 0) {
+ oldSlides.remove();
+ }
};
// Find slides
@@ -301,7 +307,9 @@ angular.module('angular-carousel', [])
// On pan left/right
hammer.on("panleft panright", function(ev) {
- if(!ev.isFinal) carouselDrag(ev.deltaX);
+ if(!ev.isFinal) {
+ carouselDrag(ev.deltaX);
+ }
});
} else {
console.log('ng-carousel error: No slidecontainer found')
@@ -311,7 +319,9 @@ angular.module('angular-carousel', [])
// Reset interval function
var setNextSlideTimeout = function() {
- if(!interval || currentCarousel.slidesCount < 2) return;
+ if(!interval || currentCarousel.slidesCount < 2) {
+ return;
+ }
if(timeoutPromise) $timeout.cancel(timeoutPromise);
timeoutPromise = $timeout(function() {
currentCarousel.next();
@@ -337,7 +347,9 @@ angular.module('angular-carousel', [])
if(animate) {
slideContainer.on('transitionend oTransitionEnd webkitTransitionEnd', function() {
- if(typeof transitionEndCallback === 'function') transitionEndCallback();
+ if(typeof transitionEndCallback === 'function') {
+ transitionEndCallback();
+ }
slideContainer.off('transitionend oTransitionEnd webkitTransitionEnd');
move(currentCarousel.currentSlide + 1, false);
});
@@ -378,7 +390,9 @@ angular.module('angular-carousel', [])
//
element.on('mouseover', function() {
- if(timeoutPromise) $timeout.cancel(timeoutPromise);
+ if(timeoutPromise) {
+ $timeout.cancel(timeoutPromise);
+ }
});
element.on('mouseout', setNextSlideTimeout);
diff --git a/angular-carousel.min.css b/angular-carousel.min.css
index 95fc4a8..6cf7b00 100644
--- a/angular-carousel.min.css
+++ b/angular-carousel.min.css
@@ -1,6 +1 @@
-/**
- * @license AngularJS v1.2.0
- * (c) 2015 Lifely
- * License: MIT
- */
-.ng-carousel{display:block;width:100%;height:300px;white-space:nowrap;position:relative;overflow:hidden}.ng-carousel slidecontainer{display:block;position:absolute;top:0;width:100%;height:100%;z-index:1;font-size:0}.ng-carousel slidecontainer.carousel-ignore-first-slide{-webkit-transform:translate(-100%,0);-moz-transform:translate(-100%,0);-o-transform:translate(-100%,0);-ms-transform:translate(-100%,0);transform:translate(-100%,0)}.ng-carousel slidecontainer.carousel-animate{-webkit-transition:-webkit-transform .5s ease-out 0s;-moz-transition:-moz-transform .5s ease-out 0s;-ms-transition:-ms-transform .5s ease-out 0s;-o-transition:-o-transform .5s ease-out 0s;transition:transform .5s ease-out 0s}.ng-carousel slide{position:relative;display:inline-block;vertical-align:top;font-size:16px;width:100%;height:100%;-webkit-background-size:cover;background-size:cover;background-position:center}.ng-carousel .carousel-arrow{display:inline-block;position:absolute;top:0;bottom:0;z-index:1;width:100px;text-align:center}.ng-carousel .carousel-arrow.carousel-arrow-left{left:0}.ng-carousel .carousel-arrow.carousel-arrow-right{right:0}
+.ng-carousel{display:block;width:100%;height:300px;white-space:nowrap;position:relative;overflow:hidden}.ng-carousel slidecontainer{display:block;position:absolute;top:0;width:100%;height:100%;z-index:1;font-size:0}.ng-carousel slidecontainer.carousel-ignore-first-slide{-webkit-transform:translate(-100%,0);-moz-transform:translate(-100%,0);-o-transform:translate(-100%,0);-ms-transform:translate(-100%,0);transform:translate(-100%,0)}.ng-carousel slidecontainer.carousel-animate{-webkit-transition:-webkit-transform .5s ease-out 0s;-moz-transition:-moz-transform .5s ease-out 0s;-ms-transition:-ms-transform .5s ease-out 0s;-o-transition:-o-transform .5s ease-out 0s;transition:transform .5s ease-out 0s}.ng-carousel slide{position:relative;display:inline-block;vertical-align:top;font-size:16px;width:100%;height:100%;-webkit-background-size:cover;background-size:cover;background-position:center}.ng-carousel .carousel-arrow{display:inline-block;position:absolute;top:0;bottom:0;z-index:1;width:100px;text-align:center}.ng-carousel .carousel-arrow.carousel-arrow-left{left:0}.ng-carousel .carousel-arrow.carousel-arrow-right{right:0}
\ No newline at end of file
diff --git a/angular-carousel.min.js b/angular-carousel.min.js
index 78764ec..b57e9f6 100644
--- a/angular-carousel.min.js
+++ b/angular-carousel.min.js
@@ -1,6 +1 @@
-/**
- * @license AngularJS v1.2.0
- * (c) 2015 Lifely
- * License: MIT
- */
-angular.module("angular-carousel",[]).factory("Carousel",function(){var n={};n.instances={},n.add=function(o,t,i,a){if(t=t||!1,!t)return"Error: no carousel name specified";o=o||0;var r=n.instances[t]||!1;if(r)return"Error: carousel instance already exists";var s=new e(o,i,a);return n.instances[t]=s,s},n.get=function(e){var o=n.instances[e]||!1;return o?o:"Error: carousel with name '"+e+"' does not exist"},n.remove=function(e){delete n.instances[e]};var e=function(n,e,o){o=o||{},"undefined"==typeof o.looping&&(o.looping=!0);var t=this;this.slidesCount=n,this.currentSlide=0,this.onSlideChangeCallbacks=[],this.toIndex=function(n,o){o=o||!1,this.currentSlide=n%this.slidesCount,angular.forEach(this.onSlideChangeCallbacks,function(n){"function"==typeof n&&n(t.currentSlide,o)}),setTimeout(function(){e.$apply()},0)},this.next=function(){var n=this.currentSlide+1,e=!1;return n>this.slidesCount-1&&(o.looping?(n=0,e="right"):n=this.slidesCount-1),this.toIndex(n,e),n},this.previous=function(){var n=this.currentSlide-1,e=!1;return 0>n&&(o.looping?(n=this.slidesCount-1,e="left"):n=0),this.toIndex(n,e),n},this.onSlideChange=function(n){return this.onSlideChangeCallbacks.push(n),this.onSlideChangeCallbacks.indexOf(n)},this.unbindOnSlideChangeCallback=function(n){"undefined"!=typeof this.onSlideChangeCallbacks[n]&&this.onSlideChangeCallbacks.splice(n,1)}};return n}).directive("ngCarousel",["Carousel","$compile","$document","$timeout",function(n,e,o,t){function i(){return"ontouchstart"in document.documentElement}var a=25;return{restrict:"AE",replace:!0,scope:{ngCarouselWatch:"="},link:function(e,r,s){function l(){p=angular.element(C[0].outerHTML),v=angular.element(C[C.length-1].outerHTML)}function u(){p=angular.element(''),v=angular.element('')}var c=!1,d=!1,f=!1,h="",g=!1;c="undefined"!=typeof s.ngCarouselTimer&&parseInt(s.ngCarouselTimer,10)>0?parseInt(s.ngCarouselTimer,10):!1,f="undefined"!=typeof s.ngCarouselRandom,g=!("false"===s.ngCarouselLoop);var C,m,p,v,S,b,h,y=function(){r.addClass("ng-carousel"),r.addClass(i()?"carousel-touch":"carousel-no-touch"),S=r.find("slidecontainer");var o=!1,t=!1;h&&(o=n.get(h).currentSlide,t=n.get(h).onSlideChangeCallbacks,n.remove(h));var a=function(){var n=angular.element(r[0].querySelectorAll(".carousel-slide-copy"));n.length>0&&n.remove()};if(a(),C=r.find("slide"),C.length>0){h=s.ngCarouselName,m=n.add(C.length,s.ngCarouselName,e,{looping:g}),angular.forEach(t,function(n){m.onSlideChange(n),m.unbindOnSlideChangeCallback(0)});var d=function(){a(),C=r.find("slide"),g?l():u(),p.addClass("carousel-slide-copy"),v.addClass("carousel-slide-copy"),S.append(p),S.prepend(v),S.addClass("carousel-ignore-first-slide")};d();var y=function(n,e){var o=n+1;"left"===e?o=0:"right"===e&&(o=C.length+1),E(o,!0,function(){"left"===e?E(C.length,!1):"right"===e&&E(1,!1)}),k(),d()};if(m.onSlideChange(y),o!==!1&&m.currentSlide!==o&&(y(m.currentSlide,!1),m.toIndex(o)),f){var T=Math.floor(Math.random()*m.slidesCount);m.toIndex(T)}c&&m.slidesCount>=2&&k()}else console.log("ng-carousel error: No slides found");S[0]?(b=new Hammer.Manager(S[0]),b.add(new Hammer.Pan({direction:Hammer.DIRECTION_HORIZONTAL,threshold:0})),b.on("panleft panright",function(n){n.isFinal||w(n.deltaX)})):console.log("ng-carousel error: No slidecontainer found")},k=function(){!c||m.slidesCount<2||(d&&t.cancel(d),d=t(function(){m.next()},c))},E=function(n,e,o){e?S.addClass("carousel-animate"):S.removeClass("carousel-animate");var t="translate(-"+100*n+"%, 0)";S.css({"-webkit-transform":t,"-moz-transform":t,"-ms-transform":t,"-o-transform":t,transform:t}),e&&S.on("transitionend oTransitionEnd webkitTransitionEnd",function(){"function"==typeof o&&o(),S.off("transitionend oTransitionEnd webkitTransitionEnd"),E(m.currentSlide+1,!1)})},T=0,x=0,w=function(n){T=n/x,T=T>1?1:-1>T?-1:T,E(m.currentSlide+1-T,!1)},I=function(){x=S[0].offsetWidth},$=function(){Math.abs(T)>a/100?(T>0?m.previous():m.next(),T=0):(T>0||0>T)&&E(m.currentSlide+1,!0,function(){T=0})},H=i()?"touchstart":"mousedown",M=i()?"touchend":"mouseup";o.on(H,I),o.on(M,$),r.on("mouseover",function(){d&&t.cancel(d)}),r.on("mouseout",k);var N=t(y,0);"undefined"!=typeof s.ngCarouselWatch&&e.$watch("ngCarouselWatch",function(){t(y)},!0),e.$on("$destroy",function(){t.cancel(N),r.off("mouseover mouseout"),o.off(H),o.off(M),S.off("transitionend oTransitionEnd webkitTransitionEnd"),m.onSlideChangeCallbacks=[],n.remove(h)})}}}]);
+angular.module("angular-carousel",[]).factory("Carousel",function(){var n={};n.instances={},n.add=function(o,t,i,a){if(t=t||!1,!t)return"Error: no carousel name specified";o=o||0;var r=n.instances[t]||!1;if(r)return"Error: carousel instance already exists";var s=new e(o,i,a);return n.instances[t]=s,s},n.get=function(e){var o=n.instances[e]||!1;return o?o:"Error: carousel with name '"+e+"' does not exist"},n.remove=function(e){delete n.instances[e]};var e=function(n,e,o){o=o||{},"undefined"==typeof o.looping&&(o.looping=!0);var t=this;this.slidesCount=n,this.currentSlide=0,this.onSlideChangeCallbacks=[],this.toIndex=function(n,o){o=o||!1,this.currentSlide=n%this.slidesCount,angular.forEach(this.onSlideChangeCallbacks,function(n){"function"==typeof n&&n(t.currentSlide,o)}),setTimeout(function(){e.$apply()},0)},this.next=function(){var n=this.currentSlide+1,e=!1;return n>this.slidesCount-1&&(o.looping?(n=0,e="right"):n=this.slidesCount-1),this.toIndex(n,e),n},this.previous=function(){var n=this.currentSlide-1,e=!1;return 0>n&&(o.looping?(n=this.slidesCount-1,e="left"):n=0),this.toIndex(n,e),n},this.onSlideChange=function(n){return this.onSlideChangeCallbacks.push(n),this.onSlideChangeCallbacks.indexOf(n)},this.unbindOnSlideChangeCallback=function(n){"undefined"!=typeof this.onSlideChangeCallbacks[n]&&this.onSlideChangeCallbacks.splice(n,1)}};return n}).directive("ngCarousel",["Carousel","$compile","$document","$timeout",function(n,e,o,t){function i(){return"ontouchstart"in document.documentElement}var a=25;return{restrict:"AE",replace:!0,scope:{ngCarouselWatch:"="},link:function(e,r,s){function l(){p=angular.element(C[0].outerHTML),v=angular.element(C[C.length-1].outerHTML)}function u(){p=angular.element(''),v=angular.element('')}var c=!1,d=!1,f=!1,h="",g=!1;c="undefined"!=typeof s.ngCarouselTimer&&parseInt(s.ngCarouselTimer,10)>0?parseInt(s.ngCarouselTimer,10):!1,f="undefined"!=typeof s.ngCarouselRandom,g="false"!==s.ngCarouselLoop;var C,m,p,v,S,b,h,y=function(){r.addClass("ng-carousel"),r.addClass(i()?"carousel-touch":"carousel-no-touch"),S=r.find("slidecontainer");var o=!1,t=!1;h&&(o=n.get(h).currentSlide,t=n.get(h).onSlideChangeCallbacks,n.remove(h));var a=function(){var n=angular.element(r[0].querySelectorAll(".carousel-slide-copy"));n.length>0&&n.remove()};if(a(),C=r.find("slide"),C.length>0){h=s.ngCarouselName,m=n.add(C.length,s.ngCarouselName,e,{looping:g}),angular.forEach(t,function(n){m.onSlideChange(n),m.unbindOnSlideChangeCallback(0)});var d=function(){a(),C=r.find("slide"),g?l():u(),p.addClass("carousel-slide-copy"),v.addClass("carousel-slide-copy"),S.append(p),S.prepend(v),S.addClass("carousel-ignore-first-slide")};d();var y=function(n,e){var o=n+1;"left"===e?o=0:"right"===e&&(o=C.length+1),E(o,!0,function(){"left"===e?E(C.length,!1):"right"===e&&E(1,!1)}),k(),d()};if(m.onSlideChange(y),o!==!1&&m.currentSlide!==o&&(y(m.currentSlide,!1),m.toIndex(o)),f){var T=Math.floor(Math.random()*m.slidesCount);m.toIndex(T)}c&&m.slidesCount>=2&&k()}else console.log("ng-carousel error: No slides found");S[0]?(b=new Hammer.Manager(S[0]),b.add(new Hammer.Pan({direction:Hammer.DIRECTION_HORIZONTAL,threshold:0})),b.on("panleft panright",function(n){n.isFinal||w(n.deltaX)})):console.log("ng-carousel error: No slidecontainer found")},k=function(){!c||m.slidesCount<2||(d&&t.cancel(d),d=t(function(){m.next()},c))},E=function(n,e,o){e?S.addClass("carousel-animate"):S.removeClass("carousel-animate");var t="translate(-"+100*n+"%, 0)";S.css({"-webkit-transform":t,"-moz-transform":t,"-ms-transform":t,"-o-transform":t,transform:t}),e&&S.on("transitionend oTransitionEnd webkitTransitionEnd",function(){"function"==typeof o&&o(),S.off("transitionend oTransitionEnd webkitTransitionEnd"),E(m.currentSlide+1,!1)})},T=0,x=0,w=function(n){T=n/x,T=T>1?1:-1>T?-1:T,E(m.currentSlide+1-T,!1)},I=function(){x=S[0].offsetWidth},$=function(){Math.abs(T)>a/100?(T>0?m.previous():m.next(),T=0):(T>0||0>T)&&E(m.currentSlide+1,!0,function(){T=0})},H=i()?"touchstart":"mousedown",M=i()?"touchend":"mouseup";o.on(H,I),o.on(M,$),r.on("mouseover",function(){d&&t.cancel(d)}),r.on("mouseout",k);var N=t(y,0);"undefined"!=typeof s.ngCarouselWatch&&e.$watch("ngCarouselWatch",function(){t(y)},!0),e.$on("$destroy",function(){t.cancel(N),r.off("mouseover mouseout"),o.off(H),o.off(M),S.off("transitionend oTransitionEnd webkitTransitionEnd"),m.onSlideChangeCallbacks=[],n.remove(h)})}}}]);
\ No newline at end of file