mcs-ng-material
Version:
MCS NG-Meterial is based on mcs-web.
8 lines • 129 kB
JavaScript
/*!
* AngularJS Material Design
* https://github.com/angular/material
* @license MIT
* v1.1.5-master-515959d
*/
function DetectNgTouch(e,t){if(t.has("$swipe")){var n="You are using the ngTouch module. \nAngularJS Material already has mobile click, tap, and swipe support... \nngTouch is not supported with AngularJS 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,a;return function(){n=arguments,a=this,o=t,r||(r=!0,e(function(){o.apply(a,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 a=r.mdAutoFocus||r.mdAutofocus||r.mdSidenavFocus;o(e(a)(t)),a&&t.$watch(a,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),a=t.substr(2*n);return 1===n&&(r+=r,o+=o,a+=a),"rgba("+parseInt(r,16)+","+parseInt(o,16)+","+parseInt(a,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=a+"-"+e,d=n(r),i=d.charAt(0).toLowerCase()+d.substring(1);return t(o,e)?e:t(o,d)?d: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"),a=r(o),d=/webkit/i.test(a),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},isMetaKey:function(e){return e.keyCode>=91&&e.keyCode<=93},isFnLockKey:function(e){return e.keyCode>=112&&e.keyCode<=145},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},hasModifierKey:function(e){return e.ctrlKey||e.metaKey||e.altKey},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"+(d?" webkitTransitionEnd":""),ANIMATIONEND:"animationend"+(d?" 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 a(e){return!!e&&o(s(e)+1)}function d(e){return!!e&&o(s(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),s(e)):-1}function l(e){u(e)&&b.splice(s(e),1)}function s(e){return b.indexOf(e)}function u(e){return e&&s(e)>-1}function p(){return b.length?b[0]:null}function E(){return b.length?b[b.length-1]:null}function h(e,n,r,a){r=r||f;for(var d=s(n);;){if(!o(d))return null;var i=d+(e?-1:1),m=null;if(o(i)?m=b[i]:t&&(m=e?E():p(),i=s(m)),null===m||i===a)return null;if(r(m))return m;angular.isUndefined(a)&&(a=i),d=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:u,indexOf:s,itemAt:i,findBy:m,add:c,remove:l,first:p,last:E,next:angular.bind(null,h,!1),previous:angular.bind(null,h,!0),hasPrevious:d,hasNext:a}}function mdMediaFactory(e,t,n){function r(e){var t=s[e];angular.isUndefined(t)&&(t=s[e]=o(e));var n=p[t];return angular.isUndefined(n)&&(n=a(t)),n}function o(t){return e.MEDIA[t]||("("!==t.charAt(0)?"("+t+")":t)}function a(e){var t=u[e];return t||(t=u[e]=n.matchMedia(e)),t.addListener(d),p[t.media]=!!t.matches}function d(e){t.$evalAsync(function(){p[e.media]=!!e.matches})}function i(e){return u[e]}function m(t,n){for(var r=0;r<e.MEDIA_PRIORITY.length;r++){var o=e.MEDIA_PRIORITY[r];if(u[s[o]].matches){var a=l(t,n+"-"+o);if(t[a])return t[a]}}return t[l(t,n)]}function c(t,n,r){var o=[];return t.forEach(function(t){var a=l(n,t);angular.isDefined(n[a])&&o.push(n.$observe(a,angular.bind(void 0,r,null)));for(var d in e.MEDIA)a=l(n,t+"-"+d),angular.isDefined(n[a])&&o.push(n.$observe(a,angular.bind(void 0,r,d)))}),function(){o.forEach(function(e){e()})}}function l(e,t){return E[t]||(E[t]=e.$normalize(t))}var s={},u={},p={},E={};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=d(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 a(e,t){e=d(e),e&&n(t).forEach(function(t){e.removeAttribute(t)})}function d(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:a}}function UtilFactory(e,t,n,r,o,a,d,i,m,c){function l(e){return e?s(e)||u(e)?e:e+"px":"0"}function s(e){return String(e).indexOf("px")>-1}function u(e){return String(e).indexOf("%")>-1}function p(e){return e[0]||e}var E=a.startSymbol(),h=a.endSymbol(),f="{{"===E&&"}}"===h,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 a=!("rtl"==e[0].dir||"rtl"==e[0].body.dir);if(0==arguments.length)return a?"ltr":"rtl";var d=angular.element(t);a&&angular.isDefined(r)?d.css(n,l(r)):!a&&angular.isDefined(o)&&d.css(n,l(o))},bidiProperty:function(t,n,r,o){var a=!("rtl"==e[0].dir||"rtl"==e[0].body.dir),d=angular.element(t);a&&angular.isDefined(n)?(d.css(n,l(o)),d.css(r,"")):!a&&angular.isDefined(r)&&(d.css(r,l(o)),d.css(n,""))},clientRect:function(e,t,n){var r=p(e);t=p(t||r.offsetParent||document.body);var o=r.getBoundingClientRect(),a=n?t.getBoundingClientRect():{left:0,top:0,width:0,height:0};return{left:o.left-a.left,top:o.top-a.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||d);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&&n[0].parentNode.removeChild(n[0])}}function a(){var t=e[0].documentElement,n=t.style.cssText||"",r=d.style.cssText||"",o=g.getViewportTop(),a=d.clientWidth,i=d.scrollHeight>d.clientHeight+1,m=t.scrollTop>0?t:d;return i&&angular.element(d).css({position:"fixed",width:"100%",top:-o+"px"}),d.clientWidth<a&&(d.style.overflow="hidden"),i&&(t.style.overflowY="scroll"),function(){d.style.cssText=r,t.style.cssText=n,m.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 d=e[0].body,i=a(),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 a in r)r.hasOwnProperty(a)&&(o=o[r[a]])}catch(d){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 a;return function(){var d=r,i=Array.prototype.slice.call(arguments);t.cancel(a),a=t(function(){a=void 0,e.apply(d,i)},n||10,o)}},throttle:function(e,t){var n;return function(){var r=this,o=arguments,a=g.now();(!n||a-n>t)&&(e.apply(r,o),n=a)}},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),a=o.length>3?o.slice(3):[];Object.defineProperty(e,t,{get:function(){return null===r&&(r=n.apply(e,a)),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 a(e)||(n?i(e):null)}function a(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 a=e[n];if(!t)for(var d=0,i=a.childNodes.length;d<i;d++)t=t||o([a.childNodes[d]])}return t}var m=o(e);return!m&&r&&d.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 a=angular.isDefined(t[r.attrName]);e[o]=angular.isDefined(n[o])?n[o]:a}})},nextTick:function(e,n,o){function a(){var e=d.queue,t=d.digest;d.queue=[],d.timeout=null,d.digest=!1,e.forEach(function(e){var t=e.scope&&e.scope.$$destroyed;t||e.callback()}),t&&r.$digest()}var d=g.nextTick,i=d.timeout,m=d.queue||[];return m.push({scope:o,callback:e}),null==n&&(n=!0),d.digest=d.digest||n,d.queue=m,i||(d.timeout=t(a,0,!1))},processTemplate:function(e){return f?e:e&&angular.isString(e)?e.replace(/\{\{/g,E).replace(/}}/g,h):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 a(t,d,i,e)}function a(e,t,n,r){if(e>r)return t+n;var o=(e/=r)*e,a=o*e;return t+n*(-2*a+3*o)}var d=e.scrollTop,i=t-d,m=d<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):u&&t.warn('ARIA: Attribute "',n,'", required for accessibility, is missing on node:',o))}function a(t,n,r){e(function(){o(t,n,r())})}function d(e,t){var n=m(e)||"",d=n.indexOf(r.startSymbol())>-1;d?a(e,t,function(){return m(e)}):o(e,t,n)}function i(e,t){var n=m(e),a=n.indexOf(r.startSymbol())>-1;a||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(),a=!1;if(o)for(var d=e.childNodes,i=0;i<d.length;i++){var m=d[i];1===m.nodeType&&m.hasAttribute(t)&&(r(m)||(a=!0))}return a}function l(e){var t=angular.element(e)[0]||e;return!!t.hasAttribute&&(t.hasAttribute("aria-label")||t.hasAttribute("aria-labelledby")||t.hasAttribute("aria-describedby"))}function s(e,t){function n(e){if(!l(e))return!1;if(e.hasAttribute("role"))switch(e.getAttribute("role").toLowerCase()){case"command":case"definition":case"directory":case"grid":case"list":case"listitem":case"log":case"marquee":case"menu":case"menubar":case"note":case"presentation":case"separator":case"scrollbar":case"status":case"tablist":return!1}switch(e.tagName.toLowerCase()){case"abbr":case"acronym":case"address":case"applet":case"audio":case"b":case"bdi":case"bdo":case"big":case"blockquote":case"br":case"canvas":case"caption":case"center":case"cite":case"code":case"col":case"data":case"dd":case"del":case"dfn":case"dir":case"div":case"dl":case"em":case"embed":case"fieldset":case"figcaption":case"font":case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":case"hgroup":case"html":case"i":case"ins":case"isindex":case"kbd":case"keygen":case"label":case"legend":case"li":case"map":case"mark":case"menu":case"object":case"ol":case"output":case"pre":case"presentation":case"q":case"rt":case"ruby":case"samp":case"small":case"source":case"span":case"status":case"strike":case"strong":case"sub":case"sup":case"svg":case"tbody":case"td":case"th":case"thead":case"time":case"tr":case"track":case"tt":case"ul":case"var":return!1}return!0}t=t||1;var r=angular.element(e)[0]||e;return!!r.parentNode&&(!!n(r.parentNode)||(t--,!!t&&s(r.parentNode,t)))}var u=this.showWarnings;return{expect:o,expectAsync:a,expectWithText:d,expectWithoutText:i,getText:m,hasAriaLabel:l,parentHasAriaLabel:s}}function MdCompilerProvider(e){function t(){return!r||("function"==typeof e.preAssignBindingsEnabled?e.preAssignBindingsEnabled():1===angular.version.major&&angular.version.minor<6)}function n(e,t,n,r,o){this.$q=e,this.$templateRequest=t,this.$injector=n,this.$compile=r,this.$controller=o}var r=!1;this.respectPreAssignBindingsEnabled=function(e){return angular.isDefined(e)?(r=e,this):r},this.$get=["$q","$templateRequest","$injector","$compile","$controller",function(e,t,r,o,a){return new n(e,t,r,o,a)}],n.prototype.compile=function(e){return e.contentElement?this._prepareContentElement(e):this._compileTemplate(e)},n.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}})},n.prototype._compileTemplate=function(e){var t=this,n=e.templateUrl,r=e.template||"",o=angular.extend({},e.resolve),a=angular.extend({},e.locals),d=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,a),n?o.$$ngTemplate=this.$templateRequest(n):o.$$ngTemplate=this.$q.when(r),this.$q.all(o).then(function(n){var r=d(n.$$ngTemplate,e),o=e.element||angular.element("<div>").html(r.trim()).contents();return t._compileElement(n,o,e)})},n.prototype._compileElement=function(e,t,n){function r(r){if(e.$scope=r,n.controller){var i=angular.extend({},e,{$element:t}),m=o._createController(n,i,e);t.data("$ngControllerController",m),t.children().data("$ngControllerController",m),d.controller=m}return a(r)}var o=this,a=this.$compile(t),d={element:t,cleanup:t.remove.bind(t),locals:e,link:r};return d},n.prototype._createController=function(e,n,r){var o=this.$controller(e.controller,n,!0,e.controllerAs);t()&&e.bindToController&&angular.extend(o.instance,r);var a=o();return!t()&&e.bindToController&&angular.extend(a,r),angular.isFunction(a.$onInit)&&a.$onInit(),a},n.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}}}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 a(t,n){var r=new e(t);return angular.extend(r,n),HANDLERS[t]=r,u}function d(){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=d(),s="undefined"!=typeof window.jQuery&&angular.element===window.jQuery,u={handler:a,register:o,isHijackingClicks:(m||c)&&!s&&!forceSkipClickHijack};return u.isHijackingClicks&&(u.handler("click",{options:{maxDistance:maxClickDistance},onEnd:r("click")}),u.handler("focus",{options:{maxDistance:maxClickDistance},onEnd:function(e,t){t.distance<this.state.options.maxDistance&&canFocus(e.target)&&(this.dispatchEvent(e,"focus",t),e.target.focus())}}),u.handler("mouseup",{options:{maxDistance:maxClickDistance},onEnd:r("mouseup")}),u.handler("mousedown",{onStart:function(e){this.dispatchEvent(e,"mousedown")}})),u.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?"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)||"mousedown"===e.type&&(canFocus(e.target)||canFocus(document.activeElement))||(e.preventDefault(),e.stopPropagation())}function r(e){var t=0===e.clientX&&0===e.clientY,n=e.target&&"submit"===e.target.type;t||e.$material||e.isIonicTap||isInputEventFromLabelClick(e)||n?(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 a(e){if(!pointer){var t=+Date.now();lastPointer&&!typesMatch(e,lastPointer)&&t-lastPointer.endTime<1500||(pointer=makeStartPointer(e),o("start",e))}}function d(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(),"pointercancel"!==e.type&&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,a).on(c,d).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 canFocus(e){return!!e&&"-1"!=e.getAttribute("tabindex")&&!e.hasAttribute("disabled")&&(e.hasAttribute("tabindex")||e.hasAttribute("href")||e.isContentEditable||["INPUT","SELECT","BUTTON","TEXTAREA","VIDEO","AUDIO"].indexOf(e.nodeName)!=-1)}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(a),m}function n(e,t){return d[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(a),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 a(t,r){var o={};return o[e]=s,n.invoke(t||function(){return r},{},o)}var m,c,l=t(),s={hide:l.hide,cancel:l.cancel,show:r,destroy:o};return m=i.methods||[],c=a(i.optionsFactory,{}),angular.forEach(d,function(e,t){s[t]=e}),angular.forEach(i.presets,function(e,t){function n(e){this._options=angular.extend({},r,e)}var r=a(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 d="show"+t.charAt(0).toUpperCase()+t.slice(1);s[d]=function(e){var n=s[t](e);return s.show(n)}}s[t]=function(t){return arguments.length&&e.argOption&&!angular.isObject(t)&&!angular.isArray(t)?(new n)[e.argOption](t):new n(t)}}),s}o.$inject=["$$interimElement","$injector"];var a=["onHide","onShow","onRemove"],d={},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,a,d,i,m,c,l){return function(){function s(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 u(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 E(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 h(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=E(t,c),c.cleanupElement=t.cleanup,T=g(v,c,t.controller).then(e,n)})["catch"](n)})}function s(e,n,r){function o(e){A.deferred.resolve(e)}function a(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&&a(e)||o(e)}):(t.when(T)["finally"](function(){M(c.element,c).then(function(){n?a(e):o(e)},a)}),A.deferred.promise)):t.when(!1)}function u(e){return e=e||{},e.template&&(e.template=d.processTemplate(e.template)),angular.extend({preserveScope:!1,cancelAutoHide:angular.noop,scope:e.scope||n.$new(e.isolateScope),onShow:function(e,t,n){return a.enter(t,n.parent)},onRemove:function(e,n){return n&&a.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 E(e,t){angular.extend(e.locals,t);var n=e.link(t.scope);return t.element=n,t.parent=h(n,t),t.themable&&m(n),n}function h(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 a;return o[0]&&o[0].querySelector&&(a=o[0].querySelector(":not(svg) > body")),a||(a=o[0]),"#comment"==a.nodeName&&(a=e[0].body),angular.element(a)}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,a=n.onComplete||angular.noop;try{o(n.scope,e,n,r)}catch(d){return t.reject(d)}return t(function(o,d){try{t.when(n.onShow(n.scope,e,n,r)).then(function(){a(n.scope,e,n),f(),o(e)},d)}catch(i){d(i.message)}})}function M(e,n){var r=n.onRemoving||angular.noop;return t(function(o,a){try{var d=t.when(n.onRemove(n.scope,e,n)||!0);r(e,d),n.$destroy?(o(e),!n.preserveScope&&n.scope&&d.then(function(){n.scope.$destroy()})):d.then(function(){!n.preserveScope&&n.scope&&n.scope.$destroy(),o(e)},a)}catch(i){a(i.message)}})}var A,v,T=t.when(!0);return c=u(c),A={options:c,deferred:t.defer(),show:l,remove:s}}var b,g=!1,M=[],A=[],v=[];return b={show:s,hide:E(u),cancel:E(p),destroy:h,$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=[],a={};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,a;for(t=0,r=o.length;t<r;t++)if(a=o[t],a.$$mdHandle===e)return a;return null},register:function(e,t){function n(){var t=o.indexOf(e);t!==-1&&o.splice(t,1)}function r(){var n=a[t];n&&(n.forEach(function(t){t.resolve(e)}),delete a[t])}return t?(e.$$mdHandle=t,o.push(e),r(),n):angular.noop},when:function(e){if(n(e)){var o=t.defer(),d=r.get(e);return d?o.resolve(d):(void 0===a[e]&&(a[e]=[]),a[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,a,d){this.$window=r,this.$timeout=o,this.$mdUtil=a,this.$mdColorUtil=d,this.$scope=e,this.$element=t,this.options=n,this.mousedown=!1,this.ripples=[],this.timeout=null,this.lastRipple=null,a.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 a;return a={translate3d:function(e,t,n,r){function a(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 a})},waitTransitionEnd:function(e,o){var a=3e3;return t(function(t,d){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)&&(a=0);var c=n(i,o.timeout||a);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?a.clientRect(n):null}var r=t.element,o=t.bounds;if(r||o){var d=r?a.clientRect(r)||n():a.copyRect(o),i=a.copyRect(e[0].getBoundingClientRect()),m=a.centerPointFor(i),c=a.centerPointFor(d);return{centerX:c.x-m.x,centerY:c.y-m.y,scaleX:Math.round(100*Math.min(.5,d.width/i.width))/100,scaleY:Math.round(100*Math.min(.5,d.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(a.calculateTransformValues(t,n))},calculateSlideToOrigin:function(t,n){var r="translate3d( {centerX}px, {centerY}px, 0 )",o=angular.bind(null,e.supplant,r);return o(a.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,a){if(!angular.isUndefined(e))if(o.indexOf(a)>=0)n[a]=e+"px";else switch(a){case"transition":t(a,r.CSS.TRANSITION,e);break;case"transform":t(a,r.CSS.TRANSFORM,e);break;case"transformOrigin":t(a,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)?a.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),angular.module("material.core").provider("$mdCompiler",MdCompilerProvider),MdCompilerProvider.$inject=["$compileProvider"],MdGesture.$inject=["$$MdGestureHandler","$$rAF","$timeout"],attachToDocument.$inject=["$mdGesture","$$MdGestureHandler"];var HANDLERS={},pointer,lastPointer,forceSkipClickHijack=!1,maxClickDistance=6,lastLabelClickPos=null,isInitialized=!1;angular.module("material.core.gestures",[]).provider("$mdGesture",MdGestureProvider).factory("$$MdGestureHandler",MdGestureHandler).run(attachToDocument),MdGestureProvider.prototype={skipClickHijack:function(){return forceSkipClickHijack=!0},setMaxClickDistance:function(e){maxClickDistance=parseInt(e)},$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 d(e){return e.replace(l,"").replace(s,function(e,t,n,r){return r?n.toUpperCase():n})}var l=/^((?:x|data)[:\-_])/i,s=/([:\-_]+(.))/g,u=["","xs","gt-xs","sm","gt-sm","md","gt-md","lg","gt-lg","xl","print"],p=["layout","flex","flex-order","flex-offset","layout-align"],E=["show","hide","layout-padding","layout-margin"];angular.forEach(u,function(t){angular.forEach(p,function(n){var r=t?n+"-"+t:n;e.directive(d(r),o(r))}),angular.forEach(E,function(n){var r=t?n+"-"+t:n;e.directive(d(r),a(r))})}),e.provider("$$mdLayout",function(){return{$get:angular.noop,validateAttributeValue:c,validateAttributeUsage:m,disableLayouts:function(e){_.enabled=e!==!0}}}).directive("mdLayoutCss",n).directive("ngCloak",r("ng-cloak")).directive("layoutWrap",a("layout-wrap")).directive("layoutNowrap",a("layout-nowrap")).directive("layoutNoWrap",a("layout-no-wrap")).directive("layoutFill",a("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]");_.enabled=!e}function n(){return _.enabled=!1,{restrict:"A",priority:"900"}}function r(e){return["$timeout",function(t){return{restrict:"A",priority:-10,compile:function(n){return _.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=d(n,e,r),a=r.$observe(r.$normalize(e),o);o(u(e,r,"")),t.$on("$destroy",function(){a()})}return["$mdUtil","$interpolate","$log",function(n,r,o){return h=n,f=r,b=o,{restrict:"A",compile:function(n,r){var o;return _.enabled&&(m(e,r,n,b),c(e,u(e,r,""),l(n,e,r)),o=t),o||angular.noop}}}]}function a(e){function t(t,n){n.addClass(e)}return["$mdUtil","$interpolate","$log",function(n,r,o){return h=n,f=r,b=o,{restrict:"A",compile:function(n,r){var o;return _.enabled&&(c(e,u(e,r,""),l(n,e,r)),t(null,n),o=t),o||angular.noop}}}]}function d(e,t){var n;return function(r){var o=c(t,r||"");angular.isDefined(o)&&(n&&e.removeClass(n),n=o?t+"-"+o.trim().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,a,d,i=n[0].nodeName.toLowerCase();switch(e.replace(g,"")){case"flex":"md-button"!=i&&"fieldset"!=i||(a="<"+i+" "+e+"></"+i+">",d="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(h.supplant(o,[a,d])))}}function c(e,t,n){var r;if(!s(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=E(t);t=h.supplant("{main}-{cross}",o);break;case"layout-padding":case"layout-margin":case"layout-fill":case"layout-wrap":case"layout-nowrap":t=""}t!=r&&(n||angular.noop)(t)}return t?t.trim():""}function l(e,t,n){return function(e){s(e)||(n[n.$normalize(t)]=e)}}function s(e){return(e||"").indexOf(f.startSymbol())>-1}function u(e,t,n){var r=t.$normalize(e);return t[r]?t[r].trim().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 E(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 h,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"],_={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 a=angular.element('<meta name="'+t+'" content="'+n+'"/>');r.append(a),o[t]=a}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={},a={setMeta:t,getMeta:n};return angular.extend({},a,{$get:function(){return a}})}),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)}(),func