All Downloads are FREE. Search and download functionalities are using the official Maven repository.

static.org.tinygroup.multiselect.js.bootstrap-multiselect.tiny.min.js Maven / Gradle / Ivy

!function(b){if(typeof ko!=="undefined"&&ko.bindingHandlers&&!ko.bindingHandlers.multiselect){ko.bindingHandlers.multiselect={after:["options","value","selectedOptions","enable","disable"],init:function(h,l,k,n,i){var o=b(h);var d=ko.toJS(l());o.multiselect(d);if(k.has("options")){var p=k.get("options");if(ko.isObservable(p)){ko.computed({read:function(){p();setTimeout(function(){var q=o.data("multiselect");if(q){q.updateOriginalOptions()}o.multiselect("rebuild")},1)},disposeWhenNodeIsRemoved:h})}}if(k.has("value")){var m=k.get("value");if(ko.isObservable(m)){ko.computed({read:function(){m();setTimeout(function(){o.multiselect("refresh")},1)},disposeWhenNodeIsRemoved:h}).extend({rateLimit:100,notifyWhenChangesStop:true})}}if(k.has("selectedOptions")){var f=k.get("selectedOptions");if(ko.isObservable(f)){ko.computed({read:function(){f();setTimeout(function(){o.multiselect("refresh")},1)},disposeWhenNodeIsRemoved:h}).extend({rateLimit:100,notifyWhenChangesStop:true})}}var e=function(q){setTimeout(function(){if(q){o.multiselect("enable")}else{o.multiselect("disable")}})};if(k.has("enable")){var j=k.get("enable");if(ko.isObservable(j)){ko.computed({read:function(){e(j())},disposeWhenNodeIsRemoved:h}).extend({rateLimit:100,notifyWhenChangesStop:true})}else{e(j)}}if(k.has("disable")){var g=k.get("disable");if(ko.isObservable(g)){ko.computed({read:function(){e(!g())},disposeWhenNodeIsRemoved:h}).extend({rateLimit:100,notifyWhenChangesStop:true})}else{e(!g)}}ko.utils.domNodeDisposal.addDisposeCallback(h,function(){o.multiselect("destroy")})},update:function(h,i,j,g,e){var d=b(h);var f=ko.toJS(i());d.multiselect("setOptions",f);d.multiselect("rebuild")}}}function c(f,e){for(var d=0;d').after(this.$container);this.options.onInitialized(this.$select,this.$container)}a.prototype={defaults:{buttonText:function(f,d){if(this.disabledText.length>0&&(d.prop("disabled")||(f.length==0&&this.disableIfEmpty))){return this.disabledText}else{if(f.length===0){return this.nonSelectedText}else{if(this.allSelectedText&&f.length===b("option",b(d)).length&&b("option",b(d)).length!==1&&this.multiple){if(this.selectAllNumber){return this.allSelectedText+" ("+f.length+")"}else{return this.allSelectedText}}else{if(f.length>this.numberDisplayed){return f.length+" "+this.nSelectedText}else{var g="";var e=this.delimiterText;f.each(function(){var h=(b(this).attr("label")!==undefined)?b(this).attr("label"):b(this).text();g+=h+e});return g.substr(0,g.length-this.delimiterText.length)}}}}},buttonTitle:function(f,d){if(f.length===0){return this.nonSelectedText}else{var g="";var e=this.delimiterText;f.each(function(){var h=(b(this).attr("label")!==undefined)?b(this).attr("label"):b(this).text();g+=h+e});return g.substr(0,g.length-this.delimiterText.length)}},checkboxName:function(d){return false},optionLabel:function(d){return b(d).attr("label")||b(d).text()},optionClass:function(d){return b(d).attr("class")||""},onChange:function(d,e){},onDropdownShow:function(d){},onDropdownHide:function(d){},onDropdownShown:function(d){},onDropdownHidden:function(d){},onSelectAll:function(){},onDeselectAll:function(){},onInitialized:function(d,e){},onFiltering:function(d){},enableHTML:false,buttonClass:"btn btn-default",inheritClass:false,buttonWidth:"auto",buttonContainer:'
',dropRight:false,dropUp:false,selectedClass:"active",maxHeight:false,includeSelectAllOption:false,includeSelectAllIfMoreThan:0,selectAllText:"全选",selectAllValue:"multiselect-all",selectAllName:false,selectAllNumber:true,selectAllJustVisible:true,enableFiltering:false,enableCaseInsensitiveFiltering:false,enableFullValueFiltering:false,enableClickableOptGroups:false,enableCollapsibleOptGroups:false,filterPlaceholder:"查找信息...",filterBehavior:"text",includeFilterClearBtn:true,preventInputChangeEvent:false,nonSelectedText:"请选择",nSelectedText:"selected",allSelectedText:"全选",numberDisplayed:3,disableIfEmpty:false,disabledText:"",delimiterText:", ",templates:{button:'',ul:'',filter:'
  • ',filterClearBtn:"",li:'
  • ',divider:'
  • ',liGroup:'
  • '}},constructor:a,buildContainer:function(){this.$container=b(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=b(this.options.templates.button).addClass(this.options.buttonClass);if(this.$select.attr("class")&&this.options.inheritClass){this.$button.addClass(this.$select.attr("class"))}if(this.$select.prop("disabled")){this.disable()}else{this.enable()}if(this.options.buttonWidth&&this.options.buttonWidth!=="auto"){this.$button.css({width:"100%",overflow:"hidden","text-overflow":"ellipsis"});this.$container.css({width:this.options.buttonWidth})}var d=this.$select.attr("tabindex");if(d){this.$button.attr("tabindex",d)}this.$container.prepend(this.$button)},buildDropdown:function(){this.$ul=b(this.options.templates.ul);if(this.options.dropRight){this.$ul.addClass("pull-right")}if(this.options.maxHeight){this.$ul.css({"max-height":this.options.maxHeight+"px","overflow-y":"auto","overflow-x":"hidden"})}if(this.options.dropUp){var d=Math.min(this.options.maxHeight,b('option[data-role!="divider"]',this.$select).length*26+b('option[data-role="divider"]',this.$select).length*19+(this.options.includeSelectAllOption?26:0)+(this.options.enableFiltering||this.options.enableCaseInsensitiveFiltering?44:0));var e=d+34;this.$ul.css({"max-height":d+"px","overflow-y":"auto","overflow-x":"hidden","margin-top":"-"+e+"px"})}this.$container.append(this.$ul)},buildDropdownOptions:function(){this.$select.children().each(b.proxy(function(f,g){var e=b(g);var d=e.prop("tagName").toLowerCase();if(e.prop("value")===this.options.selectAllValue){return}if(d==="optgroup"){this.createOptgroup(g)}else{if(d==="option"){if(e.data("role")==="divider"){this.createDivider()}else{this.createOptionValue(g)}}}},this));b("li:not(.multiselect-group) input",this.$ul).on("change",b.proxy(function(h){var d=b(h.target);var g=d.prop("checked")||false;var e=d.val()===this.options.selectAllValue;if(this.options.selectedClass){if(g){d.closest("li").addClass(this.options.selectedClass)}else{d.closest("li").removeClass(this.options.selectedClass)}}var i=d.val();var j=this.getOptionByValue(i);var k=b("option",this.$select).not(j);var f=b("input",this.$container).not(d);if(e){if(g){this.selectAll(this.options.selectAllJustVisible,true)}else{this.deselectAll(this.options.selectAllJustVisible,true)}}else{if(g){j.prop("selected",true);if(this.options.multiple){j.prop("selected",true)}else{if(this.options.selectedClass){b(f).closest("li").removeClass(this.options.selectedClass)}b(f).prop("checked",false);k.prop("selected",false);this.$button.click()}if(this.options.selectedClass==="active"){k.closest("a").css("outline","")}}else{j.prop("selected",false)}this.options.onChange(j,g);this.updateSelectAll();if(this.options.enableClickableOptGroups&&this.options.multiple){this.updateOptGroups()}}this.$select.change();this.updateButtonText();if(this.options.preventInputChangeEvent){return false}},this));b("li a",this.$ul).on("mousedown",function(d){if(d.shiftKey){return false}});b("li a",this.$ul).on("touchstart click",b.proxy(function(e){e.stopPropagation();var g=b(e.target);if(e.shiftKey&&this.options.multiple){if(g.is("label")){e.preventDefault();g=g.find("input");g.prop("checked",!g.prop("checked"))}var p=g.prop("checked")||false;if(this.lastToggledInput!==null&&this.lastToggledInput!==g){var n=g.closest("li").index();var o=this.lastToggledInput.closest("li").index();if(n>o){var k=o;o=n;n=k}++o;var m=this.$ul.find("li").slice(n,o).find("input");m.prop("checked",p);if(this.options.selectedClass){m.closest("li").toggleClass(this.options.selectedClass,p)}for(var l=0,h=m.length;l0){d--}else{if(g.keyCode===40&&d a > label.checkbox",this.$ul).css("padding","3px 20px 3px 35px");b("li.multiselect-group > a > input",this.$ul).css("margin","4px 0px 5px -20px")}},createOptionValue:function(i){var n=b(i);if(n.is(":selected")){n.prop("selected",true)}var l=this.options.optionLabel(i);var g=this.options.optionClass(i);var m=n.val();var f=this.options.multiple?"checkbox":"radio";var j=b(this.options.templates.li);var k=b("label",j);k.addClass(f);j.addClass(g);if(this.options.enableHTML){k.html(" "+l)}else{k.text(" "+l)}var e=b("").attr("type",f);var d=this.options.checkboxName(n);if(d){e.attr("name",d)}k.prepend(e);var h=n.prop("selected")||false;e.val(m);if(m===this.options.selectAllValue){j.addClass("multiselect-item multiselect-all");e.parent().parent().addClass("multiselect-all")}k.attr("title",n.attr("title"));this.$ul.append(j);if(n.is(":disabled")){e.attr("disabled","disabled").prop("disabled",true).closest("a").attr("tabindex","-1").closest("li").addClass("disabled")}e.prop("checked",h);if(h&&this.options.selectedClass){e.closest("li").addClass(this.options.selectedClass)}},createDivider:function(e){var d=b(this.options.templates.divider);this.$ul.append(d)},createOptgroup:function(g){var d=b(g).attr("label");var f=b(g).attr("value");var h=b('
  • ');var e=this.options.optionClass(g);h.addClass(e);if(this.options.enableHTML){b("label b",h).html(" "+d)}else{b("label b",h).text(" "+d)}if(this.options.enableCollapsibleOptGroups&&this.options.multiple){b("a",h).append('')}if(this.options.enableClickableOptGroups&&this.options.multiple){b("a label",h).prepend('')}if(b(g).is(":disabled")){h.addClass("disabled")}this.$ul.append(h);b("option",g).each(b.proxy(function(i,j){this.createOptionValue(j)},this))},buildSelectAll:function(){if(typeof this.options.selectAllValue==="number"){this.options.selectAllValue=this.options.selectAllValue.toString()}var d=this.hasSelectAll();if(!d&&this.options.includeSelectAllOption&&this.options.multiple&&b("option",this.$select).length>this.options.includeSelectAllIfMoreThan){if(this.options.includeSelectAllDivider){this.$ul.prepend(b(this.options.templates.divider))}var f=b(this.options.templates.li);b("label",f).addClass("checkbox");if(this.options.enableHTML){b("label",f).html(" "+this.options.selectAllText)}else{b("label",f).text(" "+this.options.selectAllText)}if(this.options.selectAllName){b("label",f).prepend('')}else{b("label",f).prepend('')}var e=b("input",f);e.val(this.options.selectAllValue);f.addClass("multiselect-item multiselect-all");e.parent().parent().addClass("multiselect-all");this.$ul.prepend(f);e.prop("checked",false)}},buildFilter:function(){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.$filter=b(this.options.templates.filter);b("input",this.$filter).attr("placeholder",this.options.filterPlaceholder);if(this.options.includeFilterClearBtn){var d=b(this.options.templates.filterClearBtn);d.on("click",b.proxy(function(f){clearTimeout(this.searchTimeout);this.$filter.find(".multiselect-search").val("");b("li",this.$ul).show().removeClass("multiselect-filter-hidden");this.updateSelectAll();if(this.options.enableClickableOptGroups&&this.options.multiple){this.updateOptGroups()}},this));this.$filter.find(".input-group").append(d)}this.$ul.prepend(this.$filter);this.$filter.val(this.query).on("click",function(f){f.stopPropagation()}).on("input keydown",b.proxy(function(f){if(f.which===13){f.preventDefault()}clearTimeout(this.searchTimeout);this.searchTimeout=this.asyncFunction(b.proxy(function(){if(this.query!==f.target.value){this.query=f.target.value;var g,h;b.each(b("li",this.$ul),b.proxy(function(k,l){var n=b("input",l).length>0?b("input",l).val():"";var o=b("label",l).text();var i="";if((this.options.filterBehavior==="text")){i=o}else{if((this.options.filterBehavior==="value")){i=n}else{if(this.options.filterBehavior==="both"){i=o+"\n"+n}}}if(n!==this.options.selectAllValue&&o){var m=false;if(this.options.enableCaseInsensitiveFiltering){i=i.toLowerCase();this.query=this.query.toLowerCase()}if(this.options.enableFullValueFiltering&&this.options.filterBehavior!=="both"){var j=i.trim().substring(0,this.query.length);if(this.query.indexOf(j)>-1){m=true}}else{if(i.indexOf(this.query)>-1){m=true}}b(l).toggle(m).toggleClass("multiselect-filter-hidden",!m);if(b(l).hasClass("multiselect-group")){g=l;h=m}else{if(m){b(g).show().removeClass("multiselect-filter-hidden")}if(!m&&h){b(l).show().removeClass("multiselect-filter-hidden")}}}},this))}this.updateSelectAll();if(this.options.enableClickableOptGroups&&this.options.multiple){this.updateOptGroups()}this.options.onFiltering(f.target)},this),300,this)},this))}}},destroy:function(){this.$container.remove();this.$select.show();this.$select.prop("disabled",this.options.wasDisabled);this.$select.data("multiselect",null)},refresh:function(){var d=b.map(b("li input",this.$ul),b);b("option",this.$select).each(b.proxy(function(f,h){var e=b(h);var j=e.val();var k;for(var g=d.length;0").attr({label:k.label||"Group "+d,disabled:!!k.disabled});c(k.children,function(m){var l={value:m.value,label:m.label||m.value,title:m.title,selected:!!m.selected,disabled:!!m.disabled};for(var n in m.attributes){l["data-"+n]=m.attributes[n]}h.append(b("




    © 2015 - 2025 Weber Informatics LLC | Privacy Policy