PageSourceSearch

https://www.gmt.cz/core/libraries/vitalex-bootstrap-multiselect/vi…ex.bootstrap.multiselect.js?time=1791277636

js gmt.cz collected 2026-10-06 09:07:38 UTC 4,416 bytes, 147 lines download raw bytes

1(function ($) {
2
3 	$.fn.vitalex_multiselect = function (options){
4
5		var settings = $.extend({
6			multiselect: false,
7			values: false,
8		}, options);
9
10
11		$(this).each(function(i,e){
12
13		var select = $(e);
14		var parent = $(e).parent();
15		var selected = $(e).find("option[selected]");
16		var opts = $(e).find("option");
17		var id = $(e).attr("id");
18
19		var main_div = $("<div id='vbm-"+id+"' class='vbm-main'></div>");
20		var wrapper = $("<div class='vbm-wrapper'></div>");
21
22		if(settings.multiselect){
23			var value = $(e).data("name");
24			select.prop("disabled", true);
25			$(e).removeClass("vitalex-multiselect");
26		}
27		else{
28			var value = (selected.length == 0) ? opts.eq(0).text() : selected.eq(0).text();
29			$(e).removeClass("vitalex-select");
30		}
31
32		var value_text = $("<div class='vbm-text'>"+value+"</div>");
33
34
35		var arrow = $("<div class='vbm-arrow-element'><div class='vmb-arrow'></div>");
36		wrapper.appendTo(main_div);
37		value_text.appendTo(wrapper);
38		arrow.appendTo(wrapper);
39		parent.append(main_div);
40		$(e).hide();
41
42		var list_main = $("<div class='vbm-list hidden'></div>");
43		main_div.append(list_main);
44
45		opts.each(function(i,e){
46			if(!settings.multiselect){
47				var active = ($(e).is(":selected")) ? "active" : "";
48				var option_div = $("<div data-id='"+id+"' data-value='"+$(e).attr("value")+"' class='vbm-option "+active+"'>"+$(e).text()+"</div>");
49				list_main.append(option_div);
50			}
51			else{
52				var active = ($(e).is(":selected")) ? "active" : "";
53				var checked = ($(e).is(":selected")) ? "checked" : "";
54				var ms = (settings.multiselect) ? "multiselect" : "";
55				var option_div = $("<div data-lock='"+$(e).data("lock")+"' class='custom-control custom-checkbox vbm-option "+active+" "+ms+"' data-id='"+id+"' data-value='"+$(e).attr("value")+"'></div>");
56				if(!settings.values){
57					var input = $("<input name='"+select.attr("name")+"["+$(e).attr("value")+"]' type='checkbox' "+checked+" class='custom-control-input vbm-option-input' id='vbm-option-"+i+"'>");
58				}
59				else{
60					var input = $("<input name='"+select.attr("name")+"["+$(e).attr("value")+"]' type='checkbox' "+checked+" class='custom-control-input vbm-option-input' id='vbm-option-"+i+"' value='"+$(e).attr("value")+"'>");
61				}
62				var label = $("<label class='custom-control-label' for='vbm-option-"+i+"'>"+$(e).text()+"</label>");
63				option_div.append(input);
64				option_div.append(label);
65				list_main.append(option_div);
66			}
67		});
68
69		wrapper.click(function(){
70			list_main.toggle();
71			var height = list_main.outerHeight();
72			var top = list_main.offset().top;
73			if(top>0){
74				var bottom = top+height;
75				if(bottom > window.innerHeight){
76					list_main.css("margin-top", "-"+(height+main_div.outerHeight())+"px")
77				}
78			}
79			else{
80				list_main.css("margin-top", "0px")
81			}
82		});
83
84		var locker = $("#vbm-"+id+" .vbm-option[data-lock=true]");
85		if(locker.length>0){
86			var input = locker.find("input");
87			if(input.is(":checked")){
88				$("#vbm-"+id+" .vbm-option").addClass("disabled");
89				locker.removeClass("disabled");
90				$("#vbm-"+id+" .vbm-option input").attr("disabled", true);
91				input.attr("disabled", false);
92			}
93		}
94
95		$("#vbm-"+id+" .vbm-option").click(function(){
96
97				if(!settings.multiselect){
98
99					var id = $(this).data("id");
100
101					$("#"+id+"").val($(this).data("value")).change();
102					$("#vbm-"+id+" .vbm-text").text($(this).text());
103					$("#vbm-"+id+" .vbm-option").removeClass("active");
104					$(this).parent().hide();
105					$(this).addClass("active");
106
107				}
108				else if(!$(this).hasClass("disabled")){
109					var id = $(this).data("id");
110					var input = $(this).find("input");
111
112					input.trigger("change");
113					//input.trigger("cl");
114
115					input.prop("checked", !input.prop("checked"));
116					if($(this).data("lock")==true){
117						if(input.is(":checked")){
118							$("#vbm-"+id+" .vbm-option").addClass("disabled");
119							$(this).removeClass("disabled");
120							$("#vbm-"+id+" .vbm-option input").attr("disabled", true);
121							input.attr("disabled", false);
122						}
123						else{
124							$("#vbm-"+id+" .vbm-option").removeClass("disabled");
125							$("#vbm-"+id+" .vbm-option input").attr("disabled", false);
126						}
127					}
128
129					$(this).toggleClass("active");
130
131				}
132
133			});
134
135			$("#vbm-"+id+" .vbm-option input").click(function(e){
136				e.preventDefault();
137			});
138
139			$("#vbm-"+id+" .vbm-option label").click(function(e){
140				e.preventDefault();
141			});
142
143		});
144
145	};
146
147 } (jQuery));

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.