@eyeon/map 2.0.3 → 2.0.5

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.
Files changed (149) hide show
  1. package/dist/assets/MapViewer.css +1 -1
  2. package/dist/assets/index.css +1 -1
  3. package/dist/chunks/MapViewer.js +2558 -1431
  4. package/dist/chunks/MapViewer.js.map +1 -1
  5. package/dist/chunks/stacking.js +1262 -745
  6. package/dist/chunks/stacking.js.map +1 -1
  7. package/dist/chunks/wheelZoom.js +259 -0
  8. package/dist/chunks/wheelZoom.js.map +1 -0
  9. package/dist/core/assignment.d.ts +107 -0
  10. package/dist/core/assignment.d.ts.map +1 -0
  11. package/dist/core/color.d.ts +5 -0
  12. package/dist/core/color.d.ts.map +1 -0
  13. package/dist/core/entranceIcon.d.ts +12 -0
  14. package/dist/core/entranceIcon.d.ts.map +1 -0
  15. package/dist/core/hostChrome.d.ts +2 -4
  16. package/dist/core/hostChrome.d.ts.map +1 -1
  17. package/dist/core/index.d.ts +6 -0
  18. package/dist/core/index.d.ts.map +1 -1
  19. package/dist/core/index.js +161 -89
  20. package/dist/core/labelAlign.d.ts +7 -0
  21. package/dist/core/labelAlign.d.ts.map +1 -0
  22. package/dist/core/layerStyles.d.ts +41 -7
  23. package/dist/core/layerStyles.d.ts.map +1 -1
  24. package/dist/core/outdoorDecoration.d.ts +2 -1
  25. package/dist/core/outdoorDecoration.d.ts.map +1 -1
  26. package/dist/core/publish/index.d.ts +6 -4
  27. package/dist/core/publish/index.d.ts.map +1 -1
  28. package/dist/core/stacking.d.ts +50 -3
  29. package/dist/core/stacking.d.ts.map +1 -1
  30. package/dist/core/types.d.ts +29 -1
  31. package/dist/core/types.d.ts.map +1 -1
  32. package/dist/core/voids.d.ts +41 -0
  33. package/dist/core/voids.d.ts.map +1 -0
  34. package/dist/core/wheelZoom.d.ts +30 -0
  35. package/dist/core/wheelZoom.d.ts.map +1 -0
  36. package/dist/editor/FieldResetButton.d.ts +7 -0
  37. package/dist/editor/FieldResetButton.d.ts.map +1 -0
  38. package/dist/editor/MapEditor.d.ts +12 -2
  39. package/dist/editor/MapEditor.d.ts.map +1 -1
  40. package/dist/editor/canvas/EditorCanvas.d.ts +6 -2
  41. package/dist/editor/canvas/EditorCanvas.d.ts.map +1 -1
  42. package/dist/editor/canvas/OutdoorSvgUnderlay.d.ts +3 -1
  43. package/dist/editor/canvas/OutdoorSvgUnderlay.d.ts.map +1 -1
  44. package/dist/editor/canvas/coords.d.ts +26 -3
  45. package/dist/editor/canvas/coords.d.ts.map +1 -1
  46. package/dist/editor/canvas/editorFill.d.ts +3 -1
  47. package/dist/editor/canvas/editorFill.d.ts.map +1 -1
  48. package/dist/editor/canvas/editorHover.d.ts +4 -0
  49. package/dist/editor/canvas/editorHover.d.ts.map +1 -1
  50. package/dist/editor/canvas/underlayHint.d.ts +8 -0
  51. package/dist/editor/canvas/underlayHint.d.ts.map +1 -1
  52. package/dist/editor/connectorAssignments.d.ts +61 -0
  53. package/dist/editor/connectorAssignments.d.ts.map +1 -1
  54. package/dist/editor/draftOps.d.ts +8 -0
  55. package/dist/editor/draftOps.d.ts.map +1 -1
  56. package/dist/editor/editorSectionReturn.d.ts.map +1 -1
  57. package/dist/editor/ellipseDraw.d.ts +12 -0
  58. package/dist/editor/ellipseDraw.d.ts.map +1 -0
  59. package/dist/editor/entranceIcon.d.ts +15 -0
  60. package/dist/editor/entranceIcon.d.ts.map +1 -0
  61. package/dist/editor/hexColor.d.ts +2 -0
  62. package/dist/editor/hexColor.d.ts.map +1 -1
  63. package/dist/editor/index.css +824 -72
  64. package/dist/editor/index.d.ts +2 -0
  65. package/dist/editor/index.d.ts.map +1 -1
  66. package/dist/editor/index.js +6711 -4161
  67. package/dist/editor/index.js.map +1 -1
  68. package/dist/editor/labelText.d.ts +12 -2
  69. package/dist/editor/labelText.d.ts.map +1 -1
  70. package/dist/editor/labels.d.ts +8 -0
  71. package/dist/editor/labels.d.ts.map +1 -1
  72. package/dist/editor/panels/AssignForm.d.ts +17 -0
  73. package/dist/editor/panels/AssignForm.d.ts.map +1 -0
  74. package/dist/editor/panels/AssignmentStyleFields.d.ts +14 -0
  75. package/dist/editor/panels/AssignmentStyleFields.d.ts.map +1 -0
  76. package/dist/editor/panels/BulkAssignForm.d.ts +11 -0
  77. package/dist/editor/panels/BulkAssignForm.d.ts.map +1 -0
  78. package/dist/editor/panels/CatalogKioskForm.d.ts +18 -0
  79. package/dist/editor/panels/CatalogKioskForm.d.ts.map +1 -0
  80. package/dist/editor/panels/ConnectorAssign.d.ts +6 -2
  81. package/dist/editor/panels/ConnectorAssign.d.ts.map +1 -1
  82. package/dist/editor/panels/CopyToLevelButton.d.ts +10 -0
  83. package/dist/editor/panels/CopyToLevelButton.d.ts.map +1 -0
  84. package/dist/editor/panels/EntranceIconForm.d.ts +11 -0
  85. package/dist/editor/panels/EntranceIconForm.d.ts.map +1 -0
  86. package/dist/editor/panels/Inspector.d.ts +24 -3
  87. package/dist/editor/panels/Inspector.d.ts.map +1 -1
  88. package/dist/editor/panels/LeftRail.d.ts +17 -6
  89. package/dist/editor/panels/LeftRail.d.ts.map +1 -1
  90. package/dist/editor/panels/PreviewOverlay.d.ts +9 -3
  91. package/dist/editor/panels/PreviewOverlay.d.ts.map +1 -1
  92. package/dist/editor/panels/TextLabelForm.d.ts +11 -0
  93. package/dist/editor/panels/TextLabelForm.d.ts.map +1 -0
  94. package/dist/editor/panels/formRows.d.ts +41 -0
  95. package/dist/editor/panels/formRows.d.ts.map +1 -0
  96. package/dist/editor/portalSurface.d.ts +10 -2
  97. package/dist/editor/portalSurface.d.ts.map +1 -1
  98. package/dist/editor/previewDocument.d.ts +2 -1
  99. package/dist/editor/previewDocument.d.ts.map +1 -1
  100. package/dist/editor/railAssignments.d.ts +9 -2
  101. package/dist/editor/railAssignments.d.ts.map +1 -1
  102. package/dist/editor/railKiosks.d.ts +27 -0
  103. package/dist/editor/railKiosks.d.ts.map +1 -0
  104. package/dist/editor/railListCopy.d.ts +31 -0
  105. package/dist/editor/railListCopy.d.ts.map +1 -0
  106. package/dist/editor/routeStubs.d.ts +1 -1
  107. package/dist/editor/routeStubs.d.ts.map +1 -1
  108. package/dist/editor/shapeCopy.d.ts +40 -0
  109. package/dist/editor/shapeCopy.d.ts.map +1 -0
  110. package/dist/editor/shapeSelection.d.ts +6 -0
  111. package/dist/editor/shapeSelection.d.ts.map +1 -0
  112. package/dist/editor/tools.d.ts +12 -2
  113. package/dist/editor/tools.d.ts.map +1 -1
  114. package/dist/fonts/assets.d.ts +4 -0
  115. package/dist/fonts/mapFont.d.ts +5 -0
  116. package/dist/fonts/mapFont.d.ts.map +1 -0
  117. package/dist/fonts/mapFontUrl.d.ts +8 -0
  118. package/dist/fonts/mapFontUrl.d.ts.map +1 -0
  119. package/dist/specialIcons.d.ts +39 -0
  120. package/dist/specialIcons.d.ts.map +1 -0
  121. package/dist/ui/ModernSelect.d.ts.map +1 -1
  122. package/dist/ui/selectSearch.d.ts +3 -0
  123. package/dist/ui/selectSearch.d.ts.map +1 -1
  124. package/dist/viewer/MapViewer.d.ts +14 -1
  125. package/dist/viewer/MapViewer.d.ts.map +1 -1
  126. package/dist/viewer/camera.d.ts +82 -1
  127. package/dist/viewer/camera.d.ts.map +1 -1
  128. package/dist/viewer/components/CameraRig.d.ts +18 -1
  129. package/dist/viewer/components/CameraRig.d.ts.map +1 -1
  130. package/dist/viewer/components/LevelMeshes.d.ts +15 -4
  131. package/dist/viewer/components/LevelMeshes.d.ts.map +1 -1
  132. package/dist/viewer/components/MapScene.d.ts +10 -4
  133. package/dist/viewer/components/MapScene.d.ts.map +1 -1
  134. package/dist/viewer/components/OpeningWell.d.ts +7 -0
  135. package/dist/viewer/components/OpeningWell.d.ts.map +1 -0
  136. package/dist/viewer/components/RouteLine.d.ts.map +1 -1
  137. package/dist/viewer/components/SvgVectorLayer.d.ts +3 -1
  138. package/dist/viewer/components/SvgVectorLayer.d.ts.map +1 -1
  139. package/dist/viewer/components/openingGeometry.d.ts +7 -0
  140. package/dist/viewer/components/openingGeometry.d.ts.map +1 -0
  141. package/dist/viewer/index.css +151 -19
  142. package/dist/viewer/index.js +3 -3
  143. package/dist/viewer/pointer.d.ts +26 -0
  144. package/dist/viewer/pointer.d.ts.map +1 -0
  145. package/dist/viewer/ui/MapControls.d.ts.map +1 -1
  146. package/dist/viewer/ui/RuntimeChrome.d.ts.map +1 -1
  147. package/package.json +4 -2
  148. package/dist/chunks/graph-tools.js +0 -246
  149. package/dist/chunks/graph-tools.js.map +0 -1
@@ -1,92 +1,164 @@
1
- import { D as s, a as o, F as r, I as t, b as i, c as n, d as l, S as p, W as m, e as d, f as c, g as S, h as u, i as h, j as L, k as y, l as I, m as T, n as P, o as A, p as g, q as f, r as b, s as v, t as E, u as R, v as D, w as _, x, y as F, z as w, A as O, B as C, C as N, E as B, G, H as M, J as H, K as k, L as z, M as U, N as V, O as Y, P as K, Q as W, R as j, T as q, U as Q, V as X, X as J, Y as Z, Z as $, _ as aa, $ as ea, a0 as sa, a1 as oa, a2 as ra, a3 as ta, a4 as ia, a5 as na, a6 as la, a7 as pa, a8 as ma, a9 as da, aa as ca, ab as Sa, ac as ua, ad as ha, ae as La, af as ya, ag as Ia, ah as Ta, ai as Pa, aj as Aa, ak as ga, al as fa, am as ba } from "../chunks/stacking.js";
2
- import { a as Ea, b as Ra, c as Da, d as _a, f as xa, i as Fa, o as wa, r as Oa, u as Ca, w as Na } from "../chunks/graph-tools.js";
1
+ import { A as e, C as o, D as r, a as i, b as n, c as t, d as l, E as S, F as p, I as m, e as d, f as E, g as A, L, M as g, h as b, O as c, i as I, j as _, R as u, S as T, k as y, l as h, m as O, T as N, W as v, n as R, o as P, p as D, q as F, r as C, s as f, t as B, u as x, v as G, w, x as M, y as K, z as H, B as V, G as Y, H as k, J as U, K as z, N as W, P as Z, Q as j, U as q, V as X, X as Q, Y as J, Z as $, _ as aa, $ as sa, a0 as ea, a1 as oa, a2 as ra, a3 as ia, a4 as na, a5 as ta, a6 as la, a7 as Sa, a8 as pa, a9 as ma, aa as da, ab as Ea, ac as Aa, ad as La, ae as ga, af as ba, ag as ca, ah as Ia, ai as _a, aj as ua, ak as Ta, al as ya, am as ha, an as Oa, ao as Na, ap as va, aq as Ra, ar as Pa, as as Da, at as Fa, au as Ca, av as fa, aw as Ba, ax as xa, ay as Ga, az as wa, aA as Ma, aB as Ka, aC as Ha, aD as Va, aE as Ya, aF as ka, aG as Ua, aH as za, aI as Wa, aJ as Za, aK as ja, aL as qa, aM as Xa, aN as Qa, aO as Ja, aP as $a, aQ as as, aR as ss, aS as es, aT as os, aU as rs, aV as is, aW as ns, aX as ts, aY as ls, aZ as Ss, a_ as ps, a$ as ms, b0 as ds, b1 as Es, b2 as As, b3 as Ls, b4 as gs, b5 as bs, b6 as cs, b7 as Is, b8 as _s, b9 as us, ba as Ts, bb as ys, bc as hs, bd as Os, be as Ns, bf as vs, bg as Rs, bh as Ps, bi as Ds, bj as Fs, bk as Cs, bl as fs, bm as Bs, bn as xs, bo as Gs, bp as ws, bq as Ms } from "../chunks/stacking.js";
2
+ import { W as Hs, a as Vs, b as Ys, c as ks, d as Us, e as zs, f as Ws, i as Zs, n as js, o as qs, r as Xs, u as Qs, w as Js, g as $s } from "../chunks/wheelZoom.js";
3
3
  export {
4
- s as DEFAULT_THEME,
5
- o as DEFAULT_WELD_TOLERANCE,
6
- r as FLOOR_CHANGE_PENALTY,
7
- t as IDENTITY_MATRIX,
8
- i as IMPORT_DRIFT_THRESHOLD,
9
- n as IMPORT_PERSISTED_KINDS,
10
- l as INTERACTIVE_SHAPE_KINDS,
11
- p as STATIC_LAYER_STYLES,
12
- m as WALKING_PATH_COLOR,
13
- d as angleFromWall,
14
- c as applyMatrix,
15
- S as approximateArc,
16
- u as approximateCubic,
17
- h as approximateQuadratic,
18
- Ea as attachImportedRouteAnchors,
19
- Ra as autoConnectUnitAnchor,
20
- L as bboxOf,
21
- y as bboxUnion,
22
- I as boundsFromStackedLevels,
23
- Da as buildAutoSkeleton,
24
- T as buildGeometryFromPaths,
25
- P as centroid,
26
- A as clampStoreRadius,
27
- g as classifyId,
28
- _a as collapseDuplicateRouteGraph,
29
- f as compareBuildingFloors,
30
- b as compileDocument,
31
- v as compileGraph,
32
- E as defaultViewerLevelId,
33
- R as diffImport,
34
- D as distance,
35
- _ as expandBounds,
36
- x as filletPolygon,
37
- F as findNearestAmenityPath,
38
- w as findPath,
39
- xa as findWeldCandidates,
40
- O as flipY,
41
- C as floorSwitcherDisplayLevels,
42
- N as floorSwitcherLevels,
43
- B as geometryBBox,
44
- G as geometryCentroid,
45
- Fa as importRoutePaths,
46
- M as importSvg,
47
- H as inlineSvgStyles,
48
- k as isGeometrySpaceStale,
49
- z as isIdentityMatrix,
50
- U as isInteractiveGroupLabel,
51
- V as isLayerContainerLabel,
52
- Y as isMapViewerHost,
53
- K as isNonInteractiveGroupLabel,
54
- W as isOutdoorLevel,
55
- j as isRouteFolderLabel,
56
- q as isRoutePathLabel,
57
- Q as isStoreFolderLabel,
58
- X as mapSurface,
59
- J as mergePresentationStyle,
60
- Z as mergeTheme,
61
- $ as multiplyMatrix,
62
- aa as nearestPointOnPolyline,
63
- ea as normalizeGeometrySpace,
64
- sa as normalizeLayerLabel,
65
- oa as normalizeLayerName,
66
- ra as normalizePublishedDocument,
67
- wa as outdoorDecorationFromSvg,
68
- ta as parseSvgString,
69
- ia as parseTransform,
70
- na as parseViewBox,
71
- la as pathToPolygons,
72
- pa as pointInPolygon,
73
- ma as pointInPolygons,
74
- da as projectOntoSegment,
75
- ca as readPresentationStyle,
76
- Sa as resolveFetchUrl,
77
- ua as resolveLayerStyle,
78
- Oa as routeAnchorKindForShape,
79
- ha as shouldShowFloorSwitcher,
80
- La as snapAngle,
81
- ya as svgIdsOwnedByShapes,
82
- Ia as tokenizePathData,
83
- Ta as transformPathD,
84
- Pa as unionViewBox,
85
- Aa as uniqueClosedRing,
86
- Ca as unitAnchorFromShape,
87
- ga as viewBoxToBounds,
88
- fa as viewerChrome,
89
- ba as viewerLevelStack,
90
- Na as weldAnchors
4
+ e as ASSIGNMENT_LAYER_TYPES,
5
+ o as CONNECTOR_ICON_SIZE,
6
+ r as DEFAULT_ASSIGNMENT_SIZE,
7
+ i as DEFAULT_ENTRANCE_SIZE,
8
+ n as DEFAULT_LABEL_ALIGN,
9
+ t as DEFAULT_THEME,
10
+ l as DEFAULT_WELD_TOLERANCE,
11
+ S as ENTRANCE_ICON_ID,
12
+ p as FLOOR_CHANGE_PENALTY,
13
+ m as IDENTITY_MATRIX,
14
+ d as IMPORT_DRIFT_THRESHOLD,
15
+ E as IMPORT_PERSISTED_KINDS,
16
+ A as INTERACTIVE_SHAPE_KINDS,
17
+ L as LABEL_ALIGNS,
18
+ g as MAP_NO_FLOORS_MESSAGE,
19
+ b as MIN_ENTRANCE_SIZE,
20
+ c as OPENING_VOID_FILL,
21
+ I as OPENING_VOID_MARK,
22
+ _ as OPENING_VOID_STROKE,
23
+ u as RETAIL_LOGO_RENDER_SCALE,
24
+ T as SLAB_SHAPE_KINDS,
25
+ y as STATIC_LAYER_KEYS,
26
+ h as STATIC_LAYER_STYLES,
27
+ O as STATIC_LAYER_THEME_KEYS,
28
+ N as TRANSPARENT_COLOR,
29
+ v as WALKING_PATH_COLOR,
30
+ Hs as WHEEL_ZOOM_BASE,
31
+ Vs as WHEEL_ZOOM_SPEED,
32
+ R as amenityAssignedName,
33
+ P as angleFromWall,
34
+ D as applyBulkAssignPatch,
35
+ F as applyLevelTransform,
36
+ C as applyMatrix,
37
+ f as approximateArc,
38
+ B as approximateCubic,
39
+ x as approximateQuadratic,
40
+ G as assignNumberFromDraft,
41
+ w as assignmentDisplayText,
42
+ M as assignmentHasTarget,
43
+ K as assignmentOverlayImageUrl,
44
+ H as assignmentOverlayRenderSize,
45
+ V as assignmentOverlayVisible,
46
+ Y as assignmentSpecialIconId,
47
+ k as assignmentVisualPatch,
48
+ Ys as attachImportedRouteAnchors,
49
+ ks as autoConnectUnitAnchor,
50
+ U as bboxOf,
51
+ z as bboxUnion,
52
+ W as boundsFromStackedLevels,
53
+ Us as buildAutoSkeleton,
54
+ Z as buildGeometryFromPaths,
55
+ j as bulkAssignFormState,
56
+ q as centroid,
57
+ X as clampEntranceSize,
58
+ Q as clampStoreRadius,
59
+ J as classifyId,
60
+ zs as collapseDuplicateRouteGraph,
61
+ $ as commitAssignNumberDraft,
62
+ aa as compareBuildingFloors,
63
+ sa as compileDocument,
64
+ ea as compileGraph,
65
+ oa as connectorIconLayout,
66
+ ra as defaultLayerTypeForKind,
67
+ ia as defaultTargetTypeForKind,
68
+ na as defaultViewerLevelId,
69
+ ta as diffImport,
70
+ la as distance,
71
+ Sa as emptyShapeAssignment,
72
+ pa as expandBounds,
73
+ ma as filletPolygon,
74
+ da as findNearestAmenityPath,
75
+ Ea as findPath,
76
+ Ws as findWeldCandidates,
77
+ Aa as flipY,
78
+ La as floorSwitcherDisplayLevels,
79
+ ga as floorSwitcherLevels,
80
+ ba as geometryBBox,
81
+ ca as geometryCentroid,
82
+ Ia as hasBuildingFloors,
83
+ _a as holeRingForOuter,
84
+ ua as holesOverlappingOuter,
85
+ Zs as importRoutePaths,
86
+ Ta as importSvg,
87
+ ya as inlineSvgStyles,
88
+ ha as isActiveVoidShape,
89
+ Oa as isAssignmentLayerType,
90
+ Na as isEntranceIcon,
91
+ va as isGeometrySpaceStale,
92
+ Ra as isIdentityMatrix,
93
+ Pa as isInteractiveGroupLabel,
94
+ Da as isLayerContainerLabel,
95
+ Fa as isMapViewerHost,
96
+ Ca as isNonInteractiveGroupLabel,
97
+ fa as isOutdoorLevel,
98
+ Ba as isRouteFolderLabel,
99
+ xa as isRoutePathLabel,
100
+ Ga as isSlabShapeKind,
101
+ wa as isStoreFolderLabel,
102
+ Ma as isTransparentColor,
103
+ Ka as isVoidKind,
104
+ Ha as kioskAssignedName,
105
+ Va as labelAlignX,
106
+ Ya as labelSvgTextAnchor,
107
+ ka as levelHasVoids,
108
+ Ua as mapSurface,
109
+ za as mergePresentationStyle,
110
+ Wa as mergeTheme,
111
+ Za as multiplyMatrix,
112
+ ja as nearestPointOnPolyline,
113
+ qa as nextLowerBuildingFloor,
114
+ js as nextZoomFromWheel,
115
+ Xa as normalizeGeometrySpace,
116
+ Qa as normalizeLabelAlign,
117
+ Ja as normalizeLayerLabel,
118
+ $a as normalizeLayerName,
119
+ as as normalizePublishedDocument,
120
+ qs as outdoorDecorationFromSvg,
121
+ ss as outdoorSvgSuppressIds,
122
+ es as parseKioskIdInput,
123
+ os as parseShapeAssignment,
124
+ rs as parseSvgString,
125
+ is as parseTransform,
126
+ ns as parseViewBox,
127
+ ts as pathToPolygons,
128
+ ls as pointInPolygon,
129
+ Ss as pointInPolygons,
130
+ ps as polygonBBox,
131
+ ms as polygonSignedArea,
132
+ ds as polygonsOverlap,
133
+ Es as projectOntoSegment,
134
+ As as publishedShapeLabel,
135
+ Ls as readPresentationStyle,
136
+ gs as resolveFetchUrl,
137
+ bs as resolveLayerStyle,
138
+ cs as resolveStaticLayerKey,
139
+ Is as resolvedAssignmentBgColor,
140
+ _s as resolvedAssignmentTextColor,
141
+ us as retailerOptionLabel,
142
+ Ts as revealedBuildingFloors,
143
+ ys as reversedRing,
144
+ Xs as routeAnchorKindForShape,
145
+ hs as sceneBoundsFromBBox,
146
+ Os as shouldShowFloorSwitcher,
147
+ Ns as snapAngle,
148
+ vs as staticLayerHouseColor,
149
+ Rs as staticLayerThemeDefaults,
150
+ Ps as svgIdsOwnedByShapes,
151
+ Ds as tokenizePathData,
152
+ Fs as transformPathD,
153
+ Cs as unionViewBox,
154
+ fs as uniqueClosedRing,
155
+ Qs as unitAnchorFromShape,
156
+ Bs as viewBoxToBounds,
157
+ xs as viewerChrome,
158
+ Gs as viewerLevelIdAfterShapeSelect,
159
+ ws as viewerLevelStack,
160
+ Ms as voidPolygonsOnLevel,
161
+ Js as weldAnchors,
162
+ $s as wheelDollyScale
91
163
  };
92
164
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ import { BBox, LabelAlign } from './types';
2
+ export declare const LABEL_ALIGNS: readonly ["left", "center", "right"];
3
+ export declare const DEFAULT_LABEL_ALIGN: LabelAlign;
4
+ export declare function normalizeLabelAlign(value: unknown): LabelAlign;
5
+ export declare function labelAlignX(box: BBox, align: LabelAlign): number;
6
+ export declare function labelSvgTextAnchor(align: LabelAlign): 'start' | 'middle' | 'end';
7
+ //# sourceMappingURL=labelAlign.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labelAlign.d.ts","sourceRoot":"","sources":["../../src/core/labelAlign.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,YAAY,sCAAuC,CAAC;AACjE,eAAO,MAAM,mBAAmB,EAAE,UAAqB,CAAC;AAExD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAE9D;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,CAIhE;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,UAAU,GAChB,OAAO,GAAG,QAAQ,GAAG,KAAK,CAI5B"}
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Code-only static layer styling for recognized SVG layer-name prefixes.
3
- * Never loaded from or saved to portal / database theme settings — mirrors
4
- * v1 `staticMapLayerSettings` in `@eyeon/threejs-map`.
2
+ * House styles for recognized outdoor SVG layer-name prefixes.
3
+ * Defaults stay in this file (v1 `staticMapLayerSettings`). Settings may
4
+ * override the colors and persist them on the map theme; Reset restores these.
5
5
  */
6
6
  export interface StaticLayerStyle {
7
7
  fill?: string;
@@ -12,28 +12,52 @@ export interface StaticLayerStyle {
12
12
  }
13
13
  /**
14
14
  * v1 walking-path has no portal setting — it keeps the SVG fill, and every
15
- * published mall file uses this icy walkway color. v2 locks the same hex.
15
+ * published mall file uses this icy walkway color. v2 defaults to the same hex.
16
16
  */
17
17
  export declare const WALKING_PATH_COLOR = "#E9F7FC";
18
+ export declare const STATIC_LAYER_KEYS: readonly ["green-area", "water-area", "parking-lane", "parking-line", "parking-icon", "walking-path"];
19
+ export type StaticLayerKey = (typeof STATIC_LAYER_KEYS)[number];
20
+ /**
21
+ * Theme field that Settings uses to override a house layer.
22
+ * `parking-line` stays a house stroke only — it is not an assignable shape
23
+ * and is omitted from Settings.
24
+ */
25
+ export declare const STATIC_LAYER_THEME_KEYS: {
26
+ readonly 'green-area': "GREEN_AREA_COLOR";
27
+ readonly 'water-area': "WATER_COLOR";
28
+ readonly 'parking-lane': "PARKING_LANE_COLOR";
29
+ readonly 'parking-icon': "PARKING_ICON_COLOR";
30
+ readonly 'walking-path': "WALKABLE_COLOR";
31
+ };
32
+ export type StaticLayerThemeKey = (typeof STATIC_LAYER_THEME_KEYS)[keyof typeof STATIC_LAYER_THEME_KEYS];
33
+ export type StaticLayerTheme = Partial<Record<StaticLayerThemeKey, string>>;
18
34
  /**
19
35
  * Prefix → house style. Matching is normalized so `parking-lane`,
20
36
  * `parking_lane`, and `parking-lanes` all resolve to the same entry.
21
37
  */
22
- export declare const STATIC_LAYER_STYLES: Record<string, StaticLayerStyle>;
38
+ export declare const STATIC_LAYER_STYLES: Record<StaticLayerKey, StaticLayerStyle>;
39
+ /** Built-in fill/stroke for a reserved outdoor layer. */
40
+ export declare function staticLayerHouseColor(key: StaticLayerKey): string;
41
+ /** Theme defaults that match the code house colors. */
42
+ export declare function staticLayerThemeDefaults(): Record<StaticLayerThemeKey, string>;
23
43
  /** Collapse punctuation so `parking_lane_2` and `parking-lanes` compare as words. */
24
44
  export declare function normalizeLayerName(label: string): string;
45
+ export declare function resolveStaticLayerKey(layerName: string | null | undefined): StaticLayerKey | null;
25
46
  /**
26
47
  * Resolve a static house style from an SVG element / group id.
27
48
  * Returns null when the name is not a reserved decoration layer.
28
49
  *
50
+ * Optional `theme` overlays Settings colors on fill. Omit it to keep
51
+ * the code house colors.
52
+ *
29
53
  * Matches when the normalized name equals the key, starts with the key as a
30
54
  * word (`parking lane 2`), or is a simple plural (`parking lanes`).
31
55
  */
32
- export declare function resolveLayerStyle(layerName: string | null | undefined): StaticLayerStyle | null;
56
+ export declare function resolveLayerStyle(layerName: string | null | undefined, theme?: StaticLayerTheme | null): StaticLayerStyle | null;
33
57
  /**
34
58
  * sourceSvgId values the live outdoor SVG should skip because `cm_shapes`
35
59
  * already owns them. Static house layers stay in the SVG so walking-path
36
- * (and parking / green) keep their code colors even when an older import
60
+ * (and parking / green) keep their colors even when an older import
37
61
  * also persisted a walkable row.
38
62
  */
39
63
  export declare function svgIdsOwnedByShapes(shapes: Iterable<{
@@ -41,4 +65,14 @@ export declare function svgIdsOwnedByShapes(shapes: Iterable<{
41
65
  }>, options?: {
42
66
  omitStaticLayers?: boolean;
43
67
  }): Set<string>;
68
+ /**
69
+ * Outdoor SVG ids the default map must skip. Interactive / imported ids from
70
+ * every level are hidden so a combined base SVG cannot keep drawing another
71
+ * floor. House decoration layers (parking, walking-path, green) stay visible.
72
+ */
73
+ export declare function outdoorSvgSuppressIds(levels: Array<{
74
+ shapes: Iterable<{
75
+ sourceSvgId?: string | null;
76
+ }>;
77
+ }>): Set<string>;
44
78
  //# sourceMappingURL=layerStyles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"layerStyles.d.ts","sourceRoot":"","sources":["../../src/core/layerStyles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAgChE,CAAC;AAEF,qFAAqF;AACrF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMxD;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,gBAAgB,GAAG,IAAI,CAgB/F;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,QAAQ,CAAC;IAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,EACjD,OAAO,CAAC,EAAE;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAE,GACvC,GAAG,CAAC,MAAM,CAAC,CAUb"}
1
+ {"version":3,"file":"layerStyles.d.ts","sourceRoot":"","sources":["../../src/core/layerStyles.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAE5C,eAAO,MAAM,iBAAiB,uGAOpB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhE;;;;GAIG;AACH,eAAO,MAAM,uBAAuB;;;;;;CAMwB,CAAC;AAE7D,MAAM,MAAM,mBAAmB,GAC7B,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,OAAO,uBAAuB,CAAC,CAAC;AACzE,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,CAAC;AAE5E;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,cAAc,EAAE,gBAAgB,CAgCxE,CAAC;AAEF,yDAAyD;AACzD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM,CAGjE;AAED,uDAAuD;AACvD,wBAAgB,wBAAwB,IAAI,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAQ9E;AAED,qFAAqF;AACrF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMxD;AAWD,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACnC,cAAc,GAAG,IAAI,CAUvB;AA0BD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACpC,KAAK,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAC9B,gBAAgB,GAAG,IAAI,CAIzB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,QAAQ,CAAC;IAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,EACjD,OAAO,CAAC,EAAE;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAE,GACvC,GAAG,CAAC,MAAM,CAAC,CAUb;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,QAAQ,CAAC;QAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;CACnD,CAAC,GACD,GAAG,CAAC,MAAM,CAAC,CAKb"}
@@ -1,3 +1,4 @@
1
+ import { StaticLayerTheme } from './layerStyles';
1
2
  export interface OutdoorDecorationPath {
2
3
  id: string;
3
4
  d: string;
@@ -12,5 +13,5 @@ export interface OutdoorDecorationPath {
12
13
  * non-interactive art. Interactive / store folders stay out — those are
13
14
  * `cm_shapes` rows.
14
15
  */
15
- export declare function outdoorDecorationFromSvg(svgText: string, suppressIds?: ReadonlySet<string>): OutdoorDecorationPath[];
16
+ export declare function outdoorDecorationFromSvg(svgText: string, suppressIds?: ReadonlySet<string>, theme?: StaticLayerTheme | null): OutdoorDecorationPath[];
16
17
  //# sourceMappingURL=outdoorDecoration.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"outdoorDecoration.d.ts","sourceRoot":"","sources":["../../src/core/outdoorDecoration.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAChC,qBAAqB,EAAE,CAyBzB"}
1
+ {"version":3,"file":"outdoorDecoration.d.ts","sourceRoot":"","sources":["../../src/core/outdoorDecoration.ts"],"names":[],"mappings":"AAOA,OAAO,EAAqB,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEzE,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,EACjC,KAAK,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAC9B,qBAAqB,EAAE,CAyBzB"}
@@ -1,4 +1,4 @@
1
- import { CmAmenityCatalogItem, CmAnchor, CmBuilding, CmConnector, CmLevel, CmResponsiveOverride, CmRouteEdge, CmShape, CmShapeAssignment, PublishedDocument, ThemeDefaults, ViewBox } from '../types';
1
+ import { CmAmenityCatalogItem, CmAnchor, CmBuilding, CmConnector, CmLevel, CmResponsiveOverride, CmRouteEdge, CmShape, CmShapeAssignment, MapAssignRetailer, PublishedDocument, ThemeDefaults, ViewBox } from '../types';
2
2
  export interface PublishInput {
3
3
  revisionId: number;
4
4
  revisionNumber: number;
@@ -16,6 +16,8 @@ export interface PublishInput {
16
16
  connectors: CmConnector[];
17
17
  amenities: CmAmenityCatalogItem[];
18
18
  responsiveOverrides: CmResponsiveOverride[];
19
+ /** Center retailers — used to bake retail_logo URLs the way v1 looks them up at draw time. */
20
+ retailers?: MapAssignRetailer[];
19
21
  /** Resolve S3 key → CDN URL for level source SVGs. */
20
22
  resolveSvgUrl?: (key: string | null) => string | null;
21
23
  publishedAt?: string;
@@ -26,9 +28,9 @@ export interface PublishInput {
26
28
  */
27
29
  export declare function compileDocument(input: PublishInput): PublishedDocument;
28
30
  /**
29
- * Heal a document that was compiled before the Y-flip removal. Viewer hosts
30
- * load `cm_revisions` JSON as-is (they never re-run `compileDocument`), so
31
- * stale polygons would otherwise render upside down relative to the editor.
31
+ * Heal a document that was compiled before the Y-flip removal, and drop
32
+ * leftover store names on unassigned polygons. Viewer hosts load
33
+ * `cm_revisions` JSON as-is (they never re-run `compileDocument`).
32
34
  */
33
35
  export declare function normalizePublishedDocument(doc: PublishedDocument): PublishedDocument;
34
36
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/publish/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,QAAQ,EACR,UAAU,EACV,WAAW,EACX,OAAO,EACP,oBAAoB,EACpB,WAAW,EACX,OAAO,EACP,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,OAAO,EACR,MAAM,UAAU,CAAC;AAKlB,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,OAAO,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,UAAU,EAAE,WAAW,EAAE,CAAC;IAC1B,SAAS,EAAE,oBAAoB,EAAE,CAAC;IAClC,mBAAmB,EAAE,oBAAoB,EAAE,CAAC;IAC5C,sDAAsD;IACtD,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,KAAK,MAAM,GAAG,IAAI,CAAC;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,iBAAiB,CA8DtE;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,iBAAiB,GACrB,iBAAiB,CAmBnB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/publish/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,QAAQ,EACR,UAAU,EACV,WAAW,EACX,OAAO,EACP,oBAAoB,EACpB,WAAW,EACX,OAAO,EACP,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,OAAO,EACR,MAAM,UAAU,CAAC;AAMlB,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,OAAO,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,UAAU,EAAE,WAAW,EAAE,CAAC;IAC1B,SAAS,EAAE,oBAAoB,EAAE,CAAC;IAClC,mBAAmB,EAAE,oBAAoB,EAAE,CAAC;IAC5C,8FAA8F;IAC9F,SAAS,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAChC,sDAAsD;IACtD,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,KAAK,MAAM,GAAG,IAAI,CAAC;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,iBAAiB,CAuEtE;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,iBAAiB,GACrB,iBAAiB,CAuBnB"}
@@ -1,4 +1,4 @@
1
- import { LevelKind, PublishedLevel, ViewBox } from './types';
1
+ import { BBox, LevelKind, LevelTransform, PublishedLevel, ViewBox } from './types';
2
2
  export interface StackLevel {
3
3
  id: number;
4
4
  kind: LevelKind;
@@ -29,11 +29,44 @@ export declare function isOutdoorLevel(level: {
29
29
  * Persistent base + optional building-floor overlay.
30
30
  * Outdoor/base is never dropped when a floor is selected.
31
31
  * Selecting Outdoor hides building floors (base stays).
32
+ * Only one building floor is shown at a time.
32
33
  */
33
- export declare function viewerLevelStack<T extends {
34
+ export declare function viewerLevelStack<T extends StackLevel & {
35
+ shapes?: Array<{
36
+ kind: string;
37
+ orphanedAt?: string | null;
38
+ }>;
39
+ }>(levels: T[], activeLevelId: number | null): T[];
40
+ /**
41
+ * Building floors visible through openings on `active`, lowest first.
42
+ * Each step requires the floor above it to have at least one opening, so a
43
+ * three-storey atrium keeps looking down until a solid deck stops it.
44
+ */
45
+ export declare function revealedBuildingFloors<T extends StackLevel & {
46
+ shapes?: Array<{
47
+ kind: string;
48
+ orphanedAt?: string | null;
49
+ }>;
50
+ }>(levels: T[], activeLevelId: number | null): T[];
51
+ /** Floor immediately below the active building floor, if an opening looks through. */
52
+ export declare function nextLowerBuildingFloor<T extends StackLevel & {
53
+ shapes?: Array<{
54
+ kind: string;
55
+ orphanedAt?: string | null;
56
+ }>;
57
+ }>(levels: T[], activeLevelId: number | null): T | null;
58
+ /**
59
+ * Clicking an outdoor shape must not switch the viewer off the current
60
+ * building floor. Outdoor is already stacked under every floor on the
61
+ * default assign map, so changing `activeLevelId` to Outdoor hides the
62
+ * floor the staff were managing.
63
+ */
64
+ export declare function viewerLevelIdAfterShapeSelect(levels: Array<{
34
65
  id: number;
35
66
  kind: string;
36
- }>(levels: T[], activeLevelId: number | null): T[];
67
+ ordering: number;
68
+ levelIndex: number;
69
+ }>, currentLevelId: number | null, clickedLevelId: number): number;
37
70
  /** Building floors only, same order as the admin Floors list. */
38
71
  export declare function floorSwitcherLevels<T extends StackLevel>(levels: T[]): T[];
39
72
  /**
@@ -44,6 +77,11 @@ export declare function floorSwitcherLevels<T extends StackLevel>(levels: T[]):
44
77
  export declare function floorSwitcherDisplayLevels<T extends StackLevel>(levels: T[]): T[];
45
78
  /** Hide the map floor list when there is only one building floor. */
46
79
  export declare function shouldShowFloorSwitcher<T extends StackLevel>(levels: T[]): boolean;
80
+ /** Building floors only — Outdoor does not count. */
81
+ export declare function hasBuildingFloors(levels: Array<{
82
+ kind: string;
83
+ }>): boolean;
84
+ export declare const MAP_NO_FLOORS_MESSAGE = "This map doesn\u2019t have any floors yet.";
47
85
  /**
48
86
  * Prefer the last building floor in admin Floors order (bottom of the list).
49
87
  * The list stays upper-to-ground top-to-bottom; visitors should land on ground.
@@ -55,6 +93,15 @@ export declare function defaultViewerLevelId(levels: Array<{
55
93
  levelIndex: number;
56
94
  }>): number | null;
57
95
  export declare function viewBoxToBounds(viewbox: ViewBox): SceneBounds;
96
+ /** Match three.js group compose: scale, then rotate about origin, then translate. */
97
+ export declare function applyLevelTransform(point: {
98
+ x: number;
99
+ y: number;
100
+ }, transform: LevelTransform): {
101
+ x: number;
102
+ y: number;
103
+ };
104
+ export declare function sceneBoundsFromBBox(bbox: BBox, transform?: LevelTransform | null): SceneBounds;
58
105
  export declare function expandBounds(target: SceneBounds, next: SceneBounds): SceneBounds;
59
106
  export declare function boundsFromStackedLevels(levels: PublishedLevel[], activeLevelId: number | null, baseViewbox?: ViewBox | null): SceneBounds;
60
107
  export declare function unionViewBox(primary: ViewBox | null | undefined, secondary: ViewBox | null | undefined): ViewBox;
@@ -1 +1 @@
1
- {"version":3,"file":"stacking.d.ts","sourceRoot":"","sources":["../../src/core/stacking.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElE,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,6DAA6D;AAC7D,wBAAgB,qBAAqB,CACnC,CAAC,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAC3C,CAAC,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC1C,MAAM,CAER;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAE/D;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EACrE,MAAM,EAAE,CAAC,EAAE,EACX,aAAa,EAAE,MAAM,GAAG,IAAI,GAC3B,CAAC,EAAE,CAeL;AAED,iEAAiE;AACjE,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAK1E;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAEjF;AAED,qEAAqE;AACrE,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,CAElF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,GAChF,MAAM,GAAG,IAAI,CAEf;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,CAU7D;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,GAAG,WAAW,CAchF;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,cAAc,EAAE,EACxB,aAAa,EAAE,MAAM,GAAG,IAAI,EAC5B,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI,GAC3B,WAAW,CA2Bb;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,EACnC,SAAS,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,GACpC,OAAO,CAST"}
1
+ {"version":3,"file":"stacking.d.ts","sourceRoot":"","sources":["../../src/core/stacking.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ export type MapVersion = 1 | 2;
12
12
  * in the geometry canvas and grid.
13
13
  * - `PORTAL_ASSIGN` — admin editor default center (`MapViewer` for click-to-
14
14
  * assign). Floors + zoom only — no search / amenities.
15
- * - `WEBSITE` — public website (`MapViewer`).
15
+ * - `WEBSITE` — public website / v1 WP_SITE (`MapViewer`). Floors + zoom only.
16
16
  * - `DISPLAY_APP` — kiosk (`MapViewer`).
17
17
  */
18
18
  export type MapHost = 'PORTAL' | 'PORTAL_ASSIGN' | 'WEBSITE' | 'DISPLAY_APP';
@@ -28,6 +28,20 @@ export type ConnectorKind = 'escalator' | 'elevator' | 'stairs' | 'ramp' | 'trav
28
28
  export type ConnectorDirection = 'up' | 'down' | 'both';
29
29
  export type UnitStatus = 'occupied' | 'vacant' | 'coming_soon' | 'under_renovation';
30
30
  export type AssignmentTargetType = 'retailer' | 'amenity' | 'kiosk' | 'none';
31
+ /** How a linked retailer / amenity / kiosk is drawn on the polygon (v1 layer_type). */
32
+ export type AssignmentLayerType = 'retail_name' | 'retail_logo' | 'retail_text' | 'kiosk' | 'amenity' | 'connector' | 'custom_text' | 'custom_image';
33
+ /** Center retailer for the PORTAL assign dropdown. */
34
+ export interface MapAssignRetailer {
35
+ id: number;
36
+ name: string;
37
+ location?: string | null;
38
+ logoUrl?: string | null;
39
+ }
40
+ /** Display-app kiosk row. Assign uses a Name; the numeric ID is owned by display_kiosks. */
41
+ export interface MapAssignKiosk {
42
+ id: number;
43
+ name: string;
44
+ }
31
45
  export type ShapeOrigin = 'import' | 'manual';
32
46
  export type DeviceType = 'display_app' | 'desktop' | 'tablet' | 'mobile';
33
47
  export type MapRenderMode = '2D' | '3D';
@@ -71,6 +85,7 @@ export interface ShapeStyle {
71
85
  extrudeHeight?: number;
72
86
  transparent?: boolean;
73
87
  }
88
+ export type LabelAlign = 'left' | 'center' | 'right';
74
89
  export interface ShapeLabel {
75
90
  text?: string;
76
91
  imageKey?: string;
@@ -79,6 +94,7 @@ export interface ShapeLabel {
79
94
  offsetX?: number;
80
95
  offsetY?: number;
81
96
  color?: string;
97
+ align?: LabelAlign;
82
98
  autoFit?: boolean;
83
99
  }
84
100
  export interface LevelTransform {
@@ -107,6 +123,8 @@ export interface ThemeDefaults {
107
123
  GREEN_AREA_COLOR: string;
108
124
  WATER_COLOR: string;
109
125
  WALKABLE_COLOR: string;
126
+ PARKING_LANE_COLOR: string;
127
+ PARKING_ICON_COLOR: string;
110
128
  KIOSK_SIZE: number;
111
129
  ZOOM_STEP: number;
112
130
  CAMERA_MAX_DISTANCE: number;
@@ -176,6 +194,16 @@ export interface CmShapeAssignment {
176
194
  unitNumber: string | null;
177
195
  customLabel: string | null;
178
196
  customImageKey: string | null;
197
+ /** v1 `layer_type` — name, logo, custom text, amenity icon, etc. */
198
+ layerType: AssignmentLayerType;
199
+ size: number;
200
+ rotate: number;
201
+ offsetX: number;
202
+ offsetY: number;
203
+ bgColor: string | null;
204
+ textColor: string | null;
205
+ /** Baked onto `ShapeLabel.align` for custom text; not a DB column. */
206
+ align?: LabelAlign;
179
207
  }
180
208
  export interface CmAnchor {
181
209
  id: number;