@expofp/floorplan 3.7.17 → 3.9.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-D6kSs8oT.js} +5 -5
- package/dist/browser/{CookieConsent-ZygvYtDb.js → CookieConsent-COR-7PnR.js} +7 -7
- package/dist/browser/{Debug-D0iAX94G.js → Debug-hcVDK_6B.js} +7 -7
- package/dist/browser/{Demo-DtZnCrNU.js → Demo-CXfqKcNa.js} +9 -9
- package/dist/browser/{Free-CY2ZgfTi.js → Free-UltUjcsW.js} +9 -9
- package/dist/browser/{Gallery-BJyU80Q8.js → Gallery-Dw_l4-HJ.js} +9 -9
- package/dist/browser/{GpsLoader-C4Az3Ogj.js → GpsLoader-BeUr-tWe.js} +36 -36
- package/dist/browser/{KioskStore-D3xv5iMJ.js → KioskStore-rXGF6ISj.js} +67 -67
- package/dist/browser/{MaplibreAdapter-BI5hr4DA.js → MaplibreAdapter-DBu4xFLx.js} +941 -960
- package/dist/browser/{ModalContainer-CGy7G3W-.js → ModalContainer-CHubcxXg.js} +10 -10
- package/dist/browser/{PermissionNotice-BQl-Eh0U.js → PermissionNotice-Dcyf-h-X.js} +6 -6
- package/dist/browser/{SetKioskMode-puXODfKF.js → SetKioskMode-Dsaeb_7s.js} +11 -11
- package/dist/browser/ShowKiosk-B33TvvNh.js +28 -0
- package/dist/browser/{TouchHand-DjRl3mqw.js → TouchHand-BglJHdqZ.js} +4 -4
- package/dist/browser/{ViewerMenuPanel-DwpOTh1A.js → ViewerMenuPanel-6hwMrGsD.js} +10 -10
- package/dist/browser/{add-debug-secret-listener-0zbOfR23.js → add-debug-secret-listener-CrjDiiDe.js} +1 -1
- package/dist/browser/{boolean-editor-Ct-PRF2J.js → boolean-editor-B8TY5r_7.js} +9 -9
- package/dist/browser/{bootIntercom-CNJJMQLU.js → bootIntercom-BLVUFUo9.js} +2 -2
- package/dist/browser/{browser-Dvk9Y0QP.js → browser-C0ZAqhfq.js} +2 -2
- package/dist/browser/bundle.json +61 -61
- package/dist/browser/{classnames-N7RelmSW.js → classnames-CORO_J9N.js} +2 -2
- package/dist/browser/{client-B3oB_gzf.js → client-B8k3_zlK.js} +4 -4
- package/dist/browser/{components-DCWqd4OH.js → components-Br23UmiD.js} +1857 -1861
- package/dist/browser/{createWayfinding-DCYv9I1K.js → createWayfinding-CywBuuhE.js} +552 -533
- package/dist/browser/{debug-overlay-C1zmn9JP.js → debug-overlay-OnJ9mpi3.js} +10 -10
- package/dist/browser/{debug-ui-Dk4TQW1Q.js → debug-ui-BGxXBqCM.js} +6 -6
- package/dist/browser/{dist-CZ9F3ShM.js → dist-Bwo0bena.js} +5 -5
- package/dist/browser/{dist-Dhhxwn3m.js → dist-DJcDQ9wl.js} +3 -3
- package/dist/browser/{dist-BjWXGdvS.js → dist-DeenbCqa.js} +6 -6
- package/dist/browser/{efp-debug-init-BY441NPw.js → efp-debug-init-D4xpSVxZ.js} +2 -2
- package/dist/browser/{enum-editor-wsFvRjdm.js → enum-editor-BtQ7q_B6.js} +11 -11
- package/dist/browser/{es5--a3vRB-s.js → es5-DyYwMIHo.js} +2 -2
- package/dist/browser/{event-not-found-C08dNiXm.js → event-not-found-DHZml9YG.js} +1 -1
- package/dist/browser/{exports-DnnAyWkZ.js → exports-BSvGPafo.js} +1 -1
- package/dist/browser/{favicon-BUBgyUNE.js → favicon-7eGefoDS.js} +1 -1
- package/dist/browser/{fetch-retry.umd-DqWbcFb6.js → fetch-retry.umd-D4q_0lN2.js} +2 -2
- package/dist/browser/{flex-BJvbUFUw.js → flex-BNMB3s0s.js} +5 -5
- package/dist/browser/{floorplan.loader-DtRqhN7h.js → floorplan.loader-C464BfTl.js} +45 -45
- package/dist/browser/{floorplan.ready-DU_ul7oy.js → floorplan.ready-F-rEW40x.js} +309 -233
- package/dist/browser/{fuse-C1gHDLf6.js → fuse-BOOzXNLy.js} +2 -2
- package/dist/browser/{i18n-GqZrkrT3.js → i18n-CJxFIIru.js} +9 -9
- package/dist/browser/index.js +12 -12
- package/dist/browser/{index.module-ClFPQstA.js → index.module-CkT4oOvs.js} +26 -26
- package/dist/browser/{is-webview-Ubd69hDX.js → is-webview-B86RAuQv.js} +1 -1
- package/dist/browser/{jsx-runtime-CcqjcKRn.js → jsx-runtime-3_7049j-.js} +2 -2
- package/dist/browser/{lib-D-VhTz7u.js → lib-CjZn5G8Q.js} +4 -4
- package/dist/browser/{loadImage-BSgOJpEi.js → loadImage-CV72jhce.js} +5 -5
- package/dist/browser/locales/ar.json +4 -1
- package/dist/browser/locales/da.json +4 -1
- package/dist/browser/locales/de.json +4 -1
- package/dist/browser/locales/es.json +4 -1
- package/dist/browser/locales/fr.json +4 -1
- package/dist/browser/locales/he.json +4 -1
- package/dist/browser/locales/it.json +4 -1
- package/dist/browser/locales/kk.json +4 -1
- package/dist/browser/locales/ko.json +4 -1
- package/dist/browser/locales/mn.json +4 -1
- package/dist/browser/locales/nl.json +4 -1
- package/dist/browser/locales/pl.json +4 -1
- package/dist/browser/locales/pt.json +4 -1
- package/dist/browser/locales/ru.json +4 -1
- package/dist/browser/locales/sv.json +4 -1
- package/dist/browser/locales/th.json +4 -1
- package/dist/browser/locales/tr.json +4 -1
- package/dist/browser/locales/uk.json +4 -1
- package/dist/browser/locales/vi.json +4 -1
- package/dist/browser/locales/zh.json +4 -1
- package/dist/browser/{logDeviceInfo-CqPbQalh.js → logDeviceInfo-CH_mwixN.js} +9 -9
- package/dist/browser/{main-D02oALU5.js → main-DBcClnTP.js} +1 -1
- package/dist/browser/{mobx-9haaaJQN.js → mobx-Cnc_mxKS.js} +8 -8
- package/dist/browser/{particles.min-Cy0_xv2F.js → particles.min-Bdddyoyn.js} +2 -2
- package/dist/browser/{prop-types-CGmwvRRk.js → prop-types-D9saedjy.js} +2 -2
- package/dist/browser/{react-C94g1dWf.js → react-CtAjLpE4.js} +2 -2
- package/dist/browser/{react-dom-VzzznUin.js → react-dom-9Z9grXEI.js} +3 -3
- package/dist/browser/{reset-all-settings-Bs45R4UK.js → reset-all-settings-D2rGLtD9.js} +7 -7
- package/dist/browser/{rolldown-runtime-DDajFMnr.js → rolldown-runtime-6HCGHF5o.js} +1 -1
- package/dist/browser/{settings-item-CTgteXDw.js → settings-item-CmuDoi0N.js} +6 -6
- package/dist/browser/{settings-B89NEO7Z.js → settings-r2jCygEX.js} +2 -2
- package/dist/browser/{store-39MLQcdz.js → store-hsXE5nII.js} +6753 -6669
- package/dist/browser/{string-editor-4uawnaDY.js → string-editor-UncyEsWj.js} +7 -7
- package/dist/browser/{theme-CWzone56.js → theme-DmuulesT.js} +8 -8
- package/dist/browser/{ui-D8Gz1TVh.js → ui-CBeseOX-.js} +8 -8
- package/dist/browser/{useRenderTarget-BSjQ_3rd.js → useRenderTarget-C5lcypnV.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/store/search-buttons/SearchButtonsFactory.js +1 -1
- package/dist/esm/utils/gps.d.ts +0 -1
- package/dist/esm/utils/gps.js +1 -1
- package/dist/esm/utils/i18n.d.ts +9 -0
- package/dist/esm/utils/i18n.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.9.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-6HCGHF5o.js";
|
|
10
|
+
import { t } from "./react-CtAjLpE4.js";
|
|
11
|
+
import { t as n } from "./jsx-runtime-3_7049j-.js";
|
|
12
|
+
import { D as r, i, l as a, n as o, s, u as c, y as l } from "./flex-BNMB3s0s.js";
|
|
13
|
+
import { t as u } from "./classnames-CORO_J9N.js";
|
|
14
|
+
import { t as d } from "./settings-item-CmuDoi0N.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.9.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-6HCGHF5o.js";
|
|
10
|
+
import { t } from "./react-CtAjLpE4.js";
|
|
11
|
+
import { t as n } from "./jsx-runtime-3_7049j-.js";
|
|
12
|
+
import { t as r } from "./react-dom-9Z9grXEI.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-BNMB3s0s.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-DeenbCqa.js";
|
|
15
|
+
import { t as y } from "./classnames-CORO_J9N.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.9.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-6HCGHF5o.js";
|
|
10
|
+
import { a as t, r as n } from "./reset-all-settings-D2rGLtD9.js";
|
|
11
|
+
import { t as r } from "./jsx-runtime-3_7049j-.js";
|
|
12
|
+
import "./settings-r2jCygEX.js";
|
|
13
|
+
import { t as i } from "./browser-C0ZAqhfq.js";
|
|
14
|
+
import { t as a } from "./add-debug-secret-listener-CrjDiiDe.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-BGxXBqCM.js"), { createRoot: i } = await import("./client-B8k3_zlK.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.9.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-6HCGHF5o.js";
|
|
10
|
+
import { t } from "./react-CtAjLpE4.js";
|
|
11
|
+
import { s as n } from "./store-hsXE5nII.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}}
|