@eyeon/map 2.0.2 → 2.0.4
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/assets/MapViewer.css +1 -1
- package/dist/assets/index.css +1 -1
- package/dist/chunks/MapViewer.js +2656 -1290
- package/dist/chunks/MapViewer.js.map +1 -1
- package/dist/chunks/stacking.js +1496 -873
- package/dist/chunks/stacking.js.map +1 -1
- package/dist/chunks/wheelZoom.js +259 -0
- package/dist/chunks/wheelZoom.js.map +1 -0
- package/dist/core/assignment.d.ts +97 -0
- package/dist/core/assignment.d.ts.map +1 -0
- package/dist/core/color.d.ts +5 -0
- package/dist/core/color.d.ts.map +1 -0
- package/dist/core/entranceIcon.d.ts +12 -0
- package/dist/core/entranceIcon.d.ts.map +1 -0
- package/dist/core/filletPolygon.d.ts +10 -0
- package/dist/core/filletPolygon.d.ts.map +1 -0
- package/dist/core/hostChrome.d.ts +2 -4
- package/dist/core/hostChrome.d.ts.map +1 -1
- package/dist/core/import/index.d.ts +4 -0
- package/dist/core/import/index.d.ts.map +1 -1
- package/dist/core/index.d.ts +9 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +160 -219
- package/dist/core/index.js.map +1 -1
- package/dist/core/labelAlign.d.ts +7 -0
- package/dist/core/labelAlign.d.ts.map +1 -0
- package/dist/core/layerStyles.d.ts +54 -5
- package/dist/core/layerStyles.d.ts.map +1 -1
- package/dist/core/mediaUrl.d.ts +3 -0
- package/dist/core/mediaUrl.d.ts.map +1 -0
- package/dist/core/outdoorDecoration.d.ts +16 -0
- package/dist/core/outdoorDecoration.d.ts.map +1 -0
- package/dist/core/publish/index.d.ts +6 -4
- package/dist/core/publish/index.d.ts.map +1 -1
- package/dist/core/routing/graph-tools.d.ts +23 -1
- package/dist/core/routing/graph-tools.d.ts.map +1 -1
- package/dist/core/routing/pathfinding.d.ts.map +1 -1
- package/dist/core/stacking.d.ts +50 -3
- package/dist/core/stacking.d.ts.map +1 -1
- package/dist/core/types.d.ts +34 -2
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/voids.d.ts +41 -0
- package/dist/core/voids.d.ts.map +1 -0
- package/dist/core/wheelZoom.d.ts +30 -0
- package/dist/core/wheelZoom.d.ts.map +1 -0
- package/dist/editor/FieldResetButton.d.ts +7 -0
- package/dist/editor/FieldResetButton.d.ts.map +1 -0
- package/dist/editor/MapEditor.d.ts +13 -3
- package/dist/editor/MapEditor.d.ts.map +1 -1
- package/dist/editor/canvas/EditorCanvas.d.ts +49 -7
- package/dist/editor/canvas/EditorCanvas.d.ts.map +1 -1
- package/dist/editor/canvas/OutdoorSvgUnderlay.d.ts +8 -0
- package/dist/editor/canvas/OutdoorSvgUnderlay.d.ts.map +1 -0
- package/dist/editor/canvas/coords.d.ts +56 -3
- package/dist/editor/canvas/coords.d.ts.map +1 -1
- package/dist/editor/canvas/editorFill.d.ts +12 -0
- package/dist/editor/canvas/editorFill.d.ts.map +1 -0
- package/dist/editor/canvas/editorHover.d.ts +18 -0
- package/dist/editor/canvas/editorHover.d.ts.map +1 -0
- package/dist/editor/canvas/underlayHint.d.ts +13 -0
- package/dist/editor/canvas/underlayHint.d.ts.map +1 -0
- package/dist/editor/connectorAssignments.d.ts +125 -0
- package/dist/editor/connectorAssignments.d.ts.map +1 -0
- package/dist/editor/draftOps.d.ts +12 -1
- package/dist/editor/draftOps.d.ts.map +1 -1
- package/dist/editor/editorSectionReturn.d.ts +12 -0
- package/dist/editor/editorSectionReturn.d.ts.map +1 -0
- package/dist/editor/ellipseDraw.d.ts +12 -0
- package/dist/editor/ellipseDraw.d.ts.map +1 -0
- package/dist/editor/entranceIcon.d.ts +15 -0
- package/dist/editor/entranceIcon.d.ts.map +1 -0
- package/dist/editor/floorsListReturn.d.ts +5 -0
- package/dist/editor/floorsListReturn.d.ts.map +1 -0
- package/dist/editor/geometryEdit.d.ts +23 -3
- package/dist/editor/geometryEdit.d.ts.map +1 -1
- package/dist/editor/hexColor.d.ts +6 -0
- package/dist/editor/hexColor.d.ts.map +1 -0
- package/dist/editor/history.d.ts +31 -0
- package/dist/editor/history.d.ts.map +1 -0
- package/dist/editor/index.css +1038 -68
- package/dist/editor/index.d.ts +6 -4
- package/dist/editor/index.d.ts.map +1 -1
- package/dist/editor/index.js +8744 -2136
- package/dist/editor/index.js.map +1 -1
- package/dist/editor/labelText.d.ts +25 -0
- package/dist/editor/labelText.d.ts.map +1 -0
- package/dist/editor/labels.d.ts +8 -0
- package/dist/editor/labels.d.ts.map +1 -1
- package/dist/editor/panels/AssignForm.d.ts +17 -0
- package/dist/editor/panels/AssignForm.d.ts.map +1 -0
- package/dist/editor/panels/AssignmentStyleFields.d.ts +14 -0
- package/dist/editor/panels/AssignmentStyleFields.d.ts.map +1 -0
- package/dist/editor/panels/BulkAssignForm.d.ts +11 -0
- package/dist/editor/panels/BulkAssignForm.d.ts.map +1 -0
- package/dist/editor/panels/CatalogKioskForm.d.ts +18 -0
- package/dist/editor/panels/CatalogKioskForm.d.ts.map +1 -0
- package/dist/editor/panels/ConnectorAssign.d.ts +16 -0
- package/dist/editor/panels/ConnectorAssign.d.ts.map +1 -0
- package/dist/editor/panels/CopyToLevelButton.d.ts +10 -0
- package/dist/editor/panels/CopyToLevelButton.d.ts.map +1 -0
- package/dist/editor/panels/EntranceIconForm.d.ts +11 -0
- package/dist/editor/panels/EntranceIconForm.d.ts.map +1 -0
- package/dist/editor/panels/FloorsPanel.d.ts +4 -0
- package/dist/editor/panels/FloorsPanel.d.ts.map +1 -1
- package/dist/editor/panels/ImportReviewPanel.d.ts.map +1 -1
- package/dist/editor/panels/Inspector.d.ts +24 -2
- package/dist/editor/panels/Inspector.d.ts.map +1 -1
- package/dist/editor/panels/LeftRail.d.ts +24 -11
- package/dist/editor/panels/LeftRail.d.ts.map +1 -1
- package/dist/editor/panels/PreviewOverlay.d.ts +9 -3
- package/dist/editor/panels/PreviewOverlay.d.ts.map +1 -1
- package/dist/editor/panels/TextLabelForm.d.ts +11 -0
- package/dist/editor/panels/TextLabelForm.d.ts.map +1 -0
- package/dist/editor/panels/formRows.d.ts +41 -0
- package/dist/editor/panels/formRows.d.ts.map +1 -0
- package/dist/editor/pathRings.d.ts +79 -0
- package/dist/editor/pathRings.d.ts.map +1 -0
- package/dist/editor/portalSurface.d.ts +37 -3
- package/dist/editor/portalSurface.d.ts.map +1 -1
- package/dist/editor/previewDocument.d.ts +2 -1
- package/dist/editor/previewDocument.d.ts.map +1 -1
- package/dist/editor/railAssignments.d.ts +29 -0
- package/dist/editor/railAssignments.d.ts.map +1 -0
- package/dist/editor/railKiosks.d.ts +27 -0
- package/dist/editor/railKiosks.d.ts.map +1 -0
- package/dist/editor/railListCopy.d.ts +31 -0
- package/dist/editor/railListCopy.d.ts.map +1 -0
- package/dist/editor/routeStubs.d.ts +103 -0
- package/dist/editor/routeStubs.d.ts.map +1 -0
- package/dist/editor/shapeCopy.d.ts +40 -0
- package/dist/editor/shapeCopy.d.ts.map +1 -0
- package/dist/editor/shapeSelection.d.ts +6 -0
- package/dist/editor/shapeSelection.d.ts.map +1 -0
- package/dist/editor/snapPoint.d.ts +5 -0
- package/dist/editor/snapPoint.d.ts.map +1 -0
- package/dist/editor/splitJoin.d.ts +78 -0
- package/dist/editor/splitJoin.d.ts.map +1 -0
- package/dist/editor/tools.d.ts +46 -7
- package/dist/editor/tools.d.ts.map +1 -1
- package/dist/fonts/assets.d.ts +4 -0
- package/dist/fonts/mapFont.d.ts +5 -0
- package/dist/fonts/mapFont.d.ts.map +1 -0
- package/dist/fonts/mapFontUrl.d.ts +8 -0
- package/dist/fonts/mapFontUrl.d.ts.map +1 -0
- package/dist/specialIcons.d.ts +39 -0
- package/dist/specialIcons.d.ts.map +1 -0
- package/dist/test-maps/shops-at-south-town/BASE - Shops At South Town.ai +6326 -6407
- package/dist/test-maps/shops-at-south-town/LF - Shops At South Town.ai +458 -484
- package/dist/test-maps/shops-at-south-town/SVG/BASE - Shops At South Town.svg +6 -6
- package/dist/test-maps/shops-at-south-town/SVG/LF - Shops At South Town.svg +52 -52
- package/dist/test-maps/shops-at-south-town/SVG/UF - Shops At South Town.svg +74 -74
- package/dist/test-maps/shops-at-south-town/UF - Shops At South Town.ai +341 -436
- package/dist/ui/ModernSelect.d.ts +14 -0
- package/dist/ui/ModernSelect.d.ts.map +1 -0
- package/dist/ui/selectSearch.d.ts +12 -0
- package/dist/ui/selectSearch.d.ts.map +1 -0
- package/dist/viewer/MapViewer.d.ts +14 -1
- package/dist/viewer/MapViewer.d.ts.map +1 -1
- package/dist/viewer/camera.d.ts +85 -1
- package/dist/viewer/camera.d.ts.map +1 -1
- package/dist/viewer/components/CameraRig.d.ts +18 -1
- package/dist/viewer/components/CameraRig.d.ts.map +1 -1
- package/dist/viewer/components/LevelMeshes.d.ts +15 -4
- package/dist/viewer/components/LevelMeshes.d.ts.map +1 -1
- package/dist/viewer/components/MapScene.d.ts +10 -4
- package/dist/viewer/components/MapScene.d.ts.map +1 -1
- package/dist/viewer/components/OpeningWell.d.ts +7 -0
- package/dist/viewer/components/OpeningWell.d.ts.map +1 -0
- package/dist/viewer/components/RouteLine.d.ts.map +1 -1
- package/dist/viewer/components/SvgVectorLayer.d.ts +5 -3
- package/dist/viewer/components/SvgVectorLayer.d.ts.map +1 -1
- package/dist/viewer/components/openingGeometry.d.ts +7 -0
- package/dist/viewer/components/openingGeometry.d.ts.map +1 -0
- package/dist/viewer/index.css +251 -9
- package/dist/viewer/index.d.ts +1 -1
- package/dist/viewer/index.d.ts.map +1 -1
- package/dist/viewer/index.js +5 -5
- package/dist/viewer/pointer.d.ts +26 -0
- package/dist/viewer/pointer.d.ts.map +1 -0
- package/dist/viewer/ui/MapControls.d.ts +11 -3
- package/dist/viewer/ui/MapControls.d.ts.map +1 -1
- package/dist/viewer/ui/RuntimeChrome.d.ts.map +1 -1
- package/package.json +4 -2
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
import { aU as M, ax as b, aw as L, ar as _, az as N, b5 as T, d as x, g as W, aK as S, a6 as y, aZ as k, aX as $ } from "./stacking.js";
|
|
2
|
+
function H(e, u, r) {
|
|
3
|
+
var o, i, a, l;
|
|
4
|
+
const s = M(e), t = [];
|
|
5
|
+
for (const n of s.elements) {
|
|
6
|
+
if (!n.d || n.interactive || u != null && u.has(n.id) || n.id.toLowerCase().startsWith("route-path") || b(n.id) || L(n.id) || _(n.id) || N(n.id)) continue;
|
|
7
|
+
const d = T(n.id, r), m = (d == null ? void 0 : d.fill) ?? ((o = n.style) == null ? void 0 : o.fill), I = (d == null ? void 0 : d.stroke) ?? ((i = n.style) == null ? void 0 : i.stroke), h = (d == null ? void 0 : d.strokeWidth) ?? ((a = n.style) == null ? void 0 : a.strokeWidth);
|
|
8
|
+
t.push({
|
|
9
|
+
id: n.id,
|
|
10
|
+
d: n.d,
|
|
11
|
+
fill: m && m !== "none" ? m : void 0,
|
|
12
|
+
stroke: I && I !== "none" ? I : void 0,
|
|
13
|
+
strokeWidth: h,
|
|
14
|
+
opacity: (l = n.style) == null ? void 0 : l.opacity
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
return t;
|
|
18
|
+
}
|
|
19
|
+
function F(e, u, r, s = x) {
|
|
20
|
+
const t = e.filter((n) => r.includes(n.id));
|
|
21
|
+
if (t.length < 2) return null;
|
|
22
|
+
const o = t.reduce((n, d) => d.id < n.id ? d : n), i = [];
|
|
23
|
+
for (const n of t)
|
|
24
|
+
n.id !== o.id && y(n, o) <= s && i.push(n.id);
|
|
25
|
+
if (i.length === 0) return null;
|
|
26
|
+
const a = new Set(i), l = [];
|
|
27
|
+
for (const n of u) {
|
|
28
|
+
let d = !1;
|
|
29
|
+
if (a.has(n.fromAnchorId) && (n.fromAnchorId = o.id, d = !0), a.has(n.toAnchorId) && (n.toAnchorId = o.id, d = !0), n.fromAnchorId === n.toAnchorId) {
|
|
30
|
+
l.push(n.id);
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
d && l.push(n.id);
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
survivingAnchorId: o.id,
|
|
37
|
+
removedAnchorIds: i,
|
|
38
|
+
rewiredEdgeIds: l
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
function O(e, u = x) {
|
|
42
|
+
const r = [], s = /* @__PURE__ */ new Set();
|
|
43
|
+
for (let t = 0; t < e.length; t++) {
|
|
44
|
+
if (s.has(e[t].id)) continue;
|
|
45
|
+
const o = [e[t].id];
|
|
46
|
+
for (let i = t + 1; i < e.length; i++)
|
|
47
|
+
s.has(e[i].id) || e[t].levelId === e[i].levelId && y(e[t], e[i]) <= u && (o.push(e[i].id), s.add(e[i].id));
|
|
48
|
+
o.length > 1 && (s.add(e[t].id), r.push(o));
|
|
49
|
+
}
|
|
50
|
+
return r;
|
|
51
|
+
}
|
|
52
|
+
function D(e, u, r = x) {
|
|
53
|
+
const s = e.slice(), t = u.map((n) => ({ ...n })), o = /* @__PURE__ */ new Set();
|
|
54
|
+
for (const n of O(s, r)) {
|
|
55
|
+
const d = F(s, t, n, r);
|
|
56
|
+
if (d)
|
|
57
|
+
for (const m of d.removedAnchorIds) o.add(m);
|
|
58
|
+
}
|
|
59
|
+
const i = s.filter((n) => !o.has(n.id)), a = /* @__PURE__ */ new Set(), l = [];
|
|
60
|
+
for (const n of t) {
|
|
61
|
+
if (o.has(n.fromAnchorId) || o.has(n.toAnchorId) || n.fromAnchorId === n.toAnchorId) continue;
|
|
62
|
+
const d = Math.min(n.fromAnchorId, n.toAnchorId), m = Math.max(n.fromAnchorId, n.toAnchorId), I = `${d}|${m}`;
|
|
63
|
+
a.has(I) || (a.add(I), l.push(n));
|
|
64
|
+
}
|
|
65
|
+
return { anchors: i, edges: l };
|
|
66
|
+
}
|
|
67
|
+
function U(e, u, r, s = x) {
|
|
68
|
+
let t = null;
|
|
69
|
+
for (const i of u) {
|
|
70
|
+
const a = S(e, i);
|
|
71
|
+
a && (!t || a.distance < t.distance) && (t = { point: a.point, distance: a.distance });
|
|
72
|
+
}
|
|
73
|
+
if (!t) return null;
|
|
74
|
+
const o = r.find(
|
|
75
|
+
(i) => i.levelId === e.levelId && y(i, t.point) <= s
|
|
76
|
+
);
|
|
77
|
+
return {
|
|
78
|
+
unitAnchorId: e.id,
|
|
79
|
+
junctionAnchor: o ? { x: o.x, y: o.y, existingId: o.id } : { x: t.point.x, y: t.point.y },
|
|
80
|
+
edge: {
|
|
81
|
+
fromAnchorId: e.id,
|
|
82
|
+
toAnchorId: o == null ? void 0 : o.id
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
function V(e, u, r, s) {
|
|
87
|
+
if (r.length === 0) return null;
|
|
88
|
+
const t = r.flat();
|
|
89
|
+
if (t.length === 0) return null;
|
|
90
|
+
let o = 0, i = 0;
|
|
91
|
+
for (const n of t)
|
|
92
|
+
o += n.x, i += n.y;
|
|
93
|
+
const a = { x: o / t.length, y: i / t.length }, l = k(a, r) ? a : t[0];
|
|
94
|
+
return {
|
|
95
|
+
id: s,
|
|
96
|
+
levelId: u,
|
|
97
|
+
shapeId: e,
|
|
98
|
+
kind: "unit",
|
|
99
|
+
x: l.x,
|
|
100
|
+
y: l.y,
|
|
101
|
+
connectorId: null
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
function X(e, u, r = 20) {
|
|
105
|
+
if (e.length === 0)
|
|
106
|
+
return { anchors: [], edges: [] };
|
|
107
|
+
let s = 1 / 0, t = 1 / 0, o = -1 / 0, i = -1 / 0;
|
|
108
|
+
for (const f of e)
|
|
109
|
+
for (const c of f)
|
|
110
|
+
s = Math.min(s, c.x), t = Math.min(t, c.y), o = Math.max(o, c.x), i = Math.max(i, c.y);
|
|
111
|
+
const a = Math.max(1, Math.ceil((o - s) / r)), l = Math.max(1, Math.ceil((i - t) / r)), n = [];
|
|
112
|
+
for (let f = 0; f < l; f++)
|
|
113
|
+
for (let c = 0; c < a; c++) {
|
|
114
|
+
const g = s + (c + 0.5) * r, p = t + (f + 0.5) * r, A = { x: g, y: p };
|
|
115
|
+
k(A, e) && (u.length > 0 && k(A, u) || n.push({ key: `${c},${f}`, x: g, y: p, col: c, row: f }));
|
|
116
|
+
}
|
|
117
|
+
const d = new Map(n.map((f) => [f.key, f])), m = n.map((f) => ({
|
|
118
|
+
tempId: f.key,
|
|
119
|
+
x: f.x,
|
|
120
|
+
y: f.y,
|
|
121
|
+
kind: "junction"
|
|
122
|
+
})), I = [], h = /* @__PURE__ */ new Set();
|
|
123
|
+
for (const f of n) {
|
|
124
|
+
const c = [
|
|
125
|
+
[f.col + 1, f.row],
|
|
126
|
+
[f.col, f.row + 1]
|
|
127
|
+
];
|
|
128
|
+
for (const [g, p] of c) {
|
|
129
|
+
const A = `${g},${p}`;
|
|
130
|
+
if (!d.has(A)) continue;
|
|
131
|
+
const v = f.key < A ? `${f.key}|${A}` : `${A}|${f.key}`;
|
|
132
|
+
h.has(v) || (h.add(v), I.push({ fromTempId: f.key, toTempId: A }));
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return { anchors: m, edges: I };
|
|
136
|
+
}
|
|
137
|
+
function Y(e, u, r, s, t = x) {
|
|
138
|
+
const o = [], i = [];
|
|
139
|
+
let a = s;
|
|
140
|
+
const l = (d, m) => {
|
|
141
|
+
const I = o.find(
|
|
142
|
+
(f) => y(f, { x: d, y: m }) <= t
|
|
143
|
+
);
|
|
144
|
+
if (I) return I.id;
|
|
145
|
+
const h = a++;
|
|
146
|
+
return o.push({
|
|
147
|
+
id: h,
|
|
148
|
+
levelId: u,
|
|
149
|
+
shapeId: null,
|
|
150
|
+
kind: "junction",
|
|
151
|
+
x: d,
|
|
152
|
+
y: m,
|
|
153
|
+
connectorId: null
|
|
154
|
+
}), h;
|
|
155
|
+
};
|
|
156
|
+
for (const d of e) {
|
|
157
|
+
const m = $(d);
|
|
158
|
+
for (const I of m)
|
|
159
|
+
for (let h = 0; h < I.length - 1; h++) {
|
|
160
|
+
const f = l(I[h].x, I[h].y), c = l(I[h + 1].x, I[h + 1].y);
|
|
161
|
+
f === c || i.some(
|
|
162
|
+
(p) => p.fromAnchorId === f && p.toAnchorId === c || p.fromAnchorId === c && p.toAnchorId === f
|
|
163
|
+
) || i.push({
|
|
164
|
+
id: a++,
|
|
165
|
+
mapId: r,
|
|
166
|
+
fromAnchorId: f,
|
|
167
|
+
toAnchorId: c,
|
|
168
|
+
weight: null,
|
|
169
|
+
directed: !1,
|
|
170
|
+
accessible: !0,
|
|
171
|
+
kind: "walk"
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
const n = D(o, i, t);
|
|
176
|
+
return { anchors: n.anchors, edges: n.edges, nextId: a };
|
|
177
|
+
}
|
|
178
|
+
function K(e) {
|
|
179
|
+
return e === "entrance" ? "entrance" : e === "connector" ? "connector" : "unit";
|
|
180
|
+
}
|
|
181
|
+
function P(e) {
|
|
182
|
+
return e === "entrance" ? "entrance_link" : "unit_link";
|
|
183
|
+
}
|
|
184
|
+
function R(e, u, r) {
|
|
185
|
+
if (k(e, u)) return "inside";
|
|
186
|
+
for (const s of u) {
|
|
187
|
+
if (s.length < 2) continue;
|
|
188
|
+
const t = [...s, s[0]], o = S(e, t);
|
|
189
|
+
if (o && o.distance <= r) return "near";
|
|
190
|
+
}
|
|
191
|
+
return null;
|
|
192
|
+
}
|
|
193
|
+
function E(e, u, r) {
|
|
194
|
+
if (e.length === 0) return null;
|
|
195
|
+
const s = e.filter((o) => (u.get(o.id) ?? 0) <= 1);
|
|
196
|
+
return [...s.length > 0 ? s : e].sort((o, i) => y(o, r) - y(i, r))[0] ?? null;
|
|
197
|
+
}
|
|
198
|
+
function Z(e, u, r, s = x * 3) {
|
|
199
|
+
const t = /* @__PURE__ */ new Map();
|
|
200
|
+
for (const l of u)
|
|
201
|
+
t.set(l.fromAnchorId, (t.get(l.fromAnchorId) ?? 0) + 1), t.set(l.toAnchorId, (t.get(l.toAnchorId) ?? 0) + 1);
|
|
202
|
+
const o = e.filter((l) => l.shapeId == null), i = /* @__PURE__ */ new Set();
|
|
203
|
+
let a = 0;
|
|
204
|
+
for (const l of r) {
|
|
205
|
+
if (!W.includes(l.kind)) continue;
|
|
206
|
+
const n = l.geometry.polygons ?? [];
|
|
207
|
+
if (n.length === 0) continue;
|
|
208
|
+
const d = o.filter((c) => !i.has(c.id)).map((c) => ({
|
|
209
|
+
anchor: c,
|
|
210
|
+
hit: R(c, n, s)
|
|
211
|
+
})).filter(
|
|
212
|
+
(c) => c.hit != null
|
|
213
|
+
);
|
|
214
|
+
if (d.length === 0) continue;
|
|
215
|
+
const m = n.flat(), I = {
|
|
216
|
+
x: m.reduce((c, g) => c + g.x, 0) / m.length,
|
|
217
|
+
y: m.reduce((c, g) => c + g.y, 0) / m.length
|
|
218
|
+
}, h = E(
|
|
219
|
+
d.filter((c) => c.hit === "inside").map((c) => c.anchor),
|
|
220
|
+
t,
|
|
221
|
+
I
|
|
222
|
+
) ?? E(
|
|
223
|
+
d.filter((c) => c.hit === "near").map((c) => c.anchor),
|
|
224
|
+
t,
|
|
225
|
+
I
|
|
226
|
+
);
|
|
227
|
+
if (!h || (h.shapeId = l.id, h.kind = K(l.kind), i.add(h.id), a += 1, (t.get(h.id) ?? 0) > 1)) continue;
|
|
228
|
+
const f = P(h.kind);
|
|
229
|
+
for (const c of u)
|
|
230
|
+
(c.fromAnchorId === h.id || c.toAnchorId === h.id) && (c.kind = f);
|
|
231
|
+
}
|
|
232
|
+
return a;
|
|
233
|
+
}
|
|
234
|
+
const C = 0.95, w = 1;
|
|
235
|
+
function j(e = w) {
|
|
236
|
+
return Math.pow(C, e);
|
|
237
|
+
}
|
|
238
|
+
function q(e, u, r) {
|
|
239
|
+
if (u === 0) return e;
|
|
240
|
+
const s = j((r == null ? void 0 : r.zoomSpeed) ?? w), t = u < 0 ? e / s : e * s, o = (r == null ? void 0 : r.min) ?? Number.NEGATIVE_INFINITY, i = (r == null ? void 0 : r.max) ?? Number.POSITIVE_INFINITY;
|
|
241
|
+
return Math.min(i, Math.max(o, t));
|
|
242
|
+
}
|
|
243
|
+
export {
|
|
244
|
+
C as W,
|
|
245
|
+
w as a,
|
|
246
|
+
Z as b,
|
|
247
|
+
U as c,
|
|
248
|
+
X as d,
|
|
249
|
+
D as e,
|
|
250
|
+
O as f,
|
|
251
|
+
j as g,
|
|
252
|
+
Y as i,
|
|
253
|
+
q as n,
|
|
254
|
+
H as o,
|
|
255
|
+
K as r,
|
|
256
|
+
V as u,
|
|
257
|
+
F as w
|
|
258
|
+
};
|
|
259
|
+
//# sourceMappingURL=wheelZoom.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wheelZoom.js","sources":["../../src/core/outdoorDecoration.ts","../../src/core/routing/graph-tools.ts","../../src/core/wheelZoom.ts"],"sourcesContent":["import {\n parseSvgString,\n isInteractiveGroupLabel,\n isRouteFolderLabel,\n isRoutePathLabel,\n isStoreFolderLabel,\n} from './import';\nimport { resolveLayerStyle } from './layerStyles';\n\nexport interface OutdoorDecorationPath {\n id: string;\n d: string;\n fill?: string;\n stroke?: string;\n strokeWidth?: number;\n opacity?: number;\n}\n\n/**\n * Paths the assign viewer draws from the live outdoor SVG: house-style\n * decoration (green area, parking lanes, icons) and any other\n * non-interactive art. Interactive / store folders stay out — those are\n * `cm_shapes` rows.\n */\nexport function outdoorDecorationFromSvg(\n svgText: string,\n suppressIds?: ReadonlySet<string>,\n theme?: Partial<Record<string, string>> | null,\n): OutdoorDecorationPath[] {\n const parsed = parseSvgString(svgText);\n const out: OutdoorDecorationPath[] = [];\n for (const el of parsed.elements) {\n if (!el.d) continue;\n if (el.interactive) continue;\n if (suppressIds?.has(el.id)) continue;\n if (el.id.toLowerCase().startsWith('route-path')) continue;\n if (isRoutePathLabel(el.id) || isRouteFolderLabel(el.id)) continue;\n if (isInteractiveGroupLabel(el.id) || isStoreFolderLabel(el.id)) continue;\n\n const layer = resolveLayerStyle(el.id, theme);\n const fill = layer?.fill ?? el.style?.fill;\n const stroke = layer?.stroke ?? el.style?.stroke;\n const strokeWidth = layer?.strokeWidth ?? el.style?.strokeWidth;\n out.push({\n id: el.id,\n d: el.d,\n fill: fill && fill !== 'none' ? fill : undefined,\n stroke: stroke && stroke !== 'none' ? stroke : undefined,\n strokeWidth,\n opacity: el.style?.opacity,\n });\n }\n return out;\n}\n","import type {\n AnchorKind,\n AutoConnectResult,\n CmAnchor,\n CmRouteEdge,\n ShapeGeometry,\n ShapeKind,\n SkeletonSuggestion,\n Vec2,\n WeldResult,\n} from '../types';\nimport { DEFAULT_WELD_TOLERANCE, INTERACTIVE_SHAPE_KINDS } from '../types';\nimport {\n distance,\n nearestPointOnPolyline,\n pathToPolygons,\n pointInPolygons,\n} from '../geometry';\n\nexport interface AnchorLike {\n id: number;\n x: number;\n y: number;\n levelId: number;\n shapeId?: number | null;\n kind?: string;\n}\n\nexport interface EdgeLike {\n id: number;\n fromAnchorId: number;\n toAnchorId: number;\n}\n\n/**\n * Weld anchors within tolerance into the surviving (lowest id) anchor.\n * Rewires edges that referenced removed anchors.\n */\nexport function weldAnchors(\n anchors: AnchorLike[],\n edges: EdgeLike[],\n candidateIds: number[],\n tolerance = DEFAULT_WELD_TOLERANCE,\n): WeldResult | null {\n const candidates = anchors.filter((a) => candidateIds.includes(a.id));\n if (candidates.length < 2) return null;\n\n // Cluster by proximity from the first candidate's position centroid of group\n const surviving = candidates.reduce((min, a) => (a.id < min.id ? a : min));\n const removed: number[] = [];\n\n for (const a of candidates) {\n if (a.id === surviving.id) continue;\n if (distance(a, surviving) <= tolerance) {\n removed.push(a.id);\n }\n }\n\n if (removed.length === 0) return null;\n\n const removedSet = new Set(removed);\n const rewired: number[] = [];\n\n for (const edge of edges) {\n let changed = false;\n if (removedSet.has(edge.fromAnchorId)) {\n edge.fromAnchorId = surviving.id;\n changed = true;\n }\n if (removedSet.has(edge.toAnchorId)) {\n edge.toAnchorId = surviving.id;\n changed = true;\n }\n // Drop self-loops\n if (edge.fromAnchorId === edge.toAnchorId) {\n rewired.push(edge.id);\n continue;\n }\n if (changed) rewired.push(edge.id);\n }\n\n return {\n survivingAnchorId: surviving.id,\n removedAnchorIds: removed,\n rewiredEdgeIds: rewired,\n };\n}\n\n/**\n * Find all pairs of anchors within tolerance that should be welded.\n */\nexport function findWeldCandidates(\n anchors: AnchorLike[],\n tolerance = DEFAULT_WELD_TOLERANCE,\n): number[][] {\n const groups: number[][] = [];\n const used = new Set<number>();\n\n for (let i = 0; i < anchors.length; i++) {\n if (used.has(anchors[i].id)) continue;\n const group = [anchors[i].id];\n for (let j = i + 1; j < anchors.length; j++) {\n if (used.has(anchors[j].id)) continue;\n if (\n anchors[i].levelId === anchors[j].levelId &&\n distance(anchors[i], anchors[j]) <= tolerance\n ) {\n group.push(anchors[j].id);\n used.add(anchors[j].id);\n }\n }\n if (group.length > 1) {\n used.add(anchors[i].id);\n groups.push(group);\n }\n }\n return groups;\n}\n\n/**\n * Merge coincident anchors and drop overlapping undirected edges.\n * Two SVG imports of the same ROUTES layer stack a second copy on top of\n * the first — dragging one junction then leaves the twin behind.\n */\nexport function collapseDuplicateRouteGraph<\n A extends AnchorLike,\n E extends EdgeLike,\n>(\n anchors: A[],\n edges: E[],\n tolerance = DEFAULT_WELD_TOLERANCE,\n): { anchors: A[]; edges: E[] } {\n const nextAnchors = anchors.slice();\n const nextEdges = edges.map((edge) => ({ ...edge }));\n const removed = new Set<number>();\n for (const group of findWeldCandidates(nextAnchors, tolerance)) {\n const result = weldAnchors(nextAnchors, nextEdges, group, tolerance);\n if (!result) continue;\n for (const id of result.removedAnchorIds) removed.add(id);\n }\n const alive = nextAnchors.filter((anchor) => !removed.has(anchor.id));\n const seen = new Set<string>();\n const uniqueEdges: E[] = [];\n for (const edge of nextEdges) {\n if (removed.has(edge.fromAnchorId) || removed.has(edge.toAnchorId)) continue;\n if (edge.fromAnchorId === edge.toAnchorId) continue;\n const lo = Math.min(edge.fromAnchorId, edge.toAnchorId);\n const hi = Math.max(edge.fromAnchorId, edge.toAnchorId);\n const key = `${lo}|${hi}`;\n if (seen.has(key)) continue;\n seen.add(key);\n uniqueEdges.push(edge);\n }\n return { anchors: alive, edges: uniqueEdges };\n}\n\n/**\n * Auto-connect a unit anchor to the nearest walkable segment via perpendicular projection.\n */\nexport function autoConnectUnitAnchor(\n unitAnchor: AnchorLike,\n walkablePolylines: Vec2[][],\n existingJunctions: AnchorLike[],\n weldTolerance = DEFAULT_WELD_TOLERANCE,\n): AutoConnectResult | null {\n let best: { point: Vec2; distance: number } | null = null;\n\n for (const line of walkablePolylines) {\n const hit = nearestPointOnPolyline(unitAnchor, line);\n if (hit && (!best || hit.distance < best.distance)) {\n best = { point: hit.point, distance: hit.distance };\n }\n }\n\n if (!best) return null;\n\n // Reuse existing junction if within weld tolerance\n const existing = existingJunctions.find(\n (j) =>\n j.levelId === unitAnchor.levelId &&\n distance(j, best!.point) <= weldTolerance,\n );\n\n return {\n unitAnchorId: unitAnchor.id,\n junctionAnchor: existing\n ? { x: existing.x, y: existing.y, existingId: existing.id }\n : { x: best.point.x, y: best.point.y },\n edge: {\n fromAnchorId: unitAnchor.id,\n toAnchorId: existing?.id,\n },\n };\n}\n\n/**\n * Place a unit anchor at the centroid of a shape's polygons, if the point lies inside.\n */\nexport function unitAnchorFromShape(\n shapeId: number,\n levelId: number,\n polygons: Vec2[][],\n tempId: number,\n): CmAnchor | null {\n if (polygons.length === 0) return null;\n const flat = polygons.flat();\n if (flat.length === 0) return null;\n\n let sx = 0;\n let sy = 0;\n for (const p of flat) {\n sx += p.x;\n sy += p.y;\n }\n const c = { x: sx / flat.length, y: sy / flat.length };\n\n // Prefer centroid if inside; otherwise use first polygon's average of extremes\n const point = pointInPolygons(c, polygons) ? c : flat[0];\n\n return {\n id: tempId,\n levelId,\n shapeId,\n kind: 'unit',\n x: point.x,\n y: point.y,\n connectorId: null,\n };\n}\n\n/**\n * Build a simple medial-axis-ish skeleton from walkable polygons minus voids.\n * This is a pragmatic approximation: sample a grid inside walkable, reject void cells,\n * connect adjacent free cells into a sparse graph, then prune to a polyline network.\n */\nexport function buildAutoSkeleton(\n walkablePolygons: Vec2[][],\n voidPolygons: Vec2[][],\n cellSize = 20,\n): SkeletonSuggestion {\n if (walkablePolygons.length === 0) {\n return { anchors: [], edges: [] };\n }\n\n let minX = Infinity;\n let minY = Infinity;\n let maxX = -Infinity;\n let maxY = -Infinity;\n for (const poly of walkablePolygons) {\n for (const p of poly) {\n minX = Math.min(minX, p.x);\n minY = Math.min(minY, p.y);\n maxX = Math.max(maxX, p.x);\n maxY = Math.max(maxY, p.y);\n }\n }\n\n const cols = Math.max(1, Math.ceil((maxX - minX) / cellSize));\n const rows = Math.max(1, Math.ceil((maxY - minY) / cellSize));\n const free: Array<{ key: string; x: number; y: number; col: number; row: number }> = [];\n\n for (let row = 0; row < rows; row++) {\n for (let col = 0; col < cols; col++) {\n const x = minX + (col + 0.5) * cellSize;\n const y = minY + (row + 0.5) * cellSize;\n const pt = { x, y };\n if (!pointInPolygons(pt, walkablePolygons)) continue;\n if (voidPolygons.length > 0 && pointInPolygons(pt, voidPolygons)) continue;\n free.push({ key: `${col},${row}`, x, y, col, row });\n }\n }\n\n const byKey = new Map(free.map((c) => [c.key, c]));\n const anchors = free.map((c) => ({\n tempId: c.key,\n x: c.x,\n y: c.y,\n kind: 'junction' as const,\n }));\n\n const edges: Array<{ fromTempId: string; toTempId: string }> = [];\n const seen = new Set<string>();\n\n for (const cell of free) {\n const neighbors = [\n [cell.col + 1, cell.row],\n [cell.col, cell.row + 1],\n ];\n for (const [nc, nr] of neighbors) {\n const nk = `${nc},${nr}`;\n if (!byKey.has(nk)) continue;\n const edgeKey = cell.key < nk ? `${cell.key}|${nk}` : `${nk}|${cell.key}`;\n if (seen.has(edgeKey)) continue;\n seen.add(edgeKey);\n edges.push({ fromTempId: cell.key, toTempId: nk });\n }\n }\n\n return { anchors, edges };\n}\n\n/**\n * Convert route-path SVG line endpoints into welded anchors + edges.\n * This is the key converter step that repairs coincident-but-disconnected joins.\n *\n * Anchors land in raw SVG user space (Y down), the same space as shape\n * geometry. There is intentionally no viewbox-height flip here — mirroring\n * routes without mirroring shapes would silently desynchronise the two.\n */\nexport function importRoutePaths(\n pathDs: string[],\n levelId: number,\n mapId: number,\n startId: number,\n weldTolerance = DEFAULT_WELD_TOLERANCE,\n): { anchors: CmAnchor[]; edges: CmRouteEdge[]; nextId: number } {\n const anchors: CmAnchor[] = [];\n const edges: CmRouteEdge[] = [];\n let nextId = startId;\n\n const findOrCreate = (x: number, y: number): number => {\n const existing = anchors.find(\n (a) => distance(a, { x, y }) <= weldTolerance,\n );\n if (existing) return existing.id;\n const id = nextId++;\n anchors.push({\n id,\n levelId,\n shapeId: null,\n kind: 'junction',\n x,\n y,\n connectorId: null,\n });\n return id;\n };\n\n for (const d of pathDs) {\n const polys = pathToPolygons(d);\n for (const poly of polys) {\n for (let i = 0; i < poly.length - 1; i++) {\n const a = findOrCreate(poly[i].x, poly[i].y);\n const b = findOrCreate(poly[i + 1].x, poly[i + 1].y);\n if (a === b) continue;\n // Avoid duplicate edges\n const dup = edges.some(\n (e) =>\n (e.fromAnchorId === a && e.toAnchorId === b) ||\n (e.fromAnchorId === b && e.toAnchorId === a),\n );\n if (dup) continue;\n edges.push({\n id: nextId++,\n mapId,\n fromAnchorId: a,\n toAnchorId: b,\n weight: null,\n directed: false,\n accessible: true,\n kind: 'walk',\n });\n }\n }\n }\n\n const collapsed = collapseDuplicateRouteGraph(anchors, edges, weldTolerance);\n return { anchors: collapsed.anchors, edges: collapsed.edges, nextId };\n}\n\nexport function routeAnchorKindForShape(kind: ShapeKind): AnchorKind {\n if (kind === 'entrance') return 'entrance';\n if (kind === 'connector') return 'connector';\n return 'unit';\n}\n\nfunction routeLinkKind(kind: AnchorKind): CmRouteEdge['kind'] {\n return kind === 'entrance' ? 'entrance_link' : 'unit_link';\n}\n\n/** `inside` matches v1's store-mesh hit; `near` is a door-step fallback. */\nfunction pointOnPolygons(\n point: Vec2,\n polygons: Vec2[][],\n tolerance: number,\n): 'inside' | 'near' | null {\n if (pointInPolygons(point, polygons)) return 'inside';\n for (const poly of polygons) {\n if (poly.length < 2) continue;\n const closed = [...poly, poly[0]];\n const hit = nearestPointOnPolyline(point, closed);\n if (hit && hit.distance <= tolerance) return 'near';\n }\n return null;\n}\n\nfunction pickImportedShapeAnchor(\n candidates: CmAnchor[],\n degree: Map<number, number>,\n center: Vec2,\n): CmAnchor | null {\n if (candidates.length === 0) return null;\n const leaves = candidates.filter((anchor) => (degree.get(anchor.id) ?? 0) <= 1);\n const pool = leaves.length > 0 ? leaves : candidates;\n return [...pool].sort((a, b) => distance(a, center) - distance(b, center))[0] ?? null;\n}\n\nexport interface AttachableImportShape {\n id: number;\n kind: ShapeKind;\n geometry: Pick<ShapeGeometry, 'polygons'>;\n}\n\n/**\n * Same rule as v1 `assign_route_nodes_to_stores`: a route vertex that sits\n * inside (or on) an interactive shape is that store / amenity / entrance's\n * destination. Prefer a dedicated spur leaf; otherwise take the closest\n * vertex. Corridor through-points keep `walk` edges so the path stays joined.\n */\nexport function attachImportedRouteAnchors(\n anchors: CmAnchor[],\n edges: CmRouteEdge[],\n shapes: AttachableImportShape[],\n insideTolerance = DEFAULT_WELD_TOLERANCE * 3,\n): number {\n const degree = new Map<number, number>();\n for (const edge of edges) {\n degree.set(edge.fromAnchorId, (degree.get(edge.fromAnchorId) ?? 0) + 1);\n degree.set(edge.toAnchorId, (degree.get(edge.toAnchorId) ?? 0) + 1);\n }\n\n const free = anchors.filter((anchor) => anchor.shapeId == null);\n const used = new Set<number>();\n let attached = 0;\n\n for (const shape of shapes) {\n if (!INTERACTIVE_SHAPE_KINDS.includes(shape.kind)) continue;\n const polys = shape.geometry.polygons ?? [];\n if (polys.length === 0) continue;\n const hits = free\n .filter((anchor) => !used.has(anchor.id))\n .map((anchor) => ({\n anchor,\n hit: pointOnPolygons(anchor, polys, insideTolerance),\n }))\n .filter((row): row is { anchor: CmAnchor; hit: 'inside' | 'near' } =>\n row.hit != null,\n );\n if (hits.length === 0) continue;\n const verts = polys.flat();\n const center = {\n x: verts.reduce((s, p) => s + p.x, 0) / verts.length,\n y: verts.reduce((s, p) => s + p.y, 0) / verts.length,\n };\n const pick =\n pickImportedShapeAnchor(\n hits.filter((row) => row.hit === 'inside').map((row) => row.anchor),\n degree,\n center,\n ) ??\n pickImportedShapeAnchor(\n hits.filter((row) => row.hit === 'near').map((row) => row.anchor),\n degree,\n center,\n );\n if (!pick) continue;\n pick.shapeId = shape.id;\n pick.kind = routeAnchorKindForShape(shape.kind);\n used.add(pick.id);\n attached += 1;\n if ((degree.get(pick.id) ?? 0) > 1) continue;\n const linkKind = routeLinkKind(pick.kind);\n for (const edge of edges) {\n if (edge.fromAnchorId === pick.id || edge.toAnchorId === pick.id) {\n edge.kind = linkKind;\n }\n }\n }\n\n return attached;\n}\n","/**\n * Wheel / trackpad zoom curve for every map surface.\n *\n * PORTAL default MapViewer uses drei → three-stdlib OrbitControls, whose\n * `getZoomScale()` is `Math.pow(0.95, zoomSpeed)` **per wheel event** (not\n * scaled by `deltaY`). Edit Map / Wayfinding must use the same step or they\n * feel slower than the assign map.\n *\n * Scroll up zooms in; the caller keeps the pointer over the same map point\n * (`panAfterZoom` on the SVG canvas, `zoomToCursor` on OrbitControls).\n */\n\n/** three-stdlib OrbitControls `Math.pow(0.95, zoomSpeed)` base. */\nexport const WHEEL_ZOOM_BASE = 0.95;\n/** drei / three-stdlib default `zoomSpeed`. */\nexport const WHEEL_ZOOM_SPEED = 1;\n\n/**\n * OrbitControls dolly scale for one wheel event: `0.95 ** zoomSpeed`.\n * Sign of `deltaY` is ignored here; `nextZoomFromWheel` applies in vs out.\n */\nexport function wheelDollyScale(zoomSpeed = WHEEL_ZOOM_SPEED): number {\n return Math.pow(WHEEL_ZOOM_BASE, zoomSpeed);\n}\n\n/**\n * Next SVG / orthographic zoom from a wheel event.\n * `deltaY < 0` zooms in. Pan separately so the cursor stays on the same point.\n */\nexport function nextZoomFromWheel(\n currentZoom: number,\n deltaY: number,\n options?: {\n zoomSpeed?: number;\n min?: number;\n max?: number;\n },\n): number {\n if (deltaY === 0) return currentZoom;\n const scale = wheelDollyScale(options?.zoomSpeed ?? WHEEL_ZOOM_SPEED);\n const next = deltaY < 0 ? currentZoom / scale : currentZoom * scale;\n const min = options?.min ?? Number.NEGATIVE_INFINITY;\n const max = options?.max ?? Number.POSITIVE_INFINITY;\n return Math.min(max, Math.max(min, next));\n}\n"],"names":["outdoorDecorationFromSvg","svgText","suppressIds","theme","parsed","parseSvgString","out","el","isRoutePathLabel","isRouteFolderLabel","isInteractiveGroupLabel","isStoreFolderLabel","layer","resolveLayerStyle","fill","_a","stroke","_b","strokeWidth","_c","_d","weldAnchors","anchors","edges","candidateIds","tolerance","DEFAULT_WELD_TOLERANCE","candidates","a","surviving","min","removed","distance","removedSet","rewired","edge","changed","findWeldCandidates","groups","used","i","group","j","collapseDuplicateRouteGraph","nextAnchors","nextEdges","result","id","alive","anchor","seen","uniqueEdges","lo","hi","key","autoConnectUnitAnchor","unitAnchor","walkablePolylines","existingJunctions","weldTolerance","best","line","hit","nearestPointOnPolyline","existing","unitAnchorFromShape","shapeId","levelId","polygons","tempId","flat","sx","sy","p","c","point","pointInPolygons","buildAutoSkeleton","walkablePolygons","voidPolygons","cellSize","minX","minY","maxX","maxY","poly","cols","rows","free","row","col","x","y","pt","byKey","cell","neighbors","nc","nr","nk","edgeKey","importRoutePaths","pathDs","mapId","startId","nextId","findOrCreate","polys","pathToPolygons","b","e","collapsed","routeAnchorKindForShape","kind","routeLinkKind","pointOnPolygons","closed","pickImportedShapeAnchor","degree","center","leaves","attachImportedRouteAnchors","shapes","insideTolerance","attached","shape","INTERACTIVE_SHAPE_KINDS","hits","verts","s","pick","linkKind","WHEEL_ZOOM_BASE","WHEEL_ZOOM_SPEED","wheelDollyScale","zoomSpeed","nextZoomFromWheel","currentZoom","deltaY","options","scale","next","max"],"mappings":"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"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { AssignmentLayerType, AssignmentTargetType, CmShape, CmShapeAssignment, MapAssignRetailer, ShapeKind, ShapeLabel, ShapeStyle } from './types';
|
|
2
|
+
export declare const DEFAULT_ASSIGNMENT_SIZE = 12;
|
|
3
|
+
/** Escalator / elevator icons use the same Size default as store names. */
|
|
4
|
+
export declare const CONNECTOR_ICON_SIZE = 12;
|
|
5
|
+
/** Retail logos read the same Size as retail names, then draw this many times larger. */
|
|
6
|
+
export declare const RETAIL_LOGO_RENDER_SCALE = 4;
|
|
7
|
+
export declare const ASSIGNMENT_LAYER_TYPES: AssignmentLayerType[];
|
|
8
|
+
/**
|
|
9
|
+
* Size / rotate / offset while typing. Empty or a lone minus is 0 for the
|
|
10
|
+
* map; blur commits that 0 into the field.
|
|
11
|
+
*/
|
|
12
|
+
export declare function assignNumberFromDraft(raw: string): {
|
|
13
|
+
render: number;
|
|
14
|
+
complete: boolean;
|
|
15
|
+
};
|
|
16
|
+
export declare function commitAssignNumberDraft(raw: string): {
|
|
17
|
+
display: string;
|
|
18
|
+
render: number;
|
|
19
|
+
};
|
|
20
|
+
export declare function isAssignmentLayerType(value: unknown): value is AssignmentLayerType;
|
|
21
|
+
export declare function defaultLayerTypeForKind(kind: ShapeKind): AssignmentLayerType;
|
|
22
|
+
export declare function defaultTargetTypeForKind(kind: ShapeKind): AssignmentTargetType;
|
|
23
|
+
export declare function emptyShapeAssignment(shapeId: number, kind: ShapeKind): CmShapeAssignment;
|
|
24
|
+
/** Normalize a draft / API assignment row (camelCase or snake_case). */
|
|
25
|
+
export declare function parseShapeAssignment(raw: Record<string, unknown> | CmShapeAssignment, kind?: ShapeKind): CmShapeAssignment;
|
|
26
|
+
export declare function retailerOptionLabel(retailer: MapAssignRetailer, duplicateName: boolean): string;
|
|
27
|
+
/** Per-store override, or the Settings store color when none is set. */
|
|
28
|
+
export declare function resolvedAssignmentBgColor(assignment: Pick<CmShapeAssignment, 'bgColor'> | null | undefined, storeColor: string): string;
|
|
29
|
+
/** Per-store text override, or the theme store text color when none is set. */
|
|
30
|
+
export declare function resolvedAssignmentTextColor(assignment: Pick<CmShapeAssignment, 'textColor'> | null | undefined, textColor: string): string;
|
|
31
|
+
/** Kiosk app ID typed in Map options — not chosen from a device list. */
|
|
32
|
+
export declare function parseKioskIdInput(raw: string): number | null;
|
|
33
|
+
type AssignmentTargetFields = Pick<CmShapeAssignment, 'targetType' | 'retailerId' | 'amenityId' | 'kioskId'> & {
|
|
34
|
+
customLabel?: string | null;
|
|
35
|
+
};
|
|
36
|
+
/** Staff-facing amenity name: catalog title, then the v1 type code. */
|
|
37
|
+
export declare function amenityAssignedName(assignment: Pick<CmShapeAssignment, 'customLabel' | 'amenityId'> | null | undefined, catalogName?: string | null): string | null;
|
|
38
|
+
/** Staff-facing kiosk name: typed label, then catalog title, then a fallback. */
|
|
39
|
+
export declare function kioskAssignedName(assignment: Pick<CmShapeAssignment, 'customLabel' | 'kioskId'> | null | undefined, catalogName?: string | null): string | null;
|
|
40
|
+
export declare function assignmentHasTarget(assignment: AssignmentTargetFields | null | undefined): boolean;
|
|
41
|
+
/** Drop leftover retailer/custom text when the polygon is not assigned. */
|
|
42
|
+
export declare function publishedShapeLabel(shape: Pick<CmShape, 'kind' | 'label' | 'style'>, assignment: CmShapeAssignment | null | undefined, retailer?: MapAssignRetailer | null): ShapeLabel;
|
|
43
|
+
export declare function assignmentDisplayText(assignment: CmShapeAssignment, retailer?: MapAssignRetailer | null): string | undefined;
|
|
44
|
+
/**
|
|
45
|
+
* Logo URL for retail_logo / custom_image — same lookup as v1 (retailer logo,
|
|
46
|
+
* then the stored custom image, then a baked label.imageKey).
|
|
47
|
+
* Amenity / kiosk icons are resolved at render time from the v1 SVG catalog.
|
|
48
|
+
*/
|
|
49
|
+
export declare function assignmentOverlayImageUrl(assignment?: CmShapeAssignment | null, retailer?: MapAssignRetailer | null, label?: ShapeLabel | null): string | undefined;
|
|
50
|
+
/** Kiosk pin or amenity type code from the v1 `AllAmenities` list. */
|
|
51
|
+
export declare function assignmentSpecialIconId(assignment?: CmShapeAssignment | null, amenities?: Array<{
|
|
52
|
+
id: number;
|
|
53
|
+
code: string;
|
|
54
|
+
}> | null): 'kiosk' | string | undefined;
|
|
55
|
+
/** Stored Size is shared; retail logos render larger than names. */
|
|
56
|
+
export declare function assignmentOverlayRenderSize(size: number, assignment?: Pick<CmShapeAssignment, 'layerType'> | null): number;
|
|
57
|
+
/** Size / rotate / offset / icon color for a linked escalator or elevator. */
|
|
58
|
+
export declare function connectorIconLayout(shape: {
|
|
59
|
+
assignment?: Pick<CmShapeAssignment, 'size' | 'rotate' | 'offsetX' | 'offsetY' | 'textColor'> | null;
|
|
60
|
+
label?: {
|
|
61
|
+
size?: number;
|
|
62
|
+
rotate?: number;
|
|
63
|
+
offsetX?: number;
|
|
64
|
+
offsetY?: number;
|
|
65
|
+
color?: string;
|
|
66
|
+
};
|
|
67
|
+
}): {
|
|
68
|
+
size: number;
|
|
69
|
+
rotate: number;
|
|
70
|
+
offsetX: number;
|
|
71
|
+
offsetY: number;
|
|
72
|
+
iconColor: string | null;
|
|
73
|
+
};
|
|
74
|
+
/** Assigned polygons can overlay name/custom text, a logo, or a v1 amenity/kiosk icon. */
|
|
75
|
+
export declare function assignmentOverlayVisible(assignment: CmShapeAssignment | null | undefined, label?: ShapeLabel | null): boolean;
|
|
76
|
+
/** Fill / label overlay written onto the shape when staff assign on PORTAL. */
|
|
77
|
+
export type BulkAssignPatch = {
|
|
78
|
+
size?: number;
|
|
79
|
+
bgColor?: string | null;
|
|
80
|
+
textColor?: string | null;
|
|
81
|
+
};
|
|
82
|
+
export type BulkAssignFormState = {
|
|
83
|
+
size: number | '';
|
|
84
|
+
bgColor: string;
|
|
85
|
+
textColor: string;
|
|
86
|
+
bgColorMixed: boolean;
|
|
87
|
+
textColorMixed: boolean;
|
|
88
|
+
};
|
|
89
|
+
/** Shared Size / colors for a multi-selection. Mixed values become blank. */
|
|
90
|
+
export declare function bulkAssignFormState(assignments: CmShapeAssignment[]): BulkAssignFormState;
|
|
91
|
+
export declare function applyBulkAssignPatch(assignment: CmShapeAssignment, patch: BulkAssignPatch): CmShapeAssignment;
|
|
92
|
+
export declare function assignmentVisualPatch(shape: Pick<CmShape, 'style' | 'label'>, assignment: CmShapeAssignment, retailer?: MapAssignRetailer | null): {
|
|
93
|
+
style: ShapeStyle;
|
|
94
|
+
label: ShapeLabel;
|
|
95
|
+
};
|
|
96
|
+
export {};
|
|
97
|
+
//# sourceMappingURL=assignment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assignment.d.ts","sourceRoot":"","sources":["../../src/core/assignment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACpB,OAAO,EACP,iBAAiB,EAEjB,iBAAiB,EACjB,SAAS,EACT,UAAU,EACV,UAAU,EAEX,MAAM,SAAS,CAAC;AAGjB,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,2EAA2E;AAC3E,eAAO,MAAM,mBAAmB,KAA0B,CAAC;AAC3D,yFAAyF;AACzF,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,eAAO,MAAM,sBAAsB,EAAE,mBAAmB,EASvD,CAAC;AAWF;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;CACnB,CAQA;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAIA;AAqBD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB,CAElF;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,SAAS,GAAG,mBAAmB,CAK5E;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,SAAS,GAAG,oBAAoB,CAK9E;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,GACd,iBAAiB,CAmBnB;AAED,wEAAwE;AACxE,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,iBAAiB,EAChD,IAAI,GAAE,SAAkB,GACvB,iBAAiB,CAsDnB;AAOD,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,iBAAiB,EAC3B,aAAa,EAAE,OAAO,GACrB,MAAM,CAMR;AAED,wEAAwE;AACxE,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,GAAG,IAAI,GAAG,SAAS,EACjE,UAAU,EAAE,MAAM,GACjB,MAAM,CAIR;AAED,+EAA+E;AAC/E,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,CAAC,GAAG,IAAI,GAAG,SAAS,EACnE,SAAS,EAAE,MAAM,GAChB,MAAM,CAIR;AAED,yEAAyE;AACzE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK5D;AAED,KAAK,sBAAsB,GAAG,IAAI,CAChC,iBAAiB,EACjB,YAAY,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,CACtD,GAAG;IACF,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC;AAEF,uEAAuE;AACvE,wBAAgB,mBAAmB,CACjC,UAAU,EACN,IAAI,CAAC,iBAAiB,EAAE,aAAa,GAAG,WAAW,CAAC,GACpD,IAAI,GACJ,SAAS,EACb,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAC1B,MAAM,GAAG,IAAI,CAOf;AAED,iFAAiF;AACjF,wBAAgB,iBAAiB,CAC/B,UAAU,EACN,IAAI,CAAC,iBAAiB,EAAE,aAAa,GAAG,SAAS,CAAC,GAClD,IAAI,GACJ,SAAS,EACb,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAC1B,MAAM,GAAG,IAAI,CAOf;AAED,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,sBAAsB,GAAG,IAAI,GAAG,SAAS,GACpD,OAAO,CAcT;AASD,2EAA2E;AAC3E,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,EAChD,UAAU,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,EAChD,QAAQ,CAAC,EAAE,iBAAiB,GAAG,IAAI,GAClC,UAAU,CA4BZ;AAED,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,iBAAiB,EAC7B,QAAQ,CAAC,EAAE,iBAAiB,GAAG,IAAI,GAClC,MAAM,GAAG,SAAS,CAYpB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,CAAC,EAAE,iBAAiB,GAAG,IAAI,EACrC,QAAQ,CAAC,EAAE,iBAAiB,GAAG,IAAI,EACnC,KAAK,CAAC,EAAE,UAAU,GAAG,IAAI,GACxB,MAAM,GAAG,SAAS,CAapB;AAED,sEAAsE;AACtE,wBAAgB,uBAAuB,CACrC,UAAU,CAAC,EAAE,iBAAiB,GAAG,IAAI,EACrC,SAAS,CAAC,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,IAAI,GACrD,OAAO,GAAG,MAAM,GAAG,SAAS,CAW9B;AAED,oEAAoE;AACpE,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,CAAC,GAAG,IAAI,GACvD,MAAM,CAIR;AAED,8EAA8E;AAC9E,wBAAgB,mBAAmB,CACjC,KAAK,EAAE;IACL,UAAU,CAAC,EAAE,IAAI,CACf,iBAAiB,EACjB,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,CACxD,GAAG,IAAI,CAAC;IACT,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH,GACA;IACD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAaA;AAED,0FAA0F;AAC1F,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,EAChD,KAAK,CAAC,EAAE,UAAU,GAAG,IAAI,GACxB,OAAO,CAUT;AAoBD,+EAA+E;AAC/E,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,GAAG,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAcF,6EAA6E;AAC7E,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,iBAAiB,EAAE,GAC/B,mBAAmB,CAUrB;AAED,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,iBAAiB,EAC7B,KAAK,EAAE,eAAe,GACrB,iBAAiB,CAOnB;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,EACvC,UAAU,EAAE,iBAAiB,EAC7B,QAAQ,CAAC,EAAE,iBAAiB,GAAG,IAAI,GAClC;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,CAwB1C"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** Stored value for an explicit transparent fill / text color. */
|
|
2
|
+
export declare const TRANSPARENT_COLOR = "transparent";
|
|
3
|
+
/** True when the field is an explicit transparent choice (not an unset inherit). */
|
|
4
|
+
export declare function isTransparentColor(value: string | null | undefined): boolean;
|
|
5
|
+
//# sourceMappingURL=color.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../src/core/color.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAE/C,oFAAoF;AACpF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAG5E"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** Built-in map marker — not a custom image URL. */
|
|
2
|
+
export declare const ENTRANCE_ICON_ID = "entrance";
|
|
3
|
+
export declare const DEFAULT_ENTRANCE_SIZE = 36;
|
|
4
|
+
export declare const MIN_ENTRANCE_SIZE = 8;
|
|
5
|
+
export declare function isEntranceIcon(shape: {
|
|
6
|
+
kind: string;
|
|
7
|
+
label?: {
|
|
8
|
+
imageKey?: string | null;
|
|
9
|
+
} | null;
|
|
10
|
+
}): boolean;
|
|
11
|
+
export declare function clampEntranceSize(size: number): number;
|
|
12
|
+
//# sourceMappingURL=entranceIcon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entranceIcon.d.ts","sourceRoot":"","sources":["../../src/core/entranceIcon.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,eAAO,MAAM,gBAAgB,aAAa,CAAC;AAC3C,eAAO,MAAM,qBAAqB,KAAK,CAAC;AACxC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAEnC,wBAAgB,cAAc,CAAC,KAAK,EAAE;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;CAC7C,GAAG,OAAO,CAEV;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Vec2 } from './types';
|
|
2
|
+
/** Drop duplicate consecutive points and a repeated closing vertex. */
|
|
3
|
+
export declare function uniqueClosedRing(points: Vec2[]): Vec2[];
|
|
4
|
+
/**
|
|
5
|
+
* Illustrator Round Corners: replace each real corner with a circular arc
|
|
6
|
+
* tangent to both walls. The arc stays at the corner (never the long way
|
|
7
|
+
* through the store). Shallow wall bends are left alone.
|
|
8
|
+
*/
|
|
9
|
+
export declare function filletPolygon(points: Vec2[], radius: number): Vec2[];
|
|
10
|
+
//# sourceMappingURL=filletPolygon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filletPolygon.d.ts","sourceRoot":"","sources":["../../src/core/filletPolygon.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,KAAK,IAAI,EAAE,MAAM,SAAS,CAAC;AA+BtD,uEAAuE;AACvE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CASvD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,CA6FpE"}
|
|
@@ -2,10 +2,8 @@ import { MapHost, MapViewerHost } from './types';
|
|
|
2
2
|
/** Which library surface a host should mount. `PORTAL` is the staff editor. */
|
|
3
3
|
export declare function mapSurface(host: MapHost): 'editor' | 'viewer';
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* (v1 hides them for PORTAL and DISPLAY_APP); kiosk origin only on DISPLAY_APP.
|
|
8
|
-
* Search is v2-owned (v1 MapBox has none) and follows the public directory hosts.
|
|
5
|
+
* Viewer chrome. Public website (`WEBSITE` / v1 WP_SITE) is floors + zoom/
|
|
6
|
+
* reset only — no search or amenity strip. Kiosk origin is DISPLAY_APP only.
|
|
9
7
|
*/
|
|
10
8
|
export interface ViewerChrome {
|
|
11
9
|
search: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hostChrome.d.ts","sourceRoot":"","sources":["../../src/core/hostChrome.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEtD,+EAA+E;AAC/E,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAE7D;AAED
|
|
1
|
+
{"version":3,"file":"hostChrome.d.ts","sourceRoot":"","sources":["../../src/core/hostChrome.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEtD,+EAA+E;AAC/E,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAE7D;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;CACrB;AAuBD,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,YAAY,CAE9D;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,aAAa,CAEpE"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { BBox, ImportDiff, ImportReport, ShapeGeometry, ShapeKind, ShapeStyle, ViewBox } from '../types';
|
|
2
2
|
import { SvgPresentationStyle } from './svgStyle';
|
|
3
|
+
/** v1 / Illustrator walking-path ids (`route-path`, `route-path-12`). */
|
|
4
|
+
export declare function isRoutePathLabel(label: string): boolean;
|
|
5
|
+
/** Folder that holds walking paths (`ROUTES`, `route-path`, `WAYFINDING`). */
|
|
6
|
+
export declare function isRouteFolderLabel(label: string): boolean;
|
|
3
7
|
/**
|
|
4
8
|
* Outdoor / base imports only persist interactive polygons (+ walkable/void for
|
|
5
9
|
* autoroute). Decoration stays in the live SVG renderer.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/import/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EAEJ,UAAU,EAEV,YAAY,EACZ,aAAa,EACb,SAAS,EACT,UAAU,EACV,OAAO,EACR,MAAM,UAAU,CAAC;AASlB,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/import/index.ts"],"names":[],"mappings":"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"}
|
package/dist/core/index.d.ts
CHANGED
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
export * from './types';
|
|
2
|
+
export * from './entranceIcon';
|
|
3
|
+
export * from './color';
|
|
4
|
+
export * from './labelAlign';
|
|
5
|
+
export * from './assignment';
|
|
2
6
|
export * from './hostChrome';
|
|
3
7
|
export * from './layerStyles';
|
|
8
|
+
export * from './mediaUrl';
|
|
9
|
+
export * from './outdoorDecoration';
|
|
4
10
|
export * from './geometry';
|
|
11
|
+
export * from './filletPolygon';
|
|
5
12
|
export * from './import';
|
|
6
13
|
export * from './routing/graph-tools';
|
|
7
14
|
export * from './routing/pathfinding';
|
|
8
15
|
export * from './publish';
|
|
9
16
|
export * from './stacking';
|
|
17
|
+
export * from './voids';
|
|
18
|
+
export * from './wheelZoom';
|
|
10
19
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
|