md-crud
Version:
Angular material directive to create customizable CRUD forms.
8 lines • 123 kB
JavaScript
/*!
* Angular Material Design
* https://github.com/angular/material
* @license MIT
* v1.1.2-master-a9ba340
*/
function DetectNgTouch(e,t){if(t.has("$swipe")){var n="You are using the ngTouch module. \nAngular Material already has mobile click, tap, and swipe support... \nngTouch is not supported with Angular Material!";e.warn(n)}}function MdCoreConfigure(e,t){e.decorator("$$rAF",["$delegate",rAFDecorator]),e.decorator("$q",["$delegate",qDecorator]),t.theme("default").primaryPalette("indigo").accentPalette("pink").warnPalette("deep-orange").backgroundPalette("grey")}function rAFDecorator(e){return e.throttle=function(t){var n,r,o,d;return function(){n=arguments,d=this,o=t,r||(r=!0,e(function(){o.apply(d,Array.prototype.slice.call(n)),r=!1}))}},e}function qDecorator(e){return e.resolve||(e.resolve=e.when),e}function MdAutofocusDirective(e){function t(t,n,r){function o(e){angular.isUndefined(e)&&(e=!0),n.toggleClass("md-autofocus",!!e)}var d=r.mdAutoFocus||r.mdAutofocus||r.mdSidenavFocus;o(e(d)(t)),d&&t.$watch(d,o)}return{restrict:"A",link:{pre:t}}}function ColorUtilFactory(){function e(e){var t="#"===e[0]?e.substr(1):e,n=t.length/3,r=t.substr(0,n),o=t.substr(n,n),d=t.substr(2*n);return 1===n&&(r+=r,o+=o,d+=d),"rgba("+parseInt(r,16)+","+parseInt(o,16)+","+parseInt(d,16)+",0.1)"}function t(e){e=e.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);var t=e&&4===e.length?"#"+("0"+parseInt(e[1],10).toString(16)).slice(-2)+("0"+parseInt(e[2],10).toString(16)).slice(-2)+("0"+parseInt(e[3],10).toString(16)).slice(-2):"";return t.toUpperCase()}function n(e){return e.replace(")",", 0.1)").replace("(","a(")}function r(e){return e?e.replace("rgba","rgb").replace(/,[^\),]+\)/,")"):"rgb(0,0,0)"}return{rgbaToHex:t,hexToRgba:e,rgbToRgba:n,rgbaToRgb:r}}function MdConstantFactory(){function e(e){var r=d+"-"+e,a=n(r),i=a.charAt(0).toLowerCase()+a.substring(1);return t(o,e)?e:t(o,a)?a:t(o,i)?i:e}function t(e,t){return angular.isDefined(e.style[t])}function n(e){return e.replace(i,function(e,t,n,r){return r?n.toUpperCase():n})}function r(e){var t,n,r=/^(Moz|webkit|ms)(?=[A-Z])/;for(t in e.style)if(n=r.exec(t))return n[0]}var o=document.createElement("div"),d=r(o),a=/webkit/i.test(d),i=/([:\-_]+(.))/g,m={isInputKey:function(e){return e.keyCode>=31&&e.keyCode<=90},isNumPadKey:function(e){return 3===e.location&&e.keyCode>=97&&e.keyCode<=105},isNavigationKey:function(e){var t=m.KEY_CODE,n=[t.SPACE,t.ENTER,t.UP_ARROW,t.DOWN_ARROW];return n.indexOf(e.keyCode)!=-1},ELEMENT_MAX_PIXELS:1533917,BEFORE_NG_ARIA:210,KEY_CODE:{COMMA:188,SEMICOLON:186,ENTER:13,ESCAPE:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT_ARROW:37,UP_ARROW:38,RIGHT_ARROW:39,DOWN_ARROW:40,TAB:9,BACKSPACE:8,DELETE:46},CSS:{TRANSITIONEND:"transitionend"+(a?" webkitTransitionEnd":""),ANIMATIONEND:"animationend"+(a?" webkitAnimationEnd":""),TRANSFORM:e("transform"),TRANSFORM_ORIGIN:e("transformOrigin"),TRANSITION:e("transition"),TRANSITION_DURATION:e("transitionDuration"),ANIMATION_PLAY_STATE:e("animationPlayState"),ANIMATION_DURATION:e("animationDuration"),ANIMATION_NAME:e("animationName"),ANIMATION_TIMING:e("animationTimingFunction"),ANIMATION_DIRECTION:e("animationDirection")},MEDIA:{xs:"(max-width: 599px)","gt-xs":"(min-width: 600px)",sm:"(min-width: 600px) and (max-width: 959px)","gt-sm":"(min-width: 960px)",md:"(min-width: 960px) and (max-width: 1279px)","gt-md":"(min-width: 1280px)",lg:"(min-width: 1280px) and (max-width: 1919px)","gt-lg":"(min-width: 1920px)",xl:"(min-width: 1920px)",landscape:"(orientation: landscape)",portrait:"(orientation: portrait)",print:"print"},MEDIA_PRIORITY:["xl","gt-lg","lg","gt-md","md","gt-sm","sm","gt-xs","xs","landscape","portrait","print"]};return m}function MdIterator(e,t){function n(){return[].concat(b)}function r(){return b.length}function o(e){return b.length&&e>-1&&e<b.length}function d(e){return!!e&&o(u(e)+1)}function a(e){return!!e&&o(u(e)-1)}function i(e){return o(e)?b[e]:null}function m(e,t){return b.filter(function(n){return n[e]===t})}function c(e,t){return e?(angular.isNumber(t)||(t=b.length),b.splice(t,0,e),u(e)):-1}function l(e){s(e)&&b.splice(u(e),1)}function u(e){return b.indexOf(e)}function s(e){return e&&u(e)>-1}function p(){return b.length?b[0]:null}function h(){return b.length?b[b.length-1]:null}function E(e,n,r,d){r=r||f;for(var a=u(n);;){if(!o(a))return null;var i=a+(e?-1:1),m=null;if(o(i)?m=b[i]:t&&(m=e?h():p(),i=u(m)),null===m||i===d)return null;if(r(m))return m;angular.isUndefined(d)&&(d=i),a=i}}var f=function(){return!0};e&&!angular.isArray(e)&&(e=Array.prototype.slice.call(e)),t=!!t;var b=e||[];return{items:n,count:r,inRange:o,contains:s,indexOf:u,itemAt:i,findBy:m,add:c,remove:l,first:p,last:h,next:angular.bind(null,E,!1),previous:angular.bind(null,E,!0),hasPrevious:a,hasNext:d}}function mdMediaFactory(e,t,n){function r(e){var t=u[e];angular.isUndefined(t)&&(t=u[e]=o(e));var n=p[t];return angular.isUndefined(n)&&(n=d(t)),n}function o(t){return e.MEDIA[t]||("("!==t.charAt(0)?"("+t+")":t)}function d(e){var t=s[e];return t||(t=s[e]=n.matchMedia(e)),t.addListener(a),p[t.media]=!!t.matches}function a(e){t.$evalAsync(function(){p[e.media]=!!e.matches})}function i(e){return s[e]}function m(t,n){for(var r=0;r<e.MEDIA_PRIORITY.length;r++){var o=e.MEDIA_PRIORITY[r];if(s[u[o]].matches){var d=l(t,n+"-"+o);if(t[d])return t[d]}}return t[l(t,n)]}function c(t,n,r){var o=[];return t.forEach(function(t){var d=l(n,t);angular.isDefined(n[d])&&o.push(n.$observe(d,angular.bind(void 0,r,null)));for(var a in e.MEDIA)d=l(n,t+"-"+a),angular.isDefined(n[d])&&o.push(n.$observe(d,angular.bind(void 0,r,a)))}),function(){o.forEach(function(e){e()})}}function l(e,t){return h[t]||(h[t]=e.$normalize(t))}var u={},s={},p={},h={};return r.getResponsiveAttribute=m,r.getQuery=i,r.watchResponsiveAttributes=c,r}function MdPrefixer(e,t){function n(e){return e=angular.isArray(e)?e:[e],e.forEach(function(t){i.forEach(function(n){e.push(n+"-"+t)})}),e}function r(e){return e=angular.isArray(e)?e:[e],n(e).map(function(e){return"["+e+"]"}).join(",")}function o(e,t){if(e=a(e),!e)return!1;for(var r=n(t),o=0;o<r.length;o++)if(e.hasAttribute(r[o]))return!0;return!1}function d(e,t){e=a(e),e&&n(t).forEach(function(t){e.removeAttribute(t)})}function a(e){if(e=e[0]||e,e.nodeType)return e}var i=["data","x"];return e?t?r(e):n(e):{buildList:n,buildSelector:r,hasAttribute:o,removeAttribute:d}}function UtilFactory(e,t,n,r,o,d,a,i,m,c){function l(e){return e?u(e)||s(e)?e:e+"px":"0"}function u(e){return String(e).indexOf("px")>-1}function s(e){return String(e).indexOf("%")>-1}function p(e){return e[0]||e}var h=d.startSymbol(),E=d.endSymbol(),f="{{"===h&&"}}"===E,b=function(e,t,n){var r=!1;if(e&&e.length){var o=m.getComputedStyle(e[0]);r=angular.isDefined(o[t])&&(!n||o[t]==n)}return r},g={dom:{},now:window.performance&&window.performance.now?angular.bind(window.performance,window.performance.now):Date.now||function(){return(new Date).getTime()},getModelOption:function(e,t){if(e.$options){var n=e.$options;return n.getOption?n.getOption(t):n[t]}},bidi:function(t,n,r,o){var d=!("rtl"==e[0].dir||"rtl"==e[0].body.dir);if(0==arguments.length)return d?"ltr":"rtl";var a=angular.element(t);d&&angular.isDefined(r)?a.css(n,l(r)):!d&&angular.isDefined(o)&&a.css(n,l(o))},bidiProperty:function(t,n,r,o){var d=!("rtl"==e[0].dir||"rtl"==e[0].body.dir),a=angular.element(t);d&&angular.isDefined(n)?(a.css(n,l(o)),a.css(r,"")):!d&&angular.isDefined(r)&&(a.css(r,l(o)),a.css(n,""))},clientRect:function(e,t,n){var r=p(e);t=p(t||r.offsetParent||document.body);var o=r.getBoundingClientRect(),d=n?t.getBoundingClientRect():{left:0,top:0,width:0,height:0};return{left:o.left-d.left,top:o.top-d.top,width:o.width,height:o.height}},offsetRect:function(e,t){return g.clientRect(e,t,!0)},nodesToArray:function(e){e=e||[];for(var t=[],n=0;n<e.length;++n)t.push(e.item(n));return t},getViewportTop:function(){return window.scrollY||window.pageYOffset||0},findFocusTarget:function(e,t){function n(e,t){var n,r=e[0].querySelectorAll(t);return r&&r.length&&r.length&&angular.forEach(r,function(e){e=angular.element(e);var t=e.hasClass("md-autofocus");t&&(n=e)}),n}var r,o=this.prefixer("md-autofocus",!0);return r=n(e,t||o),r||t==o||(r=n(e,this.prefixer("md-auto-focus",!0)),r||(r=n(e,o))),r},disableScrollAround:function(t,n,r){function o(e){function t(e){e.preventDefault()}e=angular.element(e||a);var n;return r.disableScrollMask?n=e:(n=angular.element('<div class="md-scroll-mask"> <div class="md-scroll-mask-bar"></div></div>'),e.append(n)),n.on("wheel",t),n.on("touchmove",t),function(){n.off("wheel"),n.off("touchmove"),r.disableScrollMask||n[0].parentNode.removeChild(n[0])}}function d(){var t=e[0].documentElement,n=t.style.cssText||"",r=a.style.cssText||"",o=g.getViewportTop(),d=a.clientWidth,i=a.scrollHeight>a.clientHeight+1;return i&&angular.element(a).css({position:"fixed",width:"100%",top:-o+"px"}),a.clientWidth<d&&(a.style.overflow="hidden"),i&&(t.style.overflowY="scroll"),function(){a.style.cssText=r,t.style.cssText=n,a.scrollTop=o}}if(r=r||{},g.disableScrollAround._count=Math.max(0,g.disableScrollAround._count||0),g.disableScrollAround._count++,g.disableScrollAround._restoreScroll)return g.disableScrollAround._restoreScroll;var a=e[0].body,i=d(),m=o(n);return g.disableScrollAround._restoreScroll=function(){--g.disableScrollAround._count<=0&&(i(),m(),delete g.disableScrollAround._restoreScroll)}},enableScrolling:function(){var e=this.disableScrollAround._restoreScroll;e&&e()},floatingScrollbars:function(){if(void 0===this.floatingScrollbars.cached){var t=angular.element("<div><div></div></div>").css({width:"100%","z-index":-1,position:"absolute",height:"35px","overflow-y":"scroll"});t.children().css("height","60px"),e[0].body.appendChild(t[0]),this.floatingScrollbars.cached=t[0].offsetWidth==t[0].childNodes[0].offsetWidth,t.remove()}return this.floatingScrollbars.cached},forceFocus:function(e){var t=e[0]||e;document.addEventListener("click",function r(e){e.target===t&&e.$focus&&(t.focus(),e.stopImmediatePropagation(),e.preventDefault(),t.removeEventListener("click",r))},!0);var n=document.createEvent("MouseEvents");n.initMouseEvent("click",!1,!0,window,{},0,0,0,0,!1,!1,!1,!1,0,null),n.$material=!0,n.$focus=!0,t.dispatchEvent(n)},createBackdrop:function(e,t){return n(g.supplant('<md-backdrop class="{0}">',[t]))(e)},supplant:function(e,t,n){return n=n||/\{([^\{\}]*)\}/g,e.replace(n,function(e,n){var r=n.split("."),o=t;try{for(var d in r)r.hasOwnProperty(d)&&(o=o[r[d]])}catch(a){o=e}return"string"==typeof o||"number"==typeof o?o:e})},fakeNgModel:function(){return{$fake:!0,$setTouched:angular.noop,$setViewValue:function(e){this.$viewValue=e,this.$render(e),this.$viewChangeListeners.forEach(function(e){e()})},$isEmpty:function(e){return 0===(""+e).length},$parsers:[],$formatters:[],$viewChangeListeners:[],$render:angular.noop}},debounce:function(e,n,r,o){var d;return function(){var a=r,i=Array.prototype.slice.call(arguments);t.cancel(d),d=t(function(){d=void 0,e.apply(a,i)},n||10,o)}},throttle:function(e,t){var n;return function(){var r=this,o=arguments,d=g.now();(!n||d-n>t)&&(e.apply(r,o),n=d)}},time:function(e){var t=g.now();return e(),g.now()-t},valueOnUse:function(e,t,n){var r=null,o=Array.prototype.slice.call(arguments),d=o.length>3?o.slice(3):[];Object.defineProperty(e,t,{get:function(){return null===r&&(r=n.apply(e,d)),r}})},nextUid:function(){return""+nextUniqueId++},disconnectScope:function(e){if(e&&e.$root!==e&&!e.$$destroyed){var t=e.$parent;e.$$disconnected=!0,t.$$childHead===e&&(t.$$childHead=e.$$nextSibling),t.$$childTail===e&&(t.$$childTail=e.$$prevSibling),e.$$prevSibling&&(e.$$prevSibling.$$nextSibling=e.$$nextSibling),e.$$nextSibling&&(e.$$nextSibling.$$prevSibling=e.$$prevSibling),e.$$nextSibling=e.$$prevSibling=null}},reconnectScope:function(e){if(e&&e.$root!==e&&e.$$disconnected){var t=e,n=t.$parent;t.$$disconnected=!1,t.$$prevSibling=n.$$childTail,n.$$childHead?(n.$$childTail.$$nextSibling=t,n.$$childTail=t):n.$$childHead=n.$$childTail=t}},getClosest:function(e,t,n){if(angular.isString(t)){var r=t.toUpperCase();t=function(e){return e.nodeName.toUpperCase()===r}}if(e instanceof angular.element&&(e=e[0]),n&&(e=e.parentNode),!e)return null;do if(t(e))return e;while(e=e.parentNode);return null},elementContains:function(e,t){var n=window.Node&&window.Node.prototype&&Node.prototype.contains,r=n?angular.bind(e,e.contains):angular.bind(e,function(n){return e===t||!!(16&this.compareDocumentPosition(n))});return r(t)},extractElementByName:function(e,t,n,r){function o(e){return d(e)||(n?i(e):null)}function d(e){if(e)for(var n=0,r=e.length;n<r;n++)if(e[n].nodeName.toLowerCase()===t)return e[n];return null}function i(e){var t;if(e)for(var n=0,r=e.length;n<r;n++){var d=e[n];if(!t)for(var a=0,i=d.childNodes.length;a<i;a++)t=t||o([d.childNodes[a]])}return t}var m=o(e);return!m&&r&&a.warn(g.supplant("Unable to find node '{0}' in element '{1}'.",[t,e[0].outerHTML])),angular.element(m||e)},initOptionalProperties:function(e,t,n){n=n||{},angular.forEach(e.$$isolateBindings,function(r,o){if(r.optional&&angular.isUndefined(e[o])){var d=angular.isDefined(t[r.attrName]);e[o]=angular.isDefined(n[o])?n[o]:d}})},nextTick:function(e,n,o){function d(){var e=a.queue,t=a.digest;a.queue=[],a.timeout=null,a.digest=!1,e.forEach(function(e){var t=e.scope&&e.scope.$$destroyed;t||e.callback()}),t&&r.$digest()}var a=g.nextTick,i=a.timeout,m=a.queue||[];return m.push({scope:o,callback:e}),null==n&&(n=!0),a.digest=a.digest||n,a.queue=m,i||(a.timeout=t(d,0,!1))},processTemplate:function(e){return f?e:e&&angular.isString(e)?e.replace(/\{\{/g,h).replace(/}}/g,E):e},getParentWithPointerEvents:function(e){for(var t=e.parent();b(t,"pointer-events","none");)t=t.parent();return t},getNearestContentElement:function(e){for(var t=e.parent()[0];t&&t!==i[0]&&t!==document.body&&"MD-CONTENT"!==t.nodeName.toUpperCase();)t=t.parentNode;return t},checkStickySupport:function(){var t,n=angular.element("<div>");e[0].body.appendChild(n[0]);for(var r=["sticky","-webkit-sticky"],o=0;o<r.length;++o)if(n.css({position:r[o],top:0,"z-index":2}),n.css("position")==r[o]){t=r[o];break}return n.remove(),t},parseAttributeBoolean:function(e,t){return""===e||!!e&&(t===!1||"false"!==e&&"0"!==e)},hasComputedStyle:b,isParentFormSubmitted:function(e){var t=g.getClosest(e,"form"),n=t?angular.element(t).controller("form"):null;return!!n&&n.$submitted},animateScrollTo:function(e,t,n){function r(){var n=o();e.scrollTop=n,(m?n<t:n>t)&&c(r)}function o(){var e=n||1e3,t=g.now()-l;return d(t,a,i,e)}function d(e,t,n,r){if(e>r)return t+n;var o=(e/=r)*e,d=o*e;return t+n*(-2*d+3*o)}var a=e.scrollTop,i=t-a,m=a<t,l=g.now();c(r)},uniq:function(e){if(e)return e.filter(function(e,t,n){return n.indexOf(e)===t})}};return g.dom.animator=o(g),g}function MdAriaProvider(){function e(){t.showWarnings=!1}var t={showWarnings:!0};return{disableWarnings:e,$get:["$$rAF","$log","$window","$interpolate",function(e,n,r,o){return MdAriaService.apply(t,arguments)}]}}function MdAriaService(e,t,n,r){function o(e,n,r){var o=angular.element(e)[0]||e;!o||o.hasAttribute(n)&&0!==o.getAttribute(n).length||c(o,n)||(r=angular.isString(r)?r.trim():"",r.length?e.attr(n,r):l&&t.warn('ARIA: Attribute "',n,'", required for accessibility, is missing on node:',o))}function d(t,n,r){e(function(){o(t,n,r())})}function a(e,t){var n=m(e)||"",a=n.indexOf(r.startSymbol())>-1;a?d(e,t,function(){return m(e)}):o(e,t,n)}function i(e,t){var n=m(e),d=n.indexOf(r.startSymbol())>-1;d||n||o(e,t,n)}function m(e){function t(t){for(;t.parentNode&&(t=t.parentNode)!==e;)if(t.getAttribute&&"true"===t.getAttribute("aria-hidden"))return!0}e=e[0]||e;for(var n,r=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,null,!1),o="";n=r.nextNode();)t(n)||(o+=n.textContent);return o.trim()||""}function c(e,t){function r(e){var t=e.currentStyle?e.currentStyle:n.getComputedStyle(e);return"none"===t.display}var o=e.hasChildNodes(),d=!1;if(o)for(var a=e.childNodes,i=0;i<a.length;i++){var m=a[i];1===m.nodeType&&m.hasAttribute(t)&&(r(m)||(d=!0))}return d}var l=this.showWarnings;return{expect:o,expectAsync:d,expectWithText:a,expectWithoutText:i,getText:m}}function MdCompilerService(e,t,n,r,o){this.$q=e,this.$templateRequest=t,this.$injector=n,this.$compile=r,this.$controller=o}function MdGestureProvider(){}function MdGesture(e,t,n){function r(e){return function(t,n){n.distance<this.state.options.maxDistance&&this.dispatchEvent(t,e,n)}}function o(e,t,n){var r=HANDLERS[t.replace(/^\$md./,"")];if(!r)throw new Error("Failed to register element with handler "+t+". Available handlers: "+Object.keys(HANDLERS).join(", "));return r.registerElement(e,n)}function d(t,n){var r=new e(t);return angular.extend(r,n),HANDLERS[t]=r,s}function a(){for(var e=document.createElement("div"),t=["","webkit","Moz","MS","ms","o"],n=0;n<t.length;n++){var r=t[n],o=r?r+"TouchAction":"touchAction";if(angular.isDefined(e.style[o]))return o}}var i=navigator.userAgent||navigator.vendor||window.opera,m=i.match(/ipad|iphone|ipod/i),c=i.match(/android/i),l=a(),u="undefined"!=typeof window.jQuery&&angular.element===window.jQuery,s={handler:d,register:o,isHijackingClicks:(m||c)&&!u&&!forceSkipClickHijack};if(s.isHijackingClicks){var p=6;s.handler("click",{options:{maxDistance:p},onEnd:r("click")}),s.handler("focus",{options:{maxDistance:p},onEnd:function(e,t){function n(e){var t=["INPUT","SELECT","BUTTON","TEXTAREA","VIDEO","AUDIO"];return"-1"!=e.getAttribute("tabindex")&&!e.hasAttribute("DISABLED")&&(e.hasAttribute("tabindex")||e.hasAttribute("href")||e.isContentEditable||t.indexOf(e.nodeName)!=-1)}t.distance<this.state.options.maxDistance&&n(e.target)&&(this.dispatchEvent(e,"focus",t),e.target.focus())}}),s.handler("mouseup",{options:{maxDistance:p},onEnd:r("mouseup")}),s.handler("mousedown",{onStart:function(e){this.dispatchEvent(e,"mousedown")}})}return s.handler("press",{onStart:function(e,t){this.dispatchEvent(e,"$md.pressdown")},onEnd:function(e,t){this.dispatchEvent(e,"$md.pressup")}}).handler("hold",{options:{maxDistance:6,delay:500},onCancel:function(){n.cancel(this.state.timeout)},onStart:function(e,t){return this.state.registeredParent?(this.state.pos={x:t.x,y:t.y},void(this.state.timeout=n(angular.bind(this,function(){this.dispatchEvent(e,"$md.hold"),this.cancel()}),this.state.options.delay,!1))):this.cancel()},onMove:function(e,t){l||"touchmove"!==e.type||e.preventDefault();var n=this.state.pos.x-t.x,r=this.state.pos.y-t.y;Math.sqrt(n*n+r*r)>this.options.maxDistance&&this.cancel()},onEnd:function(){this.onCancel()}}).handler("drag",{options:{minDistance:6,horizontal:!0,cancelMultiplier:1.5},onSetup:function(e,t){l&&(this.oldTouchAction=e[0].style[l],e[0].style[l]=t.horizontal===!1?"pan-y":"pan-x")},onCleanup:function(e){this.oldTouchAction&&(e[0].style[l]=this.oldTouchAction)},onStart:function(e){this.state.registeredParent||this.cancel()},onMove:function(e,t){var n,r;l||"touchmove"!==e.type||e.preventDefault(),this.state.dragPointer?this.dispatchDragMove(e):(this.state.options.horizontal?(n=Math.abs(t.distanceX)>this.state.options.minDistance,r=Math.abs(t.distanceY)>this.state.options.minDistance*this.state.options.cancelMultiplier):(n=Math.abs(t.distanceY)>this.state.options.minDistance,r=Math.abs(t.distanceX)>this.state.options.minDistance*this.state.options.cancelMultiplier),n?(this.state.dragPointer=makeStartPointer(e),updatePointerState(e,this.state.dragPointer),this.dispatchEvent(e,"$md.dragstart",this.state.dragPointer)):r&&this.cancel())},dispatchDragMove:t.throttle(function(e){this.state.isRunning&&(updatePointerState(e,this.state.dragPointer),this.dispatchEvent(e,"$md.drag",this.state.dragPointer))}),onEnd:function(e,t){this.state.dragPointer&&(updatePointerState(e,this.state.dragPointer),this.dispatchEvent(e,"$md.dragend",this.state.dragPointer))}}).handler("swipe",{options:{minVelocity:.65,minDistance:10},onEnd:function(e,t){var n;Math.abs(t.velocityX)>this.state.options.minVelocity&&Math.abs(t.distanceX)>this.state.options.minDistance?(n="left"==t.directionX?"$md.swipeleft":"$md.swiperight",this.dispatchEvent(e,n)):Math.abs(t.velocityY)>this.state.options.minVelocity&&Math.abs(t.distanceY)>this.state.options.minDistance&&(n="up"==t.directionY?"$md.swipeup":"$md.swipedown",this.dispatchEvent(e,n))}})}function GestureHandler(e){this.name=e,this.state={}}function MdGestureHandler(){function e(e,t,n){n=n||pointer;var r=new angular.element.Event(t);r.$material=!0,r.pointer=n,r.srcEvent=e,angular.extend(r,{clientX:n.x,clientY:n.y,screenX:n.x,screenY:n.y,pageX:n.x,pageY:n.y,ctrlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey,metaKey:e.metaKey}),angular.element(n.target).trigger(r)}function t(e,t,n){n=n||pointer;var r;"click"===t||"mouseup"==t||"mousedown"==t?(r=document.createEvent("MouseEvents"),r.initMouseEvent(t,!0,!0,window,e.detail,n.x,n.y,n.x,n.y,e.ctrlKey,e.altKey,e.shiftKey,e.metaKey,e.button,e.relatedTarget||null)):(r=document.createEvent("CustomEvent"),r.initCustomEvent(t,!0,!0,{})),r.$material=!0,r.pointer=n,r.srcEvent=e,n.target.dispatchEvent(r)}var n="undefined"!=typeof window.jQuery&&angular.element===window.jQuery;return GestureHandler.prototype={options:{},dispatchEvent:n?e:t,onSetup:angular.noop,onCleanup:angular.noop,onStart:angular.noop,onMove:angular.noop,onEnd:angular.noop,onCancel:angular.noop,start:function(e,t){if(!this.state.isRunning){var n=this.getNearestParent(e.target),r=n&&n.$mdGesture[this.name]||{};this.state={isRunning:!0,options:angular.extend({},this.options,r),registeredParent:n},this.onStart(e,t)}},move:function(e,t){this.state.isRunning&&this.onMove(e,t)},end:function(e,t){this.state.isRunning&&(this.onEnd(e,t),this.state.isRunning=!1)},cancel:function(e,t){this.onCancel(e,t),this.state={}},getNearestParent:function(e){for(var t=e;t;){if((t.$mdGesture||{})[this.name])return t;t=t.parentNode}return null},registerElement:function(e,t){function n(){delete e[0].$mdGesture[r.name],e.off("$destroy",n),r.onCleanup(e,t||{})}var r=this;return e[0].$mdGesture=e[0].$mdGesture||{},e[0].$mdGesture[this.name]=t||{},e.on("$destroy",n),r.onSetup(e,t||{}),n}},GestureHandler}function attachToDocument(e,t){function n(e){var t=!e.clientX&&!e.clientY;t||e.$material||e.isIonicTap||isInputEventFromLabelClick(e)||(e.preventDefault(),e.stopPropagation())}function r(e){var t=0===e.clientX&&0===e.clientY;t||e.$material||e.isIonicTap||isInputEventFromLabelClick(e)?(lastLabelClickPos=null,"label"==e.target.tagName.toLowerCase()&&(lastLabelClickPos={x:e.x,y:e.y})):(e.preventDefault(),e.stopPropagation(),lastLabelClickPos=null)}function o(e,n){var r;for(var o in HANDLERS)r=HANDLERS[o],r instanceof t&&("start"===e&&r.cancel(),r[e](n,pointer))}function d(e){if(!pointer){var t=+Date.now();lastPointer&&!typesMatch(e,lastPointer)&&t-lastPointer.endTime<1500||(pointer=makeStartPointer(e),o("start",e))}}function a(e){pointer&&typesMatch(e,pointer)&&(updatePointerState(e,pointer),o("move",e))}function i(e){pointer&&typesMatch(e,pointer)&&(updatePointerState(e,pointer),pointer.endTime=+Date.now(),o("end",e),lastPointer=pointer,pointer=null)}document.contains||(document.contains=function(e){return document.body.contains(e)}),!isInitialized&&e.isHijackingClicks&&(document.addEventListener("click",r,!0),document.addEventListener("mouseup",n,!0),document.addEventListener("mousedown",n,!0),document.addEventListener("focus",n,!0),isInitialized=!0);var m="mousedown touchstart pointerdown",c="mousemove touchmove pointermove",l="mouseup mouseleave touchend touchcancel pointerup pointercancel";angular.element(document).on(m,d).on(c,a).on(l,i).on("$$mdGestureReset",function(){lastPointer=pointer=null})}function makeStartPointer(e){var t=getEventPoint(e),n={startTime:+Date.now(),target:e.target,type:e.type.charAt(0)};return n.startX=n.x=t.pageX,n.startY=n.y=t.pageY,n}function typesMatch(e,t){return e&&t&&e.type.charAt(0)===t.type}function isInputEventFromLabelClick(e){return lastLabelClickPos&&lastLabelClickPos.x==e.x&&lastLabelClickPos.y==e.y}function updatePointerState(e,t){var n=getEventPoint(e),r=t.x=n.pageX,o=t.y=n.pageY;t.distanceX=r-t.startX,t.distanceY=o-t.startY,t.distance=Math.sqrt(t.distanceX*t.distanceX+t.distanceY*t.distanceY),t.directionX=t.distanceX>0?"right":t.distanceX<0?"left":"",t.directionY=t.distanceY>0?"down":t.distanceY<0?"up":"",t.duration=+Date.now()-t.startTime,t.velocityX=t.distanceX/t.duration,t.velocityY=t.distanceY/t.duration}function getEventPoint(e){return e=e.originalEvent||e,e.touches&&e.touches[0]||e.changedTouches&&e.changedTouches[0]||e}function MdInteractionService(e,t){this.$timeout=e,this.$mdUtil=t,this.bodyElement=angular.element(document.body),this.isBuffering=!1,this.bufferTimeout=null,this.lastInteractionType=null,this.lastInteractionTime=null,this.inputEventMap={keydown:"keyboard",mousedown:"mouse",mouseenter:"mouse",touchstart:"touch",pointerdown:"pointer",MSPointerDown:"pointer"},this.iePointerMap={2:"touch",3:"touch",4:"mouse"},this.initializeEvents()}function InterimElementProvider(){function e(e){function t(e){return i.optionsFactory=e.options,i.methods=(e.methods||[]).concat(d),m}function n(e,t){return a[e]=t,m}function r(t,n){if(n=n||{},n.methods=n.methods||[],n.options=n.options||function(){return{}},/^cancel|hide|show$/.test(t))throw new Error("Preset '"+t+"' in "+e+" is reserved!");if(n.methods.indexOf("_options")>-1)throw new Error("Method '_options' in "+e+" is reserved!");return i.presets[t]={methods:n.methods.concat(d),optionsFactory:n.options,argOption:n.argOption},m}function o(t,n){function r(e){return e=e||{},e._options&&(e=e._options),l.show(angular.extend({},c,e))}function o(e){return l.destroy(e)}function d(t,r){var o={};return o[e]=u,n.invoke(t||function(){return r},{},o)}var m,c,l=t(),u={hide:l.hide,cancel:l.cancel,show:r,destroy:o};return m=i.methods||[],c=d(i.optionsFactory,{}),angular.forEach(a,function(e,t){u[t]=e}),angular.forEach(i.presets,function(e,t){function n(e){this._options=angular.extend({},r,e)}var r=d(e.optionsFactory,{}),o=(e.methods||[]).concat(m);if(angular.extend(r,{$type:t}),angular.forEach(o,function(e){n.prototype[e]=function(t){return this._options[e]=t,this}}),e.argOption){var a="show"+t.charAt(0).toUpperCase()+t.slice(1);u[a]=function(e){var n=u[t](e);return u.show(n)}}u[t]=function(t){return arguments.length&&e.argOption&&!angular.isObject(t)&&!angular.isArray(t)?(new n)[e.argOption](t):new n(t)}}),u}o.$inject=["$$interimElement","$injector"];var d=["onHide","onShow","onRemove"],a={},i={presets:{}},m={setDefaults:t,addPreset:r,addMethod:n,$get:o};return m.addPreset("build",{methods:["controller","controllerAs","resolve","multiple","template","templateUrl","themable","transformTemplate","parent","contentElement"]}),m}function t(e,t,n,r,o,d,a,i,m,c,l){return function(){function u(e){e=e||{};var n=new f(e||{}),r=e.multiple?t.resolve():t.all(M);e.multiple||(r=r.then(function(){var e=A.concat(v.map(b.cancel));return t.all(e)}));var o=r.then(function(){return n.show()["catch"](function(e){return e})["finally"](function(){M.splice(M.indexOf(o),1),v.push(n)})});return M.push(o),n.deferred.promise["catch"](function(e){return e instanceof Error&&l(e),e}),n.deferred.promise}function s(e,n){function r(t){var r=t.remove(e,!1,n||{})["catch"](function(e){return e})["finally"](function(){A.splice(A.indexOf(r),1)});return v.splice(v.indexOf(t),1),A.push(r),t.deferred.promise}return n=n||{},n.closeAll?t.all(v.slice().reverse().map(r)):void 0!==n.closeTo?t.all(v.slice(n.closeTo).map(r)):r(v[v.length-1])}function p(e,n){var r=v.pop();if(!r)return t.when(e);var o=r.remove(e,!0,n||{})["catch"](function(e){return e})["finally"](function(){A.splice(A.indexOf(o),1)});return A.push(o),r.deferred.promise["catch"](angular.noop)}function h(e){return function(){var n=arguments;return v.length?e.apply(b,n):M.length?M[0]["finally"](function(){return e.apply(b,n)}):t.when("No interim elements currently showing up.")}}function E(e){var n=e?null:v.shift(),r=angular.element(e).length&&angular.element(e)[0].parentNode;if(r){var o=v.filter(function(e){return e.options.element[0]===r});o.length&&(n=o[0],v.splice(v.indexOf(n),1))}return n?n.remove(g,!1,{$destroy:!0}):t.when(g)}function f(c){function l(){return t(function(e,t){function n(e){A.deferred.reject(e),t(e)}c.onCompiling&&c.onCompiling(c),p(c).then(function(t){v=h(t,c),c.cleanupElement=t.cleanup,T=g(v,c,t.controller).then(e,n)})["catch"](n)})}function u(e,n,r){function o(e){A.deferred.resolve(e)}function d(e){A.deferred.reject(e)}return v?(c=angular.extend(c||{},r||{}),c.cancelAutoHide&&c.cancelAutoHide(),c.element.triggerHandler("$mdInterimElementRemove"),c.$destroy===!0?M(c.element,c).then(function(){n&&d(e)||o(e)}):(t.when(T)["finally"](function(){M(c.element,c).then(function(){n?d(e):o(e)},d)}),A.deferred.promise)):t.when(!1)}function s(e){return e=e||{},e.template&&(e.template=a.processTemplate(e.template)),angular.extend({preserveScope:!1,cancelAutoHide:angular.noop,scope:e.scope||n.$new(e.isolateScope),onShow:function(e,t,n){return d.enter(t,n.parent)},onRemove:function(e,n){return n&&d.leave(n)||t.when()}},e)}function p(e){var n=e.skipCompile?null:i.compile(e);return n||t(function(t){t({locals:{},link:function(){return e.element}})})}function h(e,t){angular.extend(e.locals,t);var n=e.link(t.scope);return t.element=n,t.parent=E(n,t),t.themable&&m(n),n}function E(t,n){var r=n.parent;if(r=angular.isFunction(r)?r(n.scope,t,n):angular.isString(r)?angular.element(e[0].querySelector(r)):angular.element(r),!(r||{}).length){var d;return o[0]&&o[0].querySelector&&(d=o[0].querySelector(":not(svg) > body")),d||(d=o[0]),"#comment"==d.nodeName&&(d=e[0].body),angular.element(d)}return r}function f(){var e,t=angular.noop;c.hideDelay&&(e=r(b.hide,c.hideDelay),t=function(){r.cancel(e)}),c.cancelAutoHide=function(){t(),c.cancelAutoHide=void 0}}function g(e,n,r){var o=n.onShowing||angular.noop,d=n.onComplete||angular.noop;try{o(n.scope,e,n,r)}catch(a){return t.reject(a)}return t(function(o,a){try{t.when(n.onShow(n.scope,e,n,r)).then(function(){d(n.scope,e,n),f(),o(e)},a)}catch(i){a(i.message)}})}function M(e,n){var r=n.onRemoving||angular.noop;return t(function(o,d){try{var a=t.when(n.onRemove(n.scope,e,n)||!0);r(e,a),n.$destroy?(o(e),!n.preserveScope&&n.scope&&a.then(function(){n.scope.$destroy()})):a.then(function(){!n.preserveScope&&n.scope&&n.scope.$destroy(),o(e)},d)}catch(i){d(i.message)}})}var A,v,T=t.when(!0);return c=s(c),A={options:c,deferred:t.defer(),show:l,remove:u}}var b,g=!1,M=[],A=[],v=[];return b={show:u,hide:h(s),cancel:h(p),destroy:E,$injector_:c}}}return t.$inject=["$document","$q","$rootScope","$timeout","$rootElement","$animate","$mdUtil","$mdCompiler","$mdTheming","$injector","$exceptionHandler"],e.$get=t,e}function MdLiveAnnouncer(e){this._$timeout=e,this._liveElement=this._createLiveElement(),this._announceTimeout=100}function ComponentRegistry(e,t){function n(e){return e&&""!==e}var r,o=[],d={};return r={notFoundError:function(t,n){e.error((n||"")+"No instance found for handle",t)},getInstances:function(){return o},get:function(e){if(!n(e))return null;var t,r,d;for(t=0,r=o.length;t<r;t++)if(d=o[t],d.$$mdHandle===e)return d;return null},register:function(e,t){function n(){var t=o.indexOf(e);t!==-1&&o.splice(t,1)}function r(){var n=d[t];n&&(n.forEach(function(t){t.resolve(e)}),delete d[t])}return t?(e.$$mdHandle=t,o.push(e),r(),n):angular.noop},when:function(e){if(n(e)){var o=t.defer(),a=r.get(e);return a?o.resolve(a):(void 0===d[e]&&(d[e]=[]),d[e].push(o)),o.promise}return t.reject("Invalid `md-component-id` value.")}}}function InkRippleDirective(e,t){return{controller:angular.noop,link:function(n,r,o){o.hasOwnProperty("mdInkRippleCheckbox")?t.attach(n,r):e.attach(n,r)}}}function InkRippleProvider(){function e(){t=!0}var t=!1;return{disableInkRipple:e,$get:["$injector",function(e){function n(n,r,o){return t||r.controller("mdNoInk")?angular.noop:e.instantiate(InkRippleCtrl,{$scope:n,$element:r,rippleOptions:o})}return{attach:n}}]}}function InkRippleCtrl(e,t,n,r,o,d,a){this.$window=r,this.$timeout=o,this.$mdUtil=d,this.$mdColorUtil=a,this.$scope=e,this.$element=t,this.options=n,this.mousedown=!1,this.ripples=[],this.timeout=null,
this.lastRipple=null,d.valueOnUse(this,"container",this.createContainer),this.$element.addClass("md-ink-ripple"),(t.controller("mdInkRipple")||{}).createRipple=angular.bind(this,this.createRipple),(t.controller("mdInkRipple")||{}).setColor=angular.bind(this,this.color),this.bindEvents()}function autoCleanup(e,t){(e.mousedown||e.lastRipple)&&(e.mousedown=!1,e.$mdUtil.nextTick(angular.bind(e,t),!1))}function attrNoDirective(){return{controller:angular.noop}}function AnimateDomUtils(e,t,n,r,o){var d;return d={translate3d:function(e,t,n,r){function d(n){return o(e,{to:n||t,addClass:r.transitionOutClass,removeClass:r.transitionInClass,duration:r.duration}).start()}return o(e,{from:t,to:n,addClass:r.transitionInClass,removeClass:r.transitionOutClass,duration:r.duration}).start().then(function(){return d})},waitTransitionEnd:function(e,o){var d=3e3;return t(function(t,a){function i(o){o&&o.target!==e[0]||(o&&n.cancel(c),e.off(r.CSS.TRANSITIONEND,i),t())}function m(t){return t=t||window.getComputedStyle(e[0]),"0s"==t.transitionDuration||!t.transition&&!t.transitionProperty}o=o||{},m(o.cachedTransitionStyles)&&(d=0);var c=n(i,o.timeout||d);e.on(r.CSS.TRANSITIONEND,i)})},calculateTransformValues:function(e,t){function n(){var t=e?e.parent():null,n=t?t.parent():null;return n?d.clientRect(n):null}var r=t.element,o=t.bounds;if(r||o){var a=r?d.clientRect(r)||n():d.copyRect(o),i=d.copyRect(e[0].getBoundingClientRect()),m=d.centerPointFor(i),c=d.centerPointFor(a);return{centerX:c.x-m.x,centerY:c.y-m.y,scaleX:Math.round(100*Math.min(.5,a.width/i.width))/100,scaleY:Math.round(100*Math.min(.5,a.height/i.height))/100}}return{centerX:0,centerY:0,scaleX:.5,scaleY:.5}},calculateZoomToOrigin:function(t,n){var r="translate3d( {centerX}px, {centerY}px, 0 ) scale( {scaleX}, {scaleY} )",o=angular.bind(null,e.supplant,r);return o(d.calculateTransformValues(t,n))},calculateSlideToOrigin:function(t,n){var r="translate3d( {centerX}px, {centerY}px, 0 )",o=angular.bind(null,e.supplant,r);return o(d.calculateTransformValues(t,n))},toCss:function(e){function t(e,t,r){angular.forEach(t.split(" "),function(e){n[e]=r})}var n={},o="left top right bottom width height x y min-width min-height max-width max-height";return angular.forEach(e,function(e,d){if(!angular.isUndefined(e))if(o.indexOf(d)>=0)n[d]=e+"px";else switch(d){case"transition":t(d,r.CSS.TRANSITION,e);break;case"transform":t(d,r.CSS.TRANSFORM,e);break;case"transformOrigin":t(d,r.CSS.TRANSFORM_ORIGIN,e);break;case"font-size":n["font-size"]=e}}),n},toTransformCss:function(e,t,n){var o={};return angular.forEach(r.CSS.TRANSFORM.split(" "),function(t){o[t]=e}),t&&(n=n||"all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1) !important",o.transition=n),o},copyRect:function(e,t){return e?(t=t||{},angular.forEach("left top right bottom width height".split(" "),function(n){t[n]=Math.round(e[n])}),t.width=t.width||t.right-t.left,t.height=t.height||t.bottom-t.top,t):null},clientRect:function(e){var t=angular.element(e)[0].getBoundingClientRect(),n=function(e){return e&&e.width>0&&e.height>0};return n(t)?d.copyRect(t):null},centerPointFor:function(e){return e?{x:Math.round(e.left+e.width/2),y:Math.round(e.top+e.height/2)}:{x:0,y:0}}}}goog.provide("ngmaterial.core"),DetectNgTouch.$inject=["$log","$injector"],MdCoreConfigure.$inject=["$provide","$mdThemingProvider"],rAFDecorator.$inject=["$delegate"],qDecorator.$inject=["$delegate"],angular.module("material.core",["ngAnimate","material.core.animate","material.core.layout","material.core.interaction","material.core.gestures","material.core.theming"]).config(MdCoreConfigure).run(DetectNgTouch),MdAutofocusDirective.$inject=["$parse"],angular.module("material.core").directive("mdAutofocus",MdAutofocusDirective).directive("mdAutoFocus",MdAutofocusDirective).directive("mdSidenavFocus",MdAutofocusDirective),angular.module("material.core").factory("$mdColorUtil",ColorUtilFactory),angular.module("material.core").factory("$mdConstant",MdConstantFactory),angular.module("material.core").config(["$provide",function(e){e.decorator("$mdUtil",["$delegate",function(e){return e.iterator=MdIterator,e}])}]),mdMediaFactory.$inject=["$mdConstant","$rootScope","$window"],angular.module("material.core").factory("$mdMedia",mdMediaFactory),angular.module("material.core").config(["$provide",function(e){e.decorator("$mdUtil",["$delegate",function(e){return e.prefixer=MdPrefixer,e}])}]),UtilFactory.$inject=["$document","$timeout","$compile","$rootScope","$$mdAnimate","$interpolate","$log","$rootElement","$window","$$rAF"];var nextUniqueId=0;angular.module("material.core").factory("$mdUtil",UtilFactory),angular.element.prototype.focus=angular.element.prototype.focus||function(){return this.length&&this[0].focus(),this},angular.element.prototype.blur=angular.element.prototype.blur||function(){return this.length&&this[0].blur(),this},MdAriaService.$inject=["$$rAF","$log","$window","$interpolate"],angular.module("material.core").provider("$mdAria",MdAriaProvider),MdCompilerService.$inject=["$q","$templateRequest","$injector","$compile","$controller"],angular.module("material.core").service("$mdCompiler",MdCompilerService),MdCompilerService.prototype.compile=function(e){return e.contentElement?this._prepareContentElement(e):this._compileTemplate(e)},MdCompilerService.prototype._prepareContentElement=function(e){var t=this._fetchContentElement(e);return this.$q.resolve({element:t.element,cleanup:t.restore,locals:{},link:function(){return t.element}})},MdCompilerService.prototype._compileTemplate=function(e){var t=this,n=e.templateUrl,r=e.template||"",o=angular.extend({},e.resolve),d=angular.extend({},e.locals),a=e.transformTemplate||angular.identity;return angular.forEach(o,function(e,n){angular.isString(e)?o[n]=t.$injector.get(e):o[n]=t.$injector.invoke(e)}),angular.extend(o,d),n?o.$$ngTemplate=this.$templateRequest(n):o.$$ngTemplate=this.$q.when(r),this.$q.all(o).then(function(n){var r=a(n.$$ngTemplate,e),o=e.element||angular.element("<div>").html(r.trim()).contents();return t._compileElement(n,o,e)})},MdCompilerService.prototype._compileElement=function(e,t,n){function r(r){if(e.$scope=r,n.controller){var i=angular.extend(e,{$element:t}),m=o.$controller(n.controller,i,!0,n.controllerAs);n.bindToController&&angular.extend(m.instance,e);var c=m();t.data("$ngControllerController",c),t.children().data("$ngControllerController",c),a.controller=c}return d(r)}var o=this,d=this.$compile(t),a={element:t,cleanup:t.remove.bind(t),locals:e,link:r};return a},MdCompilerService.prototype._fetchContentElement=function(e){function t(e){var t=e.parentNode,n=e.nextElementSibling;return function(){n?t.insertBefore(e,n):t.appendChild(e)}}var n=e.contentElement,r=null;return angular.isString(n)?(n=document.querySelector(n),r=t(n)):(n=n[0]||n,r=document.contains(n)?t(n):function(){n.parentNode&&n.parentNode.removeChild(n)}),{element:angular.element(n),restore:r}},MdGesture.$inject=["$$MdGestureHandler","$$rAF","$timeout"],attachToDocument.$inject=["$mdGesture","$$MdGestureHandler"];var HANDLERS={},pointer,lastPointer,forceSkipClickHijack=!1,lastLabelClickPos=null,isInitialized=!1;angular.module("material.core.gestures",[]).provider("$mdGesture",MdGestureProvider).factory("$$MdGestureHandler",MdGestureHandler).run(attachToDocument),MdGestureProvider.prototype={skipClickHijack:function(){return forceSkipClickHijack=!0},$get:["$$MdGestureHandler","$$rAF","$timeout",function(e,t,n){return new MdGesture(e,t,n)}]},MdInteractionService.$inject=["$timeout","$mdUtil"],angular.module("material.core.interaction",[]).service("$mdInteraction",MdInteractionService),MdInteractionService.prototype.initializeEvents=function(){var e="MSPointerEvent"in window?"MSPointerDown":"PointerEvent"in window?"pointerdown":null;this.bodyElement.on("keydown mousedown",this.onInputEvent.bind(this)),"ontouchstart"in document.documentElement&&this.bodyElement.on("touchstart",this.onBufferInputEvent.bind(this)),e&&this.bodyElement.on(e,this.onInputEvent.bind(this))},MdInteractionService.prototype.onInputEvent=function(e){if(!this.isBuffering){var t=this.inputEventMap[e.type];"pointer"===t&&(t=this.iePointerMap[e.pointerType]||e.pointerType),this.lastInteractionType=t,this.lastInteractionTime=this.$mdUtil.now()}},MdInteractionService.prototype.onBufferInputEvent=function(e){this.$timeout.cancel(this.bufferTimeout),this.onInputEvent(e),this.isBuffering=!0,this.bufferTimeout=this.$timeout(function(){this.isBuffering=!1}.bind(this),650,!1)},MdInteractionService.prototype.getLastInteractionType=function(){return this.lastInteractionType},MdInteractionService.prototype.isUserInvoked=function(e){var t=angular.isNumber(e)?e:15;return this.lastInteractionTime>=this.$mdUtil.now()-t},angular.module("material.core").provider("$$interimElement",InterimElementProvider),function(){"use strict";function e(e){function a(e){return e.replace(l,"").replace(u,function(e,t,n,r){return r?n.toUpperCase():n})}var l=/^((?:x|data)[\:\-_])/i,u=/([\:\-\_]+(.))/g,s=["","xs","gt-xs","sm","gt-sm","md","gt-md","lg","gt-lg","xl","print"],p=["layout","flex","flex-order","flex-offset","layout-align"],h=["show","hide","layout-padding","layout-margin"];angular.forEach(s,function(t){angular.forEach(p,function(n){var r=t?n+"-"+t:n;e.directive(a(r),o(r))}),angular.forEach(h,function(n){var r=t?n+"-"+t:n;e.directive(a(r),d(r))})}),e.provider("$$mdLayout",function(){return{$get:angular.noop,validateAttributeValue:c,validateAttributeUsage:m,disableLayouts:function(e){N.enabled=e!==!0}}}).directive("mdLayoutCss",n).directive("ngCloak",r("ng-cloak")).directive("layoutWrap",d("layout-wrap")).directive("layoutNowrap",d("layout-nowrap")).directive("layoutNoWrap",d("layout-no-wrap")).directive("layoutFill",d("layout-fill")).directive("layoutLtMd",i("layout-lt-md",!0)).directive("layoutLtLg",i("layout-lt-lg",!0)).directive("flexLtMd",i("flex-lt-md",!0)).directive("flexLtLg",i("flex-lt-lg",!0)).directive("layoutAlignLtMd",i("layout-align-lt-md")).directive("layoutAlignLtLg",i("layout-align-lt-lg")).directive("flexOrderLtMd",i("flex-order-lt-md")).directive("flexOrderLtLg",i("flex-order-lt-lg")).directive("offsetLtMd",i("flex-offset-lt-md")).directive("offsetLtLg",i("flex-offset-lt-lg")).directive("hideLtMd",i("hide-lt-md")).directive("hideLtLg",i("hide-lt-lg")).directive("showLtMd",i("show-lt-md")).directive("showLtLg",i("show-lt-lg")).config(t)}function t(){var e=!!document.querySelector("[md-layouts-disabled]");N.enabled=!e}function n(){return N.enabled=!1,{restrict:"A",priority:"900"}}function r(e){return["$timeout",function(t){return{restrict:"A",priority:-10,compile:function(n){return N.enabled?(n.addClass(e),function(n,r){t(function(){r.removeClass(e)},10,!1)}):angular.noop}}}]}function o(e){function t(t,n,r){var o=a(n,e,r),d=r.$observe(r.$normalize(e),o);o(s(e,r,"")),t.$on("$destroy",function(){d()})}return["$mdUtil","$interpolate","$log",function(n,r,o){return E=n,f=r,b=o,{restrict:"A",compile:function(n,r){var o;return N.enabled&&(m(e,r,n,b),c(e,s(e,r,""),l(n,e,r)),o=t),o||angular.noop}}}]}function d(e){function t(t,n){n.addClass(e)}return["$mdUtil","$interpolate","$log",function(n,r,o){return E=n,f=r,b=o,{restrict:"A",compile:function(n,r){var o;return N.enabled&&(c(e,s(e,r,""),l(n,e,r)),t(null,n),o=t),o||angular.noop}}}]}function a(e,t){var n;return function(r){var o=c(t,r||"");angular.isDefined(o)&&(n&&e.removeClass(n),n=o?t+"-"+o.replace(M,"-"):t,e.addClass(n))}}function i(e){var t=e.split("-");return["$log",function(n){return n.warn(e+"has been deprecated. Please use a `"+t[0]+"-gt-<xxx>` variant."),angular.noop}]}function m(e,t,n,r){var o,d,a,i=n[0].nodeName.toLowerCase();switch(e.replace(g,"")){case"flex":"md-button"!=i&&"fieldset"!=i||(d="<"+i+" "+e+"></"+i+">",a="https://github.com/philipwalton/flexbugs#9-some-html-elements-cant-be-flex-containers",o="Markup '{0}' may not work as expected in IE Browsers. Consult '{1}' for details.",r.warn(E.supplant(o,[d,a])))}}function c(e,t,n){var r=t;if(!u(t)){switch(e.replace(g,"")){case"layout":p(t,v)||(t=v[0]);break;case"flex":p(t,A)||isNaN(t)&&(t="");break;case"flex-offset":case"flex-order":t&&!isNaN(+t)||(t="0");break;case"layout-align":var o=h(t);t=E.supplant("{main}-{cross}",o);break;case"layout-padding":case"layout-margin":case"layout-fill":case"layout-wrap":case"layout-nowrap":case"layout-nowrap":t=""}t!=r&&(n||angular.noop)(t)}return t}function l(e,t,n){return function(e){u(e)||(n[n.$normalize(t)]=e)}}function u(e){return(e||"").indexOf(f.startSymbol())>-1}function s(e,t,n){var r=t.$normalize(e);return t[r]?t[r].replace(M,"-"):n||null}function p(e,t,n){e=n&&e?e.replace(M,n):e;var r=!1;return e&&t.forEach(function(t){t=n?t.replace(M,n):t,r=r||t===e}),r}function h(e){var t,n={main:"start",cross:"stretch"};return e=e||"",0!==e.indexOf("-")&&0!==e.indexOf(" ")||(e="none"+e),t=e.toLowerCase().trim().replace(M,"-").split("-"),t.length&&"space"===t[0]&&(t=[t[0]+"-"+t[1],t[2]]),t.length>0&&(n.main=t[0]||n.main),t.length>1&&(n.cross=t[1]||n.cross),T.indexOf(n.main)<0&&(n.main="start"),k.indexOf(n.cross)<0&&(n.cross="stretch"),n}var E,f,b,g=/(-gt)?-(sm|md|lg|print)/g,M=/\s+/g,A=["grow","initial","auto","none","noshrink","nogrow"],v=["row","column"],T=["","start","center","end","stretch","space-around","space-between"],k=["","start","center","end","stretch"],N={enabled:!0,breakpoints:[]};e(angular.module("material.core.layout",["ng"]))}(),MdLiveAnnouncer.$inject=["$timeout"],angular.module("material.core").service("$mdLiveAnnouncer",MdLiveAnnouncer),MdLiveAnnouncer.prototype.announce=function(e,t){t||(t="polite");var n=this;n._liveElement.textContent="",n._liveElement.setAttribute("aria-live",t),n._$timeout(function(){n._liveElement.textContent=e},n._announceTimeout,!1)},MdLiveAnnouncer.prototype._createLiveElement=function(){var e=document.createElement("div");return e.classList.add("md-visually-hidden"),e.setAttribute("role","status"),e.setAttribute("aria-atomic","true"),e.setAttribute("aria-live","polite"),document.body.appendChild(e),e},angular.module("material.core.meta",[]).provider("$$mdMeta",function(){function e(e){if(o[e])return!0;var t=document.getElementsByName(e)[0];return!!t&&(o[e]=angular.element(t),!0)}function t(t,n){if(e(t),o[t])o[t].attr("content",n);else{var d=angular.element('<meta name="'+t+'" content="'+n+'"/>');r.append(d),o[t]=d}return function(){o[t].attr("content",""),o[t].remove(),delete o[t]}}function n(t){if(!e(t))throw Error("$$mdMeta: could not find a meta tag with the name '"+t+"'");return o[t].attr("content")}var r=angular.element(document.head),o={},d={setMeta:t,getMeta:n};return angular.extend({},d,{$get:function(){return d}})}),ComponentRegistry.$inject=["$log","$q"],angular.module("material.core").factory("$mdComponentRegistry",ComponentRegistry),function(){"use strict";function e(e){function t(e){return e.hasClass("md-icon-button")?{isMenuItem:e.hasClass("md-menu-item"),fitRipple:!0,center:!0}:{isMenuItem:e.hasClass("md-menu-item"),dimBackground:!0}}return{attach:function(n,r,o){return o=angular.extend(t(r),o),e.attach(n,r,o)}}}e.$inject=["$mdInkRipple"],angular.module("material.core").factory("$mdButtonInkRipple",e)}(),function(){"use strict";function e(e){function t(t,n,r){return e.attach(t,n,angular.extend({center:!0,dimBackground:!1,fitRipple:!0},r))}return{attach:t}}e.$inject=["$mdInkRipple"],angular.module("material.core").factory("$mdCheckboxInkRipple",e)}(),function(){"use strict";function e(e){function t(t,n,r){return e.attach(t,n,angular.extend({center:!1,dimBackground:!0,outline:!1,rippleSize:"full"},r))}return{attach:t}}e.$inject=["$mdInkRipple"],angular.module("material.core").factory("$mdListInkRipple",e)}(),InkRippleCtrl.$inject=["$scope","$element","rippleOptions","$window","$timeout","$mdUtil","$mdColorUtil"],InkRippleDirective.$inject=["$mdButtonInkRipple","$mdCheckboxInkRipple"],angular.module("material.core").provider("$mdInkRipple",InkRippleProvider).directive("mdInkRipple",InkRippleDirective).directive("mdNoInk",attrNoDirective).directive("mdNoBar",attrNoDirective).directive("mdNoStretch",attrNoDirective);var DURATION=450;InkRippleCtrl.prototype.color=function(e){function t(){var e=n.options&&n.options.colorElement?n.options.colorElement:[],t=e.length?e[0]:n.$element[0];return t?n.$window.getComputedStyle(t).color:"rgb(0,0,0)"}var n=this;return angular.isDefined(e)&&(n._color=n._parseColor(e)),n._color||n._parseColor(n.inkRipple())||n._parseColor(t())},InkRippleCtrl.prototype.calculateColor=function(){return this.color()},InkRippleCtrl.prototype._parseColor=function(e,t){t=t||1;var n=this.$mdColorUtil;if(e)return 0===e.indexOf("rgba")?e.replace(/\d?\.?\d*\s*\)\s*$/,(.1*t).toString()+")"):0===e.indexOf("rgb")?n.rgbToRgba(e):0===e.indexOf("#")?n.hexToRgba(e):void 0},InkRippleCtrl.prototype.bindEvents=function(){this.$element.on("mousedown",angular.bind(this,this.handleMousedown)),this.$element.on("mouseup touchend",angular.bind(this,this.handleMouseup)),this.$element.on("mouseleave",angular.bind(this,this.handleMouseup)),this.$element.on("touchmove",angular.bind(this,this.handleTouchmove))},InkRippleCtrl.prototype.handleMousedown=function(e){if(!this.mousedown)if(e.hasOwnProperty("originalEvent")&&(e=e.originalEvent),this.mousedown=!0,this.options.center)this.createRipple(this.container.prop("clientWidth")/2,this.container.prop("clientWidth")/2);else if(e.srcElement!==this.$element[0]){var t=this.$element[0].getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;this.createRipple(n,r)}else this.createRipple(e.offsetX,e.offsetY)},InkRippleCtrl.prototype.handleMouseup=function(){autoCleanup(this,this.clearRipples)},InkRippleCtrl.prototype.handleTouchmove=function(){autoCleanup(this,this.deleteRipples)},InkRippleCtrl.prototype.deleteRipples=function(){for(var e=0;e<this.ripples.length;e++)this.ripples[e].remove()},InkRippleCtrl.prototype.clearRipples=function(){for(var e=0;e<this.ripples.length;e++)t