mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2026-03-13 10:22:08 +08:00
15 lines
54 KiB
JavaScript
15 lines
54 KiB
JavaScript
/*!
|
|
* Copyright 2013 Drifty Co.
|
|
* http://drifty.com/
|
|
|
|
* Ionic - a powerful HTML5 mobile app framework.
|
|
* http://ionicframework.com/
|
|
*
|
|
*
|
|
* By @maxlynch, @helloimben, @adamdbradley <3
|
|
*
|
|
* Licensed under the MIT license. Please see LICENSE for more information.
|
|
*
|
|
*/
|
|
window.ionic={controllers:{},views:{}},function(a){function b(a){return a*a*a}function c(a){return 3*a*a*(1-a)}function d(a){return 3*a*(1-a)*(1-a)}function e(a){return(1-a)*(1-a)*(1-a)}var f=function(a,b){if(!a)var a=0;if(!b)var b=0;return{x:a,y:b}};a.Animator={getQuadraticBezier:function(a,g,h,i,j){var k=new f;return k.x=g.x*b(a)+h.x*c(a)+i.x*d(a)+j.x*e(a),k.y=g.y*b(a)+h.y*c(a)+i.y*d(a)+j.y*e(a),k},getCubicBezier:function(a,b,c,d,e){epsilon=1e3/60/e/4;var f=function(b){var d=1-b;return 3*d*d*b*a+3*d*b*b*c+b*b*b},g=function(a){var c=1-a;return 3*c*c*a*b+3*c*a*a*d+a*a*a},h=function(b){var d=1-b;return 3*(2*(b-1)*b+d*d)*a+3*(-b*b*b+2*d*b)*c};return function(a){var b,c,d,e,i,j,k=a;for(d=k,j=0;8>j;j++){if(e=f(d)-k,Math.abs(e)<epsilon)return g(d);if(i=h(d),Math.abs(i)<1e-6)break;d-=e/i}if(b=0,c=1,d=k,b>d)return g(b);if(d>c)return g(c);for(;c>b;){if(e=f(d),Math.abs(e-k)<epsilon)return g(d);k>e?b=d:c=d,d=.5*(c-b)+b}return g(d)}},animate:function(a){return{leave:function(){var b=function(){a.classList.remove("leave"),a.classList.remove("leave-active"),a.removeEventListener("webkitTransitionEnd",b),a.removeEventListener("transitionEnd",b)};return a.addEventListener("webkitTransitionEnd",b),a.addEventListener("transitionEnd",b),a.classList.add("leave"),a.classList.add("leave-active"),this},enter:function(){var b=function(){a.classList.remove("enter"),a.classList.remove("enter-active"),a.removeEventListener("webkitTransitionEnd",b),a.removeEventListener("transitionEnd",b)};return a.addEventListener("webkitTransitionEnd",b),a.addEventListener("transitionEnd",b),a.classList.add("enter"),a.classList.add("enter-active"),this}}}}}(ionic),function(a){a.DomUtil={getTextBounds:function(a){if(document.createRange){var b=document.createRange();if(b.selectNodeContents(a),b.getBoundingClientRect){var c=b.getBoundingClientRect(),d=window.scrollX,e=window.scrollY;return{top:c.top+e,left:c.left+d,right:c.left+d+c.width,bottom:c.top+e+c.height,width:c.width,height:c.height}}}return null},getChildIndex:function(a,b){if(b)for(var c,d=a.parentNode.children,e=0,f=0,g=d.length;g>e;e++)if(c=d[e],c.nodeName&&c.nodeName.toLowerCase()==b){if(c==a)return f;f++}return Array.prototype.slice.call(a.parentNode.children).indexOf(a)},swapNodes:function(a,b){b.parentNode.insertBefore(a,b)},getParentWithClass:function(a,b){for(;a.parentNode;){if(a.parentNode.classList&&a.parentNode.classList.contains(b))return a.parentNode;a=a.parentNode}return null},getParentOrSelfWithClass:function(a,b){for(;a;){if(a.classList&&a.classList.contains(b))return a;a=a.parentNode}return null}}}(window.ionic),function(a){window.CustomEvent||!function(){var a;a=function(a,b){var c;return b=b||{bubbles:!1,cancelable:!1,detail:void 0},c=document.createEvent("CustomEvent"),c.initCustomEvent(a,b.bubbles,b.cancelable,b.detail),c},a.prototype=window.Event.prototype,window.CustomEvent=a}(),a.EventController={VIRTUALIZED_EVENTS:["tap","swipe","swiperight","swipeleft","drag","hold","release"],trigger:function(a,b){var c=new CustomEvent(a,{detail:b});b&&b.target&&b.target.dispatchEvent(c)||window.dispatchEvent(c)},on:function(b,c,d){for(var e=d||window,f=0,g=this.VIRTUALIZED_EVENTS.length;g>f;f++)if(b==this.VIRTUALIZED_EVENTS[f]){var h=new a.Gesture(d);return h.on(b,c),h}e.addEventListener(b,c)},off:function(a,b,c){c.removeEventListener(a,b)},onGesture:function(b,c,d){var e=new a.Gesture(d);return e.on(b,c),e},offGesture:function(a,b,c){a.off(b,c)},handlePopState:function(){}},a.on=function(){a.EventController.on.apply(a.EventController,arguments)},a.off=function(){a.EventController.off.apply(a.EventController,arguments)},a.trigger=function(){a.EventController.trigger.apply(a.EventController.trigger,arguments)},a.onGesture=function(){return a.EventController.onGesture.apply(a.EventController.onGesture,arguments)},a.offGesture=function(){return a.EventController.offGesture.apply(a.EventController.offGesture,arguments)}}(window.ionic),function(a){function b(){if(!a.Gestures.READY){a.Gestures.event.determineEventTypes();for(var b in a.Gestures.gestures)a.Gestures.gestures.hasOwnProperty(b)&&a.Gestures.detection.register(a.Gestures.gestures[b]);a.Gestures.event.onTouch(a.Gestures.DOCUMENT,a.Gestures.EVENT_MOVE,a.Gestures.detection.detect),a.Gestures.event.onTouch(a.Gestures.DOCUMENT,a.Gestures.EVENT_END,a.Gestures.detection.detect),a.Gestures.READY=!0}}a.Gesture=function(b,c){return new a.Gestures.Instance(b,c||{})},a.Gestures={},a.Gestures.defaults={stop_browser_behavior:{userSelect:"none",touchAction:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}},a.Gestures.HAS_POINTEREVENTS=window.navigator.pointerEnabled||window.navigator.msPointerEnabled,a.Gestures.HAS_TOUCHEVENTS="ontouchstart"in window,a.Gestures.MOBILE_REGEX=/mobile|tablet|ip(ad|hone|od)|android|silk/i,a.Gestures.NO_MOUSEEVENTS=a.Gestures.HAS_TOUCHEVENTS&&window.navigator.userAgent.match(a.Gestures.MOBILE_REGEX),a.Gestures.EVENT_TYPES={},a.Gestures.DIRECTION_DOWN="down",a.Gestures.DIRECTION_LEFT="left",a.Gestures.DIRECTION_UP="up",a.Gestures.DIRECTION_RIGHT="right",a.Gestures.POINTER_MOUSE="mouse",a.Gestures.POINTER_TOUCH="touch",a.Gestures.POINTER_PEN="pen",a.Gestures.EVENT_START="start",a.Gestures.EVENT_MOVE="move",a.Gestures.EVENT_END="end",a.Gestures.DOCUMENT=window.document,a.Gestures.plugins={},a.Gestures.READY=!1,a.Gestures.Instance=function(c,d){var e=this;return null===c?(console.error("Null element passed to gesture (element does not exist). Not listening for gesture"),void 0):(b(),this.element=c,this.enabled=!0,this.options=a.Gestures.utils.extend(a.Gestures.utils.extend({},a.Gestures.defaults),d||{}),this.options.stop_browser_behavior&&a.Gestures.utils.stopDefaultBrowserBehavior(this.element,this.options.stop_browser_behavior),a.Gestures.event.onTouch(c,a.Gestures.EVENT_START,function(b){e.enabled&&a.Gestures.detection.startDetect(e,b)}),this)},a.Gestures.Instance.prototype={on:function(a,b){for(var c=a.split(" "),d=0;d<c.length;d++)this.element.addEventListener(c[d],b,!1);return this},off:function(a,b){for(var c=a.split(" "),d=0;d<c.length;d++)this.element.removeEventListener(c[d],b,!1);return this},trigger:function(b,c){var d=a.Gestures.DOCUMENT.createEvent("Event");d.initEvent(b,!0,!0),d.gesture=c;var e=this.element;return a.Gestures.utils.hasParent(c.target,e)&&(e=c.target),e.dispatchEvent(d),this},enable:function(a){return this.enabled=a,this}};var c=null,d=!1,e=!1;a.Gestures.event={bindDom:function(a,b,c){for(var d=b.split(" "),e=0;e<d.length;e++)a.addEventListener(d[e],c,!1)},onTouch:function(b,f,g){var h=this;this.bindDom(b,a.Gestures.EVENT_TYPES[f],function(i){var j=i.type.toLowerCase();if(!j.match(/mouse/)||!e){j.match(/touch/)||j.match(/pointerdown/)||j.match(/mouse/)&&1===i.which?d=!0:j.match(/mouse/)&&1!==i.which&&(d=!1),j.match(/touch|pointer/)&&(e=!0);var k=0;d&&(a.Gestures.HAS_POINTEREVENTS&&f!=a.Gestures.EVENT_END?k=a.Gestures.PointerEvent.updatePointer(f,i):j.match(/touch/)?k=i.touches.length:e||(k=j.match(/up/)?0:1),k>0&&f==a.Gestures.EVENT_END?f=a.Gestures.EVENT_MOVE:k||(f=a.Gestures.EVENT_END),(k||null===c)&&(c=i),g.call(a.Gestures.detection,h.collectEventData(b,f,h.getTouchList(c,f),i)),a.Gestures.HAS_POINTEREVENTS&&f==a.Gestures.EVENT_END&&(k=a.Gestures.PointerEvent.updatePointer(f,i))),k||(c=null,d=!1,e=!1,a.Gestures.PointerEvent.reset())}})},determineEventTypes:function(){var b;b=a.Gestures.HAS_POINTEREVENTS?a.Gestures.PointerEvent.getEvents():a.Gestures.NO_MOUSEEVENTS?["touchstart","touchmove","touchend touchcancel"]:["touchstart mousedown","touchmove mousemove","touchend touchcancel mouseup"],a.Gestures.EVENT_TYPES[a.Gestures.EVENT_START]=b[0],a.Gestures.EVENT_TYPES[a.Gestures.EVENT_MOVE]=b[1],a.Gestures.EVENT_TYPES[a.Gestures.EVENT_END]=b[2]},getTouchList:function(b){return a.Gestures.HAS_POINTEREVENTS?a.Gestures.PointerEvent.getTouchList():b.touches?b.touches:(b.indentifier=1,[b])},collectEventData:function(b,c,d,e){var f=a.Gestures.POINTER_TOUCH;return(e.type.match(/mouse/)||a.Gestures.PointerEvent.matchType(a.Gestures.POINTER_MOUSE,e))&&(f=a.Gestures.POINTER_MOUSE),{center:a.Gestures.utils.getCenter(d),timeStamp:(new Date).getTime(),target:e.target,touches:d,eventType:c,pointerType:f,srcEvent:e,preventDefault:function(){this.srcEvent.preventManipulation&&this.srcEvent.preventManipulation(),this.srcEvent.preventDefault&&this.srcEvent.preventDefault()},stopPropagation:function(){this.srcEvent.stopPropagation()},stopDetect:function(){return a.Gestures.detection.stopDetect()}}}},a.Gestures.PointerEvent={pointers:{},getTouchList:function(){var a=this,b=[];return Object.keys(a.pointers).sort().forEach(function(c){b.push(a.pointers[c])}),b},updatePointer:function(b,c){return b==a.Gestures.EVENT_END?this.pointers={}:(c.identifier=c.pointerId,this.pointers[c.pointerId]=c),Object.keys(this.pointers).length},matchType:function(b,c){if(!c.pointerType)return!1;var d={};return d[a.Gestures.POINTER_MOUSE]=c.pointerType==c.MSPOINTER_TYPE_MOUSE||c.pointerType==a.Gestures.POINTER_MOUSE,d[a.Gestures.POINTER_TOUCH]=c.pointerType==c.MSPOINTER_TYPE_TOUCH||c.pointerType==a.Gestures.POINTER_TOUCH,d[a.Gestures.POINTER_PEN]=c.pointerType==c.MSPOINTER_TYPE_PEN||c.pointerType==a.Gestures.POINTER_PEN,d[b]},getEvents:function(){return["pointerdown MSPointerDown","pointermove MSPointerMove","pointerup pointercancel MSPointerUp MSPointerCancel"]},reset:function(){this.pointers={}}},a.Gestures.utils={extend:function(a,b,c){for(var d in b)void 0!==a[d]&&c||(a[d]=b[d]);return a},hasParent:function(a,b){for(;a;){if(a==b)return!0;a=a.parentNode}return!1},getCenter:function(a){for(var b=[],c=[],d=0,e=a.length;e>d;d++)b.push(a[d].pageX),c.push(a[d].pageY);return{pageX:(Math.min.apply(Math,b)+Math.max.apply(Math,b))/2,pageY:(Math.min.apply(Math,c)+Math.max.apply(Math,c))/2}},getVelocity:function(a,b,c){return{x:Math.abs(b/a)||0,y:Math.abs(c/a)||0}},getAngle:function(a,b){var c=b.pageY-a.pageY,d=b.pageX-a.pageX;return 180*Math.atan2(c,d)/Math.PI},getDirection:function(b,c){var d=Math.abs(b.pageX-c.pageX),e=Math.abs(b.pageY-c.pageY);return d>=e?b.pageX-c.pageX>0?a.Gestures.DIRECTION_LEFT:a.Gestures.DIRECTION_RIGHT:b.pageY-c.pageY>0?a.Gestures.DIRECTION_UP:a.Gestures.DIRECTION_DOWN},getDistance:function(a,b){var c=b.pageX-a.pageX,d=b.pageY-a.pageY;return Math.sqrt(c*c+d*d)},getScale:function(a,b){return a.length>=2&&b.length>=2?this.getDistance(b[0],b[1])/this.getDistance(a[0],a[1]):1},getRotation:function(a,b){return a.length>=2&&b.length>=2?this.getAngle(b[1],b[0])-this.getAngle(a[1],a[0]):0},isVertical:function(b){return b==a.Gestures.DIRECTION_UP||b==a.Gestures.DIRECTION_DOWN},stopDefaultBrowserBehavior:function(a,b){var c,d=["webkit","khtml","moz","Moz","ms","o",""];if(b&&a.style){for(var e=0;e<d.length;e++)for(var f in b)b.hasOwnProperty(f)&&(c=f,d[e]&&(c=d[e]+c.substring(0,1).toUpperCase()+c.substring(1)),a.style[c]=b[f]);"none"==b.userSelect&&(a.onselectstart=function(){return!1})}}},a.Gestures.detection={gestures:[],current:null,previous:null,stopped:!1,startDetect:function(b,c){this.current||(this.stopped=!1,this.current={inst:b,startEvent:a.Gestures.utils.extend({},c),lastEvent:!1,name:""},this.detect(c))},detect:function(b){if(this.current&&!this.stopped){b=this.extendEventData(b);for(var c=this.current.inst.options,d=0,e=this.gestures.length;e>d;d++){var f=this.gestures[d];if(!this.stopped&&c[f.name]!==!1&&f.handler.call(f,b,this.current.inst)===!1){this.stopDetect();break}}return this.current&&(this.current.lastEvent=b),b.eventType==a.Gestures.EVENT_END&&!b.touches.length-1&&this.stopDetect(),b}},stopDetect:function(){this.previous=a.Gestures.utils.extend({},this.current),this.current=null,this.stopped=!0},extendEventData:function(b){var c=this.current.startEvent;if(c&&(b.touches.length!=c.touches.length||b.touches===c.touches)){c.touches=[];for(var d=0,e=b.touches.length;e>d;d++)c.touches.push(a.Gestures.utils.extend({},b.touches[d]))}var f=b.timeStamp-c.timeStamp,g=b.center.pageX-c.center.pageX,h=b.center.pageY-c.center.pageY,i=a.Gestures.utils.getVelocity(f,g,h);return a.Gestures.utils.extend(b,{deltaTime:f,deltaX:g,deltaY:h,velocityX:i.x,velocityY:i.y,distance:a.Gestures.utils.getDistance(c.center,b.center),angle:a.Gestures.utils.getAngle(c.center,b.center),direction:a.Gestures.utils.getDirection(c.center,b.center),scale:a.Gestures.utils.getScale(c.touches,b.touches),rotation:a.Gestures.utils.getRotation(c.touches,b.touches),startEvent:c}),b},register:function(b){var c=b.defaults||{};return void 0===c[b.name]&&(c[b.name]=!0),a.Gestures.utils.extend(a.Gestures.defaults,c,!0),b.index=b.index||1e3,this.gestures.push(b),this.gestures.sort(function(a,b){return a.index<b.index?-1:a.index>b.index?1:0}),this.gestures}},a.Gestures.gestures=a.Gestures.gestures||{},a.Gestures.gestures.Hold={name:"hold",index:10,defaults:{hold_timeout:500,hold_threshold:1},timer:null,handler:function(b,c){switch(b.eventType){case a.Gestures.EVENT_START:clearTimeout(this.timer),a.Gestures.detection.current.name=this.name,this.timer=setTimeout(function(){"hold"==a.Gestures.detection.current.name&&c.trigger("hold",b)},c.options.hold_timeout);break;case a.Gestures.EVENT_MOVE:b.distance>c.options.hold_threshold&&clearTimeout(this.timer);break;case a.Gestures.EVENT_END:clearTimeout(this.timer)}}},a.Gestures.gestures.Tap={name:"tap",index:100,defaults:{tap_max_touchtime:250,tap_max_distance:10,tap_always:!0,doubletap_distance:20,doubletap_interval:300},handler:function(b,c){if(b.eventType==a.Gestures.EVENT_END){var d=a.Gestures.detection.previous,e=!1;if(b.deltaTime>c.options.tap_max_touchtime||b.distance>c.options.tap_max_distance)return;d&&"tap"==d.name&&b.timeStamp-d.lastEvent.timeStamp<c.options.doubletap_interval&&b.distance<c.options.doubletap_distance&&(c.trigger("doubletap",b),e=!0),(!e||c.options.tap_always)&&(a.Gestures.detection.current.name="tap",c.trigger(a.Gestures.detection.current.name,b))}}},a.Gestures.gestures.Swipe={name:"swipe",index:40,defaults:{swipe_max_touches:1,swipe_velocity:.7},handler:function(b,c){if(b.eventType==a.Gestures.EVENT_END){if(c.options.swipe_max_touches>0&&b.touches.length>c.options.swipe_max_touches)return;(b.velocityX>c.options.swipe_velocity||b.velocityY>c.options.swipe_velocity)&&(c.trigger(this.name,b),c.trigger(this.name+b.direction,b))}}},a.Gestures.gestures.Drag={name:"drag",index:50,defaults:{drag_min_distance:10,correct_for_drag_min_distance:!0,drag_max_touches:1,drag_block_horizontal:!0,drag_block_vertical:!0,drag_lock_to_axis:!1,drag_lock_min_distance:25},triggered:!1,handler:function(b,c){if(a.Gestures.detection.current.name!=this.name&&this.triggered)return c.trigger(this.name+"end",b),this.triggered=!1,void 0;if(!(c.options.drag_max_touches>0&&b.touches.length>c.options.drag_max_touches))switch(b.eventType){case a.Gestures.EVENT_START:this.triggered=!1;break;case a.Gestures.EVENT_MOVE:if(b.distance<c.options.drag_min_distance&&a.Gestures.detection.current.name!=this.name)return;if(a.Gestures.detection.current.name!=this.name&&(a.Gestures.detection.current.name=this.name,c.options.correct_for_drag_min_distance)){var d=Math.abs(c.options.drag_min_distance/b.distance);a.Gestures.detection.current.startEvent.center.pageX+=b.deltaX*d,a.Gestures.detection.current.startEvent.center.pageY+=b.deltaY*d,b=a.Gestures.detection.extendEventData(b)}(a.Gestures.detection.current.lastEvent.drag_locked_to_axis||c.options.drag_lock_to_axis&&c.options.drag_lock_min_distance<=b.distance)&&(b.drag_locked_to_axis=!0);var e=a.Gestures.detection.current.lastEvent.direction;b.drag_locked_to_axis&&e!==b.direction&&(b.direction=a.Gestures.utils.isVertical(e)?b.deltaY<0?a.Gestures.DIRECTION_UP:a.Gestures.DIRECTION_DOWN:b.deltaX<0?a.Gestures.DIRECTION_LEFT:a.Gestures.DIRECTION_RIGHT),this.triggered||(c.trigger(this.name+"start",b),this.triggered=!0),c.trigger(this.name,b),c.trigger(this.name+b.direction,b),(c.options.drag_block_vertical&&a.Gestures.utils.isVertical(b.direction)||c.options.drag_block_horizontal&&!a.Gestures.utils.isVertical(b.direction))&&b.preventDefault();break;case a.Gestures.EVENT_END:this.triggered&&c.trigger(this.name+"end",b),this.triggered=!1}}},a.Gestures.gestures.Transform={name:"transform",index:45,defaults:{transform_min_scale:.01,transform_min_rotation:1,transform_always_block:!1},triggered:!1,handler:function(b,c){if(a.Gestures.detection.current.name!=this.name&&this.triggered)return c.trigger(this.name+"end",b),this.triggered=!1,void 0;if(!(b.touches.length<2))switch(c.options.transform_always_block&&b.preventDefault(),b.eventType){case a.Gestures.EVENT_START:this.triggered=!1;break;case a.Gestures.EVENT_MOVE:var d=Math.abs(1-b.scale),e=Math.abs(b.rotation);if(d<c.options.transform_min_scale&&e<c.options.transform_min_rotation)return;a.Gestures.detection.current.name=this.name,this.triggered||(c.trigger(this.name+"start",b),this.triggered=!0),c.trigger(this.name,b),e>c.options.transform_min_rotation&&c.trigger("rotate",b),d>c.options.transform_min_scale&&(c.trigger("pinch",b),c.trigger("pinch"+(b.scale<1?"in":"out"),b));break;case a.Gestures.EVENT_END:this.triggered&&c.trigger(this.name+"end",b),this.triggered=!1}}},a.Gestures.gestures.Touch={name:"touch",index:-1/0,defaults:{prevent_default:!1,prevent_mouseevents:!1},handler:function(b,c){return c.options.prevent_mouseevents&&b.pointerType==a.Gestures.POINTER_MOUSE?(b.stopDetect(),void 0):(c.options.prevent_default&&b.preventDefault(),b.eventType==a.Gestures.EVENT_START&&c.trigger(this.name,b),void 0)}},a.Gestures.gestures.Release={name:"release",index:1/0,handler:function(b,c){b.eventType==a.Gestures.EVENT_END&&c.trigger(this.name,b)}}}(window.ionic),function(a){a.Platform={detect:function(){var a=[];this._checkPlatforms(a);for(var b=0;b<a.length;b++)document.body.classList.add("platform-"+a[b])},_checkPlatforms:function(a){this.isCordova()&&a.push("cordova"),this.isIOS7()&&a.push("ios7")},isCordova:function(){return window.cordova||window.PhoneGap||window.phonegap},isIOS7:function(){return window.device?parseFloat(window.device.version)>=7:!1}},a.Platform.detect()}(window.ionic),function(a,b,c){"use strict";function d(a,b){return"radio"===a.type||"checkbox"===a.type||("submit"===a.type||"button"===a.type?a.click():a.focus()),b.stopPropagation(),b.preventDefault(),!1}function e(a){if(a.gesture&&"touch"===a.gesture.pointerType&&a.gesture.srcEvent&&!a.alreadyHandled){a=a.gesture.srcEvent;for(var c=a.target;c;){if("INPUT"===c.tagName||"TEXTAREA"===c.tagName||"SELECT"===c.tagName)return d(c,a);if("LABEL"===c.tagName){if(c.control)return d(c.control,a)}else if("A"===c.tagName){var e=c.getAttribute("href");if(e)return c.click(),a.stopPropagation(),a.preventDefault(),!1}c=c.parentElement}var f=b.activeElement;return!f||"INPUT"!==f.tagName&&"TEXTAREA"!==f.tagName&&"SELECT"!==f.tagName?void 0:(f.blur(),a.stopPropagation(),a.preventDefault(),!1)}}a.rAF=function(){return a.requestAnimationFrame||a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||function(b){a.setTimeout(b,1e3/60)}}(),c.CSS={},function(){for(var a=b.createElement("div"),d=["webkitTransform","transform","-webkit-transform","webkit-transform","-moz-transform","moz-transform","MozTransform","mozTransform"],e=0;e<d.length;e++)if(void 0!==a.style[d[e]]){c.CSS.TRANSFORM=d[e];break}}(),c.on("tap",e,a)}(this,document,ionic),function(a){a.Utils={arrayMove:function(a,b,c){if(c>=a.length)for(var d=c-a.length;d--+1;)a.push(void 0);return a.splice(c,0,a.splice(b,1)[0]),a},proxy:function(a,b){var c=Array.prototype.slice.call(arguments,2);return function(){return a.apply(b,c.concat(Array.prototype.slice.call(arguments)))}},debounce:function(a,b,c){var d,e,f,g,h;return function(){f=this,e=arguments,g=new Date;var i=function(){var j=new Date-g;b>j?d=setTimeout(i,b-j):(d=null,c||(h=a.apply(f,e)))},j=c&&!d;return d||(d=setTimeout(i,b)),j&&(h=a.apply(f,e)),h}},throttle:function(a,b,c){var d,e,f,g=null,h=0;c||(c={});var i=function(){h=c.leading===!1?0:Date.now(),g=null,f=a.apply(d,e)};return function(){var j=Date.now();h||c.leading!==!1||(h=j);var k=b-(j-h);return d=this,e=arguments,0>=k?(clearTimeout(g),g=null,h=j,f=a.apply(d,e)):g||c.trailing===!1||(g=setTimeout(i,k)),f}},inherit:function(b,c){var d,e=this;d=b&&b.hasOwnProperty("constructor")?b.constructor:function(){return e.apply(this,arguments)},a.extend(d,e,c);var f=function(){this.constructor=d};return f.prototype=e.prototype,d.prototype=new f,b&&a.extend(d.prototype,b),d.__super__=e.prototype,d},extend:function(a){for(var b=Array.prototype.slice.call(arguments,1),c=0;c<b.length;c++){var d=b[c];if(d)for(var e in d)a[e]=d[e]}return a}},a.inherit=a.Utils.inherit,a.extend=a.Utils.extend,a.throttle=a.Utils.throttle,a.proxy=a.Utils.proxy,a.debounce=a.Utils.debounce}(window.ionic),function(a){"use strict";a.views.View=function(){this.initialize.apply(this,arguments)},a.views.View.inherit=a.inherit,a.extend(a.views.View.prototype,{initialize:function(){}})}(window.ionic),function(a){"use strict";var b={quadratic:"cubic-bezier(0.25, 0.46, 0.45, 0.94)",circular:"cubic-bezier(0.1, 0.57, 0.1, 1)",circular2:"cubic-bezier(0.075, 0.82, 0.165, 1)",bounce:"cubic-bezier(.02,.69,.67,1)",toiletSeat:"cubic-bezier(0.05, 0.60, 0.05, 0.60)"};a.views.Scroll=a.views.View.inherit({initialize:function(c){var d=this;c=a.Utils.extend({decelerationRate:a.views.Scroll.prototype.DECEL_RATE_NORMAL,dragThreshold:10,rubberBandResistance:2,scrollEventName:"momentumScrolled",scrollEndEventName:"momentumScrollEnd",hasPullToRefresh:!0,disableNonOverflowRubberBand:!0,onRefreshOpening:function(){},onRefresh:function(){},refreshEasing:b.bounce,refreshEasingTime:400,refreshOpeningInterval:100,inertialEventInterval:50,mouseWheelSpeed:20,invertWheel:!1,isVerticalEnabled:!0,isHorizontalEnabled:!1,bounceEasing:b.bounce,bounceTime:600},c),a.extend(this,c),this.el=c.el,this.y=0,this.x=0;var e=d.onRefreshOpening;d.onRefreshOpening=a.throttle(function(a){e&&e(a)},100),a.onGesture("drag",function(a){d._handleDrag(a)},this.el),a.onGesture("release",function(a){d._handleEndDrag(a)},this.el),a.on("mousewheel",function(a){d._wheel(a)},this.el),a.on("DOMMouseScroll",function(a){d._wheel(a)},this.el),a.on(this.scrollEndEventName,function(a){d._onScrollEnd(a)},this.el),a.on("webkitTransitionEnd",function(a){d._onTransitionEnd(a)})},doneRefreshing:function(){var a=this;this._scrollTo(0,0,this.refreshEasingTime,this.refreshEasing),this._isHoldingRefresh=!1,setTimeout(function(){a._refresher.style.display="none",a._isRefresherHidden=!0},this.refreshEasingTime)},scrollTo:function(a,b,c,d){this._scrollTo(-a,-b,c,d)},_scrollTo:function(b,c,d,e){var f=this;d=d||0;var g=Date.now();e=e||"cubic-bezier(0.1, 0.57, 0.1, 1)";var h=e.replace("cubic-bezier(","").replace(")","").split(",");h=[parseFloat(h[0]),parseFloat(h[1]),parseFloat(h[2]),parseFloat(h[3])];var i=a.Animator.getCubicBezier(h[0],h[1],h[2],h[3],d),j=this.x,k=this.y,l=this.el;null!==b?this.x=b:b=this.x,null!==c?this.y=c:c=this.y,j==b&&k==c&&(d=0);var m=j-b,n=k-c;l.offsetHeight,l.style.webkitTransitionTimingFunction=e,l.style.webkitTransitionDuration=d,l.style[a.CSS.TRANSFORM]="translate3d("+b+"px,"+c+"px, 0)",clearTimeout(this._momentumStepTimeout),d>0?this._momentumStepTimeout=setTimeout(function o(){var b=Math.min(d,Math.abs(Date.now()-g)),c=b/d,e=j-m*i(c),h=k-n*i(c);f.didScroll&&f.didScroll({target:f.el,scrollLeft:-e,scrollTop:-h}),a.trigger(f.scrollEventName,{target:f.el,scrollLeft:-e,scrollTop:-h}),f.isDragging&&(f._momentumStepTimeout=setTimeout(o,f.inertialEventInterval))},this.inertialEventInterval):(this.didScroll&&this.didScroll({target:this.el,scrollLeft:-this.x,scrollTop:-this.y}),a.trigger(this.scrollEventName,{target:this.el,scrollLeft:-this.x,scrollTop:-this.y}))},needsWrapping:function(){var a=this.el.scrollWidth,b=this.el.scrollHeight,c=this.el.parentNode.offsetWidth,d=this.el.parentNode.offsetHeight,e=Math.min(0,-a+c),f=Math.min(0,-b+d);return this.isHorizontalEnabled&&(this.x>0||this.x<e)?!0:this.isVerticalEnabled&&(this.y>0||this.y<f)?!0:!1},wrapScrollPosition:function(a){var b=this,c=b.el.scrollWidth,d=b.el.scrollHeight,e=b.el.parentNode.offsetWidth,f=b.el.parentNode.offsetHeight,g=Math.min(0,-c+e),h=Math.min(0,-d+f),i=b.x,j=b.y;return!b.isHorizontalEnabled||b.x>0?i=0:b.x<g&&(i=g),!b.isVerticalEnabled||b.y>0?j=0:b.y<h&&(j=h),i==b.x&&j==b.y?!1:(b._scrollTo(i,j,a||0,b.bounceEasing),!0)},_wheel:function(a){var b,c,d,e,f=this,g=this.el.scrollWidth,h=this.el.scrollHeight,i=this.el.parentNode.offsetWidth,j=this.el.parentNode.offsetHeight,k=Math.min(0,-g+i),l=Math.min(0,-h+j);if(clearTimeout(this.wheelTimeout),this.wheelTimeout=setTimeout(function(){f._doneScrolling()},400),a.preventDefault(),"wheelDeltaX"in a)b=a.wheelDeltaX/120,c=a.wheelDeltaY/120;else if("wheelDelta"in a)b=c=a.wheelDelta/120;else{if(!("detail"in a))return;b=c=-a.detail/3}b*=this.mouseWheelSpeed,c*=this.mouseWheelSpeed,this.isVerticalEnabled||(b=c,c=0),d=this.x+(this.isHorizontalEnabled?b*(this.invertWheel?-1:1):0),e=this.y+(this.isVerticalEnabled?c*(this.invertWheel?-1:1):0),d>0?d=0:k>d&&(d=k),e>0?e=0:l>e&&(e=l),this._scrollTo(d,e,0)},_getMomentum:function(a,b,c,d,e){var f,g,h=a-b,i=Math.abs(h)/c,j=6e-4;return f=a+i*i/(2*j)*(0>h?-1:1),g=i/j,0===i?{destination:a,duration:0}:(d>f?(f=e?d-e/2.5*(i/8):d,h=Math.abs(f-a),g=h/i):f>0&&(f=e?e/2.5*(i/8):0,h=Math.abs(a)+f,g=h/i),{destination:Math.round(f),duration:g})},_onTransitionEnd:function(a){var b=this;if(a.target==this.el&&!this._isHoldingRefresh){var c=this.needsWrapping();c&&this._didEndScroll?(this._didEndScroll=!1,this._doneScrolling()):c||(this._didEndScroll=!1,this._doneScrolling()),this.el.style.webkitTransitionDuration="0",window.rAF(function(){b.wrapScrollPosition(b.bounceTime)&&(b._didEndScroll=!0)})}},_onScrollEnd:function(){this.isDragging=!1,this._drag=null,this.el.classList.remove("scroll-scrolling"),this.el.style.webkitTransitionDuration="0",clearTimeout(this._momentumStepTimeout)},_initDrag:function(){this._onScrollEnd(),this._isStopped=!1},_startDrag:function(a){this._initDrag();var b=parseFloat(this.el.style.webkitTransform.replace("translate3d(","").split(",")[0])||0,c=parseFloat(this.el.style.webkitTransform.replace("translate3d(","").split(",")[1])||0,d=this.el.scrollWidth,e=this.el.scrollHeight,f=this.el.parentNode.offsetWidth,g=this.el.parentNode.offsetHeight;if(this.x=b,this.y=c,this.hasPullToRefresh&&(this._refresher=document.querySelector(".scroll-refresher"),this._refresher&&(this._refresherHeight=parseFloat(this._refresher.firstElementChild.offsetHeight)||100,this.y<0?(this._isRefresherHidden=!0,this._refresher.style.display="none"):(this._isRefresherHidden=!1,this._didTriggerRefresh=!1,this._refresher.style.display="block"),this._isHoldingRefresh=!1,this._refresher&&this._refresher.classList.remove("scroll-refreshing"))),this._drag={direction:"v",pointX:a.gesture.touches[0].pageX,pointY:a.gesture.touches[0].pageY,startX:b,startY:c,resist:1,startTime:Date.now()},this.disableNonOverflowRubberBand===!0&&!this._refresher){var h=Math.min(0,-d+f),i=Math.min(0,-e+g);(this.isHorizontalEnabled&&0==h||this.isVerticalEnabled&&0==i)&&(this._drag.noRubberBand=!0)}},_handleDrag:function(b){var c=this;if(c._isStopped)return c._initDrag(),void 0;if(c._drag||(c._startDrag(b),c._drag)){b.preventDefault();var d=b.gesture.touches[0].pageX,e=b.gesture.touches[0].pageY,f=d-c._drag.pointX,g=e-c._drag.pointY;if(c._drag.pointX=d,c._drag.pointY=e,!c.isDragging&&(Math.abs(b.gesture.deltaY)>c.dragThreshold||Math.abs(b.gesture.deltaX)>c.dragThreshold)&&(c.isDragging=!0),c.isDragging){var h=c._drag;window.rAF(function(){var b=c.el.scrollWidth,d=c.el.scrollHeight,e=c.el.parentNode.offsetWidth,i=c.el.parentNode.offsetHeight,j=Math.min(0,-b+e),k=Math.min(0,-d+i),l=Date.now(),m=c.x+f,n=c.y+g;if(h.noRubberBand===!0?(n>0?n=0:k>n&&(n=k),m>0?m=0:j>m&&(m=j)):(n>0||-n+i>d)&&(n=c.y+g/c.rubberBandResistance),c.isHorizontalEnabled||(m=0),c.isVerticalEnabled||(n=0),c._refresher&&n>0){if(c._isRefresherHidden&&(c._refresher.style.display="block",c._isRefresherHidden=!1),n>c._refresherHeight&&!c._isHoldingRefresh)c._isHoldingRefresh=!0;else{var o=Math.min(1,n/c._refresherHeight);c.onRefreshOpening(o)}c.el.style[a.CSS.TRANSFORM]="translate3d("+m+"px,"+n+"px, 0)"}else c._isHoldingRefresh=!1,c.refresher&&!c._isRefresherHidden&&(c._refresher.style.display="none",c._isRefresherHidden=!0),c.el.style[a.CSS.TRANSFORM]="translate3d("+m+"px,"+n+"px, 0)";c.x=m,c.y=n,l-h.startTime>300&&(h.startTime=l,h.startX=c.x,h.startY=c.y),c.didScroll&&c.didScroll({target:c.el,scrollLeft:-m,scrollTop:-n}),a.trigger(c.scrollEventName,{target:c.el,scrollLeft:-m,scrollTop:-n})})}}},_handleEndDrag:function(a){return this._drag?(this._isStopped=!0,this._animateToStop(a),void 0):(this._initDrag(),void 0)},_animateToStop:function(){var a=this;window.rAF(function(){var c=a._drag,d=a.el.scrollWidth,e=a.el.scrollHeight,f=a.el.parentNode.offsetWidth,g=a.el.parentNode.offsetHeight,h=Date.now()-a._drag.startTime,i=0,j="";if(a._refresher&&a.y>0)return Math.ceil(a.y)>=a._refresherHeight?(a._refresher.classList.add("scroll-refreshing"),a._scrollTo(0,a._refresherHeight,100,a.refreshEasing),a._didTriggerRefresh||(a.onRefresh&&a.onRefresh(),a._didTriggerRefresh=!0)):(a._refresher.classList.add("scroll-refreshing"),a._scrollTo(0,0,a.refreshEasingTime,a.refreshEasing)),void 0;var k=Math.round(a.x),l=Math.round(a.y);if(a._scrollTo(k,l),!a.wrapScrollPosition(a.bounceTime)){if(300>h){var m=a._getMomentum(a.x,c.startX,h,f-d,f),n=a._getMomentum(a.y,c.startY,h,g-e,g);k=m.destination,l=n.destination,i=Math.max(m.duration,n.duration)}k!=a.x||l!=a.y?((k>0||-d+f>k||l>0||-e+g>l)&&(j=b.bounce),a._scrollTo(k,l,i,j)):a._doneScrolling()}})},_doneScrolling:function(){this.didStopScrolling&&this.didStopScrolling({target:this.el,scrollLeft:this.x,scrollTop:this.y}),a.trigger(this.scrollEndEventName,{target:this.el,scrollLeft:this.x,scrollTop:this.y})}},{DECEL_RATE_NORMAL:.998,DECEL_RATE_FAST:.99,DECEL_RATE_SLOW:.996})}(ionic),function(a){"use strict";a.views.ActionSheet=a.views.View.inherit({initialize:function(a){this.el=a.el},show:function(){this.el.offsetWidth,this.el.classList.add("active")},hide:function(){this.el.offsetWidth,this.el.classList.remove("active")}})}(ionic),function(a){"use strict";a.views.HeaderBar=a.views.View.inherit({initialize:function(b){this.el=b.el,a.extend(this,{alignTitle:"center"},b),this.align()},align:function(){window.rAF(a.proxy(function(){var b,c,d,e=(this.el.children,this.el.childNodes),f=window.getComputedStyle(this.el,null),g=(parseFloat(f.paddingLeft),parseFloat(f.paddingRight),this.el.offsetWidth,this.el.querySelector(".title"));if(g){var h=0,i=0,j=Array.prototype.indexOf.call(this.el.childNodes,g);for(b=0;j>b;b++)d=null,c=e[b],3==c.nodeType?d=a.DomUtil.getTextBounds(c):1==c.nodeType&&(d=c.getBoundingClientRect()),d&&(h+=d.width);for(b=j+1;b<e.length;b++)d=null,c=e[b],3==c.nodeType?d=a.DomUtil.getTextBounds(c):1==c.nodeType&&(d=c.getBoundingClientRect()),d&&(i+=d.width);var k=Math.max(h,i)+10;"center"==this.alignTitle?(g.style.left=k+"px",g.style.right=k+"px",g.offsetWidth<g.scrollWidth?(g.style.textAlign="left",g.style.right=i+5+"px"):g.style.textAlign="center"):"left"==this.alignTitle?(g.style.textAlign="left",g.style.left=h+15+"px"):"right"==this.alignTitle&&(g.style.textAlign="right",g.style.right=i+15+"px")}},this))}})}(ionic),function(a){"use strict";var b="item",c="item-content",d="item-sliding",e="item-options",f="item-placeholder",g="item-reordering",h="item-drag",i=function(){};i.prototype={start:function(){},drag:function(){},end:function(){}};var j=function(a){this.dragThresholdX=a.dragThresholdX||10,this.el=a.el};j.prototype=new i,j.prototype.start=function(a){var f,g,h,i;a.target.classList.contains(c)?f=a.target:a.target.classList.contains(b)&&(f=a.target.querySelector("."+c)),f&&(f.classList.remove(d),h=parseFloat(f.style.webkitTransform.replace("translate3d(","").split(",")[0])||0,g=f.parentNode.querySelector("."+e),g&&(i=g.offsetWidth,this._currentDrag={buttonsWidth:i,content:f,startOffsetX:h}))},j.prototype.drag=function(a){var b,c=this;window.rAF(function(){if(c._currentDrag&&(!c._isDragging&&(Math.abs(a.gesture.deltaX)>c.dragThresholdX||Math.abs(c._currentDrag.startOffsetX)>0)&&(c._isDragging=!0),c._isDragging)){b=c._currentDrag.buttonsWidth;
|
|
var d=Math.min(0,c._currentDrag.startOffsetX+a.gesture.deltaX);-b>d&&(d=Math.min(-b,-b+.4*(a.gesture.deltaX+b))),c._currentDrag.content.style.webkitTransform="translate3d("+d+"px, 0, 0)"}})},j.prototype.end=function(a,b){var c=this;if(!this._currentDrag)return b&&b(),void 0;var e=-this._currentDrag.buttonsWidth;a.gesture.deltaX>-(this._currentDrag.buttonsWidth/2)&&("left"==a.gesture.direction&&Math.abs(a.gesture.velocityX)<.3?e=0:"right"==a.gesture.direction&&(e=0));var f=this._currentDrag.content,g=function(a){"-webkit-transform"==a.propertyName&&f.classList.remove(d),a.target.removeEventListener("webkitTransitionEnd",g)};window.rAF(function(){var a=parseFloat(c._currentDrag.content.style.webkitTransform.replace("translate3d(","").split(",")[0])||0;a!==e&&(c._currentDrag.content.classList.add(d),c._currentDrag.content.addEventListener("webkitTransitionEnd",g)),c._currentDrag.content.style.webkitTransform="translate3d("+e+"px, 0, 0)",c._currentDrag=null,b&&b()})};var k=function(a){this.dragThresholdY=a.dragThresholdY||0,this.onReorder=a.onReorder,this.el=a.el};k.prototype=new i,k.prototype.start=function(){var b=this.el.offsetTop,c=a.DomUtil.getChildIndex(this.el,this.el.nodeName.toLowerCase()),d=this.el.cloneNode(!0);d.classList.add(f),this.el.parentNode.insertBefore(d,this.el),this.el.classList.add(g),this._currentDrag={startOffsetTop:b,startIndex:c,placeholder:d}},k.prototype.drag=function(a){var b=this;window.rAF(function(){if(b._currentDrag&&(!b._isDragging&&Math.abs(a.gesture.deltaY)>b.dragThresholdY&&(b._isDragging=!0),b._isDragging)){var c=b._currentDrag.startOffsetTop+a.gesture.deltaY;b.el.style.top=c+"px",b._currentDrag.currentY=c,b._reorderItems()}})},k.prototype._reorderItems=function(){var b=(this._currentDrag.placeholder,Array.prototype.slice.call(this._currentDrag.placeholder.parentNode.children));b.splice(b.indexOf(this.el),1);var c=b.indexOf(this._currentDrag.placeholder),d=b[Math.max(0,c-1)],e=b[Math.min(b.length,c+1)],f=this._currentDrag.currentY;return d&&f<d.offsetTop+d.offsetHeight/2?(a.DomUtil.swapNodes(this._currentDrag.placeholder,d),c-1):e&&f>e.offsetTop+e.offsetHeight/2?(a.DomUtil.swapNodes(e,this._currentDrag.placeholder),c+1):void 0},k.prototype.end=function(b,c){if(!this._currentDrag)return c&&c(),void 0;var d=this._currentDrag.placeholder;this.el.classList.remove(g),this.el.style.top=0;var e=a.DomUtil.getChildIndex(d,d.nodeName.toLowerCase());d.parentNode.insertBefore(this.el,d),d.parentNode.removeChild(d),this.onReorder&&this.onReorder(this.el,this._currentDrag.startIndex,e),this._currentDrag=null,c&&c()},a.views.ListView=a.views.Scroll.inherit({initialize:function(b){var c=this;b=a.extend({onReorder:function(){},virtualRemoveThreshold:-200,virtualAddThreshold:200},b),a.extend(this,b),!this.itemHeight&&this.listEl&&(this.itemHeight=this.listEl.children[0]&&parseInt(this.listEl.children[0].style.height)),a.views.ListView.__super__.initialize.call(this,b),this.onRefresh=b.onRefresh||function(){},this.onRefreshOpening=b.onRefreshOpening||function(){},this.onRefreshHolding=b.onRefreshHolding||function(){},window.ionic.onGesture("touch",function(a){c._handleTouch(a)},this.el),window.ionic.onGesture("release",function(a){c._handleTouchRelease(a)},this.el),this._initDrag()},stopRefreshing:function(){var a=this.el.querySelector(".list-refresher");a.style.height="0px"},didScroll:function(a){if(this.isVirtual){var b=this.itemHeight,c=(this.listEl.children.length,a.target.scrollHeight),d=this.el.parentNode.offsetHeight,e=(a.scrollTop,Math.max(0,a.scrollTop+this.virtualRemoveThreshold)),f=Math.min(c,Math.abs(a.scrollTop)+d+this.virtualAddThreshold),g=Math.floor((f-e)/b),h=parseInt(Math.abs(e/b)),i=parseInt(Math.abs(f/b));this._virtualItemsToRemove=Array.prototype.slice.call(this.listEl.children,0,h);{Array.prototype.slice.call(this.listEl.children,h,h+g)}this.renderViewport&&this.renderViewport(e,f,h,i)}},didStopScrolling:function(){if(this.isVirtual)for(var a=0;a<this._virtualItemsToRemove.length;a++){{this._virtualItemsToRemove[a]}this.didHideItem&&this.didHideItem(a)}},_initDrag:function(){a.views.ListView.__super__._initDrag.call(this),this._dragOp=null},_getItem:function(a){for(;a;){if(a.classList.contains(b))return a;a=a.parentNode}return null},_startDrag:function(b){var c=this;if(this._isDragging=!1,!a.DomUtil.getParentOrSelfWithClass(b.target,h)||"up"!=b.gesture.direction&&"down"!=b.gesture.direction){if(("left"==b.gesture.direction||"right"==b.gesture.direction)&&Math.abs(b.gesture.deltaX)>5)return this._dragOp=new j({el:this.el}),this._dragOp.start(b),b.preventDefault(),void 0}else{var d=this._getItem(b.target);if(d)return this._dragOp=new k({el:d,onReorder:function(a,b,d){c.onReorder&&c.onReorder(a,b,d)}}),this._dragOp.start(b),b.preventDefault(),void 0}a.views.ListView.__super__._startDrag.call(this,b)},_handleEndDrag:function(b){var c=this;return this._dragOp?(this._dragOp.end(b,function(){c._initDrag()}),void 0):(a.views.ListView.__super__._handleEndDrag.call(this,b),void 0)},_handleDrag:function(b){return(Math.abs(b.gesture.deltaX)>10||Math.abs(b.gesture.deltaY)>10)&&clearTimeout(this._touchTimeout),clearTimeout(this._touchTimeout),this.isDragging||this._dragOp||this._startDrag(b),this._dragOp?(b.preventDefault(),this._dragOp.drag(b),void 0):(a.views.ListView.__super__._handleDrag.call(this,b),void 0)},_handleTouch:function(c){var d=this,e=a.DomUtil.getParentOrSelfWithClass(c.target,b);e&&(this._touchTimeout=setTimeout(function(){for(var a=d.el.querySelectorAll(".item"),b=0,c=a.length;c>b;b++)a[b].classList.remove("active");e.classList.add("active")},250))},_handleTouchRelease:function(){var a=this;clearTimeout(this._touchTimeout);for(var b=a.el.querySelectorAll(".item"),c=0,d=b.length;d>c;c++)b[c].classList.remove("active")}})}(ionic),function(a){"use strict";a.views.Loading=a.views.View.inherit({initialize:function(a){this.el=a.el,this.maxWidth=a.maxWidth||200,this._loadingBox=this.el.querySelector(".loading")},show:function(){var a=this;if(this._loadingBox){var b=a._loadingBox,c=Math.min(a.maxWidth,Math.max(window.outerWidth-40,b.offsetWidth));b.style.width=c,b.style.marginLeft=-b.offsetWidth/2+"px",b.style.marginTop=-b.offsetHeight/2+"px",a.el.classList.add("active")}},hide:function(){this.el.offsetWidth,this.el.classList.remove("active")}})}(ionic),function(a){"use strict";a.views.Modal=a.views.View.inherit({initialize:function(b){b=a.extend({focusFirstInput:!0,unfocusOnHide:!0},b),a.extend(this,b),this.el=b.el},show:function(){if(this.el.classList.add("active"),this.focusFirstInput){var a=this.el.querySelector("input, textarea");a&&a.focus&&a.focus()}},hide:function(){if(this.el.classList.remove("active"),this.unfocusOnHide)for(var a=this.el.querySelectorAll("input, textarea"),b=0;b<a.length;b++)a[b].blur&&a[b].blur()}})}(ionic),function(a){"use strict";a.views.NavBar=a.views.View.inherit({initialize:function(a){this.el=a.el,this._titleEl=this.el.querySelector(".title"),a.hidden&&this.hide()},hide:function(){this.el.classList.add("hidden")},show:function(){this.el.classList.remove("hidden")},shouldGoBack:function(){},setTitle:function(a){this._titleEl&&(this._titleEl.innerHTML=a)},showBackButton:function(a){var b=this;if(!this._currentBackButton){var c=document.createElement("a");c.className="button back",c.innerHTML="Back",this._currentBackButton=c,this._currentBackButton.onclick=function(){b.shouldGoBack&&b.shouldGoBack()}}a&&!this._currentBackButton.parentNode?this.el.insertBefore(this._currentBackButton,this.el.firstChild):!a&&this._currentBackButton.parentNode&&this._currentBackButton.parentNode.removeChild(this._currentBackButton)}})}(ionic),function(a){"use strict";a.views.Popup=a.views.View.inherit({initialize:function(a){this.el=a.el},setTitle:function(a){var b=el.querySelector(".popup-title");b&&(b.innerHTML=a)},alert:function(a){var b=this;window.rAF(function(){b.setTitle(a),b.el.classList.add("active")})},hide:function(){this.el.offsetWidth,this.el.classList.remove("active")}})}(ionic),function(a){"use strict";a.views.SideMenu=a.views.View.inherit({initialize:function(a){this.el=a.el,this.width=a.width,this.isEnabled=a.isEnabled||!0},getFullWidth:function(){return this.width},setIsEnabled:function(a){this.isEnabled=a},bringUp:function(){this.el.style.zIndex=0},pushDown:function(){this.el.style.zIndex=-1}}),a.views.SideMenuContent=a.views.View.inherit({initialize:function(b){a.extend(this,{animationClass:"menu-animated",onDrag:function(){},onEndDrag:function(){}},b),a.onGesture("drag",a.proxy(this._onDrag,this),this.el),a.onGesture("release",a.proxy(this._onEndDrag,this),this.el)},_onDrag:function(a){this.onDrag&&this.onDrag(a)},_onEndDrag:function(a){this.onEndDrag&&this.onEndDrag(a)},disableAnimation:function(){this.el.classList.remove(this.animationClass)},enableAnimation:function(){this.el.classList.add(this.animationClass)},getTranslateX:function(){return parseFloat(this.el.style.webkitTransform.replace("translate3d(","").split(",")[0])},setTranslateX:function(a){this.el.style.webkitTransform="translate3d("+a+"px, 0, 0)"}})}(ionic),function(a){"use strict";a.views.SlideBox=a.views.View.inherit({initialize:function(a){var b=this;this.slideChanged=a.slideChanged||function(){},this.el=a.el,this.pager=this.el.querySelector(".slide-box-pager"),this.dragThresholdX=a.dragThresholdX||10,this.velocityXThreshold=a.velocityXThreshold||.3,this.slideIndex=0,this._updatePager(),window.ionic.onGesture("drag",function(a){b._handleDrag(a)},this.el),window.ionic.onGesture("release",function(a){b._handleEndDrag(a)},this.el)},update:function(){this._updatePager()},prependSlide:function(a){var b=this.el.firstElementChild;if(b){var c=b.offsetWidth,d=parseFloat(b.style.webkitTransform.replace("translate3d(","").split(",")[0])||0,e=Math.min(0,d-c);b.insertBefore(a,b.firstChild),b.classList.remove("slide-box-animating"),b.style.webkitTransform="translate3d("+e+"px, 0, 0)",this._prependPagerIcon(),this.slideIndex=(this.slideIndex+1)%b.children.length,this._updatePager()}},appendSlide:function(a){var b=this.el.firstElementChild;b&&(b.classList.remove("slide-box-animating"),b.appendChild(a),this._appendPagerIcon(),this._updatePager())},removeSlide:function(){var a=this.el.firstElementChild;if(a){var b=this.el.firstElementChild;b.removeChild(b.firstElementChild);var c=a.offsetWidth,d=parseFloat(a.style.webkitTransform.replace("translate3d(","").split(",")[0])||0,e=Math.min(0,d+c);a.classList.remove("slide-box-animating"),a.style.webkitTransform="translate3d("+e+"px, 0, 0)",this._removePagerIcon(),this.slideIndex=Math.max(0,(this.slideIndex-1)%a.children.length),this._updatePager()}},slideToSlide:function(a){var b=this.el.firstElementChild;if(b){var c=b.offsetWidth,d=a*c,e=Math.max(0,b.children.length-1)*c;d=0>d?0:d>e?e:d,b.classList.add("slide-box-animating"),b.style.webkitTransform="translate3d("+-d+"px, 0, 0)";var f=this.slideIndex;this.slideIndex=Math.ceil(d/c),f!==this.slideIndex&&this.slideChanged&&this.slideChanged(this.slideIndex),this._updatePager()}},getSlideIndex:function(){return this.slideIndex},_appendPagerIcon:function(){if(this.pager&&this.pager.children.length){var a=this.pager.children[0].cloneNode();this.pager.appendChild(a)}},_prependPagerIcon:function(){if(this.pager&&this.pager.children.length){var a=this.pager.children[0].cloneNode();this.pager.insertBefore(a,this.pager.firstChild)}},_removePagerIcon:function(){this.pager&&this.pager.children.length&&this.pager.removeChild(this.pager.firstElementChild)},_updatePager:function(){if(this.pager){var a=this.pager.children.length;if(a)for(var b=0,c=this.pager.children.length;c>b;b++)b==this.slideIndex?this.pager.children[b].classList.add("active"):this.pager.children[b].classList.remove("active")}},_initDrag:function(){this._isDragging=!1,this._drag=null},_handleEndDrag:function(a){var b,c,d,e,f,g,h=this;window.rAF(function(){return h._drag?(c=h._drag.content,c.classList.add("slide-box-animating"),g=parseFloat(c.style.webkitTransform.replace("translate3d(","").split(",")[0])||0,e=c.offsetWidth,f=c.offsetWidth*c.children.length,d=g%e/e,b=d>=0?0:d>=-.5?Math.max(0,Math.floor(Math.abs(g)/e)*e):Math.min(f-e,Math.ceil(Math.abs(g)/e)*e),a.gesture.velocityX>h.velocityXThreshold?"left"==a.gesture.direction?h.slideToSlide(h.slideIndex+1):"right"==a.gesture.direction&&h.slideToSlide(h.slideIndex-1):(h.slideIndex=Math.ceil(b/e),c.style.webkitTransform="translate3d("+-b+"px, 0, 0)"),h._initDrag(),void 0):(h._initDrag(),void 0)})},_startDrag:function(b){var c,d;this._initDrag(),d=a.DomUtil.getParentOrSelfWithClass(b.target,"slide-box-slides"),d&&(d.classList.remove("slide-box-animating"),c=parseFloat(d.style.webkitTransform.replace("translate3d(","").split(",")[0])||0,this._drag={content:d,startOffsetX:c,resist:1})},_handleDrag:function(a){var b=this;window.rAF(function(){var c;if(b._drag||b._startDrag(a),b._drag&&(a.preventDefault(),!b._isDragging&&Math.abs(a.gesture.deltaX)>b.dragThresholdX&&(b._isDragging=!0),b._isDragging)){c=b._drag.content;var d=b._drag.startOffsetX+a.gesture.deltaX/b._drag.resist,e=-(c.offsetWidth*Math.max(0,c.children.length-1));d>0?b._drag.resist=d/c.offsetWidth+1.4:e>d&&(b._drag.resist=Math.abs(d)/c.offsetWidth-.6),b._drag.content.style.webkitTransform="translate3d("+d+"px, 0, 0)"}})}})}(window.ionic),function(a){"use strict";a.views.TabBarItem=a.views.View.inherit({initialize:function(a){this.el=a,this._buildItem()},create:function(b){var c=document.createElement("a");if(c.className="tab-item",b.icon){var d=document.createElement("i");d.className=b.icon,c.appendChild(d)}return c.appendChild(document.createTextNode(b.title)),new a.views.TabBarItem(c)},_buildItem:function(){for(var b,c=this,d=Array.prototype.slice.call(this.el.children),e=0,f=d.length;f>e;e++)if(b=d[e],"i"==b.tagName.toLowerCase()&&/icon/.test(b.className)){this.icon=b.className;break}this.title=this.el.textContent.trim(),this._tapHandler=function(a){c.onTap&&c.onTap(a)},a.on("tap",this._tapHandler,this.el)},onTap:function(){},destroy:function(){a.off("tap",this._tapHandler,this.el)},getIcon:function(){return this.icon},getTitle:function(){return this.title},setSelected:function(a){this.isSelected=a,a?this.el.classList.add("active"):this.el.classList.remove("active")}}),a.views.TabBar=a.views.View.inherit({initialize:function(a){this.el=a.el,this.items=[],this._buildItems()},getItems:function(){return this.items},addItem:function(b){var c=a.views.TabBarItem.prototype.create(b);this.appendItemElement(c),this.items.push(c),this._bindEventsOnItem(c)},appendItemElement:function(a){this.el&&this.el.appendChild(a.el)},removeItem:function(a){var b=this.items[a];b&&(b.onTap=void 0,b.destroy())},_bindEventsOnItem:function(a){var b=this;this._itemTapHandler||(this._itemTapHandler=function(){b.trySelectItem(this)}),a.onTap=this._itemTapHandler},getSelectedItem:function(){return this.selectedItem},setSelectedItem:function(a){this.selectedItem=this.items[a];for(var b=0,c=this.items.length;c>b;b+=1)this.items[b].setSelected(!1);this.selectedItem&&this.selectedItem.setSelected(!0)},selectItem:function(a){for(var b=0,c=this.items.length;c>b;b+=1)if(this.items[b]==a)return this.setSelectedItem(b),void 0},trySelectItem:function(a){for(var b=0,c=this.items.length;c>b;b+=1)if(this.items[b]==a)return this.tryTabSelect&&this.tryTabSelect(b),void 0},_buildItems:function(){for(var b,c=Array.prototype.slice.call(this.el.children),d=0,e=c.length;e>d;d+=1)b=new a.views.TabBarItem(c[d]),this.items[d]=b,this._bindEventsOnItem(b);this.items.length>0&&(this.selectedItem=this.items[0])},destroy:function(){for(var a=0,b=this.items.length;b>a;a+=1)this.items[a].destroy();this.items.length=0}})}(window.ionic),function(a){"use strict";a.views.Toggle=a.views.View.inherit({initialize:function(a){this.el=a.el,this.checkbox=a.checkbox,this.handle=a.handle,this.openPercent=-1},tap:function(){this.val(!this.checkbox.checked)},drag:function(a){var b=this.checkbox.offsetLeft+this.handle.offsetWidth/2,c=this.checkbox.offsetLeft+this.checkbox.offsetWidth-this.handle.offsetWidth/2;a.pageX>=c-4?this.val(!0):a.pageX<=b?this.val(!1):this.setOpenPercent(Math.round(100*(1-(c-a.pageX)/(c-b))))},setOpenPercent:function(a){if(this.openPercent<0||a<this.openPercent-3||a>this.openPercent+3)if(this.openPercent=a,0===a)this.val(!1);else if(100===a)this.val(!0);else{var b=Math.round(a/100*this.checkbox.offsetWidth-this.handle.offsetWidth);b=1>b?0:b,this.handle.style.webkitTransform="translate3d("+b+"px,0,0)"}},release:function(){this.val(this.openPercent>=50)},val:function(a){return(a===!0||a===!1)&&(""!==this.handle.style.webkitTransform&&(this.handle.style.webkitTransform=""),this.checkbox.checked=a,this.openPercent=a?100:0),this.checkbox.checked}})}(ionic),function(a){"use strict";a.controllers.ViewController=function(){this.initialize.apply(this,arguments)},a.controllers.ViewController.inherit=a.inherit,a.extend(a.controllers.ViewController.prototype,{initialize:function(){},destroy:function(){}})}(window.ionic),function(a){"use strict";a.controllers.NavController=a.controllers.ViewController.inherit({initialize:function(a){var b=this;this.navBar=a.navBar,this.content=a.content,this.controllers=a.controllers||[],this._updateNavBar(),this.navBar.shouldGoBack=function(){b.pop()}},getControllers:function(){return this.controllers},getTopController:function(){return this.controllers[this.controllers.length-1]},push:function(a){var b=this.controllers[this.controllers.length-1];this.controllers.push(a);var c=this.switchingController&&this.switchingController(a)||!0;if(c!==!1){b&&(b.isVisible=!1,b.visibilityChanged&&b.visibilityChanged("push"));var d=this.controllers[this.controllers.length-1];return d.isVisible=!0,d.visibilityChanged&&d.visibilityChanged(b?"push":"first"),this._updateNavBar(),a}},pop:function(){var a,b;if(!(this.controllers.length<2))return b=this.controllers.pop(),b&&(b.isVisible=!1,b.visibilityChanged&&b.visibilityChanged("pop")),a=this.controllers[this.controllers.length-1],a.isVisible=!0,a.visibilityChanged&&a.visibilityChanged("pop"),this._updateNavBar(),b},showNavBar:function(){this.navBar&&this.navBar.show()},hideNavBar:function(){this.navBar&&this.navBar.hide()},_updateNavBar:function(){this.getTopController()&&this.navBar&&(this.navBar.setTitle(this.getTopController().title),this.controllers.length>1?this.navBar.showBackButton(!0):this.navBar.showBackButton(!1))}})}(window.ionic),function(a){"use strict";a.controllers.SideMenuController=a.controllers.ViewController.inherit({initialize:function(a){var b=this;this.left=a.left,this.right=a.right,this.content=a.content,this.dragThresholdX=a.dragThresholdX||10,this._rightShowing=!1,this._leftShowing=!1,this._isDragging=!1,this.content&&(this.content.onDrag=function(a){b._handleDrag(a)},this.content.onEndDrag=function(a){b._endDrag(a)})},setContent:function(a){var b=this;this.content=a,this.content.onDrag=function(a){b._handleDrag(a)},this.content.endDrag=function(a){b._endDrag(a)}},toggleLeft:function(){var a=this.getOpenAmount();a>0?this.openPercentage(0):this.openPercentage(100)},toggleRight:function(){var a=this.getOpenAmount();0>a?this.openPercentage(0):this.openPercentage(-100)},close:function(){this.openPercentage(0)},getOpenAmount:function(){return this.content.getTranslateX()||0},getOpenRatio:function(){var a=this.getOpenAmount();return a>=0?a/this.left.width:a/this.right.width},getOpenPercentage:function(){return 100*this.getOpenRatio()},openPercentage:function(a){var b=a/100;if(this.left&&a>=0)this.openAmount(this.left.width*b);else if(this.right&&0>a){{this.right.width}this.openAmount(this.right.width*b)}},openAmount:function(a){var b=this.left&&this.left.width||0,c=this.right&&this.right.width||0;(!this.left||!this.left.isEnabled)&&a>0||(!this.right||!this.right.isEnabled)&&0>a||this._leftShowing&&a>b||this._rightShowing&&-c>a||(this.content.setTranslateX(a),a>=0?(this._leftShowing=!0,this._rightShowing=!1,this.right&&this.right.pushDown(),this.left&&this.left.bringUp()):(this._rightShowing=!0,this._leftShowing=!1,this.right&&this.right.bringUp(),this.left&&this.left.pushDown()))},snapToRest:function(a){this.content.enableAnimation(),this._isDragging=!1;var b=this.getOpenRatio();if(0!==b){var c=.3,d=a.gesture.velocityX,e=a.gesture.direction;b>0&&.5>b&&"right"==e&&c>d?this.openPercentage(0):b>.5&&"left"==e&&c>d?this.openPercentage(100):0>b&&b>-.5&&"left"==e&&c>d?this.openPercentage(0):.5>b&&"right"==e&&c>d?this.openPercentage(-100):"right"==e&&b>=0&&(b>=.5||d>c)?this.openPercentage(100):"left"==e&&0>=b&&(-.5>=b||d>c)?this.openPercentage(-100):this.openPercentage(0)}},_endDrag:function(a){this.snapToRest(a),this._startX=null,this._lastX=null,this._offsetX=null},_handleDrag:function(a){this._startX?this._lastX=a.gesture.touches[0].pageX:(this._startX=a.gesture.touches[0].pageX,this._lastX=this._startX),!this._isDragging&&Math.abs(this._lastX-this._startX)>this.dragThresholdX&&(this._startX=this._lastX,this._isDragging=!0,this.content.disableAnimation(),this._offsetX=this.getOpenAmount()),this._isDragging&&this.openAmount(this._offsetX+(this._lastX-this._startX))}})}(ionic),function(a){"use strict";a.controllers.TabBarController=a.controllers.ViewController.inherit({initialize:function(a){this.tabBar=a.tabBar,this._bindEvents(),this.controllers=[];for(var b=a.controllers||[],c=0;c<b.length;c++)this.addController(b[c]);this.controllerWillChange=a.controllerWillChange||function(){},this.controllerChanged=a.controllerChanged||function(){},this.setSelectedController(0)},_bindEvents:function(){var a=this;this.tabBar.tryTabSelect=function(b){a.setSelectedController(b)}},selectController:function(a){var b=!0;this.controllerWillChange&&this.controllerWillChange(this.controllers[a],a)===!1&&(b=!1),b&&this.setSelectedController(a)},setSelectedController:function(a){if(!(a>=this.controllers.length)){var b=this.selectedController,c=this.selectedIndex;this.selectedController=this.controllers[a],this.selectedIndex=a,this._showController(a),this.tabBar.setSelectedItem(a),this.controllerChanged&&this.controllerChanged(b,c,this.selectedController,this.selectedIndex)}},_showController:function(a){for(var b,c=0,d=this.controllers.length;d>c;c++)b=this.controllers[c],b.isVisible=!1,b.visibilityChanged&&b.visibilityChanged();b=this.controllers[a],b.isVisible=!0,b.visibilityChanged&&b.visibilityChanged()},_clearSelected:function(){this.selectedController=null,this.selectedIndex=-1},getController:function(a){return this.controllers[a]},getControllers:function(){return this.controllers},getSelectedController:function(){return this.selectedController},getSelectedControllerIndex:function(){return this.selectedIndex},addController:function(a){this.controllers.push(a),this.tabBar.addItem({title:a.title,icon:a.icon}),this.selectedController||this.setSelectedController(0)},setControllers:function(a){this.controllers=a,this._clearSelected(),this.selectController(0)}})}(window.ionic); |