@expofp/floorplan 3.7.17 → 3.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/{Button-CalAncSt.js → Button-1J9oictV.js} +5 -5
- package/dist/browser/{CookieConsent-ZygvYtDb.js → CookieConsent-DIB9ja_x.js} +7 -7
- package/dist/browser/{Debug-D0iAX94G.js → Debug-Dj0pjQgz.js} +7 -7
- package/dist/browser/{Demo-DtZnCrNU.js → Demo-DFFTbr3B.js} +9 -9
- package/dist/browser/{Free-CY2ZgfTi.js → Free-VNovKWeM.js} +9 -9
- package/dist/browser/{Gallery-BJyU80Q8.js → Gallery-CsjJODa1.js} +9 -9
- package/dist/browser/{GpsLoader-C4Az3Ogj.js → GpsLoader-LtDTQ04B.js} +25 -25
- package/dist/browser/{KioskStore-D3xv5iMJ.js → KioskStore-BlqVE5Em.js} +26 -26
- package/dist/browser/{MaplibreAdapter-BI5hr4DA.js → MaplibreAdapter-BdhppB5g.js} +941 -960
- package/dist/browser/{ModalContainer-CGy7G3W-.js → ModalContainer-B3TzgHkN.js} +10 -10
- package/dist/browser/{PermissionNotice-BQl-Eh0U.js → PermissionNotice-CFzmPPcM.js} +6 -6
- package/dist/browser/{SetKioskMode-puXODfKF.js → SetKioskMode-BmGR1XVY.js} +11 -11
- package/dist/browser/ShowKiosk-zlmmcHhV.js +28 -0
- package/dist/browser/{TouchHand-DjRl3mqw.js → TouchHand-CJVe9zjZ.js} +4 -4
- package/dist/browser/{ViewerMenuPanel-DwpOTh1A.js → ViewerMenuPanel-BWULAn9z.js} +10 -10
- package/dist/browser/{add-debug-secret-listener-0zbOfR23.js → add-debug-secret-listener-BmN449zK.js} +1 -1
- package/dist/browser/{boolean-editor-Ct-PRF2J.js → boolean-editor-DfnwzSdd.js} +9 -9
- package/dist/browser/{bootIntercom-CNJJMQLU.js → bootIntercom-Dm7ltiQq.js} +2 -2
- package/dist/browser/{browser-Dvk9Y0QP.js → browser-BHxQ7Crl.js} +2 -2
- package/dist/browser/bundle.json +61 -61
- package/dist/browser/{classnames-N7RelmSW.js → classnames-CYIl-Aml.js} +2 -2
- package/dist/browser/{client-B3oB_gzf.js → client-C9cyInZ3.js} +4 -4
- package/dist/browser/{components-DCWqd4OH.js → components-CGrjy21U.js} +1680 -1684
- package/dist/browser/{createWayfinding-DCYv9I1K.js → createWayfinding-BiBK6J8p.js} +513 -494
- package/dist/browser/{debug-overlay-C1zmn9JP.js → debug-overlay-DDKkKZ7_.js} +10 -10
- package/dist/browser/{debug-ui-Dk4TQW1Q.js → debug-ui-CKdNfGUm.js} +6 -6
- package/dist/browser/{dist-Dhhxwn3m.js → dist-Dveh_M6J.js} +3 -3
- package/dist/browser/{dist-BjWXGdvS.js → dist-Sr-nbWel.js} +6 -6
- package/dist/browser/{dist-CZ9F3ShM.js → dist-Y5bXC6OR.js} +5 -5
- package/dist/browser/{efp-debug-init-BY441NPw.js → efp-debug-init-QlttX6qg.js} +2 -2
- package/dist/browser/{enum-editor-wsFvRjdm.js → enum-editor-D8AUxIjM.js} +11 -11
- package/dist/browser/{es5--a3vRB-s.js → es5-DM_2dLMc.js} +2 -2
- package/dist/browser/{event-not-found-C08dNiXm.js → event-not-found-BzZrJTbo.js} +1 -1
- package/dist/browser/{exports-DnnAyWkZ.js → exports-C77c46fn.js} +1 -1
- package/dist/browser/{favicon-BUBgyUNE.js → favicon-CLXnJgR0.js} +1 -1
- package/dist/browser/{fetch-retry.umd-DqWbcFb6.js → fetch-retry.umd-DIeR-B1a.js} +2 -2
- package/dist/browser/{flex-BJvbUFUw.js → flex-B9_T4ILl.js} +5 -5
- package/dist/browser/{floorplan.loader-DtRqhN7h.js → floorplan.loader-DBLUmBct.js} +11 -11
- package/dist/browser/{floorplan.ready-DU_ul7oy.js → floorplan.ready-C_Yqubo7.js} +303 -227
- package/dist/browser/{fuse-C1gHDLf6.js → fuse-BA9FAI84.js} +2 -2
- package/dist/browser/{i18n-GqZrkrT3.js → i18n-i9ni8Aks.js} +4 -4
- package/dist/browser/index.js +12 -12
- package/dist/browser/{index.module-ClFPQstA.js → index.module-DPZn4TXU.js} +4 -4
- package/dist/browser/{is-webview-Ubd69hDX.js → is-webview-Dy8i33Cj.js} +1 -1
- package/dist/browser/{jsx-runtime-CcqjcKRn.js → jsx-runtime-DzGUGvz-.js} +2 -2
- package/dist/browser/{lib-D-VhTz7u.js → lib-BHciLO67.js} +4 -4
- package/dist/browser/{loadImage-BSgOJpEi.js → loadImage-Kl5pv_Gu.js} +4 -4
- package/dist/browser/{logDeviceInfo-CqPbQalh.js → logDeviceInfo-CS0Fd9Bz.js} +9 -9
- package/dist/browser/{main-D02oALU5.js → main-CnhK8g8p.js} +1 -1
- package/dist/browser/{mobx-9haaaJQN.js → mobx-MDNY-J4R.js} +4 -4
- package/dist/browser/{particles.min-Cy0_xv2F.js → particles.min-BfWO2YCb.js} +2 -2
- package/dist/browser/{prop-types-CGmwvRRk.js → prop-types-8OQVQO5z.js} +2 -2
- package/dist/browser/{react-C94g1dWf.js → react-BHziDcUN.js} +2 -2
- package/dist/browser/{react-dom-VzzznUin.js → react-dom-B2YH_-FW.js} +3 -3
- package/dist/browser/{reset-all-settings-Bs45R4UK.js → reset-all-settings-DhiQzgYR.js} +7 -7
- package/dist/browser/{rolldown-runtime-DDajFMnr.js → rolldown-runtime-kNW8iHBm.js} +1 -1
- package/dist/browser/{settings-B89NEO7Z.js → settings-Cu5Wcs8p.js} +2 -2
- package/dist/browser/{settings-item-CTgteXDw.js → settings-item-v4B4uQdw.js} +6 -6
- package/dist/browser/{store-39MLQcdz.js → store-pynNgMKs.js} +5840 -5756
- package/dist/browser/{string-editor-4uawnaDY.js → string-editor-DpTkbez0.js} +7 -7
- package/dist/browser/{theme-CWzone56.js → theme-BOa5CSxW.js} +8 -8
- package/dist/browser/{ui-D8Gz1TVh.js → ui-Bq-HLu6b.js} +8 -8
- package/dist/browser/{useRenderTarget-BSjQ_3rd.js → useRenderTarget-l4FhOrhr.js} +4 -4
- package/dist/esm/components/LevelSelector.js +1 -1
- package/dist/esm/components/Map/Map.js +1 -1
- package/dist/esm/components/Map/booth-by-xy.js +1 -1
- package/dist/esm/components/Map/drawing/config/config-booth-badge.js +1 -1
- package/dist/esm/components/Map/drawing/config/config-booth-bg.js +1 -1
- package/dist/esm/components/Map/drawing/config/config-booth-bookmark.d.ts +1 -1
- package/dist/esm/components/Map/drawing/config/config-booth-bookmark.js +1 -1
- package/dist/esm/components/Map/drawing/config/config-booth-border.js +1 -1
- package/dist/esm/components/Map/drawing/config/config-booth-labels-special.d.ts +1 -2
- package/dist/esm/components/Map/drawing/config/config-booth-labels-special.js +2 -2
- package/dist/esm/components/Map/drawing/config/config-booth-labels.d.ts +4 -4
- package/dist/esm/components/Map/drawing/config/config-booth-labels.js +1 -1
- package/dist/esm/components/Map/drawing/config/config-booths.js +1 -1
- package/dist/esm/components/Map/drawing/config/config-load-layer.js +1 -1
- package/dist/esm/components/Map/drawing/config/config-markers.js +1 -1
- package/dist/esm/components/Map/drawing/config/loadBoothsImages.d.ts +10 -4
- package/dist/esm/components/Map/drawing/config/loadBoothsImages.js +1 -1
- package/dist/esm/components/Map/traffic/useBuildRoute.js +5 -5
- package/dist/esm/components/Map/traffic/useManageTraffic.js +1 -1
- package/dist/esm/components/Maplibre/MaplibreAdapter.js +1 -1
- package/dist/esm/components/Maplibre/useCameraReactions.d.ts +2 -2
- package/dist/esm/components/Maplibre/useCameraReactions.js +1 -1
- package/dist/esm/components/Maplibre/useLayerVisibilitySync.d.ts +2 -2
- package/dist/esm/components/Maplibre/useLayerVisibilitySync.js +1 -1
- package/dist/esm/components/Maplibre/utils/geo-config.d.ts +6 -6
- package/dist/esm/components/Maplibre/utils/geo-config.js +1 -1
- package/dist/esm/components/Maplibre/utils/solver.js +1 -1
- package/dist/esm/components/gps/useUserLocationAndHeading.d.ts +1 -1
- package/dist/esm/components/gps/useUserLocationAndHeading.js +1 -1
- package/dist/esm/components/gps/utils.d.ts +1 -1
- package/dist/esm/components/gps/utils.js +1 -1
- package/dist/esm/data/svg.d.ts +4 -4
- package/dist/esm/data/svg.js +1 -1
- package/dist/esm/floorplan.ready.d.ts +39 -2
- package/dist/esm/floorplan.ready.js +1 -1
- package/dist/esm/renderer/engine-core/canvases.d.ts +1 -1
- package/dist/esm/renderer/engine-core/canvases.js +1 -1
- package/dist/esm/renderer/engine-core/defs.d.ts +23 -4
- package/dist/esm/renderer/engine-core/defs.js +3 -3
- package/dist/esm/renderer/engine-core/types.d.ts +13 -2
- package/dist/esm/renderer/engine-core/update-def.d.ts +3 -2
- package/dist/esm/renderer/engine-core/update-def.js +1 -1
- package/dist/esm/renderer/engine-core/utils/rotation.d.ts +13 -1
- package/dist/esm/renderer/index.d.ts +2 -2
- package/dist/esm/renderer/index.js +1 -1
- package/dist/esm/services/routing.js +1 -1
- package/dist/esm/store/BoothStore.d.ts +14 -2
- package/dist/esm/store/BoothStore.js +1 -1
- package/dist/esm/store/LayerStore.d.ts +4 -4
- package/dist/esm/store/LayerStore.js +1 -1
- package/dist/esm/store/RouteStore.d.ts +3 -3
- package/dist/esm/store/RouteStore.js +1 -1
- package/dist/esm/store/UIState.d.ts +6 -7
- package/dist/esm/store/UIState.js +1 -1
- package/dist/esm/store/init/init-booths.js +1 -1
- package/dist/esm/store/init/init-layers.js +1 -1
- package/dist/esm/store/init/init-ui.js +1 -1
- package/dist/esm/utils/gps.d.ts +0 -1
- package/dist/esm/utils/gps.js +1 -1
- package/dist/esm/utils/imageloader.d.ts +1 -3
- package/dist/esm/utils/imageloader.js +1 -1
- package/dist/esm/utils/math.d.ts +0 -1
- package/dist/esm/utils/math.js +1 -1
- package/dist/esm/wayfinding/adapters/boothToEndpoint.d.ts +4 -0
- package/dist/esm/wayfinding/adapters/boothToEndpoint.js +1 -1
- package/dist/esm/wayfinding/core/geometry/projectPointOnSegment.d.ts +7 -6
- package/dist/esm/wayfinding/core/geometry/projectPointOnSegment.js +1 -1
- package/dist/esm/wayfinding/core/graph/graphHelpers.js +1 -1
- package/dist/esm/wayfinding/core/graph/linkCost.js +1 -1
- package/dist/esm/wayfinding/core/graph/pathfinder/aStarPathFinder.js +1 -1
- package/dist/esm/wayfinding/core/index.d.ts +0 -1
- package/dist/esm/wayfinding/core/position/distanceToRoute.d.ts +1 -1
- package/dist/esm/wayfinding/core/position/distanceToRoute.js +1 -1
- package/dist/esm/wayfinding/core/position/gpsThreshold.js +1 -1
- package/dist/esm/wayfinding/core/position/rerouteController.d.ts +1 -1
- package/dist/esm/wayfinding/core/position/rerouteController.js +1 -1
- package/dist/esm/wayfinding/core/position/snapToRoute.js +1 -1
- package/dist/esm/wayfinding/core/rendering/computeTrailPoints.d.ts +2 -2
- package/dist/esm/wayfinding/core/rendering/computeTrailPoints.js +1 -1
- package/dist/esm/wayfinding/core/rendering/normalizeRouteDirection.d.ts +1 -1
- package/dist/esm/wayfinding/core/rendering/normalizeRouteDirection.js +1 -1
- package/dist/esm/wayfinding/core/rendering/routeGeometry.d.ts +4 -8
- package/dist/esm/wayfinding/core/rendering/routeGeometry.js +1 -1
- package/dist/esm/wayfinding/core/routing/getRouteLength.js +1 -1
- package/dist/esm/wayfinding/createWayfinding.js +1 -1
- package/dist/esm/wayfinding/handlers/kioskHandler.js +1 -1
- package/dist/esm/wayfinding/renderer/iconManager.js +1 -1
- package/dist/esm/wayfinding/runtime/createWayfindingRuntime.js +1 -1
- package/dist/esm/wayfinding/runtime/positionView.d.ts +3 -3
- package/dist/esm/wayfinding/runtime/positionView.js +1 -1
- package/dist/esm/wayfinding/runtime/routeUpdate.d.ts +6 -5
- package/dist/esm/wayfinding/runtime/routeUpdate.js +1 -1
- package/dist/esm/wayfinding/runtime/types.d.ts +4 -3
- package/package.json +4 -4
- package/dist/browser/ShowKiosk-78DDAGCM.js +0 -28
- package/dist/esm/components/Map/drawing/config/Rect.d.ts +0 -7
- package/dist/esm/components/Map/drawing/config/Rect.js +0 -1
- package/dist/esm/core/Line.d.ts +0 -12
- package/dist/esm/core/Line.js +0 -1
- package/dist/esm/core/Polygon.d.ts +0 -16
- package/dist/esm/core/Polygon.js +0 -1
- package/dist/esm/core/Rect.d.ts +0 -36
- package/dist/esm/core/Rect.js +0 -1
- package/dist/esm/core/Size.d.ts +0 -7
- package/dist/esm/core/Size.js +0 -1
- package/dist/esm/utils/haversineDistance.d.ts +0 -7
- package/dist/esm/utils/haversineDistance.js +0 -1
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
(function() {
|
|
2
2
|
try {
|
|
3
3
|
var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {};
|
|
4
|
-
e.SENTRY_RELEASE = { id: "3.
|
|
4
|
+
e.SENTRY_RELEASE = { id: "3.8.0" };
|
|
5
5
|
var t = new e.Error().stack;
|
|
6
6
|
t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "888fc155-fb35-4159-9302-91880886e35d", e._sentryDebugIdIdentifier = "sentry-dbid-888fc155-fb35-4159-9302-91880886e35d");
|
|
7
7
|
} catch {}
|
|
8
8
|
})();
|
|
9
|
-
import { r as e } from "./rolldown-runtime-
|
|
10
|
-
import { t } from "./react-
|
|
11
|
-
import { t as n } from "./jsx-runtime-
|
|
12
|
-
import { D as r, i, l as a, n as o, s, u as c, y as l } from "./flex-
|
|
13
|
-
import { t as u } from "./classnames-
|
|
14
|
-
import { t as d } from "./settings-item-
|
|
9
|
+
import { r as e } from "./rolldown-runtime-kNW8iHBm.js";
|
|
10
|
+
import { t } from "./react-BHziDcUN.js";
|
|
11
|
+
import { t as n } from "./jsx-runtime-DzGUGvz-.js";
|
|
12
|
+
import { D as r, i, l as a, n as o, s, u as c, y as l } from "./flex-B9_T4ILl.js";
|
|
13
|
+
import { t as u } from "./classnames-CYIl-Aml.js";
|
|
14
|
+
import { t as d } from "./settings-item-v4B4uQdw.js";
|
|
15
15
|
//#region ../../node_modules/.pnpm/@radix-ui+themes@3.3.0_@types+react-dom@19.2.3_@types+react@19.2.17__@types+react@19.2._925f851475345a9e5e368d312bb98178/node_modules/@radix-ui/themes/dist/esm/components/text-field.props.js
|
|
16
16
|
var f = {
|
|
17
17
|
size: {
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
(function() {
|
|
2
2
|
try {
|
|
3
3
|
var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {};
|
|
4
|
-
e.SENTRY_RELEASE = { id: "3.
|
|
4
|
+
e.SENTRY_RELEASE = { id: "3.8.0" };
|
|
5
5
|
var t = new e.Error().stack;
|
|
6
6
|
t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "b674b3f0-1e85-4d5b-b554-fb365f6d1945", e._sentryDebugIdIdentifier = "sentry-dbid-b674b3f0-1e85-4d5b-b554-fb365f6d1945");
|
|
7
7
|
} catch {}
|
|
8
8
|
})();
|
|
9
|
-
import { r as e } from "./rolldown-runtime-
|
|
10
|
-
import { t } from "./react-
|
|
11
|
-
import { t as n } from "./jsx-runtime-
|
|
12
|
-
import { t as r } from "./react-dom-
|
|
13
|
-
import { C as i, E as a, O as o, T as s, _ as c, o as l, v as u, w as d } from "./flex-
|
|
14
|
-
import { c as f, i as p, n as m, o as h, r as g, s as _, t as v } from "./dist-
|
|
15
|
-
import { t as y } from "./classnames-
|
|
9
|
+
import { r as e } from "./rolldown-runtime-kNW8iHBm.js";
|
|
10
|
+
import { t } from "./react-BHziDcUN.js";
|
|
11
|
+
import { t as n } from "./jsx-runtime-DzGUGvz-.js";
|
|
12
|
+
import { t as r } from "./react-dom-B2YH_-FW.js";
|
|
13
|
+
import { C as i, E as a, O as o, T as s, _ as c, o as l, v as u, w as d } from "./flex-B9_T4ILl.js";
|
|
14
|
+
import { c as f, i as p, n as m, o as h, r as g, s as _, t as v } from "./dist-Sr-nbWel.js";
|
|
15
|
+
import { t as y } from "./classnames-CYIl-Aml.js";
|
|
16
16
|
//#region ../../node_modules/.pnpm/@radix-ui+react-visually-hidden@1.2.3_@types+react-dom@19.2.3_@types+react@19.2.17__@ty_070bcfa32421a5876e7dcb93369fcbee/node_modules/@radix-ui/react-visually-hidden/dist/index.mjs
|
|
17
17
|
var b = /* @__PURE__ */ e(r(), 1), x = /* @__PURE__ */ e(t(), 1), S = n(), C = Object.freeze({
|
|
18
18
|
position: "absolute",
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
(function() {
|
|
2
2
|
try {
|
|
3
3
|
var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {};
|
|
4
|
-
e.SENTRY_RELEASE = { id: "3.
|
|
4
|
+
e.SENTRY_RELEASE = { id: "3.8.0" };
|
|
5
5
|
var t = new e.Error().stack;
|
|
6
6
|
t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "43912113-9328-4069-8890-5091c8745c34", e._sentryDebugIdIdentifier = "sentry-dbid-43912113-9328-4069-8890-5091c8745c34");
|
|
7
7
|
} catch {}
|
|
8
8
|
})();
|
|
9
|
-
import { r as e } from "./rolldown-runtime-
|
|
10
|
-
import { a as t, r as n } from "./reset-all-settings-
|
|
11
|
-
import { t as r } from "./jsx-runtime-
|
|
12
|
-
import "./settings-
|
|
13
|
-
import { t as i } from "./browser-
|
|
14
|
-
import { t as a } from "./add-debug-secret-listener-
|
|
9
|
+
import { r as e } from "./rolldown-runtime-kNW8iHBm.js";
|
|
10
|
+
import { a as t, r as n } from "./reset-all-settings-DhiQzgYR.js";
|
|
11
|
+
import { t as r } from "./jsx-runtime-DzGUGvz-.js";
|
|
12
|
+
import "./settings-Cu5Wcs8p.js";
|
|
13
|
+
import { t as i } from "./browser-BHxQ7Crl.js";
|
|
14
|
+
import { t as a } from "./add-debug-secret-listener-BmN449zK.js";
|
|
15
15
|
//#region ../debug/src/lib/ui/render-debug-ui.tsx
|
|
16
16
|
var o = /* @__PURE__ */ e(i(), 1), s = r(), c = !1;
|
|
17
17
|
function l() {
|
|
@@ -26,7 +26,7 @@ function l() {
|
|
|
26
26
|
}
|
|
27
27
|
});
|
|
28
28
|
let i = async (t) => {
|
|
29
|
-
let { DebugUi: n } = await import("./debug-ui-
|
|
29
|
+
let { DebugUi: n } = await import("./debug-ui-CKdNfGUm.js"), { createRoot: i } = await import("./client-C9cyInZ3.js").then((t) => /* @__PURE__ */ e(t.default, 1)), a = document.createElement("div");
|
|
30
30
|
document.body.appendChild(a), i(a).render(/* @__PURE__ */ (0, s.jsx)(n, {
|
|
31
31
|
useDebugButtonState: r.useState,
|
|
32
32
|
open: t
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
(function() {
|
|
2
2
|
try {
|
|
3
3
|
var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {};
|
|
4
|
-
e.SENTRY_RELEASE = { id: "3.
|
|
4
|
+
e.SENTRY_RELEASE = { id: "3.8.0" };
|
|
5
5
|
var t = new e.Error().stack;
|
|
6
6
|
t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "d4febe97-784c-4cf8-93f1-f2e3b29f8347", e._sentryDebugIdIdentifier = "sentry-dbid-d4febe97-784c-4cf8-93f1-f2e3b29f8347");
|
|
7
7
|
} catch {}
|
|
8
8
|
})();
|
|
9
|
-
import { r as e } from "./rolldown-runtime-
|
|
10
|
-
import { t } from "./react-
|
|
11
|
-
import { s as n } from "./store-
|
|
9
|
+
import { r as e } from "./rolldown-runtime-kNW8iHBm.js";
|
|
10
|
+
import { t } from "./react-BHziDcUN.js";
|
|
11
|
+
import { s as n } from "./store-pynNgMKs.js";
|
|
12
12
|
//#region src/utils/getRenderTargetFromRoot.ts
|
|
13
13
|
var r = /* @__PURE__ */ e(t(), 1);
|
|
14
14
|
function i(e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as s,jsxs as v}from"react/jsx-runtime";import"./LevelSelector.scss";import m from"classnames";import{useObserver as
|
|
1
|
+
import{jsx as s,jsxs as v}from"react/jsx-runtime";import"./LevelSelector.scss";import m from"classnames";import{useObserver as I}from"mobx-react-lite";import{useCallback as b,useEffect as E,useLayoutEffect as R,useRef as h,useState as O}from"react";import D from"../data";import i,{uiState as g}from"../store";import{LayersMode as S}from"../store/LayerStore";import C from"../tools/settings";import{t as p}from"../utils/i18n";import L from"../utils/useOnClickOutside";const T=["money2020usa","rodion2","possible2025","2025virtuosotravelweek","zscalerskofy26","gamescom2025"],V=["ice-gaming2026"];function P(l){return V.includes(C.EXPO)?{layout:"compact-list",useShortNames:l}:{layout:l?"compact-list":"dropdown",useShortNames:l}}export default function B(){const l=h(null),_=h(null),d=h(null),[c,f]=O(!1),[k,F]=O("down");L([_,d],()=>f(!1)),E(()=>()=>{l.current&&clearTimeout(l.current)},[]),E(()=>{if(!c)return;const t=r=>{r.key==="Escape"&&(f(!1),d.current?.focus())};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[c]),R(()=>{if(c&&d.current){const t=d.current.getBoundingClientRect(),n=window.innerHeight-t.bottom;F(n<200?"up":"down")}},[c]);const x=b(t=>{if(l.current)return;l.current=setTimeout(()=>l.current=null,500);const r=i.layerStore.layers.find(u=>u.description===t.description);if(i.layerStore.mode===S.Radio){if(i.layerStore.updateVisibility(r,!0),i.maplibreStore.showMaplibre)return;if(!!window.__fpSettings?.fpVer||T.includes(C.EXPO)){const o=r.viewbox??r.rect;g.moveToRect=o}else{const o=i.layerStore.layers.indexOf(i.layerStore.layers.filter(e=>!e.frozen&&e.visible)[0]),a=i.layerStore.layers.indexOf(r);if(o===a)return;a<o?g.zoomBy=.95:g.zoomBy=1.05}}else i.layerStore.updateVisibility(r,!r.visible);const n=i.toursStore.getTourLayerInfo(r.name)||i.toursStore.getTourLayerInfo(r.description);if(n){i.layerStore.showPathWay(n.id);return}i.toursStore.stopTour()},[]),y=b(t=>{t.disabled||(x(t.layer),f(!1),d.current?.focus())},[x]),N=b((t,r,n)=>{if(t.key==="Enter"||t.key===" "){if(r.disabled)return;t.preventDefault(),y(r);return}if(t.key==="ArrowDown"||t.key==="ArrowUp"){t.preventDefault();const u=n.findIndex(e=>e.layer.description===r.layer.description),o=t.key==="ArrowDown"?1:-1;let a=u+o;for(;a>=0&&a<n.length;){if(!n[a].disabled){t.currentTarget.parentElement?.children?.[a]?.focus();return}a+=o}}t.key==="Escape"&&(f(!1),d.current?.focus())},[y]);return I(()=>{const t=i.layerStore.floors;if(!(i.layerStore.mode===S.Radio||i.layerStore.mode===S.CheckBox)||t.length===0)return null;const{layout:n,useShortNames:u}=P(D.shortLevelName),o=t.find(e=>e.active),a=e=>u?e.shortName:e.description;return n==="compact-list"?s("div",{className:m("efp-level-selector","efp-level-selector--compact-list",{"is-ready":t.length}),role:"radiogroup","aria-label":p("Floor selection"),children:t.map(e=>s("div",{className:m("efp-level-selector__item",{"is-active":e.active,"is-disabled":e.disabled}),role:"radio",title:`${e.active?p("Current Floor"):p("Floor")} ${e.layer.description}`,"aria-label":`${e.active?p("Current Floor"):p("Floor")} ${e.layer.description}`,"aria-checked":e.active,"aria-disabled":e.disabled,tabIndex:e.disabled?-1:0,onClick:()=>!e.disabled&&y(e),onKeyDown:w=>N(w,e,t),dir:"auto",children:s("span",{children:a(e)})},e.layer.description))}):v("div",{className:m("efp-level-selector","efp-level-selector--dropdown",{"is-ready":t.length}),children:[v("button",{ref:d,type:"button",className:m("efp-level-selector__trigger",{"is-open":c}),onClick:()=>f(!c),"aria-haspopup":"listbox","aria-expanded":c,"aria-label":`${p("Current Floor")}: ${o?.description??""}`,children:[v("div",{className:"efp-level-selector__trigger-text",children:[s("i",{className:"icon-layers","aria-hidden":"true"}),s("span",{children:o?.description??""})]}),s("div",{className:"efp-level-selector__trigger-chevron",children:s("i",{className:"icon-chevron-down","aria-hidden":"true"})})]}),c&&s("div",{ref:_,className:m("efp-level-selector__dropdown","efp-level-selector__dropdown--full",{"is-opens-up":k==="up","is-opens-down":k==="down"}),role:"listbox","aria-label":p("Floor selection"),children:t.map(e=>v("div",{className:m("efp-level-selector__dropdown-item",{"is-active":e.active,"is-disabled":e.disabled}),role:"option","aria-selected":e.active,"aria-disabled":e.disabled,tabIndex:e.disabled?-1:0,onClick:()=>y(e),onKeyDown:w=>N(w,e,t),children:[s("span",{className:"efp-level-selector__dropdown-item-icon",children:e.active&&s("i",{className:"icon-checkmark-solid","aria-hidden":"true"})}),s("span",{className:"efp-level-selector__dropdown-item-name",children:e.description})]},e.layer.description))})]})})}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as C,jsxs as N,Fragment as ee}from"react/jsx-runtime";import{Box as k}from"@expofp/geometry";import oe from"classnames";import te from"color";import{observable as re,reaction as ne}from"mobx";import{useObserver as ie}from"mobx-react-lite";import{useEffect as ae,useMemo as se,useRef as S,useState as le}from"react";import{DEBUG_STORAGE_KEY as O}from"../../constants";import{fpGeo as me}from"../../data/fpGeo";import{svgArea as X}from"../../data/svg";import{boxToRenderer as L,createSceneDef as ce,mapRollSetting as U}from"../../renderer";import{pickDefaultScene as A,pickDefaultScenePoint as fe}from"../../renderer/engine-core/defs";import a,{boothStore as de,layersStore as h,uiState as o}from"../../store";import{BoothBase as j}from"../../store/BoothStore";import{Category as ue}from"../../store/CategoryStore";import{Exhibitor as Z}from"../../store/ExhibitorStore";import{LayerMode as x}from"../../store/LayerStore";import{CurrentPosition as pe,Route as he}from"../../store/RouteStore";import B from"../../tools/logger";import p from"../../tools/settings";import ve from"../../ui/Draggable";import{areLayersEnabled as ye}from"../../utils/areLayersEnabled";import{applyVenueDimValue as be,createDimmingAnimator as ge}from"../../utils/dimming";import{convertGpsToLocal as we}from"../../utils/gps";import y from"../../utils/is-debug";import{isPathwayLayer as $}from"../../utils/is-pathway-layer";import{useReaction as d}from"../../utils/mobx";import{createWayfinding as Se}from"../../wayfinding/createWayfinding";import K from"./booth-by-xy";import xe from"./drawing/config/config-all";import{configMarkers as Re,getMarkerFromClick as Te}from"./drawing/config/config-markers";import{loadLayersImages as Ce}from"./drawing/config/loadBoothsImages";import{useBuildRoute as ke}from"./traffic/useBuildRoute";import{useManageTraffic as Le}from"./traffic/useManageTraffic";const V=Number.isFinite(p.maxZoom);export default function Be(){let M={};const W="#ebebeb",v=S(),b=se(()=>re({moving:!1,prevLevel:a.layerStore.layers.find(e=>!e.frozen&&e.visible)}),[]),l=a.rendererService,R=S(ge(e=>be(l,e)));let s;const g=S(null),E=S(null);let P=null,z=null,I=!1;function _(){h.layers.forEach(e=>{e.configured=!1,e.children=[],e.loaded=!1})}const[H,q]=le(()=>typeof window<"u"&&window.localStorage?localStorage.getItem(O)!=="false":!0);d(()=>a.routeStore.currentRouteLayer,()=>{if(!l.scene||b.prevLevel===a.routeStore.currentRouteLayer)return;const e=l.scene.rootLayer.children.filter(t=>a.layerStore.floors.some(n=>t.name.includes(n.name)));let r=a.routeStore.currentRouteLayer.name;if(!e.find(t=>t.name===r))return;const i=e?.map(t=>(t.name===r&&(t.hidden=!1),t.name===b.prevLevel?.name&&(t.hidden=!0),t));b.prevLevel=a.routeStore.currentRouteLayer,l.update(...i)}),d(()=>o.centerMap,()=>{!o.centerMap||a.maplibreStore.showMaplibre||(s.controls.resetCamera({zoom:!!(o.list.type==="search"&&o.list.text)}),o.centerMap=!1)}),ae(()=>{if(!v.current)return;async function e(){_(),h.layersLoaded=!1;let r={};try{if(y){const t=document.createElement("canvas").getContext("webgl2"),n=t&&t.getExtension("EXT_disjoint_timer_query_webgl2"),m=(await import("stats-gl")).default,f=new m({trackGPU:n,horizontal:!0}),u=E.current;if(!u)throw new Error("memoryInfoPanel not found.");f.dom.style.position="relative",u.style.width=`${90*(n?3:2)}px`,u.style.height="48px",u.appendChild(f.dom),r={stats:f,memoryInfoPanel:u}}}catch(i){console.error(i)}s=l.create({canvas:v.current,ui:r}),g.current=s,ne(()=>o.canvasVisibleRectPx,(i,t)=>{i&&(s.visibleRect=L(i)),t.dispose()},{fireImmediately:!0}),xe(l).then(i=>{if(I||g.current!==s)return;y&&console.log("Renderer settings",s);const t=te(p.backgroundColor==="none"?W:p.backgroundColor).string();M=ce(i,X,t),l.start(M),R.current.setTarget(o.dimmed,{immediate:!0}),U(s,a.fp.enableRotation?1:0),V&&s.viewport.setMaxZoom(p.maxZoom),h.layersLoaded=!0,a.fp.onFpConfigured&&a.fp?.onFpConfigured(),P=Se(l),z=Re(l),Ce(l)}),s.events.addEventListener("pointer:move",({data:i})=>{if(o.setKioskModeEnabled)return;const{point:t,defs:n}=A(i),c=K(t.x,t.y),m=D(n[0]);o.hoveredBooth=c||m}),s.events.addEventListener("pointer:out",()=>{o.setKioskModeEnabled||(o.hoveredBooth=null)}),s.events.addEventListener("pointer:click",({data:i})=>{if(!o?.rootElement)return;window.__resett&&window.__resett(),o.overlayPosition==="bottom"&&o.overlaySize==="full"&&a.showMap();const{point:t,defs:n}=A(i),{x:c,y:m}=t;if(o.onGetCoordsClick){const w=a.layerStore.layers.find(T=>T.visible&&(T.mode===x.TurnedOn||T.mode===x.TurnedOff));o.onGetCoordsClick({x:c,y:m,z:w?.name||null})}if(o.setKioskModeEnabled)return;if(o.onMarkerClick){const w=Te(c,m,l.scale);y&&console.log("marker",w),o.onMarkerClick(w)}const f=K(t.x,t.y),u=D(n[0]);y&&console.log("boothIdFromClientXy",f,"boothByShape",u,"pointer:click point",t),a.clickBooth(f||u)}),s.events.addEventListener("navigation:change",()=>window.__resett&&window.__resett())}return e(),a.fp.getCenterCoordinates=Q,()=>J()},[]);function J(){I=!0,R.current.stop(),P?.(),z?.(),_(),h.layersLoaded=!1,l.disposeIfCurrent(g.current),g.current=null}function Q(){const e=v.current;if(!v.current)throw new Error("Canvas not ready");const r=fe(s.viewport.canvasToSvg({x:e.clientWidth/2,y:e.clientHeight/2})),t=a.layerStore.visible.find(n=>n.mode===x.TurnedOff||n.mode===x.TurnedOn)?.name||null;return{...r,z:t}}function D(e){return!e||!e.shape?null:de.booths.find(r=>r.shapes?.find(i=>i.shape==e.shape))}d(()=>o.zoomBy,()=>{if(!o.zoomBy||a.maplibreStore.showMaplibre)return;const e=o.zoomBy;s.controls.zoomBy(e),o.zoomBy=null}),d(()=>o.dimmed,e=>{R.current.setTarget(e)}),d(()=>o.details,()=>{if(!o.onDetails)return;if(!o.details){o.onDetails(null);return}var e=o.details;if(p.EXPO==="wineparis"&&(e instanceof Z&&(e=e.booths[0]),!e))return;let r=null,i=[];e instanceof Z?(r="exhibitor",i=e.booths.map(n=>n.name).sort((n,c)=>n==a.routeStore.tempToBooth?.name?-1:c==a.routeStore.tempToBooth?.name?1:0)):e instanceof j?(r="booth",i=[e.name]):e instanceof he?(r="route",i=[e.from?.name,e.to?.name].filter(n=>!!n)):e instanceof ue&&(r="category",i=e.exhibitors.map(n=>n.booths.map(c=>c.name)).flat());var t={type:r,name:e?.name,id:e?.id,externalId:e?.externalId,boothsNames:i};o.onDetails({...t,...r==="route"?{routeInfo:a.routeStore.routeInfo}:{}})}),d(()=>o.canvasVisibleRectPx,e=>{l.renderer&&(l.renderer.visibleRect=L(e))},{fireImmediately:!0}),d(()=>o.moveToRect,()=>{!o.moveToRect||a.maplibreStore.showMaplibre||(o.moveToRect&&o.moveToRect.size.height!==1/0&&o.moveToRect.size.width!==1/0&&o.moveToRect.size.height>0&&o.moveToRect.size.width>0&&G(o.moveToRect),o.moveToRect=null)}),d(()=>o.rollReset,e=>{e&&(s.controls.resetCamera({roll:!0}),o.rollReset=!1)}),d(()=>o.moveToBooths,()=>{if(B.log("this.moveToBooths",o.moveToBooths),!o.moveToBooths||a.maplibreStore.showMaplibre)return;B.log("watched moveToBooths",o.moveToBooths);const e=o.moveToBooths.filter(r=>r.rect).map(r=>r.rect);e.length!==0&&(G(k.fromUnion(...e)),o.moveToBooths=null)}),d(()=>o.mapSettings,({zoomtime:e,center:r,centerxy:i,bearing:t,roll:n,z:c})=>{if(!(a.maplibreStore.showMaplibre||!l.renderer))try{e&&e!==o.defaultMapSettings.zoomtime&&l.renderer.controls.configure({zoomTime:e/1e3}),a.fp.enableRotation&&U(s,n);let m;if(r){const f=r.split(",").map(Number),u=new pe(void 0,void 0,void 0,void 0,f[0],f[1]);m=we(u,me.properties.config)}else if(i){const f=i.split(",").map(Number);m={x:f[0],y:f[1]}}c&&a.fp.activateFloor({name:c}),(m?.x||m?.y)&&l.renderer.controls.panTo(m.x,m.y),Number.isFinite(t)&&l.renderer.controls.rollTo(t)}catch(m){B.error("Error in mapSettings reaction",m)}}),ke({enabled:h.layersLoaded&&o.buildRoute,rendererService:l});const F="routes-api.expofp.com";Le({permission:h.layersLoaded,rendererService:l,dataJsonUrl:`https://${F}/v1/routes?expo=${p.EXPO}`,websocketUrl:`wss://${F}/locations?expo=${p.EXPO}`}),d(()=>a.layerStore.visible,e=>{if(!l.scene)return;const r=e.filter(n=>$(n.name)),t=l.scene.rootLayer.children.filter(n=>$(n.name));t.forEach(n=>{n.hidden=!r.find(c=>c.name===n.name)}),l.update(...t)});function G(e){let r=e;const i=Y(e,X),t=o.selectedRoute?.from,n=t instanceof j?t.layer?.name:t?.layer;o.kioskData&&(!ye()||n===a.routeStore.currentRouteLayer?.name)&&(r=k.fromUnion(e,new k(o.kioskData.x,o.kioskData.y,1,1)));const c=L(r),m={paddingPercent:i,maxZoom:V?void 0:10};if(o.shouldShiftMapRect){s.visibleRect.min={...s.visibleRect.min,x:s.visibleRect.min.x+o.overlayWidthPx},s.visibleRect=s.visibleRect;try{s.controls.zoomTo(c,m)}finally{s.visibleRect.min={...s.visibleRect.min,x:s.visibleRect.min.x-o.overlayWidthPx}}}else s.controls.zoomTo(c,m)}function Y(e,r){return!e||!r?0:(e.area/r.area>.1?15:25)/100}return ie(()=>N(ee,{children:[C("canvas",{style:{width:"100%",height:"100%"},ref:v,className:oe({map:!0,moving:b.moving,hidden:a.maplibreStore.showMaplibre}),children:"ExpoFP.com"}),y&&H&&N(ve,{className:"debug-fps",children:[C("div",{ref:E}),C("button",{onClick:()=>{typeof window<"u"&&window.localStorage&&localStorage.setItem(O,"false"),q(!1)},style:{padding:"4px 8px",fontSize:"11px",cursor:"pointer",backgroundColor:"#333",color:"#fff",border:"1px solid #555",width:"100%"},children:"Hide debug"})]})]}))}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{Box as m,degToRad as M,Polygon as x}from"@expofp/geometry";import{reaction as P}from"mobx";import{getTrianglesFromFpPaths as v}from"../../data/svg";import{boothStore as w,layersStore as g}from"../../store";import{LayersMode as R}from"../../store/LayerStore";import S from"../../tools/logger";function T(o){const r=o.center.x,n=o.center.y,s=o.size.width,i=o.size.height;return new m(r-i/2,n-s/2,i,s)}let p=new Map,u=[],y=[],d=[],a=new Map,h;function B(){const o=w.booths.filter(t=>t.visible&&t.rect&&t.rect.size.width>0&&t.rect.size.height>0);if(p=new Map,u=[],d=[],h=null,a=new Map,!o.length)return;y=o.filter(t=>t.paths);let r=m.fromUnion(...o.map(t=>t.rect));for(const t of o){let e=t.rect;Math.abs(t.rotate)===M(90)&&(e=T(e)),u.push(e),p.set(e,t)}const n=2,s=Math.ceil(r.size.width/n),i=Math.ceil(r.size.height/n);for(let t=0;t<n;t++)for(let e=0;e<n;e++){const l=r.min.x+t*s,f=r.min.y+e*i,c=new m(l,f,s,i);d.push(c);const b=u.filter(z=>c.intersects(z));a.set(c,b)}S.log("hover segmentToRects",a)}P(()=>[w.booths,g.loaded,g.visible],()=>B());function F(o,r){const n={x:o,y:r};let s;h&&h.containsPoint(n)?s=h:s=d.find(t=>t.containsPoint(n)),s&&(h=s);const i=a.get(s);if(i){const t=i.filter(e=>e.containsPoint(n));if(t.length){let e;t.length>1?e=t.sort((f,c)=>f.size.width-c.size.width)[0]:e=t[0];let l=p.get(e);return l.visible?l:null}}for(const t of y)for(const e of t.paths)for(const l of v(e.index,g.mode!==R.Default?t.layer.name:"")){const f=l.map(c=>({x:c[0],y:c[1]}));if(x.fromConvexRing(f).containsPoint(n))return t.visible?t:null}return null}export default function C(o,r){return F(o,r)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import Z from"color";import{reaction as
|
|
1
|
+
import{Box as Z,pointRotate as $,Polygon as Y,Rect as j}from"@expofp/geometry";import q from"color";import{reaction as H}from"mobx";import{SEPARATOR as S}from"../../../../constants";import J from"../../../../data";import{getTrianglesFromFpPaths as K}from"../../../../data/svg";import{createShapeDef as Q,createTextDef as V,createTextDefLines as tt,rectToRenderer as b}from"../../../../renderer";import{boothStore as nt,uiState as et}from"../../../../store";import{RegularBooth as ot}from"../../../../store/BoothStore";import w from"../../../../tools/settings";import{getContrastTextColor as it}from"../../../../utils/getContrastTextColor";import{getFont as rt}from"./canvases";import{getBadgeFontWeight as st,getFontUrlByWeight as ct}from"./config-booth-labels";const at=.5,lt=.3,F=15,ft=24,O=30,dt=12,ut=12,U=.8,k=document.createElement("canvas").getContext("2d");function gt(n){return n.length<=F?n:n.slice(0,F-1)+"\u2026"}function z(n){if(!n.paths?.length)return[];const t=n.layer?.name||"",o=[];for(const e of n.paths)for(const i of K(e.index,t))o.push(i);return o}function mt(n){const t=z(n);return t.length?Z.fromPoints(t.flat().map(([o,e])=>({x:o,y:e}))):null}function ht(n){const t=[],o=[];for(const e of n){const i=t.length;t.push({x:e[0][0],y:e[0][1]}),t.push({x:e[1][0],y:e[1][1]}),t.push({x:e[2][0],y:e[2][1]}),o.push([i,i+1,i+2])}return new Y(t,o)}function T(n,t,o){return o.containsPoint({x:n,y:t})}function pt(n,t,o,e,i,c,s){if(!n.length||!T(o,e,t))return s;let f=0,h=s;const p=10;for(let x=0;x<p;x++){const g=(f+h)/2,a=i*g,u=c*g;T(o+a,e,t)&&T(o,e+u,t)&&T(o+a,e+u,t)?f=g:h=g}return f}function xt(n){return mt(n)??n.rect}function Bt(n,t,o,e,i){const c=xt(n);if(t.length){const h=new Set;let p=null,x=1/0;for(const g of t)for(const a of g){const u=`${a[0]},${a[1]}`;if(h.has(u))continue;h.add(u);const m=a[0]+e,A=a[1]+e;if(T(m,A,o)){const y=m-c.min.x+(A-c.min.y);y<x&&(x=y,p={x:m,y:A})}}if(p)return p}const s=n.rect.min.x+e,f=n.rect.min.y+e;return i?$({x:s,y:f},i,n.rect.center):{x:s,y:f}}function R(n){return n&&n!=="none"?n:void 0}function At(n){const t=R(n.borderColor)||R(w.boothBorderColor)||w.colors.booths.default;return n.paths?.length>1&&R(n.paths[n.paths.length-1].color)||t}export function createBoothBadge(n,t){const o=gt(t.title||t.name),e=At(t),i=it(q(e).hex()),c=window.devicePixelRatio||1,s=st(),f=rt(O,s);k.font=f;const h=k.measureText(o).width,p=Math.ceil(h+dt*2),x=O+ut*2,g=(t.borderWidth||nt.borderWidth)/2,a=p*U,u=x*U,m=t.rotate??0,A=t.rect.size.width,y=t.rect.size.height,L=Math.min(A>0?A*at/a:1/0,y>0?y*lt/u:1/0),E=z(t),P=ht(E),{x:_,y:I}=Bt(t,E,P,g,m),C=pt(E,P,_,I,a,u,L),D=(r,B)=>{const N=r/2,X=B/2,v=$({x:_+N,y:I+X},m,{x:_,y:I});return new j(v,{x:r,y:B},m)},G=r=>{const B=Math.min(r,C);return D(a*B,u*B)},M=ct(s,n.fontUrls),d=Q(D(1,1),e);d.hidden=!0,d.dim=t.skipDim?!1:void 0;const l=V(tt([[o],[]],i,0,[M,M]),D(1,1),[0,0],{horizontal:"center",vertical:"center"});l.hidden=!0,l.dim=t.skipDim?!1:void 0;const W=()=>!!(t.layer&&!t.layer.visible);return H(()=>t.skipDim,r=>{d.dim=r?!1:void 0,l.dim=r?!1:void 0,n.update(d,l)}),H(()=>t.layer?.visible??!0,r=>{d.hidden=!r,l.hidden=!r,n.update(d,l)}),n.onPtScale(`badge-bg-${t.id}`,r=>(d.shape=b(G(r)),d.hidden=W(),d)),n.onPtScale(`badge-text-${t.id}`,r=>{const B=Math.min(r,C);return l.lines[0].fontSize=ft/c*B,l.bounds=b(G(r)),l.hidden=W(),l}),{bg:d,text:l}}export function configBoothsBadges(n,t,o){if(J.hideExhibitorBoothNumber)return null;const e=[],i=[];for(const c of o)if(c instanceof ot&&c.noLabels&&!et.hideLogoInBooth&&c.exhibitors.some(s=>s.logoInBooth&&s.logo)){const{bg:s,text:f}=createBoothBadge(n,c);e.push(s),i.push(f)}return e.length?{name:`${t}${S}badges`,children:[{name:`${t}${S}badgeBgs`,children:e},{name:`${t}${S}badgeTexts`,children:i}]}:null}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__esDecorate as g,__runInitializers as k}from"tslib";import a from"color";import
|
|
1
|
+
import{__esDecorate as g,__runInitializers as k}from"tslib";import{Rect as v}from"@expofp/geometry";import a from"color";import _ from"color-interpolate";import{computed as b,reaction as C}from"mobx";import u from"../../../../data";import{createShapeDef as D}from"../../../../renderer";import p,{boothStore as I,layersStore as S,uiState as f}from"../../../../store";import{RegularBooth as w,SpecialBooth as x}from"../../../../store/BoothStore";import{RebookingState as P}from"../../../../store/ExhibitorStore";import{LayersMode as L}from"../../../../store/LayerStore";import{rebookingStateConfig as B}from"../../../../tools/rebooking-config";import n from"../../../../tools/settings";import{BoothDrawerBaseWithoutPainter as F}from"./BoothDrawerBase";import{buildPathDef as A}from"./config-bg";export default function R(s,i){return new z(s,i)}function W(s){if(s.length===0)return null;const i=s[0];return s.every(c=>c===i)?i:null}export function pathToShapeDef(s,i){const h=[];for(const c of s){const d=A({index:c.index,color:c.color,unblinking:c.unblinking},i);d&&h.push(d)}return h}let z=(()=>{let s=F,i=[],h,c;return class extends s{static{const o=typeof Symbol=="function"&&Symbol.metadata?Object.create(s[Symbol.metadata]??null):void 0;h=[b({keepAlive:!0})],c=[b({keepAlive:!0})],g(this,null,h,{kind:"getter",name:"defaultColor",static:!1,private:!1,access:{has:e=>"defaultColor"in e,get:e=>e.defaultColor},metadata:o},null,i),g(this,null,c,{kind:"getter",name:"selectedColorInterpolateFunc",static:!1,private:!1,access:{has:e=>"selectedColorInterpolateFunc"in e,get:e=>e.selectedColorInterpolateFunc},metadata:o},null,i),o&&Object.defineProperty(this,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:o})}rendererService=k(this,i);constructor(o,e){if(super(e),this.rendererService=o,e.paths){const t=pathToShapeDef(e.paths,p.layerStore.mode!==L.Default?e.layer.name:"");e.shapes=t.map(r=>{const l=f.monochrome?a(r.color).grayscale().rgb().string():this.getBoothColor().string();return r.color==="transparent"?r.color=l:r.defaultColor=r.color,r})}else{const t=e.borderColor==="none"?0:isNaN(e.borderWidth)?I.borderWidth:e.borderWidth,r=this.booth.rect.expand(-t/2),l=this.getBoothColor().string();e.shapes=[D(new v(r.center,r.size,this.booth.rotate),l)]}C(()=>this.booth.hover,()=>!this.booth.selected&&this.update()),C(()=>[S.layersLoaded,this.booth.skipDim,this.booth.selected,this.boothShape.selectBgAnimationPart],()=>this.update())}getShape(){return this.booth.shapes}update(){if(S.layersLoaded)for(const o of this.booth.shapes){if(o.dim=this.booth.skipDim?!1:void 0,o.color&&!o.unblinking){const e=o.defaultColor?this.getBoothPathColor(o.defaultColor):this.getBoothColor();o.color=e.string()}this.rendererService.update(o)}}getBoothPathColor(o){const e=this.booth;let t=a(o).hsl();if(e.selected){const r=n.colors.booths.selected;if(window.__fpSettings?.fpVer){let m=this.selectedColorInterpolateFunc(this.boothShape.selectBgAnimationPart);return a(m==="none"?r:m)}const l=a(r).hsl(),y=l.lightness()*this.boothShape.selectBgAnimationPart;t=t.hue(l.hue()).lightness(y)}else e.hover&&(t=t.darken(.1));return t}get defaultColor(){const o=this.booth;let e;if(o instanceof x)e=o.color||n.colors.booths.empty;else if(o instanceof w){if(u.isRebooking){if(!o.exhibitors?.length)return B[P.Unasked].color.primary;const r=W((o.exhibitors??[]).map(l=>l.rebookingState));return r!==null?B[r].color.primary:"#000000"}const t=n.colors.booths;o.onHold?e=o.holdColor||t.defaultHold:o.exhibitors.length||o.reserved?e=o.soldColor||t.defaultSold:e=o.availColor||t.empty}try{e==="none"&&(e=n.colors.booths.default),a(e)}catch(t){e=n.colors.booths.default,console.error("Booth: defaultColor",t)}return e}get selectedColorInterpolateFunc(){const o=n.colors.booths.seectedLight||(a(this.booth.labelColor||n.boothLabelColor).isLight()?"#000":"#fff"),e=f.selectedRoute?n?.colors?.booths?.wayfinding?.selected:n?.colors?.booths?.selected;return _([o,e])}getBoothColor(){const o=this.booth;let e;if(f.heatmap){const r=p.heatmapStore.getTotalClicksByBooth(o),l=a(p.heatmapStore.getColorByClicks(r));return o.selected?(e=this.selectedColorInterpolateFunc(this.boothShape.selectBgAnimationPart),a(e==="none"?"#f33":e)):o.hover?l.darken(.2).alpha(l.alpha()*1.5):l}o.error?e="#f33":u.isRebooking?e=this.defaultColor:o.selected?e=this.selectedColorInterpolateFunc(this.boothShape.selectBgAnimationPart):e=this.defaultColor;let t;try{t=a(e==="none"?"#f33":e)}catch{t=a(this.defaultColor)}return(o.hover&&!o.selected||o.selected&&u.isRebooking)&&(t=t.darken(.2).alpha(t.alpha()*1.5)),(f.monochrome||f.heatmapYah)&&(t=t.grayscale()),t}}})();
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import { Rect } from '@expofp/geometry';
|
|
1
2
|
import { ImageDef } from '@expofp/renderer';
|
|
2
3
|
import { RendererService } from '../../../../renderer';
|
|
3
4
|
import { Booth } from '../../../../store/BoothStore';
|
|
4
5
|
import { BoothDrawerBaseWithoutPainter } from './BoothDrawerBase';
|
|
5
|
-
import { Rect } from './Rect';
|
|
6
6
|
export default function configBoothBookmarkImage(rendererService: RendererService, booth: Booth): BoothBookmarkDrawer | undefined;
|
|
7
7
|
declare class BoothBookmarkDrawer extends BoothDrawerBaseWithoutPainter {
|
|
8
8
|
protected rendererService: RendererService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{Rect as o}from"@expofp/geometry";import{reaction as s}from"mobx";import{createBookmarkCanvas as c,createImageDef as k,getClampedBoundsCanvas as m,getRollValue as l,getRotation as p}from"../../../../renderer";import{layersStore as a,uiState as h}from"../../../../store";import{BoothDrawerBaseWithoutPainter as u}from"./BoothDrawerBase";export default function f(r,e){if(!h.kiosk)return new b(r,e)}class b extends u{rendererService;shape;bookmarkId;canvas;rect;padding;constructor(e,t){super(t),this.rendererService=e,this.padding=this.booth.borderWidth/2,this.rect=new o(this.booth.rect.center,this.booth.rect.size,this.booth.rotate),this.canvas=c(11,devicePixelRatio),this.bookmarkId=`bookmark-${this.booth.id}`,this.shape=k(this.canvas,this.rect,{hidden:!t.bookmarked}),s(()=>[t.bookmarked,a.layersLoaded,this.booth.skipDim],()=>this.update(t.bookmarked),{fireImmediately:t.bookmarked}),s(()=>h.mapSettings,({roll:n})=>{l(n)&&this.rendererService.onRoll(`bookmark-roll-${this.bookmarkId}`,d=>{const i=p(d,this.rect.rotation);return i!==void 0&&(this.rect=new o(this.rect.center,{x:this.rect.size.y,y:this.rect.size.x},this.rect.rotation+i),this.handleBookmarkScale()),this.shape})})}getShape=()=>this.shape;update(e){a.layersLoaded&&(this.shape.hidden=!e,this.shape.dim=this.booth.skipDim?!1:void 0,this.handleBookmarkScale(),this.shape.hidden?(this.rendererService.ptScaleRegistry.unregisterByName(this.bookmarkId),this.rendererService.rollRegistry.unregisterByName(`bookmark-roll-${this.bookmarkId}`)):this.rendererService.onPtScale(this.bookmarkId,this.handleBookmarkScale.bind(this)),this.rendererService.update(this.shape))}handleBookmarkScale(e){if(!this.shape.hidden)return this.shape.bounds=m(this.rect,this.canvas,this.padding,e||this.rendererService.scale),this.shape}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Polygon as
|
|
1
|
+
import{Polygon as W,Rect as D}from"@expofp/geometry";import P from"color";import{reaction as C}from"mobx";import{createShapeDef as S}from"../../../../renderer";import{boothStore as p,layersStore as m}from"../../../../store";import l from"../../../../tools/settings";import{BoothDrawerBaseWithoutPainter as b}from"./BoothDrawerBase";export default function L(a,r){if(l.EXPO!=="confex20"&&!(r.poiType||r.borderColor==="none"||r.borderWidth===0&&!p.borderWidth||r.paths&&!r.pathsWithRect))return new k(a,r)}class k extends b{shape;constructor(r,o){super(o);const f=P(o.selected?l.colors.booths.selectedBorder:o.borderColor),h=this.booth.rect,{x:t,y:s}=h.center,{width:i,height:n}=h.size,e=o.borderWidth||p.borderWidth,c=[],d=(u,g,x,w)=>{const B=new D({x:u,y:g},{x,y:w}).toPolygon();c.push(B.rotate(o.rotate??0,{x:t,y:s}))};d(t,s-n/2,i+e,e),d(t,s+n/2,i+e,e),d(t-i/2,s,e,n+e),d(t+i/2,s,e,n+e);const y=W.merge(...c);this.shape=S(y,f.string()),C(()=>[this.booth.skipDim,m.layersLoaded],()=>{m.layersLoaded&&(this.shape.dim=this.booth.skipDim?!1:void 0,r.update(this.shape))})}getShape(){return this.shape}}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { ImageDef, TextDef } from '@expofp/renderer';
|
|
2
|
-
import { RendererService } from '../../../../renderer';
|
|
3
|
-
import { FontSizeFactor } from '../../../../renderer';
|
|
2
|
+
import { FontSizeFactor, RendererService } from '../../../../renderer';
|
|
4
3
|
import { Booth, SpecialBooth } from '../../../../store/BoothStore';
|
|
5
4
|
import { BoothLabelDrawer } from './config-booth-labels';
|
|
6
5
|
export default function configBoothLabelsSpecial(rendererService: RendererService, booth: Booth): BoothLabelSpecialDrawer | undefined;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{reaction as u}from"mobx";import{FONT_WEIGHT_PRIMARY_BOOTH as
|
|
2
|
-
`),this.shapeLabel.padding=[this.paddingScaled[0]*e+this.padding,this.paddingScaled[1]*e+this.padding],this.shapeLabel):(this.shapeLabel.lines[0].fontSize=0,this.shapeLabel)},b=e=>{let a=this.steps.find(
|
|
1
|
+
import{Box as x,Rect as f}from"@expofp/geometry";import{reaction as u}from"mobx";import{FONT_WEIGHT_PRIMARY_BOOTH as L,FONT_WEIGHT_PRIMARY_SPECIAL as D}from"../../../../constants";import{boxToRenderer as R,createTextDef as F,getRollValue as v,getRotation as T,shouldFlip as y,updateRectRotation as z,updateTextDefRotation as P}from"../../../../renderer";import{boothStore as w,heatmapStore as k,layersStore as B,uiState as d}from"../../../../store";import{SpecialBooth as I}from"../../../../store/BoothStore";import M from"../../../../tools/settings";import{getFont as C}from"./canvases";import{BoothLabelDrawer as W,getFontUrlByWeight as V,getMinZoomFactorForDot as _,isDirectionsMode as $}from"./config-booth-labels";import H from"./TextFitter";const p=new Map;function N(i){let t=p.get(i);if(!t){const s=[18,16,14,12,10,7].map(h=>h*i),o=14*i;t=new H(C,s,o),p.set(i,t),setTimeout(()=>p.delete(i),5e3)}return t}export default function O(i,t){if(!(!(t instanceof I)||t.noLabels))return new A(i,t)}class A extends W{steps;labelIsVertical;text;constructor(t,s){super(t,s);const o=s.borderWidth/2||w.borderWidth/2,h=this.booth.rect,S=Number(getComputedStyle(document.body).getPropertyValue(D))||Number(getComputedStyle(document.body).getPropertyValue(L))||500,g=V(S,this.rendererService.fontUrls),c=h.expand({x:-(h.size.width*.05+o),y:-(h.size.height*.05+o)});this.setText(),this.canvasRect=new f(c.center,c.size,s.rotate),this.setFactors(this.text),this.labelIsVertical=Math.abs(Math.abs(s.rotate)-Math.PI/2)<.01,this.fontSizes=[this.steps,[]],this.minZoomDotVisible=_(this.steps.map(e=>e.scaleFactor)),this.shapeLabel=F([{text:this.text,color:s.labelColor||M.boothLabelColor,fontUrl:g,fontSize:0}],new f(c.center,c.size,s.rotate),[o,o],{horizontal:"center",text:"center",vertical:"center"}),this.getShapeDot(),u(()=>[this.booth.skipDim,d.selectedRoute,B.layersLoaded],()=>{const e=$();this.shapeLabel.dim=e||this.booth.skipDim?!1:void 0,this.shapeDot.dim=e||this.booth.skipDim?!1:void 0,this.rendererService.update(this.shapeLabel,this.shapeDot)});const m=e=>{let a=this.steps.find(r=>r.scaleFactor<1/e);return a?(this.shapeLabel.lines[0].fontSize=a.value/devicePixelRatio*e,this.shapeLabel.lines[0].text=a.lines.join(`
|
|
2
|
+
`),this.shapeLabel.padding=[this.paddingScaled[0]*e+this.padding,this.paddingScaled[1]*e+this.padding],this.shapeLabel):(this.shapeLabel.lines[0].fontSize=0,this.shapeLabel)},b=e=>{let a=this.steps.find(l=>l.scaleFactor<1/e);const r=this.shapeDot.source.width*e,n=this.shapeDot.source.height*e;return this.shapeDot.bounds=R(x.fromCenter(this.canvasRect.center,{x:r,y:n})),this.shapeDot.hidden=!!a,this.shapeDot};this.rendererService.onPtScale(`booth-special-label-${s.id}`,m),this.rendererService.onPtScale(`booth-special-dot-${s.id}`,b),u(()=>d.mapSettings,({roll:e})=>{v(e)&&this.rendererService.onRoll(`booth-special-roll-${s.id}`,a=>{const r=this.shapeLabel.bounds.rotation;if(this.labelIsVertical)y(a,r)&&(this.shapeLabel.bounds.rotation=-r);else{const n=T(a,r);if(n!==void 0){const{size:l}=this.canvasRect;this.shapeLabel=P(this.shapeLabel,n),l.x!==l.y&&!this.shapeLabel.hidden&&(this.canvasRect=z(this.canvasRect,n),this.setFactors(this.text),m(this.rendererService.scale),b(this.rendererService.scale))}}return[this.shapeLabel,this.shapeDot]})})}getShape(){return[this.shapeLabel,this.shapeDot]}setFactors(t){this.steps=N(devicePixelRatio).getStepsForRect(t,this.canvasRect.size.x,this.canvasRect.size.y)}setText(){const t=this.booth.title||this.booth.name,o=`Clicks: ${k.getTotalClicksByBooth(this.booth)}`;this.text=d.heatmap?`${t} - ${o}`:t}}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { CustomFonts, FontSizeFactor } from '../../../../renderer';
|
|
1
|
+
import { Rect } from '@expofp/geometry';
|
|
2
|
+
import { ImageDef, TextAlignment, TextDef } from '@expofp/renderer';
|
|
3
|
+
import { CustomFonts, FontSizeFactor, RendererService } from '../../../../renderer';
|
|
4
4
|
import { Booth } from '../../../../store/BoothStore';
|
|
5
5
|
import { Exhibitor } from '../../../../store/ExhibitorStore';
|
|
6
6
|
import { BoothDrawerBaseWithoutPainter } from './BoothDrawerBase';
|
|
@@ -22,7 +22,7 @@ export declare function getExhibitorLabelWeights(): LabelFontWeights;
|
|
|
22
22
|
export declare function getBadgeFontWeight(): number;
|
|
23
23
|
export declare class BoothLabelDrawer extends BoothDrawerBaseWithoutPainter {
|
|
24
24
|
protected readonly rendererService: RendererService;
|
|
25
|
-
protected canvasRect:
|
|
25
|
+
protected canvasRect: Rect;
|
|
26
26
|
protected paddingScaled: [number, number];
|
|
27
27
|
protected padding: number;
|
|
28
28
|
protected minZoomDotVisible: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{Rect as E}from"@expofp/geometry";import{reaction as W}from"mobx";import{FONT_WEIGHT_PRIMARY_BOOTH as N,FONT_WEIGHT_PRIMARY_EXHIBITOR as U,FONT_WEIGHT_SECONDARY_BOOTH as V,FONT_WEIGHT_SECONDARY_EXHIBITOR as Z}from"../../../../constants";import m from"../../../../data";import{createShapeDot as X,createTextDef as G,createTextDefLines as Y,DEFAULT_FONT_LIGHT_URL as $,DEFAULT_FONT_URL as B,getRollValue as k,getRotation as q,updateLinesScale as j,updateRectRotation as J,updateTextDefRotation as K}from"../../../../renderer";import{layersStore as M,uiState as f}from"../../../../store";import{RegularBooth as Q,SpecialBooth as ee}from"../../../../store/BoothStore";import x from"../../../../tools/settings";import{t as v}from"../../../../utils/i18n";import te from"../../../../utils/is-mobile";import ie from"../../../../utils/is-webview";import{isArabicText as se}from"../../../../utils/rtl";import{BoothDrawerBaseWithoutPainter as ne}from"./BoothDrawerBase";import{getFont as _}from"./canvases";let z=x.boothLabelColor;x.EXPO==="tqs2021"&&(z="#000");const b=te||ie,D=r=>r.replace(" ","").substring(0,4).replace(/[0-9]/g,"3").replace(/[A-Z]/gi,"A"),H=document.createElement("canvas").getContext("2d");export default function oe(r,e){if(!(!(e instanceof Q)||e.noLabels))return new BoothLabelDrawer(r,e)}export function getMinZoomFactorForDot(r){return Array.isArray(r)&&r.length>0?Math.max(...r.map(e=>e)):typeof r=="number"?r:-0}export const isDirectionsMode=()=>!!(f.selectedRoute?.from&&f.selectedRoute?.to);export function getFontUrlByWeight(r,e=[],t="normal"){return[...e,{weight:500,url:B,style:"normal"},{weight:300,url:$,style:"normal"}].find(i=>+i.weight===r&&i.style===t)?.url||B}function S(r,e){return Number(getComputedStyle(document.body).getPropertyValue(r))||e}export function getBoothLabelWeights(){return{main:S(N,500),details:S(V,300)}}export function getExhibitorLabelWeights(){return{main:S(U,500),details:S(Z,300)}}export function getBadgeFontWeight(){return getExhibitorLabelWeights().details}const R="Details";export class BoothLabelDrawer extends ne{rendererService;canvasRect;paddingScaled;padding;minZoomDotVisible;maxZoomDotVisible;exh;shapeLabel;shapeDot;fontSizes;lines;topLeftAlignment;centerAlignment;prefixes;fontUrls;constructor(e,t){if(super(t),this.rendererService=e,this.canvasRect=new E(t.rect.center,t.rect.size,t.rotate),this.paddingScaled=[4,4],this.padding=(t.borderWidth||x.boothBorderWidth)/2,this.topLeftAlignment={horizontal:f.rtl?"right":"left",vertical:"top"},this.centerAlignment={horizontal:"center",vertical:"center"},this.prefixes=b?[{fontSize:7,name:"XS",short:!0},{fontSize:10,name:"S",short:!0},{fontSize:16,name:R,short:!1}]:[{fontSize:7,name:"XS",short:!0},{fontSize:10,name:"S",short:!0},{fontSize:12,name:"M",short:!0},{fontSize:14,name:"L",short:!0},{fontSize:18,name:R,short:!1}],t instanceof ee)return;this.exh=m.hideExhibitors?[]:m.onlyFeaturedExhibitors?t.exhibitors.filter(i=>i.featured):t.exhibitors,b&&this.optimizationLevel()>=3&&(this.prefixes=this.prefixes.filter(i=>i.name!=="S")),this.createLines(),this.calculateFontSizeFactors(),this.shapeLabel=G(Y(this.lines,this.booth.labelColor||z,0,this.fontUrls),new E(this.booth.rect.center,this.booth.rect.size,this.booth.rotate),[...this.paddingScaled],{horizontal:"left",vertical:"top"}),this.getShapeDot();const o=i=>{const n=this.lines[1]??[],s=this.fontSizes[1]??[];if(x.EXPO!=="wineparis2026"){const p=this.exh.length?this.topLeftAlignment:n.length?i<s[s.length-1].scaleFactor?this.topLeftAlignment:this.centerAlignment:this.topLeftAlignment;this.shapeLabel.alignment=p}if(!j(this.shapeLabel.lines,i,this.fontSizes,this.booth.name))return;const l=this.paddingScaled[0]*i+this.padding,d=this.paddingScaled[1]*i+this.padding;return this.shapeLabel.padding[0]=l,this.shapeLabel.padding[1]=d,this.shapeLabel},h=i=>{const n=i>=this.minZoomDotVisible&&i<=this.maxZoomDotVisible,s=this.shapeDot.source.width*i,a=this.shapeDot.source.height*i;if(!(!n&&this.shapeDot.hidden))return this.shapeDot.bounds.size={x:s,y:a},this.shapeDot.hidden=!n,this.shapeDot};W(()=>[this.booth.skipDim,f.selectedRoute,M.layersLoaded],()=>{if(!M.layersLoaded)return;const i=isDirectionsMode();this.shapeLabel.dim=i||this.booth.skipDim?!1:void 0,this.shapeDot.dim=i||this.booth.skipDim?!1:void 0,this.rendererService.update(this.shapeLabel,this.shapeDot)}),W(()=>f.mapSettings,({roll:i})=>{k(i)&&this.rendererService.onRoll(`booth-roll-${t.id}`,n=>{const s=q(n,this.shapeLabel.bounds.rotation),{size:a}=this.canvasRect;return s!==void 0&&(this.shapeLabel=K(this.shapeLabel,s),!this.shapeLabel.hidden&&!this.exh.length&&a.x!==a.y&&(this.canvasRect=J(this.canvasRect,s),this.calculateFontSizeFactors(),o(this.rendererService.scale),h(this.rendererService.scale))),[this.shapeLabel,this.shapeDot]})}),this.rendererService.onPtScale(`booth-label-${t.id}`,o),this.rendererService.onPtScale(`booth-dot-${t.id}`,h)}getShape(){return[this.shapeLabel,this.shapeDot]}getShapeDot(){this.shapeDot=X(this.canvasRect,this.booth.labelColor||z),this.shapeDot.hidden=!0,this.maxZoomDotVisible=Math.min(this.canvasRect.size.x/this.shapeDot.source.width,this.canvasRect.size.y/this.shapeDot.source.height)}createLines(){const e=this.booth,t=[],o=[],h=b&&this.optimizationLevel()>=3?1:3;if(this.exh.length){const i=e.exhibitors.filter(s=>s.order===0),n=e.exhibitors.filter(s=>s.order);if(i.length>0)t.push(...i.map(s=>s.name));else if(m.onlyFeaturedExhibitors)t.push(...e.exhibitors.filter(s=>s.featured).map(s=>s.name));else if(n.length>0){t.push(...n.map(a=>a.name));const s=e.exhibitors.filter(a=>a.order===void 0);s.length>0&&t.push(v("and {{moreCount}} more",{moreCount:s.length}))}else e.exhibitors.length>h?t.push(`${e.exhibitors.length} ${m.exhibitorTermPlural}`):t.push(...e.exhibitors.map(s=>s.name));o.push(e.title||e.name)}else{const i=!!e.exhibitors.length;t.push(e.title||e.name),e.onHold?o.push(v("On Hold")):e.reserved?o.push(v("Reserved")):i||o.push(...e.exhibitors.map(n=>n.name).sort((n,s)=>n>s?1:-1)),e.size&&o.push(e.size.indexOf("/")>-1?e.size.substring(0,e.size.indexOf("/")).trim():e.size),e.price&&e.price!=="0"&&!f.previewMode&&o.push(e.price)}f.rtl&&t.forEach((i,n)=>{(i.endsWith(".")||i.endsWith("!")||i.endsWith("?"))&&(t[n]=t[n]+"\u200F"),se(i)&&(t[n]=t[n]+" ")}),this.lines=[t,o]}calculateFontSizeFactors(){let[e,t]=this.lines;const o=this.canvasRect,h=[],i=[],n=this.prefixes.slice(0,this.exh.length?this.prefixes.length:this.prefixes.length-1),{main:s,details:a}=this.exh.length?getExhibitorLabelWeights():getBoothLabelWeights();for(const{fontSize:l,short:d}of n){const p=l*devicePixelRatio,F=.9*l*devicePixelRatio,u=_(p,s),T=_(F,a),y=m.hideExhibitorBoothNumber||d;let w,A,L,g;if(this.exh.length)d?t=[]:t=this.lines[1],L=Math.max(...e.map(c=>this.measureText(c,u).width),...t.map(c=>this.measureText(c,T).width)),w=Math.max(...e.map(c=>this.exh.length?this.measureText(D(c),u).width:this.measureText(D(c),u).width+3+3),...t.map(c=>this.measureText(D(c),T).width)),g=p*e.length+F*t.length+devicePixelRatio*(e.length+t.length)+3,A=y?g/e.length:null;else{const c=e[0].replace(/[0-9]/g,"3").replace(/[A-Z]/g,"A"),C=4;L=this.measureText(c,u).width+3+3,g=p+C}const I=o.size.x/(w||L),P=o.size.y/(A||g),O=Math.min(I,P);h.push({scaleFactor:O,value:l}),!y&&i.push({scaleFactor:O,value:.9*l})}if(!this.exh.length){const l=h[h.length-1],d=this.prefixes.find(p=>p.name===R);h.push({scaleFactor:l.scaleFactor/1.8,value:d.fontSize}),i.push({scaleFactor:l.scaleFactor/1.8,value:d.fontSize*(b?1:.9)})}this.fontUrls=[getFontUrlByWeight(s,this.rendererService.fontUrls),getFontUrlByWeight(a,this.rendererService.fontUrls)],this.minZoomDotVisible=getMinZoomFactorForDot(h.map(l=>l.scaleFactor)),this.fontSizes=[h,i]}calcArea(e,t){return Math.floor(Math.max(0,e)*Math.max(0,t)/1e3)}optimizationLevel(){return Math.min(m.viewOptimizationLevel?m.viewOptimizationLevel:Math.floor(this.calcArea(this.canvasRect.size.x,this.canvasRect.size.y)/5e3),3)}measureText(e,t){return H.font=t,H.measureText(e)}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{SEPARATOR as s}from"../../../../constants";import{createImageDef as
|
|
1
|
+
import{Rect as W}from"@expofp/geometry";import{SEPARATOR as s}from"../../../../constants";import{createImageDef as w}from"../../../../renderer";import A,{boothStore as E,uiState as H}from"../../../../store";import T from"../../../../tools/settings";import{loadImagesInBatchesById as U}from"../../../../utils/loadImagesInBatches";import _ from"./config-booth-bg";import z from"./config-booth-bookmark";import C from"./config-booth-border";import K from"./config-booth-labels";import P from"./config-booth-labels-special";import{createBoothImg as Z,getImageLayerName as j,mapBoothsLogos as q}from"./loadBoothsImages";export const BOOTHS_CHUNK_SIZE=350;export default function F(n,$,I){return(h=>{const t=$,p=[],m=[],l=[],f=[],b=[],g=j(t),d={name:g,children:[]};for(const o of h){const r=_(n,o)?.getShape();r&&p.push(...r);const a=K(n,o)?.getShape();a&&m.push(...a);const c=P(n,o)?.getShape();if(c&&l.push(...c),!T.borderless){const e=C(n,o)?.getShape();e&&f.push(e)}const i=z(n,o)?.getShape();i&&b.push(i)}const y=m.filter(o=>o.lines),k=l.filter(o=>o.lines),S=m.filter(o=>o.source),D=l.filter(o=>o.source);if(!H.hideLogoInBooth){const o=q(h);n.onLayerImages(g,async()=>{const r=await U(o,BOOTHS_CHUNK_SIZE),a=[];for(const[c,i]of r){const e=A.boothStore.boothById.get(c);if(!e)continue;const{bounds:x,htmlImage:R}=Z(e,i),u=w(R,x),N=e.borderWidth||E.borderWidth,L=e.rect.expand(-N),O=new W(L.center,L.size,e.rotate);e.shapes.push(u),a.push({shape:u,parentRect:O})}return{layer:d,children:a}})}let B=[];return h.length&&(B=[{name:`${t}${s}boothBackground`,children:p,interactive:!0},{name:`${t}${s}labels`,children:y},{name:`${t}${s}specialLabels`,children:k},{name:`${t}${s}bots`,children:S},{name:`${t}${s}specialDots`,children:D},d,{name:`${t}${s}boothsBookmark`,children:b},{name:`${t}${s}boothBorder`,children:f}]),{name:t,children:B}})(I)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Rect as O}from"@expofp/
|
|
1
|
+
import{degToRad as C,Rect as O}from"@expofp/geometry";import{BOOTHS_PAINTER_MARKER as T,SEPARATOR as m}from"../../../../constants";import{createImageDef as D,createLayerDef as H}from"../../../../renderer";import c,{boothStore as k}from"../../../../store";import G from"../../../../store/init/init-booths";import{getChildLayers as K}from"../../../../store/init/init-layers";import{LayersMode as U}from"../../../../store/LayerStore";import{loadJs as Y}from"../../../../tools/loaders";import{chunkArray as j}from"../../../../utils";import{loadIcons as v}from"../../../../utils/imageloader";import F,{BG_LAYER_NAME as w,FG_LAYER_NAME as P}from"./config-bg";import J,{BOOTHS_CHUNK_SIZE as Z}from"./config-booths";import{getImageLayerName as q,getLayerIcons as z}from"./loadBoothsImages";function Q(e){return e.childLayers.length?e.childLayers:K(e,e.basePriority,15).layers}function _(e,t,h){return new Promise(async f=>{let r=[];const s=G(c,t),a=await F(t),i=[],d=j(s,Z),l=k.booths.filter(o=>o.rect&&(!o.layer||o.layer===t||o.layer.childLayers.includes(t))&&o.exhibitors.find(n=>!!n.logoInBooth&&!!n.logo)&&!c.uiState.hideLogoInBooth),B=new Map(l.map(o=>[o.id,o.noLabels]));l.forEach(o=>o.noLabels=!0),s.length&&d.forEach((o,n)=>{i.push(J(e,`${t.name}${m}${T}${m}${n}`,o))}),l.forEach(o=>{o.noLabels=B.get(o.id)}),t.loaded=!0;const u=a.children.find(o=>o.name===w),y=a.children.find(o=>o.name===P),p=q(t.name),g=z(t),L={name:p,children:[]};g.length&&e.onLayerImages(p,async()=>{const o=await v(g),n=[];for(const I of o.filter(Boolean)){const{bounds:{x:$,y:b,height:A,angle:R,width:S},htmlImage:M}=I,N=O.fromMinMax({x:$,y:b},{x:$+S,y:b+A},C(R)),x=D(M,N);n.push({shape:x})}return{layer:L,children:n}}),u&&r.push({...u,name:`${a.name}${m}${w}`}),i.length&&r.push(...i),y&&r.push({...y,name:`${a.name}${m}${P}`}),g.length&&r.push(L);const E=t.childLayers.sort((o,n)=>o.basePriority-n.basePriority).map(async o=>_(e,o,!0));Promise.all(E).then(o=>{const n=o.flat();n.length&&r.push(...n),t.children=r,t.configured=!0,f(H(t.name,r,{hidden:!h}))})})}export default async function V(e,t){return e.configured?Promise.resolve({name:e.name,children:e.children}):new Promise(async(h,f)=>{if(c.layerStore.mode!==U.Default&&!window[`__fpPaths${e.name}`]&&!e.rootParent)try{await Y(`${window.__dataUrlBase}fp.svg.${e.name}.js`)}catch{return f()}const r=Q(e);r.length&&(e.childLayers=r);const{layers:s}=c.layerStore;c.layerStore.layers=[...s,...r.filter(i=>!s.some(d=>d.name===i.name))];const a=await _(t,e,e.visible);h(a)})}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{reaction as
|
|
1
|
+
import{Box as K,degToRad as T}from"@expofp/geometry";import{reaction as I}from"mobx";import{createImageDef as C,getBounds as b,rectToRenderer as F}from"../../../../renderer";import l,{layersStore as S}from"../../../../store";import{createImageCanvas as v}from"./canvases";const B="_selected";export const MARKER_LAYER_NAME="markers";export function configMarkers(s){const u=[],d=new Map,r=new Map;let n=[];const m=s.scene.rootLayer.children.find(t=>t.name===MARKER_LAYER_NAME);async function w(t){const o=[];t.forEach(a=>{const{name:e,content:i,width:c,height:g,scale:k}=a;if(d.has(e))return;const h=new Image,y=new Promise((D,M)=>{h.onload=()=>{d.set(e,{img:h,width:c,height:g,scale:k}),D()},h.onerror=x=>{M(x)}});o.push(y),h.src=i,h.crossOrigin="anonymous"}),await Promise.all(o)}const f=t=>`marker-ptScaleHandlers-${t.id}`,E=t=>`marker-rollHandlers-${t.id}`,P=(t,o)=>{s.onPtScale(o,a=>{const{center:e,rotation:i}=t.bounds,{width:c,height:g}=t.source;return t.bounds=F(b(e.x,e.y,c,g,a,i)),t})},H=(t,o)=>{s.onRoll(o,a=>(t.bounds.rotation=a,t))};function L(){const t=l.routeStore.markersData.markers;if(!t.length)return;n=[];const o=s.scale,a=T(s.angle);t.forEach(e=>{const i=d.get(e.icon);if(!i)return;const c=i.scale||window.devicePixelRatio,g=e.icon;if(!r.has(g)){const R=v(i.img,i.width,i.height,c);r.set(g,R)}const k=r.get(g),h=d.get(e.selectedIcon),y=e.selectedIcon;if(!r.has(y)){const R=v(h.img,h.width,h.height,c);r.set(y,R)}const D=r.get(y),M=S.findLayer(e.z)?.visible??!0,x=b(e.x,e.y,k.width,k.height,o,a),_=b(e.x,e.y,D.width,D.height,o,a);let p;switch(e.position){case"lefttop":p=[0,0];break;case"centertop":p=[.5,0];break;case"centerbottom":p=[.5,1];break;default:p=[.5,.5]}const z={...C(k,x,{hidden:!M,origin:p}),id:e.id,scale:c},A={...C(D,_,{hidden:!(M&&e.active),origin:p}),id:`${e.id}${B}`,scale:c};n.push(z,A)}),m.children=n,n.forEach(e=>{P(e,f(e)),H(e,E(e))})}function $(){n.forEach(t=>{s.ptScaleRegistry.unregisterByName(f(t)),s.rollRegistry.unregisterByName(E(t))}),m.children=[],n=[]}function N(){const t=l.routeStore.markersData.markers;t.length&&t.forEach(o=>{const a=n.find(c=>c.id===o.id),e=n.find(c=>c.id===`${o.id}${B}`);if(!a)return;const i=S.findLayer(o.z)?.visible??!0;o.active?(a.hidden=!0,e.hidden=!(i&&o.active)):(a.hidden=!i,e.hidden=!0)})}return u.push(I(()=>[l.routeStore.selectedMarkers,l.layerStore.visible],()=>{if(!l.routeStore.markersData.markers.length){$(),s.update(m);return}N(),s.update(...n)})),u.push(I(()=>l.routeStore.markersData.markers,()=>{w(l.routeStore.markersData.icons).then(()=>{L(),s.update(m)})},{fireImmediately:!0})),function(){u.forEach(o=>o()),u.length=0}}export function getMarkerFromClick(s,u,d){for(const r of l.routeStore.markersData.markers){const n=l.routeStore.markersData.icons.find(f=>f.name===r.icon);if(!n)continue;const m=n.width*d*devicePixelRatio,w=n.height*d*devicePixelRatio;if(O(s,u,r.x,r.y,m,w)){const f=l.layerStore.findLayer(r.z);if(!f||f&&f.visible)return r}}return null}function O(s,u,d,r,n,m){return K.fromCenter({x:d,y:r},{x:2*n,y:2*m}).containsPoint({x:s,y:u})}
|
|
@@ -1,11 +1,17 @@
|
|
|
1
|
+
import { Rect } from '@expofp/geometry';
|
|
1
2
|
import { RendererService } from '../../../../renderer';
|
|
2
|
-
import type
|
|
3
|
-
import type
|
|
4
|
-
import { Img } from '../../../../utils/imageloader';
|
|
3
|
+
import { type Booth } from '../../../../store/BoothStore';
|
|
4
|
+
import { type Layer } from '../../../../store/LayerStore';
|
|
5
5
|
import { ImageUrls } from '../../../../utils/loadImagesInBatches';
|
|
6
6
|
export declare function loadLayersImages(rendererService: RendererService): Promise<void>;
|
|
7
7
|
export declare const getImageLayerName: (layerName: string) => string;
|
|
8
8
|
export declare function mapBoothsLogos(booths: Booth[]): Map<number, ImageUrls>;
|
|
9
9
|
export declare function getLayerIcons(layer: Layer): SVGImageElement[];
|
|
10
|
-
export
|
|
10
|
+
export interface BoothImg {
|
|
11
|
+
booth: Booth;
|
|
12
|
+
name?: string;
|
|
13
|
+
htmlImage: HTMLImageElement;
|
|
14
|
+
bounds: Rect;
|
|
15
|
+
}
|
|
16
|
+
export declare function createBoothImg(booth: Booth, htmlImage: HTMLImageElement): BoothImg;
|
|
11
17
|
//# sourceMappingURL=loadBoothsImages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{degToRad as f,radToDeg as d,Rect as h}from"@expofp/geometry";import{select as u}from"d3";import{SEPARATOR as y}from"../../../../constants";import{getLayerSvg as R}from"../../../../data/svg";import{flipImageDef as w,isInnerInsideOuter as x}from"../../../../renderer";import{rotateImageDef as I}from"../../../../renderer/engine-core/utils/rotation";import{getLogoUrl as A}from"../../../../utils/getLogoUrl";export async function loadLayersImages(e){const a=e.layerImagesRegistry.invoke();await Promise.all(a.map(async s=>{const n=await s;if(!n)return;const{layer:i,children:c}=n;if(c.length){const r=[];for(let o=0;o<c.length;o++){const{shape:t,parentRect:g}=c[o],l=x(t.bounds,g);if(!i.name.includes("Pathway_")){const m=l?"image-rotate":"image-flip";e.onRoll(`${m}-${i.name}-${o}`,l?p=>I(t,p):p=>w(t,p))}r.push(t)}i.children.push(...r),e.update(i)}}))}export const getImageLayerName=e=>`${e}${y}images`;export function mapBoothsLogos(e){return new Map(e.map(a=>{const s=a.rect&&a.exhibitors.find(n=>n.logoInBooth&&n.logo);return s?[a.id,{preferred:A(s.logo),fallback:s.logo}]:null}).filter(Boolean))}export function getLayerIcons(e){const a=u(R(e)).select(`[data-layer="${e.name}"]`);return(window.__fpVersion>5?a.selectAll(":scope > image, :scope > g:not([data-layer]) image").nodes():a.selectAll(":scope > g[data-is-editable='false'] image").nodes()).filter(Boolean)}export function createBoothImg(e,a){const s=e.rect,n=s.size.width,i=s.size.height,c=i?n/i:1,r=a.height?a.width/a.height:1;let o,t,g;const l=.9;c>r?(t=i*l,o=t*r):(o=n*l,t=o/r);const m=e.rotate||0;return r>=2&&!m&&i>=n*2?(t=n*l,o=t*r,g=-90):g=d(m),o>n&&(o=n,t=o/r),t>i&&(t=i,o=t*r),{name:e.slug,bounds:new h(s.center,{x:o,y:t},f(g)),htmlImage:a,booth:e}}
|