@expofp/floorplan 3.33.0 → 3.34.1
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-B0MFYLVc.js → Button-BXoX7gHH.js} +5 -5
- package/dist/browser/{CookieConsent-Bqn0q_87.js → CookieConsent-B0Oo9kBc.js} +7 -7
- package/dist/browser/{Debug-CKc3n1sg.js → Debug-Ci8scQLL.js} +7 -7
- package/dist/browser/{DebugTools-BU3wjPGB.js → DebugTools-j9-peX4I.js} +6 -6
- package/dist/browser/{Demo-D-TB4mNu.js → Demo-DD8lvF7Z.js} +9 -9
- package/dist/browser/{Free-TLOhTU_Z.js → Free-BC2dZH3U.js} +9 -9
- package/dist/browser/{GalleryContainer-G381lvbx.js → GalleryContainer-uHY_oD37.js} +10 -10
- package/dist/browser/{GpsLoader-DL-xnnfg.js → GpsLoader-BV-t9Zhw.js} +34 -34
- package/dist/browser/{KioskStore-DluWuejk.js → KioskStore-BFRl_9Tu.js} +26 -26
- package/dist/browser/{MaplibreAdapter-CKpyQZkH.js → MaplibreAdapter-CxfsNB3d.js} +219 -219
- package/dist/browser/{ModalContainer-BJuhy7tC.js → ModalContainer-lgZ3p9Wt.js} +10 -10
- package/dist/browser/{PermissionNotice-DzavRwDB.js → PermissionNotice-Dpx8F1X_.js} +6 -6
- package/dist/browser/{SetKioskMode-DQMJq09_.js → SetKioskMode-CnBqyg6u.js} +15 -15
- package/dist/browser/{ShowKiosk-txc4lzXg.js → ShowKiosk-SUK4FPID.js} +10 -10
- package/dist/browser/{ViewerMenuPanel-BDDILMLj.js → ViewerMenuPanel-C3GOFuuF.js} +18 -18
- package/dist/browser/{add-debug-secret-listener-jHopjZKv.js → add-debug-secret-listener-B3ytSUKG.js} +1 -1
- package/dist/browser/{adopt-global-settings-33HggKBq.js → adopt-global-settings-Dg7PfpwQ.js} +9 -9
- package/dist/browser/{boolean-editor-CtUCInIZ.js → boolean-editor-60x2s2cD.js} +9 -9
- package/dist/browser/{bootIntercom-BeXT05Ea.js → bootIntercom-CP8_uooS.js} +2 -2
- package/dist/browser/bundle.json +69 -69
- package/dist/browser/{camera-events-KroE96c4.js → camera-events-DN0rAOay.js} +1 -1
- package/dist/browser/{classnames-BJTcQIVl.js → classnames-Rv7CGeQc.js} +2 -2
- package/dist/browser/{client-Cj1mLS94.js → client-CeXtqSi0.js} +5 -5
- package/dist/browser/{components-6-iibf5i.js → components-yKSBPUVE.js} +1838 -1838
- package/dist/browser/{debug-context-_45jR8C-.js → debug-context-D2yhyzV5.js} +5 -5
- package/dist/browser/{debug-overlay-C78aQduk.js → debug-overlay-D33H0Asq.js} +10 -10
- package/dist/browser/{debug-ui-Bzg8w5FY.js → debug-ui-Dg4ty2ft.js} +6 -6
- package/dist/browser/{dimming-B0nptLJO.js → dimming-CnrPXrbS.js} +379 -383
- package/dist/browser/{dist-LJcBFXUG.js → dist-CbsoHzXy.js} +5 -5
- package/dist/browser/{dist-DX9URKQh.js → dist-Cht6zsHr.js} +6 -6
- package/dist/browser/{dist-BfBy25r6.js → dist-DPIySxET.js} +3 -3
- package/dist/browser/{efp-debug-init-tAoJiV3q.js → efp-debug-init-B1Jdu0aR.js} +3 -3
- package/dist/browser/{enum-editor-12NAdvKo.js → enum-editor-FXnBB5tB.js} +4 -4
- package/dist/browser/{es5-D-Bj8Lf1.js → es5-DAdylDRo.js} +2 -2
- package/dist/browser/{event-not-found-CsAHzhl6.js → event-not-found-aDLfx4yr.js} +1 -1
- package/dist/browser/{exports-BfhFANKi.js → exports-rXrZzOsb.js} +1 -1
- package/dist/browser/{favicon-D4TW1swv.js → favicon-DOeZ3jUq.js} +1 -1
- package/dist/browser/{fetch-retry.umd-DyLfSwjv.js → fetch-retry.umd-BKnymyM4.js} +2 -2
- package/dist/browser/{flex-C3cSMVt_.js → flex-DxFTtCgE.js} +5 -5
- package/dist/browser/{floorplan.loader-DxRhDqfH.js → floorplan.loader-DElAJins.js} +10 -10
- package/dist/browser/{floorplan.ready-RkqlzsJt.js → floorplan.ready-UhOqD1tv.js} +68 -68
- package/dist/browser/{fuse-CSGWbbNq.js → fuse-CJ7gqOT4.js} +2 -2
- package/dist/browser/{i18n-EK2oa1QJ.js → i18n-BlOjJNd_.js} +5 -5
- package/dist/browser/index.js +14 -14
- package/dist/browser/{index.module-BwOjEcud.js → index.module-Dcom9fhx.js} +4 -4
- package/dist/browser/{integrateKiosk-DT0yChCb.js → integrateKiosk-DsUSoOfW.js} +4 -4
- package/dist/browser/{is-webview-CW_tK_lH.js → is-webview-TAmTjUCs.js} +1 -1
- package/dist/browser/{jsx-runtime-DAYaJ8Wj.js → jsx-runtime-CDd5kSFh.js} +2 -2
- package/dist/browser/{kiosk-record-DSOWQWwy.js → kiosk-record-zMuE-Rb4.js} +1 -1
- package/dist/browser/{lib-DS8gxXh1.js → lib-5fBCHBXo.js} +3 -3
- package/dist/browser/{loadImage-Chqtrnpo.js → loadImage-LelO76SH.js} +4 -4
- package/dist/browser/{logDeviceInfo-C3nIx8MI.js → logDeviceInfo-CgO0CoJD.js} +9 -9
- package/dist/browser/{mobx-BYaAarcI.js → mobx-R5-ZJi7a.js} +4 -4
- package/dist/browser/{optional-boolean-editor-f0AsQ88K.js → optional-boolean-editor-BP1lJrpP.js} +3 -3
- package/dist/browser/{optional-enum-editor-DTfOMkVp.js → optional-enum-editor-BfcUGUII.js} +4 -4
- package/dist/browser/{optional-string-editor-Dweo1EiQ.js → optional-string-editor-DF6pZ-oE.js} +4 -4
- package/dist/browser/{particles.min-DcgQ3bEa.js → particles.min-DZqXGQRY.js} +2 -2
- package/dist/browser/{react-CSfcl6m_.js → react-Ip13m5sp.js} +2 -2
- package/dist/browser/{react-dom-BtTajUTr.js → react-dom-Ds2Ul4iF.js} +3 -3
- package/dist/browser/{rolldown-runtime-LBfc_8zH.js → rolldown-runtime-ZbujXurt.js} +1 -1
- package/dist/browser/{scheduler-CO29sRve.js → scheduler-DAwkCOYn.js} +2 -2
- package/dist/browser/{select-ZMZ_S_qj.js → select-D_iLwN3g.js} +10 -10
- package/dist/browser/{settings-Cot3Zp4u.js → settings-B7ptvUVq.js} +2 -2
- package/dist/browser/{settings-item-D5PjVyNk.js → settings-item-C4IxYqPQ.js} +6 -6
- package/dist/browser/{store-BUXXD8-o.js → store-rtRwBx18.js} +3745 -3689
- package/dist/browser/{string-editor-Bdjy-hXr.js → string-editor-CggghgyI.js} +4 -4
- package/dist/browser/{text-field-Db4wvBQb.js → text-field-JwPIZ7II.js} +5 -5
- package/dist/browser/{theme-DOvsIfDN.js → theme-DoaejPSE.js} +8 -8
- package/dist/browser/{ui-exQmHhHz.js → ui-DTo23cpi.js} +8 -8
- package/dist/browser/{useRenderTarget-COoBm3gN.js → useRenderTarget-CK3wugqb.js} +4 -4
- package/dist/browser/{viewport-D14jB-aG.js → viewport-DVDTED_v.js} +3 -3
- package/dist/esm/components/Map/drawing/config/config-all.js +1 -1
- package/dist/esm/engine/defs.d.ts +2 -3
- package/dist/esm/engine/defs.js +3 -3
- package/dist/esm/tools/telemetry.js +1 -1
- package/dist/esm/wayfinding/createWayfinding.d.ts +1 -1
- package/dist/esm/wayfinding/createWayfinding.js +1 -1
- package/dist/esm/wayfinding/handlers/kioskHandler.d.ts +1 -2
- package/dist/esm/wayfinding/handlers/kioskHandler.js +1 -1
- package/dist/esm/wayfinding/handlers/yahHandler.d.ts +1 -2
- package/dist/esm/wayfinding/handlers/yahHandler.js +1 -1
- package/package.json +10 -10
- package/dist/esm/wayfinding/layers.d.ts +0 -15
- package/dist/esm/wayfinding/layers.js +0 -1
|
@@ -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.34.1" };
|
|
5
5
|
var t = new e.Error().stack;
|
|
6
6
|
t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "edf52ee9-f3a6-424f-a5ff-f0c8342333ab", e._sentryDebugIdIdentifier = "sentry-dbid-edf52ee9-f3a6-424f-a5ff-f0c8342333ab");
|
|
7
7
|
} catch {}
|
|
8
8
|
})();
|
|
9
|
-
import { t as e } from "./jsx-runtime-
|
|
10
|
-
import { t } from "./settings-item-
|
|
11
|
-
import { t as n } from "./text-field-
|
|
9
|
+
import { t as e } from "./jsx-runtime-CDd5kSFh.js";
|
|
10
|
+
import { t } from "./settings-item-C4IxYqPQ.js";
|
|
11
|
+
import { t as n } from "./text-field-JwPIZ7II.js";
|
|
12
12
|
//#region ../debug/src/lib/ui/string-editor.tsx
|
|
13
13
|
var r = e(), i = (e) => {
|
|
14
14
|
var i;
|
|
@@ -1,15 +1,15 @@
|
|
|
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.34.1" };
|
|
5
5
|
var t = new e.Error().stack;
|
|
6
6
|
t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "b57a1337-f6ba-488a-8e6f-60f9358b45a2", e._sentryDebugIdIdentifier = "sentry-dbid-b57a1337-f6ba-488a-8e6f-60f9358b45a2");
|
|
7
7
|
} catch {}
|
|
8
8
|
})();
|
|
9
|
-
import { r as e } from "./rolldown-runtime-
|
|
10
|
-
import { t } from "./react-
|
|
11
|
-
import { D as n, i as r, l as i, n as a, s as o, u as s, y as c } from "./flex-
|
|
12
|
-
import { t as l } from "./classnames-
|
|
9
|
+
import { r as e } from "./rolldown-runtime-ZbujXurt.js";
|
|
10
|
+
import { t } from "./react-Ip13m5sp.js";
|
|
11
|
+
import { D as n, i as r, l as i, n as a, s as o, u as s, y as c } from "./flex-DxFTtCgE.js";
|
|
12
|
+
import { t as l } from "./classnames-Rv7CGeQc.js";
|
|
13
13
|
//#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._5ea800d4e947acedb1fa1275f1697b17/node_modules/@radix-ui/themes/dist/esm/components/text-field.props.js
|
|
14
14
|
var u = /* @__PURE__ */ e(t()), d = /* @__PURE__ */ e(l()), f = {
|
|
15
15
|
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.34.1" };
|
|
5
5
|
var t = new e.Error().stack;
|
|
6
6
|
t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "f5429b84-6f5b-4b20-898f-e5345902ef44", e._sentryDebugIdIdentifier = "sentry-dbid-f5429b84-6f5b-4b20-898f-e5345902ef44");
|
|
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-ZbujXurt.js";
|
|
10
|
+
import { t } from "./react-Ip13m5sp.js";
|
|
11
|
+
import { t as n } from "./jsx-runtime-CDd5kSFh.js";
|
|
12
|
+
import { t as r } from "./react-dom-Ds2Ul4iF.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-DxFTtCgE.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-Cht6zsHr.js";
|
|
15
|
+
import { t as y } from "./classnames-Rv7CGeQc.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_cffccd7838985066e8e1d993b5cb6017/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.34.1" };
|
|
5
5
|
var t = new e.Error().stack;
|
|
6
6
|
t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "cbb5c555-77ff-4375-8420-80c8ae476dcf", e._sentryDebugIdIdentifier = "sentry-dbid-cbb5c555-77ff-4375-8420-80c8ae476dcf");
|
|
7
7
|
} catch {}
|
|
8
8
|
})();
|
|
9
|
-
import { r as e } from "./rolldown-runtime-
|
|
10
|
-
import { a as t, i as n, s as r } from "./efp-debug-init-
|
|
11
|
-
import { a as i, i as a } from "./adopt-global-settings-
|
|
12
|
-
import { t as o } from "./jsx-runtime-
|
|
13
|
-
import "./settings-
|
|
14
|
-
import { t as s } from "./add-debug-secret-listener-
|
|
9
|
+
import { r as e } from "./rolldown-runtime-ZbujXurt.js";
|
|
10
|
+
import { a as t, i as n, s as r } from "./efp-debug-init-B1Jdu0aR.js";
|
|
11
|
+
import { a as i, i as a } from "./adopt-global-settings-Dg7PfpwQ.js";
|
|
12
|
+
import { t as o } from "./jsx-runtime-CDd5kSFh.js";
|
|
13
|
+
import "./settings-B7ptvUVq.js";
|
|
14
|
+
import { t as s } from "./add-debug-secret-listener-B3ytSUKG.js";
|
|
15
15
|
//#region ../debug/src/lib/ui/render-debug-ui.tsx
|
|
16
16
|
var c = /* @__PURE__ */ e(r(), 1), l = o(), u = !1;
|
|
17
17
|
function d() {
|
|
@@ -26,7 +26,7 @@ function d() {
|
|
|
26
26
|
}
|
|
27
27
|
});
|
|
28
28
|
let o = async (t) => {
|
|
29
|
-
let { DebugUi: n } = await import("./debug-ui-
|
|
29
|
+
let { DebugUi: n } = await import("./debug-ui-Dg4ty2ft.js"), { createRoot: i } = await import("./client-CeXtqSi0.js").then((t) => /* @__PURE__ */ e(t.t(), 1)), a = document.createElement("div");
|
|
30
30
|
document.body.appendChild(a), i(a).render(/* @__PURE__ */ (0, l.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.34.1" };
|
|
5
5
|
var t = new e.Error().stack;
|
|
6
6
|
t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "7407e64e-4c4e-4bfb-b2ef-80063ad22998", e._sentryDebugIdIdentifier = "sentry-dbid-7407e64e-4c4e-4bfb-b2ef-80063ad22998");
|
|
7
7
|
} catch {}
|
|
8
8
|
})();
|
|
9
|
-
import { r as e } from "./rolldown-runtime-
|
|
10
|
-
import { t } from "./react-
|
|
11
|
-
import { l as n } from "./store-
|
|
9
|
+
import { r as e } from "./rolldown-runtime-ZbujXurt.js";
|
|
10
|
+
import { t } from "./react-Ip13m5sp.js";
|
|
11
|
+
import { l as n } from "./store-rtRwBx18.js";
|
|
12
12
|
//#region ../ui/src/shared/activeElement.ts
|
|
13
13
|
var r = (e) => !!e && "activeElement" in e;
|
|
14
14
|
function i(e) {
|
|
@@ -1,12 +1,12 @@
|
|
|
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.34.1" };
|
|
5
5
|
var t = new e.Error().stack;
|
|
6
|
-
t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "
|
|
6
|
+
t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "a86b34fc-4db5-43a7-965f-2af06c6fef45", e._sentryDebugIdIdentifier = "sentry-dbid-a86b34fc-4db5-43a7-965f-2af06c6fef45");
|
|
7
7
|
} catch {}
|
|
8
8
|
})();
|
|
9
|
-
import { c as e,
|
|
9
|
+
import { c as e, mt as t } from "./store-rtRwBx18.js";
|
|
10
10
|
//#region src/components/Map/viewport.ts
|
|
11
11
|
function n(e) {
|
|
12
12
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createLayerDef as
|
|
1
|
+
import{initWayfindingLayers as c}from"@expofp/wayfinding";import{createLayerDef as p}from"../../../../engine/defs";import s from"../../../../store";import{isPathwayLayer as L}from"../../../../utils/is-pathway-layer";import{createTrafficLayers as d}from"../../traffic/trafficLayers";import{configBoothsBadges as u}from"./config-booth-badge";import h from"./config-load-layer";import{MARKER_LAYER_NAME as g}from"./config-markers";export default function b(){const{defaultLayer:t}=s.layerStore;let{layers:e}=s.layerStore;if(t){const r=[...e],a=e.indexOf(t);r.splice(a,1),e=[t,...r]}const l=e.filter(r=>!r.rootParent).map(r=>h(r));return Promise.all(l).then(r=>{const a=p(g,[]),m=c(),n=[],i=[];for(const o of r.flat())L(o.name)?(o.dim=0,i.push(o)):n.push(o);const{layer:f,cleanup:y}=u("root",s.boothStore.booths);return{layers:[...n,...f?[f]:[],...i,...d(),a,m],cleanup:y}})}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Box,
|
|
2
|
-
import { type ImageDef, type ImageSource, type LayerDef, type
|
|
1
|
+
import { Box, Mesh, type Polygon, Rect, type TriangleIndex } from '@expofp/geometry';
|
|
2
|
+
import { type ImageDef, type ImageSource, type LayerDef, type RenderableDefCollection, type SceneDef, type ShapeDef, type SharedDef, type TextAlignment, type TextDef, type TextLineDef } from '@expofp/renderer';
|
|
3
3
|
/**
|
|
4
4
|
* What svgMesh3d puts on `window.__fpPaths`: vertices as bare number tuples, which is why this is
|
|
5
5
|
* not geometry's `MeshLike` — that one holds points. The third component is optional because
|
|
@@ -23,7 +23,6 @@ export declare function createImageDef(source: ImageSource, bounds: Rect, option
|
|
|
23
23
|
}): ImageDef;
|
|
24
24
|
export declare function createTextDef(textLines: TextLineDef[], bounds: Rect, padding: [number, number], alignment: TextAlignment, options?: SharedDef): TextDef;
|
|
25
25
|
export declare function createTextDefLines(textLines: TextLines, color: string, fontSize: number, fontUrl?: [string | undefined, string | undefined]): TextLineDef[];
|
|
26
|
-
export declare function createLineDef({ p0, p1 }: LineLike, color?: string, width?: number): LineDef;
|
|
27
26
|
export declare function createLayerDef(name: string, children: RenderableDefCollection, options?: SharedDef): LayerDef;
|
|
28
27
|
export declare function createSceneDef(layers: LayerDef[], viewboxRect: Box | SVGRectElement, background?: string): SceneDef;
|
|
29
28
|
export declare function createShapeDot(rect: Rect, color?: string, radius?: number): ImageDef;
|
package/dist/esm/engine/defs.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{Box as i,isBox as
|
|
2
|
-
`),fontUrl:n[0]||
|
|
3
|
-
`),fontUrl:n[1]||
|
|
1
|
+
import{Box as i,isBox as c,isMesh as a,isPolygon as u,isRect as p,Mesh as x,Rect as d}from"@expofp/geometry";import{createCircleCanvas as h}from"./canvases";import{DEFAULT_FONT_LIGHT_URL as m,DEFAULT_FONT_URL as w}from"./fonts";export function rectToShapeDef(e,r){return createShapeDef(i.fromSvg(e),r)}export function meshToShapeDef(e,r){if(!e)throw new Error("Create ShapeDef: mesh is not provided");const t=e.positions.map(o=>({x:o[0],y:Math.abs(o[1]),z:o[2]??0})),n=e.cells;return createShapeDef(new x(t,n),r)}export function createShapeDef(e,r="#000"){if(!e||!(c(e)||p(e)||u(e)||a(e)))throw new Error("Invalid shape definition");return{shape:e,color:r}}export function createImageDef(e,r,t){if(!e)throw new Error("Image source is not provided");return{source:e,bounds:r,...t}}export function createTextDef(e,r,t,n,o){if(e.length===0)throw new Error("Invalid text lines");return{lines:e,bounds:r,padding:t,alignment:n,...o}}export function createTextDefLines(e,r,t,n=[void 0,void 0]){const[o,f]=e,s=[{text:o.join(`
|
|
2
|
+
`),fontUrl:n[0]||w,color:r,fontSize:t}];return f.length&&s.push({text:f.join(`
|
|
3
|
+
`),fontUrl:n[1]||m,color:r,fontSize:t}),s}export function createLayerDef(e,r,t){if(!e)throw new Error("Layer name is required");return r||(r=[]),{name:e,children:r,...t}}export function createSceneDef(e,r,t){const n=r instanceof i?r:i.fromSvg(r);return{rootLayer:createLayerDef("root",e),background:t,viewbox:n}}export function createShapeDot(e,r="#000",t=1.5){const n=h(t,r),o=new d(e.center,{x:n.width,y:n.height},e.rotation,e.elevation);return createImageDef(n,o)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const p="efp-telemetry",X=3e5,Y=1e3,x=63e3;function b(e){return e?`${p}:${e}`:p}function k(e=p){return{get(){try{const r=localStorage.getItem(e);return r?JSON.parse(r):null}catch{return null}},set(r){try{localStorage.setItem(e,JSON.stringify(r))}catch(t){console.error("Failed to persist telemetry data",t)}},clear(){try{localStorage.removeItem(e)}catch(r){console.error("Failed to clear telemetry data",r)}}}}function $(e,r){if(!r)return e;const t=e.indexOf("#"),o=t===-1?e:e.slice(0,t),i=t===-1?"":e.slice(t);let l="?";return o.includes("?")&&(l=o.endsWith("?")||o.endsWith("&")?"":"&"),`${o}${l}expo=${encodeURIComponent(r)}${i}`}function w(e){const r=new TextEncoder,t=[];let o=r.encode(JSON.stringify({...e,items:[]})).byteLength;for(const l of e.items){const u=r.encode(JSON.stringify(l)).byteLength,a=t.length>0?u+1:u;if(t.length>0&&o+a>63e3)break;o+=a,t.push(l)}const i=t.length===e.items.length?e:{...e,items:t};return{payload:i,body:JSON.stringify(i),bytes:o}}function D(e){return e>=400&&e<500&&e!==408&&e!==429}function A(e){return e.length<=1e3?e:(console.warn(`Telemetry queue full: dropping ${e.length-1e3} oldest events`),e.slice(-1e3))}function F(e){const r=e.headers.get("Retry-After");if(!r)return 0;let t=0;const o=Number(r);if(Number.isFinite(o))t=o*1e3;else{const i=Date.parse(r);isNaN(i)||(t=Math.max(0,i-Date.now()))}return Math.min(t,3e5)}export function createTelemetry(e){const{url:r,expo:t,expoId:o,storage:i=k(b(t))}=e,l=$(r,t);let u=e.kioskId??"";function a(){const n=i.get();return n?(n.expo=t,n.expoId=o,n.kioskId=u,n):{expo:t,expoId:o,kioskId:u,items:[]}}function M(n){u=n}let h=!1,m=!1,T=0;async function E(){if(h){m=!0;return}h=!0;try{do{if(m=!1,performance.now()<T)break;let n=null;try{let s=a().items.length;for(;s>0;){const f=a();if(f.items.length===0)break;const{payload:g,body:I,bytes:N}=w(f),d=g.items.length;y(f,f.items.slice(d)),n=g.items,s-=d;const c=await fetch(l,{method:"POST",body:I,headers:{"Content-Type":"application/json"},credentials:"omit",keepalive:N<=63e3});if(await c.text().catch(()=>{}),n=null,!c.ok){if(D(c.status)){console.error(`Telemetry batch refused by the endpoint: HTTP ${c.status} (dropped: ${d})`);continue}if(c.status===429||c.status===503){const R=F(c);R>0&&(T=performance.now()+R)}S(g.items),console.error(`Failed to send telemetry: HTTP ${c.status} (requeued: ${d})`);break}}}catch(s){n&&S(n),console.error("Failed to send telemetry",s)}}while(m)}finally{h=!1}}function y(n,s){s.length===0?i.clear():i.set({...n,items:s})}function S(n){if(n.length===0)return;const s=a();y(s,A([...n,...s.items]))}function _(n){const s=a();s.items.push(n),y(s,A(s.items))}async function O(n){_(n),await E()}return{enqueue:_,send:O,flush:E,setKioskId:M}}
|
|
@@ -15,7 +15,7 @@ export declare function buildRoute(from: RouteEndpoint, to: RouteEndpoint, optio
|
|
|
15
15
|
}): Route;
|
|
16
16
|
/** What {@link createWayfinding} needs: a scene to draw into, and the stores to observe. */
|
|
17
17
|
export interface WayfindingOptions {
|
|
18
|
-
/** The scene wayfinding fills; its root layers hold the `
|
|
18
|
+
/** The scene wayfinding fills; its root layers hold the block `configAll` mounted. */
|
|
19
19
|
readonly scene: SceneDef;
|
|
20
20
|
/** The app store. */
|
|
21
21
|
readonly store: RootStore;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{update as
|
|
1
|
+
import{update as d}from"@expofp/renderer";import{createWayfinding as g,resolveWayfindingLayers as S}from"@expofp/wayfinding";import{fpGeo as R}from"../data/fpGeo";import{attachCardinalSnap as v}from"../engine/utils/rotation";import{createCanvasIconProvider as h,createFloorContext as x,createGraphDataSource as k}from"./adapters";import{bindMobxReactions as C}from"./bindMobxReactions";import{createKioskHandler as P}from"./handlers/kioskHandler";import{createYahHandler as W}from"./handlers/yahHandler";let u=null;export function isWayfindingReady(){return u!==null}function b(){if(!u)throw new Error("Wayfinding is not initialized \u2014 call createWayfinding() first.");return u}export function buildRoute(e,n,r){return b().wayfinding.buildRoute(e,n,r)}export function createWayfinding(e){const{scene:n,store:r,canvas:o}=e,c=S(n.rootLayer),{wayfinding:s,dispose:i}=w(r,c,{attachCardinalSnap:v,update:d}),t=c.icons;return t.onClick=f=>M(s,f),t.onPointerMove=f=>y(s,o,f),t.onPointerOut=()=>y(s,o),d(t),()=>{t.onClick=void 0,t.onPointerMove=void 0,t.onPointerOut=void 0,o.current&&(o.current.style.cursor=""),d(t),i()}}function w(e,n,r){const o=k(),c=h({iconMap:e.fp.icons,pixelRatio:devicePixelRatio}),s=x(e.layerStore,e.routeStore),i=g({dataSource:o,renderer:r,iconProvider:c,floorContext:s,layers:n,gpsConfig:R?.properties?.config,onTransitionClick:a=>{a.role==="exit"&&e.layerStore.updateVisibility(a.targetLayer,!0)},onRouteUpdate:(a,p)=>{e.routeStore.updateRoute([...a]),p.isEmpty()||(e.uiState.moveToRect=p)},onRouteDistance:a=>e.routeStore.updateRouteDistance(a)}),t=P({wayfinding:i,kioskIconMap:e.fp.icons}),f=W({wayfinding:i,iconMap:e.fp.icons,pixelRatio:devicePixelRatio,floorContext:s}),m=C({wayfinding:i,kioskHandler:t,yahHandler:f,stores:{routeStore:e.routeStore,uiState:e.uiState,layerStore:e.layerStore}});e.routeStore.showAccessible=o.getLines().some(a=>a.unaccessible);const l={wayfinding:i};return u=l,i.flush(),{wayfinding:i,dispose(){H(l)&&(u=null,e.routeStore.showAccessible=!1),m(),i.destroy()}}}function H(e){return u===e}function M(e,n){e.handleClick([n.def])&&n.stopPropagation()}function y(e,n,r){const o=n.current;if(!o)return;const c=r?e.handleHover([r.def]):!1;o.style.cursor=c?"pointer":""}
|
|
@@ -17,9 +17,8 @@ export type KioskHandler = (kiosk: Kiosk | null, activeFloor: string | undefined
|
|
|
17
17
|
* runtime's portability: the runtime deals with source/destination/position/
|
|
18
18
|
* transitions only, and never learns that kiosks exist.
|
|
19
19
|
*/
|
|
20
|
-
export declare function createKioskHandler({ wayfinding, kioskIconMap,
|
|
20
|
+
export declare function createKioskHandler({ wayfinding, kioskIconMap, }: {
|
|
21
21
|
wayfinding: Pick<Wayfinding, 'setIcon' | 'flush'>;
|
|
22
22
|
kioskIconMap: Map<string, HTMLImageElement> | undefined;
|
|
23
|
-
layer: string;
|
|
24
23
|
}): KioskHandler;
|
|
25
24
|
//# sourceMappingURL=kioskHandler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{degToRad as
|
|
1
|
+
import{degToRad as l}from"@expofp/geometry";import{createKioskCanvas as f}from"../adapters";const n="kiosk",p=0;export function createKioskHandler({wayfinding:t,kioskIconMap:a}){const s=new Map,u=e=>{const o=e??100,c=s.get(o);if(c)return c;const r=f(a,e);return s.set(o,r),r};return(e,o,c)=>{if(!e){t.setIcon(n,null),t.flush();return}if(c!==p&&e.z&&o&&e.z!==o){t.setIcon(n,null),t.flush();return}t.setIcon(n,{canvas:u(e.iconSizePercent),x:e.x,y:e.y,rotation:l(e.heading??0)}),t.flush()}}
|
|
@@ -12,11 +12,10 @@ export type YahHandler = (position: {
|
|
|
12
12
|
readonly y: number;
|
|
13
13
|
readonly layer: string;
|
|
14
14
|
} | null) => void;
|
|
15
|
-
export declare function createYahHandler({ wayfinding, iconMap, pixelRatio, floorContext,
|
|
15
|
+
export declare function createYahHandler({ wayfinding, iconMap, pixelRatio, floorContext, }: {
|
|
16
16
|
wayfinding: Pick<Wayfinding, 'setIcon' | 'flush'>;
|
|
17
17
|
iconMap: Map<string, HTMLImageElement>;
|
|
18
18
|
pixelRatio: number;
|
|
19
19
|
floorContext: FloorContext;
|
|
20
|
-
layer: string;
|
|
21
20
|
}): YahHandler;
|
|
22
21
|
//# sourceMappingURL=yahHandler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createImageCanvas as
|
|
1
|
+
import{createImageCanvas as l,createYahCanvas as u}from"../../components/Map/drawing/config/canvases";import{decreaseByPercentage as o}from"../../utils/math";const n="yah",A="#ff4343",C=64,E=90,_=32;function H(e,a){const r=e.get(n);return r?(r.id=n,l(r,o(C,_),o(E,_),a)):u(a,A)}export function createYahHandler({wayfinding:e,iconMap:a,pixelRatio:r,floorContext:I}){const c=H(a,r);return c.id="current-location-2",t=>{if(!t){e.setIcon(n,null),e.flush();return}const s=I.isLayerVisible(t.layer);e.setIcon(n,{canvas:c,x:t.x,y:t.y,hidden:!s,dimmed:!s,origin:[.5,1]}),e.flush()}}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expofp/floorplan",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.34.1",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/expofp/efp-app.git",
|
|
@@ -69,15 +69,15 @@
|
|
|
69
69
|
"tslib": "^2.3.0",
|
|
70
70
|
"uuid": "^9.0.1",
|
|
71
71
|
"zod": "4.4.3",
|
|
72
|
-
"@expofp/config": "3.
|
|
73
|
-
"@expofp/debug": "3.
|
|
74
|
-
"@expofp/geometry": "3.
|
|
75
|
-
"@expofp/renderer": "3.
|
|
76
|
-
"@expofp/resolve": "3.
|
|
77
|
-
"@expofp/schema": "3.
|
|
78
|
-
"@expofp/ui": "3.
|
|
79
|
-
"@expofp/
|
|
80
|
-
"@expofp/
|
|
72
|
+
"@expofp/config": "3.34.1",
|
|
73
|
+
"@expofp/debug": "3.34.1",
|
|
74
|
+
"@expofp/geometry": "3.34.1",
|
|
75
|
+
"@expofp/renderer": "3.34.1",
|
|
76
|
+
"@expofp/resolve": "3.34.1",
|
|
77
|
+
"@expofp/schema": "3.34.1",
|
|
78
|
+
"@expofp/ui": "3.34.1",
|
|
79
|
+
"@expofp/utils": "3.34.1",
|
|
80
|
+
"@expofp/wayfinding": "3.34.1"
|
|
81
81
|
},
|
|
82
82
|
"devDependencies": {
|
|
83
83
|
"@babel/plugin-proposal-decorators": "^8.0.2",
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Layer name constants — the contract between scene setup (config-all.ts)
|
|
3
|
-
* and the wayfinding runtime that fills these layers via the renderer.
|
|
4
|
-
*
|
|
5
|
-
* TODO(future): when renderer learns to create layers dynamically inside
|
|
6
|
-
* createWayfindingRenderer, these constants disappear — runtime will pass
|
|
7
|
-
* IconConfigs without naming layers, and config-all.ts will not pre-create
|
|
8
|
-
* any wf-* layers.
|
|
9
|
-
*/
|
|
10
|
-
export declare const WF_POINTS_LAYER_NAME = "wf-points";
|
|
11
|
-
export declare const WF_TRAIL_LAYER_NAME = "wf-trail-points";
|
|
12
|
-
export declare const WF_LINES_LAYER_NAME = "wf-lines";
|
|
13
|
-
export declare const WF_LINES_ANIMATED_LAYER_NAME = "wf-lines-animated";
|
|
14
|
-
export declare const WF_CURRENT_POSITION_LAYER_NAME = "wf-current-position";
|
|
15
|
-
//# sourceMappingURL=layers.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const WF_POINTS_LAYER_NAME="wf-points",WF_TRAIL_LAYER_NAME="wf-trail-points",WF_LINES_LAYER_NAME="wf-lines",WF_LINES_ANIMATED_LAYER_NAME="wf-lines-animated",WF_CURRENT_POSITION_LAYER_NAME="wf-current-position";
|