diff --git a/bower.json b/bower.json
index a9f3075..8164947 100755
--- a/bower.json
+++ b/bower.json
@@ -1,6 +1,6 @@
{
"name": "angular-ui-carousel",
- "version": "0.1.6",
+ "version": "0.1.7",
"authors": [
{
"name": "mihnsen",
@@ -36,7 +36,7 @@
"dependencies": {},
"devDependencies": {
"angular-mocks": ">=1.2.0",
- "angular": "1.4",
+ "angular": "1.6",
"angular-sanitize": ">=1.2.0",
"prism": "^1.5.1"
},
diff --git a/dist/ui-carousel.js b/dist/ui-carousel.js
index 467f73c..f97af40 100644
--- a/dist/ui-carousel.js
+++ b/dist/ui-carousel.js
@@ -43,11 +43,6 @@ angular.module('ui.carousel.controllers').controller('CarouselController', ['$sc
_this.initRanges();
_this.setProps();
_this.setupInfinite();
-
- // onInit callback
- if (_this.onInit) {
- _this.onInit();
- }
};
/**
@@ -168,6 +163,11 @@ angular.module('ui.carousel.controllers').controller('CarouselController', ['$sc
if (!_this.options.fade) {
_this.refreshTrackStyle();
}
+
+ // onInit callback
+ if (_this.onInit) {
+ _this.onInit();
+ }
}).catch(function () {
// Catch err
});
diff --git a/dist/ui-carousel.min.js b/dist/ui-carousel.min.js
index 5104356..53b27e9 100644
--- a/dist/ui-carousel.min.js
+++ b/dist/ui-carousel.min.js
@@ -1 +1 @@
-"use strict";!function(e){e.module("ui.carousel.config",[]).value("ui.carousel.config",{debug:!0}),e.module("ui.carousel.providers",[]),e.module("ui.carousel.controllers",[]),e.module("ui.carousel.directives",[]),e.module("ui.carousel",["ui.carousel.config","ui.carousel.directives","ui.carousel.controllers","ui.carousel.providers"])}(angular),angular.module("ui.carousel.controllers").controller("CarouselController",["$scope","$element","$timeout","$q","Carousel",function(e,i,t,o,s){var n=this;this.$onInit=function(){n.initOptions(),n.initRanges(),n.setProps(),n.setupInfinite(),n.onInit&&n.onInit()},this.initOptions=function(){n.options=angular.extend({},s.getOptions()),void 0!==n.initialSlide&&(n.options.initialSlide=n.initialSlide),void 0!==n.fade&&(n.options.fade=n.fade),void 0!==n.autoplay&&(n.options.autoplay=n.autoplay),void 0!==n.autoplaySpeed&&(n.options.autoplaySpeed=n.autoplaySpeed),void 0!==n.cssEase&&(n.options.cssEase=n.cssEase),void 0!==n.speed&&(n.options.speed=n.speed),void 0!==n.infinite&&(n.options.infinite=n.infinite),void 0!==n.arrows&&(n.options.arrows=n.arrows),void 0!==n.dots&&(n.options.dots=n.dots),n.options.fade?(n.options.slidesToShow=1,n.options.slidesToScroll=1):(n.show&&(n.options.slidesToShow=n.show),n.scroll&&(n.options.slidesToScroll=n.scroll))},this.initRanges=function(){n.slides||(n.slides=[]),n.isCarouselReady=!1,n.isTrackMoving=!1,n.track=i.find(".track"),n.width=1,n.currentSlide=n.options.initialSlide,n.trackStyle={},n.slideStyle={},n.isVisibleDots=!1,n.isVisiblePrev=!1,n.isVisibleNext=!1,n.isClickablePrev=!1,n.isClickableNext=!1,n.animType=null,n.transformType=null,n.transitionType=null,n.slidesInTrack=angular.copy(n.slides)},this.initUI=function(){t(function(){n.width=i[0].clientWidth,n.updateItemStyle(),n.initTrack()})},this.updateItemStyle=function(){n.itemWidth=n.width/n.options.slidesToShow,n.slideStyle={width:n.itemWidth+"px"}},this.initTrack=function(){var e=n.width/n.options.slidesToShow,i=e*n.slidesInTrack.length;n.trackStyle.width=i+"px",n.slideHandler(n.currentSlide).finally(function(){n.isCarouselReady=!0,n.options.fade||n.refreshTrackStyle()}).catch(function(){})},this.next=function(){if(!n.isClickableNext)return!1;var e=n.getIndexOffset(),i=0===e?n.options.slidesToScroll:e;n.slideHandler(n.currentSlide+i).catch(function(){})},this.prev=function(){if(!n.isClickablePrev)return!1;var e=n.getIndexOffset(),i=0===e?n.options.slidesToScroll:n.options.slidesToShow-e;n.slideHandler(n.currentSlide-i).catch(function(){})},this.getIndexOffset=function(){var e=n.slides.length%n.options.slidesToScroll!==0,i=e?0:(n.slides.length-n.currentSlide)%n.options.slidesToScroll;return i},this.movePage=function(e){var i=n.options.slidesToScroll*e;n.slideHandler(i).catch(function(){})},this.slideHandler=function(e){if(!n.slides)return o.reject("Carousel not fully setup");if(n.isTrackMoving)return o.reject("Track is moving");var i=n.slides.length,s=n.options.slidesToShow;if(s>=i)return o.reject("Length of slides smaller than slides to show");var r=e,l=null;if(l=0>r?i%n.options.slidesToScroll!==0?i-i%n.options.slidesToScroll:i+r:r>=i?i%n.options.slidesToScroll!==0?0:r-i:r,n.onBeforeChange&&n.onBeforeChange(n.currentSlide,l),n.options.fade)return n.currentSlide=l,t(function(){n.onAfterChange&&n.onAfterChange(n.currentSlide)},n.options.speed),o.resolve("Handler fade");var a=-1*l*n.itemWidth;return n.options.infinite&&(a=-1*(r+s)*n.itemWidth),n.isTrackMoving=!0,n.moveTrack(a).then(function(){n.isTrackMoving=!1,n.currentSlide=l,n.autoplayTrack(),l!==r&&n.correctTrack(),n.options.infinite||(0===n.currentSlide?n.isClickablePrev=!1:n.currentSlide===n.slidesInTrack.length-1?n.isClickableNext=!1:(n.isClickablePrev=!0,n.isClickableNext=!0)),t(function(){n.onAfterChange&&n.onAfterChange(n.currentSlide)},200)})},this.moveTrack=function(e){var i=o.defer();return n.trackStyle[n.animType]=n.options.vertical===!1?"translate3d("+e+"px, 0px, 0px)":"translate3d(0px, "+e+"px, 0px)",t(function(){i.resolve("Track moved")},n.options.speed),i.promise},this.correctTrack=function(){n.options.infinite&&!function(){var e=-1*(n.currentSlide+n.options.slidesToShow)*n.itemWidth;n.trackStyle[n.transitionType]=n.transformType+" 0ms "+n.options.cssEase,n.isTrackMoving=!0,t(function(){n.trackStyle[n.animType]="translate3d("+e+"px, 0, 0px)",t(function(){n.refreshTrackStyle(),n.isTrackMoving=!1},200)})}()},this.refreshTrackStyle=function(){n.trackStyle[n.transitionType]=n.transformType+" "+n.options.speed+"ms "+n.options.cssEase},this.autoplayTrack=function(){n.options.autoplay&&(n.timeout&&t.cancel(n.timeout),n.timeout=t(function(){n.next(),t.cancel(n.timeout),n.timeout=null},n.options.autoplaySpeed))},this.getSlideStyle=function(e){var i=n.slideStyle;if(n.options.fade){var t=-1*e*n.itemWidth,o={position:"relative",top:"0px",left:t+"px","z-index":e===n.currentSlide?10:9,opacity:e===n.currentSlide?1:0};e>=n.currentSlide-1&&e<=n.currentSlide+1&&(o.transition="opacity 250ms linear"),i=angular.extend(i,o)}return i},this.setupInfinite=function(){var e=n.slides.length,i=n.options.slidesToShow;if(n.options.infinite&&n.options.fade===!1&&e>i){for(var t=i,o=0;t>o;o++)n.slidesInTrack.push(angular.copy(n.slides[o]));for(var s=e-1;s>=e-i;s--)n.slidesInTrack.unshift(angular.copy(n.slides[s]))}},this.getDots=function(){if(!n.slides)return[];for(var e=Math.ceil(n.slides.length/n.options.slidesToScroll),i=[],t=0;e>t;t++)i.push(t);return i},this.setProps=function(){var e=document.body.style;void 0!==e.OTransform&&(n.animType="OTransform",n.transformType="-o-transform",n.transitionType="OTransition"),void 0!==e.MozTransform&&(n.animType="MozTransform",n.transformType="-moz-transform",n.transitionType="MozTransition"),void 0!==e.webkitTransform&&(n.animType="webkitTransform",n.transformType="-webkit-transform",n.transitionType="webkitTransition"),void 0!==e.msTransform&&(n.animType="msTransform",n.transformType="-ms-transform",n.transitionType="msTransition"),void 0!==e.transform&&n.animType!==!1&&(n.animType="transform",n.transformType="transform",n.transitionType="transition"),n.transformsEnabled=!0},this.refreshCarousel=function(){n.slides&&n.slides.length&&n.slides.length>n.options.slidesToShow&&(n.isVisibleDots=!0,n.isVisiblePrev=!0,n.isVisibleNext=!0,n.isClickablePrev=!0,n.isClickableNext=!0),n.initUI()},e.$watch("ctrl.slides",function(){n.refreshCarousel()}),1===angular.version.major&&angular.version.minor<5&&this.$onInit()}]),angular.module("ui.carousel.directives").directive("uiCarousel",["$compile","$templateCache","$sce",function(e,i){return{restrict:"AE",scope:!0,bindToController:{name:"=?",slides:"=",show:"=?slidesToShow",scroll:"=?slidesToScroll",classes:"@",fade:"=?",onChange:"=?",disableArrow:"=?",autoplay:"=?",autoplaySpeed:"=?",cssEase:"=?",speed:"=?",infinite:"=?",arrows:"=?",dots:"=?",initialSlide:"=?",onBeforeChange:"&",onAfterChange:"&",onInit:"&"},compile:function(t){var o=angular.element(i.get("ui-carousel/carousel.template.html")),s={"carousel-item":".carousel-item","carousel-prev":".carousel-prev","carousel-next":".carousel-next"},n=o.clone();return angular.forEach(s,function(e,i){var o=t[0].querySelector(i);o&&angular.element(n[0].querySelector(e)).html(o.innerHTML)}),function(i,t){var o=e(n)(i);t.addClass("ui-carousel").html("").append(o)}},controller:"CarouselController",controllerAs:"ctrl"}}]),angular.module("ui.carousel.providers").provider("Carousel",function(){var e=this;this.options={arrows:!0,autoplay:!1,autoplaySpeed:3e3,cssEase:"ease",dots:!1,easing:"linear",fade:!1,infinite:!0,initialSlide:0,slidesToShow:1,slidesToScroll:1,speed:500,draggable:!0,lazyLoad:"ondemand",swipe:!0,swipeToSlide:!1,touchMove:!0,vertical:!1,verticalSwiping:!1},this.$get=[function(){return{setOptions:function(i){e.options=angular.extend(e.options,i)},getOptions:function(){return e.options}}}]}),function(e){try{e=angular.module("ui.carousel")}catch(i){e=angular.module("ui.carousel",[])}e.run(["$templateCache",function(e){e.put("ui-carousel/carousel.template.html",'
')}])}();
\ No newline at end of file
+"use strict";!function(e){e.module("ui.carousel.config",[]).value("ui.carousel.config",{debug:!0}),e.module("ui.carousel.providers",[]),e.module("ui.carousel.controllers",[]),e.module("ui.carousel.directives",[]),e.module("ui.carousel",["ui.carousel.config","ui.carousel.directives","ui.carousel.controllers","ui.carousel.providers"])}(angular),angular.module("ui.carousel.controllers").controller("CarouselController",["$scope","$element","$timeout","$q","Carousel",function(e,i,t,o,s){var n=this;this.$onInit=function(){n.initOptions(),n.initRanges(),n.setProps(),n.setupInfinite()},this.initOptions=function(){n.options=angular.extend({},s.getOptions()),void 0!==n.initialSlide&&(n.options.initialSlide=n.initialSlide),void 0!==n.fade&&(n.options.fade=n.fade),void 0!==n.autoplay&&(n.options.autoplay=n.autoplay),void 0!==n.autoplaySpeed&&(n.options.autoplaySpeed=n.autoplaySpeed),void 0!==n.cssEase&&(n.options.cssEase=n.cssEase),void 0!==n.speed&&(n.options.speed=n.speed),void 0!==n.infinite&&(n.options.infinite=n.infinite),void 0!==n.arrows&&(n.options.arrows=n.arrows),void 0!==n.dots&&(n.options.dots=n.dots),n.options.fade?(n.options.slidesToShow=1,n.options.slidesToScroll=1):(n.show&&(n.options.slidesToShow=n.show),n.scroll&&(n.options.slidesToScroll=n.scroll))},this.initRanges=function(){n.slides||(n.slides=[]),n.isCarouselReady=!1,n.isTrackMoving=!1,n.track=i.find(".track"),n.width=1,n.currentSlide=n.options.initialSlide,n.trackStyle={},n.slideStyle={},n.isVisibleDots=!1,n.isVisiblePrev=!1,n.isVisibleNext=!1,n.isClickablePrev=!1,n.isClickableNext=!1,n.animType=null,n.transformType=null,n.transitionType=null,n.slidesInTrack=angular.copy(n.slides)},this.initUI=function(){t(function(){n.width=i[0].clientWidth,n.updateItemStyle(),n.initTrack()})},this.updateItemStyle=function(){n.itemWidth=n.width/n.options.slidesToShow,n.slideStyle={width:n.itemWidth+"px"}},this.initTrack=function(){var e=n.width/n.options.slidesToShow,i=e*n.slidesInTrack.length;n.trackStyle.width=i+"px",n.slideHandler(n.currentSlide).finally(function(){n.isCarouselReady=!0,n.options.fade||n.refreshTrackStyle(),n.onInit&&n.onInit()}).catch(function(){})},this.next=function(){if(!n.isClickableNext)return!1;var e=n.getIndexOffset(),i=0===e?n.options.slidesToScroll:e;n.slideHandler(n.currentSlide+i).catch(function(){})},this.prev=function(){if(!n.isClickablePrev)return!1;var e=n.getIndexOffset(),i=0===e?n.options.slidesToScroll:n.options.slidesToShow-e;n.slideHandler(n.currentSlide-i).catch(function(){})},this.getIndexOffset=function(){var e=n.slides.length%n.options.slidesToScroll!==0,i=e?0:(n.slides.length-n.currentSlide)%n.options.slidesToScroll;return i},this.movePage=function(e){var i=n.options.slidesToScroll*e;n.slideHandler(i).catch(function(){})},this.slideHandler=function(e){if(!n.slides)return o.reject("Carousel not fully setup");if(n.isTrackMoving)return o.reject("Track is moving");var i=n.slides.length,s=n.options.slidesToShow;if(s>=i)return o.reject("Length of slides smaller than slides to show");var r=e,l=null;if(l=0>r?i%n.options.slidesToScroll!==0?i-i%n.options.slidesToScroll:i+r:r>=i?i%n.options.slidesToScroll!==0?0:r-i:r,n.onBeforeChange&&n.onBeforeChange(n.currentSlide,l),n.options.fade)return n.currentSlide=l,t(function(){n.onAfterChange&&n.onAfterChange(n.currentSlide)},n.options.speed),o.resolve("Handler fade");var a=-1*l*n.itemWidth;return n.options.infinite&&(a=-1*(r+s)*n.itemWidth),n.isTrackMoving=!0,n.moveTrack(a).then(function(){n.isTrackMoving=!1,n.currentSlide=l,n.autoplayTrack(),l!==r&&n.correctTrack(),n.options.infinite||(0===n.currentSlide?n.isClickablePrev=!1:n.currentSlide===n.slidesInTrack.length-1?n.isClickableNext=!1:(n.isClickablePrev=!0,n.isClickableNext=!0)),t(function(){n.onAfterChange&&n.onAfterChange(n.currentSlide)},200)})},this.moveTrack=function(e){var i=o.defer();return n.trackStyle[n.animType]=n.options.vertical===!1?"translate3d("+e+"px, 0px, 0px)":"translate3d(0px, "+e+"px, 0px)",t(function(){i.resolve("Track moved")},n.options.speed),i.promise},this.correctTrack=function(){n.options.infinite&&!function(){var e=-1*(n.currentSlide+n.options.slidesToShow)*n.itemWidth;n.trackStyle[n.transitionType]=n.transformType+" 0ms "+n.options.cssEase,n.isTrackMoving=!0,t(function(){n.trackStyle[n.animType]="translate3d("+e+"px, 0, 0px)",t(function(){n.refreshTrackStyle(),n.isTrackMoving=!1},200)})}()},this.refreshTrackStyle=function(){n.trackStyle[n.transitionType]=n.transformType+" "+n.options.speed+"ms "+n.options.cssEase},this.autoplayTrack=function(){n.options.autoplay&&(n.timeout&&t.cancel(n.timeout),n.timeout=t(function(){n.next(),t.cancel(n.timeout),n.timeout=null},n.options.autoplaySpeed))},this.getSlideStyle=function(e){var i=n.slideStyle;if(n.options.fade){var t=-1*e*n.itemWidth,o={position:"relative",top:"0px",left:t+"px","z-index":e===n.currentSlide?10:9,opacity:e===n.currentSlide?1:0};e>=n.currentSlide-1&&e<=n.currentSlide+1&&(o.transition="opacity 250ms linear"),i=angular.extend(i,o)}return i},this.setupInfinite=function(){var e=n.slides.length,i=n.options.slidesToShow;if(n.options.infinite&&n.options.fade===!1&&e>i){for(var t=i,o=0;t>o;o++)n.slidesInTrack.push(angular.copy(n.slides[o]));for(var s=e-1;s>=e-i;s--)n.slidesInTrack.unshift(angular.copy(n.slides[s]))}},this.getDots=function(){if(!n.slides)return[];for(var e=Math.ceil(n.slides.length/n.options.slidesToScroll),i=[],t=0;e>t;t++)i.push(t);return i},this.setProps=function(){var e=document.body.style;void 0!==e.OTransform&&(n.animType="OTransform",n.transformType="-o-transform",n.transitionType="OTransition"),void 0!==e.MozTransform&&(n.animType="MozTransform",n.transformType="-moz-transform",n.transitionType="MozTransition"),void 0!==e.webkitTransform&&(n.animType="webkitTransform",n.transformType="-webkit-transform",n.transitionType="webkitTransition"),void 0!==e.msTransform&&(n.animType="msTransform",n.transformType="-ms-transform",n.transitionType="msTransition"),void 0!==e.transform&&n.animType!==!1&&(n.animType="transform",n.transformType="transform",n.transitionType="transition"),n.transformsEnabled=!0},this.refreshCarousel=function(){n.slides&&n.slides.length&&n.slides.length>n.options.slidesToShow&&(n.isVisibleDots=!0,n.isVisiblePrev=!0,n.isVisibleNext=!0,n.isClickablePrev=!0,n.isClickableNext=!0),n.initUI()},e.$watch("ctrl.slides",function(){n.refreshCarousel()}),1===angular.version.major&&angular.version.minor<5&&this.$onInit()}]),angular.module("ui.carousel.directives").directive("uiCarousel",["$compile","$templateCache","$sce",function(e,i){return{restrict:"AE",scope:!0,bindToController:{name:"=?",slides:"=",show:"=?slidesToShow",scroll:"=?slidesToScroll",classes:"@",fade:"=?",onChange:"=?",disableArrow:"=?",autoplay:"=?",autoplaySpeed:"=?",cssEase:"=?",speed:"=?",infinite:"=?",arrows:"=?",dots:"=?",initialSlide:"=?",onBeforeChange:"&",onAfterChange:"&",onInit:"&"},compile:function(t){var o=angular.element(i.get("ui-carousel/carousel.template.html")),s={"carousel-item":".carousel-item","carousel-prev":".carousel-prev","carousel-next":".carousel-next"},n=o.clone();return angular.forEach(s,function(e,i){var o=t[0].querySelector(i);o&&angular.element(n[0].querySelector(e)).html(o.innerHTML)}),function(i,t){var o=e(n)(i);t.addClass("ui-carousel").html("").append(o)}},controller:"CarouselController",controllerAs:"ctrl"}}]),angular.module("ui.carousel.providers").provider("Carousel",function(){var e=this;this.options={arrows:!0,autoplay:!1,autoplaySpeed:3e3,cssEase:"ease",dots:!1,easing:"linear",fade:!1,infinite:!0,initialSlide:0,slidesToShow:1,slidesToScroll:1,speed:500,draggable:!0,lazyLoad:"ondemand",swipe:!0,swipeToSlide:!1,touchMove:!0,vertical:!1,verticalSwiping:!1},this.$get=[function(){return{setOptions:function(i){e.options=angular.extend(e.options,i)},getOptions:function(){return e.options}}}]}),function(e){try{e=angular.module("ui.carousel")}catch(i){e=angular.module("ui.carousel",[])}e.run(["$templateCache",function(e){e.put("ui-carousel/carousel.template.html",'')}])}();
\ No newline at end of file
diff --git a/package.json b/package.json
index 19fcd53..5eff234 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "angular-ui-carousel",
- "version": "0.1.6",
+ "version": "0.1.7",
"author": {
"name": "mihnsen",
"email": "minhnt.hut@gmail.com"
diff --git a/src/demo/main.js b/src/demo/main.js
index b71174d..668701c 100644
--- a/src/demo/main.js
+++ b/src/demo/main.js
@@ -8,7 +8,7 @@ app.controller('CarouselDemoCtrl', ['$scope', 'Carousel', function($scope, Carou
'use strict';
this.singleInit = () => {
- // console.log('single init');
+ console.log('single init');
};
this.single = {
diff --git a/src/ui-carousel/controllers/carousel.controller.js b/src/ui-carousel/controllers/carousel.controller.js
index 61609bb..cc02b0b 100644
--- a/src/ui-carousel/controllers/carousel.controller.js
+++ b/src/ui-carousel/controllers/carousel.controller.js
@@ -25,11 +25,6 @@ angular.module('ui.carousel.controllers')
this.initRanges();
this.setProps();
this.setupInfinite();
-
- // onInit callback
- if (this.onInit) {
- this.onInit();
- }
};
/**
@@ -152,6 +147,11 @@ angular.module('ui.carousel.controllers')
if (!this.options.fade) {
this.refreshTrackStyle();
}
+
+ // onInit callback
+ if (this.onInit) {
+ this.onInit();
+ }
})
.catch(() => {
// Catch err