',link:function(b,d,c){b.selectedItems=[];b.backUp=[];b.varButtonLabel="";b.syncItems=function(f,g){index=b.inputModel.indexOf(f);b.inputModel[index][b.tickProperty]=!b.inputModel[index][b.tickProperty];if(c.selectionMode&&b.selectionMode.toUpperCase()==="SINGLE"){b.inputModel[index][b.tickProperty]=true;for(i=0;ie){b.more=true}else{b.more=false}angular.forEach(b.selectedItems,function(g,f){if(typeof g!=="undefined"){if(ctr0?", ":"")+b.writeLabel(g,"buttonLabel")}ctr++}});if(b.more===true){b.varButtonLabel+=", ... (Total: "+b.selectedItems.length+")"}}b.varButtonLabel=a.trustAsHtml(b.varButtonLabel+'')};b.itemIsDisabled=function(e){if(e[b.disableProperty]===true){return true}else{if(b.isDisabled===true){return true}else{return false}}};b.writeLabel=function(h,g){var f="";var e=b[g].split(" ");angular.forEach(e,function(j,k){if(typeof j!=="undefined"){angular.forEach(h,function(l,m){if(m==j){f+=" "+l}})}});return a.trustAsHtml(f)};b.toggleCheckboxes=function(j){if(j.target){if(j.target.tagName.toUpperCase()!=="BUTTON"&&j.target.className.indexOf("multiSelectButton")<0){if(c.selectionMode&&b.selectionMode.toUpperCase()==="SINGLE"){if(j.target.tagName.toUpperCase()==="INPUT"){j=b.findUpTag(j.target,"div","checkboxLayer");j=j.previousSibling}}else{j=b.findUpTag(j.target,"button","multiSelectButton")}}else{j=j.target}}b.labelFilter="";var g=-1;var h=document.querySelectorAll(".checkboxLayer");var f=document.querySelectorAll(".multiSelectButton");for(i=0;i-1){for(i=0;i-1){return g}}}return null};b.select=function(f){var e=[];switch(f.toUpperCase()){case"ALL":angular.forEach(b.inputModel,function(h,g){if(typeof h!=="undefined"&&h[b.disableProperty]!==true){h[b.tickProperty]=true}});break;case"NONE":angular.forEach(b.inputModel,function(h,g){if(typeof h!=="undefined"&&h[b.disableProperty]!==true){h[b.tickProperty]=false}});break;case"RESET":b.inputModel=angular.copy(b.backUp);break;default:}b.refreshSelectedItems()};validate=function(){if(!("inputModel" in c)){console.log("Multi-select error: input-model is not defined! (ID: "+b.directiveId+")")}if(!("buttonLabel" in c)){console.log("Multi-select error: button-label is not defined! (ID: "+b.directiveId+")")}if(!("itemLabel" in c)){console.log("Multi-select error: item-label is not defined! (ID: "+b.directiveId+")")}if(!("tickProperty" in c)){console.log("Multi-select error: tick-property is not defined! (ID: "+b.directiveId+")")}};validateProperties=function(f,h){var g=false;var e="";angular.forEach(f,function(j,k){if(typeof j!=="undefined"){var l=true;angular.forEach(h,function(m,n){if(typeof m!=="undefined"&&l){if(!(j in m)){g=true;l=false;missingLabel=j}}})}});if(g===true){console.log('Multi-select error: property "'+missingLabel+'" is not available in the input model. (Name: '+b.directiveId+")")}};validate();b.refreshSelectedItems();b.$watch("inputModel",function(e,f){if(b.inputModel!=="undefined"){validateProperties(b.itemLabel.split(" "),b.inputModel);validateProperties(new Array(b.tickProperty),b.inputModel)}b.backUp=angular.copy(b.inputModel);b.refreshSelectedItems()});b.$watch("isDisabled",function(e){b.isDisabled=e});angular.element(document).bind("click",function(g){var f=document.querySelectorAll(".checkboxLayer");if(g.target.className.indexOf("multiSelect")===-1){for(i=0;i