UNPKG

@expofp/floorplan

Version:

Interactive floor plan library for expos and events

3,734 lines • 160 kB
(function() {
	try {
		var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {};
		e.SENTRY_RELEASE = { id: "3.47.0" };
		var t = new e.Error().stack;
		t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "58c9a800-fba0-4291-9638-41ef9c3e4b50", e._sentryDebugIdIdentifier = "sentry-dbid-58c9a800-fba0-4291-9638-41ef9c3e4b50");
	} catch {}
})();
import { D as e, Ot as t, a as n, c as r, nt as i, s as a } from "./i18n-DlquqKCP.js";
import { a as o, o as s } from "./is-debug-IkNSAGo8.js";
import { a as c, c as l, n as u, u as ee } from "./mobx.module-BTnTbXnp.js";
import { t as d } from "./is-webview-DA6FLdme.js";
import { c as te, d as ne, f as re, l as ie, m as ae, o as oe, p as se, r as ce, s as le, t as ue } from "./UIState-Dd6fvko0.js";
import { c as de, l as fe } from "./store-DTvNQcN7.js";
import { A as pe, B as me, D as f, Et as he, F as ge, G as _e, H as ve, I as ye, Jt as p, M as be, O as xe, P as m, U as Se, V as Ce, Vt as we, W as Te, _ as Ee, et as De, g as Oe, j as ke, jt as Ae, n as je, nt as Me, r as Ne, tt as Pe, v as Fe, z as Ie } from "./LayerStore-DCg-juRT.js";
import { v as Le } from "./wayfinding-BUQns13Y.js";
import { a as Re, m as ze, n as h, r as Be, u as Ve, v as He, w as Ue, x as We } from "./RouteStore-B82dztUW.js";
import { i as Ge } from "./scene-CeKqMicD.js";
import { n as Ke, r as qe } from "./init-ui-BQ7d5hKB.js";
//#region src/store/init/init-categories.ts
function Je(e) {
	let { categoryStore: t, exhibitorStore: n } = e;
	for (let e of p.categories || []) {
		let r = new se();
		Object.assign(r, e), r.exhibitors = [], r.slug = _e(r.name);
		for (let t of p.exhibitors || []) if (t.categories.filter((t) => t === e.id)[0]) {
			let e = n.exhibitorById.get(t.id);
			e.categories.push(r), r.exhibitors.push(e);
		}
		r.store = t, t.categories.push(r);
	}
	s.log("initCategories", t.categories.length);
}
//#endregion
//#region src/store/init/init-events.ts
function Ye(e) {
	var t;
	(t = p.events) == null || t.forEach((t) => {
		let n = (t.speakers || []).map((t) => e.speakerStore.addSpeaker({ ...t })), r = new ne(t.id, t.externalId || t.id.toString(), t.boothId, t.name || `Event ${t.id}`, t.description || "", t.startDate, t.endDate, t.logoFile, n, t.tracks || []);
		e.eventStore.eventItems.push(r);
	}), s.log("initEvents", e.eventStore.eventItems.length), s.log("initSpeakers", e.speakerStore.speakersMap.size), Ze(e.eventStore), Xe(e.eventStore);
}
function Xe(e) {
	let t = m("visited");
	e.replaceVisited(t.events), ke(() => {
		ge("visited", {
			exhibitors: m("visited").exhibitors,
			events: e.visited.map((e) => e.id)
		});
	});
}
function Ze(e) {
	let t = m("bookmarked");
	e.replaceBookmarked(t.events), ke(() => {
		var t;
		let n = m("bookmarked");
		ge("bookmarked", {
			exhibitors: n.exhibitors,
			events: (t = e.bookmarked) == null ? void 0 : t.map((e) => e.id),
			speakers: n.speakers,
			booths: n.booths
		});
	});
}
//#endregion
//#region src/store/init/init-exhibitors.ts
function Qe(e) {
	let { exhibitorStore: t } = e, n = [...p.exhibitors || []], r = qe();
	if (r) {
		let e = n.findIndex((e) => e.id === r.id);
		e === -1 ? n.push(r) : n.splice(e, 1, r);
	}
	n.sort((e, t) => Number(t.featured) - Number(e.featured));
	for (let e of n) {
		let n = new Oe();
		Object.assign(n, e), n.slug = _e(n.name), n.rebookingState = n.rebookingState || Fe.Unasked, n.categories = [], n.booths = [], n.store = t, t.exhibitors.push(n), n.schedule = null;
	}
	s.log("initExhibitors", t.exhibitors.length), $e(t), et(t);
}
function $e(e) {
	let t = m("bookmarked");
	e.replaceBookmarked(t.exhibitors), ke(() => {
		var t;
		let n = m("bookmarked");
		ge("bookmarked", {
			exhibitors: (t = e.bookmarked) == null ? void 0 : t.map((e) => e.id),
			events: n.events,
			speakers: n.speakers,
			booths: n.booths
		});
	});
}
function et(e) {
	let t = m("visited");
	e.replaceVisited(t.exhibitors), ke(() => {
		let t = m("visited");
		ge("visited", {
			exhibitors: e.visited.map((e) => e.id),
			events: t.events
		});
	});
}
//#endregion
//#region src/store/init/init-heatmap.ts
function tt(e) {
	if (window.__heatmapData) e.heatmapStore.heatmapData = window.__heatmapData;
	else if (window.__heatmapDataYah) {
		e.heatmapStore.heatmapData.yah = window.__heatmapDataYah.yah.map((e) => new ie(e.id, e.name, e.viewCount, e.x, e.y, e.z));
		let t = e.heatmapStore.heatmapData.yah.map((t) => {
			let n = e.heatmapStore.getColorByClicks(t.viewCount), r = e.uiState.devicePixelRatio, i = he(r, n, void 0, 95, 120, t.viewCount.toString()), a = i.toDataURL();
			return {
				name: t.id.toString(),
				scale: 1,
				...Ae(i),
				content: a
			};
		}), n = e.heatmapStore.heatmapData.yah.map((e) => ({
			id: e.id.toString(),
			x: e.x,
			y: e.y,
			z: e.z,
			position: "lefttop",
			icon: e.id.toString(),
			selectedIcon: e.id.toString()
		}));
		e.routeStore.setMarkers({
			markers: n,
			icons: t
		}), e.selectSearch(" ");
	}
}
//#endregion
//#region src/store/init/init-poiTypes.ts
function nt(e) {
	var t;
	((t = p.poiTypes) == null ? [] : t).forEach((t) => {
		e.poiTypeStore.poiTypes.push(t);
	});
}
//#endregion
//#region src/store/init/init-speakers.ts
function rt(e) {
	it(e.speakerStore);
}
function it(e) {
	let t = m("bookmarked");
	e.replaceBookmarked(t.speakers), ke(() => {
		var t;
		let n = m("bookmarked");
		ge("bookmarked", {
			exhibitors: n.exhibitors,
			events: n.events,
			speakers: (t = e.bookmarked) == null ? void 0 : t.map((e) => e.id),
			booths: n.booths
		});
	});
}
//#endregion
//#region src/store/init/index.ts
function at(e) {
	xe(e), Ye(e), rt(e), Qe(e), Je(e), nt(e), pe(e), tt(e), Ke(e);
}
//#endregion
//#region src/store/search-buttons/constants.ts
var g = /*#__PURE__*/ function(e) {
	return e.BOOKMARKS = "bookmarks", e.VISITED = "visited", e.SESSIONS = "sessions", e.TOURS = "guided_tours", e.CATEGORIES = "categories", e.POI_TYPE = "poi_type", e.POI_TYPES = "poi_types", e.LINK = "link", e.EXHIBITORS = "exhibitors", e;
}({}), _ = { POI_TYPE: "poiType_" }, ot = {
	BOOKMARKS: "icon-bookmark",
	VISITED: "icon-checkmark",
	SESSIONS: "icon-schedule",
	EXHIBITORS: "icon-exhibitors"
};
//#endregion
//#region src/store/search-buttons/utils.ts
function st(e) {
	try {
		let t = e.replace(_.POI_TYPE, ""), n = parseInt(t, 10);
		return isNaN(n) ? null : n;
	} catch {
		return null;
	}
}
function ct(e) {
	return e.id || `${e.type}_${e.name}`;
}
function v(e) {
	let t = p.filterButtonsConfig;
	return !(t != null && t.searchButtons) || !Array.isArray(t.searchButtons) ? null : t.searchButtons.find((t) => ct(t) === e) || null;
}
function lt(e) {
	var t;
	return ((t = e.children) == null ? [] : t).filter((e) => e.visible === !0 && e.type === "categories").map((e) => Number(e.id)).filter((e) => Number.isFinite(e));
}
function ut(e, t) {
	return e.filter((e) => t.includes(e.id) && e.exhibitors.length > 0).length;
}
function dt(e) {
	let t = 0;
	for (let n of e.values()) t += n;
	return t;
}
function ft(e) {
	return !!e && typeof e == "object" && Array.isArray(e.searchButtons) && e.searchButtons.length > 0;
}
//#endregion
//#region src/services/URLFilterManager.ts
var y, pt, mt;
function ht(e, t, n, r) {
	n && Object.defineProperty(e, t, {
		enumerable: n.enumerable,
		configurable: n.configurable,
		writable: n.writable,
		value: n.initializer ? n.initializer.call(r) : void 0
	});
}
function b(e, t, n, r, i) {
	var a = {};
	return Object.keys(r).forEach(function(e) {
		a[e] = r[e];
	}), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = n.slice().reverse().reduce(function(n, r) {
		return r(e, t, n) || n;
	}, a), i && a.initializer !== void 0 && (a.value = a.initializer ? a.initializer.call(i) : void 0, a.initializer = void 0), a.initializer === void 0 ? (Object.defineProperty(e, t, a), null) : a;
}
var x = {
	CATEGORIES: "categories",
	POI_TYPE: "poiType",
	POI_TYPES: "poiTypes",
	EXHIBITORS: "exhibitors"
}, gt = (y = class {
	constructor(e) {
		this.rootStore = e, ht(this, "currentFilters", pt, this), ht(this, "isInitialized", mt, this), this.setupReactions();
	}
	initialize() {
		this.parseURLFilters(), this.applyFiltersToStore(), this.isInitialized = !0, s.log("URLFilterManager initialized with filters:", this.currentFilters);
	}
	parseURLFilters() {
		let { categories: e, poiType: t, poiTypes: n, exhibitors: r, searchButton: i } = this.readRawFilters(), a = n.filter((e) => {
			if (!e) return !1;
			let t = this.rootStore.poiTypeStore.poiTypes.some((t) => t.name.toLowerCase() === e.toLowerCase());
			return t || s.warn(`POI type not found in data: ${e}`), t;
		});
		e.length > 0 && (t || a.length > 0) ? (s.warn("URL contains both categories and POI types. Clearing POI types."), this.currentFilters = {
			categories: e,
			poiType: null,
			poiTypes: [],
			exhibitors: r,
			searchButton: i
		}) : this.currentFilters = {
			categories: e,
			poiType: t,
			poiTypes: a,
			exhibitors: r,
			searchButton: i
		}, s.log("URLFilterManager parsed filters:", {
			categories: e,
			poiType: t,
			poiTypes: n,
			exhibitors: r
		}), this.validateFilters(this.currentFilters);
	}
	readRawFilters() {
		let e = t().filters;
		if (Object.keys(e).length > 0) {
			var n, r, i, a, o;
			return {
				categories: [...(n = e.categories) == null ? [] : n],
				poiType: (r = e.poiType) == null ? null : r,
				poiTypes: [...(i = e.poiTypes) == null ? [] : i],
				exhibitors: (a = e.exhibitors) != null && a,
				searchButton: (o = e.searchButton) == null ? null : o
			};
		}
		let s = new URLSearchParams(window.location.search), c = s.get(x.CATEGORIES), l = c ? me(c) : [], u = s.get(x.POI_TYPE), ee = u ? Ie(u) : null, d = s.get(x.POI_TYPES), te = d ? me(d) : [], ne = s.get(x.EXHIBITORS);
		return {
			categories: l,
			poiType: ee,
			poiTypes: te,
			exhibitors: ne === "true" || ne === "",
			searchButton: null
		};
	}
	applyFiltersToStore() {
		let { uiState: e, categoryFilterStore: t, searchButtonsStore: n } = this.rootStore, r = this.currentFilters.searchButton;
		if (r) {
			let e = v(r), n = e ? lt(e) : [];
			(e == null ? void 0 : e.type) === "categories" && n.length > 0 ? (this.currentFilters.categories = this.currentFilters.categories.filter((e) => {
				var t;
				return n.includes((t = this.getCategoryIdByName(e)) == null ? -1 : t);
			}), t.setOwner(r)) : (s.warn(`URLFilterManager: unknown categories search button: ${r}`), this.currentFilters.searchButton = null);
		}
		if (this.currentFilters.categories.length > 0) {
			let n = this.currentFilters.categories.map((e) => this.rootStore.categoryStore.categories.find((t) => t.name.toLowerCase() === e.toLowerCase())).filter((e) => e !== void 0);
			n.length > 0 ? (e.selectedCategoryFilters = n, t.state.selectedItems = n.map((e) => ({
				id: e.id,
				name: e.name
			})), e.categoryFilterOpen = !0, s.log("URLFilterManager applied categories:", n.map((e) => e.name)), setTimeout(() => {
				this.focusOnFilteredBooths(), this.rootStore.searchStore.setFocused(!0);
			}, 100)) : s.warn("URLFilterManager: no categories found for names:", this.currentFilters.categories);
		}
		if (this.currentFilters.poiType) {
			let t = this.rootStore.poiTypeStore.poiTypes.find((e) => e.name.toLowerCase() === this.currentFilters.poiType.toLowerCase());
			t ? (e.selectedPoiTypeFilters = [t], n.setPoiFilterId(`${_.POI_TYPE}${t.id}`), s.log("URLFilterManager applied POI type:", t.name), setTimeout(() => {
				this.focusOnFilteredBooths(), this.rootStore.searchStore.setFocused(!0);
			}, 100)) : s.warn("URLFilterManager: no POI type found for name:", this.currentFilters.poiType);
		}
		if (this.currentFilters.poiTypes.length > 0) {
			let t = this.currentFilters.poiTypes.map((e) => e ? this.rootStore.poiTypeStore.poiTypes.find((t) => t.name.toLowerCase() === e.toLowerCase()) : null).filter((e) => e != null);
			t.length > 0 ? (e.selectedPoiTypeFilters = t, s.log("URLFilterManager applied POI types:", t.map((e) => e.name)), setTimeout(() => {
				this.focusOnFilteredBooths(), this.rootStore.searchStore.setFocused(!0);
			}, 100)) : (s.warn("URLFilterManager: no POI types found for names:", this.currentFilters.poiTypes), this.currentFilters.poiTypes = []);
		}
		this.currentFilters.exhibitors && this.openExhibitorsList();
	}
	filterSearch() {
		let { uiState: e } = this.rootStore, t = this.owningSearchButtonId();
		if (t) return `?${i({ filters: {
			searchButton: t,
			categories: e.selectedCategoryFilters.map((e) => e.name.toLowerCase())
		} })}`;
		let n = new URLSearchParams();
		if (e.selectedCategoryFilters.length > 0) {
			let t = ve(e.selectedCategoryFilters.map((e) => e.name.toLowerCase()));
			t && n.set(x.CATEGORIES, t);
		}
		if (e.selectedPoiTypeFilters.length > 0 && e.selectedCategoryFilters.length === 0) if (e.selectedPoiTypeFilters.length === 1) {
			let t = e.selectedPoiTypeFilters[0].name.toLowerCase();
			if (t) {
				let e = Ce(t);
				e && n.set(x.POI_TYPE, e);
			}
		} else {
			let t = ve(e.selectedPoiTypeFilters.map((e) => e.name.toLowerCase()));
			t && n.set(x.POI_TYPES, t);
		}
		return this.currentFilters.exhibitors && e.selectedCategoryFilters.length === 0 && e.selectedPoiTypeFilters.length === 0 && n.set(x.EXHIBITORS, "true"), n.toString() ? `?${n.toString()}` : "";
	}
	updateURLFromFilters() {
		let { uiState: e } = this.rootStore;
		Ue(this.filterSearch()), this.currentFilters = {
			categories: e.selectedCategoryFilters.length > 0 ? e.selectedCategoryFilters.map((e) => e.name) : [],
			poiType: e.selectedPoiTypeFilters.length === 1 && e.selectedCategoryFilters.length === 0 ? e.selectedPoiTypeFilters[0].name : null,
			poiTypes: e.selectedPoiTypeFilters.length > 1 && e.selectedCategoryFilters.length === 0 ? e.selectedPoiTypeFilters.map((e) => e.name) : [],
			exhibitors: this.currentFilters.exhibitors,
			searchButton: this.owningSearchButtonId()
		};
	}
	owningSearchButtonId() {
		return this.rootStore.uiState.selectedCategoryFilters.length === 0 ? null : this.rootStore.categoryFilterStore.scopeButtonId;
	}
	setCategories(e) {
		this.currentFilters.categories = Se(e), this.currentFilters.poiType = null, this.isInitialized && this.updateURLFromFilters();
	}
	setPoiType(e) {
		this.currentFilters.poiType = Te(e), this.currentFilters.poiTypes = [], this.currentFilters.categories = [], this.isInitialized && this.updateURLFromFilters();
	}
	setPoiTypes(e) {
		this.currentFilters.poiTypes = Se(e), this.currentFilters.poiType = null, this.currentFilters.categories = [], this.isInitialized && this.updateURLFromFilters();
	}
	clearAllFilters() {
		this.currentFilters = {
			categories: [],
			poiType: null,
			poiTypes: [],
			exhibitors: !1,
			searchButton: null
		};
		let { uiState: e } = this.rootStore;
		e.categoryFilterOpen = !1, this.updateURLFromFilters();
	}
	getCurrentFilters() {
		return { ...this.currentFilters };
	}
	setupReactions() {
		be(() => this.rootStore.uiState.selectedCategoryFilters, (e) => {
			if (this.isInitialized && e.length > 0) {
				let t = Se(e.map((e) => e.name));
				this.setCategories(t);
			}
		}), be(() => this.rootStore.uiState.selectedPoiTypeFilters, (e) => {
			if (this.isInitialized && e.length > 0) if (e.length === 1) {
				let t = Te(e[0].name);
				t && this.setPoiType(t);
			} else {
				let t = Se(e.map((e) => e.name));
				this.setPoiTypes(t);
			}
		});
	}
	validateFilters(e) {
		if (e.categories.length > 0 && (e.poiType || e.poiTypes.length > 0)) return s.warn("Categories and POI types cannot be active simultaneously"), !1;
		if (e.poiType && e.poiTypes.length > 0) return s.warn("Both single POI type and multiple POI types cannot be active simultaneously"), !1;
		for (let t of e.categories) if (!this.getCategoryIdByName(t)) return s.warn(`Category not found: ${t}`), !1;
		if (e.poiType && !this.getPoiTypeIdByName(e.poiType)) return s.warn(`POI type not found: ${e.poiType}`), !1;
		for (let t of e.poiTypes) if (!this.getPoiTypeIdByName(t)) return s.warn(`POI type not found: ${t}`), !1;
		return !0;
	}
	getCategoryIdByName(e) {
		let t = this.rootStore.categoryStore.categories.find((t) => t.name.toLowerCase() === e.toLowerCase());
		return t ? t.id : null;
	}
	getPoiTypeIdByName(e) {
		let t = this.rootStore.poiTypeStore.poiTypes.find((t) => t.name.toLowerCase() === e.toLowerCase());
		return t ? t.id : null;
	}
	focusOnFilteredBooths() {
		if (!this.rootStore.layerStore.layersLoaded) {
			be(() => this.rootStore.layerStore.layersLoaded, () => {
				this.focusOnFilteredBooths();
			}, { fireImmediately: !1 });
			return;
		}
		let { uiState: e, exhibitorStore: t, boothStore: n } = this.rootStore, r = [];
		if (e.selectedCategoryFilters.length > 0) {
			let i = t.exhibitors.filter((t) => e.selectedCategoryFilters.some((e) => t.categories.some((t) => t.id === e.id)));
			r = n.booths.filter((e) => i.some((t) => {
				var n;
				return t.id === ((n = e.exhibitors[0]) == null ? void 0 : n.id);
			}));
		}
		if (e.selectedPoiTypeFilters.length > 0) {
			let t = n.booths.filter((t) => e.selectedPoiTypeFilters.some((e) => t.poiTypeId === e.id));
			r = r.length > 0 ? r.filter((e) => t.some((t) => t.id === e.id)) : t;
		}
		let i = r.filter((e) => e.visible);
		i.length > 0 ? (e.moveToBooths = i, this.rootStore.moveToList(i)) : r.length > 0 && (this.rootStore.showMap(), this.rootStore.moveToList(r));
	}
	openExhibitorsList() {
		let { uiState: e } = this.rootStore;
		e.list = {
			type: "exhibitors",
			text: "",
			focused: !1
		}, setTimeout(() => {
			this.rootStore.searchStore.setFocused(!0);
		}, 100), s.log("URLFilterManager opened exhibitors list");
	}
}, pt = b(y.prototype, "currentFilters", [l], {
	configurable: !0,
	enumerable: !0,
	writable: !0,
	initializer: function() {
		return {
			categories: [],
			poiType: null,
			poiTypes: [],
			exhibitors: !1,
			searchButton: null
		};
	}
}), mt = b(y.prototype, "isInitialized", [l], {
	configurable: !0,
	enumerable: !0,
	writable: !0,
	initializer: function() {
		return !1;
	}
}), b(y.prototype, "initialize", [u], Object.getOwnPropertyDescriptor(y.prototype, "initialize"), y.prototype), b(y.prototype, "parseURLFilters", [u], Object.getOwnPropertyDescriptor(y.prototype, "parseURLFilters"), y.prototype), b(y.prototype, "applyFiltersToStore", [u], Object.getOwnPropertyDescriptor(y.prototype, "applyFiltersToStore"), y.prototype), b(y.prototype, "updateURLFromFilters", [u], Object.getOwnPropertyDescriptor(y.prototype, "updateURLFromFilters"), y.prototype), b(y.prototype, "setCategories", [u], Object.getOwnPropertyDescriptor(y.prototype, "setCategories"), y.prototype), b(y.prototype, "setPoiType", [u], Object.getOwnPropertyDescriptor(y.prototype, "setPoiType"), y.prototype), b(y.prototype, "setPoiTypes", [u], Object.getOwnPropertyDescriptor(y.prototype, "setPoiTypes"), y.prototype), b(y.prototype, "clearAllFilters", [u], Object.getOwnPropertyDescriptor(y.prototype, "clearAllFilters"), y.prototype), b(y.prototype, "focusOnFilteredBooths", [u], Object.getOwnPropertyDescriptor(y.prototype, "focusOnFilteredBooths"), y.prototype), b(y.prototype, "openExhibitorsList", [u], Object.getOwnPropertyDescriptor(y.prototype, "openExhibitorsList"), y.prototype), y), S;
function _t(e, t, n, r, i) {
	var a = {};
	return Object.keys(r).forEach(function(e) {
		a[e] = r[e];
	}), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = n.slice().reverse().reduce(function(n, r) {
		return r(e, t, n) || n;
	}, a), i && a.initializer !== void 0 && (a.value = a.initializer ? a.initializer.call(i) : void 0, a.initializer = void 0), a.initializer === void 0 ? (Object.defineProperty(e, t, a), null) : a;
}
var vt = (S = class {
	constructor(e) {
		this.rootStore = void 0, this.rootStore = e;
	}
	get bookmarkedBooths() {
		return this.rootStore.boothStore.booths.filter((e) => e.exhibitors.length === 0 && e.bookmarkedDirectly);
	}
	get total() {
		return this.rootStore.exhibitorStore.bookmarked.length + this.rootStore.eventStore.bookmarked.length + this.rootStore.speakerStore.bookmarked.length + this.bookmarkedBooths.length;
	}
	get hasRoutableBookmarks() {
		return this.rootStore.exhibitorStore.bookmarked.length > 0 || this.bookmarkedBooths.length > 0;
	}
}, _t(S.prototype, "bookmarkedBooths", [c], Object.getOwnPropertyDescriptor(S.prototype, "bookmarkedBooths"), S.prototype), _t(S.prototype, "total", [c], Object.getOwnPropertyDescriptor(S.prototype, "total"), S.prototype), _t(S.prototype, "hasRoutableBookmarks", [c], Object.getOwnPropertyDescriptor(S.prototype, "hasRoutableBookmarks"), S.prototype), S), C, yt;
function bt(e, t, n, r) {
	n && Object.defineProperty(e, t, {
		enumerable: n.enumerable,
		configurable: n.configurable,
		writable: n.writable,
		value: n.initializer ? n.initializer.call(r) : void 0
	});
}
function w(e, t, n, r, i) {
	var a = {};
	return Object.keys(r).forEach(function(e) {
		a[e] = r[e];
	}), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = n.slice().reverse().reduce(function(n, r) {
		return r(e, t, n) || n;
	}, a), i && a.initializer !== void 0 && (a.value = a.initializer ? a.initializer.call(i) : void 0, a.initializer = void 0), a.initializer === void 0 ? (Object.defineProperty(e, t, a), null) : a;
}
var xt = (C = class {
	get publicRootStore() {
		return this.rootStore;
	}
	constructor(e) {
		this.rootStore = void 0, bt(this, "state", yt, this), this.rootStore = e;
	}
	openFilter() {
		this.state.isOpen = !0, this.state.pendingItems = [...this.state.selectedItems];
	}
	closeFilter() {
		this.state.isOpen = !1, this.state.pendingItems = [], this.rootStore.urlFilterManager && this.rootStore.urlFilterManager.isInitialized && this.rootStore.urlFilterManager.clearAllFilters();
	}
	applyFilter() {
		this.state.selectedItems = [...this.state.pendingItems], this.closeFilter(), this.updateUIState();
	}
	resetFilter() {
		this.state.pendingItems = [];
	}
	clearPendingItems() {
		this.state.pendingItems = [];
	}
	setPendingItems(e) {
		this.state.pendingItems = e;
	}
}, yt = w(C.prototype, "state", [l], {
	configurable: !0,
	enumerable: !0,
	writable: !0,
	initializer: function() {
		return {
			isOpen: !1,
			selectedItems: [],
			pendingItems: []
		};
	}
}), w(C.prototype, "openFilter", [u], Object.getOwnPropertyDescriptor(C.prototype, "openFilter"), C.prototype), w(C.prototype, "closeFilter", [u], Object.getOwnPropertyDescriptor(C.prototype, "closeFilter"), C.prototype), w(C.prototype, "applyFilter", [u], Object.getOwnPropertyDescriptor(C.prototype, "applyFilter"), C.prototype), w(C.prototype, "resetFilter", [u], Object.getOwnPropertyDescriptor(C.prototype, "resetFilter"), C.prototype), w(C.prototype, "clearPendingItems", [u], Object.getOwnPropertyDescriptor(C.prototype, "clearPendingItems"), C.prototype), w(C.prototype, "setPendingItems", [u], Object.getOwnPropertyDescriptor(C.prototype, "setPendingItems"), C.prototype), C), St, T, Ct, wt;
function Tt(e, t, n, r) {
	n && Object.defineProperty(e, t, {
		enumerable: n.enumerable,
		configurable: n.configurable,
		writable: n.writable,
		value: n.initializer ? n.initializer.call(r) : void 0
	});
}
function E(e, t, n, r, i) {
	var a = {};
	return Object.keys(r).forEach(function(e) {
		a[e] = r[e];
	}), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = n.slice().reverse().reduce(function(n, r) {
		return r(e, t, n) || n;
	}, a), i && a.initializer !== void 0 && (a.value = a.initializer ? a.initializer.call(i) : void 0, a.initializer = void 0), a.initializer === void 0 ? (Object.defineProperty(e, t, a), null) : a;
}
var Et = {
	buttonId: null,
	categoryIds: null,
	title: null
}, Dt = (St = l.ref, T = class extends xt {
	constructor(...e) {
		super(...e), Tt(this, "scopeButtonId", Ct, this), Tt(this, "viewScope", wt, this);
	}
	get filteredExhibitors() {
		return this.state.selectedItems.length === 0 ? this.rootStore.exhibitorStore.exhibitors : this.rootStore.exhibitorStore.exhibitors.filter((e) => this.state.selectedItems.some((t) => e.categories.some((e) => e.id === t.id)));
	}
	get filteredBooths() {
		return this.rootStore.boothStore.booths.filter((e) => this.filteredExhibitors.some((t) => {
			var n;
			return t.id === ((n = e.exhibitors[0]) == null ? void 0 : n.id);
		}));
	}
	get viewsOwnSelection() {
		return this.viewScope !== null && this.viewScope.buttonId === this.scopeButtonId;
	}
	openFilter() {
		this.openScope(Et);
	}
	openFilterForButton(e, t, n) {
		this.openScope({
			buttonId: e,
			categoryIds: t,
			title: n
		});
	}
	setOwner(e) {
		this.scopeButtonId = e;
	}
	openScope(e) {
		this.viewScope = e, this.state.isOpen = !0, this.state.pendingItems = this.viewsOwnSelection ? [...this.state.selectedItems] : [];
	}
	applyFilter() {
		var e, t;
		this.setOwner(this.state.pendingItems.length > 0 ? (e = (t = this.viewScope) == null ? void 0 : t.buttonId) == null ? null : e : null), super.applyFilter();
	}
	clearSelection() {
		this.state.selectedItems = [], this.state.pendingItems = [], this.rootStore.uiState.selectedCategoryFilters = [], this.rootStore.uiState.categoryFilterOpen = !1, this.setOwner(null);
	}
	updateUIState() {
		this.rootStore.uiState.menu = !1;
		let e = this.state.selectedItems.map((e) => this.rootStore.categoryStore.categories.find((t) => t.id === e.id)).filter((e) => e !== void 0);
		this.rootStore.uiState.selectedCategoryFilters = e, this.rootStore.uiState.categoryFilterOpen = !0, this.rootStore.searchStore.setFocused(!0), this.rootStore.moveToList(), this.rootStore.showMap();
		let t = e.map((e) => e.name);
		this.rootStore.urlFilterManager.setCategories(t);
	}
	getFilteredItems() {
		return this.rootStore.exhibitorStore.exhibitors.map((e) => ({
			id: e.id,
			name: e.name
		}));
	}
	getMatchingExhibitorsCount() {
		return this.state.pendingItems.length === 0 ? this.rootStore.exhibitorStore.exhibitors.length : this.rootStore.exhibitorStore.exhibitors.filter((e) => e.categories.some((e) => this.state.pendingItems.some((t) => t.id === e.id))).length;
	}
	resetFilter() {
		this.clearSelection(), this.rootStore.uiState.list = {
			type: "search",
			text: "",
			focused: !1
		}, this.rootStore.urlFilterManager.setCategories([]);
	}
}, Ct = E(T.prototype, "scopeButtonId", [l], {
	configurable: !0,
	enumerable: !0,
	writable: !0,
	initializer: function() {
		return null;
	}
}), wt = E(T.prototype, "viewScope", [St], {
	configurable: !0,
	enumerable: !0,
	writable: !0,
	initializer: function() {
		return null;
	}
}), E(T.prototype, "filteredExhibitors", [c], Object.getOwnPropertyDescriptor(T.prototype, "filteredExhibitors"), T.prototype), E(T.prototype, "filteredBooths", [c], Object.getOwnPropertyDescriptor(T.prototype, "filteredBooths"), T.prototype), E(T.prototype, "viewsOwnSelection", [c], Object.getOwnPropertyDescriptor(T.prototype, "viewsOwnSelection"), T.prototype), E(T.prototype, "openFilter", [u], Object.getOwnPropertyDescriptor(T.prototype, "openFilter"), T.prototype), E(T.prototype, "openFilterForButton", [u], Object.getOwnPropertyDescriptor(T.prototype, "openFilterForButton"), T.prototype), E(T.prototype, "setOwner", [u], Object.getOwnPropertyDescriptor(T.prototype, "setOwner"), T.prototype), E(T.prototype, "openScope", [u], Object.getOwnPropertyDescriptor(T.prototype, "openScope"), T.prototype), E(T.prototype, "applyFilter", [u], Object.getOwnPropertyDescriptor(T.prototype, "applyFilter"), T.prototype), E(T.prototype, "clearSelection", [u], Object.getOwnPropertyDescriptor(T.prototype, "clearSelection"), T.prototype), E(T.prototype, "resetFilter", [u], Object.getOwnPropertyDescriptor(T.prototype, "resetFilter"), T.prototype), T), Ot, kt;
function At(e, t, n, r) {
	n && Object.defineProperty(e, t, {
		enumerable: n.enumerable,
		configurable: n.configurable,
		writable: n.writable,
		value: n.initializer ? n.initializer.call(r) : void 0
	});
}
function jt(e, t, n, r, i) {
	var a = {};
	return Object.keys(r).forEach(function(e) {
		a[e] = r[e];
	}), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = n.slice().reverse().reduce(function(n, r) {
		return r(e, t, n) || n;
	}, a), i && a.initializer !== void 0 && (a.value = a.initializer ? a.initializer.call(i) : void 0, a.initializer = void 0), a.initializer === void 0 ? (Object.defineProperty(e, t, a), null) : a;
}
var Mt = (Ot = class {
	constructor(e) {
		this.keys = e, At(this, "engine", kt, this), this.enginePromise = null, this.lastCollection = null;
	}
	loadEngine() {
		return this.enginePromise || (this.enginePromise = this.buildEngine()), this.enginePromise;
	}
	async buildEngine() {
		try {
			let { default: e } = await import("./fuse-jVBfzHic.js").then((e) => e.n);
			ee(() => {
				this.engine = new e([], {
					keys: this.keys,
					ignoreFieldNorm: !0,
					includeScore: !0,
					threshold: .3,
					ignoreLocation: !0
				});
			});
		} catch (e) {
			console.error(e), this.enginePromise = null;
		}
	}
	search(e, t) {
		return !this.engine || !(e != null && e.length) || !t ? [] : (this.lastCollection !== e && (this.engine.setCollection(e), this.lastCollection = e), this.engine.search(t));
	}
}, kt = jt(Ot.prototype, "engine", [l], {
	configurable: !0,
	enumerable: !0,
	writable: !0,
	initializer: null
}), Ot), D, Nt, Pt;
function Ft(e, t, n, r) {
	n && Object.defineProperty(e, t, {
		enumerable: n.enumerable,
		configurable: n.configurable,
		writable: n.writable,
		value: n.initializer ? n.initializer.call(r) : void 0
	});
}
function It(e, t, n, r, i) {
	var a = {};
	return Object.keys(r).forEach(function(e) {
		a[e] = r[e];
	}), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = n.slice().reverse().reduce(function(n, r) {
		return r(e, t, n) || n;
	}, a), i && a.initializer !== void 0 && (a.value = a.initializer ? a.initializer.call(i) : void 0, a.initializer = void 0), a.initializer === void 0 ? (Object.defineProperty(e, t, a), null) : a;
}
var Lt = (D = class {
	constructor() {
		Ft(this, "enabled", Nt, this), Ft(this, "unreadCount", Pt, this);
	}
	setEnabled(e) {
		this.enabled = e;
	}
	setUnreadCount(e) {
		this.unreadCount = e;
	}
}, Nt = It(D.prototype, "enabled", [l], {
	configurable: !0,
	enumerable: !0,
	writable: !0,
	initializer: function() {
		return !1;
	}
}), Pt = It(D.prototype, "unreadCount", [l], {
	configurable: !0,
	enumerable: !0,
	writable: !0,
	initializer: function() {
		return 0;
	}
}), It(D.prototype, "setEnabled", [u], Object.getOwnPropertyDescriptor(D.prototype, "setEnabled"), D.prototype), It(D.prototype, "setUnreadCount", [u], Object.getOwnPropertyDescriptor(D.prototype, "setUnreadCount"), D.prototype), D), Rt, zt, Bt, Vt, Ht, O, Ut, Wt, Gt;
function Kt(e, t, n, r) {
	n && Object.defineProperty(e, t, {
		enumerable: n.enumerable,
		configurable: n.configurable,
		writable: n.writable,
		value: n.initializer ? n.initializer.call(r) : void 0
	});
}
function k(e, t, n, r, i) {
	var a = {};
	return Object.keys(r).forEach(function(e) {
		a[e] = r[e];
	}), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = n.slice().reverse().reduce(function(n, r) {
		return r(e, t, n) || n;
	}, a), i && a.initializer !== void 0 && (a.value = a.initializer ? a.initializer.call(i) : void 0, a.initializer = void 0), a.initializer === void 0 ? (Object.defineProperty(e, t, a), null) : a;
}
var qt = !0;
function Jt() {
	return typeof window > "u" || window.navigator.onLine;
}
var Yt = (Rt = c({ keepAlive: !0 }), zt = c({ keepAlive: !0 }), Bt = c({ keepAlive: !0 }), Vt = c({ keepAlive: !0 }), Ht = c({ keepAlive: !0 }), O = class {
	constructor(e) {
		this.rootStore = void 0, Kt(this, "mapViewMode", Ut, this), Kt(this, "maplibreSelected", Wt, this), Kt(this, "isOnline", Gt, this), this.cameraPortBox = l.box(null, { deep: !1 }), this.handleOnline = () => this.setOnline(!0), this.handleOffline = () => this.setOnline(!1), this.rootStore = e, this.mapViewMode = this.getInitialViewMode(), this.maplibreSelected = this.mapViewMode !== "floorplan", typeof window < "u" && (window.addEventListener("online", this.handleOnline), window.addEventListener("offline", this.handleOffline));
	}
	dispose() {
		typeof window > "u" || (window.removeEventListener("online", this.handleOnline), window.removeEventListener("offline", this.handleOffline));
	}
	setOnline(e) {
		this.isOnline = e;
	}
	get cameraPort() {
		return this.cameraPortBox.get();
	}
	setCameraPort(e) {
		this.cameraPortBox.set(e);
	}
	clearCameraPortIfCurrent(e) {
		this.cameraPortBox.get() === e && this.cameraPortBox.set(null);
	}
	activateMaplibre() {
		this.maplibreEnabled && (this.mapViewMode = p.allow3dView && this.mapViewMode !== "map3d" ? "map3d" : "map2d", this.maplibreSelected = !0);
	}
	deactivateMaplibre() {
		this.mapViewMode = "floorplan", this.maplibreSelected = !1;
	}
	get hideModeSwitchButton() {
		return !this.maplibreEnabled || !p.allow3dView || qt;
	}
	get maplibreEnabled() {
		var e, t, n;
		let r = (e = (t = this.rootStore.fp) == null ? void 0 : t.maplibre) == null ? window.__efpMaplibre : e, i = !!(r != null && r.offline) && (!!r.style || !!r.styleUrl);
		return this.useMaplibreMap && !!(!((n = Le()) == null || (n = n.properties) == null) && n.config) && (this.isOnline || i);
	}
	get useMaplibreMap() {
		var e, t;
		return (e = p.enableExperimentalMaplibre) == null ? ((t = Le()) == null || (t = t.properties) == null || (t = t.config) == null ? void 0 : t.type) === "maplibre" : e;
	}
	get showMaplibre() {
		return this.maplibreEnabled && (this.mapViewMode === "map2d" || this.mapViewMode === "map3d");
	}
	get isMap3d() {
		return this.maplibreEnabled && this.mapViewMode === "map3d";
	}
	getInitialViewMode() {
		return this.maplibreEnabled ? this.rootStore.uiState.is3DView ? "map3d" : "map2d" : "floorplan";
	}
}, Ut = k(O.prototype, "mapViewMode", [l], {
	configurable: !0,
	enumerable: !0,
	writable: !0,
	initializer: function() {
		return "floorplan";
	}
}), Wt = k(O.prototype, "maplibreSelected", [l], {
	configurable: !0,
	enumerable: !0,
	writable: !0,
	initializer: function() {
		return !1;
	}
}), Gt = k(O.prototype, "isOnline", [l], {
	configurable: !0,
	enumerable: !0,
	writable: !0,
	initializer: function() {
		return Jt();
	}
}), k(O.prototype, "setOnline", [u], Object.getOwnPropertyDescriptor(O.prototype, "setOnline"), O.prototype), k(O.prototype, "setCameraPort", [u], Object.getOwnPropertyDescriptor(O.prototype, "setCameraPort"), O.prototype), k(O.prototype, "clearCameraPortIfCurrent", [u], Object.getOwnPropertyDescriptor(O.prototype, "clearCameraPortIfCurrent"), O.prototype), k(O.prototype, "activateMaplibre", [u], Object.getOwnPropertyDescriptor(O.prototype, "activateMaplibre"), O.prototype), k(O.prototype, "deactivateMaplibre", [u], Object.getOwnPropertyDescriptor(O.prototype, "deactivateMaplibre"), O.prototype), k(O.prototype, "hideModeSwitchButton", [Rt], Object.getOwnPropertyDescriptor(O.prototype, "hideModeSwitchButton"), O.prototype), k(O.prototype, "maplibreEnabled", [zt], Object.getOwnPropertyDescriptor(O.prototype, "maplibreEnabled"), O.prototype), k(O.prototype, "useMaplibreMap", [Bt], Object.getOwnPropertyDescriptor(O.prototype, "useMaplibreMap"), O.prototype), k(O.prototype, "showMaplibre", [Vt], Object.getOwnPropertyDescriptor(O.prototype, "showMaplibre"), O.prototype), k(O.prototype, "isMap3d", [Ht], Object.getOwnPropertyDescriptor(O.prototype, "isMap3d"), O.prototype), O), A;
function Xt(e, t, n, r, i) {
	var a = {};
	return Object.keys(r).forEach(function(e) {
		a[e] = r[e];
	}), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = n.slice().reverse().reduce(function(n, r) {
		return r(e, t, n) || n;
	}, a), i && a.initializer !== void 0 && (a.value = a.initializer ? a.initializer.call(i) : void 0, a.initializer = void 0), a.initializer === void 0 ? (Object.defineProperty(e, t, a), null) : a;
}
var Zt = (A = class {
	constructor(e) {
		this.rootStore = e;
	}
	get ui() {
		return this.rootStore.uiState;
	}
	get isRouteActive() {
		let e = this.ui.selectedRoute;
		return !!(e != null && e.from && e != null && e.to);
	}
	get isSearchListOpen() {
		let { list: e } = this.ui;
		return e.type === "search" || p.isRebooking && e.type === "exhibitors";
	}
	get mediumSizeMultiplier() {
		return this.isRouteActive ? 7 : this.ui.details ? 3 : this.isSearchListOpen ? 9 : 3;
	}
	get fullSizeOffset() {
		let e = this.ui, t = e.wsOccupiedHeightPx, n = e.bannerType === "free" && !e.freeBannerDismissed ? 40 : 0;
		if (e.details && !(e.details instanceof h)) return t + n + 20;
		let r = e.shouldShowSearchButtons ? 54 : 0;
		return t + n + 54 + 20 + r;
	}
}, Xt(A.prototype, "mediumSizeMultiplier", [c], Object.getOwnPropertyDescriptor(A.prototype, "mediumSizeMultiplier"), A.prototype), Xt(A.prototype, "fullSizeOffset", [c], Object.getOwnPropertyDescriptor(A.prototype, "fullSizeOffset"), A.prototype), A), Qt = {
	active: !1,
	key: "",
	matchingMarkers: []
};
function $t(e, t, n, r) {
	if (!e.length || t) return Qt;
	let i = new Set(e), a = new Map(r.map((e) => [e.boothId, e])), o = [];
	for (let e of n) {
		if (e.poiTypeId == null || !i.has(e.poiTypeId)) continue;
		let t = a.get(e.id);
		t && o.push(t);
	}
	return o.length ? {
		active: !0,
		key: [...new Set(o.map((e) => e.boothId))].sort((e, t) => e - t).join(","),
		matchingMarkers: o
	} : Qt;
}
//#endregion
//#region src/store/PoiMarkerStore.ts
var en, tn, nn, rn, j;
function an(e, t, n, r, i) {
	var a = {};
	return Object.keys(r).forEach(function(e) {
		a[e] = r[e];
	}), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = n.slice().reverse().reduce(function(n, r) {
		return r(e, t, n) || n;
	}, a), i && a.initializer !== void 0 && (a.value = a.initializer ? a.initializer.call(i) : void 0, a.initializer = void 0), a.initializer === void 0 ? (Object.defineProperty(e, t, a), null) : a;
}
var on = (en = c({ keepAlive: !0 }), tn = c({ keepAlive: !0 }), nn = c({ keepAlive: !0 }), rn = c({ keepAlive: !0 }), j = class {
	constructor(e) {
		this.rootStore = void 0, this.markersBox = l.box([], { deep: !1 }), this.generation = 0, this.rootStore = e;
	}
	get markers() {
		return this.markersBox.get();
	}
	addMany(e) {
		e.length && this.markersBox.set([...this.markers, ...e]);
	}
	clear() {
		this.generation += 1, this.markersBox.set([]);
	}
	get selectedMarkerId() {
		let e = [...this.rootStore.uiState.selectedBooths], t = e.length === 1 ? e[0] : void 0;
		return t && this.markers.some((e) => e.boothId === t.id) ? t.id : null;
	}
	get selectionActive() {
		return this.selectedMarkerId !== null;
	}
	get outdoorFilter() {
		let { uiState: e, boothStore: t } = this.rootStore;
		return $t(e.selectedPoiTypeFilters.map((e) => e.id), e.selectedCategoryFilters.length > 0, t.booths, this.markers);
	}
	get dimSuppressed() {
		return this.outdoorFilter.active || this.selectionActive;
	}
}, an(j.prototype, "addMany", [u], Object.getOwnPropertyDescriptor(j.prototype, "addMany"), j.prototype), an(j.prototype, "clear", [u], Object.getOwnPropertyDescriptor(j.prototype, "clear"), j.prototype), an(j.prototype, "selectedMarkerId", [en], Object.getOwnPropertyDescriptor(j.prototype, "selectedMarkerId"), j.prototype), an(j.prototype, "selectionActive", [tn], Object.getOwnPropertyDescriptor(j.prototype, "selectionActive"), j.prototype), an(j.prototype, "outdoorFilter", [nn], Object.getOwnPropertyDescriptor(j.prototype, "outdoorFilter"), j.prototype), an(j.prototype, "dimSuppressed", [rn], Object.getOwnPropertyDescriptor(j.prototype, "dimSuppressed"), j.prototype), j), sn = class {
	constructor(e) {
		this.rootStore = void 0, this.poiTypes = [], this.rootStore = e;
	}
}, cn = class {
	constructor() {
		this.id = void 0;
	}
	shouldShowShortcuts() {
		return !0;
	}
}, ln;
function un(e, t, n, r, i) {
	var a = {};
	return Object.keys(r).forEach(function(e) {
		a[e] = r[e];
	}), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = n.slice().reverse().reduce(function(n, r) {
		return r(e, t, n) || n;
	}, a), i && a.initializer !== void 0 && (a.value = a.initializer ? a.initializer.call(i) : void 0, a.initializer = void 0), a.initializer === void 0 ? (Object.defineProperty(e, t, a), null) : a;
}
var dn = (ln = class extends cn {
	constructor(e) {
		super(), this.rootStore = e, this.id = "search";
	}
	createShortcuts() {
		let { searchButtonsStore: e } = this.rootStore, t = [], n = e.getActiveParent();
		if (n && n.children) {
			let r = n.children.filter((e) => e.visible);
			if (n.type === "poi_types" && r.length === 1) return t;
			r.forEach((r) => {
				if (r.type === "poi_types") {
					var i;
					let a = ((i = r.id) == null ? void 0 : i.toString()) || r.name, o = e.isChildActive(a);
					t.push({
						id: a,
						label: r.name,
						enabled: !0,
						active: o,
						tooltip: o ? `Remove ${r.name} from filter (show all ${n.name})` : `Filter only by ${r.name}`,
						variant: "default",
						action: "toggle",
						showResetButton: !1
					});
				}
			});
		}
		return t;
	}
	get shortcuts() {
		return this.createShortcuts();
	}
	shouldShowShortcuts() {
		let { searchButtonsStore: e } = this.rootStore;
		return e.hasActiveParentWithChildren;
	}
	handleShortcutClick(e) {
		let { searchButtonsStore: t } = this.rootStore;
		t.toggleChildFilter(e);
	}
	handleShortcutReset() {
		let { searchButtonsStore: e } = this.rootStore;
		e.clearAllChildFilters();
	}
}, un(ln.prototype, "shortcuts", [c], Object.getOwnPropertyDescriptor(ln.prototype, "shortcuts"), ln.prototype), ln), fn;
function pn(e, t, n, r, i) {
	var a = {};
	return Object.keys(r).forEach(function(e) {
		a[e] = r[e];
	}), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = n.slice().reverse().reduce(function(n, r) {
		return r(e, t, n) || n;
	}, a), i && a.initializer !== void 0 && (a.value = a.initializer ? a.initializer.call(i) : void 0, a.initializer = void 0), a.initializer === void 0 ? (Object.defineProperty(e, t, a), null) : a;
}
var mn = (fn = class extends cn {
	constructor(e) {
		super(), this.rootStore = e, this.id = "sessions";
	}
	get computedShortcuts() {
		let { sessionsFilterStore: e, eventStore: t } = this.rootStore, { filters: n } = e.state, r = [];
		return r.push({
			id: "bookmarks",
			icon: "icon-bookmark",
			enabled: !0,
			active: n.showBookmarksOnly.value,
			tooltip: "Show bookmarked events only",
			variant: "default",
			action: "toggle",
			showResetButton: !1
		}), t.tracks.length > 0 && r.push({
			id: "tracks",
			label: "Tracks",
			badge: n.selectedTracks.value.length > 0 ? n.selectedTracks.value.length : void 0,
			enabled: !0,
			active: n.selectedTracks.value.length > 0,
			tooltip: "Show events by tracks",
			variant: "default",
			action: "custom",
			showResetButton: !0
		}), this.rootStore.speakerStore.speakers.length > 0 && r.push({
			id: "speakers",
			label: "Speakers",
			enabled: !0,
			active: !1,
			tooltip: "Open speakers list",
			variant: "default",
			action: "custom",
			showResetButton: !1
		}), (t.liveEvents.length > 0 || n.showLiveOnly.value) && r.push({
			id: "live",
			label: "Live",
			enabled: !0,
			active: n.showLiveOnly.value,
			tooltip: "Show events happening now",
			variant: "default",
			action: "toggle",
			showResetButton: !1
		}), t.todayEvents.length > 0 && r.push({
			id: "today",
			label: "Today",
			enabled: !0,
			active: n.date.value === "today",
			tooltip: "Show today's events",
			variant: "default",
			action: "toggle",
			showResetButton: !1
		}), t.tomorrowEvents.length > 0 && r.push({
			id: "tomorrow",
			label: "Tomorrow",
			enabled: !0,
			active: n.date.value === "tomorrow",
			tooltip: "Show tomorrow's events",
			variant: "default",
			action: "toggle",
			showResetButton: !1
		}), t.pastEvents.length > 0 && r.push({
			id: "past",
			label: "Past",
			enabled: !0,
			active: n.date.value === "past",
			tooltip: "Show past events",
			variant: "default",
			action: "toggle",
			showResetButton: !1
		}), t.venues.length > 0 && r.push({
			id: "venues",
			label: "Venues",
			badge: n.selectedVenues.value.length > 0 ? n.selectedVenues.value.length : void 0,
			enabled: !0,
			active: n.selectedVenues.value.length > 0,
			tooltip: "Show events by venues",
			variant: "default",
			action: "custom",
			showResetButton: !0
		}), r;
	}
	createShortcuts() {
		return this.computedShortcuts;
	}
	handleShortcutClick(e) {
		switch (e) {
			case "live":
				this.toggleLiveFilter();
				break;
			case "bookmarks":
				this.toggleBookmarksFilter();
				break;
			case "tracks":
				this.rootStore.sessionsFilterStore.openFilterWithSections(["tracks"]);
				break;
			case "venues":
				this.rootStore.sessionsFilterStore.openFilterWithSections(["venues"]);
				break;
			case "speakers":
				this.rootStore.selectSpeakers();
				break;
			case "today":
				this.toggleDateFilter("today");
				break;
			case "tomorrow":
				this.toggleDateFilter("tomorrow");
				break;
			case "past":
				this.toggleDateFilter("past");
				break;
			case "earliest":
				this.toggleSortOrder();
				break;
			default: console.warn(`Unknown shortcut ID: ${e}`);
		}
	}
	handleShortcutReset(e) {
		let { sessionsFilterStore: t } = this.rootStore;
		switch (e) {
			case "live":
				t.setPending("showLiveOnly", !1), t.applyFilters();
				break;
			case "tracks":
				t.setPending("selectedTracks", []), t.applyFilters();
				break;
			case "venues":
				t.setPending("selectedVenues", []), t.applyFilters();
				break;
			case "bookmarks":
				t.setPending("showBookmarksOnly", !1), t.applyFilters();
				break;
			case "today":
				t.setPending("date", "all"), t.applyFilters();
				break;
			case "tomorrow":
				t.setPending("date", "all"), t.applyFilters();
				break;
			case "past":
				t.setPending("date", "all"), t.applyFilters();
				break;
			default: console.warn(`Unknown shortcut reset ID: ${e}`);
		}
	}
	shouldShowShortcuts() {
		return this.rootStore.uiState.list.type === "sessions" && this.rootStore.uiState.details === null;
	}
	toggleBookmarksFilter() {
		let { sessionsFilterStore: e } = this.rootStore, t = !e.state.filters.showBookmarksOnly.value;
		e.setPending("showBookmarksOnly", t), e.applyFilters();
	}
	toggleLiveFilter() {
		let { sessionsFilterStore: e } = this.rootStore, t = !e.state.filters.showLiveOnly.value;
		e.setPending("showLiveOnly", t), e.applyFilters();
	}
	toggleDateFilter(e) {
		let { sessionsFilterStore: t } = this.rootStore;
		t.state.filters.date.value === e ? t.setPending("date", "all") : t.setPending("date", e), t.applyFilters();
	}
	toggleSortOrder() {
		let { sessionsFilterStore: e } = this.rootStore, t = e.state.filters.sortOrder.value === "asc" ? "desc" : "asc";
		e.setPending("sortOrder", t), e.applyFilters();
	}
}, pn(fn.prototype, "computedShortcuts", [c], Object.getOwnPropertyDescriptor(fn.prototype, "computedShortcuts"), fn.prototype), fn), hn;
function gn(e, t, n, r, i) {
	var a = {};
	return Object.keys(r).forEach(function(e) {
		a[e] = r[e];
	}), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = n.slice().reverse().reduce(function(n, r) {
		return r(e, t, n) || n;
	}, a), i && a.initializer !== void 0 && (a.value = a.initializer ? a.initializer.call(i) : void 0, a.initializer = void 0), a.initializer === void 0 ? (Object.defineProperty(e, t, a), null) : a;
}
var _n = (hn = class extends cn {
	constructor(e) {
		super(), this.rootStore = e, this.id = "speakers";
	}
	get computedShortcuts() {
		let { speakerFilterStore: e } = this.rootStore, { filters: t } = e.state;
		return [];
	}
	createShortcuts() {
		return this.computedShortcuts;
	}
	handleShortcutClick(e) {
		switch (e) {
			case "companies":
				this.rootStore.speakerFilterStore.openFilterWithSections(["companies"]);
				break;
			case "jobTitles":
				this.rootStore.speakerFilterStore.openFilterWithSections(["jobTitles"]);
				break;
			default: console.warn(`Unknown shortcut ID: ${e}`);
		}
	}
	handleShortcutReset(e) {
		let { speakerFilterStore: t } = this.rootStore;
		switch (e) {
			case "companies":
				t.setPending("selectedCompanies", []), t.applyFilters();
				break;
			case "jobTitles":
				t.setPending("selectedJobTitles", []), t.applyFilters();
				break;
			default: console.warn(`Unknown shortcut ID for reset: ${e}`);
		}
	}
}, gn(hn.prototype, "computedShortcuts", [c], Object.getOwnPropertyDescriptor(hn.prototype, "computedShortcuts"), hn.prototype), hn), M, vn, yn, bn, xn;
function Sn(e, t, n, r) {
	n && Object.defineProperty(e, t, {
		enumerable: n.enumerable,
		configurable: n.configurable,
		writable: n.writable,
		value: n.initializer ? n.initializer.call(r) : void 0
	});
}
function N(e, t, n, r, i) {
	var a = {};
	return Object.keys(r).forEach(function(e) {
		a[e] = r[e];
	}), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = n.slice().reverse().reduce(function(n, r) {
		return r(e, t, n) || n;
	}, a), i && a.initializer !== void 0 && (a.value = a.initializer ? a.initializer.call(i) : void 0, a.initializer = void 0), a.initializer === void 0 ? (Object.defineProperty(e, t, a), null) : a;
}
var Cn = (M = class {
	constructor(e) {
		this.rootStore = void 0, Sn(this, "items", vn, this), Sn(this, "startPoint", yn, this), Sn(this, "source", bn, this), Sn(this, "excludedVisitedCount", xn, this), this.rootStore = e;
	}
	get resolvedBooths() {
		let e = /* @__PURE__ */ new Map();
		return this.startPoint && e.set(this.startPoint.id, this.startPoint), this.items.forEach((t) => {
			t.booth && e.set(t.booth.id, t.booth);
		}), Array.from(e.values());
	}
	get stopsCount() {
		return this.items.length;
	}
	get startPointBoothOptions() {
		return this.rootStore.boothStore.booths;
	}
	get startPointAutocompleteOptions() {
		let { exhibitorStore: e } = this.rootStore, t = this.startPointBoothOptions, n = [], r = /* @__PURE__ */ new Set();
		return e.exhibitors.forEach((e) => {
			e.booths.forEach((t) => {
				r.add(t.id), n.push({
					value: t.id.toString(),
					label: `${e.name} - ${t.name}`,
					exhibitorId: e.id
				});
			});
		}), t.filter((e) => !r.has(e.id)).forEach((e) => {
			n.push({
				value: e.id.toString(),
				label: e.name
			});
		}), n.sort((e, t) => e.label.localeCompare(t.label, void 0, { sensitivity: "base" }));
	}
	get title() {
		return this.source === "bookmarks" ? a("Bookmarks route") : "";
	}
	get subtitleParts() {
		let { routeInfo: e } = this.rootStore.routeStore, t;
		if (e != null && e.time) {
			let n = e.time;
			t = n < 60 ? a("< 1 min") : a("~ {{n}} min", { n: Math.round(n / 60) });
		}
		return {
			stops: a("{{count}} stops", { count: this.stopsCount }),
			from: this.startPoint ? a("From {{name}}", { name: this.startPoint.name }) : void 0,
			distance: e ? e.distance : void 0,
			travelTime: t
		};
	}
	get routeFloors() {
		let e = this.rootStore.routeStore.pathLayers;
		return e.map((t, n) => {
			var r, i, a, o, s, c;
			let l = e[n + 1], u = (r = (i = t.layer) == null ? void 0 : i.basePriority) == null ? 0 : r, ee = (a = l == null || (o = l.layer) == null ? void 0 : o.basePriority) == null ? 0 : a, d = l ? ee < u ? "up" : "down" : void 0;
			return {
				id: t.id,
				name: (s = t.layer) == null ? void 0 : s.shortName,
				description: (c = t.layer) == null ? void 0 : c.description,
				directionToNext: d
			};
		});
	}
	get currentRouteFloor() {
		let e = this.routeFloors, t = this.rootStore.routeStore.currentRouteLayer;
		if (!e.length) return;
		if (!t) return e[0] ? {
			id: e[0].id,
			name: e[0].name
		} : void 0;
		let n = e.find((e) => {
			var n, r;
			return ((n = e.description) == null ? void 0 : n.toLowerCase()) === ((r = t.description) == null ? void 0 : r.toLowerCase());
		});
		return n ? {
			id: n.id,
			name: n.name
		} : {
			id: e[0].id,
			name: e[0].name
		};
	}
	setRouteFloor(e) {
		let t = this.rootStore.routeStore.pathLayers.find((t) => t.id === e.id);
		t != null && t.layer && this.rootStore.layerStore.updateVisibility(t.layer, !0);
	}
	launch(e, t = "custom", n) {
		this.excludedVisitedCount = e.filter((e) => e.type === "exhibitor" && e.entity.visited).length, this.items = e.filter((e) => e.type !== "exhibitor" || !e.entity.visited), this.source = t, this.startPoint = n === void 0 ? this.detectStartPoint() : n;
		let { uiState: r } = this.rootStore;
		r.list = {
			type: "route-planner",
			source: t
		}, r.details = null, r.menu = !1, this.buildRoute();
	}
	launchFromBookmarks(e) {
		let { exhibitorStore: t, eventStore: n, boothStore: r } = this.rootStore, i = [];
		t.bookmarked.forEach((e) => {
			i.push({
				type: "exhibitor",
				entity: e,
				booth: e.booths[0] || null
			});
		}), r.booths.filter((e) => e.exhibitors.length === 0 && e.bookmarkedDirectly).forEach((e) => {
			i.push({
				type: "booth",
				entity: e,
				booth: e
			});
		}), this.launch(i, "bookmarks", e);
	}
	launchFromSlugs(e, t) {
		let n = this.resolveSlugs(e);
		this.launch(n, "custom", t);
	}
	resolveSlugs(e) {
		let { exhibitorStore: t, eventStore: n, boothStore: r } = this.rootStore;
		return e.filter(Boolean).map((e) => {
			let n = e.toLowerCase(), r = t.exhibitors.find((e) => {
				var t, r;
				return ((t = e.slug) == null ? void 0 : t.toLowerCase()) === n || ((r = e.externalId) == null ? void 0 : r.toLowerCase()) === n;
			});
			if (r) return {
				type: "exhibitor",
				entity: r,
				booth: r.booths[0] || null
			};
			let i = Re(e);
			return i ? {
				type: "booth",
				entity: i,
				booth: i
			} : null;
		}).filter((e) => e !== null);
	}
	buildRoute() {
		let e = [];
		if (this.startPoint && this.startPoint.name && e.push(this.startPoint.name), this.items.forEach((t) => {
			t.booth && t.booth.name && e.push(t.booth.name);
		}), e.length < 2) {
			this.rootStore.routeStore.updateRoute([]);
			return;
		}
		let t;
		try {
			var n, r;
			let i = (n = this.rootStore.fp) == null || (r = n.getOptimizedRoutes) == null ? void 0 : r.call(n, e);
			t = Array.isArray(i) ? i.flatMap((e) => {
				var t;
				return (t = e == null ? void 0 : e.waypoints) == null ? [] : t;
			}) : [];
		} catch {
			t = [];
		}
		let i = new Set(e), a = new Set(t), o = e.length > 0 && [...i].every((e) => a.has(e));
		(!t.length || !o) && (t = e.slice()), this.reorderItemsByNames(t);
		let s = this.resolvedBooths;
		if (s.length < 2) {
			this.rootStore.routeStore.updateRoute([]);
			return;
		}
		let c = s[0], l = s[s.length - 1], u = s.slice(1, -1), ee = new h(c, l, u);
		this.rootStore.routeStore.selectRoute(ee, !1), this.rootStore.uiState.setIsMultiPointRoute(u.length > 0);
	}
	reorderItemsByNames(e) {
		let t = this.startPoint ? this.startPoint.name : null, n = /* @__PURE__ */ new Map();
		this.items.forEach((e) => {
			let t = e.booth ? e.booth.name : null;
			t && (n.has(t) || n.set(t, []), n.get(t).push(e));
		});
		let r = [];
		e.forEach((e) => {
			if (e !== t) {
				let t = n.get(e);
				t && t.length > 0 && r.push(...t.splice(0));
			}
		}), this.items = r;
	}
	detectStartPoint() {
		let { boothStore: e, poiTypeStore: t } = this.rootStore, n = ["entrance", "entrances"], r = t.poiTypes.find((e) => n.includes(e.name.toLowerCase()));
		return r && e.booths.find((e) => e.poiTypeId === r.id) || null;
	}
	setStartPoint(e) {
		this.startPoint = e, this.buildRoute();
	}
	removeItem(e) {
		this.items.splice(e, 1), this.buildRoute();
	}
	reorderItems(e, t) {
		let [n] = this.items.splice(e, 1);
		this.items.splice(t, 0, n), this.buildRoute();
	}
	close() {
		this.items = [], this.startPoint = null, this.source = null, this.excludedVisitedCount = 0, this.rootStore.uiState.details = null, this.rootStore.uiState.list = {
			type: "search",
			text: "",
			focused: !1
		}, this.rootStore.routeStore.selectRoute(null, !1);
	}
}, vn = N(M.prototype, "items", [l], {
	configurable: !0,
	enumerable: !0,
	writable: !0,
	initializer: function() {
		return [];
	}
}), yn = N(M.prototype, "startPoint", [l], {
	configurable: !0,
	enumerable: !0,
	writable: !0,
	initializer: function() {
		return null;
	}
}), bn = N(M.prototype, "source", [l], {
	configurable: !0,
	enumerable: !0,
	writable: !0,
	initializer: function() {
		return null;
	}
}), xn = N(M.prototype, "excludedVisitedCount", [l], {
	configurable: !0,
	enumerable: !0,
	writable: !0,
	initializer: function() {
		return 0;
	}
}), N(M.prototype, "resolvedBooths", [c], Object.getOwnPropertyDescriptor(M.prototype, "resolvedBooths"), M.prototype), N(M.prototype, "stopsCount", [c], Object.getOwnPropertyDescriptor(M.prototype, "stopsCount"), M.prototype), N(M.prototype, "startPointBoothOptions", [c], Object.getOwnPropertyDescriptor(M.prototype, "startPointBoothOptions"), M.prototype), N(M.prototype, "startPointAutocompleteOptions", [c], Object.getOwnPropertyDescriptor(M.prototype, "startPointAutocompleteOptions"), M.prototype), N(M.prototype, "title", [c], Object.getOwnPropertyDescriptor(M.prototype, "title"), M.prototype), N(M.prototype, "subtitleParts", [c], Object.getOwnPropertyDescriptor(M.prototype, "subtitleParts"), M.prototype), N(M.prototype, "routeFloors", [c], Object.getOwnPropertyDescriptor(M.prototype, "routeFloors"), M.prototype), N(M.prototype, "currentRouteFloor", [c], Object.getOwnPropertyDescriptor(M.prototype, "currentRouteFloor"), M.prototype), N(M.prototype, "setRouteFloor", [u], Object.getOwnPropertyDescriptor(M.prototype, "setRouteFloor"), M.prototype), N(M.prototype, "launch", [u], Object.getOwnPropertyDescriptor(M.prototype, "launch"), M.prototype), N(M.prototype, "launchFromBookmarks", [u], Object.getOwnPropertyDescriptor(M.prototype, "launchFromBookmarks"), M.prototype), N(M.prototype, "launchFromSlugs", [u], Object.getOwnPropertyDescriptor(M.prototype, "launchFromSlugs"), M.prototype), N(M.prototype, "buildRoute", [u], Object.getOwnPropertyDescriptor(M.prototype, "buildRoute"), M.prototype), N(M.prototype, "setStartPoint", [u], Object.getOwnPropertyDescriptor(M.prototype, "setStartPoint"), M.prototype), N(M.prototype, "removeItem", [u], Object.getOwnPropertyDescriptor(M.prototype, "removeItem"), M.prototype), N(M.prototype, "reorderItems", [u], Object.getOwnPropertyDescriptor(M.prototype, "reorderItems"), M.prototype), N(M.prototype, "close", [u], Object.getOwnPropertyDescriptor(M.prototype, "close"), M.prototype), M), wn = class {
	constructor() {
		this.id = void 0;
	}
	invalidateCache() {}
	shouldShowSubButtons() {
		return !0;
	}
}, Tn;
function En(e, t, n, r, i) {
	var a = {};
	return Object.keys(r).forEach(function(e) {
		a[e] = r[e];
	}), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = n.slice().reverse().reduce(function(n, r) {
		return r(e, t, n) || n;
	}, a), i && a.initializer !== void 0 && (a.value = a.initializer ? a.initializer.call(i) : void 0, a.initializer = void 0), a.initializer === void 0 ? (Object.defineProperty(e, t, a), null) : a;
}
var Dn = (Tn = class extends wn {
	constructor(e) {
		super(), this.rootStore = e, this.id = "sessions";
	}
	get computedSubButtons() {
		let e = [];
		return e.push({
			id: "sessions_show_all",
			label: "All Tracks",
			text: "All Tracks",
			enabled: !0,
			active: this.rootStore.searchButtonsStore.activeSubButtonId === "sessions_show_all" || !this.rootStore.searchButtonsStore.activeSubButtonId && !this.rootStore.uiState.selectedTrack,
			parentButtonId: "sessions",
			type: "show_all",
			onClick: () => this.handleSessionsShowAllClick()
		}), this.rootStore.eventStore.tracks.forEach((t) => {
			let n = this.rootStore.eventStore.getEventsByTrack(t.id).length;
			e.push({
				id: `sessions_track_${t.id}`,
				label: t.name,
				text: t.name,
				enabled: !0,
				active: this.rootStore.searchButtonsStore.activeSubButtonId === `sessions_track_${t.id}`,
				parentButtonId: "sessions",
				type: "track",
				data: t,
				count: n,
				onClick: () => this.handleSessionsTrackClick(t)
			});
		}), e;
	}
	createSubButtons() {
		return this.computedSubButtons;
	}
	handleSubButtonClick(e) {
		if (e === "sessions_show_all") this.handleSessionsShowAllClick();
		else if (e.startsWith("sessions_track_")) {
			let t = parseInt(e.replace("sessions_track_", "")), n = this.rootStore.eventStore.tracks.find((e) => e.id === t);
			n && this.handleSessionsTrackClick(n);
		}
	}
	shouldShowSubButtons() {
		return this.rootStore.eventStore.tracks.length > 0;
	}
	reportActivation(e) {
		if (this.rootStore.searchButtonsStore.activeSubButtonId === e) return;
		let t = this.computedSubButtons.find((t) => t.id === e);
		!t || !t.label || He("sbtnview", t.label, "subbutton");
	}
	handleSessionsShowAllClick() {
		this.reportActivation("sessions_show_all"), this.rootStore.uiState.list = {
			type: "sessions",
			text: "",
			focused: !1
		}, this.rootStore.uiState.selectedTrack = null, this.rootStore.searchButtonsStore.setSubButtonId("sessions_show_all");
	}
	handleSessionsTrackClick(e) {
		this.reportActivation(`sessions_track_${e.id}`), this.rootStore.uiState.list = {
			type: "sessions",
			text: "",
			focused: !1
		}, this.rootStore.uiState.selectedTrack = e, this.rootStore.searchButtonsStore.setSubButtonId(`sessions_track_${e.id}`);
	}
}, En(Tn.prototype, "computedSubButtons", [c], Object.getOwnPropertyDescriptor(Tn.prototype, "computedSubButtons"), Tn.prototype), Tn), On = class {
	constructor() {
		this.providers = /* @__PURE__ */ new Map(), this.cache = /* @__PURE__ */ new Map();
	}
	register(e) {
		this.providers.set(e.id, e), this.cache.delete(e.id);
	}
	unregister(e) {
		this.providers.delete(e), this.cache.delete(e);
	}
	getSubButtons(e) {
		let t = this.providers.get(e);
		return t ? t.createSubButtons() : [];
	}
	handleSubButtonClick(e, t) {
		let n = this.providers.get(e);
		n && n.handleSubButtonClick(t);
	}
	shouldShowSubButtons(e) {
		let t = this.providers.get(e);
		return t ? !t.shouldShowSubButtons || t.shouldShowSubButtons() : !1;
	}
	invalidateCache(e) {
		this.cache.delete(e);
		let t = this.providers.get(e);
		t != null && t.invalidateCache && t.invalidateCache();
	}
	invalidateAllCache() {
		this.cache.clear(), this.providers.forEach((e) => {
			e.invalidateCache && e.invalidateCache();
		});
	}
	getRegisteredProviders() {
		return Array.from(this.providers.keys());
	}
	isProviderRegistered(e) {
		return this.providers.has(e);
	}
}, P;
function F(e, t, n, r, i) {
	var a = {};
	return Object.keys(r).forEach(function(e) {
		a[e] = r[e];
	}), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = n.slice().reverse().reduce(function(n, r) {
		return r(e, t, n) || n;
	}, a), i && a.initializer !== void 0 && (a.value = a.initializer ? a.initializer.call(i) : void 0, a.initializer = void 0), a.initializer === void 0 ? (Object.defineProperty(e, t, a), null) : a;
}
var kn = (P = class {
	constructor(e, t, n) {
		this.rootStore = e, this.state = t, this.filters = n;
	}
	reportActivation(e) {
		e && He("sbtnview", e);
	}
	handleSearchButtonClick(e, t) {
		let n = {
			[g.BOOKMARKS]: () => this.handleBookmarksClick(t),
			[g.VISITED]: () => this.handleVisitedClick(t),
			[g.SESSIONS]: () => this.handleSessionsClick(t),
			[g.TOURS]: () => this.handleToursClick(t),
			[g.CATEGORIES]: () => this.handleCategoriesClick(void 0, t),
			[g.EXHIBITORS]: () => this.handleExhibitorsClick(t)
		}[e];
		if (n) {
			n();
			return;
		}
		e.startsWith(_.POI_TYPE) && this.handlePoiTypeClick(e, t);
	}
	handleExtendedSearchButtonClick(e) {
		var t;
		let n = v(e);
		if (!n) return;
		let r = n.name;
		if (n.type === "link") {
			this.handleLinkClick(n, r);
			return;
		}
		let i = ((t = n.children) == null ? void 0 : t.filter((e) => e.visible)) || [];
		if (i.length === 1 && i[0].type === "poi_types" && i[0].name === n.name) {
			this.handleSearchButtonClick(e, r);
			return;
		}
		if (n.type === g.CATEGORIES) {
			this.handleCategoriesClick({
				buttonId: e,
				buttonConfig: n
			}, r);
			return;
		}
		n.children && i.length > 0 ? this.handleParentButton(e, n, r) : this.handleSearchButtonClick(e, r);
	}
	handleMainButtonClick(e) {
		this.handleSearchButtonClick(e);
	}
	handleSessionsClick(e) {
		let { uiState: t } = this.rootStore;
		t.list.type === "sessions" ? this.switchToSearch() : (this.reportActivation(e), this.resetAllFilters(), t.details = null, t.menu = !1, t.list = {
			type: "sessions",
			text: "",
			focused: !1
		}, this.state.setSubButton(null), t.selectedTrack = null, this.state.subButtonsEnabled && this.showSubButtons("sessions"), this.isMobile && (t.desiredOverlaySize = "full"));
	}
	togglePoiType(e) {
		this.handleSearchButtonClick(`${_.POI_TYPE}${e}`);
	}
	clearAllFilters() {
		this.switchToSearch();
	}
	deactivateForNavigation() {
		let { uiState: e } = this.rootStore;
		(this.state.activePoiFilterId !== null || this.state.searchShortcutState.activeParentId !== null || e.hasAppliedFilters) && this.clearActiveFilters();
	}
	showSubButtons(e) {
		this.state.subButtonsEnabled && (this.state.setSubButtonParent(e), this.state.setSubButton(null), this.rootStore.uiState.subButtonsVisible = !0);
	}
	hideSubButtons() {
		this.state.setSubButtonParent(null), this.state.setSubButton(null), this.rootStore.uiState.subButtonsVisible = !1;
	}
	handleSubButtonClick(e) {
		this.state.activeSubButtonId !== e && this.state.setSubButton(e);
	}
	toggleListView(e, t, n) {
		this.rootStore.uiState.list.type === e ? this.switchToSearch() : (this.reportActivation(n), this.resetAllFilters(), t());
	}
	handleBookmarksClick(e) {
		this.toggleListView("bookmarks", () => {
			this.rootStore.clickBookmarks();
		}, e);
	}
	handleVisitedClick(e) {
		this.toggleListView("visited", () => {
			this.rootStore.clickVisited();
		}, e);
	}
	handleToursClick(e) {
		let { uiState: t } = this.rootStore;
		t.list.type === "tours" ? this.switchToSearch() : (this.reportActivation(e), this.resetAllFilters(), t.details = null, t.menu = !1, t.list = {
			type: "tours",
			text: "",
			focused: !1
		}, this.isMobile && (t.desiredOverlaySize = "full"));
	}
	handleCategoriesClick(e, t) {
		let { uiState: n } = this.rootStore;
		this.reportActivation(t), n.list.type === "search" ? this.state.activePoiFilterId && this.filters.clearPoiTypeFilters() : this.switchToSearch(), this.state.searchShortcutState.activeParentId && (this.state.setActiveParentId(null), this.state.clearChildren(), this.state.showShortcuts(!1), this.filters.clearAllChildFilters()), e ? this.rootStore.categoryFilterStore.openFilterForButton(e.buttonId, lt(e.buttonConfig), e.buttonConfig.name) : this.rootStore.categoryFilterStore.openFilter();
	}
	handleExhibitorsClick(e) {
		let { uiState: t } = this.rootStore;
		t.list.type === "exhibitors" ? this.switchToSearch() : (this.reportActivation(e), this.resetAllFilters(), t.details = null, t.menu = !1, t.list = {
			type: "exhibitors",
			text: "",
			focused: !1
		}, this.isMobile && (t.desiredOverlaySize = "full"));
	}
	handlePoiTypeClick(e, t) {
		let { uiState: n } = this.rootStore, r = this.state.activePoiFilterId !== e;
		r && this.reportActivation(t);
		let i = n.list.type === "search" && n.list.text || "";
		n.list.type === "search" ? n.selectedCategoryFilters.length > 0 && this.filters.clearCategoryFilters() : this.switchToSearch(!0), this.state.searchShortcutState.activeParentId && (this.state.setActiveParentId(null), this.state.clearChildren(), this.state.showShortcuts(!1), this.filters.clearAllChildFilters()), r ? this.setPoiFilterFromString(e) : this.filters.clearPoiTypeFilters(), i && n.list.type === "search" && (n.list = {
			type: "search",
			text: i,
			focused: !1
		}), this.rootStore.searchStore.selectSearchAndFocus(i);
	}
	handleLinkClick(e, t) {
		var n;
		let r = (n = e.children) == null ? void 0 : n.find((e) => e.type === "link");
		r && "linkUrl" in r && (this.reportActivation(t), window.open(r.linkUrl, "_blank"));
	}
	handleParentButton(e, t, n) {
		let { uiState: r } = this.rootStore;
		if (this.state.searchShortcutState.activeParentId === e) {
			this.state.setActiveParentId(null), this.state.clearChildren(), this.state.showShortcuts(!1), this.filters.clearAllChildFilters(), this.rootStore.urlFilterManager.clearAllFilters(), r.centerMap = !0, r.overlaySize === "full" && r.searchFocused && this.rootStore.searchStore.setFocused(!1);
			return;
		}
		this.reportActivation(n), r.list.type !== "search" && this.switchToSearch(), this.state.activePoiFilterId && this.state.setPoiFilter(null), this.state.setActiveParentId(e), this.state.showShortcuts(!0), this.state.clearChildren(), this.filters.applyAllChildrenFilters(t), this.rootStore.searchStore.selectSearchAndFocus();
	}
	preserveSearchText(e) {
		let { uiState: t } = this.rootStore, n = t.list.type === "search" && t.list.text || "";
		e(), t.list.type === "search" && n && (t.list = {
			type: "search",
			text: n,
			focused: !1
		});
	}
	switchToSearch(e = !1) {
		let t = () => {
			this.resetAllFilters(), this.rootStore.uiState.details = null, this.rootStore.uiState.menu = !1, this.rootStore.uiState.list = {
				type: "search",
				text: "",
				focused: !1
			};
		};
		e ? this.preserveSearchText(t) : t();
	}
	resetAllFilters() {
		this.clearActiveFilters(), this.rootStore.fp.hidePathways();
	}
	clearActiveFilters() {
		this.state.reset(), this.rootStore.uiState.selectedPoiTypeFilters = [], this.rootStore.categoryFilterStore.clearSelection(), this.rootStore.urlFilterManager.clearAllFilters();
	}
	setPoiFilterFromString(e) {
		this.state.setPoiFilter(e);
		let t = st(e);
		if (t !== null) {
			let e = this.rootStore.poiTypeStore.poiTypes.find((e) => e.id === t);
			e && (this.rootStore.uiState.selectedPoiTypeFilters = [e], this.rootStore.urlFilterManager.setPoiType(e.name));
		}
	}
	get isMobile() {
		return typeof window < "u" && window.innerWidth <= 768;
	}
}, F(P.prototype, "handleSearchButtonClick", [u], Object.getOwnPropertyDescriptor(P.prototype, "handleSearchButtonClick"), P.prototype), F(P.prototype, "handleExtendedSearchButtonClick", [u], Object.getOwnPropertyDescriptor(P.prototype, "handleExtendedSearchButtonClick"), P.prototype), F(P.prototype, "handleMainButtonClick", [u], Object.getOwnPropertyDescriptor(P.prototype, "handleMainButtonClick"), P.prototype), F(P.prototype, "handleSessionsClick", [u], Object.getOwnPropertyDescriptor(P.prototype, "handleSessionsClick"), P.prototype), F(P.prototype, "togglePoiType", [u], Object.getOwnPropertyDescriptor(P.prototype, "togglePoiType"), P.prototype), F(P.prototype, "clearAllFilters", [u], Object.getOwnPropertyDescriptor(P.prototype, "clearAllFilters"), P.prototype), F(P.prototype, "deactivateForNavigation", [u], Object.getOwnPropertyDescriptor(P.prototype, "deactivateForNavigation"), P.prototype), F(P.prototype, "showSubButtons", [u], Object.getOwnPropertyDescriptor(P.prototype, "showSubButtons"), P.prototype), F(P.prototype, "hideSubButtons", [u], Object.getOwnPropertyDescriptor(P.prototype, "hideSubButtons"), P.prototype), F(P.prototype, "handleSubButtonClick", [u], Object.getOwnPropertyDescriptor(P.prototype, "handleSubButtonClick"), P.prototype), P), An = class {
	constructor(e, t, n) {
		this.rootStore = e, this.state = t, this.actions = n, this.buttonFactories = void 0, this.buttonFactories = {
			[g.BOOKMARKS]: (e) => this.createBookmarksButton(e),
			[g.VISITED]: (e) => this.createVisitedButton(e),
			[g.CATEGORIES]: (e) => this.createCategoriesButton(e),
			[g.SESSIONS]: (e) => this.createSessionsButton(e),
			[g.TOURS]: (e) => this.createGuidedToursButton(e),
			[g.POI_TYPE]: (e) => this.createPoiTypeButton(e),
			[g.POI_TYPES]: (e) => this.createPoiTypesButton(e),
			[g.LINK]: (e) => this.createLinkButton(e),
			[g.EXHIBITORS]: (e) => this.createExhibitorsButton(e)
		};
	}
	createButtons(e) {
		return this.dedupeButtons(e).filter((e) => e.visible).map((e) => {
			var t;
			return {
				button: this.createButton(e),
				order: (t = e.order) == null ? 2 ** 53 - 1 : t
			};
		}).filter((e) => e.button !== null).sort((e, t) => e.order - t.order).map((e) => e.button);
	}
	createButton(e) {
		let t = this.buttonFactories[e.type];
		return t ? t(e) : null;
	}
	createBaseButton(e) {
		let t = e.color && e.color.toUpperCase() !== "#FFFFFF", n = r(e.name);
		return {
			id: ct(e),
			label: n,
			text: n,
			enabled: !0,
			isDimmed: !1,
			isClickable: !0,
			backgroundColor: t ? e.color : void 0,
			textColor: t && e.color ? Ge(e.color) : void 0
		};
	}
	createBookmarksButton(e) {
		let { uiState: t } = this.rootStore;
		return t.kiosk || t.disableBookmarked || p.hideBookmarks ? null : {
			...this.createBaseButton(e),
			id: g.BOOKMARKS,
			icon: ot.BOOKMARKS,
			active: t.list.type === "bookmarks",
			count: this.countBookmarks(),
			onClick: () => this.actions.handleSearchButtonClick(g.BOOKMARKS, e.name)
		};
	}
	createVisitedButton(e) {
		let { uiState: t } = this.rootStore;
		return t.kiosk ? null : {
			...this.createBaseButton(e),
			id: g.VISITED,
			icon: ot.VISITED,
			active: t.list.type === "visited",
			count: this.countVisited(),
			onClick: () => this.actions.handleSearchButtonClick(g.VISITED, e.name)
		};
	}
	createCategoriesButton(e) {
		var t;
		if (!((t = e.children) != null && t.length)) {
			let t = this.getCategoriesTotalCount();
			return t > 0 ? this.createSimpleCategoriesButton(e, t) : null;
		}
		let n = ut(this.rootStore.categoryStore.categories, lt(e));
		if (n === 0) return null;
		let r = ct(e), { categoryFilterStore: i, uiState: a } = this.rootStore, o = i.scopeButtonId === r ? a.selectedCategoryFilters.length : 0, s = this.isModalOpenFor(r);
		return {
			...this.createBaseButton(e),
			id: r,
			active: o > 0 || s,
			expanded: s,
			count: o > 0 ? o : n,
			showZeroCount: !0,
			variant: "action",
			onClick: () => this.actions.handleExtendedSearchButtonClick(r)
		};
	}
	createSimpleCategoriesButton(e, t) {
		let { categoryFilterStore: n, uiState: r } = this.rootStore, i = n.scopeButtonId === null ? r.selectedCategoryFilters.length : 0, a = i > 0 ? i : t;
		return {
			...this.createBaseButton(e),
			id: g.CATEGORIES,
			active: i > 0 && !this.state.searchShortcutState.activeParentId,
			expanded: this.isModalOpenFor(null),
			count: a,
			showZeroCount: !0,
			variant: "action",
			onClick: () => this.actions.handleSearchButtonClick(g.CATEGORIES, e.name)
		};
	}
	isModalOpenFor(e) {
		var t;
		let { categoryFilterStore: n } = this.rootStore;
		return n.state.isOpen && ((t = n.viewScope) == null ? void 0 : t.buttonId) === e;
	}
	createSessionsButton(e) {
		let { uiState: t } = this.rootStore, n = this.getSessionsTotalCount();
		return n === 0 ? null : {
			...this.createBaseButton(e),
			id: g.SESSIONS,
			icon: ot.SESSIONS,
			active: t.list.type === "sessions",
			count: n,
			showZeroCount: !0,
			hasSubButtons: !0,
			onClick: () => this.actions.handleSessionsClick(e.name)
		};
	}
	createGuidedToursButton(e) {
		let { uiState: t } = this.rootStore, n = this.getGuidedToursTotalCount();
		return n === 0 ? null : {
			...this.createBaseButton(e),
			id: "guided_tours",
			active: t.list.type === "tours" || t.list.type === "multi-point-tour",
			count: n,
			showZeroCount: !0,
			onClick: () => this.actions.handleSearchButtonClick("guided_tours", e.name)
		};
	}
	createPoiTypeButton(e) {
		let t = this.rootStore.poiTypeStore.poiTypes.find((t) => t.name === e.name);
		if (!t) return null;
		let n = `${_.POI_TYPE}${t.id}`, r = this.getPoiTypeTotalCount(t.id);
		return r === 0 ? null : {
			...this.createBaseButton(e),
			id: n,
			active: this.state.activePoiFilterId === n,
			count: r,
			showZeroCount: !0,
			onClick: () => this.actions.handleSearchButtonClick(n, e.name)
		};
	}
	createPoiTypesButton(e) {
		var t;
		if (!((t = e.children) != null && t.length)) return this.createPoiTypeButton(e);
		let n = e.children.filter((e) => e.visible);
		if (n.length === 0) return null;
		if (this.shouldFlattenToSinglePoiType(n, e)) return this.createPoiTypeButton(e);
		let r = n.filter((e) => e.type !== "link"), i = this.countPoiTypes(r), a = ct(e);
		return {
			...this.createBaseButton(e),
			id: a,
			active: this.state.searchShortcutState.activeParentId === a,
			count: i,
			showZeroCount: !0,
			onClick: () => this.actions.handleExtendedSearchButtonClick(a)
		};
	}
	shouldFlattenToSinglePoiType(e, t) {
		return e.length === 1 && e[0].type === "poi_types" && e[0].name === t.name;
	}
	createLinkButton(e) {
		let t = ct(e);
		return {
			...this.createBaseButton(e),
			id: t,
			active: !1,
			onClick: () => this.actions.handleExtendedSearchButtonClick(t)
		};
	}
	createExhibitorsButton(e) {
		let { uiState: t } = this.rootStore, n = this.getExhibitorsTotalCount();
		return n === 0 ? null : {
			...this.createBaseButton(e),
			id: g.EXHIBITORS,
			icon: ot.EXHIBITORS,
			active: t.list.type === "exhibitors",
			count: n,
			showZeroCount: !0,
			onClick: () => this.actions.handleSearchButtonClick(g.EXHIBITORS, e.name)
		};
	}
	countPoiTypes(e) {
		return e.reduce((e, t) => {
			if (t.type !== "poi_types") return e;
			if (t.count !== void 0) return e + t.count;
			let n = Number(t.id), r = this.rootStore.poiTypeStore.poiTypes.find((e) => e.id === n);
			return r ? e + this.rootStore.boothStore.booths.filter((e) => e.poiTypeId === r.id).length : e;
		}, 0);
	}
	dedupeButtons(e) {
		let t = /* @__PURE__ */ new Set();
		return e.filter((e) => {
			let n = `${e.type}_${e.name}`;
			return t.has(n) ? !1 : (t.add(n), !0);
		});
	}
	countBookmarks() {
		return this.rootStore.exhibitorStore.bookmarked.length + this.rootStore.eventStore.bookmarked.length + this.rootStore.speakerStore.bookmarked.length + this.rootStore.boothStore.booths.filter((e) => e.exhibitors.length === 0 && e.bookmarkedDirectly).length;
	}
	countVisited() {
		return this.rootStore.exhibitorStore.visited.length + this.rootStore.eventStore.visited.length;
	}
	getSessionsTotalCount() {
		return this.rootStore.eventStore.eventItems.length;
	}
	getGuidedToursTotalCount() {
		return this.rootStore.toursStore.hasTours ? this.rootStore.toursStore.tourItems.length : 0;
	}
	getCategoriesTotalCount() {
		return this.rootStore.categoryStore.categories.filter((e) => e.exhibitors.length > 0).length;
	}
	getPoiTypeTotalCount(e) {
		return this.rootStore.boothStore.booths.filter((t) => t.poiTypeId === e).length;
	}
	getExhibitorsTotalCount() {
		return this.rootStore.exhibitorStore.exhibitors.length;
	}
}, I;
function jn(e, t, n, r, i) {
	var a = {};
	return Object.keys(r).forEach(function(e) {
		a[e] = r[e];
	}), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = n.slice().reverse().reduce(function(n, r) {
		return r(e, t, n) || n;
	}, a), i && a.initializer !== void 0 && (a.value = a.initializer ? a.initializer.call(i) : void 0, a.initializer = void 0), a.initializer === void 0 ? (Object.defineProperty(e, t, a), null) : a;
}
var Mn = (I = class {
	constructor(e, t) {
		this.rootStore = e, this.state = t;
	}
	applyAllChildrenFilters(e) {
		if (!e.children) return;
		let { uiState: t } = this.rootStore, n = e.children.filter((e) => e.visible);
		t.selectedPoiTypeFilters = this.collectPoiTypes(n), this.rootStore.categoryFilterStore.clearSelection();
	}
	applyChildFilters() {
		let { uiState: e } = this.rootStore, t = Array.from(this.state.searchShortcutState.activeChildren);
		if (e.selectedPoiTypeFilters = [], this.rootStore.categoryFilterStore.clearSelection(), t.length === 0) return;
		let n = v(this.state.searchShortcutState.activeParentId);
		if (!(n != null && n.children)) return;
		let r = n.children.filter((e) => e.visible);
		e.selectedPoiTypeFilters = this.collectSelectedPoiTypes(r, t);
	}
	clearAllChildFilters() {
		this.state.clearChildren(), this.rootStore.uiState.selectedPoiTypeFilters = [], this.rootStore.categoryFilterStore.clearSelection();
	}
	clearCategoryFilters() {
		this.rootStore.categoryFilterStore.clearSelection(), this.rootStore.urlFilterManager.setCategories([]);
	}
	clearPoiTypeFilters() {
		this.state.setPoiFilter(null), this.rootStore.uiState.selectedPoiTypeFilters = [], this.rootStore.urlFilterManager.setPoiType(null);
	}
	toggleChildFilter(e) {
		let t = v(this.state.searchShortcutState.activeParentId);
		t != null && t.children && (this.state.toggleChild(e), this.state.hasActiveChildren ? this.applyChildFilters() : this.applyAllChildrenFilters(t));
	}
	getActiveParent() {
		return this.state.searchShortcutState.activeParentId ? v(this.state.searchShortcutState.activeParentId) : null;
	}
	areAllSelected() {
		if (!this.state.searchShortcutState.activeParentId) return !1;
		let e = v(this.state.searchShortcutState.activeParentId);
		if (!(e != null && e.children)) return !1;
		let t = e.children.filter((e) => e.visible).filter((e) => e.type !== "link");
		return t.length > 0 && t.every((e) => {
			var t;
			let n = ((t = e.id) == null ? void 0 : t.toString()) || e.name;
			return this.state.isChildActive(n);
		});
	}
	getChildrenCount() {
		if (!this.state.searchShortcutState.activeParentId) return 0;
		let e = v(this.state.searchShortcutState.activeParentId);
		return e != null && e.children ? e.children.filter((e) => e.visible).filter((e) => e.type !== "link").length : 0;
	}
	collectPoiTypes(e) {
		let t = [];
		return e.forEach((e) => {
			if (e.type !== "poi_types") return;
			let n = this.rootStore.poiTypeStore.poiTypes.find((t) => t.id === Number(e.id));
			n && t.push(n);
		}), t;
	}
	collectSelectedPoiTypes(e, t) {
		let n = [];
		return t.forEach((t) => {
			let r = e.find((e) => {
				var n;
				return e.type !== "link" && (((n = e.id) == null ? void 0 : n.toString()) || e.name) === t;
			});
			if ((r == null ? void 0 : r.type) !== "poi_types") return;
			let i = this.rootStore.poiTypeStore.poiTypes.find((e) => e.id === Number(r.id));
			i && n.push(i);
		}), n;
	}
}, jn(I.prototype, "applyAllChildrenFilters", [u], Object.getOwnPropertyDescriptor(I.prototype, "applyAllChildrenFilters"), I.prototype), jn(I.prototype, "applyChildFilters", [u], Object.getOwnPropertyDescriptor(I.prototype, "applyChildFilters"), I.prototype), jn(I.prototype, "clearAllChildFilters", [u], Object.getOwnPropertyDescriptor(I.prototype, "clearAllChildFilters"), I.prototype), jn(I.prototype, "clearCategoryFilters", [u], Object.getOwnPropertyDescriptor(I.prototype, "clearCategoryFilters"), I.prototype), jn(I.prototype, "clearPoiTypeFilters", [u], Object.getOwnPropertyDescriptor(I.prototype, "clearPoiTypeFilters"), I.prototype), jn(I.prototype, "toggleChildFilter", [u], Object.getOwnPropertyDescriptor(I.prototype, "toggleChildFilter"), I.prototype), I), L, Nn, Pn, Fn, In, Ln, Rn;
function zn(e, t, n, r) {
	n && Object.defineProperty(e, t, {
		enumerable: n.enumerable,
		configurable: n.configurable,
		writable: n.writable,
		value: n.initializer ? n.initializer.call(r) : void 0
	});
}
function R(e, t, n, r, i) {
	var a = {};
	return Object.keys(r).forEach(function(e) {
		a[e] = r[e];
	}), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = n.slice().reverse().reduce(function(n, r) {
		return r(e, t, n) || n;
	}, a), i && a.initializer !== void 0 && (a.value = a.initializer ? a.initializer.call(i) : void 0, a.initializer = void 0), a.initializer === void 0 ? (Object.defineProperty(e, t, a), null) : a;
}
var Bn = (L = class {
	constructor() {
		zn(this, "isVisible", Nn, this), zn(this, "activePoiFilterId", Pn, this), zn(this, "activeSubButtonsParentId", Fn, this), zn(this, "activeSubButtonId", In, this), zn(this, "subButtonsEnabled", Ln, this), zn(this, "searchShortcutState", Rn, this);
	}
	setVisible(e) {
		this.isVisible = e;
	}
	setSubButtonParent(e) {
		this.activeSubButtonsParentId = e;
	}
	setPoiFilter(e) {
		this.activePoiFilterId = e;
	}
	setSubButton(e) {
		this.activeSubButtonId = e;
	}
	setSubButtonsEnabled(e) {
		this.subButtonsEnabled = e;
	}
	setActiveParentId(e) {
		this.searchShortcutState.activeParentId = e;
	}
	showShortcuts(e) {
		this.searchShortcutState.isShortcutsVisible = e;
	}
	clearChildren() {
		this.searchShortcutState.activeChildren.clear();
	}
	toggleChild(e) {
		this.searchShortcutState.activeChildren.has(e) ? this.searchShortcutState.activeChildren.delete(e) : this.searchShortcutState.activeChildren.add(e);
	}
	reset() {
		this.activePoiFilterId = null, this.searchShortcutState.activeParentId = null, this.searchShortcutState.activeChildren.clear(), this.searchShortcutState.isShortcutsVisible = !1;
	}
	get hasActiveChildren() {
		return this.searchShortcutState.activeChildren.size > 0;
	}
	get activeChildrenCount() {
		return this.searchShortcutState.activeChildren.size;
	}
	get hasActiveParentWithChildren() {
		return this.searchShortcutState.isShortcutsVisible && this.searchShortcutState.activeParentId !== null;
	}
	isChildActive(e) {
		return this.searchShortcutState.activeChildren.has(e);
	}
}, Nn = R(L.prototype, "isVisible", [l], {
	configurable: !0,
	enumerable: !0,
	writable: !0,
	initializer: function() {
		return !0;
	}
}), Pn = R(L.prototype, "activePoiFilterId", [l], {
	configurable: !0,
	enumerable: !0,
	writable: !0,
	initializer: function() {
		return null;
	}
}), Fn = R(L.prototype, "activeSubButtonsParentId", [l], {
	configurable: !0,
	enumerable: !0,
	writable: !0,
	initializer: function() {
		return null;
	}
}), In = R(L.prototype, "activeSubButtonId", [l], {
	configurable: !0,
	enumerable: !0,
	writable: !0,
	initializer: function() {
		return null;
	}
}), Ln = R(L.prototype, "subButtonsEnabled", [l], {
	configurable: !0,
	enumerable: !0,
	writable: !0,
	initializer: function() {
		return !1;
	}
}), Rn = R(L.prototype, "searchShortcutState", [l], {
	configurable: !0,
	enumerable: !0,
	writable: !0,
	initializer: function() {
		return {
			activeParentId: null,
			activeChildren: /* @__PURE__ */ new Set(),
			isShortcutsVisible: !1
		};
	}
}), R(L.prototype, "setVisible", [u], Object.getOwnPropertyDescriptor(L.prototype, "setVisible"), L.prototype), R(L.prototype, "setSubButtonParent", [u], Object.getOwnPropertyDescriptor(L.prototype, "setSubButtonParent"), L.prototype), R(L.prototype, "setPoiFilter", [u], Object.getOwnPropertyDescriptor(L.prototype, "setPoiFilter"), L.prototype), R(L.prototype, "setSubButton", [u], Object.getOwnPropertyDescriptor(L.prototype, "setSubButton"), L.prototype), R(L.prototype, "setSubButtonsEnabled", [u], Object.getOwnPropertyDescriptor(L.prototype, "setSubButtonsEnabled"), L.prototype), R(L.prototype, "setActiveParentId", [u], Object.getOwnPropertyDescriptor(L.prototype, "setActiveParentId"), L.prototype), R(L.prototype, "showShortcuts", [u], Object.getOwnPropertyDescriptor(L.prototype, "showShortcuts"), L.prototype), R(L.prototype, "clearChildren", [u], Object.getOwnPropertyDescriptor(L.prototype, "clearChildren"), L.prototype), R(L.prototype, "toggleChild", [u], Object.getOwnPropertyDescriptor(L.prototype, "toggleChild"), L.prototype), R(L.prototype, "reset", [u], Object.getOwnPropertyDescriptor(L.prototype, "reset"), L.prototype), R(L.prototype, "hasActiveChildren", [c], Object.getOwnPropertyDescriptor(L.prototype, "hasActiveChildren"), L.prototype), R(L.prototype, "activeChildrenCount", [c], Object.getOwnPropertyDescriptor(L.prototype, "activeChildrenCount"), L.prototype), R(L.prototype, "hasActiveParentWithChildren", [c], Object.getOwnPropertyDescriptor(L.prototype, "hasActiveParentWithChildren"), L.prototype), L), z;
function B(e, t, n, r, i) {
	var a = {};
	return Object.keys(r).forEach(function(e) {
		a[e] = r[e];
	}), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = n.slice().reverse().reduce(function(n, r) {
		return r(e, t, n) || n;
	}, a), i && a.initializer !== void 0 && (a.value = a.initializer ? a.initializer.call(i) : void 0, a.initializer = void 0), a.initializer === void 0 ? (Object.defineProperty(e, t, a), null) : a;
}
var Vn = (z = class {
	constructor(e) {
		this.rootStore = void 0, this._subButtonRegistry = void 0, this.state = void 0, this.filters = void 0, this.actions = void 0, this.factory = void 0, this.poiTypeCountsCache = /* @__PURE__ */ new Map(), this.keepFiltersOnNextEntry = !1, this.lastPoiTypeCountUpdate = 0, this.rootStore = e, this.state = new Bn(), this.filters = new Mn(e, this.state), this.actions = new kn(e, this.state, this.filters), this.factory = new An(e, this.state, this.actions), this.setupReactions();
	}
	setupReactions() {
		be(() => this.rootStore.boothStore.booths.length, () => this.invalidatePoiTypeCounts()), be(() => this.isNavigationOpen, (e) => {
			if (e) {
				if (this.keepFiltersOnNextEntry) {
					this.keepFiltersOnNextEntry = !1;
					return;
				}
				this.actions.deactivateForNavigation();
			}
		});
	}
	keepFiltersOnNextNavigation() {
		this.keepFiltersOnNextEntry = !0;
	}
	get isNavigationOpen() {
		let { uiState: e } = this.rootStore;
		return e.selectedRoute !== null || e.list.type === "route-planner";
	}
	get subButtonRegistry() {
		return this._subButtonRegistry || (this._subButtonRegistry = new On(), this.registerSubButtonProviders()), this._subButtonRegistry;
	}
	registerSubButtonProviders() {
		this.subButtonRegistry.register(new Dn(this.rootStore));
	}
	invalidatePoiTypeCounts() {
		this.poiTypeCountsCache.clear(), this.lastPoiTypeCountUpdate = 0;
	}
	get isVisible() {
		return this.state.isVisible;
	}
	get shouldShow() {
		let { uiState: e } = this.rootStore;
		if (e.screenSize.width >= 768) return this.state.isVisible;
		let t = !!(e.selectedExhibitor || e.selectedBooth || e.selectedEventItem || e.selectedRoute || e.menu || e.list.type === "language");
		return this.state.isVisible && !t;
	}
	get activePoiFilterId() {
		return this.state.activePoiFilterId;
	}
	get activeSubButtonsParentId() {
		return this.state.activeSubButtonsParentId;
	}
	get activeSubButtonId() {
		return this.state.activeSubButtonId;
	}
	get subButtonsEnabled() {
		return this.state.subButtonsEnabled;
	}
	get searchShortcutState() {
		return this.state.searchShortcutState;
	}
	get searchButtons() {
		let e = p.filterButtonsConfig;
		if (!ft(e)) return console.warn("[SearchButtonsStore] Invalid filterButtonsConfig detected"), [];
		let t = e.searchButtons;
		return this.factory.createButtons(t);
	}
	get hasAnySearchButtons() {
		return this.searchButtons.length > 0;
	}
	get hasActiveSearchButton() {
		return this.state.activePoiFilterId !== null || this.rootStore.uiState.selectedCategoryFilters.length > 0;
	}
	get activeSearchButtonLabel() {
		if (this.state.activePoiFilterId) {
			let e = this.searchButtons.find((e) => e.id === this.state.activePoiFilterId);
			return (e == null ? void 0 : e.label) || null;
		}
		return this.rootStore.uiState.selectedCategoryFilters.length > 0 ? "Categories" : null;
	}
	get activeSubButtons() {
		return this.state.activeSubButtonsParentId ? this.subButtonRegistry.getSubButtons(this.state.activeSubButtonsParentId) : [];
	}
	get shouldShowSubButtons() {
		if (!this.state.subButtonsEnabled || !this.state.activeSubButtonsParentId) return !1;
		let e = this.searchButtons.find((e) => e.id === this.state.activeSubButtonsParentId);
		return !e || !e.active ? !1 : this.subButtonRegistry.shouldShowSubButtons(this.state.activeSubButtonsParentId) && this.activeSubButtons.length > 0;
	}
	get hasActiveParentWithChildren() {
		return this.state.hasActiveParentWithChildren;
	}
	get areAllSelected() {
		return this.filters.areAllSelected();
	}
	get activeChildrenCount() {
		return this.state.activeChildrenCount;
	}
	get totalChildrenCount() {
		return this.filters.getChildrenCount();
	}
	get poiTypeCounts() {
		let e = Date.now();
		if (e - this.lastPoiTypeCountUpdate < 1e3 && this.poiTypeCountsCache.size > 0) return this.poiTypeCountsCache;
		let t = /* @__PURE__ */ new Map();
		return this.rootStore.boothStore.booths.forEach((e) => {
			e.poiTypeId && t.set(e.poiTypeId, (t.get(e.poiTypeId) || 0) + 1);
		}), this.poiTypeCountsCache = t, this.lastPoiTypeCountUpdate = e, t;
	}
	get totalPoiTypeCount() {
		return dt(this.poiTypeCounts);
	}
	get activePoiTypeId() {
		var e;
		return (e = this.state.activePoiFilterId) != null && e.startsWith(_.POI_TYPE) ? st(this.state.activePoiFilterId) : null;
	}
	handleSearchButtonClick(e, t) {
		this.actions.handleSearchButtonClick(e, t);
	}
	handleExtendedSearchButtonClick(e) {
		this.actions.handleExtendedSearchButtonClick(e);
	}
	handleMainButtonClick(e) {
		this.actions.handleMainButtonClick(e);
	}
	handleSessionsClick(e) {
		this.actions.handleSessionsClick(e);
	}
	togglePoiType(e) {
		this.actions.togglePoiType(e);
	}
	clearAllFilters() {
		this.actions.clearAllFilters();
	}
	showSubButtons(e) {
		this.actions.showSubButtons(e);
	}
	hideSubButtons() {
		this.actions.hideSubButtons();
	}
	handleSubButtonClick(e) {
		this.state.activeSubButtonId !== e && (this.state.setSubButton(e), this.state.activeSubButtonsParentId && this.subButtonRegistry.handleSubButtonClick(this.state.activeSubButtonsParentId, e));
	}
	toggleChildFilter(e) {
		this.filters.toggleChildFilter(e);
	}
	clearPoiTypeFilters() {
		this.filters.clearPoiTypeFilters();
	}
	clearAllChildFilters() {
		this.filters.clearAllChildFilters();
	}
	setActiveParentId(e) {
		this.state.setActiveParentId(e);
	}
	showShortcuts(e) {
		this.state.showShortcuts(e);
	}
	clearChildren() {
		this.state.clearChildren();
	}
	setSubButtonId(e) {
		this.state.setSubButton(e);
	}
	setPoiFilterId(e) {
		this.state.setPoiFilter(e);
	}
	getPoiTypeTotalCount(e) {
		return this.poiTypeCounts.get(e) || 0;
	}
	isChildActive(e) {
		return this.state.isChildActive(e);
	}
	getActiveParent() {
		return this.filters.getActiveParent();
	}
}, B(z.prototype, "invalidatePoiTypeCounts", [u], Object.getOwnPropertyDescriptor(z.prototype, "invalidatePoiTypeCounts"), z.prototype), B(z.prototype, "isVisible", [c], Object.getOwnPropertyDescriptor(z.prototype, "isVisible"), z.prototype), B(z.prototype, "shouldShow", [c], Object.getOwnPropertyDescriptor(z.prototype, "shouldShow"), z.prototype), B(z.prototype, "activePoiFilterId", [c], Object.getOwnPropertyDescriptor(z.prototype, "activePoiFilterId"), z.prototype), B(z.prototype, "activeSubButtonsParentId", [c], Object.getOwnPropertyDescriptor(z.prototype, "activeSubButtonsParentId"), z.prototype), B(z.prototype, "activeSubButtonId", [c], Object.getOwnPropertyDescriptor(z.prototype, "activeSubButtonId"), z.prototype), B(z.prototype, "subButtonsEnabled", [c], Object.getOwnPropertyDescriptor(z.prototype, "subButtonsEnabled"), z.prototype), B(z.prototype, "searchShortcutState", [c], Object.getOwnPropertyDescriptor(z.prototype, "searchShortcutState"), z.prototype), B(z.prototype, "searchButtons", [c], Object.getOwnPropertyDescriptor(z.prototype, "searchButtons"), z.prototype), B(z.prototype, "hasAnySearchButtons", [c], Object.getOwnPropertyDescriptor(z.prototype, "hasAnySearchButtons"), z.prototype), B(z.prototype, "hasActiveSearchButton", [c], Object.getOwnPropertyDescriptor(z.prototype, "hasActiveSearchButton"), z.prototype), B(z.prototype, "activeSearchButtonLabel", [c], Object.getOwnPropertyDescriptor(z.prototype, "activeSearchButtonLabel"), z.prototype), B(z.prototype, "activeSubButtons", [c], Object.getOwnPropertyDescriptor(z.prototype, "activeSubButtons"), z.prototype), B(z.prototype, "shouldShowSubButtons", [c], Object.getOwnPropertyDescriptor(z.prototype, "shouldShowSubButtons"), z.prototype), B(z.prototype, "hasActiveParentWithChildren", [c], Object.getOwnPropertyDescriptor(z.prototype, "hasActiveParentWithChildren"), z.prototype), B(z.prototype, "areAllSelected", [c], Object.getOwnPropertyDescriptor(z.prototype, "areAllSelected"), z.prototype), B(z.prototype, "activeChildrenCount", [c], Object.getOwnPropertyDescriptor(z.prototype, "activeChildrenCount"), z.prototype), B(z.prototype, "totalChildrenCount", [c], Object.getOwnPropertyDescriptor(z.prototype, "totalChildrenCount"), z.prototype), B(z.prototype, "poiTypeCounts", [c], Object.getOwnPropertyDescriptor(z.prototype, "poiTypeCounts"), z.prototype), B(z.prototype, "totalPoiTypeCount", [c], Object.getOwnPropertyDescriptor(z.prototype, "totalPoiTypeCount"), z.prototype), B(z.prototype, "activePoiTypeId", [c], Object.getOwnPropertyDescriptor(z.prototype, "activePoiTypeId"), z.prototype), B(z.prototype, "handleSearchButtonClick", [u], Object.getOwnPropertyDescriptor(z.prototype, "handleSearchButtonClick"), z.prototype), B(z.prototype, "handleExtendedSearchButtonClick", [u], Object.getOwnPropertyDescriptor(z.prototype, "handleExtendedSearchButtonClick"), z.prototype), B(z.prototype, "handleMainButtonClick", [u], Object.getOwnPropertyDescriptor(z.prototype, "handleMainButtonClick"), z.prototype), B(z.prototype, "handleSessionsClick", [u], Object.getOwnPropertyDescriptor(z.prototype, "handleSessionsClick"), z.prototype), B(z.prototype, "togglePoiType", [u], Object.getOwnPropertyDescriptor(z.prototype, "togglePoiType"), z.prototype), B(z.prototype, "clearAllFilters", [u], Object.getOwnPropertyDescriptor(z.prototype, "clearAllFilters"), z.prototype), B(z.prototype, "showSubButtons", [u], Object.getOwnPropertyDescriptor(z.prototype, "showSubButtons"), z.prototype), B(z.prototype, "hideSubButtons", [u], Object.getOwnPropertyDescriptor(z.prototype, "hideSubButtons"), z.prototype), B(z.prototype, "handleSubButtonClick", [u], Object.getOwnPropertyDescriptor(z.prototype, "handleSubButtonClick"), z.prototype), B(z.prototype, "toggleChildFilter", [u], Object.getOwnPropertyDescriptor(z.prototype, "toggleChildFilter"), z.prototype), B(z.prototype, "clearPoiTypeFilters", [u], Object.getOwnPropertyDescriptor(z.prototype, "clearPoiTypeFilters"), z.prototype), B(z.prototype, "clearAllChildFilters", [u], Object.getOwnPropertyDescriptor(z.prototype, "clearAllChildFilters"), z.prototype), B(z.prototype, "setActiveParentId", [u], Object.getOwnPropertyDescriptor(z.prototype, "setActiveParentId"), z.prototype), B(z.prototype, "showShortcuts", [u], Object.getOwnPropertyDescriptor(z.prototype, "showShortcuts"), z.prototype), B(z.prototype, "clearChildren", [u], Object.getOwnPropertyDescriptor(z.prototype, "clearChildren"), z.prototype), B(z.prototype, "setSubButtonId", [u], Object.getOwnPropertyDescriptor(z.prototype, "setSubButtonId"), z.prototype), B(z.prototype, "setPoiFilterId", [u], Object.getOwnPropertyDescriptor(z.prototype, "setPoiFilterId"), z.prototype), z), V, Hn, Un, Wn, Gn;
function Kn(e, t, n, r) {
	n && Object.defineProperty(e, t, {
		enumerable: n.enumerable,
		configurable: n.configurable,
		writable: n.writable,
		value: n.initializer ? n.initializer.call(r) : void 0
	});
}
function H(e, t, n, r, i) {
	var a = {};
	return Object.keys(r).forEach(function(e) {
		a[e] = r[e];
	}), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = n.slice().reverse().reduce(function(n, r) {
		return r(e, t, n) || n;
	}, a), i && a.initializer !== void 0 && (a.value = a.initializer ? a.initializer.call(i) : void 0, a.initializer = void 0), a.initializer === void 0 ? (Object.defineProperty(e, t, a), null) : a;
}
var U = class {
	static closeDetails(e) {
		return e.details ? (e.details = null, !0) : !1;
	}
	static closeMultiPointTour(e) {
		return e.rootStore.fp.hidePathways(), !0;
	}
	static clearSearchAndFocus(e) {
		return e.searchText ? (e.setSearchText(""), e.setFocused(!0), !0) : !1;
	}
	static returnToSearch(e, t = !1) {
		e.list = {
			type: "search",
			text: "",
			focused: t
		};
	}
	static returnToSessions(e, t = !1) {
		e.list = {
			type: "sessions",
			text: "",
			focused: t
		};
	}
	static returnToTours(e, t = !1) {
		e.list = {
			type: "tours",
			text: "",
			focused: t
		};
	}
	static openMenu(e) {
		e.menu = !0;
	}
	static closeMenu(e) {
		e.menu = !1;
	}
	static clearListScroll(e, t) {
		e.clearListScroll(t);
	}
	static resetActiveListIndex(e) {
		e.activeListIndex = -1;
	}
}, qn = (V = class {
	constructor(e) {
		this.rootStore = void 0, Kn(this, "searchText", Hn, this), Kn(this, "isFocused", Un, this), Kn(this, "isClearMode", Wn, this), Kn(this, "skipInputFocus", Gn, this), this.rootStore = e;
	}
	get uiState() {
		return this.rootStore.uiState;
	}
	get searchBoxConfig() {
		return this.uiState.searchBoxConfig;
	}
	get searchBoxMode() {
		return this.searchBoxConfig.mode;
	}
	get searchBoxTitle() {
		return this.searchBoxConfig.title;
	}
	get searchBoxSubtitle() {
		return this.searchBoxConfig.subtitle;
	}
	get searchBoxBadge() {
		return this.searchBoxConfig.badge;
	}
	get searchBoxIcon() {
		return this.searchBoxConfig.icon;
	}
	get searchBoxActions() {
		return this.uiState.searchBoxActions;
	}
	get shouldShowSearchInput() {
		return this.searchBoxMode === "search";
	}
	get shouldShowCloseButton() {
		let { menu: e, details: t, list: n } = this.uiState, r = p.isRebooking && n.type === "exhibitors";
		return !this.shouldShowSearchInput || n.type === "sessions" || n.type === "tours" || n.type === "speakers" || n.type === "exhibitors" && !r || e || t !== null || !!this.searchText || this.isClearMode || this.isFocused;
	}
	get closeButtonAction() {
		return !this.shouldShowSearchInput || this.searchBoxMode === "details" || this.uiState.list.type === "sessions" || this.uiState.list.type === "speakers" || this.uiState.list.type === "exhibitors" && !p.isRebooking ? "close" : this.searchText ? "clear" : "close";
	}
	get shouldShowShadow() {
		let { menu: e, details: t, list: n } = this.uiState, r = n.type === "search" && !!n.text;
		return !(this.rootStore.fp.alwaysShowSidebar || e || t !== null || n.type !== "search" || r || this.isFocused || this.uiState.heatmap);
	}
	get placeholder() {
		let { list: e, heatmapYah: t } = this.uiState;
		return e.type === "sessions" ? a("Search sessions") : e.type === "tours" ? a("Search Guided Tours") : e.type === "exhibitors" ? a("Search exhibitors") : e.type === "speakers" ? a("Search speakers") : we.EXPO.startsWith("lenzerheidemotorclassics") ? "SUCHE" : we.EXPO.startsWith("jetlag") ? "Search location or artist" : t ? a("Find values greater than") : this.uiState.hasAppliedFilters ? a("Search") : p.searchText || a("Search");
	}
	get searchBoxClass() {
		return {
			"is-details": this.searchBoxMode === "details" && !(this.uiState.details instanceof h),
			"is-interface": this.searchBoxMode === "interface",
			"has-shadow": this.shouldShowShadow,
			"has-subtitle": !!this.searchBoxConfig.subtitle,
			"has-badge": !!this.searchBoxConfig.badge,
			"has-icon": !!this.searchBoxConfig.icon,
			"is-overlay-full": this.uiState.isOverlayOpen && this.uiState.overlaySize === "full",
			"is-featured-exhibitor": this.uiState.isFeaturedExhibitorActive,
			"is-route": this.uiState.details instanceof h,
			"is-guided-tours": this.uiState.isGuidedToursActive,
			"is-overlay-scrolled": this.uiState.isOverlayScrolled,
			"overlay-pulse": this.uiState.kiosk && this.uiState.inIdle && !this.uiState.setKioskModeEnabled
		};
	}
	get ariaLabel() {
		return !this.shouldShowSearchInput || this.searchBoxMode === "details" ? a("Close") : this.searchText ? a("Clear search") : a("Close");
	}
	selectSearch(e) {
		window.__resett && window.__resett(), this.uiState.details = null;
		let t = ce(e || "", Object.keys(this.uiState.mapSettings).map((e) => `${e}=`));
		this.setSearchText(t), this.uiState.activeListIndex = -1;
	}
	selectSearchAndFocus(e) {
		this.selectSearch(e), this.setFocused(!0);
	}
	setSearchText(e) {
		this.searchText = e, this.uiState.hasAppliedFilters ? this.rootStore.moveToList() : this.uiState.centerMap = !0, this.uiState.activeListIndex = e ? 0 : -1, this.uiState.list.type !== "sessions" && this.uiState.list.type !== "tours" && this.uiState.list.type !== "speakers" && this.uiState.list.type !== "exhibitors" ? this.uiState.list = {
			type: "search",
			text: e,
			focused: this.isFocused
		} : this.uiState.list.type === "exhibitors" && (this.uiState.list = {
			type: "exhibitors",
			text: e,
			focused: this.isFocused
		}), this.uiState.searchClearMode = this.isClearMode;
	}
	setFocused(e) {
		this.isFocused = e, this.isClearMode = !1, this.skipInputFocus = !1, this.uiState.searchFocused = e, this.uiState.searchClearMode = !1, this.uiState.desiredOverlaySize = "full";
	}
	handleBackAction() {
		let { uiState: t } = this, { list: n } = t;
		if (t.desiredOverlaySize = "full", this.backMode === "menu") {
			this.resetSearchButtonState(), U.openMenu(t);
			return;
		}
		if (n.type === "route-planner") {
			this.rootStore.routePlannerStore.close(), this.rootStore.selectBookmarks(), We();
			return;
		}
		if (n.type === "multi-point-tour" && !t.details) {
			U.returnToTours(t, !1), this.rootStore.fp.hidePathways();
			return;
		}
		if (t.details) {
			t.details = null, We();
			return;
		}
		if (t.menu) {
			n.type === "sessions" ? t.list = {
				type: "sessions",
				text: "",
				focused: !0
			} : n.type === "exhibitors" ? t.list = {
				type: "exhibitors",
				text: "",
				focused: !0
			} : t.list = {
				type: "search",
				text: "",
				focused: !0
			}, this.setFocused(!0), this.isClearMode = !0, U.closeMenu(t);
			return;
		}
		if (n.type === "tours" && t.details instanceof h) {
			t.details = null;
			return;
		}
		if (n.type === "sessions" || n.type === "tours" || n.type === "exhibitors") {
			if (U.closeDetails(t)) return;
			this.clearActiveFilters(), U.returnToSearch(t, !1), this.selectSearchAndFocus();
			return;
		}
		switch (n.type) {
			case "filter":
				t.details = null;
				return;
			case "multi-point-tour":
				this.rootStore.fp.hidePathways(), U.closeDetails(t) ? U.returnToTours(t, !1) : We();
				return;
			case "category":
				this.rootStore.selectCategory(n.category);
				return;
			case "speakers":
				if (U.closeDetails(t)) return;
				U.returnToSessions(t, !1);
				return;
			case "bookmarks":
			case "visited":
				if (U.closeDetails(t)) return;
				this.selectSearchAndFocus();
				return;
			case e:
				U.returnToSearch(t, !1), U.openMenu(t);
				return;
		}
		U.closeDetails(t) || U.clearSearchAndFocus(this) || U.openMenu(t);
	}
	closeSearch() {
		let { uiState: e } = this, { list: t } = e;
		if (t.type === "route-planner") {
			this.rootStore.routePlannerStore.close(), U.returnToSearch(e, !1), this.resetSearchBox();
			return;
		}
		if (U.closeDetails(e), U.clearListScroll(e, t.type), U.closeMultiPointTour(e), t.type === "bookmarks") {
			U.returnToSearch(e, !1), this.resetSearchBox();
			return;
		}
		if (e.selectedCategory) {
			U.returnToSearch(e, !1), this.resetSearchBox();
			return;
		}
		if (t.type === "sessions") {
			this.closeSessions();
			return;
		}
		if (t.type === "exhibitors") {
			if (p.isRebooking) {
				this.searchBoxMode === "search" && this.searchText ? (this.setSearchText(""), this.isClearMode = !0, this.clearActiveFilters()) : this.resetSearchBox();
				return;
			}
			this.closeExhibitors();
			return;
		}
		if (e.menu) {
			U.closeMenu(e), this.resetSearchBox();
			return;
		}
		if (this.searchBoxMode === "search" && !e.details && this.searchText) {
			this.setSearchText(""), this.isClearMode = !0, this.clearActiveFilters();
			return;
		}
		U.returnToSearch(e, !1), this.searchText = "", this.resetSearchBox(), e.details = null, this.clearActiveFilters();
	}
	clearActiveFilters() {
		this.rootStore.searchButtonsStore.setPoiFilterId(null), this.rootStore.uiState.selectedPoiTypeFilters = [], this.rootStore.uiState.selectedCategoryFilters = [], this.rootStore.categoryFilterStore.state.selectedItems = [], this.rootStore.categoryFilterStore.state.pendingItems = [], this.rootStore.categoryFilterStore.setOwner(null), this.rootStore.searchButtonsStore.searchShortcutState.activeParentId = null, this.rootStore.searchButtonsStore.searchShortcutState.activeChildren.clear(), this.rootStore.searchButtonsStore.searchShortcutState.isShortcutsVisible = !1, this.rootStore.urlFilterManager && this.rootStore.urlFilterManager.isInitialized && this.rootStore.urlFilterManager.clearAllFilters();
	}
	resetSearchButtonState() {
		let { uiState: e } = this;
		this.rootStore.searchButtonsStore.clearAllFilters(), this.rootStore.searchButtonsStore.setSubButtonId(null), this.rootStore.searchButtonsStore.hideSubButtons(), e.selectedTrack = null, this.searchText = "", this.isClearMode = !1;
	}
	handleSearchAction() {
		this.isFocused || this.setFocused(!0);
	}
	openOverlayWithoutInputFocus() {
		this.skipInputFocus = !0, this.isFocused = !0, this.isClearMode = !1, this.uiState.searchFocused = !0, this.uiState.searchClearMode = !1, this.uiState.desiredOverlaySize = "full";
	}
	closeSessions() {
		this.searchText = "", U.returnToSearch(this.uiState, !1), this.uiState.details = null, U.resetActiveListIndex(this.uiState), this.uiState.selectedTrack = null, this.rootStore.searchButtonsStore.setSubButtonId(null), this.rootStore.searchButtonsStore.hideSubButtons();
	}
	closeExhibitors() {
		this.searchText = "", U.returnToSearch(this.uiState, !1), this.uiState.details = null, U.resetActiveListIndex(this.uiState);
	}
	resetSearchBox() {
		this.setFocused(!1), this.isClearMode = !1, this.syncWithUIState();
	}
	syncWithUIState() {
		this.searchText = (this.uiState.list.type === "search" || this.uiState.list.type === "exhibitors") && this.uiState.list.text || "", this.isFocused = this.uiState.searchFocused, this.isClearMode = this.uiState.searchClearMode;
	}
	get actionButtonIcon() {
		return this.shouldShowSearchInput ? this.shouldShowCloseButton ? "icon-close" : "icon-search" : "icon-close";
	}
	clearAndSelectSearch() {
		this.selectSearch(""), this.setFocused(!1);
	}
	get backMode() {
		let e = this.uiState.list.type;
		return (e === "bookmarks" || e === "visited") && !this.uiState.details && !this.uiState.menu || this.shouldShowSearchInput && !this.searchText ? "menu" : "back";
	}
	get isMobileDetailsMode() {
		return window.innerWidth < 768 && this.uiState.details !== null && this.uiState.overlaySize === "full" && !(this.uiState.details instanceof h);
	}
	get shouldShowTitle() {
		return !this.shouldShowSearchInput;
	}
	get searchState() {
		return {
			text: this.searchText,
			isFocused: this.isFocused,
			isClearMode: this.isClearMode,
			mode: this.searchBoxMode,
			title: this.searchBoxConfig.title,
			subtitle: this.searchBoxConfig.subtitle,
			badge: this.searchBoxConfig.badge,
			icon: this.searchBoxConfig.icon
		};
	}
}, Hn = H(V.prototype, "searchText", [l], {
	configurable: !0,
	enumerable: !0,
	writable: !0,
	initializer: function() {
		return "";
	}
}), Un = H(V.prototype, "isFocused", [l], {
	configurable: !0,
	enumerable: !0,
	writable: !0,
	initializer: function() {
		return !1;
	}
}), Wn = H(V.prototype, "isClearMode", [l], {
	configurable: !0,
	enumerable: !0,
	writable: !0,
	initializer: function() {
		return !1;
	}
}), Gn = H(V.prototype, "skipInputFocus", [l], {
	configurable: !0,
	enumerable: !0,
	writable: !0,
	initializer: function() {
		return !1;
	}
}), H(V.prototype, "searchBoxConfig", [c], Object.getOwnPropertyDescriptor(V.prototype, "searchBoxConfig"), V.prototype), H(V.prototype, "searchBoxMode", [c], Object.getOwnPropertyDescriptor(V.prototype, "searchBoxMode"), V.prototype), H(V.prototype, "searchBoxTitle", [c], Object.getOwnPropertyDescriptor(V.prototype, "searchBoxTitle"), V.prototype), H(V.prototype, "searchBoxSubtitle", [c], Object.getOwnPropertyDescriptor(V.prototype, "searchBoxSubtitle"), V.prototype), H(V.prototype, "searchBoxBadge", [c], Object.getOwnPropertyDescriptor(V.prototype, "searchBoxBadge"), V.prototype), H(V.prototype, "searchBoxIcon", [c], Object.getOwnPropertyDescriptor(V.prototype, "searchBoxIcon"), V.prototype), H(V.prototype, "searchBoxActions", [c], Object.getOwnPropertyDescriptor(V.prototype, "searchBoxActions"), V.prototype), H(V.prototype, "shouldShowSearchInput", [c], Object.getOwnPropertyDescriptor(V.prototype, "shouldShowSearchInput"), V.prototype), H(V.prototype, "shouldShowCloseButton", [c], Object.getOwnPropertyDescriptor(V.prototype, "shouldShowCloseButton"), V.prototype), H(V.prototype, "closeButtonAction", [c], Object.getOwnPropertyDescriptor(V.prototype, "closeButtonAction"), V.prototype), H(V.prototype, "shouldShowShadow", [c], Object.getOwnPropertyDescriptor(V.prototype, "shouldShowShadow"), V.prototype), H(V.prototype, "placeholder", [c], Object.getOwnPropertyDescriptor(V.prototype, "placeholder"), V.prototype), H(V.prototype, "searchBoxClass", [c], Object.getOwnPropertyDescriptor(V.prototype, "searchBoxClass"), V.prototype), H(V.prototype, "ariaLabel", [c], Object.getOwnPropertyDescriptor(V.prototype, "ariaLabel"), V.prototype), H(V.prototype, "selectSearch", [u], Object.getOwnPropertyDescriptor(V.prototype, "selectSearch"), V.prototype), H(V.prototype, "selectSearchAndFocus", [u], Object.getOwnPropertyDescriptor(V.prototype, "selectSearchAndFocus"), V.prototype), H(V.prototype, "setSearchText", [u], Object.getOwnPropertyDescriptor(V.prototype, "setSearchText"), V.prototype), H(V.prototype, "setFocused", [u], Object.getOwnPropertyDescriptor(V.prototype, "setFocused"), V.prototype), H(V.prototype, "handleBackAction", [u], Object.getOwnPropertyDescriptor(V.prototype, "handleBackAction"), V.prototype), H(V.prototype, "closeSearch", [u], Object.getOwnPropertyDescriptor(V.prototype, "closeSearch"), V.prototype), H(V.prototype, "clearActiveFilters", [u], Object.getOwnPropertyDescriptor(V.prototype, "clearActiveFilters"), V.prototype), H(V.prototype, "resetSearchButtonState", [u], Object.getOwnPropertyDescriptor(V.prototype, "resetSearchButtonState"), V.prototype), H(V.prototype, "handleSearchAction", [u], Object.getOwnPropertyDescriptor(V.prototype, "handleSearchAction"), V.prototype), H(V.prototype, "openOverlayWithoutInputFocus", [u], Object.getOwnPropertyDescriptor(V.prototype, "openOverlayWithoutInputFocus"), V.prototype), H(V.prototype, "closeSessions", [u], Object.getOwnPropertyDescriptor(V.prototype, "closeSessions"), V.prototype), H(V.prototype, "closeExhibitors", [u], Object.getOwnPropertyDescriptor(V.prototype, "closeExhibitors"), V.prototype), H(V.prototype, "resetSearchBox", [u], Object.getOwnPropertyDescriptor(V.prototype, "resetSearchBox"), V.prototype), H(V.prototype, "syncWithUIState", [u], Object.getOwnPropertyDescriptor(V.prototype, "syncWithUIState"), V.prototype), H(V.prototype, "actionButtonIcon", [c], Object.getOwnPropertyDescriptor(V.prototype, "actionButtonIcon"), V.prototype), H(V.prototype, "clearAndSelectSearch", [u], Object.getOwnPropertyDescriptor(V.prototype, "clearAndSelectSearch"), V.prototype), H(V.prototype, "backMode", [c], Object.getOwnPropertyDescriptor(V.prototype, "backMode"), V.prototype), H(V.prototype, "isMobileDetailsMode", [c], Object.getOwnPropertyDescriptor(V.prototype, "isMobileDetailsMode"), V.prototype), H(V.prototype, "shouldShowTitle", [c], Object.getOwnPropertyDescriptor(V.prototype, "shouldShowTitle"), V.prototype), H(V.prototype, "searchState", [c], Object.getOwnPropertyDescriptor(V.prototype, "searchState"), V.prototype), V), W, Jn;
function Yn(e, t, n, r) {
	n && Object.defineProperty(e, t, {
		enumerable: n.enumerable,
		configurable: n.configurable,
		writable: n.writable,
		value: n.initializer ? n.initializer.call(r) : void 0
	});
}
function G(e, t, n, r, i) {
	var a = {};
	return Object.keys(r).forEach(function(e) {
		a[e] = r[e];
	}), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = n.slice().reverse().reduce(function(n, r) {
		return r(e, t, n) || n;
	}, a), i && a.initializer !== void 0 && (a.value = a.initializer ? a.initializer.call(i) : void 0, a.initializer = void 0), a.initializer === void 0 ? (Object.defineProperty(e, t, a), null) : a;
}
var K = {
	selectedTracks: [],
	selectedVenues: [],
	selectedSpeakers: [],
	date: "all",
	timeOfDay: "all",
	sortOrder: "desc",
	use24hFormat: !1,
	showBookmarksOnly: !1,
	showLiveOnly: !1
}, Xn = (W = class extends xt {
	constructor(e) {
		super(e), Yn(this, "state", Jn, this);
	}
	createInitialFilters() {
		let e = {};
		return Object.keys(K).forEach((t) => {
			e[t] = {
				value: K[t],
				pending: K[t]
			};
		}), e;
	}
	setSearchText(e) {
		this.state.searchText = e;
	}
	setPending(e, t) {
		this.state.filters[e].pending = t;
	}
	applyFilters() {
		this.commitFilters(), this.updateUIState();
	}
	commitFilters() {
		let { filters: e } = this.state, t = e.selectedTracks.value.length > 0, n = e.selectedVenues.value.length > 0;
		Object.keys(e).forEach((t) => {
			e[t].value = e[t].pending;
		});
		let r = e.selectedTracks.value.length > 0, i = e.selectedVenues.value.length > 0;
		t !== r && this.rootStore.shortcutRegistry.updateActivationOrderFromState("sessions", "tracks", t, r), n !== i && this.rootStore.shortcutRegistry.updateActivationOrderFromState("sessions", "venues", n, i), this.state.selectedItems = [...this.state.pendingItems], this.state.isOpen = !1;
	}
	resetFilters() {
		let { filters: e } = this.state;
		Object.keys(K).forEach((t) => {
			e[t].pending = K[t];
		}), this.state.pendingItems = [], this.state.searchText = "";
	}
	resetAndApplyFilters() {
		let { filters: e } = this.state, t = e.selectedTracks.value.length > 0, n = e.selectedVenues.value.length > 0;
		this.resetFilters(), Object.keys(e).forEach((t) => {
			e[t].value = e[t].pending;
		}), t !== !1 && this.rootStore.shortcutRegistry.updateActivationOrderFromState("sessions", "tracks", t, !1), n !== !1 && this.rootStore.shortcutRegistry.updateActivationOrderFromState("sessions", "venues", n, !1), this.state.selectedItems = [], this.state.isOpen = !1, this.rootStore.uiState.list = {
			type: "sessions",
			text: "",
			focused: !1
		};
	}
	openFilter() {
		this.state.isOpen = !0, this.state.pendingItems = [...this.state.selectedItems];
		let { filters: e } = this.state;
		Object.keys(e).forEach((t) => {
			e[t].pending = e[t].value;
		});
	}
	closeFilter() {
		this.state.isOpen = !1, this.state.pendingItems = [...this.state.selectedItems];
		let { filters: e } = this.state;
		Object.keys(e).forEach((t) => {
			e[t].pending = e[t].value;
		});
	}
	openFilterWithSections(e) {
		this.state.visibleSections = e, this.openFilter();
	}
	get activeFiltersCount() {
		let { filters: e } = this.state, t = 0;
		return Object.keys(K).forEach((n) => {
			let r = e[n].value, i = K[n];
			Array.isArray(i) && Array.isArray(r) ? r.length > 0 && t++ : r !== i && t++;
		}), t;
	}
	updateUIState() {
		this.rootStore.uiState.list = {
			type: "sessions",
			text: "",
			focused: !1
		}, this.rootStore.searchStore.setFocused(!0);
	}
	getFilteredItems() {
		return [];
	}
}, Jn = G(W.prototype, "state", [l], {
	configurable: !0,
	enumerable: !0,
	writable: !0,
	initializer: function() {
		return {
			isOpen: !1,
			selectedItems: [],
			pendingItems: [],
			searchText: "",
			visibleSections: [
				"tracks",
				"venues",
				"speakers",
				"date",
				"time",
				"sort",
				"settings"
			],
			filters: this.createInitialFilters()
		};
	}
}), G(W.prototype, "setSearchText", [u], Object.getOwnPropertyDescriptor(W.prototype, "setSearchText"), W.prototype), G(W.prototype, "setPending", [u], Object.getOwnPropertyDescriptor(W.prototype, "setPending"), W.prototype), G(W.prototype, "applyFilters", [u], Object.getOwnPropertyDescriptor(W.prototype, "applyFilters"), W.prototype), G(W.prototype, "commitFilters", [u], Object.getOwnPropertyDescriptor(W.prototype, "commitFilters"), W.prototype), G(W.prototype, "resetFilters", [u], Object.getOwnPropertyDescriptor(W.prototype, "resetFilters"), W.prototype), G(W.prototype, "resetAndApplyFilters", [u], Object.getOwnPropertyDescriptor(W.prototype, "resetAndApplyFilters"), W.prototype), G(W.prototype, "openFilter", [u], Object.getOwnPropertyDescriptor(W.prototype, "openFilter"), W.prototype), G(W.prototype, "closeFilter", [u], Object.getOwnPropertyDescriptor(W.prototype, "closeFilter"), W.prototype), G(W.prototype, "openFilterWithSections", [u], Object.getOwnPropertyDescriptor(W.prototype, "openFilterWithSections"), W.prototype), G(W.prototype, "activeFiltersCount", [c], Object.getOwnPropertyDescriptor(W.prototype, "activeFiltersCount"), W.prototype), W), Zn = class {
	constructor() {
		this.providers = /* @__PURE__ */ new Map(), this.activationOrder = /* @__PURE__ */ new Map();
	}
	register(e) {
		if (!(e != null && e.id)) throw Error("Provider must have a valid id");
		this.providers.set(e.id, e);
	}
	unregister(e) {
		this.providers.delete(e), this.activationOrder.delete(e);
	}
	getShortcuts(e) {
		let t = this.providers.get(e);
		if (!t) return [];
		let n = t.createShortcuts(), r = this.activationOrder.get(e);
		return r ? this.sortShortcuts(n, r) : n;
	}
	sortShortcuts(e, t) {
		let n = new Map(t.map((e, t) => [e, t]));
		return e.sort((e, t) => {
			if (e.active !== t.active) return e.active ? -1 : 1;
			if (e.active && t.active) {
				let r = n.get(e.id), i = n.get(t.id);
				return r !== void 0 && i !== void 0 ? r - i : (r === void 0 ? 0 : -1) - (i === void 0 ? 0 : -1);
			}
			return 0;
		});
	}
	handleShortcutClick(e, t) {
		var n;
		let r = this.providers.get(e);
		if (!r) return;
		let i = r.createShortcuts().find((e) => e.id === t), a = (n = i == null ? void 0 : i.active) != null && n;
		r.handleShortcutClick(t);
		let o = this.isShortcutActive(r, t);
		this.reportClick(i, a, o), a !== o && this.updateActivationOrder(e, t, a, o);
	}
	reportClick(e, t, n) {
		if (!e || !(e.action === "custom" || !t && n)) return;
		let r = e.label || e.id;
		r && He("sbtnview", r, "shortcut");
	}
	isShortcutActive(e, t) {
		var n, r;
		return (n = (r = e.createShortcuts().find((e) => e.id === t)) == null ? void 0 : r.active) != null && n;
	}
	handleShortcutReset(e, t) {
		let n = this.providers.get(e);
		if (!(n != null && n.handleShortcutReset)) return;
		n.handleShortcutReset(t);
		let r = this.activationOrder.get(e);
		r != null && r.includes(t) && this.updateActivationOrder(e, t, !0, !1);
	}
	updateActivationOrder(e, t, n, r) {
		let i = this.activationOrder.get(e) || [], a;
		if (!n && r) a = i.includes(t) ? i : [...i, t];
		else if (n && !r) a = i.filter((e) => e !== t);
		else return;
		a.length > 0 ? this.activationOrder.set(e, a) : this.activationOrder.delete(e);
	}
	updateActivationOrderFromState(e, t, n, r) {
		this.updateActivationOrder(e, t, n, r);
	}
	shouldShowShortcuts(e) {
		var t, n;
		let r = this.providers.get(e);
		return (t = r == null || (n = r.shouldShowShortcuts) == null ? void 0 : n.call(r)) == null || t;
	}
	getRegisteredProviders() {
		return Array.from(this.providers.keys());
	}
	isProviderRegistered(e) {
		return this.providers.has(e);
	}
	clear() {
		this.providers.clear(), this.activationOrder.clear();
	}
}, q, Qn, $n, J, er;
function tr(e, t, n, r) {
	n && Object.defineProperty(e, t, {
		enumerable: n.enumerable,
		configurable: n.configurable,
		writable: n.writable,
		value: n.initializer ? n.initializer.call(r) : void 0
	});
}
function Y(e, t, n, r, i) {
	var a = {};
	return Object.keys(r).forEach(function(e) {
		a[e] = r[e];
	}), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = n.slice().reverse().reduce(function(n, r) {
		return r(e, t, n) || n;
	}, a), i && a.initializer !== void 0 && (a.value = a.initializer ? a.initializer.call(i) : void 0, a.initializer = void 0), a.initializer === void 0 ? (Object.defineProperty(e, t, a), null) : a;
}
var nr = (q = class {
	constructor(e) {
		tr(this, "value", Qn, this), tr(this, "pending", $n, this), this.value = e, this.pending = e;
	}
	setValue(e) {
		this.pending = e;
	}
	apply() {
		this.value = this.pending;
	}
	reset() {
		this.pending = this.value;
	}
}, Qn = Y(q.prototype, "value", [l], {
	configurable: !0,
	enumerable: !0,
	writable: !0,
	initializer: null
}), $n = Y(q.prototype, "pending", [l], {
	configurable: !0,
	enumerable: !0,
	writable: !0,
	initializer: null
}), Y(q.prototype, "setValue", [u], Object.getOwnPropertyDescriptor(q.prototype, "setValue"), q.prototype), Y(q.prototype, "apply", [u], Object.getOwnPropertyDescriptor(q.prototype, "apply"), q.prototype), Y(q.prototype, "reset", [u], Object.getOwnPropertyDescriptor(q.prototype, "reset"), q.prototype), q), rr = (J = class {
	constructor(e) {
		this.rootStore = void 0, tr(this, "state", er, this), this.rootStore = e;
	}
	get activeFiltersCount() {
		let e = 0, { filters: t } = this.state;
		return t.selectedCompanies.value.length > 0 && e++, t.selectedJobTitles.value.length > 0 && e++, e;
	}
	applyFilters() {
		let { filters: e } = this.state;
		e.selectedCompanies.apply(), e.selectedJobTitles.apply(), this.closeFilter();
	}
	resetFilters() {
		let { filters: e } = this.state;
		e.selectedCompanies.pending = [], e.selectedJobTitles.pending = [];
	}
	resetAndApplyFilters() {
		this.resetFilters(), this.applyFilters();
	}
	clearAllFilters() {
		let { filters: e } = this.state;
		e.selectedCompanies.pending = [], e.selectedJobTitles.pending = [], e.selectedCompanies.value = [], e.selectedJobTitles.value = [];
	}
	openFilter() {
		this.state.isOpen = !0;
	}
	closeFilter() {
		this.state.isOpen = !1;
	}
	openFilterWithSections(e) {
		this.state.visibleSections = e, this.openFilter();
	}
	setPending(e, t) {
		this.state.filters[e].setValue(t);
	}
	toggleCompanyFilter(e) {
		let { selectedCompanies: t } = this.state.filters, n = t.value;
		n.includes(e) ? t.setValue(n.filter((t) => t !== e)) : t.setValue([...n, e]);
	}
	toggleJobTitleFilter(e) {
		let { selectedJobTitles: t } = this.state.filters, n = t.value;
		n.includes(e) ? t.setValue(n.filter((t) => t !== e)) : t.setValue([...n, e]);
	}
	getDefaultValues() {
		return {
			selectedCompanies: [],
			selectedJobTitles: []
		};
	}
}, er = Y(J.prototype, "state", [l], {
	configurable: !0,
	enumerable: !0,
	writable: !0,
	initializer: function() {
		return {
			isOpen: !1,
			filters: {
				selectedCompanies: new nr([]),
				selectedJobTitles: new nr([])
			},
			visibleSections: ["companies", "jobTitles"]
		};
	}
}), Y(J.prototype, "activeFiltersCount", [c], Object.getOwnPropertyDescriptor(J.prototype, "activeFiltersCount"), J.prototype), Y(J.prototype, "applyFilters", [u], Object.getOwnPropertyDescriptor(J.prototype, "applyFilters"), J.prototype), Y(J.prototype, "resetFilters", [u], Object.getOwnPropertyDescriptor(J.prototype, "resetFilters"), J.prototype), Y(J.prototype, "resetAndApplyFilters", [u], Object.getOwnPropertyDescriptor(J.prototype, "resetAndApplyFilters"), J.prototype), Y(J.prototype, "clearAllFilters", [u], Object.getOwnPropertyDescriptor(J.prototype, "clearAllFilters"), J.prototype), Y(J.prototype, "openFilter", [u], Object.getOwnPropertyDescriptor(J.prototype, "openFilter"), J.prototype), Y(J.prototype, "closeFilter", [u], Object.getOwnPropertyDescriptor(J.prototype, "closeFilter"), J.prototype), Y(J.prototype, "openFilterWithSections", [u], Object.getOwnPropertyDescriptor(J.prototype, "openFilterWithSections"), J.prototype), Y(J.prototype, "setPending", [u], Object.getOwnPropertyDescriptor(J.prototype, "setPending"), J.prototype), Y(J.prototype, "toggleCompanyFilter", [u], Object.getOwnPropertyDescriptor(J.prototype, "toggleCompanyFilter"), J.prototype), Y(J.prototype, "toggleJobTitleFilter", [u], Object.getOwnPropertyDescriptor(J.prototype, "toggleJobTitleFilter"), J.prototype), J), ir = {
	uitestdemo: [{
		id: "connected-business-tour",
		layers: [{
			floor: "1",
			id: "Pathway_1"
		}, {
			floor: "2",
			id: "Pathway_2"
		}],
		name: "Connected Business Tour",
		points: [
			"2345",
			"coffee-or-2119",
			"11-or-1289"
		]
	}],
	uitest2026: [
		{
			id: "knowledge-trail",
			layers: [{
				floor: "1",
				id: "Pathway_1"
			}],
			name: "Knowledge Trail",
			description: "Designed for attendees focused on learning sessions and hands-on workshops, this route provides a clear path through the main educational areas of the event. It ensures quick access to conference rooms, interactive workshops, and the Innovation Lab, allowing participants to maximize their time, gain new knowledge, and engage directly with practical demonstrations.",
			points: [
				"2345",
				"coffee-or-2119",
				"11-or-1289",
				"255",
				"729"
			]
		},
		{
			id: "vip-express",
			layers: [{
				floor: "1",
				id: "Pathway_2"
			}],
			name: "VIP Express",
			description: "A reserved route created specifically for VIP guests, allowing them to move efficiently between exclusive areas without interruptions. It connects the VIP Lounge with private meeting rooms and a dedicated exit, ensuring comfort, privacy, and quick access to high-priority zones throughout the event.",
			points: [
				"365",
				"burger-point",
				"backyard-or-1813",
				"2122",
				"2164",
				"mp12",
				"11-or-1289"
			]
		},
		{
			id: "startup-discovery-walk",
			layers: [{
				floor: "1",
				id: "Pathway_3"
			}],
			name: "Startup Discovery Walk",
			description: "A route designed for attendees interested in exploring the newest and most innovative companies. It guides visitors through the Innovation Hub and Startup Pavilion, finishing at the Pitch Stage where emerging businesses showcase their ideas. This path helps attendees quickly discover fresh solutions and connect with founders shaping the future of logistics and supply chain.",
			points: [
				"mc7",
				"1895",
				"coffee-or-2183",
				"2345",
				"innovation-stage-or-1303",
				"biergarten-or-620",
				"spa-or-573"
			]
		},
		{
			id: "global-networking-path",
			layers: [{
				floor: "1",
				id: "Pathway_4"
			}],
			name: "Global Networking Path",
			description: "Created for participants who want to expand their global connections. This route leads from the Main Hall to the International Pavilion, highlighting exhibitors from around the world, and continues to the Networking Lounge. It ensures a smooth flow for meeting international partners, discovering global solutions, and engaging in meaningful business conversations.",
			points: [
				"puppy-park-or-184",
				"ocado-intelligent-automation",
				"533",
				"mocktails-or-941",
				"infios",
				"slip-robotics",
				"penske-transportation-solutions",
				"headshot-studio-or-1988",
				"coffee-or-2183"
			]
		}
	],
	uitestimex: [{
		id: "startup-discovery-walk",
		layers: [{
			floor: "1",
			id: "Pathway_1"
		}],
		name: "Startup Discovery Walk",
		description: "Designed for attendees focused on learning sessions and hands-on workshops, this route provides a clear path through the main educational areas of the event. It ensures quick access to conference rooms, interactive workshops, and the Innovation Lab, allowing participants to maximize their time, gain new knowledge, and engage directly with practical demonstrations.",
		points: [
			"84624",
			"E1235",
			"E1817",
			"E2105"
		]
	}, {
		id: "tech-innovation-trail",
		layers: [{
			floor: "1",
			id: "Pathway_2"
		}],
		name: "Tech Innovation Trail",
		description: "Focuses on technology exhibitors — mapping a route through companies offering event management software, AI tools, and digital signage solutions. Great for testing longer routes with multiple stops.",
		points: [
			"84628",
			"95111",
			"E1905",
			"39440",
			"91811",
			"40760",
			"10651"
		]
	}],
	ifaberlin2025clone: [{
		id: "knowledge-trail",
		layers: [{
			floor: "1",
			id: "Pathway_2"
		}],
		name: "Knowledge Trail",
		description: "Designed for attendees focused on learning sessions and hands-on workshops, this route provides a clear path through the main educational areas of the event. It ensures quick access to conference rooms, interactive workshops, and the Innovation Lab, allowing participants to maximize their time, gain new knowledge, and engage directly with practical demonstrations.",
		points: [
			"gr-ocg-107",
			"gr-ocg-109",
			"gr-ocg-102",
			"gr-ocg-104",
			"gr-ocg-106",
			"gr-ocg-111",
			"gr-ocg-110",
			"Seating Lounge | Outdoor 1"
		]
	}],
	demo: [{
		id: "the-green-journey",
		layers: [{
			floor: "1",
			id: "Pathway_1"
		}],
		name: "The Green Journey — From Idea to Implementation",
		description: "Embark on a curated journey through the exhibition’s most innovative sustainability zones. This tour highlights how modern industries rethink construction, manufacturing, and waste transformation to create a cleaner future. You’ll explore cutting-edge eco-materials, smart production methods, and next-generation recycling technologies — with a few pleasant stops along the way. The route ends in a relaxing lounge area, perfect for unwinding and reflecting on the ideas you’ve discovered.",
		points: [
			"RXhoaWJpdG9yXzE4OTc5ODY=",
			"RXhoaWJpdG9yXzE4OTc5NTg=",
			"RXhoaWJpdG9yXzE4OTc5Mzk=",
			"RXhoaWJpdG9yXzE4OTc5Mjc=",
			"Coffe Bar | Hall 5.1"
		]
	}],
	wcc2026: [
		{
			id: "learning-on-show-floor",
			layers: [{
				floor: "L",
				id: "Pathway_1"
			}],
			name: "Learning on show floor",
			points: [
				"Space Domain Theater | 723",
				"3307",
				"Unveiled Theater | 2241"
			]
		},
		{
			id: "networking-on-show-floor",
			layers: [{
				floor: "L",
				id: "Pathway_2"
			}],
			name: "Networking on show floor",
			points: [
				"Restaurant | 406",
				"Meeting Hub | 636",
				"Brew Lounge | 1163"
			]
		},
		{
			id: "welcome-and-information-journey",
			layers: [
				{
					floor: "1",
					id: "Pathway_5"
				},
				{
					floor: "3",
					id: "Pathway_3"
				},
				{
					floor: "2",
					id: "Pathway_4"
				},
				{
					floor: "C",
					id: "Pathway_6"
				}
			],
			name: "Welcome and Information Journey",
			description: "Follow this route to get oriented, find visitor services, complete registration, and enter the exhibition hall."
		}
	],
	lamma2026: [{
		id: "innovation-trail",
		layers: [{
			floor: "1",
			id: "Pathway_1"
		}],
		name: "Innovation Trail",
		points: [
			"12120485",
			"12120827",
			"12120497",
			"15552598",
			"15552695",
			"15552538",
			"12120220",
			"15552729",
			"15784756",
			"15552462",
			"12120351",
			"15552470"
		]
	}],
	fdhw2026: [
		{
			id: "association-of-convenience-stores-trail",
			layers: [{
				floor: "1",
				id: "Pathway_1"
			}],
			name: "Association of Convenience Stores Trail",
			description: "Show: IFE.\nData Types Allowed to View: IFE Visitors / IFE Suppliers / IFE Press / IFEM Visitors / IFEM Suppliers / IFEM Press.",
			points: [
				"16282530",
				"16282664",
				"16572191",
				"16282882",
				"16572254",
				"16282294",
				"16282527",
				"16282319",
				"16445163"
			]
		},
		{
			id: "newbies-at-the-pub-show",
			layers: [{
				floor: "1",
				id: "Pathway_2"
			}],
			name: "Newbies at The Pub Show",
			description: "Show: The Pub Show.\nData Types Allowed to View: Pub Visitor / Pub Supplier / Pub Press / HRC Visitor / HRC Supplier / HRC Press.",
			points: [
				"16282289",
				"16282507",
				"16282613",
				"16282283",
				"16282382",
				"16282792",
				"16830654",
				"16282656",
				"16282309",
				"16282902",
				"16282450",
				"16283034",
				"16282743",
				"16572201",
				"16282279",
				"16369552",
				"16282392",
				"16282603"
			]
		},
		{
			id: "chef-steve-munkley-mbe-s-top-picks",
			layers: [{
				floor: "1",
				id: "Pathway_3"
			}],
			name: "Chef Steve Munkley MBE's Top Picks",
			description: "Show: HRC.\nData Types Allowed to View: Pub Visitor / Pub Supplier / Pub Press / HRC Visitor / HRC Supplier / HRC Press.",
			points: [
				"16282438",
				"16282525",
				"16282753",
				"16282554",
				"16282784",
				"16282440",
				"16282479",
				"16282833",
				"PastryHQ | S1290",
				"16282914",
				"16282776"
			]
		},
		{
			id: "radford-chancellor-s-must-see-exhibitors",
			layers: [{
				floor: "1",
				id: "Pathway_4"
			}],
			name: "Radford Chancellor's Must See Exhibitors",
			description: "Show: HRC.\nData Types Allowed to View: Pub Visitor / Pub Supplier / Pub Press / HRC Visitor / HRC Supplier / HRC Press.",
			points: [
				"16282429",
				"16283073",
				"16600529"
			]
		},
		{
			id: "anna-sebastian-s-top-tipples",
			layers: [{
				floor: "1",
				id: "Pathway_5"
			}],
			name: "Anna Sebastian's Top Tipples",
			description: "Show: HRC & The Pub Show.\nData Types Allowed to View: Pub Visitor / Pub Supplier / Pub Press / HRC Visitor / HRC Supplier / HRC Press.",
			points: [
				"16282311",
				"16445141",
				"16837929",
				"16369552",
				"16282279",
				"16282289",
				"16282603"
			]
		},
		{
			id: "fcsi-members-trail",
			layers: [{
				floor: "1",
				id: "Pathway_6"
			}],
			name: "\xA0FCSI Members Trail",
			points: [
				"16282429",
				"16600529",
				"16282606",
				"16282806",
				"16282745",
				"16282964"
			]
		}
	],
	retailtechnologyshow2026: [{
		id: "innovation-awards-finalists",
		layers: [{
			floor: "1",
			id: "Pathway_1"
		}],
		name: "Innovation Awards Finalists",
		points: [
			"Business France | K10",
			"16528837",
			"16528943",
			"16528881",
			"16528816",
			"16529021",
			"16529050",
			"16528953",
			"16528893",
			"16529071"
		]
	}, {
		id: "zebra-partners-scavenger-hunt",
		layers: [{
			floor: "1",
			id: "Pathway_2"
		}],
		name: "Zebra Partners Scavenger Hunt",
		points: [
			"16528708",
			"16528793",
			"16529002",
			"16529036",
			"16529030",
			"16529038",
			"16528903",
			"16528855",
			"16528716",
			"16528967",
			"16528895",
			"16529088",
			"16529055",
			"16529024"
		]
	}]
}, X, ar, or, sr, cr;
function lr(e, t, n, r) {
	n && Object.defineProperty(e, t, {
		enumerable: n.enumerable,
		configurable: n.configurable,
		writable: n.writable,
		value: n.initializer ? n.initializer.call(r) : void 0
	});
}
function Z(e, t, n, r, i) {
	var a = {};
	return Object.keys(r).forEach(function(e) {
		a[e] = r[e];
	}), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = n.slice().reverse().reduce(function(n, r) {
		return r(e, t, n) || n;
	}, a), i && a.initializer !== void 0 && (a.value = a.initializer ? a.initializer.call(i) : void 0, a.initializer = void 0), a.initializer === void 0 ? (Object.defineProperty(e, t, a), null) : a;
}
var ur = 1, dr = (X = class {
	constructor(e) {
		this.rootStore = void 0, lr(this, "tours", ar, this), lr(this, "currentExpo", or, this), lr(this, "hasTours", sr, this), lr(this, "toursLoadError", cr, this), this.rootStore = e, this.loadTours();
	}
	loadTours() {
		try {
			if (this.currentExpo = we.EXPO || "default", this.toursLoadError = null, !this.isValidToursData(ir)) {
				this.toursLoadError = "Invalid tours data format", this.resetTours();
				return;
			}
			let e = ir[this.currentExpo] || [];
			if (!this.validateToursStructure(e)) {
				this.toursLoadError = "Invalid tour items structure", this.resetTours();
				return;
			}
			this.tours = e, this.hasTours = e.length > 0;
		} catch (e) {
			console.error("Error loading tours:", e), this.toursLoadError = e instanceof Error ? e.message : "Failed to load tours", this.resetTours();
		}
	}
	resetTours() {
		this.tours = [], this.hasTours = !1;
	}
	isValidToursData(e) {
		return typeof e == "object" && !!e && !Array.isArray(e);
	}
	validateToursStructure(e) {
		return Array.isArray(e) ? e.every((e) => e && typeof e == "object" && typeof e.id == "string" && Array.isArray(e.layers) && e.layers.length >= ur && (e.points === void 0 || Array.isArray(e.points))) : !1;
	}
	get tourItems() {
		return this.tours;
	}
	getTourById(e) {
		return this.tours.find((t) => t.id === e);
	}
	getToursByPoint(e) {
		return this.tours.filter((t) => {
			var n;
			return (n = t.points) == null ? void 0 : n.includes(e);
		});
	}
	getToursForExpo(e) {
		return this.isValidToursData(ir) && ir[e] || [];
	}
	get currentTour() {
		let { list: e } = this.rootStore.uiState;
		return e.type !== "multi-point-tour" || !this.isMultiPointTourList(e) ? null : this.getTourById(e.tourId) || null;
	}
	isMultiPointTourList(e) {
		return e.type === "multi-point-tour" && typeof e.tourId == "string";
	}
	get isActive() {
		return this.rootStore.uiState.list.type === "multi-point-tour";
	}
	get tourLayers() {
		let e = this.currentTour;
		return e ? e.layers.map((e) => this.rootStore.layerStore.findLayer(e.floor)).filter((e) => e != null) : [];
	}
	getTourLayerInfo(e) {
		let t = this.currentTour;
		if (t) return t.layers.find((t) => {
			let n = this.rootStore.layerStore.findLayer(t.floor);
			return n && (n.name === e || n.description === e);
		});
	}
	launchTour(e, t, n) {
		let r = this.validateTourForLaunch(e);
		if (r) return console.warn(`Cannot launch tour: ${r}`), !1;
		let i = e.layers[0].id, a = e.layers[0].floor;
		return e.points && e.points.length > 0 ? this.rootStore.fp.showPathway(i, e.points) : this.rootStore.fp.showPathwayOnly(i, a), this.rootStore.uiState.setTourTitle(t), this.rootStore.uiState.setTourDescription(n), this.rootStore.uiState.setIsMultiPointTour(!0), this.rootStore.uiState.setMultiPointTourList(e.id), window.setTimeout(() => {
			this.rootStore.showMap();
		}, navigator.userAgent.toLowerCase().indexOf("android") > -1 ? 400 : 50), !0;
	}
	validateTourForLaunch(e) {
		return e.layers.length < ur ? `Tour must have at least ${ur} layer` : null;
	}
	stopTour() {
		this.rootStore.uiState.setIsMultiPointTour(!1), this.rootStore.uiState.setPathwayOnlyMode(!1);
		let e = this.rootStore.uiState.list.type;
		(e === "tours" || e === "multi-point-tour") && (this.rootStore.uiState.list = {
			type: "search",
			text: "",
			focused: !1
		}), this.rootStore.fp.hidePathways();
	}
}, ar = Z(X.prototype, "tours", [l], {
	configurable: !0,
	enumerable: !0,
	writable: !0,
	initializer: function() {
		return [];
	}
}), or = Z(X.prototype, "currentExpo", [l], {
	configurable: !0,
	enumerable: !0,
	writable: !0,
	initializer: function() {
		return "";
	}
}), sr = Z(X.prototype, "hasTours", [l], {
	configurable: !0,
	enumerable: !0,
	writable: !0,
	initializer: function() {
		return !1;
	}
}), cr = Z(X.prototype, "toursLoadError", [l], {
	configurable: !0,
	enumerable: !0,
	writable: !0,
	initializer: function() {
		return null;
	}
}), Z(X.prototype, "loadTours", [u], Object.getOwnPropertyDescriptor(X.prototype, "loadTours"), X.prototype), Z(X.prototype, "resetTours", [u], Object.getOwnPropertyDescriptor(X.prototype, "resetTours"), X.prototype), Z(X.prototype, "tourItems", [c], Object.getOwnPropertyDescriptor(X.prototype, "tourItems"), X.prototype), Z(X.prototype, "currentTour", [c], Object.getOwnPropertyDescriptor(X.prototype, "currentTour"), X.prototype), Z(X.prototype, "isActive", [c], Object.getOwnPropertyDescriptor(X.prototype, "isActive"), X.prototype), Z(X.prototype, "tourLayers", [c], Object.getOwnPropertyDescriptor(X.prototype, "tourLayers"), X.prototype), Z(X.prototype, "launchTour", [u], Object.getOwnPropertyDescriptor(X.prototype, "launchTour"), X.prototype), Z(X.prototype, "stopTour", [u], Object.getOwnPropertyDescriptor(X.prototype, "stopTour"), X.prototype), X), Q, fr, pr;
function mr(e, t, n, r) {
	n && Object.defineProperty(e, t, {
		enumerable: n.enumerable,
		configurable: n.configurable,
		writable: n.writable,
		value: n.initializer ? n.initializer.call(r) : void 0
	});
}
function $(e, t, n, r, i) {
	var a = {};
	return Object.keys(r).forEach(function(e) {
		a[e] = r[e];
	}), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = n.slice().reverse().reduce(function(n, r) {
		return r(e, t, n) || n;
	}, a), i && a.initializer !== void 0 && (a.value = a.initializer ? a.initializer.call(i) : void 0, a.initializer = void 0), a.initializer === void 0 ? (Object.defineProperty(e, t, a), null) : a;
}
var hr = (Q = class {
	setResetCameraFn(e) {
		this.resetCameraFn = e;
	}
	constructor() {
		this.categoryStore = void 0, this.exhibitorStore = void 0, this.boothStore = void 0, this.uiState = void 0, this.overlayStore = void 0, this.routeStore = void 0, this.routePlannerStore = void 0, this.toursStore = void 0, this.maplibreStore = void 0, this.layerStore = void 0, this.intercomStore = void 0, this.eventStore = void 0, this.poiTypeStore = void 0, this.poiMarkerStore = void 0, this.heatmapStore = void 0, this.fuzzySearchEngineStore = void 0, this.categoryFilterStore = void 0, this.sessionsFilterStore = void 0, this.speakerStore = void 0, this.speakerFilterStore = void 0, this.searchStore = void 0, this.searchButtonsStore = void 0, this.bookmarksStore = void 0, this.urlFilterManager = void 0, this.shortcutRegistry = void 0, this.fp = void 0, mr(this, "initialized", fr, this), mr(this, "resetCameraFn", pr, this), this.categoryStore = new ae(this), this.exhibitorStore = new Ee(this), this.boothStore = new Pe(this), this.routeStore = new Be(this), this.routePlannerStore = new Cn(this), this.toursStore = new dr(this), this.uiState = new ue(this), this.overlayStore = new Zt(this), this.maplibreStore = new Yt(this), this.layerStore = new je(), this.intercomStore = new Lt(), this.eventStore = new re(this), this.heatmapStore = new te(), this.poiTypeStore = new sn(this), this.poiMarkerStore = new on(this), this.fuzzySearchEngineStore = new Mt([
			"name",
			"title",
			"fullName",
			"booths.name"
		]), this.categoryFilterStore = new Dt(this), this.sessionsFilterStore = new Xn(this), this.speakerStore = new le(this), this.speakerFilterStore = new rr(this), this.searchStore = new qn(this), this.searchButtonsStore = new Vn(this), this.bookmarksStore = new vt(this), this.urlFilterManager = new gt(this), this.shortcutRegistry = new Zn(), this.registerShortcutProviders();
	}
	selectExhibitor(e, t = !0) {
		this.uiState.hoveredExhibitor = null, this.uiState.details = e;
		var n = e.booths.filter((e) => e.visible), r = e.booths.filter((e) => !e.visible);
		!n.length && r.length && this.layerStore.updateVisibility(r[0].layer, !0), t && setTimeout(() => this.moveToList(e.booths.filter((e) => e.visible)), d || f ? 500 : 50);
	}
	selectBooth(e, t = !0) {
		var n, r;
		let i = Array.isArray(e) ? e : [e];
		this.uiState.details = (n = i[0]) == null ? null : n, i.length === 1 && (r = i[0].schedule) != null && r.length && (this.uiState.desiredOverlaySize = "medium"), i.length === 1 && i[0].layer && !i[0].visible && this.layerStore.mode === Ne.Radio && this.layerStore.updateVisibility(i[0].layer, !0), t && setTimeout(() => this.moveToList(i), d || f ? 500 : 50);
	}
	reset() {
		let e = window.__searchi;
		e && e.querySelector && e.querySelector("input[type=search]") && e.querySelector("input[type=search]").blur && e.querySelector("input[type=search]").blur(), window.setTimeout(() => {
			this.uiState.setKioskModeEnabled || n().then(() => {
				ee(() => {
					var e;
					this.selectSearch(""), this.uiState.details = null, (e = this.resetCameraFn) == null || e.call(this), this.uiState.menu = !1, this.searchStore.resetSearchBox(), this.searchButtonsStore.clearAllFilters();
				}), setTimeout(() => {
					ee(() => {
						this.uiState.inIdle = !0;
					});
				}, 100);
			});
		}, 1e3);
	}
	selectNone() {
		window.__resett && window.__resett(), this.uiState.details = this.uiState.selectedCategory;
	}
	selectBookmarks() {
		this.uiState.details = null, this.uiState.list = { type: "bookmarks" };
	}
	selectVisited() {
		this.uiState.details = null, this.uiState.list = { type: "visited" };
	}
	selectLanguage() {
		this.uiState.details = null, this.uiState.list = { type: e };
	}
	selectCategory(e) {
		var t;
		window.__resett && window.__resett(), this.uiState.details = e, this.uiState.list = {
			type: "category",
			category: e
		}, this.uiState.desiredOverlaySize = "full", e.exhibitors.find((e) => e.booths.find((e) => e.visible)) || this.layerStore.updateVisibility((t = e.exhibitors[0]) == null || (t = t.booths[0]) == null ? void 0 : t.layer, !0), setTimeout(() => {
			this.uiState.moveToBooths = e.exhibitors.filter((e) => e.booths.find((e) => e.visible)).flatMap((e) => e.booths);
		}, 200);
	}
	selectEventItem(e, t = !0) {
		if (this.uiState.hoveredExhibitor = null, this.uiState.details = e, this.uiState.desiredOverlaySize = "medium", e.boothId) {
			let t = this.boothStore.booths.find((t) => t.id === e.boothId);
			t && t.layer && !t.visible && this.layerStore.mode === Ne.Radio && this.layerStore.updateVisibility(t.layer, !0);
		}
		t && setTimeout(() => {
			if (e.boothId) {
				let t = this.boothStore.booths.find((t) => t.id === e.boothId);
				t && this.moveToList([t]);
			}
		}, d || f ? 500 : 50);
	}
	selectSearch(e) {
		window.__resett && window.__resett(), this.uiState.details = null, this.speakerStore.clearSelectedSpeaker(), this.uiState.list = {
			type: "search",
			text: ce(e, Object.keys(this.uiState.mapSettings).map((e) => `${e}=`)),
			focused: !1
		}, this.uiState.activeListIndex = -1;
	}
	clickBookmarks() {
		window.__resett && window.__resett(), this.uiState.menu = !1, this.selectBookmarks(), this.moveToList(), this.showMap();
	}
	clickVisited() {
		window.__resett && window.__resett(), this.uiState.menu = !1, this.selectVisited(), this.moveToList(), this.showMap();
	}
	clickLanguage() {
		window.__resett && window.__resett(), this.uiState.menu = !1, this.selectLanguage();
	}
	clickCategory(e) {
		window.__resett && window.__resett(), this.uiState.menu = !1, this.selectCategory(e), this.uiState.onCategoryClick && this.uiState.onCategoryClick({
			id: e.id,
			name: e.name,
			exhibitors: e.exhibitors.map((e) => e.id)
		}), setTimeout(() => {
			this.moveToList(), this.showMap();
		}, 100);
	}
	clickSeminars() {
		this.clickCategory(this.categoryStore.seminarsCategory);
	}
	clickBoothInList(e) {
		window.__resett && window.__resett(), this.uiState.hoveredBooth = null, this.selectBooth(e), this.moveToList([e]), this.showMap();
	}
	clickBoothInList2(e) {
		window.__resett && window.__resett(), this.uiState.hoveredBooth = null, this.selectBooth(e, !1), window.setTimeout(() => {
			this.moveToList([e]), this.showMap();
		}, navigator.userAgent.toLowerCase().indexOf("android") > -1 ? 400 : 50);
	}
	clickBooth(e) {
		var t, n, r, i;
		let a = this.uiState.details;
		if (this.uiState.menu = !1, this.uiState.list.type === "sessions" && this.searchStore.selectSearch(), this.uiState.list.type === "speakers" && this.searchStore.selectSearch(), this.uiState.list.type === "tours" && this.searchStore.selectSearch(), this.uiState.list.type === "multi-point-tour" && this.searchStore.selectSearch(), !((t = this.uiState.selectedRoute) != null && t.from && (n = this.uiState.selectedRoute) != null && n.to)) {
			if ((r = this.uiState.selectedRoute) != null && r.to && !((i = this.uiState.selectedRoute) != null && i.from) && e) {
				this.routeStore.setStartPoint(e);
				return;
			}
			if (e) this.routeStore.tempToBooth = e;
			else {
				this.uiState.details = null, this.fp.hidePathways(), this.uiState.list = {
					type: "search",
					text: "",
					focused: !1
				}, this.uiState.onBoothClick && this.uiState.onBoothClick({ target: null });
				return;
			}
			if (this.uiState.onBoothClick) {
				let t = {
					name: "",
					description: ""
				}, n = { target: {
					...e,
					layer: e.layer || t
				} };
				this.uiState.onBoothClick(n);
			}
			if (e.exhibitors.length === 1 && e instanceof Me) {
				let t = e.exhibitors[0];
				a === t ? ze(Ve.ViewBooth, e.name) : this.heatmapStore.forceTrack = {
					action: Ve.ViewBooth,
					label: e.name,
					exhibitor: t
				}, this.selectExhibitor(t, !1);
			} else a === e && ze(Ve.ViewBooth, e.name), this.selectBooth(e, !1);
			this.showMap();
		}
	}
	clickExhibitor2(e) {
		this.selectExhibitor(e, !0), this.showMap();
	}
	clickExhibitor(e) {
		window.setTimeout(() => {
			this.clickExhibitor2(e);
		}, navigator.userAgent.toLowerCase().indexOf("android") > -1 ? 400 : 50);
	}
	showMap() {
		this.uiState.overlayPosition === "bottom" && ye && (this.uiState.desiredOverlaySize = "medium");
	}
	showOverlay() {
		this.uiState.overlayPosition === "bottom" && (this.uiState.desiredOverlaySize = "full");
	}
	toggleMapOverlay() {
		this.uiState.overlayPosition === "bottom" && this.uiState.overlaySize === "full" ? this.uiState.desiredOverlaySize = "medium" : this.uiState.overlayPosition === "bottom" && this.uiState.overlaySize !== "full" && (this.uiState.desiredOverlaySize = "full");
	}
	moveToList(e) {
		e = e || this.uiState.listItems;
		let t = [];
		e.forEach((e) => {
			if (e instanceof Oe) t.push(...e.booths.filter((e) => e.visible));
			else if (e instanceof De) e.visible && t.push(e);
			else if (e instanceof ne && e.boothId) {
				let n = this.boothStore.boothById.get(e.boothId);
				n != null && n.visible && t.push(n);
			} else e instanceof oe && this.speakerStore.getEventsBySpeaker(e.id).forEach((e) => {
				if (!e.boothId) return;
				let n = this.boothStore.boothById.get(e.boothId);
				n != null && n.visible && t.push(n);
			});
		}), this.uiState.moveToBooths = t;
	}
	moveToExhibitor(e) {
		this.moveToList([e]);
	}
	changeActiveListIndex(e) {
		let t = this.uiState.activeListIndex + e;
		t = Math.max(0, Math.min(this.uiState.listItems.length - 1, t)), this.uiState.activeListIndex = t;
	}
	toggleModal(e) {
		this.uiState.modalActive[e] = !this.uiState.modalActive[e];
	}
	openGallery() {
		this.uiState.galleryActive = !0;
	}
	closeGallery() {
		this.uiState.galleryActive = !1;
	}
	openActiveListItem() {
		let e = this.uiState.listItems[this.uiState.activeListIndex];
		e && (s.log("Opening", e), e instanceof Oe ? this.clickExhibitor(e) : e instanceof se ? this.clickCategory(e) : e instanceof De && this.clickBoothInList2(e));
	}
	toggleCategoryFilter() {
		this.uiState.categoryFilterOpen = !this.uiState.categoryFilterOpen;
	}
	applyCategoryFilters(e) {
		this.uiState.selectedCategoryFilters = e, this.uiState.categoryFilterOpen = !1;
	}
	get filteredExhibitors() {
		return this.uiState.selectedCategoryFilters.length === 0 ? this.exhibitorStore.exhibitors : this.exhibitorStore.exhibitors.filter((e) => this.uiState.selectedCategoryFilters.some((t) => e.categories.some((e) => e.id === t.id)));
	}
	selectSessions() {
		this.uiState.list = {
			type: "sessions",
			text: "",
			focused: !1
		}, this.uiState.menu = !1, this.uiState.selectedTrack = null, this.searchButtonsStore.setSubButtonId(null), this.searchButtonsStore.subButtonsEnabled && this.searchButtonsStore.showSubButtons("sessions"), f && (this.uiState.desiredOverlaySize = "full");
	}
	selectExhibitors() {
		this.uiState.list = {
			type: "exhibitors",
			text: "",
			focused: !1
		}, this.uiState.menu = !1, f && (this.uiState.desiredOverlaySize = "full");
	}
	selectTours() {
		this.uiState.list = {
			type: "tours",
			text: "",
			focused: !1
		}, this.uiState.menu = !1, f && (this.uiState.desiredOverlaySize = "full");
	}
	selectSpeakers() {
		this.uiState.list = {
			type: "speakers",
			text: "",
			focused: !1
		}, this.uiState.menu = !1, f && (this.uiState.desiredOverlaySize = "full");
	}
	selectSpeaker(e, t = !0) {
		this.speakerStore.selectSpeaker(e, t);
	}
	resetFilters() {
		this.searchButtonsStore.clearAllFilters();
	}
	registerShortcutProviders() {
		this.shortcutRegistry.register(new mn(this)), this.shortcutRegistry.register(new _n(this)), this.shortcutRegistry.register(new dn(this));
	}
}, fr = $(Q.prototype, "initialized", [l], {
	configurable: !0,
	enumerable: !0,
	writable: !0,
	initializer: function() {
		return !1;
	}
}), pr = $(Q.prototype, "resetCameraFn", [l], {
	configurable: !0,
	enumerable: !0,
	writable: !0,
	initializer: null
}), $(Q.prototype, "setResetCameraFn", [u], Object.getOwnPropertyDescriptor(Q.prototype, "setResetCameraFn"), Q.prototype), $(Q.prototype, "selectExhibitor", [u], Object.getOwnPropertyDescriptor(Q.prototype, "selectExhibitor"), Q.prototype), $(Q.prototype, "selectBooth", [u], Object.getOwnPropertyDescriptor(Q.prototype, "selectBooth"), Q.prototype), $(Q.prototype, "reset", [u], Object.getOwnPropertyDescriptor(Q.prototype, "reset"), Q.prototype), $(Q.prototype, "selectNone", [u], Object.getOwnPropertyDescriptor(Q.prototype, "selectNone"), Q.prototype), $(Q.prototype, "selectBookmarks", [u], Object.getOwnPropertyDescriptor(Q.prototype, "selectBookmarks"), Q.prototype), $(Q.prototype, "selectVisited", [u], Object.getOwnPropertyDescriptor(Q.prototype, "selectVisited"), Q.prototype), $(Q.prototype, "selectLanguage", [u], Object.getOwnPropertyDescriptor(Q.prototype, "selectLanguage"), Q.prototype), $(Q.prototype, "selectCategory", [u], Object.getOwnPropertyDescriptor(Q.prototype, "selectCategory"), Q.prototype), $(Q.prototype, "selectEventItem", [u], Object.getOwnPropertyDescriptor(Q.prototype, "selectEventItem"), Q.prototype), $(Q.prototype, "selectSearch", [u], Object.getOwnPropertyDescriptor(Q.prototype, "selectSearch"), Q.prototype), $(Q.prototype, "clickBookmarks", [u], Object.getOwnPropertyDescriptor(Q.prototype, "clickBookmarks"), Q.prototype), $(Q.prototype, "clickVisited", [u], Object.getOwnPropertyDescriptor(Q.prototype, "clickVisited"), Q.prototype), $(Q.prototype, "clickLanguage", [u], Object.getOwnPropertyDescriptor(Q.prototype, "clickLanguage"), Q.prototype), $(Q.prototype, "clickCategory", [u], Object.getOwnPropertyDescriptor(Q.prototype, "clickCategory"), Q.prototype), $(Q.prototype, "clickSeminars", [u], Object.getOwnPropertyDescriptor(Q.prototype, "clickSeminars"), Q.prototype), $(Q.prototype, "clickBoothInList", [u], Object.getOwnPropertyDescriptor(Q.prototype, "clickBoothInList"), Q.prototype), $(Q.prototype, "clickBoothInList2", [u], Object.getOwnPropertyDescriptor(Q.prototype, "clickBoothInList2"), Q.prototype), $(Q.prototype, "clickBooth", [u], Object.getOwnPropertyDescriptor(Q.prototype, "clickBooth"), Q.prototype), $(Q.prototype, "clickExhibitor2", [u], Object.getOwnPropertyDescriptor(Q.prototype, "clickExhibitor2"), Q.prototype), $(Q.prototype, "clickExhibitor", [u], Object.getOwnPropertyDescriptor(Q.prototype, "clickExhibitor"), Q.prototype), $(Q.prototype, "showMap", [u], Object.getOwnPropertyDescriptor(Q.prototype, "showMap"), Q.prototype), $(Q.prototype, "showOverlay", [u], Object.getOwnPropertyDescriptor(Q.prototype, "showOverlay"), Q.prototype), $(Q.prototype, "toggleMapOverlay", [u], Object.getOwnPropertyDescriptor(Q.prototype, "toggleMapOverlay"), Q.prototype), $(Q.prototype, "moveToList", [u], Object.getOwnPropertyDescriptor(Q.prototype, "moveToList"), Q.prototype), $(Q.prototype, "moveToExhibitor", [u], Object.getOwnPropertyDescriptor(Q.prototype, "moveToExhibitor"), Q.prototype), $(Q.prototype, "changeActiveListIndex", [u], Object.getOwnPropertyDescriptor(Q.prototype, "changeActiveListIndex"), Q.prototype), $(Q.prototype, "toggleModal", [u], Object.getOwnPropertyDescriptor(Q.prototype, "toggleModal"), Q.prototype), $(Q.prototype, "openGallery", [u], Object.getOwnPropertyDescriptor(Q.prototype, "openGallery"), Q.prototype), $(Q.prototype, "closeGallery", [u], Object.getOwnPropertyDescriptor(Q.prototype, "closeGallery"), Q.prototype), $(Q.prototype, "openActiveListItem", [u], Object.getOwnPropertyDescriptor(Q.prototype, "openActiveListItem"), Q.prototype), $(Q.prototype, "toggleCategoryFilter", [u], Object.getOwnPropertyDescriptor(Q.prototype, "toggleCategoryFilter"), Q.prototype), $(Q.prototype, "applyCategoryFilters", [u], Object.getOwnPropertyDescriptor(Q.prototype, "applyCategoryFilters"), Q.prototype), $(Q.prototype, "filteredExhibitors", [c], Object.getOwnPropertyDescriptor(Q.prototype, "filteredExhibitors"), Q.prototype), $(Q.prototype, "selectSessions", [u], Object.getOwnPropertyDescriptor(Q.prototype, "selectSessions"), Q.prototype), $(Q.prototype, "selectExhibitors", [u], Object.getOwnPropertyDescriptor(Q.prototype, "selectExhibitors"), Q.prototype), $(Q.prototype, "selectTours", [u], Object.getOwnPropertyDescriptor(Q.prototype, "selectTours"), Q.prototype), $(Q.prototype, "selectSpeakers", [u], Object.getOwnPropertyDescriptor(Q.prototype, "selectSpeakers"), Q.prototype), $(Q.prototype, "selectSpeaker", [u], Object.getOwnPropertyDescriptor(Q.prototype, "selectSpeaker"), Q.prototype), $(Q.prototype, "resetFilters", [u], Object.getOwnPropertyDescriptor(Q.prototype, "resetFilters"), Q.prototype), Q);
//#endregion
//#region src/store/create-live-plan.ts
function gr() {
	let e = new hr();
	de(e), o(() => de(null)), at(e), window.__store = fe;
}
//#endregion
export { gr as createLivePlan };