!function(a){"use strict";function b(a){return ko.isObservable(a)&&!(void 0===a.destroyAll)}function c(a,b){for(var c=0;c0&&a(d).multiselect("select",e),f.length>0&&a(d).multiselect("deselect",f)},null,"arrayChange"))},update:function(c,d,e){var f=e().options,g=a(c).data("multiselect"),h=ko.utils.unwrapObservable(d());b(f)&&f.subscribe(function(){a(c).multiselect("rebuild")}),g?g.updateOriginalOptions():a(c).multiselect(h)}}),d.prototype={defaults:{buttonText:function(b,c){if(0===b.length)return this.nonSelectedText+' ';if(b.length==a("option",a(c)).length)return this.allSelectedText+' ';if(b.length>this.numberDisplayed)return b.length+" "+this.nSelectedText+' ';var d="";return b.each(function(){var b=void 0!==a(this).attr("label")?a(this).attr("label"):a(this).html();d+=b+", "}),d.substr(0,d.length-2)+' '},buttonTitle:function(b){if(0===b.length)return this.nonSelectedText;var c="";return b.each(function(){c+=a(this).text()+", "}),c.substr(0,c.length-2)},label:function(b){return a(b).attr("label")||a(b).html()},onChange:function(){},onDropdownShow:function(){},onDropdownHide:function(){},onDropdownShown:function(){},onDropdownHidden:function(){},buttonClass:"btn btn-default",buttonWidth:"auto",buttonContainer:'
',dropRight:!1,selectedClass:"active",maxHeight:!1,checkboxName:!1,includeSelectAllOption:!1,includeSelectAllIfMoreThan:0,selectAllText:" Select all",selectAllValue:"multiselect-all",selectAllName:!1,enableFiltering:!1,enableCaseInsensitiveFiltering:!1,enableClickableOptGroups:!1,filterPlaceholder:"Search",filterBehavior:"text",includeFilterClearBtn:!0,preventInputChangeEvent:!1,nonSelectedText:"None selected",nSelectedText:"selected",allSelectedText:"All selected",numberDisplayed:3,disableIfEmpty:!1,templates:{button:'',ul:'',filter:'
  • ',filterClearBtn:'',li:'
  • ',divider:'
  • ',liGroup:'
  • '}},constructor:d,buildContainer:function(){this.$container=a(this.options.buttonContainer),this.$container.on("show.bs.dropdown",this.options.onDropdownShow),this.$container.on("hide.bs.dropdown",this.options.onDropdownHide),this.$container.on("shown.bs.dropdown",this.options.onDropdownShown),this.$container.on("hidden.bs.dropdown",this.options.onDropdownHidden)},buildButton:function(){this.$button=a(this.options.templates.button).addClass(this.options.buttonClass),this.$select.prop("disabled")?this.disable():this.enable(),this.options.buttonWidth&&"auto"!==this.options.buttonWidth&&(this.$button.css({width:this.options.buttonWidth}),this.$container.css({width:this.options.buttonWidth}));var b=this.$select.attr("tabindex");b&&this.$button.attr("tabindex",b),this.$container.prepend(this.$button)},buildDropdown:function(){this.$ul=a(this.options.templates.ul),this.options.dropRight&&this.$ul.addClass("pull-right"),this.options.maxHeight&&this.$ul.css({"max-height":this.options.maxHeight+"px","overflow-y":"auto","overflow-x":"hidden"}),this.$container.append(this.$ul)},buildDropdownOptions:function(){this.$select.children().each(a.proxy(function(b,c){var d=a(c),e=d.prop("tagName").toLowerCase();d.prop("value")!==this.options.selectAllValue&&("optgroup"===e?this.createOptgroup(c):"option"===e&&("divider"===d.data("role")?this.createDivider():this.createOptionValue(c)))},this)),a("li input",this.$ul).on("change",a.proxy(function(b){var c=a(b.target),d=c.prop("checked")||!1,e=c.val()===this.options.selectAllValue;this.options.selectedClass&&(d?c.closest("li").addClass(this.options.selectedClass):c.closest("li").removeClass(this.options.selectedClass));var f=c.val(),g=this.getOptionByValue(f),h=a("option",this.$select).not(g),i=a("input",this.$container).not(c);return e&&(d?this.selectAll():this.deselectAll()),e||(d?(g.prop("selected",!0),this.options.multiple?g.prop("selected",!0):(this.options.selectedClass&&a(i).closest("li").removeClass(this.options.selectedClass),a(i).prop("checked",!1),h.prop("selected",!1),this.$button.click()),"active"===this.options.selectedClass&&h.closest("a").css("outline","")):g.prop("selected",!1)),this.$select.change(),this.updateButtonText(),this.updateSelectAll(),this.options.onChange(g,d),this.options.preventInputChangeEvent?!1:void 0},this)),a("li a",this.$ul).on("touchstart click",function(b){b.stopPropagation();var c=a(b.target);try{if("Range"===document.getSelection().type){var d=a(this).find("input:first");d.prop("checked",!d.prop("checked")).trigger("change")}}catch(e){}if(b.shiftKey){var f=c.prop("checked")||!1;if(f){var g=c.closest("li").siblings('li[class="active"]:first'),h=c.closest("li").index(),i=g.index();h>i?c.closest("li").prevUntil(g).each(function(){a(this).find("input:first").prop("checked",!0).trigger("change")}):c.closest("li").nextUntil(g).each(function(){a(this).find("input:first").prop("checked",!0).trigger("change")})}}c.blur()}),this.$container.off("keydown.multiselect").on("keydown.multiselect",a.proxy(function(b){if(!a('input[type="text"]',this.$container).is(":focus"))if(9===b.keyCode&&this.$container.hasClass("open"))this.$button.click();else{var c=a(this.$container).find("li:not(.divider):not(.disabled) a").filter(":visible");if(!c.length)return;var d=c.index(c.filter(":focus"));38===b.keyCode&&d>0?d--:40===b.keyCode&&d").attr("type",f).addClass("ace");this.options.checkboxName&&i.attr("name",this.options.checkboxName),h.append(i),i.after('');var j=c.prop("selected")||!1;i.val(e),e===this.options.selectAllValue&&(g.addClass("multiselect-item multiselect-all"),i.parent().parent().addClass("multiselect-all")),h.append(" "+d),h.attr("title",c.attr("title")),this.$ul.append(g),c.is(":disabled")&&i.attr("disabled","disabled").prop("disabled",!0).closest("a").attr("tabindex","-1").closest("li").addClass("disabled"),i.prop("checked",j),j&&this.options.selectedClass&&i.closest("li").addClass(this.options.selectedClass)},createDivider:function(){var b=a(this.options.templates.divider);this.$ul.append(b)},createOptgroup:function(b){var c=a(b).prop("label"),d=a(this.options.templates.liGroup);a("label",d).text(c),this.options.enableClickableOptGroups&&d.addClass("multiselect-group-clickable"),this.$ul.append(d),a(b).is(":disabled")&&d.addClass("disabled"),a("option",b).each(a.proxy(function(a,b){this.createOptionValue(b)},this))},buildSelectAll:function(){"number"==typeof this.options.selectAllValue&&(this.options.selectAllValue=this.options.selectAllValue.toString());var b=this.hasSelectAll();if(!b&&this.options.includeSelectAllOption&&this.options.multiple&&a("option",this.$select).length>this.options.includeSelectAllIfMoreThan){this.options.includeSelectAllDivider&&this.$ul.prepend(a(this.options.templates.divider));var c=a(this.options.templates.li);a("label",c).addClass("checkbox"),a("label",c).append(this.options.selectAllName?'':'');var d=a("input",c);d.val(this.options.selectAllValue),c.addClass("multiselect-item multiselect-all"),d.parent().parent().addClass("multiselect-all"),a("label",c).append(" "+this.options.selectAllText),this.$ul.prepend(c),d.prop("checked",!1)}},buildFilter:function(){if(this.options.enableFiltering||this.options.enableCaseInsensitiveFiltering){var b=Math.max(this.options.enableFiltering,this.options.enableCaseInsensitiveFiltering);if(this.$select.find("option").length>=b){if(this.$filter=a(this.options.templates.filter),a("input",this.$filter).attr("placeholder",this.options.filterPlaceholder),this.options.includeFilterClearBtn){var c=a(this.options.templates.filterClearBtn);c.on("click",a.proxy(function(){clearTimeout(this.searchTimeout),this.$filter.find(".multiselect-search").val(""),a("li",this.$ul).show().removeClass("filter-hidden"),this.updateSelectAll()},this)),this.$filter.find(".input-group").append(c)}this.$ul.prepend(this.$filter),this.$filter.val(this.query).on("click",function(a){a.stopPropagation()}).on("input keydown",a.proxy(function(b){13===b.which&&b.preventDefault(),clearTimeout(this.searchTimeout),this.searchTimeout=this.asyncFunction(a.proxy(function(){if(this.query!==b.target.value){this.query=b.target.value;var c,d;a.each(a("li",this.$ul),a.proxy(function(b,e){var f=a("input",e).val(),g=a("label",e).text(),h="";if("text"===this.options.filterBehavior?h=g:"value"===this.options.filterBehavior?h=f:"both"===this.options.filterBehavior&&(h=g+"\n"+f),f!==this.options.selectAllValue&&g){var i=!1;this.options.enableCaseInsensitiveFiltering&&h.toLowerCase().indexOf(this.query.toLowerCase())>-1?i=!0:h.indexOf(this.query)>-1&&(i=!0),a(e).toggle(i).toggleClass("filter-hidden",!i),a(e).hasClass("multiselect-group")?(c=e,d=i):(i&&a(c).show().removeClass("filter-hidden"),!i&&d&&a(e).show().removeClass("filter-hidden"))}},this))}this.updateSelectAll()},this),300,this)},this))}}},destroy:function(){this.$container.remove(),this.$select.show(),this.$select.data("multiselect",null)},refresh:function(){a("option",this.$select).each(a.proxy(function(b,c){var d=a("li input",this.$ul).filter(function(){return a(this).val()===a(c).val()});a(c).is(":selected")?(d.prop("checked",!0),this.options.selectedClass&&d.closest("li").addClass(this.options.selectedClass)):(d.prop("checked",!1),this.options.selectedClass&&d.closest("li").removeClass(this.options.selectedClass)),a(c).is(":disabled")?d.attr("disabled","disabled").prop("disabled",!0).closest("li").addClass("disabled"):d.prop("disabled",!1).closest("li").removeClass("disabled")},this)),this.updateButtonText(),this.updateSelectAll()},select:function(b,c){a.isArray(b)||(b=[b]);for(var d=0;d").attr({label:g.label||"Group "+e}),c(g.children,function(b){h.append(a("