tiseza_oss_live/Content/plugins/bootstrap-multiselect/bootstrap-multiselect.min.js

12 lines
10 KiB
JavaScript
Raw Normal View History

2025-11-15 11:14:31 +00:00
/**
* bootstrap-multiselect.js 1.0.0
* https://github.com/davidstutz/bootstrap-multiselect
*
* Copyright 2012, 2013 David Stutz
*
* Dual licensed under the BSD-3-Clause and the Apache License, Version 2.0.
* See the README.
*/
!function(b){if(typeof ko!="undefined"&&ko.bindingHandlers&&!ko.bindingHandlers.multiselect){ko.bindingHandlers.multiselect={init:function(e,f,g,d,c){},update:function(f,g,h,e,c){var d=b(f).data("multiselect");if(!d){b(f).multiselect(ko.utils.unwrapObservable(g()))}else{if(h().options&&h().options().length!==d.originalOptions.length){d.updateOriginalOptions();b(f).multiselect("rebuild")}}}}}function a(c,d){this.options=this.getOptions(d);this.$select=b(c);this.originalOptions=this.$select.clone()[0].options;this.query="";this.searchTimeout=null;this.options.multiple=this.$select.attr("multiple")=="multiple";this.$container=b(this.options.buttonContainer).append('<button type="button" class="multiselect dropdown-toggle '+this.options.buttonClass+'" data-toggle="dropdown">'+this.options.buttonText(this.getSelected(),this.$select)+"</button>").append('<ul class="multiselect-container dropdown-menu'+(this.options.dropRight?" pull-right":"")+'"></ul>');if(this.options.buttonWidth){b("button",this.$container).css({width:this.options.buttonWidth})}var f=this.$select.attr("tabindex");if(f){b("button",this.$container).attr("tabindex",f)}if(this.options.maxHeight){b(".multiselect-container",this.$container).css({"max-height":this.options.maxHeight+"px","overflow-y":"auto","overflow-x":"hidden"})}if(this.options.enableFiltering||this.options.enableCaseInsensitiveFiltering){var e=Math.max(this.options.enableFiltering,this.options.enableCaseInsensitiveFiltering);if(this.$select.find("option").length>=e){this.buildFilter()}}this.buildSelectAll();this.buildDropdown();this.updateButtonText();this.$select.hide().after(this.$container)}a.prototype={defaults:{buttonText:function(d,c){if(d.length==0){return this.nonSelectedText+'<b class="caret"></b>'}else{if(d.length>3){return d.length+" "+this.nSelectedText+' <b class="caret"></b>'}else{var e="";d.each(function(){var f=(b(this).attr("label")!==undefined)?b(this).attr("label"):b(this).html();e+=f+", "});return e.substr(0,e.length-2)+' <b class="caret"></b>'}}},buttonTitle:function(d,c){var e="";d.each(function(){e+=b(this).text()+", "});return e.substr(0,e.length-2)},onChange:function(c,d){},buttonClass:"btn",dropRight:false,selectedClass:"active",buttonWidth:"auto",buttonContainer:'<div class="btn-group" />',maxHeight:false,includeSelectAllOption:false,selectAllText:" Select all",selectAllValue:"multiselect-all",enableFiltering:false,enableCaseInsensitiveFiltering:false,filterPlaceholder:"Search",filterBehavior:"text",preventInputChangeEvent:false,nonSelectedText:"None selected",nSelectedText:"selected"},constructor:a,createOptionValue:function(d){if(b(d).is(":selected")){b(d).attr("selected","selected").prop("selected",true)}var c=b(d).attr("label")||b(d).html();var h=b(d).val();var g=this.options.multiple?"checkbox":"radio";var i=b('<li><a href="javascript:void(0);"><label class="'+g+'"><input type="'+g+'" /></label></a></li>');var f=b(d).prop("selected")||false;var e=b("input",i);e.val(h);if(h==this.options.selectAllValue){e.parent().parent().addClass("multiselect-all")}b("label",i).append(" "+c);b(".multiselect-container",this.$container).append(i);if(b(d).is(":disabled")){e.attr("disabled","disabled").prop("disabled",true).parents("li").addClass("disabled")}e.prop("checked",f);if(f&&this.options.selectedClass){e.parents("li").addClass(this.options.selectedClass)}},toggleActiveState:function(c){if(this.$select.attr("disabled")==undefined){b("button.multiselect.dropdown-toggle",this.$container).removeClass("disabled")}else{b("button.multiselect.dropdown-toggle",this.$container).addClass("disabled")}},buildSelectAll:function(){var c=this.$select[0][0]?this.$select[0][0].value==this.options.selectAllValue:false;if(this.options.includeSelectAllOption&&this.options.multiple&&!c){this.$select.prepend('<option value="'+this.options.selectAllValue+'">'+this.options.selectAllText+"</option>")}},buildDropdown:function(){this.toggleActiveState();this.$select.children().each(b.proxy(function(d,e){var c=b(e).prop("tagName").toLowerCase();if(c=="optgroup"){var f=e;var h=b(f).prop("label");var g=b(