/*! * Angular Material Design * https://github.com/angular/material * @license MIT * v0.11.3-master-3fe7d76 */ function MdAutocompleteCtrl(e,t,n,o,i,l,a,r,c,u){function m(){n.initOptionalProperties(e,c,{searchText:null,selectedItem:null}),i(t),h(),n.nextTick(function(){f(),s(),p(),t.on("focus",p)})}function d(){function t(){var e=ae.scrollContainer.getBoundingClientRect(),t={};e.right>l.right-MENU_PADDING&&(t.left=o.right-e.width+"px"),ae.$.scrollContainer.css(t)}if(!ae)return n.nextTick(d,!1,e);var o=ae.wrap.getBoundingClientRect(),i=ae.snap.getBoundingClientRect(),l=ae.root.getBoundingClientRect(),a=i.bottom-l.top,r=l.bottom-i.top,c=o.left-l.left,u=o.width,m={left:c+"px",minWidth:u+"px",maxWidth:Math.max(o.right-l.left,l.right-o.left)-MENU_PADDING+"px"};a>r&&l.height-o.bottom-MENU_PADDING=_()}function j(e,t,n){Object.defineProperty(oe,e,{get:function(){return n},set:function(e){var o=n;n=e,t(e,o)}})}function K(t){n.nextTick(function(){P(oe.matches[t]).then(function(e){var t=ae.$.input.controller("ngModel");t.$setViewValue(e),t.$render()})["finally"](function(){e.selectedItem=oe.matches[t],S(!1)})},!1)}function Y(){S(!0),oe.index=0,oe.matches=[],e.searchText="",K(-1);var t=document.createEvent("CustomEvent");t.initCustomEvent("input",!0,!0,{value:e.searchText}),ae.input.dispatchEvent(t),ae.input.focus()}function z(t){function o(n){re[l]=n,(t||"")===(e.searchText||"")&&(oe.matches=n,oe.hidden=G(),e.selectOnMatch&&ne(),X(),d())}var i=e.$parent.$eval(le),l=t.toLowerCase();angular.isArray(i)?o(i):i&&(S(!0),n.nextTick(function(){i.success&&i.success(o),i.then&&i.then(o),i["finally"]&&i["finally"](function(){S(!1)})},!0,e))}function X(){V().then(function(e){oe.messages=[J(),e]})}function J(){if(de===oe.matches.length)return"";switch(de=oe.matches.length,oe.matches.length){case 0:return"There are no matches available.";case 1:return"There is 1 match available.";default:return"There are "+oe.matches.length+" matches available."}}function Q(){if(ae.li[0]){var e=ae.li[0].offsetHeight,t=e*oe.index,n=t+e,o=ae.scroller.clientHeight,i=ae.scroller.scrollTop;i>t?Z(t):n>i+o&&Z(n-o)}}function Z(e){ae.$.scrollContainer.controller("mdVirtualRepeatContainer").scrollTo(e)}function ee(){var e=(oe.scope.searchText||"").length;return oe.hasNotFound&&!q()&&!oe.loading&&e>=_()&&me&&!F()}function te(){var t=e.searchText,n=t.toLowerCase();!e.noCache&&re[n]?(oe.matches=re[n],X()):z(t),oe.hidden=G()}function ne(){var t=e.searchText,n=oe.matches,o=n[0];1===n.length&&P(o).then(function(e){t==e&&K(0)})}var oe=this,ie=e.itemsExpr.split(/ in /i),le=ie[1],ae=null,re={},ce=!1,ue=[],me=!1,de=0;return j("hidden",C,!0),oe.scope=e,oe.parent=e.$parent,oe.itemName=ie[0],oe.matches=[],oe.loading=!1,oe.hidden=!0,oe.index=null,oe.messages=[],oe.id=n.nextUid(),oe.isDisabled=null,oe.isRequired=null,oe.hasNotFound=!1,oe.keydown=O,oe.blur=N,oe.focus=k,oe.clear=Y,oe.select=K,oe.listEnter=v,oe.listLeave=A,oe.mouseUp=b,oe.getCurrentDisplayValue=V,oe.registerSelectedItemWatcher=w,oe.unregisterSelectedItemWatcher=D,oe.notFoundVisible=ee,oe.loadingIsVisible=B,m()}function MdAutocomplete(){var e=!1;return{controller:"MdAutocompleteCtrl",controllerAs:"$mdAutocompleteCtrl",scope:{inputName:"@mdInputName",inputMinlength:"@mdInputMinlength",inputMaxlength:"@mdInputMaxlength",searchText:"=?mdSearchText",selectedItem:"=?mdSelectedItem",itemsExpr:"@mdItems",itemText:"&mdItemText",placeholder:"@placeholder",noCache:"=?mdNoCache",selectOnMatch:"=?mdSelectOnMatch",itemChange:"&?mdSelectedItemChange",textChange:"&?mdSearchTextChange",minLength:"=?mdMinLength",delay:"=?mdDelay",autofocus:"=?mdAutofocus",floatingLabel:"@?mdFloatingLabel",autoselect:"=?mdAutoselect",menuClass:"@?mdMenuClass",inputId:"@?mdInputId"},link:function(t,n,o,i){i.hasNotFound=e},template:function(t,n){function o(){var e=t.find("md-item-template").detach(),n=e.length?e.html():t.html();return e.length||t.empty(),""+n+""}function i(){var e=t.find("md-not-found").detach(),n=e.length?e.html():"";return n?'
  • '+n+"
  • ":""}function l(){return n.mdFloatingLabel?'
    '+c+"
    ":' '}var a=i(),r=o(),c=t.html(),u=n.tabindex;return a&&(e=!0),n.hasOwnProperty("tabindex")&&t.attr("tabindex","-1"),' '+l()+'
    • '+r+"
    • "+a+'

    {{message}}

    '}}}function MdAutocompleteItemScopeDirective(e,t){function n(n,o,i){function l(e,o){r[o]=n[e],n.$watch(e,function(e){t.nextTick(function(){r[o]=e})})}var a=n.$mdAutocompleteCtrl,r=a.parent.$new(),c=a.itemName;l("$index","$index"),l("item",c),e(o.contents())(r),i.hasOwnProperty("mdAutocompleteReplace")&&(o.after(o.contents()),o.remove())}return{restrict:"AE",link:n,terminal:!0}}function MdHighlightCtrl(e,t,n){function o(o,i){var a=null,r=null,c=n.mdHighlightFlags||"",u=e.$watch(function(e){return{term:o(e),unsafeText:i(e)}},function(e,n){(null===a||e.unsafeText!==n.unsafeText)&&(a=angular.element("
    ").text(e.unsafeText).html()),(null===r||e.term!==n.term)&&(r=l(e.term,c)),t.html(a.replace(r,'$&'))},!0);t.on("$destroy",function(){u()})}function i(e){return e&&e.replace(/[\\\^\$\*\+\?\.\(\)\|\{}\[\]]/g,"\\$&")}function l(e,t){var n="";return t.indexOf("^")>=1&&(n+="^"),n+=e,t.indexOf("$")>=1&&(n+="$"),new RegExp(i(n),t.replace(/[\$\^]/g,""))}this.init=o}function MdHighlight(e,t){return{terminal:!0,controller:"MdHighlightCtrl",compile:function(n,o){var i=t(o.mdHighlightText),l=e(n.html());return function(e,t,n,o){o.init(i,l)}}}}goog.provide("ng.material.components.autocomplete"),goog.require("ng.material.components.icon"),goog.require("ng.material.components.virtualRepeat"),goog.require("ng.material.core"),angular.module("material.components.autocomplete",["material.core","material.components.icon","material.components.virtualRepeat"]),angular.module("material.components.autocomplete").controller("MdAutocompleteCtrl",MdAutocompleteCtrl);var ITEM_HEIGHT=41,MAX_HEIGHT=5.5*ITEM_HEIGHT,MENU_PADDING=8;MdAutocompleteCtrl.$inject=["$scope","$element","$mdUtil","$mdConstant","$mdTheming","$window","$animate","$rootElement","$attrs","$q"],angular.module("material.components.autocomplete").directive("mdAutocomplete",MdAutocomplete),angular.module("material.components.autocomplete").directive("mdAutocompleteParentScope",MdAutocompleteItemScopeDirective),MdAutocompleteItemScopeDirective.$inject=["$compile","$mdUtil"],angular.module("material.components.autocomplete").controller("MdHighlightCtrl",MdHighlightCtrl),MdHighlightCtrl.$inject=["$scope","$element","$attrs"],angular.module("material.components.autocomplete").directive("mdHighlightText",MdHighlight),MdHighlight.$inject=["$interpolate","$parse"],ng.material.components.autocomplete=angular.module("material.components.autocomplete");