PageSourceSearch

https://www.leibniz-fli.de/cpresources/9e24e139/js/site.js,qv=1790589637.pagespeed.ce.4UzB1h-4Sz.js

js leibniz-fli.de collected 2026-10-02 04:53:02 UTC 11,216 bytes, 246 lines download raw bytes

1import { a as __toESM, n as SiteModule_default } from "./lib-DxM6wEfp.js";
2import { C as showError, T as t, _ as renderA11yMessage, b as requireTarget, c as focusElement, p as isClientError, w as showMessage, y as requireDataset } from "./Utils-rB3N7v_-.js";
3import { t as useFocusTraps } from "./FocusTrap-DQ5wjUkW.js";
4import { a as startEscapeListener, o as startInsertListener, r as removeEscapeHandler, t as addEscapeHandler } from "./KeyBoardEventHandlers-C0G58594.js";
5import { c as require_aos, l as initCookieBar, r as useDialogButton, s as initUIElements } from "./Dialogs-Dhel80wj.js";
6import { n as AxiosError, r as isAxiosError, t as client_default } from "./client-C9w93h5A.js";
7import { n as setDefaults, t as AxiosForm } from "./AxiosForm-DqQe0jrG.js";
8import { t as getFaker } from "./Faker-KUdio9a3.js";
9import { n as initSearch } from "./SearchDialog-B9f4oZ8K.js";
10import { t as includeFaker } from "./FormHelpers-1kXh7Tom.js";
11var handleLoginClick = async (i) => {
12	let O = getEventTarget(i);
13	if (!O) return;
14	let { loadDialog: k } = useDialogButton("login"), { dialog: A, openDialog: j, closeDialog: M } = await k(O), N = A.querySelector("#login-form");
15	N && initLoginForm(N, (i) => {
16		i.data.returnUrl && (location.href = i.data.returnUrl), M();
17	});
18	let P = A.querySelector("#password-reset-form");
19	P && initPasswordResetForm(P, M), j();
20}, handleRegistrationClick = async (i) => {
21	let O = getEventTarget(i);
22	if (!O) return;
23	let { loadDialog: k } = useDialogButton("registration"), { getForm: A, openDialog: j, closeDialog: M } = await k(O);
24	initRegistrationForm(A(), M), j();
25};
26const initRegistrationBtn = (i) => {
27	i.removeEventListener("click", handleRegistrationClick), i.addEventListener("click", handleRegistrationClick);
28}, initLoginBtn = (i) => {
29	i.removeEventListener("click", handleLoginClick), i.addEventListener("click", handleLoginClick);
30};
31var getEventTarget = (i) => {
32	let O = i.currentTarget;
33	return !(O instanceof HTMLButtonElement) || O.classList.contains("loading") ? null : O;
34};
35const initLoginForm = (i, O) => {
36	new AxiosForm(i, client_default, {
37		onSuccess(i, k) {
38			showMessage(t("login", "Login successfully")), O(k);
39		},
40		onError(i, O) {
41			O instanceof AxiosError && isClientError(O) && i.addError("loginName", O.response?.data.message), showError(O);
42		}
43	}), includeFaker(i);
44	let j = i.closest(".login-outer-container");
45	if (!j) return;
46	let M = j.querySelector(".registration-dialog-opener");
47	M && initRegistrationBtn(M), (j.querySelectorAll(".toggle-forgot-password") ?? null).forEach((i) => {
48		i.addEventListener("click", () => {
49			let i = j.querySelector(".login-container"), O = j.querySelector(".reset-password-container");
50			if (!O || !i) throw Error("No reset or login-container found");
51			if (O.style.display === "none") {
52				i.style.display = "none", O.style.removeProperty("display");
53				let k = O.querySelector("input[type=\"email\"]");
54				k && k.focus();
55			} else O.style.display = "none", i.style.removeProperty("display"), focusElement(i);
56		});
57	});
58}, initPasswordResetForm = (i, O) => {
59	new AxiosForm(i, client_default, { onSuccess(i, k) {
60		showMessage(k.data.message), O();
61	} });
62}, initRegistrationForm = (i, O = null) => {
63	new AxiosForm(i, client_default, { onSuccess(i, k) {
64		let A = k.data.message;
65		showMessage(A);
66		let j = k.data?.redirect ?? null;
67		j && (location.href = j), O && O();
68	} }), includeFaker(i);
69	let k = () => i.querySelectorAll(".person-details").forEach((i) => i.style.removeProperty("display")), A = () => i.querySelectorAll(".person-details").forEach((i) => i.style.display = "none"), j = i.querySelector("input[name=\"email\"]");
70	j && j.addEventListener("input", () => {
71		j.value.includes("fli") ? A() : k();
72	});
73}, initMenu = (i, O) => {
74	let k = document.querySelector("#mainmenu > ul"), A = i.parentElement;
75	if (!O || !k || !i || !A) throw Error("Could not initialize menu");
76	let j = [...i.querySelectorAll("a"), ...i.querySelectorAll("button")], N = (i) => i.querySelector(":scope > button") ?? i.querySelector(":scope > a") ?? null, { createFocusTrap: P, startFocusTrap: F, stopLatestFocusTrap: I } = useFocusTraps(), L = null, R = () => L || (L = P(A), L), z = (O) => {
77		O.preventDefault(), i.scrollTop = 0, requireTarget(O.currentTarget);
78		let k = O.currentTarget.parentElement;
79		if (!k || !k.parentElement) return;
80		k.parentElement.querySelectorAll(".open").forEach((i) => {
81			i !== k && i.classList.remove("open");
82		}), k.classList.add("open"), i.dataset.depth = k.dataset.depth ?? "", V(), W();
83		let A = J(k);
84		A.removeAttribute("tabindex"), A.focus();
85	}, B = (O) => {
86		O.preventDefault(), i.scrollTop = 0;
87		let k = O.currentTarget?.closest("li.has-sub");
88		k?.classList.remove("open");
89		let A = k?.parentElement?.closest("li.has-sub");
90		i.dataset.depth = A?.dataset.depth || "1", V(), W(), k && N(k)?.focu
90s(), A && J(A).removeAttribute("tabindex");
91	};
92	i.querySelectorAll("li.has-sub").forEach((i) => {
93		N(i)?.addEventListener("click", z);
94		let O = i.querySelector(".btn-back");
95		O && O.addEventListener("click", B);
96	});
97	let V = () => {
98		j.forEach((i) => i.setAttribute("tabindex", "-1"));
99	}, H = () => (requireDataset(i.dataset.depth), Number.parseInt(i.dataset.depth)), U = () => {
100		let O = H();
101		return O === 1 ? i.querySelector("ul") ?? null : i.querySelector(`li[data-depth="${O}"].open`)?.querySelector("ul") ?? null;
102	}, W = () => {
103		U()?.querySelectorAll(":scope >li").forEach((i) => {
104			N(i)?.removeAttribute("tabindex");
105		});
106	}, G = () => {
107		O.classList.remove("open"), i.classList.remove("open"), Y(), removeEscapeHandler(q), I();
108	}, K = () => {
109		F(R(), document.activeElement, G), O.classList.add("open"), i.classList.add("open"), Y(), addEscapeHandler(q), V(), W();
110		let k = U();
111		k && J(k).removeAttribute("tabindex");
112	}, q = (O = null) => {
113		O?.preventDefault(), i.classList.contains("open") ? I() : K();
114	}, J = (i) => {
115		let O = i.querySelector(".menu-back");
116		if (!O) throw Error("No back button found in list item");
117		let k = O.querySelector("button.btn-back");
118		if (!k) throw Error("No back button found in list item");
119		return k;
120	}, Y = () => {
121		let O = i.classList.contains("open");
122		k.setAttribute("aria-hidden", O ? "false" : "true");
123	};
124	return O.addEventListener("click", q), {
125		closeMenu: G,
126		openMenu: K
127	};
128};
129var import_aos = /* @__PURE__ */ __toESM(require_aos(), 1);
130window.showMessage = showMessage, window.showError = showError, initCookieBar(), initUIElements(document.body), SiteModule_default.isDevMode() && startInsertListener(), setDefaults({
131	baseUrl: SiteModule_default.baseUrl + "actions/",
132	appendErrorToFormItem: !0,
133	hideErrorContainer: !0,
134	guessSubmitInput: !0,
135	errorWording: t("a11y", "Error:"),
136	onError(i, O) {
137		showError(O);
138	},
139	startLoading() {
140		renderA11yMessage(t("a11y", "Loading"));
141	},
142	continuousLoading() {
143		renderA11yMessage(t("a11y", "Still Loading"));
144	},
145	afterInit(i) {
146		i.form.querySelectorAll("button[data-submit]").forEach((i) => {
147			i.type = "submit";
148		});
149	}
150}), startEscapeListener();
151var navToggle = document.querySelector(".hamburger"), nav = document.querySelector("#mainmenu");
152if (!nav || !navToggle) throw Error("Menu not found");
153var { closeMenu } = initMenu(nav, navToggle), mainHtmlTag = document.querySelector("html"), scrollFunction = () => {
154	document.body.scrollTop > 50 || document.documentElement.scrollTop > 50 ? mainHtmlTag?.classList.add("fill-header") : mainHtmlTag?.classList.remove("fill-header");
155};
156window.addEventListener("load", scrollFunction), window.onscroll = scrollFunction, (() => {
157	let i = document.body.querySelector("#site-switcher"), O = document.body.querySelector("#site-switcher-btn"), k = i?.closest("li");
158	if (!i || !O || !k) return;
159	let A = (O) => {
160		let k = O.target;
161		(!k || !i.contains(k)) && M();
162	}, j = (k) => {
163		!i.contains(k.target) && !O.contains(k.target) && M();
164	}, M = () => {
165		k.classList.remove("open"), i.setAttribute("aria-hidden", "true"), O.setAttribute("aria-expanded", "false"), document.removeEventListener("focusin", A), document.removeEventListener("mousedown", j);
166	}, N = () => {
167		closeMenu(), k.classList.add("open"), i.setAttribute("aria-hidden", "false"), O.setAttribute("aria-expanded", "true"), i.querySelector("a")?.focus(), document.removeEventListener("focusin", A), document.addEventListener("focusin", A), document.removeEventListener("mousedown", j), document.addEventListener("mousedown", j);
168	};
169	O.addEventListener("click", () => {
170		k.classList.contains("open") ? M() : N();
171	});
172})();
173var skipLinks = document.querySelectorAll(".nav-skip-wrap a[href=\"#mainmenu\"]"), skipLinkListener = (i) => {
174	i.preventDefault();
175	let O = i.currentTarget.getAttribute("href"), k = O ? document.querySelector(O) : null;
176	if (k) {
177		k.classList.add("open");
178		let i = document.querySelector(".hamburger");
179		i && (i.classList.add("open"), i.focus());
180	}
181};
182skipLinks.forEach((i) => {
183	i.addEventListener("click", skipLinkListener);
184});
185var { openSearchBtn, searchInput } = initSearch();
186openSearchBtn.addEventListener("click", () => {
187	closeMenu(), window.setTimeout(() => {
188		searchInput.focus();
189	}, 500);
190}), (async () => {
191	let i = document.body.querySelector(".news-index");
192	if (!i) return;
193	let { initNewsIndex: O } = await import("./NewsIndex-r-IGFFzP.js");
194	O(i);
195})(), (async () => {
196	let i = document.body.querySelector("#main-search");
197	if (!i) return;
198	let { initMainSearch: O } = await import("./MainSearch--e5rcJDz.js");
199	O(i);
200})(), document.body.querySelectorAll(".login-dialog-opener").forEach((i) => initLoginBtn(i)), (async () => {
201	let i = document.body.querySelector(".event-index");
202	if (!i) return;
203	let { initEventIndex: O } = await import("./EventIndex-BdNn8VyI.js");
204	O(i);
205})(), (async () => {
206	let i = document.body.querySelector(".publication-index");
207	if (!i) return;
208	let { initPublicationIndex: O } = await import("./PublicationIndex-DPA77Euv.js");
209	O(i);
210})();
211var loginForm = document.body.querySelector("#login-form");
212loginForm && initLoginForm(loginForm, (i) => {
213	i.data.returnUrl && (location.href = i.data.returnUrl);
214});
215var resetForm = document.body.querySelector("#password-reset-form");
216resetForm && initPasswordResetForm(resetForm, () => {
217	showMessage("Please check your email");
218});
219var registrationForm = document.body.querySelector("#registration-form");
220registrationForm && initRegistrationForm(registrationForm, () => {
221	registrationForm.remove();
222}), document.body.querySelectorAll(".reset-password-form").forEach((i) => {
223	let j = i.querySelectorAll("input[type=\"password\"]");
224	new AxiosForm(i, client_default, {
225		onSuccess() {
226			showMessage(t("password", "Password changed")), SiteModule_default.dashBoardUrl && (location.href = SiteModule_default.dashBoardUrl);
227		},
228		onError(i, O) {
229			if (isAxiosError(O)) {
230				let A = O.response?.data.message;
231				A && showError(A);
232				let M = O.response?.data[0] ?? null;
233				M && j.forEach((O) => i.addErrorsToInput(O, [M]));
234			}
235		}
236	});
237}), window.testMessages = async () => {
238	let i = await getFaker();
239	showError(i.lorem.sentence({
240		min: 10,
241		max: 20
242	})), showMessage(i.lorem.sentence({
243		min: 10,
244		max: 20
245	}));
246}, import_aos.default.init({ once: !0 });

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.