/*! * Angular Material Design * https://github.com/angular/material * @license MIT * v0.11.3-master-3fe7d76 */ function MdChip(t,e){function i(i,s){return i.append(e.processTemplate(n)),function(e,i,n,s){i.addClass("md-chip"),t(i),s&&angular.element(i[0].querySelector(".md-chip-content")).on("blur",function(){s.selectedChip=-1})}}var n=e.processTemplate(DELETE_HINT_TEMPLATE);return{restrict:"E",require:"^?mdChips",compile:i}}function MdChipRemove(t){function e(e,i,n,s){i.on("click",function(t){e.$apply(function(){s.removeChip(e.$$replacedScope.$index)})}),t(function(){i.attr({tabindex:-1,ariaHidden:!0}),i.find("button").attr("tabindex","-1")})}return{restrict:"A",require:"^mdChips",scope:!1,link:e}}function MdChipTransclude(t){function e(e,i,n){var s=e.$parent.$mdChipsCtrl,o=s.parent.$new(!1,s.parent);o.$$replacedScope=e,o.$chip=e.$chip,o.$index=e.$index,o.$mdChipsCtrl=s;var c=s.$scope.$eval(n.mdChipTransclude);i.html(c),t(i.contents())(o)}return{restrict:"EA",terminal:!0,link:e,scope:!1}}function MdChipsCtrl(t,e,i,n,s){this.$timeout=s,this.$mdConstant=e,this.$scope=t,this.parent=t.$parent,this.$log=i,this.$element=n,this.ngModelCtrl=null,this.userInputNgModelCtrl=null,this.userInputElement=null,this.items=[],this.selectedChip=-1,this.hasAutocomplete=!1,this.deleteHint="Press delete to remove this chip.",this.deleteButtonLabel="Remove",this.chipBuffer="",this.useOnAppend=!1,this.useOnSelect=!1}function MdChips(t,e,i,n,s){function o(o,c){function p(t){if(c.ngModel){var e=l[0].querySelector(t);return e&&e.outerHTML}}var l=c.$mdUserTemplate;c.$mdUserTemplate=null;var h=p("md-chips>*[md-chip-remove]")||r.remove,d=p("md-chips>md-chip-template")||r["default"],a=p("md-chips>md-autocomplete")||p("md-chips>input")||r.input,m=l.find("md-chip");return l[0].querySelector("md-chip-template>*[md-chip-remove]")&&n.warn("invalid placement of md-chip-remove within md-chip-template."),function(n,o,p,l){e.initOptionalProperties(n,c),t(o);var C=l[0];if(C.chipContentsTemplate=d,C.chipRemoveTemplate=h,C.chipInputTemplate=a,o.attr({ariaHidden:!0,tabindex:-1}).on("focus",function(){C.onFocus()}),c.ngModel&&(C.configureNgModel(o.controller("ngModel")),p.mdOnAppend&&C.useOnAppendExpression(),p.mdOnRemove&&C.useOnRemoveExpression(),p.mdOnSelect&&C.useOnSelectExpression(),a!=r.input&&n.$watch("$mdChipsCtrl.readonly",function(t){t||e.nextTick(function(){0===a.indexOf("0){var u=i(m.clone())(n.$parent);s(function(){o.find("md-chips-wrap").prepend(u)})}}}function c(){return{chips:e.processTemplate(MD_CHIPS_TEMPLATE),input:e.processTemplate(CHIP_INPUT_TEMPLATE),"default":e.processTemplate(CHIP_DEFAULT_TEMPLATE),remove:e.processTemplate(CHIP_REMOVE_TEMPLATE)}}var r=c();return{template:function(t,e){return e.$mdUserTemplate=t.clone(),r.chips},require:["mdChips"],restrict:"E",controller:"MdChipsCtrl",controllerAs:"$mdChipsCtrl",bindToController:!0,compile:o,scope:{readonly:"=readonly",placeholder:"@",secondaryPlaceholder:"@",onAppend:"&mdOnAppend",onRemove:"&mdOnRemove",onSelect:"&mdOnSelect",deleteHint:"@",deleteButtonLabel:"@",requireMatch:"=?mdRequireMatch"}}}function MdContactChipsCtrl(){this.selectedItem=null,this.searchText=""}function MdContactChips(t,e){function i(i,n){return function(i,s,o,c){e.initOptionalProperties(i,n),t(s),s.attr("tabindex","-1")}}return{template:function(t,e){return MD_CONTACT_CHIPS_TEMPLATE},restrict:"E",controller:"MdContactChipsCtrl",controllerAs:"$mdContactChipsCtrl",bindToController:!0,compile:i,scope:{contactQuery:"&mdContacts",placeholder:"@",secondaryPlaceholder:"@",contactName:"@mdContactName",contactImage:"@mdContactImage",contactEmail:"@mdContactEmail",contacts:"=ngModel",requireMatch:"=?mdRequireMatch",highlightFlags:"@?mdHighlightFlags"}}}goog.provide("ng.material.components.chips"),goog.require("ng.material.components.autocomplete"),goog.require("ng.material.core"),angular.module("material.components.chips",["material.core","material.components.autocomplete"]),angular.module("material.components.chips").directive("mdChip",MdChip);var DELETE_HINT_TEMPLATE=' {{$mdChipsCtrl.deleteHint}} ';MdChip.$inject=["$mdTheming","$mdUtil"],angular.module("material.components.chips").directive("mdChipRemove",MdChipRemove),MdChipRemove.$inject=["$timeout"],angular.module("material.components.chips").directive("mdChipTransclude",MdChipTransclude),MdChipTransclude.$inject=["$compile"],angular.module("material.components.chips").controller("MdChipsCtrl",MdChipsCtrl),MdChipsCtrl.$inject=["$scope","$mdConstant","$log","$element","$timeout"],MdChipsCtrl.prototype.inputKeydown=function(t){var e=this.getChipBuffer();switch(t.keyCode){case this.$mdConstant.KEY_CODE.ENTER:if(this.hasAutocomplete&&this.requireMatch||!e)break;t.preventDefault(),this.appendChip(e),this.resetChipBuffer();break;case this.$mdConstant.KEY_CODE.BACKSPACE:if(e)break;t.preventDefault(),t.stopPropagation(),this.items.length&&this.selectAndFocusChipSafe(this.items.length-1)}},MdChipsCtrl.prototype.chipKeydown=function(t){if(!this.getChipBuffer())switch(t.keyCode){case this.$mdConstant.KEY_CODE.BACKSPACE:case this.$mdConstant.KEY_CODE.DELETE:if(this.selectedChip<0)return;t.preventDefault(),this.removeAndSelectAdjacentChip(this.selectedChip);break;case this.$mdConstant.KEY_CODE.LEFT_ARROW:t.preventDefault(),this.selectedChip<0&&(this.selectedChip=this.items.length),this.items.length&&this.selectAndFocusChipSafe(this.selectedChip-1);break;case this.$mdConstant.KEY_CODE.RIGHT_ARROW:t.preventDefault(),this.selectAndFocusChipSafe(this.selectedChip+1);break;case this.$mdConstant.KEY_CODE.ESCAPE:case this.$mdConstant.KEY_CODE.TAB:if(this.selectedChip<0)return;t.preventDefault(),this.onFocus()}},MdChipsCtrl.prototype.getPlaceholder=function(){var t=this.items.length&&(""==this.secondaryPlaceholder||this.secondaryPlaceholder);return t?this.placeholder:this.secondaryPlaceholder},MdChipsCtrl.prototype.removeAndSelectAdjacentChip=function(t){var e=this.getAdjacentChipIndex(t);this.removeChip(t),this.$timeout(angular.bind(this,function(){this.selectAndFocusChipSafe(e)}))},MdChipsCtrl.prototype.resetSelectedChip=function(){this.selectedChip=-1},MdChipsCtrl.prototype.getAdjacentChipIndex=function(t){var e=this.items.length-1;return 0==e?-1:t==e?t-1:t},MdChipsCtrl.prototype.appendChip=function(t){this.useOnAppend&&this.onAppend&&(t=this.onAppend({$chip:t})),this.items.indexOf(t)+1||this.items.push(t)},MdChipsCtrl.prototype.useOnAppendExpression=function(){this.useOnAppend=!0},MdChipsCtrl.prototype.useOnRemoveExpression=function(){this.useOnRemove=!0},MdChipsCtrl.prototype.useOnSelectExpression=function(){this.useOnSelect=!0},MdChipsCtrl.prototype.getChipBuffer=function(){return this.userInputElement?this.userInputNgModelCtrl?this.userInputNgModelCtrl.$viewValue:this.userInputElement[0].value:this.chipBuffer},MdChipsCtrl.prototype.resetChipBuffer=function(){this.userInputElement?this.userInputNgModelCtrl?(this.userInputNgModelCtrl.$setViewValue(""),this.userInputNgModelCtrl.$render()):this.userInputElement[0].value="":this.chipBuffer=""},MdChipsCtrl.prototype.removeChip=function(t){var e=this.items.splice(t,1);e&&e.length&&this.useOnRemove&&this.onRemove&&this.onRemove({$chip:e[0],$index:t})},MdChipsCtrl.prototype.removeChipAndFocusInput=function(t){this.removeChip(t),this.onFocus()},MdChipsCtrl.prototype.selectAndFocusChipSafe=function(t){return this.items.length?t===this.items.length?this.onFocus():(t=Math.max(t,0),t=Math.min(t,this.items.length-1),this.selectChip(t),void this.focusChip(t)):(this.selectChip(-1),void this.onFocus())},MdChipsCtrl.prototype.selectChip=function(t){t>=-1&&t<=this.items.length?(this.selectedChip=t,this.useOnSelect&&this.onSelect&&this.onSelect({$chip:this.items[this.selectedChip]})):this.$log.warn("Selected Chip index out of bounds; ignoring.")},MdChipsCtrl.prototype.selectAndFocusChip=function(t){this.selectChip(t),-1!=t&&this.focusChip(t)},MdChipsCtrl.prototype.focusChip=function(t){this.$element[0].querySelector('md-chip[index="'+t+'"] .md-chip-content').focus()},MdChipsCtrl.prototype.configureNgModel=function(t){this.ngModelCtrl=t;var e=this;t.$render=function(){e.items=e.ngModelCtrl.$viewValue}},MdChipsCtrl.prototype.onFocus=function(){var t=this.$element[0].querySelector("input");t&&t.focus(),this.resetSelectedChip()},MdChipsCtrl.prototype.onInputFocus=function(){this.inputHasFocus=!0,this.resetSelectedChip()},MdChipsCtrl.prototype.onInputBlur=function(){this.inputHasFocus=!1},MdChipsCtrl.prototype.configureUserInput=function(t){this.userInputElement=t;var e=t.controller("ngModel");e!=this.ngModelCtrl&&(this.userInputNgModelCtrl=e);var i=this.$scope,n=this,s=function(t,e){i.$evalAsync(angular.bind(n,e,t))};t.attr({tabindex:0}).on("keydown",function(t){s(t,n.inputKeydown)}).on("focus",function(t){s(t,n.onInputFocus)}).on("blur",function(t){s(t,n.onInputBlur)})},MdChipsCtrl.prototype.configureAutocomplete=function(t){t&&(this.hasAutocomplete=!0,t.registerSelectedItemWatcher(angular.bind(this,function(t){t&&(this.appendChip(t),this.resetChipBuffer())})),this.$element.find("input").on("focus",angular.bind(this,this.onInputFocus)).on("blur",angular.bind(this,this.onInputBlur)))},MdChipsCtrl.prototype.hasFocus=function(){return this.inputHasFocus||this.selectedChip>=0},angular.module("material.components.chips").directive("mdChips",MdChips);var MD_CHIPS_TEMPLATE='
',CHIP_INPUT_TEMPLATE=' ',CHIP_DEFAULT_TEMPLATE=" {{$chip}}",CHIP_REMOVE_TEMPLATE=' ';MdChips.$inject=["$mdTheming","$mdUtil","$compile","$log","$timeout"],angular.module("material.components.chips").controller("MdContactChipsCtrl",MdContactChipsCtrl),MdContactChipsCtrl.prototype.queryContact=function(t){var e=this.contactQuery({$query:t});return this.filterSelected?e.filter(angular.bind(this,this.filterSelectedContacts)):e},MdContactChipsCtrl.prototype.itemName=function(t){return t[this.contactName]},MdContactChipsCtrl.prototype.filterSelectedContacts=function(t){return-1==this.contacts.indexOf(t)},angular.module("material.components.chips").directive("mdContactChips",MdContactChips);var MD_CONTACT_CHIPS_TEMPLATE='
{{item[$mdContactChipsCtrl.contactName]}} {{item[$mdContactChipsCtrl.contactName]}} {{item[$mdContactChipsCtrl.contactEmail]}}
{{$chip[$mdContactChipsCtrl.contactName]}}
{{$chip[$mdContactChipsCtrl.contactName]}}
';MdContactChips.$inject=["$mdTheming","$mdUtil"],ng.material.components.chips=angular.module("material.components.chips");