/*! ngTagsInput v2.2.0 License: MIT */!function(){"use strict";var a={backspace:8,tab:9,enter:13,escape:27,space:32,up:38,down:40,comma:188},b=9007199254740991,c=["text","email","url"],d=angular.module("ngTagsInput",[]);d.directive("tagsInput",["$timeout","$document","tagsInputConfig","tiUtil",function(d,e,f,g){function h(a,b){var c,d,e,f={};return c=function(b){return g.safeToString(b[a.displayProperty])},d=function(b,c){b[a.displayProperty]=c},e=function(b){var d=c(b);return d&&d.length>=a.minLength&&d.length<=a.maxLength&&a.allowedTagsPattern.test(d)&&!g.findInObjectArray(f.items,b,a.displayProperty)},f.items=[],f.addText=function(a){var b={};return d(b,a),f.add(b)},f.add=function(g){var h=c(g);return a.replaceSpacesWithDashes&&(h=h.replace(/\s/g,"-")),d(g,h),e(g)?(f.items.push(g),b.trigger("tag-added",{$tag:g})):h&&b.trigger("invalid-tag",{$tag:g}),g},f.remove=function(a){var c=f.items.splice(a,1)[0];return b.trigger("tag-removed",{$tag:c}),c},f.removeLast=function(){var b,c=f.items.length-1;return a.enableEditingLastTag||f.selected?(f.selected=null,b=f.remove(c)):f.selected||(f.selected=f.items[c]),b},f}function i(a){return-1!==c.indexOf(a)}return{restrict:"E",require:"ngModel",scope:{tags:"=ngModel",onTagAdded:"&",onInvalidTag:"&",onTagRemoved:"&"},replace:!1,transclude:!0,templateUrl:"ngTagsInput/tags-input.html",controller:["$scope","$attrs","$element",function(a,c,d){a.events=g.simplePubSub(),f.load("tagsInput",a,c,{type:[String,"text",i],placeholder:[String,"Add a tag"],tabindex:[Number,null],removeTagSymbol:[String,String.fromCharCode(215)],replaceSpacesWithDashes:[Boolean,!0],minLength:[Number,3],maxLength:[Number,b],addOnEnter:[Boolean,!0],addOnSpace:[Boolean,!1],addOnComma:[Boolean,!0],addOnBlur:[Boolean,!0],addOnPaste:[Boolean,!1],pasteSplitPattern:[RegExp,/,/],allowedTagsPattern:[RegExp,/.+/],enableEditingLastTag:[Boolean,!1],minTags:[Number,0],maxTags:[Number,b],displayProperty:[String,"text"],allowLeftoverText:[Boolean,!1],addFromAutocompleteOnly:[Boolean,!1],spellcheck:[Boolean,!0]}),a.tagList=new h(a.options,a.events),this.registerAutocomplete=function(){var b=d.find("input");return{addTag:function(b){return a.tagList.add(b)},focusInput:function(){b[0].focus()},getTags:function(){return a.tags},getCurrentTagText:function(){return a.newTag.text},getOptions:function(){return a.options},on:function(b,c){return a.events.on(b,c),this}}}}],link:function(b,c,f,h){var i,j=[a.enter,a.comma,a.space,a.backspace],k=b.tagList,l=b.events,m=b.options,n=c.find("input"),o=["minTags","maxTags","allowLeftoverText"];i=function(){h.$setValidity("maxTags",b.tags.length<=m.maxTags),h.$setValidity("minTags",b.tags.length>=m.minTags),h.$setValidity("leftoverText",m.allowLeftoverText?!0:!b.newTag.text)},b.newTag={text:"",invalid:null,setText:function(a){this.text=a,l.trigger("input-change",a)}},b.getDisplayText=function(a){return g.safeToString(a[m.displayProperty])},b.track=function(a){return a[m.displayProperty]},b.$watch("tags",function(a){b.tags=g.makeObjectArray(a,m.displayProperty),k.items=b.tags}),b.$watch("tags.length",function(){i()}),b.eventHandlers={input:{change:function(a){l.trigger("input-change",a)},keydown:function(a){l.trigger("input-keydown",a)},focus:function(){b.hasFocus||(b.hasFocus=!0,l.trigger("input-focus"))},blur:function(){d(function(){var a=e.prop("activeElement"),d=a===n[0],f=c[0].contains(a);(d||!f)&&(b.hasFocus=!1,l.trigger("input-blur"))})},paste:function(a){l.trigger("input-paste",a)}},host:{click:function(){n[0].focus()}}},l.on("tag-added",b.onTagAdded).on("invalid-tag",b.onInvalidTag).on("tag-removed",b.onTagRemoved).on("tag-added",function(){b.newTag.setText("")}).on("tag-added tag-removed",function(){h.$setViewValue(b.tags)}).on("invalid-tag",function(){b.newTag.invalid=!0}).on("option-change",function(a){-1!==o.indexOf(a.name)&&i()}).on("input-change",function(){k.selected=null,b.newTag.invalid=null}).on("input-focus",function(){c.triggerHandler("focus"),h.$setValidity("leftoverText",!0)}).on("input-blur",function(){m.addOnBlur&&!m.addFromAutocompleteOnly&&k.addText(b.newTag.text),c.triggerHandler("blur"),i()}).on("input-keydown",function(c){var d,e,f=c.keyCode,g=c.shiftKey||c.altKey||c.ctrlKey||c.metaKey,h={};if(!g&&-1!==j.indexOf(f))if(h[a.enter]=m.addOnEnter,h[a.comma]=m.addOnComma,h[a.space]=m.addOnSpace,d=!m.addFromAutocompleteOnly&&h[f],e=!d&&f===a.backspace&&0===b.newTag.text.length,d)k.addText(b.newTag.text),c.preventDefault();else if(e){var i=k.removeLast();i&&m.enableEditingLastTag&&b.newTag.setText(i[m.displayProperty]),c.preventDefault()}}).on("input-paste",function(a){if(m.addOnPaste){var b=a.clipboardData.getData("text/plain"),c=b.split(m.pasteSplitPattern);c.length>1&&(c.forEach(function(a){k.addText(a)}),a.preventDefault())}})}}}]),d.directive("autoComplete",["$document","$timeout","$sce","$q","tagsInputConfig","tiUtil",function(b,c,d,e,f,g){function h(a,b){var c,d,f={};return c=function(a,c){return a.filter(function(a){return!g.findInObjectArray(c,a,b.tagsInput.displayProperty)})},f.reset=function(){d=null,f.items=[],f.visible=!1,f.index=-1,f.selected=null,f.query=null},f.show=function(){b.selectFirstMatch?f.select(0):f.selected=null,f.visible=!0},f.load=g.debounce(function(h,i){f.query=h;var j=e.when(a({$query:h}));d=j,j.then(function(a){j===d&&(a=g.makeObjectArray(a.data||a,b.tagsInput.displayProperty),a=c(a,i),f.items=a.slice(0,b.maxResultsToShow),f.items.length>0?f.show():f.reset())})},b.debounceDelay),f.selectNext=function(){f.select(++f.index)},f.selectPrior=function(){f.select(--f.index)},f.select=function(a){0>a?a=f.items.length-1:a>=f.items.length&&(a=0),f.index=a,f.selected=f.items[a]},f.reset(),f}return{restrict:"E",require:"^tagsInput",scope:{source:"&"},templateUrl:"ngTagsInput/auto-complete.html",link:function(b,c,e,i){var j,k,l,m,n,o,p=[a.enter,a.tab,a.escape,a.up,a.down];f.load("autoComplete",b,e,{debounceDelay:[Number,100],minLength:[Number,3],highlightMatchedText:[Boolean,!0],maxResultsToShow:[Number,10],loadOnDownArrow:[Boolean,!1],loadOnEmpty:[Boolean,!1],loadOnFocus:[Boolean,!1],selectFirstMatch:[Boolean,!0]}),l=b.options,k=i.registerAutocomplete(),l.tagsInput=k.getOptions(),j=new h(b.source,l),m=function(a){return a[l.tagsInput.displayProperty]},n=function(a){return g.safeToString(m(a))},o=function(a){return a&&a.length>=l.minLength||!a&&l.loadOnEmpty},b.suggestionList=j,b.addSuggestionByIndex=function(a){j.select(a),b.addSuggestion()},b.addSuggestion=function(){var a=!1;return j.selected&&(k.addTag(j.selected),j.reset(),k.focusInput(),a=!0),a},b.highlight=function(a){var b=n(a);return b=g.encodeHTML(b),l.highlightMatchedText&&(b=g.safeHighlight(b,g.encodeHTML(j.query))),d.trustAsHtml(b)},b.track=function(a){return m(a)},k.on("tag-added invalid-tag input-blur",function(){j.reset()}).on("input-change",function(a){o(a)?j.load(a,k.getTags()):j.reset()}).on("input-focus",function(){var a=k.getCurrentTagText();l.loadOnFocus&&o(a)&&j.load(a,k.getTags())}).on("input-keydown",function(c){var d=c.keyCode,e=!1;if(-1!==p.indexOf(d))return j.visible?d===a.down?(j.selectNext(),e=!0):d===a.up?(j.selectPrior(),e=!0):d===a.escape?(j.reset(),e=!0):(d===a.enter||d===a.tab)&&(e=b.addSuggestion()):d===a.down&&b.options.loadOnDownArrow&&(j.load(k.getCurrentTagText(),k.getTags()),e=!0),e?(c.preventDefault(),c.stopImmediatePropagation(),!1):void 0})}}}]),d.directive("tiTranscludeAppend",function(){return function(a,b,c,d,e){e(function(a){b.append(a)})}}),d.directive("tiAutosize",["tagsInputConfig",function(a){return{restrict:"A",require:"ngModel",link:function(b,c,d,e){var f,g,h=a.getTextAutosizeThreshold();f=angular.element(''),f.css("display","none").css("visibility","hidden").css("width","auto").css("white-space","pre"),c.parent().append(f),g=function(a){var b,e=a;return angular.isString(e)&&0===e.length&&(e=d.placeholder),e&&(f.text(e),f.css("display",""),b=f.prop("offsetWidth"),f.css("display","none")),c.css("width",b?b+h+"px":""),a},e.$parsers.unshift(g),e.$formatters.unshift(g),d.$observe("placeholder",function(a){e.$modelValue||g(a)})}}}]),d.directive("tiBindAttrs",function(){return function(a,b,c){a.$watch(c.tiBindAttrs,function(a){angular.forEach(a,function(a,b){c.$set(b,a)})},!0)}}),d.provider("tagsInputConfig",function(){var a={},b={},c=3;this.setDefaults=function(b,c){return a[b]=c,this},this.setActiveInterpolation=function(a,c){return b[a]=c,this},this.setTextAutosizeThreshold=function(a){return c=a,this},this.$get=["$interpolate",function(d){var e={};return e[String]=function(a){return a},e[Number]=function(a){return parseInt(a,10)},e[Boolean]=function(a){return"true"===a.toLowerCase()},e[RegExp]=function(a){return new RegExp(a)},{load:function(c,f,g,h){var i=function(){return!0};f.options={},angular.forEach(h,function(h,j){var k,l,m,n,o,p;k=h[0],l=h[1],m=h[2]||i,n=e[k],o=function(){var b=a[c]&&a[c][j];return angular.isDefined(b)?b:l},p=function(a){f.options[j]=a&&m(a)?n(a):o()},b[c]&&b[c][j]?g.$observe(j,function(a){p(a),f.events.trigger("option-change",{name:j,newValue:a})}):p(g[j]&&d(g[j])(f.$parent))})},getTextAutosizeThreshold:function(){return c}}}]}),d.factory("tiUtil",["$timeout",function(a){var b={};return b.debounce=function(b,c){var d;return function(){var e=arguments;a.cancel(d),d=a(function(){b.apply(null,e)},c)}},b.makeObjectArray=function(a,b){return a=a||[],a.length>0&&!angular.isObject(a[0])&&a.forEach(function(c,d){a[d]={},a[d][b]=c}),a},b.findInObjectArray=function(a,c,d){for(var e=null,f=0;f"+b+"":a})},b.safeToString=function(a){return angular.isUndefined(a)||null==a?"":a.toString().trim()},b.encodeHTML=function(a){return a.replace(/&/g,"&").replace(//g,">")},b.simplePubSub=function(){var a={};return{on:function(b,c){return b.split(" ").forEach(function(b){a[b]||(a[b]=[]),a[b].push(c)}),this},trigger:function(b,c){var d=a[b]||[];return d.every(function(a){var b=a.call(null,c);return angular.isUndefined(b)||b}),this}}},b}]),d.run(["$templateCache",function(a){a.put("ngTagsInput/tags-input.html",''),a.put("ngTagsInput/auto-complete.html",'')}])}();