@expofp/floorplan
Version:
Interactive floor plan library for expos and events
236 lines (235 loc) • 8.95 kB
JavaScript
(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.7.8" };
var t = new e.Error().stack;
t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "67928a9e-5909-43b0-8203-9a439edf913a", e._sentryDebugIdIdentifier = "sentry-dbid-67928a9e-5909-43b0-8203-9a439edf913a");
} catch {}
})();
import { b as e, g as t, p as n, s as r, u as i, v as a } from "./i18n-BEer1tI4.js";
import { St as o, Ut as s, _t as c, dt as l, ft as u, o as d, pt as f } from "./store-DTwRqruF.js";
//#region src/components/Map/pointInConvexQuad.ts
function p(e, t) {
let n = 0;
for (let r = 0; r < 4; r++) {
let i = t[r], a = t[(r + 1) % 4], o = (a.x - i.x) * (e.y - i.y) - (a.y - i.y) * (e.x - i.x);
if (!Number.isFinite(o)) return !1;
if (o === 0) continue;
let s = o > 0 ? 1 : -1;
if (n === 0) n = s;
else if (n !== s) return !1;
}
return n !== 0;
}
//#endregion
//#region src/components/Map/visibleArea.ts
function m(e) {
let t = s(e.viewport.canvasToSvg({
x: 0,
y: 0
})), n = s(e.viewport.canvasToSvg({
x: e.canvas.clientWidth,
y: 0
})), r = s(e.viewport.canvasToSvg({
x: 0,
y: e.canvas.clientHeight
})), i = s(e.viewport.canvasToSvg({
x: e.canvas.clientWidth,
y: e.canvas.clientHeight
})), a = Math.min(t.x, n.x, r.x, i.x), o = Math.max(t.x, n.x, r.x, i.x), c = Math.min(t.y, n.y, r.y, i.y), l = Math.max(t.y, n.y, r.y, i.y);
return {
x: a,
y: c,
width: o - a,
height: l - c,
left: a,
right: o,
top: l,
bottom: c,
center: {
x: (a + o) / 2,
y: (c + l) / 2
},
corners: [
t,
n,
i,
r
]
};
}
function h(e, t) {
return p(t, m(e).corners);
}
//#endregion
//#region src/components/Kiosk/KioskStore.ts
var g, _, v, y, b, x;
function S(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 C(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 w = new (g = n({ keepAlive: !0 }), _ = n({ keepAlive: !0 }), v = n({ keepAlive: !0 }), y = class {
constructor() {
S(this, "savedKiosk", b, this), S(this, "statusMessages", x, this), this.statusMessageTimer = 0, this.initialPtScale = void 0;
}
get kiosk() {
return d.uiState.kioskData;
}
setKiosk(e) {
d.uiState.setKioskData(e);
}
get renderer() {
return d.rendererService.renderer;
}
getCameraState() {
let e = d.rendererService.getCameraState();
return e ? {
mapInitialPtScale: this.initialPtScale,
mapPtScale: e.ptScale,
mapCenterX: e.center.x,
mapCenterY: e.center.y,
mapRollDegrees: e.roll,
mapPitch: e.pitch
} : {};
}
get hasUnsavedChanges() {
let t = this.savedKiosk, n = e(this.kiosk);
if (!n || !t) return !!n != !!t;
let r = Object.keys(t), i = Object.keys(n);
if (r.length !== i.length) return !0;
for (let e of r) if (!(e in n) || t[e] !== n[e]) return !0;
return !1;
}
addStatusMessage(e) {
this.statusMessages = [{
...e,
id: Date.now()
}], this.startCleanupMessages();
}
clearStatusMessages() {
this.statusMessages = [];
}
startCleanupMessages() {
clearTimeout(this.statusMessageTimer), this.statusMessageTimer = window.setTimeout(() => this.clearStatusMessages(), 1e3);
}
async resetCamera() {
let { z: e, mapRollDegrees: t, mapInitialPtScale: n, mapPtScale: r, mapCenterX: i, mapCenterY: o } = this.kiosk || {}, s = this.renderer;
s && (await s.controls.resetCamera({
pan: !0,
zoom: !0,
roll: !0,
pitch: !0
}, !0), a(() => {
Number.isFinite(n) && Number.isFinite(r) && r > 0 && s.controls.zoomBy(n / r, !0), Number.isFinite(i) && Number.isFinite(o) && s.controls.panTo(i, o, !0), Number.isFinite(t) && s.controls.rollTo(t, !0), e && d.fp.activateFloor({ name: e });
}));
}
restoreData() {
let e = l();
return e && (this.setKiosk(e), this.savedKiosk = e, d.uiState.kiosk = !0, this.resetCamera()), e;
}
handleSetupReady() {
this.restoreData(), d.uiState.kiosk = !0, d.uiState.hideFreeOrDemo = !0, d.uiState.setForceDimm(!0), d.searchStore.setSearchText(""), d.searchStore.setFocused(!1);
}
handleClose() {
this.setKiosk(null), d.uiState.setForceDimm(!1), d.uiState.enableSetKioskMode(!1), d.searchStore.closeSearch(), this.resetCamera();
}
handleDelete() {
u(), this.setKiosk(null), d.uiState.resetMapSettings(), d.uiState.resetUIScale(), this.resetCamera(), this.addStatusMessage({
variant: "success",
title: r("Deleted")
});
}
handleSave() {
let t = this.renderer;
if (!t) return;
let n = e(this.kiosk), i = this.getCameraState(), a = {
...n,
...i
};
if (!h(t, a)) {
this.addStatusMessage({
variant: "error",
title: r("Kiosk not visible")
});
return;
}
this.setKiosk(a), f(a), c(a, "https://app.expofp.com/"), d.uiState.setUIScale(a.uiScale, !0), this.addStatusMessage({
variant: "success",
title: r("Saved")
}), this.savedKiosk = a;
}
delayChange(e) {
requestAnimationFrame(() => e == null ? void 0 : e());
}
handleChange(t) {
let n = e(this.kiosk);
n && (Number.isFinite(t.angle) && this.setKiosk({
...n,
heading: t.angle
}), Number.isFinite(t.scale) && (this.setKiosk({
...n,
uiScale: t.scale
}), this.delayChange(() => d.uiState.setUIScale(t.scale, !1))), Number.isFinite(t.percent) && this.setKiosk({
...n,
iconSizePercent: t.percent
}));
}
setInitialPtScale(t) {
if (this.initialPtScale) return;
this.initialPtScale = t;
let n = e(this.kiosk);
n && this.setKiosk({
...n,
mapInitialPtScale: t
});
}
handleClick(t) {
var n, r;
let i = e(this.kiosk), a = d.fp.getFloors(), s = o() ? (n = (r = a.find((e) => e.active)) == null ? void 0 : r.name) == null ? null : n : null, c = d.uiState.uiScale;
this.setKiosk({
...i,
x: t.x,
y: t.y,
z: s,
uiScale: (i == null ? void 0 : i.uiScale) || c,
heading: (i == null ? void 0 : i.heading) || 0,
iconSizePercent: (i == null ? void 0 : i.iconSizePercent) || 100,
...this.getCameraState()
});
}
handleNavigationChange() {
let t = e(this.kiosk);
t && this.setKiosk({
...t,
...this.getCameraState()
});
}
}, C(y.prototype, "kiosk", [g], Object.getOwnPropertyDescriptor(y.prototype, "kiosk"), y.prototype), C(y.prototype, "setKiosk", [i], Object.getOwnPropertyDescriptor(y.prototype, "setKiosk"), y.prototype), C(y.prototype, "renderer", [_], Object.getOwnPropertyDescriptor(y.prototype, "renderer"), y.prototype), b = C(y.prototype, "savedKiosk", [t], {
configurable: !0,
enumerable: !0,
writable: !0,
initializer: function() {
return null;
}
}), C(y.prototype, "hasUnsavedChanges", [v], Object.getOwnPropertyDescriptor(y.prototype, "hasUnsavedChanges"), y.prototype), x = C(y.prototype, "statusMessages", [t], {
configurable: !0,
enumerable: !0,
writable: !0,
initializer: function() {
return [];
}
}), C(y.prototype, "addStatusMessage", [i], Object.getOwnPropertyDescriptor(y.prototype, "addStatusMessage"), y.prototype), C(y.prototype, "clearStatusMessages", [i], Object.getOwnPropertyDescriptor(y.prototype, "clearStatusMessages"), y.prototype), C(y.prototype, "startCleanupMessages", [i], Object.getOwnPropertyDescriptor(y.prototype, "startCleanupMessages"), y.prototype), C(y.prototype, "resetCamera", [i], Object.getOwnPropertyDescriptor(y.prototype, "resetCamera"), y.prototype), C(y.prototype, "restoreData", [i], Object.getOwnPropertyDescriptor(y.prototype, "restoreData"), y.prototype), C(y.prototype, "handleSetupReady", [i], Object.getOwnPropertyDescriptor(y.prototype, "handleSetupReady"), y.prototype), C(y.prototype, "handleClose", [i], Object.getOwnPropertyDescriptor(y.prototype, "handleClose"), y.prototype), C(y.prototype, "handleDelete", [i], Object.getOwnPropertyDescriptor(y.prototype, "handleDelete"), y.prototype), C(y.prototype, "handleSave", [i], Object.getOwnPropertyDescriptor(y.prototype, "handleSave"), y.prototype), C(y.prototype, "handleChange", [i], Object.getOwnPropertyDescriptor(y.prototype, "handleChange"), y.prototype), C(y.prototype, "setInitialPtScale", [i], Object.getOwnPropertyDescriptor(y.prototype, "setInitialPtScale"), y.prototype), C(y.prototype, "handleClick", [i], Object.getOwnPropertyDescriptor(y.prototype, "handleClick"), y.prototype), C(y.prototype, "handleNavigationChange", [i], Object.getOwnPropertyDescriptor(y.prototype, "handleNavigationChange"), y.prototype), y)();
//#endregion
export { w as t };