angular.module("checklist-model",[]).directive("checklistModel",["$parse","$compile",function(n,t){function i(n,t,i){if(angular.isArray(n))for(var r=n.length;r--;)if(i(n[r],t))return!0;return!1}function r(n,t,r){return n=angular.isArray(n)?n:[],i(n,t,r)||n.push(t),n}function u(n,t,i){if(angular.isArray(n))for(var r=n.length;r--;)if(i(n[r],t)){n.splice(r,1);break}return n}function f(f,e,o){function v(n){f.checked=i(n,h,s)}t(e)(f);var c=n(o.checklistModel),l=c.assign,a=n(o.checklistChange),h=n(o.checklistValue)(f.$parent),s=angular.equals;o.hasOwnProperty("checklistComparator")&&(s=n(o.checklistComparator)(f.$parent));f.$watch("checked",function(n,t){if(n!==t){var i=c(f.$parent);n===!0?l(f.$parent,r(i,h,s)):l(f.$parent,u(i,h,s));a&&a(f)}});angular.isFunction(f.$parent.$watchCollection)?f.$parent.$watchCollection(o.checklistModel,v):f.$parent.$watch(o.checklistModel,v,!0)}return{restrict:"A",priority:1e3,terminal:!0,scope:!0,compile:function(n,t){if(n[0].tagName!=="INPUT"||t.type!=="checkbox")throw'checklist-model should be applied to `input[type="checkbox"]`.';if(!t.checklistValue)throw"You should provide `checklist-value`.";return n.removeAttr("checklist-model"),n.attr("ng-model","checked"),f}}}]),function(){"use strict";var n={TAB:9,ENTER:13,ESC:27,SPACE:32,LEFT:37,UP:38,RIGHT:39,DOWN:40,SHIFT:16,CTRL:17,ALT:18,PAGE_UP:33,PAGE_DOWN:34,HOME:36,END:35,BACKSPACE:8,DELETE:46,COMMAND:91,MAP:{91:"COMMAND",8:"BACKSPACE",9:"TAB",13:"ENTER",16:"SHIFT",17:"CTRL",18:"ALT",19:"PAUSEBREAK",20:"CAPSLOCK",27:"ESC",32:"SPACE",33:"PAGE_UP",34:"PAGE_DOWN",35:"END",36:"HOME",37:"LEFT",38:"UP",39:"RIGHT",40:"DOWN",43:"+",44:"PRINTSCREEN",45:"INSERT",46:"DELETE",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"A",66:"B",67:"C",68:"D",69:"E",70:"F",71:"G",72:"H",73:"I",74:"J",75:"K",76:"L",77:"M",78:"N",79:"O",80:"P",81:"Q",82:"R",83:"S",84:"T",85:"U",86:"V",87:"W",88:"X",89:"Y",90:"Z",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9",106:"*",107:"+",109:"-",110:".",111:"/",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NUMLOCK",145:"SCROLLLOCK",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},isControl:function(t){var i=t.which;switch(i){case n.COMMAND:case n.SHIFT:case n.CTRL:case n.ALT:return!0}return t.metaKey||t.ctrlKey||t.altKey?!0:!1},isFunctionKey:function(n){return n=n.which?n.which:n,n>=112&&n<=123},isVerticalMovement:function(t){return~[n.UP,n.DOWN].indexOf(t)},isHorizontalMovement:function(t){return~[n.LEFT,n.RIGHT,n.BACKSPACE,n.DELETE].indexOf(t)},toSeparator:function(t){var i={ENTER:"\n",TAB:"\t",SPACE:" "}[t];return i?i:n[t]?undefined:t}},i,t;angular.element.prototype.querySelectorAll===undefined&&(angular.element.prototype.querySelectorAll=function(n){return angular.element(this[0].querySelectorAll(n))});angular.element.prototype.closest===undefined&&(angular.element.prototype.closest=function(n){for(var t=this[0],i=t.matches||t.webkitMatchesSelector||t.mozMatchesSelector||t.msMatchesSelector;t;){if(i.bind(t)(n))return t;t=t.parentElement}return!1});i=0;t=angular.module("ui.select",[]).constant("uiSelectConfig",{theme:"bootstrap",searchEnabled:!0,sortable:!1,placeholder:"",refreshDelay:1e3,closeOnSelect:!0,skipFocusser:!1,dropdownPosition:"auto",removeSelected:!0,generateId:function(){return i++},appendToBody:!1}).service("uiSelectMinErr",function(){var n=angular.$$minErr("ui.select");return function(){var t=n.apply(this,arguments),i=t.message.replace(new RegExp("\nhttp://errors.angularjs.org/.*"),"");return new Error(i)}}).directive("uisTranscludeAppend",function(){return{link:function(n,t,i,r,u){u(n,function(n){t.append(n)})}}}).filter("highlight",function(){function n(n){return(""+n).replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}return function(t,i){return i&&t?(""+t).replace(new RegExp(n(i),"gi"),'<span class="ui-select-highlight">$&<\/span>'):t}}).factory("uisOffset",["$document","$window",function(n,t){return function(i){var r=i[0].getBoundingClientRect();return{width:r.width||i.prop("offsetWidth"),height:r.height||i.prop("offsetHeight"),top:r.top+(t.pageYOffset||n[0].documentElement.scrollTop),left:r.left+(t.pageXOffset||n[0].documentElement.scrollLeft)}}}]);t.directive("uiSelectChoices",["uiSelectConfig","uisRepeatParser","uiSelectMinErr","$compile","$window",function(n,t,i,r,u){return{restrict:"EA",require:"^uiSelect",replace:!0,transclude:!0,templateUrl:function(t){t.addClass("ui-select-choices");var i=t.parent().attr("theme")||n.theme;return i+"/choices.tpl.html"},compile:function(r,f){var s,l,h,c,e,o,a;if(!f.repeat)throw i("repeat","Expected 'repeat' expression.");if(s=f.groupBy,l=f.groupFilter,s){if(h=r.querySelectorAll(".ui-select-choices-group"),h.length!==1)throw i("rows","Expected 1 .ui-select-choices-group but got '{0}'.",h.length);h.attr("ng-repeat",t.getGroupNgRepeatExpression())}if(c=t.parse(f.repeat),e=r.querySelectorAll(".ui-select-choices-row"),e.length!==1)throw i("rows","Expected 1 .ui-select-choices-row but got '{0}'.",e.length);if(e.attr("ng-repeat",c.repeatExpression(s)).attr("ng-if","$select.open"),o=r.querySelectorAll(".ui-select-choices-row-inner"),o.length!==1)throw i("rows","Expected 1 .ui-select-choices-row-inner but got '{0}'.",o.length);return o.attr("uis-transclude-append",""),a=u.document.addEventListener?e:o,a.attr("ng-click","$select.select("+c.itemName+",$select.skipFocusser,$event)"),function(t,i,r,u){u.parseRepeatAttr(r.repeat,s,l);u.disableChoiceExpression=r.uiDisableChoice;u.onHighlightCallback=r.onHighlight;u.dropdownPosition=r.position?r.position.toLowerCase():n.dropdownPosition;t.$on("$destroy",function(){e.remove()});t.$watch("$select.search",function(n){n&&!u.open&&u.multiple&&u.activate(!1,!0);u.activeIndex=u.tagging.isActivated?-1:0;!r.minimumInputLength||u.search.length>=r.minimumInputLength?u.refresh(r.refresh):u.items=[]});r.$observe("refreshDelay",function(){var i=t.$eval(r.refreshDelay);u.refreshDelay=i!==undefined?i:n.refreshDelay})}}}}]);t.controller("uiSelectCtrl",["$scope","$element","$timeout","$filter","$$uisDebounce","uisRepeatParser","uiSelectMinErr","uiSelectConfig","$parse","$injector","$window",function(t,i,r,u,f,e,o,s,h,c,l){function nt(n,t,i){var u,f,e,r;if(n.findIndex)return n.findIndex(t,i);for(u=Object(n),f=u.length>>>0,r=0;r<f;r++)if(e=u[r],t.call(i,e,r,u))return r;return-1}function w(){(a.resetSearchInput||a.resetSearchInput===undefined&&s.resetSearchInput)&&(a.search=y,a.selected&&a.items.length&&!a.multiple&&(a.activeIndex=nt(a.items,function(n){return angular.equals(this,n)},a.selected)))}function tt(n,t){for(var i,u=[],r=0;r<t.length;r++)for(i=0;i<n.length;i++)n[i].name==[t[r]]&&u.push(n[i]);return u}function it(t){var i=!0;switch(t){case n.DOWN:!a.open&&a.multiple?a.activate(!1,!0):a.activeIndex<a.items.length-1&&a.activeIndex++;break;case n.UP:!a.open&&a.multiple?a.activate(!1,!0):(a.activeIndex>0||a.search.length===0&&a.tagging.isActivated&&a.activeIndex>-1)&&a.activeIndex--;break;case n.TAB:(!a.multiple||a.open)&&a.select(a.items[a.activeIndex],!0);break;case n.ENTER:a.open&&(a.tagging.isActivated||a.activeIndex>=0)?a.select(a.items[a.activeIndex],a.skipFocusser):a.activate(!1,!0);break;case n.ESC:a.close();break;default:i=!1}return i}function g(){var n=i.querySelectorAll(".ui-select-choices-content"),u=n.querySelectorAll(".ui-select-choices-row");if(u.length<1)throw o("choices","Expected multiple .ui-select-choices-row but got '{0}'.",u.length);if(!(a.activeIndex<0)){var t=u[a.activeIndex],r=t.offsetTop+t.clientHeight-n[0].scrollTop,f=n[0].offsetHeight;r>f?n[0].scrollTop+=r-f:r<t.clientHeight&&(a.isGrouped&&a.activeIndex===0?n[0].scrollTop=0:n[0].scrollTop-=t.clientHeight-r)}}var a=this,y="",b,k,v,p,d;if(a.placeholder=s.placeholder,a.searchEnabled=s.searchEnabled,a.sortable=s.sortable,a.refreshDelay=s.refreshDelay,a.paste=s.paste,a.removeSelected=s.removeSelected,a.closeOnSelect=!0,a.skipFocusser=!1,a.search=y,a.activeIndex=0,a.items=[],a.open=!1,a.focus=!1,a.disabled=!1,a.selected=undefined,a.dropdownPosition="auto",a.focusser=undefined,a.resetSearchInput=!0,a.multiple=undefined,a.disableChoiceExpression=undefined,a.tagging={isActivated:!1,fct:undefined},a.taggingTokens={isActivated:!1,tokens:undefined},a.lockChoiceExpression=undefined,a.clickTriggeredSelect=!1,a.$filter=u,a.$element=i,a.$animate=function(){try{return c.get("$animate")}catch(n){return null}}(),a.searchInput=i.querySelectorAll("input.ui-select-search"),a.searchInput.length!==1)throw o("searchInput","Expected 1 input.ui-select-search but got '{0}'.",a.searchInput.length);a.isEmpty=function(){return angular.isUndefined(a.selected)||a.selected===null||a.selected===""||a.multiple&&a.selected.length===0};a.activate=function(n,u){var e,o,f;if(!a.disabled&&!a.open)if(u||w(),t.$broadcast("uis:activate"),a.open=!0,a.activeIndex=a.activeIndex>=a.items.length?0:a.activeIndex,a.activeIndex===-1&&a.taggingLabel!==!1&&(a.activeIndex=0),e=i.querySelectorAll(".ui-select-choices-content"),o=i.querySelectorAll(".ui-select-search"),a.$animate&&a.$animate.on&&a.$animate.enabled(e[0]))if(f=function(t,i){i==="start"&&a.items.length===0?(a.$animate.off("removeClass",o[0],f),r(function(){a.focusSearchInput(n)})):i==="close"&&(a.$animate.off("enter",e[0],f),r(function(){a.focusSearchInput(n)}))},a.items.length>0)a.$animate.on("enter",e[0],f);else a.$animate.on("removeClass",o[0],f);else r(function(){a.focusSearchInput(n);!a.tagging.isActivated&&a.items.length>1&&g()})};a.focusSearchInput=function(n){a.search=n||a.search;a.searchInput[0].focus()};a.findGroupByName=function(n){return a.groups&&a.groups.filter(function(t){return t.name===n})[0]};a.parseRepeatAttr=function(n,i,r){function s(n){var f=t.$eval(i),u;a.groups=[];angular.forEach(n,function(n){var t=angular.isFunction(f)?f(n):n[f],i=a.findGroupByName(t);i?i.items.push(n):a.groups.push({name:t,items:[n]})});r&&(u=t.$eval(r),angular.isFunction(u)?a.groups=u(a.groups):angular.isArray(u)&&(a.groups=tt(a.groups,u)));a.items=[];a.groups.forEach(function(n){a.items=a.items.concat(n.items)})}function c(n){a.items=n}a.setItemsFn=i?s:c;a.parserResult=e.parse(n);a.isGrouped=!!i;a.itemProperty=a.parserResult.itemName;var u=a.parserResult.source,f=function(){var n=u(t);t.$uisSource=Object.keys(n).map(function(t){var i={};return i[a.parserResult.keyName]=t,i.value=n[t],i})};a.parserResult.keyName&&(f(),a.parserResult.source=h("$uisSource"+a.parserResult.filters),t.$watch(u,function(n,t){n!==t&&f()},!0));a.refreshItems=function(n){var i,r;n=n||a.parserResult.source(t);i=a.selected;a.isEmpty()||angular.isArray(i)&&!i.length||!a.removeSelected?a.setItemsFn(n):n!==undefined&&n!==null&&(r=n.filter(function(n){return angular.isArray(i)?i.every(function(t){return!angular.equals(n,t)}):!angular.equals(n,i)}),a.setItemsFn(r));(a.dropdownPosition==="auto"||a.dropdownPosition==="up")&&t.calculateDropdownPos();t.$broadcast("uis:refresh")};t.$watchCollection(a.parserResult.source,function(n){if(n===undefined||n===null)a.items=[];else if(angular.isArray(n))a.refreshItems(n),angular.isDefined(a.ngModel.$modelValue)&&(a.ngModel.$modelValue=null);else throw o("items","Expected an array but got '{0}'.",n);})};a.refresh=function(n){n!==undefined&&(b&&r.cancel(b),b=r(function(){t.$eval(n)},a.refreshDelay))};a.isActive=function(n){if(!a.open)return!1;var i=a.items.indexOf(n[a.itemProperty]),t=i==a.activeIndex;return!t||i<0?!1:(t&&!angular.isUndefined(a.onHighlightCallback)&&n.$eval(a.onHighlightCallback),t)};k=function(n){return a.selected&&angular.isArray(a.selected)&&a.selected.filter(function(t){return angular.equals(t,n)}).length>0};a.isDisabled=function(n){if(a.open){var r=a.items.indexOf(n[a.itemProperty]),t=!1,i;return r>=0&&(!angular.isUndefined(a.disableChoiceExpression)||a.multiple)&&(i=a.items[r],t=!!n.$eval(a.disableChoiceExpression)||k(i),i._uiSelectChoiceDisabled=t),t}};a.select=function(n,i,u){if(n===undefined||!n._uiSelectChoiceDisabled){if(!a.items&&!a.search&&!a.tagging.isActivated)return;if(!n||!n._uiSelectChoiceDisabled){if(a.tagging.isActivated){if(a.taggingLabel===!1)if(a.activeIndex<0){if(n=a.tagging.fct!==undefined?a.tagging.fct(a.search):a.search,!n||angular.equals(a.items[0],n))return}else n=a.items[a.activeIndex];else if(a.activeIndex===0){if(n===undefined)return;if(a.tagging.fct!==undefined&&typeof n=="string"){if(n=a.tagging.fct(n),!n)return}else typeof n=="string"&&(n=n.replace(a.taggingLabel,"").trim())}if(k(n)){a.close(i);return}}t.$broadcast("uis:select",n);var f={};f[a.parserResult.itemName]=n;r(function(){a.onSelectCallback(t,{$item:n,$model:a.parserResult.modelMapper(t,f)})});a.closeOnSelect&&a.close(i);u&&u.type==="click"&&(a.clickTriggeredSelect=!0)}}};a.close=function(n){a.open&&(a.ngModel&&a.ngModel.$setTouched&&a.ngModel.$setTouched(),w(),a.open=!1,t.$broadcast("uis:close",n))};a.setFocus=function(){a.focus||a.focusInput[0].focus()};a.clear=function(n){a.select(undefined);n.stopPropagation();r(function(){a.focusser[0].focus()},0,!1)};a.toggle=function(n){a.open?(a.close(),n.preventDefault(),n.stopPropagation()):a.activate()};a.isLocked=function(n,t){var i,r=a.selected[t];return r&&!angular.isUndefined(a.lockChoiceExpression)&&(i=!!n.$eval(a.lockChoiceExpression),r._uiSelectChoiceLocked=i),i};v=null;p=!1;a.sizeSearchInput=function(){var n=a.searchInput[0],f=a.searchInput.parent().parent()[0],i=function(){return f.clientWidth*!!n.offsetParent},u=function(t){if(t===0)return!1;var i=t-n.offsetLeft-10;return i<50&&(i=t),a.searchInput.css("width",i+"px"),!0};a.searchInput.css("width","10px");r(function(){v!==null||u(i())||(v=t.$watch(function(){p||(p=!0,t.$$postDigest(function(){p=!1;u(i())&&(v(),v=null)}))},angular.noop))})};a.searchInput.on("keydown",function(i){var u=i.which;~[n.ENTER,n.ESC].indexOf(u)&&(i.preventDefault(),i.stopPropagation());t.$apply(function(){var f=!1,t;if((a.items.length>0||a.tagging.isActivated)&&(it(u),a.taggingTokens.isActivated)){for(t=0;t<a.taggingTokens.tokens.length;t++)a.taggingTokens.tokens[t]===n.MAP[i.keyCode]&&a.search.length>0&&(f=!0);f&&r(function(){a.searchInput.triggerHandler("tagged");var t=a.search.replace(n.MAP[i.keyCode],"").trim();a.tagging.fct&&(t=a.tagging.fct(t));t&&a.select(t,!0)})}});n.isVerticalMovement(u)&&a.items.length>0&&g();(u===n.ENTER||u===n.ESC)&&(i.preventDefault(),i.stopPropagation())});a.searchInput.on("paste",function(t){var i,r,u,f,e;if(i=window.clipboardData&&window.clipboardData.getData?window.clipboardData.getData("Text"):(t.originalEvent||t).clipboardData.getData("text/plain"),i=a.search+i,i&&i.length>0)if(a.taggingTokens.isActivated){for(r=[],u=0;u<a.taggingTokens.tokens.length;u++)if(f=n.toSeparator(a.taggingTokens.tokens[u])||a.taggingTokens.tokens[u],i.indexOf(f)>-1){r=i.split(f);break}r.length===0&&(r=[i]);r.length>0&&(e=a.search,angular.forEach(r,function(n){var t=a.tagging.fct?a.tagging.fct(n):n;t&&a.select(t,!0)}),a.search=e||y,t.preventDefault(),t.stopPropagation())}else a.paste&&(a.paste(i),a.search=y,t.preventDefault(),t.stopPropagation())});a.searchInput.on("tagged",function(){r(function(){w()})});d=f(function(){a.sizeSearchInput()},50);angular.element(l).bind("resize",d);t.$on("$destroy",function(){a.searchInput.off("keyup keydown tagged blur paste");angular.element(l).off("resize",d)})}]);t.directive("uiSelect",["$document","uiSelectConfig","uiSelectMinErr","uisOffset","$compile","$parse","$timeout",function(n,t,i,r,u,f,e){return{restrict:"EA",templateUrl:function(n,i){var r=i.theme||t.theme;return r+(angular.isDefined(i.multiple)?"/select-multiple.tpl.html":"/select.tpl.html")},replace:!0,transclude:!0,require:["uiSelect","^ngModel"],scope:!0,controller:"uiSelectCtrl",controllerAs:"$select",compile:function(u,o){var s=/{(.*)}\s*{(.*)}/.exec(o.ngClass),h;return s&&(h="{"+s[1]+", "+s[2]+"}",o.ngClass=h,u.attr("ng-class",h)),angular.isDefined(o.multiple)?u.append("<ui-select-multiple/>").removeAttr("multiple"):u.append("<ui-select-single/>"),o.inputId&&(u.querySelectorAll("input.ui-select-search")[0].id=o.inputId),function(u,o,s,h,c){function b(n){var i,t,f,r;l.open&&(i=!1,i=window.jQuery?window.jQuery.contains(o[0],n.target):o[0].contains(n.target),i||l.clickTriggeredSelect||(l.skipFocusser?t=!0:(f=["input","button","textarea","select"],r=angular.element(n.target).controller("uiSelect"),t=r&&r!==l,t||(t=~f.indexOf(n.target.tagName.toLowerCase()))),l.close(t),u.$digest()),l.clickTriggeredSelect=!1)}function tt(){var t=r(o);v=angular.element('<div class="ui-select-placeholder"><\/div>');v[0].style.width=t.width+"px";v[0].style.height=t.height+"px";o.after(v);w=o[0].style.width;n.find("body").append(o);o[0].style.position="absolute";o[0].style.left=t.left+"px";o[0].style.top=t.top+"px";o[0].style.width=t.width+"px"}function k(){v!==null&&(v.replaceWith(o),v=null,o[0].style.position="",o[0].style.left="",o[0].style.top="",o[0].style.width=w,l.setFocus())}var l=h[0],nt=h[1],p,v,w,a,y;l.generatedId=t.generateId();l.baseTitle=s.title||"Select box";l.focusserTitle=l.baseTitle+" focus";l.focusserId="focusser-"+l.generatedId;l.closeOnSelect=function(){return angular.isDefined(s.closeOnSelect)?f(s.closeOnSelect)():t.closeOnSelect}();u.$watch("skipFocusser",function(){var n=u.$eval(s.skipFocusser);l.skipFocusser=n!==undefined?n:t.skipFocusser});l.onSelectCallback=f(s.onSelect);l.onRemoveCallback=f(s.onRemove);l.ngModel=nt;l.choiceGrouped=function(n){return l.isGrouped&&n&&n.name};s.tabindex&&s.$observe("tabindex",function(n){l.focusInput.attr("tabindex",n);o.removeAttr("tabindex")});u.$watch("searchEnabled",function(){var n=u.$eval(s.searchEnabled);l.searchEnabled=n!==undefined?n:t.searchEnabled});u.$watch("sortable",function(){var n=u.$eval(s.sortable);l.sortable=n!==undefined?n:t.sortable});s.$observe("limit",function(){l.limit=angular.isDefined(s.limit)?parseInt(s.limit,10):undefined});u.$watch("removeSelected",function(){var n=u.$eval(s.removeSelected);l.removeSelected=n!==undefined?n:t.removeSelected});s.$observe("disabled",function(){l.disabled=s.disabled!==undefined?s.disabled:!1});s.$observe("resetSearchInput",function(){var n=u.$eval(s.resetSearchInput);l.resetSearchInput=n!==undefined?n:!0});s.$observe("paste",function(){l.paste=u.$eval(s.paste)});s.$observe("tagging",function(){if(s.tagging!==undefined){var n=u.$eval(s.tagging);l.tagging={isActivated:!0,fct:n!==!0?n:undefined}}else l.tagging={isActivated:!1,fct:undefined}});s.$observe("taggingLabel",function(){s.tagging!==undefined&&(l.taggingLabel=s.taggingLabel==="false"?!1:s.taggingLabel!==undefined?s.taggingLabel:"(new)")});s.$observe("taggingTokens",function(){if(s.tagging!==undefined){var n=s.taggingTokens!==undefined?s.taggingTokens.split("|"):[",","ENTER"];l.taggingTokens={isActivated:!0,tokens:n}}});angular.isDefined(s.autofocus)&&e(function(){l.setFocus()});angular.isDefined(s.focusOn)&&u.$on(s.focusOn,function(){e(function(){l.setFocus()})});n.on("click",b);u.$on("$destroy",function(){n.off("click",b)});c(u,function(n){var f=angular.element("<div>").append(n),r=f.querySelectorAll(".ui-select-match"),t,u;if(r.removeAttr("ui-select-match"),r.removeAttr("data-ui-select-match"),r.length!==1)throw i("transcluded","Expected 1 .ui-select-match but got '{0}'.",r.length);if(o.querySelectorAll(".ui-select-match").replaceWith(r),t=f.querySelectorAll(".ui-select-choices"),t.removeAttr("ui-select-choices"),t.removeAttr("data-ui-select-choices"),t.length!==1)throw i("transcluded","Expected 1 .ui-select-choices but got '{0}'.",t.length);o.querySelectorAll(".ui-select-choices").replaceWith(t);u=f.querySelectorAll(".ui-select-no-choice");u.removeAttr("ui-select-no-choice");u.removeAttr("data-ui-select-no-choice");u.length==1&&o.querySelectorAll(".ui-select-no-choice").replaceWith(u)});p=u.$eval(s.appendToBody);(p!==undefined?p:t.appendToBody)&&(u.$watch("$select.open",function(n){n?tt():k()}),u.$on("$destroy",function(){k()}));v=null;w="";a=null;y="direction-up";u.$watch("$select.open",function(){(l.dropdownPosition==="auto"||l.dropdownPosition==="up")&&u.calculateDropdownPos()});var d=function(n,t){n=n||r(o);t=t||r(a);a[0].style.position="absolute";a[0].style.top=t.height*-1+"px";o.addClass(y)},it=function(n,t){o.removeClass(y);n=n||r(o);t=t||r(a);a[0].style.position="";a[0].style.top=""},g=function(){e(function(){if(l.dropdownPosition==="up")d();else{o.removeClass(y);var t=r(o),i=r(a),u=n[0].documentElement.scrollTop||n[0].body.scrollTop;t.top+t.height+i.height>u+n[0].documentElement.clientHeight?d(t,i):it(t,i)}a[0].style.opacity=1})};u.calculateDropdownPos=function(){if(l.open){if(a=angular.element(o).querySelectorAll(".ui-select-dropdown"),a.length===0)return;if(a[0].style.opacity=0,!r(a).height&&l.$animate&&l.$animate.on&&l.$animate.enabled(a)){var n=!0;l.$animate.on("enter",a,function(t,i){i==="close"&&n&&(g(),n=!1)})}else g()}else{if(a===null||a.length===0)return;a[0].style.opacity=0;a[0].style.position="";a[0].style.top="";o.removeClass(y)}}}}}}]);t.directive("uiSelectMatch",["uiSelectConfig",function(n){function t(n,t){return n[0].hasAttribute(t)?n.attr(t):n[0].hasAttribute("data-"+t)?n.attr("data-"+t):n[0].hasAttribute("x-"+t)?n.attr("x-"+t):void 0}return{restrict:"EA",require:"^uiSelect",replace:!0,transclude:!0,templateUrl:function(i){i.addClass("ui-select-match");var r=i.parent(),u=t(r,"theme")||n.theme,f=angular.isDefined(t(r,"multiple"));return u+(f?"/match-multiple.tpl.html":"/match.tpl.html")},link:function(t,i,r,u){function f(n){u.allowClear=angular.isDefined(n)?n===""?!0:n.toLowerCase()==="true":!1}u.lockChoiceExpression=r.uiLockChoice;r.$observe("placeholder",function(t){u.placeholder=t!==undefined?t:n.placeholder});r.$observe("allowClear",f);f(r.allowClear);u.multiple&&u.sizeSearchInput()}}}]);t.directive("uiSelectMultiple",["uiSelectMinErr","$timeout",function(t,i){return{restrict:"EA",require:["^uiSelect","^ngModel"],controller:["$scope","$timeout",function(n,t){var r=this,i=n.$select,u;angular.isUndefined(i.selected)&&(i.selected=[]);n.$evalAsync(function(){u=n.ngModel});r.activeMatchIndex=-1;r.updateModel=function(){u.$setViewValue(Date.now());r.refreshComponent()};r.refreshComponent=function(){i.refreshItems();i.sizeSearchInput()};r.removeChoice=function(u){var f=i.selected[u],e;f._uiSelectChoiceLocked||(e={},e[i.parserResult.itemName]=f,i.selected.splice(u,1),r.activeMatchIndex=-1,i.sizeSearchInput(),t(function(){i.onRemoveCallback(n,{$item:f,$model:i.parserResult.modelMapper(n,e)})}),r.updateModel())};r.getPlaceholder=function(){if(!i.selected||!i.selected.length)return i.placeholder}}],controllerAs:"$selectMultiple",link:function(r,u,f,e){function a(n){return angular.isNumber(n.selectionStart)?n.selectionStart:n.value.length}function v(t){function l(){switch(t){case n.LEFT:return~s.activeMatchIndex?f:i;case n.RIGHT:return~s.activeMatchIndex&&r!==i?c:(o.activate(),!1);case n.BACKSPACE:return~s.activeMatchIndex?(s.removeChoice(r),f):i;case n.DELETE:return~s.activeMatchIndex?(s.removeChoice(s.activeMatchIndex),r):!1}}var e=a(o.searchInput[0]),h=o.selected.length,i=h-1,r=s.activeMatchIndex,c=s.activeMatchIndex+1,f=s.activeMatchIndex-1,u=r;return e>0||o.search.length&&t==n.RIGHT?!1:(o.close(),u=l(),s.activeMatchIndex=o.selected.length&&u!==!1?Math.min(i,Math.max(0,u)):-1,!0)}function c(n){if(n===undefined||o.search===undefined)return!1;return n.filter(function(n){return o.search.toUpperCase()===undefined||n===undefined?!1:n.toUpperCase()===o.search.toUpperCase()}).length>0}function l(n,t){var f=-1,r,i,u;if(angular.isArray(n))for(r=angular.copy(n),i=0;i<r.length;i++)o.tagging.fct===undefined?r[i]+" "+o.taggingLabel===t&&(f=i):(u=r[i],angular.isObject(u)&&(u.isTag=!0),angular.equals(u,t)&&(f=i));return f}var o=e[0],h=r.ngModel=e[1],s=r.$selectMultiple;o.multiple=!0;o.focusInput=o.searchInput;h.$isEmpty=function(n){return!n||n.length===0};h.$parsers.unshift(function(){for(var n={},i,u=[],t=o.selected.length-1;t>=0;t--)n={},n[o.parserResult.itemName]=o.selected[t],i=o.parserResult.modelMapper(r,n),u.unshift(i);return u});h.$formatters.unshift(function(n){var e=o.parserResult&&o.parserResult.source(r,{$select:{search:""}}),s={},u,t,f,i;if(!e)return n;if(t=[],f=function(n,i){var f,h,e;if(n&&n.length){for(f=n.length-1;f>=0;f--)if((s[o.parserResult.itemName]=n[f],u=o.parserResult.modelMapper(r,s),o.parserResult.trackByExp&&(h=/(\w*)\./.exec(o.parserResult.trackByExp),e=/\.([^\s]+)/.exec(o.parserResult.trackByExp),h&&h.length>0&&h[1]==o.parserResult.itemName&&e&&e.length>0&&u[e[1]]==i[e[1]]))||angular.equals(u,i))return t.unshift(n[f]),!0;return!1}},!n)return t;for(i=n.length-1;i>=0;i--)f(o.selected,n[i])||f(e,n[i])||t.unshift(n[i]);return t});r.$watchCollection(function(){return h.$modelValue},function(n,t){t!=n&&(angular.isDefined(h.$modelValue)&&(h.$modelValue=null),s.refreshComponent())});h.$render=function(){if(!angular.isArray(h.$viewValue))if(angular.isUndefined(h.$viewValue)||h.$viewValue===null)o.selected=[];else throw t("multiarr","Expected model value to be array but got '{0}'",h.$viewValue);o.selected=h.$viewValue;s.refreshComponent();r.$evalAsync()};r.$on("uis:select",function(n,t){o.selected.length>=o.limit||(o.selected.push(t),s.updateModel())});r.$on("uis:activate",function(){s.activeMatchIndex=-1});r.$watch("$select.disabled",function(n,t){t&&!n&&o.sizeSearchInput()});o.searchInput.on("keydown",function(t){var i=t.which;r.$apply(function(){var r=!1;n.isHorizontalMovement(i)&&(r=v(i));r&&i!=n.TAB&&(t.preventDefault(),t.stopPropagation())})});o.searchInput.on("keyup",function(t){if(n.isVerticalMovement(t.which)||r.$evalAsync(function(){o.activeIndex=o.taggingLabel===!1?-1:0}),o.tagging.isActivated&&o.search.length>0){if(t.which===n.TAB||n.isControl(t)||n.isFunctionKey(t)||t.which===n.ESC||n.isVerticalMovement(t.which))return;if(o.activeIndex=o.taggingLabel===!1?-1:0,o.taggingLabel===!1)return;var i=angular.copy(o.items),u=angular.copy(o.items),f,v,s=!1,a=-1,e,h;if(o.tagging.fct!==undefined){if(e=o.$filter("filter")(i,{isTag:!0}),e.length>0&&(h=e[0]),i.length>0&&h&&(s=!0,i=i.slice(1,i.length),u=u.slice(1,u.length)),f=o.tagging.fct(o.search),u.some(function(n){return angular.equals(n,f)})||o.selected.some(function(n){return angular.equals(n,f)})){r.$evalAsync(function(){o.activeIndex=0;o.items=i});return}f&&(f.isTag=!0)}else{if(e=o.$filter("filter")(i,function(n){return n.match(o.taggingLabel)}),e.length>0&&(h=e[0]),v=i[0],v!==undefined&&i.length>0&&h&&(s=!0,i=i.slice(1,i.length),u=u.slice(1,u.length)),f=o.search+" "+o.taggingLabel,l(o.selected,o.search)>-1)return;if(c(u.concat(o.selected))){s&&(i=u,r.$evalAsync(function(){o.activeIndex=0;o.items=i}));return}if(c(u)){s&&(o.items=u.slice(1,u.length));return}}s&&(a=l(o.selected,f));a>-1?i=i.slice(a+1,i.length-1):(i=[],f&&i.push(f),i=i.concat(u));r.$evalAsync(function(){if(o.activeIndex=0,o.items=i,o.isGrouped){var n=f?i.slice(1):i;o.setItemsFn(n);f&&(o.items.unshift(f),o.groups.unshift({name:"",items:[f],tagging:!0}))}})}});o.searchInput.on("blur",function(){i(function(){s.activeMatchIndex=-1})})}}}]);t.directive("uiSelectNoChoice",["uiSelectConfig",function(n){return{restrict:"EA",require:"^uiSelect",replace:!0,transclude:!0,templateUrl:function(t){t.addClass("ui-select-no-choice");var i=t.parent().attr("theme")||n.theme;return i+"/no-choice.tpl.html"}}}]);t.directive("uiSelectSingle",["$timeout","$compile",function(t,i){return{restrict:"EA",require:["^uiSelect","^ngModel"],link:function(r,u,f,e){var o=e[0],h=e[1],s;h.$parsers.unshift(function(n){var t={};return t[o.parserResult.itemName]=n,o.parserResult.modelMapper(r,t)});h.$formatters.unshift(function(n){var i=o.parserResult&&o.parserResult.source(r,{$select:{search:""}}),f={},e,u,t;if(i){if(u=function(t){return f[o.parserResult.itemName]=t,e=o.parserResult.modelMapper(r,f),e===n},o.selected&&u(o.selected))return o.selected;for(t=i.length-1;t>=0;t--)if(u(i[t]))return i[t]}return n});r.$watch("$select.selected",function(n){h.$viewValue!==n&&h.$setViewValue(n)});h.$render=function(){o.selected=h.$viewValue};r.$on("uis:select",function(n,t){o.selected=t});r.$on("uis:close",function(n,i){t(function(){o.focusser.prop("disabled",!1);i||o.focusser[0].focus()},0,!1)});r.$on("uis:activate",function(){s.prop("disabled",!0)});s=angular.element("<input ng-disabled='$select.disabled' class='ui-select-focusser ui-select-offscreen' type='text' id='{{ $select.focusserId }}' aria-label='{{ $select.focusserTitle }}' aria-haspopup='true' role='button' />");i(s)(r);o.focusser=s;o.focusInput=s;u.parent().append(s);s.bind("focus",function(){r.$evalAsync(function(){o.focus=!0})});s.bind("blur",function(){r.$evalAsync(function(){o.focus=!1})});s.bind("keydown",function(t){if(t.which===n.BACKSPACE){t.preventDefault();t.stopPropagation();o.select(undefined);r.$apply();return}t.which===n.TAB||n.isControl(t)||n.isFunctionKey(t)||t.which===n.ESC||((t.which==n.DOWN||t.which==n.UP||t.which==n.ENTER||t.which==n.SPACE)&&(t.preventDefault(),t.stopPropagation(),o.activate()),r.$digest())});s.bind("keyup input",function(t){t.which===n.TAB||n.isControl(t)||n.isFunctionKey(t)||t.which===n.ESC||t.which==n.ENTER||t.which===n.BACKSPACE||(o.activate(s.val()),s.val(""),r.$digest())})}}}]);t.directive("uiSelectSort",["$timeout","uiSelectConfig","uiSelectMinErr",function(n,t,i){return{require:["^^uiSelect","^ngModel"],link:function(t,r,u,f){if(t[u.uiSelectSort]===null)throw i("sort","Expected a list to sort");var a=f[0],w=f[1],b=angular.extend({axis:"horizontal"},t.$eval(u.uiSelectSortOptions)),v=b.axis,h="dragging",c="dropping",o="dropping-before",s="dropping-after";t.$watch(function(){return a.sortable},function(n){n?r.attr("draggable",!0):r.removeAttr("draggable")});r.on("dragstart",function(n){r.addClass(h);(n.dataTransfer||n.originalEvent.dataTransfer).setData("text",t.$index.toString())});r.on("dragend",function(){e(h)});var k=function(n,t){this.splice(t,0,this.splice(n,1)[0])},e=function(n){angular.forEach(a.$element.querySelectorAll("."+n),function(t){angular.element(t).removeClass(n)})},y=function(n){n.preventDefault();var t=v==="vertical"?n.offsetY||n.layerY||(n.originalEvent?n.originalEvent.offsetY:0):n.offsetX||n.layerX||(n.originalEvent?n.originalEvent.offsetX:0);t<this[v==="vertical"?"offsetHeight":"offsetWidth"]/2?(e(s),r.addClass(o)):(e(o),r.addClass(s))},p,l=function(t){t.preventDefault();var i=parseInt((t.dataTransfer||t.originalEvent.dataTransfer).getData("text"),10);n.cancel(p);p=n(function(){d(i)},20)},d=function(n){var i=t.$eval(u.uiSelectSort),h=i[n],f=null;f=r.hasClass(o)?n<t.$index?t.$index-1:t.$index:n<t.$index?t.$index:t.$index+1;k.apply(i,[n,f]);w.$setViewValue(Date.now());t.$apply(function(){t.$emit("uiSelectSort:change",{array:i,item:h,from:n,to:f})});e(c);e(o);e(s);r.off("drop",l)};r.on("dragenter",function(){if(!r.hasClass(h)){r.addClass(c);r.on("dragover",y);r.on("drop",l)}});r.on("dragleave",function(n){n.target==r&&(e(c),e(o),e(s),r.off("dragover",y),r.off("drop",l))})}}}]);t.factory("$$uisDebounce",["$timeout",function(n){return function(t,i){var r;return function(){var u=this,f=Array.prototype.slice.call(arguments);r&&n.cancel(r);r=n(function(){t.apply(u,f)},i)}}}]);t.service("uisRepeatParser",["uiSelectMinErr","$parse",function(n,t){var i=this;i.parse=function(i){var r,u,f,e;if(r=i.match(/^\s*(?:([\s\S]+?)\s+as\s+)?(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+(\s*[\s\S]+?)?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/),!r)throw n("iexp","Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.",i);return u=r[5],f="",r[3]&&(u=r[5].replace(/(^\()|(\)$)/g,""),e=r[5].match(/^\s*(?:[\s\S]+?)(?:[^\|]|\|\|)+([\s\S]*)\s*$/),e&&e[1].trim()&&(f=e[1],u=u.replace(f,""))),{itemName:r[4]||r[2],keyName:r[3],source:t(u),filters:f,trackByExp:r[6],modelMapper:t(r[1]||r[4]||r[2]),repeatExpression:function(n){var t=this.itemName+" in "+(n?"$group.items":"$select.items");return this.trackByExp&&(t+=" track by "+this.trackByExp),t}}};i.getGroupNgRepeatExpression=function(){return"$group in $select.groups"}}])}();angular.module("ui.select").run(["$templateCache",function(n){n.put("bootstrap/choices.tpl.html",'<ul class="ui-select-choices ui-select-choices-content ui-select-dropdown dropdown-menu" role="listbox" ng-show="$select.open && $select.items.length > 0"><li class="ui-select-choices-group" id="ui-select-choices-{{ $select.generatedId }}"><div class="divider" ng-show="$select.isGrouped && $index > 0"><\/div><div ng-show="$select.isGrouped" class="ui-select-choices-group-label dropdown-header" ng-bind="$group.name"><\/div><div ng-attr-id="ui-select-choices-row-{{ $select.generatedId }}-{{$index}}" class="ui-select-choices-row" ng-class="{active: $select.isActive(this), disabled: $select.isDisabled(this)}" role="option"><a href="" class="ui-select-choices-row-inner"><\/a><\/div><\/li><\/ul>');n.put("bootstrap/match-multiple.tpl.html",'<span class="ui-select-match"><span ng-repeat="$item in $select.selected"><span class="ui-select-match-item btn btn-default btn-xs" tabindex="-1" type="button" ng-disabled="$select.disabled" ng-click="$selectMultiple.activeMatchIndex = $index;" ng-class="{\'btn-primary\':$selectMultiple.activeMatchIndex === $index, \'select-locked\':$select.isLocked(this, $index)}" ui-select-sort="$select.selected"><span class="close ui-select-match-close" ng-hide="$select.disabled" ng-click="$selectMultiple.removeChoice($index)">&nbsp;&times;<\/span> <span uis-transclude-append=""><\/span><\/span><\/span><\/span>');n.put("bootstrap/match.tpl.html",'<div class="ui-select-match" ng-hide="$select.open && $select.searchEnabled" ng-disabled="$select.disabled" ng-class="{\'btn-default-focus\':$select.focus}"><span tabindex="-1" class="btn btn-default form-control ui-select-toggle" aria-label="{{ $select.baseTitle }} activate" ng-disabled="$select.disabled" ng-click="$select.activate()" style="outline: 0;"><span ng-show="$select.isEmpty()" class="ui-select-placeholder text-muted">{{$select.placeholder}}<\/span> <span ng-hide="$select.isEmpty()" class="ui-select-match-text pull-left" ng-class="{\'ui-select-allow-clear\': $select.allowClear && !$select.isEmpty()}" ng-transclude=""><\/span> <i class="caret pull-right" ng-click="$select.toggle($event)"><\/i> <a ng-show="$select.allowClear && !$select.isEmpty() && ($select.disabled !== true)" aria-label="{{ $select.baseTitle }} clear" style="margin-right: 10px" ng-click="$select.clear($event)" class="btn btn-xs btn-link pull-right"><i class="glyphicon glyphicon-remove" aria-hidden="true"><\/i><\/a><\/span><\/div>');n.put("bootstrap/no-choice.tpl.html",'<ul class="ui-select-no-choice dropdown-menu" ng-show="$select.items.length == 0"><li ng-transclude=""><\/li><\/ul>');n.put("bootstrap/select-multiple.tpl.html",'<div class="ui-select-container ui-select-multiple ui-select-bootstrap dropdown form-control" ng-class="{open: $select.open}"><div><div class="ui-select-match"><\/div><input type="search" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" class="ui-select-search input-xs" placeholder="{{$selectMultiple.getPlaceholder()}}" ng-disabled="$select.disabled" ng-hide="$select.disabled" ng-click="$select.activate()" ng-model="$select.search" role="combobox" aria-label="{{ $select.baseTitle }}" ondrop="return false;"><\/div><div class="ui-select-choices"><\/div><div class="ui-select-no-choice"><\/div><\/div>');n.put("bootstrap/select.tpl.html",'<div class="ui-select-container ui-select-bootstrap dropdown" ng-class="{open: $select.open}"><div class="ui-select-match"><\/div><input type="search" autocomplete="off" tabindex="-1" aria-expanded="true" aria-label="{{ $select.baseTitle }}" aria-owns="ui-select-choices-{{ $select.generatedId }}" aria-activedescendant="ui-select-choices-row-{{ $select.generatedId }}-{{ $select.activeIndex }}" class="form-control ui-select-search" placeholder="{{$select.placeholder}}" ng-model="$select.search" ng-show="$select.searchEnabled && $select.open"><div class="ui-select-choices"><\/div><div class="ui-select-no-choice"><\/div><\/div>');n.put("select2/choices.tpl.html",'<ul tabindex="-1" class="ui-select-choices ui-select-choices-content select2-results"><li class="ui-select-choices-group" ng-class="{\'select2-result-with-children\': $select.choiceGrouped($group) }"><div ng-show="$select.choiceGrouped($group)" class="ui-select-choices-group-label select2-result-label" ng-bind="$group.name"><\/div><ul role="listbox" id="ui-select-choices-{{ $select.generatedId }}" ng-class="{\'select2-result-sub\': $select.choiceGrouped($group), \'select2-result-single\': !$select.choiceGrouped($group) }"><li role="option" ng-attr-id="ui-select-choices-row-{{ $select.generatedId }}-{{$index}}" class="ui-select-choices-row" ng-class="{\'select2-highlighted\': $select.isActive(this), \'select2-disabled\': $select.isDisabled(this)}"><div class="select2-result-label ui-select-choices-row-inner"><\/div><\/li><\/ul><\/li><\/ul>');n.put("select2/match-multiple.tpl.html",'<span class="ui-select-match"><li class="ui-select-match-item select2-search-choice" ng-repeat="$item in $select.selected" ng-class="{\'select2-search-choice-focus\':$selectMultiple.activeMatchIndex === $index, \'select2-locked\':$select.isLocked(this, $index)}" ui-select-sort="$select.selected"><span uis-transclude-append=""><\/span> <a href="javascript:;" class="ui-select-match-close select2-search-choice-close" ng-click="$selectMultiple.removeChoice($index)" tabindex="-1"><\/a><\/li><\/span>');n.put("select2/match.tpl.html",'<a class="select2-choice ui-select-match" ng-class="{\'select2-default\': $select.isEmpty()}" ng-click="$select.toggle($event)" aria-label="{{ $select.baseTitle }} select"><span ng-show="$select.isEmpty()" class="select2-chosen">{{$select.placeholder}}<\/span> <span ng-hide="$select.isEmpty()" class="select2-chosen" ng-transclude=""><\/span> <abbr ng-if="$select.allowClear && !$select.isEmpty()" class="select2-search-choice-close" ng-click="$select.clear($event)"><\/abbr> <span class="select2-arrow ui-select-toggle"><b><\/b><\/span><\/a>');n.put("select2/select-multiple.tpl.html",'<div class="ui-select-container ui-select-multiple select2 select2-container select2-container-multi" ng-class="{\'select2-container-active select2-dropdown-open open\': $select.open, \'select2-container-disabled\': $select.disabled}"><ul class="select2-choices"><span class="ui-select-match"><\/span><li class="select2-search-field"><input type="search" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" role="combobox" aria-expanded="true" aria-owns="ui-select-choices-{{ $select.generatedId }}" aria-label="{{ $select.baseTitle }}" aria-activedescendant="ui-select-choices-row-{{ $select.generatedId }}-{{ $select.activeIndex }}" class="select2-input ui-select-search" placeholder="{{$selectMultiple.getPlaceholder()}}" ng-disabled="$select.disabled" ng-hide="$select.disabled" ng-model="$select.search" ng-click="$select.activate()" style="width: 34px;" ondrop="return false;"><\/li><\/ul><div class="ui-select-dropdown select2-drop select2-with-searchbox select2-drop-active" ng-class="{\'select2-display-none\': !$select.open || $select.items.length === 0}"><div class="ui-select-choices"><\/div><\/div><\/div>');n.put("select2/select.tpl.html",'<div class="ui-select-container select2 select2-container" ng-class="{\'select2-container-active select2-dropdown-open open\': $select.open, \'select2-container-disabled\': $select.disabled, \'select2-container-active\': $select.focus, \'select2-allowclear\': $select.allowClear && !$select.isEmpty()}"><div class="ui-select-match"><\/div><div class="ui-select-dropdown select2-drop select2-with-searchbox select2-drop-active" ng-class="{\'select2-display-none\': !$select.open}"><div class="select2-search" ng-show="$select.searchEnabled"><input type="search" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" role="combobox" aria-expanded="true" aria-owns="ui-select-choices-{{ $select.generatedId }}" aria-label="{{ $select.baseTitle }}" aria-activedescendant="ui-select-choices-row-{{ $select.generatedId }}-{{ $select.activeIndex }}" class="ui-select-search select2-input" ng-model="$select.search"><\/div><div class="ui-select-choices"><\/div><\/div><\/div>');n.put("selectize/choices.tpl.html",'<div ng-show="$select.open" class="ui-select-choices ui-select-dropdown selectize-dropdown single"><div class="ui-select-choices-content selectize-dropdown-content"><div class="ui-select-choices-group optgroup" role="listbox"><div ng-show="$select.isGrouped" class="ui-select-choices-group-label optgroup-header" ng-bind="$group.name"><\/div><div role="option" class="ui-select-choices-row" ng-class="{active: $select.isActive(this), disabled: $select.isDisabled(this)}"><div class="option ui-select-choices-row-inner" data-selectable=""><\/div><\/div><\/div><\/div><\/div>');n.put("selectize/match.tpl.html",'<div ng-hide="$select.searchEnabled && ($select.open || $select.isEmpty())" class="ui-select-match" ng-transclude=""><\/div>');n.put("selectize/select.tpl.html",'<div class="ui-select-container selectize-control single" ng-class="{\'open\': $select.open}"><div class="selectize-input" ng-class="{\'focus\': $select.open, \'disabled\': $select.disabled, \'selectize-focus\' : $select.focus}" ng-click="$select.open && !$select.searchEnabled ? $select.toggle($event) : $select.activate()"><div class="ui-select-match"><\/div><input type="search" autocomplete="off" tabindex="-1" class="ui-select-search ui-select-toggle" ng-click="$select.toggle($event)" placeholder="{{$select.placeholder}}" ng-model="$select.search" ng-hide="!$select.searchEnabled || ($select.selected && !$select.open)" ng-disabled="$select.disabled" aria-label="{{ $select.baseTitle }}"><\/div><div class="ui-select-choices"><\/div><\/div>')}]);angular.module("frapontillo.bootstrap-duallistbox",[]);angular.module("frapontillo.bootstrap-duallistbox").directive("bsDuallistbox",["$compile","$timeout",function(n,t){return{restrict:"A",require:"ngModel",link:function(i,r,u){var c=u.ngOptions.match(/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/)[7],f=function(n){return n===!0||n==="true"},e={bootstrap2:{changeFn:"setBootstrap2Compatible",transformFn:f},postfix:"setHelperSelectNamePostfix",selectMinHeight:{changeFn:"setSelectOrMinimalHeight",defaultValue:100},filter:{changeFn:"setShowFilterInputs",defaultValue:!0,transformFn:f},filterClear:{changeFn:"setFilterTextClear",defaultValue:"show all"},filterPlaceholder:"setFilterPlaceHolder",filterValues:{changeFn:"setFilterOnValues",transformFn:f},moveOnSelect:{changeFn:"setMoveOnSelect",defaultValue:!0,transformFn:f},preserveSelection:"setPreserveSelectionOnMove",moveSelectedLabel:"setMoveSelectedLabel",moveAllLabel:"setMoveAllLabel",removeSelectedLabel:"setRemoveSelectedLabel",removeAllLabel:"setRemoveAllLabel",selectedListLabel:"setSelectedListLabel",nonSelectedListLabel:"setNonSelectedListLabel",infoAll:{changeFn:"setInfoText",defaultValue:"Showing all {0}"},infoFiltered:{changeFn:"setInfoTextFiltered",defaultValue:'<span class="label label-warning">Filtered<\/span> {0} from {1}'},infoEmpty:{changeFn:"setInfoTextEmpty",defaultValue:"Empty list"}},s,h=function(n){var i=e[n],t=u[n],f,r;return angular.isObject(i)&&(f=i.defaultValue,r=i.transformFn),t||(t=f),angular.isFunction(r)&&(t=r(t)),t},l=function(n){var t=e[n],i=t;return angular.isObject(t)&&(i=t.changeFn),i},a=function(){i.$watch(u.ngModel,function(){v();o()});i.$watch(c,o,!0);i.$watch(u.filterNonSelected,function(){o()});i.$watch(u.filterSelected,function(){o()});angular.forEach(e,function(n,t){u.$observe(t,function(){var n=l(t),i=h(t);r.bootstrapDualListbox(n,i,!0)})})},o=function(){t(function(){r.bootstrapDualListbox("refresh")})},v=function(){s||y()},y=function(){var t={},f,o,c;angular.forEach(e,function(n,i){var r=h(i);t[i]=r});s=r.bootstrapDualListbox({bootstrap2Compatible:t.bootstrap2,filterTextClear:t.filterClear,filterPlaceHolder:t.filterPlaceholder,moveSelectedLabel:t.moveSelectedLabel,moveAllLabel:t.moveAllLabel,removeSelectedLabel:t.removeSelectedLabel,removeAllLabel:t.removeAllLabel,moveOnSelect:t.moveOnSelect,preserveSelectionOnMove:t.preserveSelection,selectedListLabel:t.selectedListLabel,nonSelectedListLabel:t.nonSelectedListLabel,helperSelectNamePostfix:t.postfix,selectOrMinimalHeight:t.selectMinHeight,showFilterInputs:t.filter,nonSelectedFilter:"",selectedFilter:"",infoText:t.infoAll,infoTextFiltered:t.infoFiltered,infoTextEmpty:t.infoEmpty,filterOnValues:t.filterValues});f=r.bootstrapDualListbox("getContainer");o=f.find(".box1 .filter");o.attr("ng-model",u.filterNonSelected);n(o)(i);c=f.find(".box2 .filter");c.attr("ng-model",u.filterSelected);n(c)(i)};a();i.$on("$destroy",function(){r.bootstrapDualListbox("destroy")})}}}]),function(n){"use strict";n.module("vcRecaptcha",[])}(angular),function(n){"use strict";var t=n.module("vcRecaptcha");t.service("vcRecaptchaService",["$window","$q",function(t,i){function o(){return!r?e:i.when(r)}function f(){if(!r)throw new Error("reCaptcha has not been loaded yet.");}var u=i.defer(),e=u.promise,r;return t.vcRecaptchaApiLoaded=function(){r=t.grecaptcha;u.resolve(r)},n.isDefined(t.grecaptcha)&&t.vcRecaptchaApiLoaded(),{create:function(n,t,i,r){return r.callback=i,r.sitekey=t,o().then(function(t){return t.render(n,r)})},reload:function(n){f();r.reset(n)},getResponse:function(n){return f(),r.getResponse(n)}}}])}(angular),function(n){"use strict";function t(){throw new Error('You need to set the "key" attribute to your public reCaptcha key. If you don\'t have a key, please get one from https://www.google.com/recaptcha/admin/create');}var i=n.module("vcRecaptcha");i.directive("vcRecaptcha",["$document","$timeout","vcRecaptchaService",function(n,i,r){return{restrict:"A",require:"?^^form",scope:{response:"=?ngModel",key:"=",stoken:"=?",theme:"=?",size:"=?",tabindex:"=?",onCreate:"&",onSuccess:"&",onExpire:"&"},link:function(u,f,e,o){function c(){o&&o.$setValidity("recaptcha",null);s&&(i.cancel(s),s=null);l()}function l(){angular.element(n[0].querySelectorAll(".pls-container")).parent().remove()}e.hasOwnProperty("key")||t();u.widgetId=null;var s,h=u.$watch("key",function(n){if(n){n.length!==40&&t();var l=function(n){i(function(){o&&o.$setValidity("recaptcha",!0);u.response=n;u.onSuccess({response:n,widgetId:u.widgetId})});s=i(function(){o&&o.$setValidity("recaptcha",!1);u.response="";u.onExpire({widgetId:u.widgetId})},12e4)};r.create(f[0],n,l,{stoken:u.stoken||e.stoken||null,theme:u.theme||e.theme||null,tabindex:u.tabindex||e.tabindex||null,size:u.size||e.size||null}).then(function(n){o&&o.$setValidity("recaptcha",!1);u.widgetId=n;u.onCreate({widgetId:n});u.$on("$destroy",c)});h()}})}}}])}(angular),function(n,t,i){"use strict";t.module("ngIdle",["ngIdle.keepalive","ngIdle.idle","ngIdle.countdown","ngIdle.title","ngIdle.localStorage"]);t.module("ngIdle.keepalive",[]).provider("Keepalive",function(){var n={http:null,interval:600},i;this.http=function(i){if(!i)throw new Error("Argument must be a string containing a URL, or an object containing the HTTP request configuration.");t.isString(i)&&(i={url:i,method:"GET"});i.cache=!1;n.http=i};i=this.interval=function(t){if(t=parseInt(t),isNaN(t)||t<=0)throw new Error("Interval must be expressed in seconds and be greater than 0.");n.interval=t};this.$get=["$rootScope","$log","$interval","$http",function(r,u,f,e){function s(n,t){r.$broadcast("KeepaliveResponse",n,t)}function h(){r.$broadcast("Keepalive");t.isObject(n.http)&&e(n.http).success(s).error(s)}var o={ping:null};return{_options:function(){return n},setInterval:i,start:function(){return f.cancel(o.ping),o.ping=f(h,n.interval*1e3),o.ping},stop:function(){f.cancel(o.ping)},ping:function(){h()}}}]});t.module("ngIdle.idle",["ngIdle.keepalive","ngIdle.localStorage"]).provider("Idle",function(){var n={idle:1200,timeout:30,autoResume:"idle",interrupt:"mousemove keydown DOMMouseScroll mousewheel mousedown touchstart touchmove scroll",keepalive:!0},r=this.timeout=function(i){if(i===!1)n.timeout=0;else if(t.isNumber(i)&&i>=0)n.timeout=i;else throw new Error("Timeout must be zero or false to disable the feature, or a positive integer (in seconds) to enable it.");},i;this.interrupt=function(t){n.interrupt=t};i=this.idle=function(t){if(t<=0)throw new Error("Idle must be a value in seconds, greater than 0.");n.idle=t};this.autoResume=function(t){n.autoResume=t===!0?"idle":t===!1?"off":t};this.keepalive=function(t){n.keepalive=t===!0};this.$get=["$interval","$log","$rootScope","$document","Keepalive","IdleLocalStorage","$window",function(u,f,e,o,s,h,c){function w(){n.keepalive&&(l.running&&s.ping(),s.start())}function a(){n.keepalive&&s.stop()}function b(){l.idling=!l.idling;var t=l.idling?"Start":"End";e.$broadcast("Idle"+t);l.idling?(a(),n.timeout&&(l.countdown=n.timeout,k(),l.timeout=u(k,1e3,n.timeout,!1))):w();u.cancel(l.idle)}function k(){if(l.countdown<=0){d();return}e.$broadcast("IdleWarn",l.countdown);l.countdown--}function d(){a();u.cancel(l.idle);u.cancel(l.timeout);l.idling=!0;l.running=!1;l.countdown=0;e.$broadcast("IdleTimeout")}function g(n,t,i){var r=n.running();n.unwatch();t(i);r&&n.watch()}function tt(){var n=h.get("expiry");return n&&n.time?new Date(n.time):null}function nt(n){n?h.set("expiry",{id:p,time:n}):h.remove("expiry")}var l={idle:null,timeout:null,idling:!1,running:!1,countdown:null},p=(new Date).getTime(),v={_options:function(){return n},_getNow:function(){return new Date},getIdle:function(){return n.idle},getTimeout:function(){return n.timeout},setIdle:function(n){g(this,i,n)},setTimeout:function(n){g(this,r,n)},isExpired:function(){var n=tt();return n!==null&&n<=this._getNow()},running:function(){return l.running},idling:function(){return l.idling},watch:function(t){u.cancel(l.idle);u.cancel(l.timeout);var i=n.timeout?n.timeout:0;t||nt(new Date((new Date).getTime()+(n.idle+i)*1e3));l.idling?b():l.running||w();l.running=!0;l.idle=u(b,n.idle*1e3,0,!1)},unwatch:function(){u.cancel(l.idle);u.cancel(l.timeout);l.idling=!1;l.running=!1;nt(null);a()},interrupt:function(t){if(l.running){if(n.timeout&&this.isExpired()){d();return}n.autoResume!=="idle"&&(n.autoResume!=="notIdle"||l.idling)||this.watch(t)}}},y;o.find("html").on(n.interrupt,function(n){n.type==="mousemove"&&n.originalEvent&&n.originalEvent.movementX===0&&n.originalEvent.movementY===0||(n.type!=="mousemove"||t.isUndefined(n.movementX)||n.movementX||n.movementY)&&v.interrupt()});return y=function(n){if(n.key==="ngIdle.expiry"&&n.newValue&&n.newValue!==n.oldValue){var i=t.fromJson(n.newValue);if(i.id===p)return;v.interrupt(!0)}},c.addEventListener?c.addEventListener("storage",y,!1):c.attachEvent("onstorage",y),v}]});t.module("ngIdle.countdown",["ngIdle.idle"]).directive("idleCountdown",["Idle",function(n){return{restrict:"A",scope:{value:"=idleCountdown"},link:function(t){t.value=n.getTimeout();t.$on("IdleWarn",function(n,i){t.$evalAsync(function(){t.value=i})});t.$on("IdleTimeout",function(){t.$evalAsync(function(){t.value=0})})}}}]);t.module("ngIdle.title",[]).provider("Title",function(){function r(n,t,i){return new Array(t-String(n).length+1).join(i||"0")+n}var n={enabled:!0},i=this.enabled=function(t){n.enabled=t===!0};this.$get=["$document","$interpolate",function(u,f){var e={original:null,idle:"{{minutes}}:{{seconds}} until your session times out!",timedout:"Your session has expired."};return{setEnabled:i,isEnabled:function(){return n.enabled},original:function(n){if(t.isUndefined(n))return e.original;e.original=n},store:function(n){(n||!e.original)&&(e.original=this.value())},value:function(n){if(t.isUndefined(n))return u[0].title;u[0].title=n},idleMessage:function(n){if(t.isUndefined(n))return e.idle;e.idle=n},timedOutMessage:function(n){if(t.isUndefined(n))return e.timedout;e.timedout=n},setAsIdle:function(n){this.store();var t={totalSeconds:n};t.minutes=Math.floor(n/60);t.seconds=r(n-t.minutes*60,2);this.value(f(this.idleMessage())(t))},setAsTimedOut:function(){this.store();this.value(this.timedOutMessage())},restore:function(){this.original()&&this.value(this.original())}}}]}).directive("title",["Title",function(n){return{restrict:"E",link:function(t,i,r){n.isEnabled()&&!r.idleDisabled&&(n.store(!0),t.$on("IdleStart",function(){n.original(i[0].innerText)}),t.$on("IdleWarn",function(t,i){n.setAsIdle(i)}),t.$on("IdleEnd",function(){n.restore()}),t.$on("IdleTimeout",function(){n.setAsTimedOut()}))}}}]);t.module("ngIdle.localStorage",[]).service("IdleStorageAccessor",["$window",function(n){return{get:function(){return n.localStorage}}}]).service("IdleLocalStorage",["IdleStorageAccessor",function(n){function u(){var n={};this.setItem=function(t,i){n[t]=i};this.getItem=function(t){return typeof n[t]!="undefined"?n[t]:null};this.removeItem=function(t){n[t]=i}}function f(){try{var t=n.get();return t.setItem("ngIdleStorage",""),t.removeItem("ngIdleStorage"),t}catch(i){return new u}}var r=f();return{set:function(n,i){r.setItem("ngIdle."+n,t.toJson(i))},get:function(n){return t.fromJson(r.getItem("ngIdle."+n))},remove:function(n){r.removeItem("ngIdle."+n)},_wrapped:function(){return r}}}])}(window,window.angular),function(){var n=angular.module("angularFileUpload",[]);n.service("$upload",["$http","$rootScope","$timeout",function(n,t,i){function r(t){t.method=t.method||"POST";t.headers=t.headers||{};t.transformRequest=t.transformRequest||function(t){return window.ArrayBuffer&&t instanceof ArrayBuffer?t:n.defaults.transformRequest[0](t)};window.XMLHttpRequest.__isShim&&(t.headers.__setXHR_=function(){return function(n){t.__XHR=n;n.upload.addEventListener("progress",function(n){t.progress&&i(function(){t.progress&&t.progress(n)})},!1);n.upload.addEventListener("load",function(n){n.lengthComputable&&i(function(){t.progress&&t.progress(n)})},!1)}});var r=n(t);return r.progress=function(n){return t.progress=n,r},r.abort=function(){return t.__XHR&&i(function(){t.__XHR.abort()}),r},r.then=function(n,i){return function(r,u,f){t.progress=f||t.progress;var e=i.apply(n,[r,u,f]);return e.abort=n.abort,e.progress=n.progress,e}}(r,r.then),r}this.upload=function(t){var f,o,u,s,e,h,i;if(t.headers=t.headers||{},t.headers["Content-Type"]=undefined,t.transformRequest=t.transformRequest||n.defaults.transformRequest,f=new FormData,t.data)for(o in t.data)if(u=t.data[o],t.formDataAppender)t.formDataAppender(f,o,u);else{if(typeof t.transformRequest=="function")u=t.transformRequest(u);else for(i=0;i<t.transformRequest.length;i++)s=t.transformRequest[i],typeof s=="function"&&(u=s(u));f.append(o,u)}if(t.transformRequest=angular.identity,e=t.fileFormDataName||"file",Object.prototype.toString.call(t.file)==="[object Array]")for(h=Object.prototype.toString.call(e)==="[object String]",i=0;i<t.file.length;i++)f.append(h?e+i:e[i],t.file[i],t.file[i].name);else f.append(e,t.file,t.file.name);return t.data=f,r(t)};this.http=function(n){return r(n)}}]);n.directive("ngFileSelect",["$parse","$http","$timeout",function(n,t,i){return function(t,r,u){var f=n(u.ngFileSelect);r.bind("change",function(n){var e=[],r,u;if(r=n.target.files,r!=null)for(u=0;u<r.length;u++)e.push(r.item(u));i(function(){f(t,{$files:e,$event:n})})});r.bind("click",function(){this.value=null})}}]);n.directive("ngFileDropAvailable",["$parse","$http","$timeout",function(n,t,i){return function(t,r,u){if("draggable"in document.createElement("span")){var f=n(u.ngFileDropAvailable);i(function(){f(t)})}}}]);n.directive("ngFileDrop",["$parse","$http","$timeout",function(n,t,i){return function(t,r,u){if("draggable"in document.createElement("span")){var f=null,e=n(u.ngFileDrop);r[0].addEventListener("dragover",function(n){i.cancel(f);n.stopPropagation();n.preventDefault();r.addClass(u.ngFileDragOverClass||"dragover")},!1);r[0].addEventListener("dragleave",function(){f=i(function(){r.removeClass(u.ngFileDragOverClass||"dragover")})},!1);r[0].addEventListener("drop",function(n){n.stopPropagation();n.preventDefault();r.removeClass(u.ngFileDragOverClass||"dragover");var s=[],o=n.dataTransfer.files,f;if(o!=null)for(f=0;f<o.length;f++)s.push(o.item(f));i(function(){e(t,{$files:s,$event:n})})},!1)}}}])}();angular.module("ngLocale",[],["$provide",function(n){var t={ZERO:"zero",ONE:"one",TWO:"two",FEW:"few",MANY:"many",OTHER:"other"};n.value("$locale",{DATETIME_FORMATS:{AMPMS:["π.μ.","μ.μ."],DAY:["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],ERANAMES:["προ Χριστού","μετά Χριστόν"],ERAS:["π.Χ.","μ.Χ."],FIRSTDAYOFWEEK:0,MONTH:["Ιανουαρίου","Φεβρουαρίου","Μαρτίου","Απριλίου","Μαΐου","Ιουνίου","Ιουλίου","Αυγούστου","Σεπτεμβρίου","Οκτωβρίου","Νοεμβρίου","Δεκεμβρίου"],SHORTDAY:["Κυρ","Δευ","Τρί","Τετ","Πέμ","Παρ","Σάβ"],SHORTMONTH:["Ιαν","Φεβ","Μαρ","Απρ","Μαΐ","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ"],STANDALONEMONTH:["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος"],WEEKENDRANGE:[5,6],fullDate:"EEEE, d MMMM y",longDate:"d MMMM y",medium:"d MMM y h:mm:ss a",mediumDate:"d MMM y",mediumTime:"h:mm:ss a",short:"d/M/yy h:mm a",shortDate:"d/M/yy",shortTime:"h:mm a"},NUMBER_FORMATS:{CURRENCY_SYM:"€",DECIMAL_SEP:",",GROUP_SEP:".",PATTERNS:[{gSize:3,lgSize:3,maxFrac:3,minFrac:0,minInt:1,negPre:"-",negSuf:"",posPre:"",posSuf:""},{gSize:3,lgSize:3,maxFrac:2,minFrac:2,minInt:1,negPre:"-",negSuf:" ¤",posPre:"",posSuf:" ¤"}]},id:"el",localeID:"el",pluralCat:function(n){return n==1?t.ONE:t.OTHER}})}]);!function(n,t,i){"use strict";function r(n,t){return("string"==typeof t||t instanceof String)&&(t=new RegExp(t)),t instanceof RegExp?t.test(n):t&&Array.isArray(t.and)?t.and.every(function(t){return r(n,t)}):t&&Array.isArray(t.or)?t.or.some(function(t){return r(n,t)}):t&&t.not?!r(n,t.not):!1}function u(n,t){return("string"==typeof t||t instanceof String)&&(t=new RegExp(t)),t instanceof RegExp?t.exec(n):t&&Array.isArray(t)?t.reduce(function(t,i){return t?t:u(n,i)},null):null}i&&i.module("reTree",[]).factory("reTree",[function(){return{test:r,exec:u}}]);t&&(t.reTree={test:r,exec:u});n&&(n.exports={test:r,exec:u})}("undefined"==typeof module?null:module,"undefined"==typeof window?null:window,"undefined"==typeof angular?null:angular);!function(n){"use strict";n.module("ng.deviceDetector",["reTree"]).constant("BROWSERS",{CHROME:"chrome",FIREFOX:"firefox",SAFARI:"safari",OPERA:"opera",IE:"ie",MS_EDGE:"ms-edge",PS4:"ps4",VITA:"vita",UNKNOWN:"unknown"}).constant("DEVICES",{ANDROID:"android",I_PAD:"ipad",IPHONE:"iphone",I_POD:"ipod",BLACKBERRY:"blackberry",FIREFOX_OS:"firefox-os",CHROME_BOOK:"chrome-book",WINDOWS_PHONE:"windows-phone",PS4:"ps4",VITA:"vita",UNKNOWN:"unknown"}).constant("OS",{WINDOWS:"windows",MAC:"mac",IOS:"ios",ANDROID:"android",LINUX:"linux",UNIX:"unix",FIREFOX_OS:"firefox-os",CHROME_OS:"chrome-os",WINDOWS_PHONE:"windows-phone",PS4:"ps4",VITA:"vita",UNKNOWN:"unknown"}).constant("OS_VERSIONS",{WINDOWS_3_11:"windows-3-11",WINDOWS_95:"windows-95",WINDOWS_ME:"windows-me",WINDOWS_98:"windows-98",WINDOWS_CE:"windows-ce",WINDOWS_2000:"windows-2000",WINDOWS_XP:"windows-xp",WINDOWS_SERVER_2003:"windows-server-2003",WINDOWS_VISTA:"windows-vista",WINDOWS_7:"windows-7",WINDOWS_8_1:"windows-8-1",WINDOWS_8:"windows-8",WINDOWS_10:"windows-10",WINDOWS_PHONE_7_5:"windows-phone-7-5",WINDOWS_PHONE_10:"windows-phone-10",WINDOWS_NT_4_0:"windows-nt-4-0",UNKNOWN:"unknown"}).service("detectUtils",["deviceDetector","DEVICES","BROWSERS","OS",function(n,t,i,r){var u=n;this.isMobile=function(){return"unknown"!==u.device};this.isAndroid=function(){return u.device===t.ANDROID||u.OS===r.ANDROID};this.isIOS=function(){return u.os===r.IOS||u.device===t.I_POD||u.device===t.IPHONE}}]).factory("deviceDetector",["$window","DEVICES","BROWSERS","OS","OS_VERSIONS","reTree",function(n,t,i,r,u,f){var l={WINDOWS:{and:[{or:[/\bWindows|(Win\d\d)\b/,/\bWin 9x\b/]},{not:/\bWindows Phone\b/}]},MAC:{and:[/\bMac OS\b/,{not:/Windows Phone/}]},IOS:{and:[{or:[/\biPad\b/,/\biPhone\b/,/\biPod\b/]},{not:/Windows Phone/}]},ANDROID:{and:[/\bAndroid\b/,{not:/Windows Phone/}]},LINUX:/\bLinux\b/,UNIX:/\bUNIX\b/,FIREFOX_OS:{and:[/\bFirefox\b/,/Mobile\b/]},CHROME_OS:/\bCrOS\b/,WINDOWS_PHONE:{or:[/\bIEMobile\b/,/\bWindows Phone\b/]},PS4:/\bMozilla\/5.0 \(PlayStation 4\b/,VITA:/\bMozilla\/5.0 \(Play(S|s)tation Vita\b/},a={CHROME:{and:[{or:[/\bChrome\b/,/\bCriOS\b/]},{not:{or:[/\bOPR\b/,/\bEdge\b/]}}]},FIREFOX:/\bFirefox\b/,SAFARI:{and:[/^((?!CriOS).)*\Safari\b.*$/,{not:{or:[/\bOPR\b/,/\bEdge\b/,/Windows Phone/]}}]},OPERA:{or:[/Opera\b/,/\bOPR\b/]},IE:{or:[/\bMSIE\b/,/\bTrident\b/]},MS_EDGE:{or:[/\bEdge\b/]},PS4:/\bMozilla\/5.0 \(PlayStation 4\b/,VITA:/\bMozilla\/5.0 \(Play(S|s)tation Vita\b/},v={ANDROID:{and:[/\bAndroid\b/,{not:/Windows Phone/}]},I_PAD:/\biPad\b/,IPHONE:{and:[/\biPhone\b/,{not:/Windows Phone/}]},I_POD:/\biPod\b/,BLACKBERRY:/\bblackberry\b/,FIREFOX_OS:{and:[/\bFirefox\b/,/\bMobile\b/]},CHROME_BOOK:/\bCrOS\b/,WINDOWS_PHONE:{or:[/\bIEMobile\b/,/\bWindows Phone\b/]},PS4:/\bMozilla\/5.0 \(PlayStation 4\b/,VITA:/\bMozilla\/5.0 \(Play(S|s)tation Vita\b/},y={WINDOWS_3_11:/Win16/,WINDOWS_95:/(Windows 95|Win95|Windows_95)/,WINDOWS_ME:/(Win 9x 4.90|Windows ME)/,WINDOWS_98:/(Windows 98|Win98)/,WINDOWS_CE:/Windows CE/,WINDOWS_2000:/(Windows NT 5.0|Windows 2000)/,WINDOWS_XP:/(Windows NT 5.1|Windows XP)/,WINDOWS_SERVER_2003:/Windows NT 5.2/,WINDOWS_VISTA:/Windows NT 6.0/,WINDOWS_7:/(Windows 7|Windows NT 6.1)/,WINDOWS_8_1:/(Windows 8.1|Windows NT 6.3)/,WINDOWS_8:/(Windows 8|Windows NT 6.2)/,WINDOWS_10:/(Windows NT 10.0)/,WINDOWS_PHONE_7_5:/(Windows Phone OS 7.5)/,WINDOWS_PHONE_10:/(Windows Phone 10)/,WINDOWS_NT_4_0:{and:[/(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/,{not:/Windows NT 10.0/}]}},h={CHROME:/\bChrome\/([\d\.]+)\b/,FIREFOX:/\bFirefox\/([\d\.]+)\b/,SAFARI:/\bVersion\/([\d\.]+)\b/,OPERA:[/\bVersion\/([\d\.]+)\b/,/\bOPR\/([\d\.]+)\b/],IE:[/\bMSIE ([\d\.]+\w?)\b/,/\brv:([\d\.]+\w?)\b/],MS_EDGE:/\bEdge\/([\d\.]+)\b/},p=Object.keys(h).reduce(function(n,t){return n[i[t]]=h[t],n},{}),o=n.navigator.userAgent,e={raw:{userAgent:o,os:{},browser:{},device:{}}},c,s;return(e.raw.os=Object.keys(r).reduce(function(n,t){return n[r[t]]=f.test(o,l[t]),n},{}),e.raw.browser=Object.keys(i).reduce(function(n,t){return n[i[t]]=f.test(o,a[t]),n},{}),e.raw.device=Object.keys(t).reduce(function(n,i){return n[t[i]]=f.test(o,v[i]),n},{}),e.raw.os_version=Object.keys(u).reduce(function(n,t){return n[u[t]]=f.test(o,y[t]),n},{}),e.os=[r.WINDOWS,r.IOS,r.MAC,r.ANDROID,r.LINUX,r.UNIX,r.FIREFOX_OS,r.CHROME_OS,r.WINDOWS_PHONE,r.PS4,r.VITA].reduce(function(n,t){return n===r.UNKNOWN&&e.raw.os[t]?t:n},r.UNKNOWN),e.browser=[i.CHROME,i.FIREFOX,i.SAFARI,i.OPERA,i.IE,i.MS_EDGE,i.PS4,i.VITA].reduce(function(n,t){return n===i.UNKNOWN&&e.raw.browser[t]?t:n},i.UNKNOWN),e.device=[t.ANDROID,t.I_PAD,t.IPHONE,t.I_POD,t.BLACKBERRY,t.FIREFOX_OS,t.CHROME_BOOK,t.WINDOWS_PHONE,t.PS4,t.VITA].reduce(function(n,i){return n===t.UNKNOWN&&e.raw.device[i]?i:n},t.UNKNOWN),e.os_version=[u.WINDOWS_3_11,u.WINDOWS_95,u.WINDOWS_ME,u.WINDOWS_98,u.WINDOWS_CE,u.WINDOWS_2000,u.WINDOWS_XP,u.WINDOWS_SERVER_2003,u.WINDOWS_VISTA,u.WINDOWS_7,u.WINDOWS_8_1,u.WINDOWS_8,u.WINDOWS_10,u.WINDOWS_PHONE_7_5,u.WINDOWS_PHONE_10,u.WINDOWS_NT_4_0].reduce(function(n,t){return n===u.UNKNOWN&&e.raw.os_version[t]?t:n},u.UNKNOWN),e.browser_version="0",e.browser!==i.UNKNOWN)&&(c=p[e.browser],s=f.exec(o,c),s&&(e.browser_version=s[1])),e.isMobile=function(){return[t.ANDROID,t.I_PAD,t.IPHONE,t.I_POD,t.BLACKBERRY,t.FIREFOX_OS,t.CHROME_BOOK,t.WINDOWS_PHONE,t.VITA].some(function(n){return e.device==n})},e.isTablet=function(){return[t.I_PAD,t.FIREFOX_OS,t.CHROME_BOOK].some(function(n){return e.device==n})},e.isDesktop=function(){return[t.PS4,t.UNKNOWN].some(function(n){return e.device==n})},e}]).directive("deviceDetector",["deviceDetector",function(n){return{restrict:"A",link:function(t,i){i.addClass("os-"+n.os);i.addClass("browser-"+n.browser);i.addClass("device-"+n.device)}}}])}(angular);!function(){"use strict";angular.module("as.sortable",[]).constant("sortableConfig",{itemClass:"as-sortable-item",handleClass:"as-sortable-item-handle",placeHolderClass:"as-sortable-placeholder",dragClass:"as-sortable-drag",hiddenClass:"as-sortable-hidden",dragging:"as-sortable-dragging"})}(),function(){"use strict";var n=angular.module("as.sortable");n.factory("$helper",["$document","$window",function(n,t){return{height:function(n){return n[0].getBoundingClientRect().height},width:function(n){return n[0].getBoundingClientRect().width},offset:function(i,r){var u=i[0].getBoundingClientRect();return r||(r=n[0].documentElement),{width:u.width||i.prop("offsetWidth"),height:u.height||i.prop("offsetHeight"),top:u.top+(t.pageYOffset||r.scrollTop-r.offsetTop),left:u.left+(t.pageXOffset||r.scrollLeft-r.offsetLeft)}},eventObj:function(n){var t=n;return void 0!==n.targetTouches?t=n.targetTouches.item(0):void 0!==n.originalEvent&&void 0!==n.originalEvent.targetTouches&&(t=n.originalEvent.targetTouches.item(0)),t},isTouchInvalid:function(n){var t=!1;return void 0!==n.touches&&n.touches.length>1?t=!0:void 0!==n.originalEvent&&void 0!==n.originalEvent.touches&&n.originalEvent.touches.length>1&&(t=!0),t},positionStarted:function(n,t,i){var r={};return r.offsetX=n.pageX-this.offset(t,i).left,r.offsetY=n.pageY-this.offset(t,i).top,r.startX=r.lastX=n.pageX,r.startY=r.lastY=n.pageY,r.nowX=r.nowY=r.distX=r.distY=r.dirAx=0,r.dirX=r.dirY=r.lastDirX=r.lastDirY=r.distAxX=r.distAxY=0,r},calculatePosition:function(n,t){n.lastX=n.nowX;n.lastY=n.nowY;n.nowX=t.pageX;n.nowY=t.pageY;n.distX=n.nowX-n.lastX;n.distY=n.nowY-n.lastY;n.lastDirX=n.dirX;n.lastDirY=n.dirY;n.dirX=0===n.distX?0:n.distX>0?1:-1;n.dirY=0===n.distY?0:n.distY>0?1:-1;var i=Math.abs(n.distX)>Math.abs(n.distY)?1:0;n.dirAx!==i?(n.distAxX=0,n.distAxY=0):(n.distAxX+=Math.abs(n.distX),0!==n.dirX&&n.dirX!==n.lastDirX&&(n.distAxX=0),n.distAxY+=Math.abs(n.distY),0!==n.dirY&&n.dirY!==n.lastDirY&&(n.distAxY=0));n.dirAx=i},movePosition:function(n,t,i,r,u,f){var e,o="relative"===u;t.x=n.pageX-i.offsetX;t.y=n.pageY-i.offsetY;r&&(e=this.offset(r,f),o&&(t.x-=e.left,t.y-=e.top,e.left=0,e.top=0),t.x<e.left?t.x=e.left:t.x>=e.width+e.left-this.offset(t).width&&(t.x=e.width+e.left-this.offset(t).width),t.y<e.top?t.y=e.top:t.y>=e.height+e.top-this.offset(t).height&&(t.y=e.height+e.top-this.offset(t).height));t.css({left:t.x+"px",top:t.y+"px"});this.calculatePosition(i,n)},dragItem:function(n){return{index:n.index(),parent:n.sortableScope,source:n,targetElement:null,targetElementOffset:null,sourceInfo:{index:n.index(),itemScope:n.itemScope,sortableScope:n.sortableScope},canMove:function(n,t,i){return this.targetElement!==t?(this.targetElement=t,this.targetElementOffset=i,!0):n.dirX*(i.left-this.targetElementOffset.left)>0||n.dirY*(i.top-this.targetElementOffset.top)>0?(this.targetElementOffset=i,!0):!1},moveTo:function(n,t){this.parent=n;this.isSameParent()&&this.source.index()<t&&!this.sourceInfo.sortableScope.cloning&&(t-=1);this.index=t},isSameParent:function(){return this.parent.element===this.sourceInfo.sortableScope.element},isOrderChanged:function(){return this.index!==this.sourceInfo.index},eventArgs:function(){return{source:this.sourceInfo,dest:{index:this.index,sortableScope:this.parent}}},apply:function(){this.sourceInfo.sortableScope.cloning?this.parent.options.clone||this.parent.insertItem(this.index,angular.copy(this.source.modelValue)):(this.sourceInfo.sortableScope.removeItem(this.sourceInfo.index),(this.parent.options.allowDuplicates||this.parent.modelValue.indexOf(this.source.modelValue)<0)&&this.parent.insertItem(this.index,this.source.modelValue))}}},noDrag:function(n){return void 0!==n.attr("no-drag")||void 0!==n.attr("data-no-drag")},findAncestor:function(n,t){n=n[0];for(var i=Element.matches||Element.prototype.mozMatchesSelector||Element.prototype.msMatchesSelector||Element.prototype.oMatchesSelector||Element.prototype.webkitMatchesSelector;(n=n.parentElement)&&!i.call(n,t););return n?angular.element(n):angular.element(document.body)}}}])}(),function(){"use strict";var n=angular.module("as.sortable");n.controller("as.sortable.sortableController",["$scope",function(n){this.scope=n;n.modelValue=null;n.callbacks=null;n.type="sortable";n.options={longTouch:!1};n.isDisabled=!1;n.insertItem=function(t,i){n.options.allowDuplicates?n.modelValue.splice(t,0,angular.copy(i)):n.modelValue.splice(t,0,i)};n.removeItem=function(t){var i=null;return t>-1&&(i=n.modelValue.splice(t,1)[0]),i};n.isEmpty=function(){return n.modelValue&&0===n.modelValue.length};n.accept=function(t,i,r){return n.callbacks.accept(t,i,r)}}]);n.directive("asSortable",function(){return{require:"ngModel",restrict:"A",scope:!0,controller:"as.sortable.sortableController",link:function(n,t,i,r){var f,u;f=r;f&&(f.$render=function(){n.modelValue=f.$modelValue},n.element=t,t.data("_scope",n),u={accept:null,orderChanged:null,itemMoved:null,dragStart:null,dragMove:null,dragCancel:null,dragEnd:null},u.accept=function(){return!0},u.orderChanged=function(){},u.itemMoved=function(){},u.dragStart=function(){},u.dragMove=angular.noop,u.dragCancel=function(){},u.dragEnd=function(){},n.$watch(i.asSortable,function(t){angular.forEach(t,function(t,i){u[i]?"function"==typeof t&&(u[i]=t):n.options[i]=t});n.callbacks=u},!0),angular.isDefined(i.isDisabled)&&n.$watch(i.isDisabled,function(t){angular.isUndefined(t)||(n.isDisabled=t)},!0))}}})}(),function(){"use strict";function n(t,i){return i&&"HTML"!==i.nodeName?i.parentNode===t?!0:n(t,i.parentNode):!1}var t=angular.module("as.sortable");t.controller("as.sortable.sortableItemHandleController",["$scope",function(n){this.scope=n;n.itemScope=null;n.type="handle"}]);t.directive("asSortableItemHandle",["sortableConfig","$helper","$window","$document","$timeout",function(t,i,r,u,f){return{require:"^asSortableItem",scope:!0,restrict:"A",controller:"as.sortable.sortableItemHandleController",link:function(e,o,s,h){function at(n,t){"table-row"!==a.css("display")&&a.css("display","block");t.sortableScope.options.clone||(n[0].parentNode.insertBefore(a[0],n[0]),l.moveTo(t.sortableScope,t.index()))}function ti(n,t){"table-row"!==a.css("display")&&a.css("display","block");t.sortableScope.options.clone||(n.after(a),l.moveTo(t.sortableScope,t.index()+1))}function vt(n){for(var t;!t&&n.length;)t=n.data("_scope"),t||(n=n.parent());return t}function yt(){e.itemScope.sortableScope.cloning||tt.replaceWith(e.itemScope.element);a.remove();c.remove();c=null;p=!1;v.css("cursor","");v.removeClass("as-sortable-un-selectable")}var c,a,tt,w,l,v,ut,y,b,pt,k,d,it,wt,ft,rt,et,bt,ot,g,kt,st,nt,dt,p,gt,ni,ht,ct=!1,lt=!1;g="ontouchstart"in r;kt=/iPad|iPhone|iPod/.test(r.navigator.userAgent)&&!r.MSStream;t.handleClass&&o.addClass(t.handleClass);e.itemScope=h.scope;o.data("_scope",e);e.$watchGroup(["sortableScope.isDisabled","sortableScope.options.longTouch"],function(n){ct!==n[0]?(ct=n[0],ct?et():rt()):lt!==n[1]?(lt=n[1],et(),rt()):rt()});e.$on("$destroy",function(){angular.element(u[0].body).unbind("keydown",ht)});gt=function(n){return"function"==typeof e.sortableScope.options.placeholder?angular.element(e.sortableScope.options.placeholder(n)):"string"==typeof e.sortableScope.options.placeholder?angular.element(e.sortableScope.options.placeholder):angular.element(u[0].createElement(n.element.prop("tagName")))};y=function(n){var r,t=function(){angular.element(u).unbind("mousemove",f);angular.element(u).unbind("touchmove",f);o.unbind("mouseup",t);o.unbind("touchend",t);o.unbind("touchcancel",t)},f=function(u){u.preventDefault();var f=i.eventObj(u);r||(r={clientX:f.clientX,clientY:f.clientY});Math.abs(f.clientX-r.clientX)+Math.abs(f.clientY-r.clientY)>10&&(t(),pt(n))};angular.element(u).bind("mousemove",f);angular.element(u).bind("touchmove",f);o.bind("mouseup",t);o.bind("touchend",t);o.bind("touchcancel",t);n.stopPropagation()};pt=function(n){var r,f;(g||2!==n.button&&3!==n.which)&&(g&&i.isTouchInvalid(n)||!p&&wt(n)&&(p=!0,n.preventDefault(),r=i.eventObj(n),e.sortableScope=e.sortableScope||e.itemScope.sortableScope,e.callbacks=e.callbacks||e.itemScope.callbacks,e.itemScope.sortableScope.cloning=e.itemScope.sortableScope.options.clone||e.itemScope.sortableScope.options.ctrlClone&&n.ctrlKey?!0:!1,b=angular.element(u[0].querySelector(e.sortableScope.options.scrollableContainer)).length>0?u[0].querySelector(e.sortableScope.options.scrollableContainer):u[0].documentElement,v=e.sortableScope.options.containment?i.findAncestor(o,e.sortableScope.options.containment):angular.element(u[0].body),v.css("cursor","move"),v.css("cursor","-webkit-grabbing"),v.css("cursor","-moz-grabbing"),v.addClass("as-sortable-un-selectable"),ut=e.sortableScope.options.containerPositioning||"absolute",l=i.dragItem(e),f=e.itemScope.element.prop("tagName"),c=angular.element(u[0].createElement(e.sortableScope.element.prop("tagName"))).addClass(e.sortableScope.element.attr("class")).addClass(t.dragClass),c.css("width",i.width(e.itemScope.element)+"px"),c.css("height",i.height(e.itemScope.element)+"px"),a=gt(e.itemScope).addClass(t.placeHolderClass).addClass(e.sortableScope.options.additionalPlaceholderClass),a.css("width",i.width(e.itemScope.element)+"px"),a.css("height",i.height(e.itemScope.element)+"px"),tt=angular.element(u[0].createElement(f)),t.hiddenClass&&tt.addClass(t.hiddenClass),w=i.positionStarted(r,e.itemScope.element,b),e.itemScope.sortableScope.options.clone||e.itemScope.element.after(a),e.itemScope.sortableScope.cloning?c.append(e.itemScope.element.clone()):(e.itemScope.element.after(tt),c.append(e.itemScope.element)),v.append(c),i.movePosition(r,c,w,v,ut,b),e.sortableScope.$apply(function(){e.callbacks.dragStart(l.eventArgs())}),bt()))};wt=function(n){var t,u,r;for(t=angular.element(n.target),u=vt(t),r=u&&"handle"===u.type;r&&t[0]!==o[0];)i.noDrag(t)&&(r=!1),t=t.parent();return r};k=function(f){var h,k,d,o,s,nt,y;if((!g||!i.isTouchInvalid(f))&&p&&c){if(f.preventDefault(),h=i.eventObj(f),e.callbacks.dragMove!==angular.noop&&e.sortableScope.$apply(function(){e.callbacks.dragMove(w,v,h)}),k=h.pageX-u[0].documentElement.scrollLeft,d=h.pageY-(r.pageYOffset||u[0].documentElement.scrollTop),c.addClass(t.hiddenClass),s=angular.element(u[0].elementFromPoint(k,d)),c.removeClass(t.hiddenClass),i.movePosition(h,c,w,v,ut,b),c.addClass(t.dragging),o=vt(s),!o||!o.type)return;if("handle"===o.type&&(o=o.itemScope),"item"!==o.type&&"sortable"!==o.type)return;if("item"===o.type&&o.accept(e,o.sortableScope,o)){if(s=o.element,nt=i.offset(s,b),!l.canMove(w,s,nt))return;y=ft(o.sortableScope.element);0>y?at(s,o):y<=o.index()?ti(s,o):at(s,o)}"sortable"===o.type&&o.accept(e,o)&&!n(o.element[0],s[0])&&(ni(s)||o.options.clone||(s[0].appendChild(a[0]),l.moveTo(o,o.modelValue.length)))}};ft=function(n){var r,i;if(n.hasClass(t.placeHolderClass))return 0;for(r=n.children(),i=0;i<r.length;i+=1)if(angular.element(r[i]).hasClass(t.placeHolderClass))return i;return-1};ni=function(n){return ft(n)>=0};d=function(n){p&&(n.preventDefault(),c&&(yt(),l.apply(),e.sortableScope.$apply(function(){l.isSameParent()?l.isOrderChanged()&&e.callbacks.orderChanged(l.eventArgs()):e.callbacks.itemMoved(l.eventArgs())}),e.sortableScope.$apply(function(){e.callbacks.dragEnd(l.eventArgs())}),l=null),ot())};it=function(n){p&&(n.preventDefault(),c&&(yt(),e.sortableScope.$apply(function(){e.callbacks.dragCancel(l.eventArgs())}),l=null),ot())};rt=function(){g&&(lt?kt?(o.bind("touchstart",st),o.bind("touchend",nt),o.bind("touchmove",nt)):o.bind("contextmenu",y):o.bind("touchstart",y));o.bind("mousedown",y)};et=function(){o.unbind("touchstart",st);o.unbind("touchend",nt);o.unbind("touchmove",nt);o.unbind("contextmenu",y);o.unbind("touchstart",y);o.unbind("mousedown",y)};st=function(n){dt=f(function(){y(n)},500)};nt=function(){f.cancel(dt)};ht=function(n){27===n.keyCode&&it(n)};angular.element(u[0].body).bind("keydown",ht);bt=function(){angular.element(u).bind("touchmove",k);angular.element(u).bind("touchend",d);angular.element(u).bind("touchcancel",it);angular.element(u).bind("mousemove",k);angular.element(u).bind("mouseup",d)};ot=function(){angular.element(u).unbind("touchend",d);angular.element(u).unbind("touchcancel",it);angular.element(u).unbind("touchmove",k);angular.element(u).unbind("mouseup",d);angular.element(u).unbind("mousemove",k)}}}}])}(),function(){"use strict";var n=angular.module("as.sortable");n.controller("as.sortable.sortableItemController",["$scope",function(n){this.scope=n;n.sortableScope=null;n.modelValue=null;n.type="item";n.index=function(){return n.$index};n.itemData=function(){return n.sortableScope.modelValue[n.$index]}}]);n.directive("asSortableItem",["sortableConfig",function(n){return{require:["^asSortable","?ngModel"],restrict:"A",controller:"as.sortable.sortableItemController",link:function(t,i,r,u){var e=u[0],f=u[1];n.itemClass&&i.addClass(n.itemClass);t.sortableScope=e.scope;f?f.$render=function(){t.modelValue=f.$modelValue}:t.modelValue=e.scope.modelValue[t.$index];t.element=i;i.data("_scope",t)}}}])}();angular.module("jkuri.touchspin",[]).directive("ngTouchSpin",["$timeout","$interval",function(n,t){"use strict";var i=function(n,t){n.min=t.min||0;n.max=t.max||1e3;n.step=t.step||1;n.prefix=t.prefix||undefined;n.postfix=t.postfix||undefined;n.decimals=t.decimals||0;n.stepInterval=t.stepInterval||500;n.stepIntervalDelay=t.stepIntervalDelay||500;n.initval=t.initval||"0";n.val=t.value||n.initval;n.spinid=t.id};return{restrict:"EA",require:"?ngModel",scope:!0,replace:!0,link:function(r,u,f,e){i(r,f);var c,o,s=r.val,h;e.$setViewValue(r.val);r.decrement=function(){s=r.val;var n=parseFloat(parseFloat(Number(r.val))-parseFloat(r.step)).toFixed(r.decimals);if(n<Number(r.min)){n=parseFloat(r.min).toFixed(r.decimals);r.val=n;e.$setViewValue(n);return}r.val=n;e.$setViewValue(n)};r.increment=function(){s=r.val;var n=parseFloat(parseFloat(Number(r.val))+parseFloat(r.step)).toFixed(r.decimals);if(n>Number(r.max)){n=parseFloat(r.min).toFixed(r.decimals);r.val=n;e.$setViewValue(n);return}r.val=n;e.$setViewValue(n)};r.startSpinUp=function(){r.checkValue();r.increment();h=Date.now();r.stopSpin();n(function(){o=t(function(){r.increment()},r.stepInterval)},r.stepIntervalDelay)};r.startSpinDown=function(){r.checkValue();r.decrement();h=Date.now();var i=n(function(){o=t(function(){r.decrement()},r.stepInterval)},r.stepIntervalDelay)};r.stopSpin=function(){Date.now()-h>r.stepIntervalDelay?(n.cancel(c),t.cancel(o)):n(function(){n.cancel(c);t.cancel(o)},r.stepIntervalDelay)};r.checkValue=function(){var n;r.val===""||r.val.match(/^([+-]?[1-9]\d*|0)$/)||(n=s!==""?parseFloat(s).toFixed(r.decimals):parseFloat(r.min).toFixed(r.decimals),r.val=n,e.$setViewValue(n))};e.$render=function(){r.val=e.$viewValue};u.bind("propertychange keyup change paste",function(){var n;if(r.val>Number(r.max)){n=parseFloat(r.max).toFixed(r.decimals);r.val=n;e.$setViewValue(n);return}if(r.val<Number(r.min)){n=parseFloat(r.min).toFixed(r.decimals);r.val=n;e.$setViewValue(n);return}e.$setViewValue(r.val)})},template:'<div class="input-group" style="z-index:0 !Important;">  <span class="input-group-btn" ng-show="!verticalButtons">    <button class="btn btn-warning" ng-mousedown="startSpinDown()" ng-mouseup="stopSpin()"><i class="fa fa-minus"><\/i><\/button>  <\/span>  <span class="input-group-addon" ng-show="prefix" ng-bind="prefix"><\/span>  <input type="text" id={{::spinid}} ng-model="val" class="form-control text-center" ng-blur="checkValue()">  <span class="input-group-addon" ng-show="postfix" ng-bind="postfix"><\/span>  <span class="input-group-btn" ng-show="!verticalButtons">    <button class="btn btn-success" ng-mousedown="startSpinUp()" ng-mouseup="stopSpin()"><i class="fa fa-plus"><\/i><\/button>  <\/span><\/div>'}}])