PageSourceSearch

https://atrobushing.com/_content/Havit.Blazor.Components.Web.Bootstrap/HxDropdown.lzcyjj0b1u.js

js atrobushing.com collected 2026-09-26 14:03:50 UTC 2,561 bytes, 101 lines download raw bytes

1export function create(element, hxDropdownDotnetObjectReference, options, subscribeToHideEvent) {
2	if (!element) {
3		return;
4	}
5	element.hxDropdownDotnetObjectReference = hxDropdownDotnetObjectReference;
6	if (subscribeToHideEvent) {
7		element.addEventListener('hide.bs.dropdown', handleDropdownHide);
8	}
9	element.addEventListener('shown.bs.dropdown', handleDropdownShown);
10	element.addEventListener('hidden.bs.dropdown', handleDropdownHidden);
11
12	if (options) {
13		prepareOptions(options);
14		const d = new bootstrap.Dropdown(element, options);
15	}
16	else {
17		const d = new bootstrap.Dropdown(element);
18	}
19}
20
21function prepareOptions(options) {
22	if (options.reference !== undefined) {
23		if (options.reference === null) {
24			options.reference = "toggle"; // default Bootstrap value
25		}
26		else if (options.reference.startsWith("#")) {
27			options.reference = document.querySelector(options.reference);
28		}
29	}
30}
31
32export function update(element, options) {
33	if (!element) {
34		return;
35	}
36
37	const dOld = bootstrap.Dropdown.getInstance(element);
38	if (dOld) {
39		dOld.dispose();
40	}
41
42	if (options) {
43		prepareOptions(options);
44		const d = new bootstrap.Dropdown(element, options);
45	}
46	else {
47		const d = new bootstrap.Dropdown(element);
48	}
49}
50
51export function show(element) {
52	const d = bootstrap.Dropdown.getInstance(element);
53	if (d) {
54		d.show();
55	}
56}
57
58export function hide(element) {
59	const d = bootstrap.Dropdown.getInstance(element);
60	if (d) {
61		d.hide();
62	}
63}
64
65function handleDropdownShown(event) {
66	event.target.hxDropdownDotnetObjectReference.invokeMethodAsync('HxDropdown_HandleJsShown');
67};
68
69async function handleDropdownHide(event) {
70	const d = bootstrap.Dropdown.getInstance(event.target);
71
72	if (d.hidePreventionDisabled) {
73		d.hidePreventionDisabled = false;
74		return;
75	}
76
77	event.preventDefault();
78
79	const cancel = await event.target.hxDropdownDotnetObjectReference.invokeMethodAsync('HxDropdown_HandleJsHide');
80	if (!cancel) {
81		d.hidePreventionDisabled = true;
82		d.hide();
83	}
84};
85
86function handleDropdownHidden(event) {
87	event.target.hxDropdownDotnetObjectReference.invokeMethodAsync('HxDropdown_HandleJsHidden');
88};
89
90export function dispose(element) {
91	if (!element) {
92		return;
93	}
94	element.removeEventListener('shown.bs.dropdown', handleDropdownShown);
95	element.removeEventListener('hidden.bs.dropdown', handleDropdownHidden);
96	element.hxDropdownDotnetObjectReference = null;
97	const d = bootstrap.Dropdown.getInstance(element);
98	if (d) {
99		d.dispose();
100	}
101}

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.