diff --git a/dist/js/ionic-angular.js b/dist/js/ionic-angular.js
index 501d5ad0cd..d82c39c101 100644
--- a/dist/js/ionic-angular.js
+++ b/dist/js/ionic-angular.js
@@ -1861,13 +1861,25 @@ angular.module('ionic.ui.slideBox', [])
restrict: 'E',
replace: true,
transclude: true,
+ scope: {},
controller: ['$scope', '$element', function($scope, $element) {
$scope.slides = [];
this.slideAdded = function() {
$scope.slides.push({});
};
+
+ angular.extend(this, ionic.views.SlideBox.prototype);
+
+ ionic.views.SlideBox.call(this, {
+ el: $element[0],
+ slideChanged: function(slideIndex) {
+ $scope.$parent.$broadcast('slideBox.slideChanged', slideIndex);
+ $scope.$apply();
+ }
+ });
+
+ $scope.$parent.slideBox = this;
}],
- scope: {},
template: '
\
\
\
@@ -1879,13 +1891,6 @@ angular.module('ionic.ui.slideBox', [])
var childScope = $scope.$new();
var pager = $compile('
')(childScope);
$element.append(pager);
-
- $scope.slideBox = new ionic.views.SlideBox({
- el: $element[0],
- slideChanged: function(slideIndex) {
- $scope.$parent.$broadcast('slideBox.slideChanged', slideIndex);
- }
- });
}
}
};
diff --git a/dist/js/ionic-angular.min.js b/dist/js/ionic-angular.min.js
index 4c920df68c..a0dfa8106e 100644
--- a/dist/js/ionic-angular.min.js
+++ b/dist/js/ionic-angular.min.js
@@ -11,5 +11,5 @@
* Licensed under the MIT license. Please see LICENSE for more information.
*
*/
-angular.module("ionic.service",["ionic.service.platform","ionic.service.actionSheet","ionic.service.gesture","ionic.service.loading","ionic.service.modal","ionic.service.popup","ionic.service.templateLoad"]),angular.module("ionic.ui",["ionic.ui.content","ionic.ui.scroll","ionic.ui.tabs","ionic.ui.navRouter","ionic.ui.header","ionic.ui.sideMenu","ionic.ui.slideBox","ionic.ui.list","ionic.ui.checkbox","ionic.ui.toggle","ionic.ui.radio"]),angular.module("ionic",["ionic.service","ionic.ui","ngAnimate","ngRoute","ngTouch","ngSanitize"]),angular.module("ionic.service.actionSheet",["ionic.service.templateLoad","ionic.ui.actionSheet","ngAnimate"]).factory("ActionSheet",["$rootScope","$document","$compile","$animate","$timeout","TemplateLoader",function(a,b,c,d){return{show:function(e){var f=a.$new(!0);angular.extend(f,e);var g=c('
')(f),h=angular.element(g[0].querySelector(".action-sheet")),i=function(a){d.leave(h,function(){a&&e.cancel()}),d.removeClass(g,"active",function(){f.$destroy()})};f.cancel=function(){i(!0)},f.buttonClicked=function(a){(e.buttonClicked&&e.buttonClicked(a))===!0&&i(!1)},f.destructiveButtonClicked=function(){(e.destructiveButtonClicked&&e.destructiveButtonClicked())===!0&&i(!1)},b[0].body.appendChild(g[0]);var j=new ionic.views.ActionSheet({el:g[0]});return f.sheet=j,d.addClass(g,"active"),d.enter(h,g,null,function(){}),j}}}]),angular.module("ionic.service.gesture",[]).factory("Gesture",[function(){return{on:function(a,b,c){return window.ionic.onGesture(a,b,c[0])},off:function(a,b,c){return window.ionic.offGesture(a,b,c)}}}]),angular.module("ionic.service.loading",["ionic.ui.loading"]).factory("Loading",["$rootScope","$document","$compile",function(a,b,c){return{show:function(d){var e={content:"",animation:"fade-in",showBackdrop:!0,maxWidth:200,showDelay:2e3};d=angular.extend(e,d);var f=a.$new(!0);angular.extend(f,d);var g=angular.element(b[0].querySelector(".loading-backdrop"));if(g.length&&(f=g.scope(),f.loading))return f.loading.show(),f.loading;var h=c("
"+d.content+"")(f);b[0].body.appendChild(h[0]);var i=new ionic.views.Loading({el:h[0],maxWidth:d.maxWidth,showDelay:d.showDelay});return i.show(),f.loading=i,i}}}]),angular.module("ionic.service.modal",["ionic.service.templateLoad","ngAnimate"]).factory("Modal",["$rootScope","$document","$compile","$animate","$q","TemplateLoader",function(a,b,c,d,e,f){var g=ionic.views.Modal.inherit({initialize:function(a){ionic.views.Modal.prototype.initialize.call(this,a),this.animation=a.animation||"slide-in-up"},show:function(){var a=this,c=angular.element(this.el);c.parent().length||(angular.element(b[0].body).append(c),ionic.views.Modal.prototype.show.call(a)),d.addClass(c,this.animation,function(){})},hide:function(){var a=angular.element(this.el);d.removeClass(a,this.animation),ionic.views.Modal.prototype.hide.call(this)},remove:function(){angular.element(this.el),d.leave(angular.element(this.el),function(){scope.$destroy()})}}),h=function(b,d){var e=d.scope&&d.scope.$new()||a.$new(!0),f=c(b)(e);d.el=f[0];var h=new g(d);return d.scope||(e.modal=h),h};return{fromTemplate:function(a,b){var c=h(a,b||{});return c},fromTemplateUrl:function(a,b,c){f.load(a).then(function(a){var d=h(a,c||{});b(d)})}}}]),function(){"use strict";angular.module("ionic.service.platform",[]).provider("Platform",function(){var a="web",b=!1;(window.cordova||window.PhoneGap||window.phonegap)&&(a="cordova");var c=function(){return"cordova"==a?window.device||window.Cordova:!0};return setTimeout(function d(){c()?ionic.Platform.detect():setTimeout(d,50)},10),{setPlatform:function(b){a=b},$get:["$q","$timeout",function(a,d){return{onHardwareBackButton:function(a){this.ready(function(){document.addEventListener("backbutton",a,!1)})},offHardwareBackButton:function(a){this.ready(function(){document.removeEventListener("backbutton",a)})},ready:function(e){var f=a.defer();return d(function g(){c()?(b=!0,f.resolve(),e()):d(g,50)},50),f.promise}}}]}})}(ionic),angular.module("ionic.service.popup",["ionic.service.templateLoad"]).factory("Popup",["$rootScope","$document","$compile","TemplateLoader",function(a,b,c){var d=function(){var a=angular.element(b[0].querySelector(".popup"));if(a.length){var c=a.scope();if(c.popup)return c}};return{alert:function(e,f){var g=d();if(g)return g.popup.alert(e);var h={title:e,animation:"fade-in"};opts=angular.extend(h,opts);var i=f&&f.$new()||a.$new(!0);angular.extend(i,opts);var j=c("
"+opts.content+"")(i);b[0].body.appendChild(j[0]);var k=new ionic.views.Popup({el:j[0]});return k.alert(e),i.popup=k,k},confirm:function(){},prompt:function(){},show:function(){}}}]),angular.module("ionic.service.templateLoad",[]).factory("TemplateLoader",["$q","$http","$templateCache",function(a,b,c){return{load:function(d){var e=a.defer();return b({method:"GET",url:d,cache:c}).success(function(a){e.resolve(a&&a.trim())}).error(function(a){e.reject(a)}),e.promise}}}]),function(){"use strict";angular.module("ionic.ui.actionSheet",[]).directive("actionSheet",["$document",function(a){return{restrict:"E",scope:!0,replace:!0,link:function(b,c){var d=function(a){27==a.which&&(b.cancel(),b.$apply())},e=function(a){a.target==c[0]&&(b.cancel(),b.$apply())};b.$on("$destroy",function(){c.remove(),a.unbind("keyup",d)}),a.bind("keyup",d),c.bind("click",e)},template:'
{{titleText}}
'}}])}(),function(a){"use strict";angular.module("ionic.ui.header",["ngAnimate"]).directive("headerBar",function(){return{restrict:"E",replace:!0,transclude:!0,template:'',scope:{leftButtons:"=",rightButtons:"=",title:"=",type:"@",alignTitle:"@"},link:function(b,c){var d=new a.views.HeaderBar({el:c[0],alignTitle:b.alignTitle||"center"});c.addClass(b.type),b.headerBarView=d,b.$watch("leftButtons",function(){d.align()}),b.$watch("rightButtons",function(){d.align()}),b.$watch("title",function(){console.log("Title changed"),d.align()})}}}).directive("footerBar",function(){return{restrict:"E",replace:!0,transclude:!0,template:'',scope:{type:"@"},link:function(a,b){b.addClass(a.type)}}})}(ionic),function(){"use strict";angular.module("ionic.ui.checkbox",[]).directive("checkbox",function(){return{restrict:"E",replace:!0,require:"?ngModel",scope:{},transclude:!0,template:'
',link:function(a,b,c,d){var e;d&&(e=angular.element(b[0].querySelector('input[type="checkbox"]')),e.length&&(e.bind("change",function(b){d.$setViewValue(e[0].checked),a.$apply(function(){b.alreadyHandled=!0})}),d&&(d.$render=function(){e[0].checked=d.$viewValue})))}}})}(),function(){"use strict";angular.module("ionic.ui.content",[]).directive("pane",function(){return{restrict:"E",link:function(a,b){b.addClass("pane")}}}).directive("content",["$parse","$timeout",function(a,b){return{restrict:"E",replace:!0,template:'
',transclude:!0,scope:{onRefresh:"&",onRefreshOpening:"&",onScroll:"&",refreshComplete:"=",scroll:"@",hasScrollX:"@",hasScrollY:"@",scrollEventInterval:"@"},compile:function(a,c,d){return function(a,e){var f,g,h,i=!1,j=e.eq(0);if("true"==c.hasHeader&&j.addClass("has-header"),"true"==c.hasSubheader&&j.addClass("has-subheader"),"true"==c.hasFooter&&j.addClass("has-footer"),"true"==c.hasTabs&&j.addClass("has-tabs"),"false"===a.scroll)f=d(a.$parent),e.append(f);else if("true"===c.overflowScroll)j.addClass("overflow-scroll"),f=d(a.$parent),e.append(f);else{g=document.createElement("div"),g.className="scroll","true"==c.padding&&(g.className+=" padding",i=!0),e.append(g),f=d(a.$parent),angular.element(e[0].firstElementChild).append(f);var k=e[0].querySelector(".scroll-refresher"),l=k&&k.clientHeight||0;c.refreshComplete&&(a.refreshComplete=function(){a.scrollView&&(k&&k.classList.remove("active"),a.scrollView.finishPullToRefresh(),a.$parent.$broadcast("scroll.onRefreshComplete"))}),b(function(){h=new ionic.views.Scroll({el:e[0],scrollEventInterval:parseInt(a.scrollEventInterval,10)||40}),k&&h.activatePullToRefresh(l,function(){k.classList.add("active")},function(){k.classList.remove("refreshing"),k.classList.remove("active")},function(){k.classList.add("refreshing"),a.onRefresh(),a.$parent.$broadcast("scroll.onRefresh")}),e.bind("scroll",function(b){a.onScroll({event:b,scrollTop:b.detail?b.detail.scrollTop:b.originalEvent?b.originalEvent.detail.scrollTop:0,scrollLeft:b.detail?b.detail.scrollLeft:b.originalEvent?b.originalEvent.detail.scrollLeft:0})}),a.$parent.$on("scroll.refreshComplete",function(){h&&h.finishPullToRefresh()}),a.$parent.scrollView=h},500)}"true"!=c.padding||i||j.addClass("padding")}}}}]).directive("refresher",function(){return{restrict:"E",replace:!0,require:["^?content","^?list"],template:'
',scope:!0}}).directive("scrollRefresher",function(){return{restrict:"E",replace:!0,transclude:!0,template:'
'}})}(),function(){"use strict";angular.module("ionic.ui.list",["ngAnimate"]).directive("linkItem",["$timeout",function(a){return{restrict:"E",require:["?^list"],replace:!0,transclude:!0,scope:{item:"=",onSelect:"&",onDelete:"&",canDelete:"@",canReorder:"@",canSwipe:"@",buttons:"=",type:"@",href:"@"},template:'
',link:function(b,c,d,e){e[0]?e=e[0]:e[1]&&(e=e[1]),d.$observe("href",function(a){b.href=a}),c.addClass(d.type||"item-complex"),"item-complex"!==d.type&&(b.canSwipe=!1),b.isEditing=!1,b.deleteIcon=e.scope.deleteIcon,b.reorderIcon=e.scope.reorderIcon,b.showOptions=!0,b.buttonClicked=function(a){a.onButtonClicked&&a.onButtonClicked(b.item,a)};var f=e.scope.$watch("isEditing",function(c){b.isEditing=c,c?b.showOptions=!1:a(function(){b.showOptions=!0},200)});b.$on("$destroy",function(){f()})}}}]).directive("item",["$timeout",function(a){return{restrict:"E",require:["?^list"],replace:!0,transclude:!0,scope:{item:"=",onSelect:"&",onDelete:"&",canDelete:"@",canReorder:"@",canSwipe:"@",buttons:"=",type:"@"},template:'
',link:function(b,c,d,e){e[0]?e=e[0]:e[1]&&(e=e[1]),c.addClass(d.type||"item-complex"),"item-complex"!==d.type&&(b.canSwipe=!1),b.isEditing=!1,b.deleteIcon=e.scope.deleteIcon,b.reorderIcon=e.scope.reorderIcon,b.showOptions=!0,b.buttonClicked=function(a){a.onButtonClicked&&a.onButtonClicked(b.item,a)};var f=e.scope.$watch("isEditing",function(c){b.isEditing=c,c?b.showOptions=!1:a(function(){b.showOptions=!0},200)});b.$on("$destroy",function(){f()})}}}]).directive("list",function(){return{restrict:"E",replace:!0,transclude:!0,scope:{isEditing:"=",deleteIcon:"@",reorderIcon:"@",hasPullToRefresh:"@",onRefresh:"&",onRefreshOpening:"&",onReorder:"&",refreshComplete:"="},controller:function(a){var b=this;this.scope=a,a.$watch("isEditing",function(){b.isEditing=!0})},template:'
',link:function(a,b,c){var d=new ionic.views.ListView({el:b[0],listEl:b[0].children[0],hasPullToRefresh:"false"!==a.hasPullToRefresh,onRefresh:function(){a.onRefresh(),a.$parent.$broadcast("scroll.onRefresh")},onRefreshOpening:function(b){a.onRefreshOpening({amount:b}),a.$parent.$broadcast("scroll.onRefreshOpening",b)},onReorder:function(b,c,d){console.log("Moved",b,c,d),a.$apply(function(){a.onReorder({el:b,start:c,end:d})})}});a.listView=d,c.refreshComplete&&(a.refreshComplete=function(){d.doneRefreshing(),a.$parent.$broadcast("scroll.onRefreshComplete")}),c.animation&&b.addClass(c.animation)}}})}(),function(){"use strict";angular.module("ionic.ui.loading",[]).directive("loading",function(){return{restrict:"E",replace:!0,transclude:!0,link:function(a,b){b.addClass(a.animation||"")},template:'
'}})}(),function(){"use strict";angular.module("ionic.ui.navRouter",["ionic.service.gesture"]).run(["$rootScope",function(a){a.stackCursorPosition=0}]).directive("navRouter",["$rootScope","$timeout","$location","$window","$route",function(a,b,c,d,e){return{restrict:"AC",controller:["$scope","$element",function(a){this.navBar={isVisible:!0},a.navController=this,this.goBack=function(){a.direction="back"}}],link:function(b,f,g,h){if(f.length){b.animation=g.animation,f[0].classList.add("noop-animation");var i=!0,j=!1,k=function(){f[0].classList.remove("noop-animation"),f[0].classList.add(b.animation),f[0].classList.add("reverse")},l=function(){f[0].classList.remove("noop-animation"),f[0].classList.remove("reverse"),f[0].classList.add(b.animation)};b.$on("$routeChangeSuccess",function(){}),b.$on("$routeChangeStart",function(c,e){var f,g=d.history.state;return f="back"==b.direction||!!(g&&g.position<=a.stackCursorPosition),i||e&&e.$$route&&""===e.$$route.originalPath?(i=!1,void 0):((j||a.stackCursorPosition>0)&&(j=!0,f?k():l()),void 0)}),b.$on("$locationChangeSuccess",function(){a.actualLocation=c.path(),i&&"/"!==c.path()&&(i=!1)}),b.$on("navRouter.goBack",function(){h.goBack()}),b.$watch(function(){return c.path()},function(c,f){if(a.actualLocation===c){if(""===f)return;var g,h=d.history.state;g="back"==b.direction||!!(h&&h.position<=a.stackCursorPosition),g?a.stackCursorPosition--:a.stackCursorPosition++,b.direction="forwards"}else{var i=e.current;i&&(d.history.replaceState({position:a.stackCursorPosition}),a.stackCursorPosition++)}})}}}}]).directive("navBar",["$rootScope","$animate","$compile",function(a,b,c){var d=function(a,d,e,f,g){var h,i,j,k=d[0].querySelectorAll(".title"),l=f.title;if(!e||e===l)return g(),void 0;h=angular.element(k[0]),j=c('
')(a),h.replaceWith(j),i=c('
')(a);var m=d[0].firstElementChild||null;b.enter(i,d,m&&angular.element(m),function(){g()}),b.leave(angular.element(j),function(){})};return{restrict:"E",require:"^navRouter",replace:!0,scope:{type:"@",backButtonType:"@",backButtonLabel:"@",backButtonIcon:"@",alignTitle:"@"},template:'',link:function(b,c,e,f){c.addClass(e.animation),b.enableBackButton=!0,b.backButtonClass=e.backButtonType,e.backButtonIcon&&(b.backButtonClass+=" icon "+e.backButtonIcon),a.$watch("stackCursorPosition",function(a){b.showBackButton=a>0?!0:!1}),b.navController=f;var g=new ionic.views.HeaderBar({el:c[0],alignTitle:b.alignTitle||"center"});b.headerBarView=g,c.addClass(b.type);var h=function(a){var e=b.currentTitle;b.oldTitle=e,"undefined"!=typeof a.title&&(b.currentTitle=a.title),b.leftButtons=a.leftButtons,b.rightButtons=a.rightButtons,"undefined"!=typeof a.hideBackButton&&(b.enableBackButton=a.hideBackButton!==!0),a.animate!==!1&&"undefined"!=typeof a.title?d(b,c,e,a,function(){g.align()}):g.align()};b.$parent.$on("navRouter.pageChanged",function(a,b){h(b)}),b.$parent.$on("navRouter.pageShown",function(a,b){h(b)}),b.$parent.$on("navRouter.titleChanged",function(a,e){var f=b.currentTitle;b.oldTitle=f,"undefined"!=typeof e.title&&(b.currentTitle=e.title),e.animate!==!1&&"undefined"!=typeof e.title?d(b,c,f,e,function(){g.align()}):g.align()}),b.$parent.$on("navRouter.leftButtonsChanged",function(a,c){b.leftButtons=c}),b.$parent.$on("navRouter.rightButtonsChanged",function(a,c){b.rightButtons=c}),b.$on("$destroy",function(){})}}}]).directive("navPage",["$parse",function(a){return{restrict:"E",scope:!0,require:"^navRouter",link:function(b,c,d,e){c.addClass("pane"),b.icon=d.icon,b.iconOn=d.iconOn,b.iconOff=d.iconOff,b.hideBackButton=b.$eval(d.hideBackButton),b.hideNavBar=b.$eval(d.hideNavBar),e.navBar.isVisible=!b.hideNavBar,b.animate=b.$eval(d.animate),b.doesUpdateNavRouter=b.$eval(d.doesUpdateNavRouter)||!0;var f=a(d.leftButtons);b.$watch(f,function(a){b.leftButtons=a,b.doesUpdateNavRouter&&b.$emit("navRouter.leftButtonsChanged",b.leftButtons)});var g=a(d.rightButtons);b.$watch(g,function(a){b.rightButtons=a,b.doesUpdateNavRouter&&b.$emit("navRouter.rightButtonsChanged",b.rightButtons)});var h=a(d.title);b.$watch(h,function(a){b.title=a,b.$emit("navRouter.titleChanged",{title:a,animate:b.animate})})}}}]).directive("navBack",["$window","$rootScope","Gesture",function(a,b){return{restrict:"AC",link:function(c,d){var e=function(d){return b.stackCursorPosition>0&&(a.history.back(),c.$emit("navRouter.goBack")),d.alreadyHandled=!0,!1};d.bind("click",e)}}}])}(),function(){"use strict";angular.module("ionic.ui.radio",[]).directive("radio",function(){return{restrict:"E",replace:!0,require:"?ngModel",scope:{value:"@"},transclude:!0,template:'
',link:function(a,b,c,d){var e;d&&(e=b.children().eq(0),e.length&&d&&(e.bind("click",function(b){console.log("RADIO CLICK"),a.$apply(function(){d.$setViewValue(a.$eval(c.ngValue))}),b.alreadyHandled=!0}),d.$render=function(){var b=a.$eval(c.ngValue);b===d.$viewValue?e.attr("checked","checked"):e.removeAttr("checked")}))}}}).directive("radioButtons",function(){return{restrict:"E",replace:!0,require:"?ngModel",scope:{value:"@"},transclude:!0,template:'
',controller:["$scope","$element",function(a,b){this.select=function(a){for(var c,d=b.children(),e=0;e
',transclude:!0,scope:{direction:"@",onRefresh:"&",onScroll:"&",refreshComplete:"=",scroll:"@"},compile:function(a,c,d){return function(a,e){var f,g,h=document.createElement("div");h.className="scroll","true"==c.padding&&(h.className+=" padding",addedPadding=!0),e.append(h),f=d(a.$parent),angular.element(e[0].firstElementChild).append(f);var i=e[0].querySelector(".scroll-refresher"),j=i&&i.clientHeight||0;c.refreshComplete&&(a.refreshComplete=function(){a.scrollView&&(i&&i.classList.remove("active"),a.scrollView.finishPullToRefresh(),a.$parent.$broadcast("scroll.onRefreshComplete"))}),b(function(){var b=a.direction.indexOf("x")>=0,c=a.direction.indexOf("y")>=0;g=new ionic.views.Scroll({el:e[0],scrollingX:b,scrollingY:c}),i&&g.activatePullToRefresh(j,function(){i.classList.add("active")},function(){i.classList.remove("refreshing"),i.classList.remove("active")},function(){i.classList.add("refreshing"),a.onRefresh(),a.$parent.$broadcast("scroll.onRefresh")}),e.bind("scroll",function(b){a.onScroll({event:b,scrollTop:b.detail?b.detail.scrollTop:b.originalEvent?b.originalEvent.detail.scrollTop:0,scrollLeft:b.detail?b.detail.scrollLeft:b.originalEvent?b.originalEvent.detail.scrollLeft:0})}),a.$parent.$on("scroll.refreshComplete",function(){g&&g.finishPullToRefresh()}),a.$parent.scrollView=g},500)}}}}])}(),function(){"use strict";angular.module("ionic.ui.sideMenu",["ionic.service.gesture"]).directive("sideMenus",function(){return{restrict:"ECA",controller:["$scope",function(a){angular.extend(this,ionic.controllers.SideMenuController.prototype),ionic.controllers.SideMenuController.call(this,{left:{width:275},right:{width:275}}),a.sideMenuContentTranslateX=0,a.sideMenuController=this}],replace:!0,transclude:!0,template:'