@eyeon/map 2.0.1 → 2.0.3
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/README.md +18 -1
- package/dist/assets/MapViewer.css +1 -1
- package/dist/assets/index.css +1 -1
- package/dist/chunks/MapViewer.js +1988 -358
- package/dist/chunks/MapViewer.js.map +1 -1
- package/dist/chunks/graph-tools.js +202 -109
- package/dist/chunks/graph-tools.js.map +1 -1
- package/dist/chunks/stacking.js +1426 -0
- package/dist/chunks/stacking.js.map +1 -0
- package/dist/core/filletPolygon.d.ts +10 -0
- package/dist/core/filletPolygon.d.ts.map +1 -0
- package/dist/core/geometry/index.d.ts +41 -4
- package/dist/core/geometry/index.d.ts.map +1 -1
- package/dist/core/hostChrome.d.ts +20 -0
- package/dist/core/hostChrome.d.ts.map +1 -0
- package/dist/core/import/index.d.ts +52 -3
- package/dist/core/import/index.d.ts.map +1 -1
- package/dist/core/import/svgStyle.d.ts +21 -0
- package/dist/core/import/svgStyle.d.ts.map +1 -0
- package/dist/core/import/svgTransform.d.ts +49 -0
- package/dist/core/import/svgTransform.d.ts.map +1 -0
- package/dist/core/index.d.ts +6 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +89 -279
- package/dist/core/index.js.map +1 -1
- package/dist/core/layerStyles.d.ts +44 -0
- package/dist/core/layerStyles.d.ts.map +1 -0
- 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 +8 -2
- package/dist/core/publish/index.d.ts.map +1 -1
- package/dist/core/routing/graph-tools.d.ts +28 -2
- 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 +61 -0
- package/dist/core/stacking.d.ts.map +1 -0
- package/dist/core/types.d.ts +31 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/editor/MapEditor.d.ts +28 -16
- package/dist/editor/MapEditor.d.ts.map +1 -1
- package/dist/editor/canvas/EditorCanvas.d.ts +56 -6
- package/dist/editor/canvas/EditorCanvas.d.ts.map +1 -1
- package/dist/editor/canvas/OutdoorSvgUnderlay.d.ts +7 -0
- package/dist/editor/canvas/OutdoorSvgUnderlay.d.ts.map +1 -0
- package/dist/editor/canvas/coords.d.ts +51 -0
- package/dist/editor/canvas/coords.d.ts.map +1 -0
- package/dist/editor/canvas/editorFill.d.ts +10 -0
- package/dist/editor/canvas/editorFill.d.ts.map +1 -0
- package/dist/editor/canvas/editorHover.d.ts +14 -0
- package/dist/editor/canvas/editorHover.d.ts.map +1 -0
- package/dist/editor/canvas/underlayHint.d.ts +5 -0
- package/dist/editor/canvas/underlayHint.d.ts.map +1 -0
- package/dist/editor/connectorAssignments.d.ts +64 -0
- package/dist/editor/connectorAssignments.d.ts.map +1 -0
- package/dist/editor/draftOps.d.ts +22 -0
- package/dist/editor/draftOps.d.ts.map +1 -0
- package/dist/editor/editorSectionReturn.d.ts +12 -0
- package/dist/editor/editorSectionReturn.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 +54 -0
- package/dist/editor/geometryEdit.d.ts.map +1 -0
- package/dist/editor/hexColor.d.ts +4 -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 +1497 -143
- package/dist/editor/index.d.ts +9 -3
- package/dist/editor/index.d.ts.map +1 -1
- package/dist/editor/index.js +6377 -601
- package/dist/editor/index.js.map +1 -1
- package/dist/editor/labelText.d.ts +15 -0
- package/dist/editor/labelText.d.ts.map +1 -0
- package/dist/editor/labels.d.ts +5 -0
- package/dist/editor/labels.d.ts.map +1 -0
- package/dist/editor/panels/ConnectorAssign.d.ts +12 -0
- package/dist/editor/panels/ConnectorAssign.d.ts.map +1 -0
- package/dist/editor/panels/FloorsPanel.d.ts +64 -0
- package/dist/editor/panels/FloorsPanel.d.ts.map +1 -0
- package/dist/editor/panels/ImportReviewPanel.d.ts +22 -0
- package/dist/editor/panels/ImportReviewPanel.d.ts.map +1 -0
- package/dist/editor/panels/Inspector.d.ts +6 -3
- package/dist/editor/panels/Inspector.d.ts.map +1 -1
- package/dist/editor/panels/LeftRail.d.ts +26 -11
- package/dist/editor/panels/LeftRail.d.ts.map +1 -1
- package/dist/editor/panels/PreviewOverlay.d.ts +11 -2
- package/dist/editor/panels/PreviewOverlay.d.ts.map +1 -1
- package/dist/editor/pathRings.d.ts +79 -0
- package/dist/editor/pathRings.d.ts.map +1 -0
- package/dist/editor/portalSurface.d.ts +37 -0
- package/dist/editor/portalSurface.d.ts.map +1 -0
- package/dist/editor/previewDocument.d.ts +9 -0
- package/dist/editor/previewDocument.d.ts.map +1 -0
- package/dist/editor/railAssignments.d.ts +22 -0
- package/dist/editor/railAssignments.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/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 +49 -0
- package/dist/editor/tools.d.ts.map +1 -0
- package/dist/test-maps/shops-at-south-town/BASE - Shops At South Town.ai +26703 -28
- package/dist/test-maps/shops-at-south-town/LF - Shops At South Town.ai +4459 -0
- package/dist/test-maps/shops-at-south-town/SVG/BASE - Shops At South Town.svg +567 -0
- package/dist/test-maps/shops-at-south-town/SVG/LF - Shops At South Town.svg +238 -0
- package/dist/test-maps/shops-at-south-town/SVG/UF - Shops At South Town.svg +276 -0
- package/dist/test-maps/shops-at-south-town/UF - Shops At South Town.ai +4131 -1
- package/dist/ui/ModernSelect.d.ts +14 -0
- package/dist/ui/ModernSelect.d.ts.map +1 -0
- package/dist/ui/selectSearch.d.ts +9 -0
- package/dist/ui/selectSearch.d.ts.map +1 -0
- package/dist/viewer/MapViewer.d.ts +14 -3
- package/dist/viewer/MapViewer.d.ts.map +1 -1
- package/dist/viewer/camera.d.ts +37 -0
- package/dist/viewer/camera.d.ts.map +1 -0
- package/dist/viewer/components/CameraRig.d.ts +18 -0
- package/dist/viewer/components/CameraRig.d.ts.map +1 -0
- package/dist/viewer/components/LevelMeshes.d.ts +6 -1
- package/dist/viewer/components/LevelMeshes.d.ts.map +1 -1
- package/dist/viewer/components/MapScene.d.ts +6 -1
- package/dist/viewer/components/MapScene.d.ts.map +1 -1
- package/dist/viewer/components/SvgVectorLayer.d.ts +18 -0
- package/dist/viewer/components/SvgVectorLayer.d.ts.map +1 -0
- package/dist/viewer/index.css +236 -37
- package/dist/viewer/index.d.ts +4 -0
- package/dist/viewer/index.d.ts.map +1 -1
- package/dist/viewer/index.js +9 -4
- package/dist/viewer/index.js.map +1 -1
- package/dist/viewer/ui/MapControls.d.ts +22 -0
- package/dist/viewer/ui/MapControls.d.ts.map +1 -0
- package/dist/viewer/ui/RuntimeChrome.d.ts +3 -3
- package/dist/viewer/ui/RuntimeChrome.d.ts.map +1 -1
- package/package.json +7 -3
- package/dist/chunks/pathfinding.js +0 -343
- package/dist/chunks/pathfinding.js.map +0 -1
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { BatchOp, CmAmenityCatalogItem, CmAnchor, CmBuilding, CmConnector, CmLevel, CmRouteEdge, CmShape, CmShapeAssignment, ThemeDefaults } from '../core';
|
|
2
|
+
export interface EditorDraftState {
|
|
3
|
+
mapId: number;
|
|
4
|
+
centerId: number;
|
|
5
|
+
theme: Partial<ThemeDefaults>;
|
|
6
|
+
buildings: CmBuilding[];
|
|
7
|
+
levels: CmLevel[];
|
|
8
|
+
shapes: CmShape[];
|
|
9
|
+
assignments: CmShapeAssignment[];
|
|
10
|
+
anchors: CmAnchor[];
|
|
11
|
+
edges: CmRouteEdge[];
|
|
12
|
+
connectors: CmConnector[];
|
|
13
|
+
amenities: CmAmenityCatalogItem[];
|
|
14
|
+
baseSvgUrl?: string | null;
|
|
15
|
+
}
|
|
16
|
+
export declare function applyDraftOp(draft: EditorDraftState, op: BatchOp): EditorDraftState;
|
|
17
|
+
/** Drop a floor/outdoor level and every draft row that lived on it. */
|
|
18
|
+
export declare function omitLevelFromDraft(draft: EditorDraftState, levelId: number): EditorDraftState;
|
|
19
|
+
export declare function applyDraftOps(draft: EditorDraftState, ops: BatchOp[]): EditorDraftState;
|
|
20
|
+
/** Collapse repeated updates to the same entity so Save Changes sends one op each. */
|
|
21
|
+
export declare function coalesceDraftOp(ops: BatchOp[], op: BatchOp): BatchOp[];
|
|
22
|
+
//# sourceMappingURL=draftOps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"draftOps.d.ts","sourceRoot":"","sources":["../../src/editor/draftOps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EAEP,oBAAoB,EACpB,QAAQ,EACR,UAAU,EACV,WAAW,EACX,OAAO,EACP,WAAW,EACX,OAAO,EACP,iBAAiB,EAEjB,aAAa,EACd,MAAM,SAAS,CAAC;AAGjB,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9B,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,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAkBD,wBAAgB,YAAY,CAC1B,KAAK,EAAE,gBAAgB,EACvB,EAAE,EAAE,OAAO,GACV,gBAAgB,CAyJlB;AAED,uEAAuE;AACvE,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,MAAM,GACd,gBAAgB,CA0BlB;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,gBAAgB,EACvB,GAAG,EAAE,OAAO,EAAE,GACb,gBAAgB,CAMlB;AAiBD,sFAAsF;AACtF,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,OAAO,GAAG,OAAO,EAAE,CAmEtE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type RestoredEditorSection = {
|
|
2
|
+
section: 'edit-map' | 'wayfinding';
|
|
3
|
+
levelId: number | null;
|
|
4
|
+
};
|
|
5
|
+
/**
|
|
6
|
+
* Keep Edit Map / Wayfinding open across an in-page remount (save).
|
|
7
|
+
* Memory only — a full page refresh returns to Map options.
|
|
8
|
+
*/
|
|
9
|
+
export declare function markEditorSection(mapId: number, restored: RestoredEditorSection): void;
|
|
10
|
+
export declare function peekEditorSection(mapId: number): RestoredEditorSection | null;
|
|
11
|
+
export declare function clearEditorSection(mapId: number): void;
|
|
12
|
+
//# sourceMappingURL=editorSectionReturn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editorSectionReturn.d.ts","sourceRoot":"","sources":["../../src/editor/editorSectionReturn.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,UAAU,GAAG,YAAY,CAAC;IACnC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAAC;AAYF;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,qBAAqB,GAC9B,IAAI,CAGN;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,qBAAqB,GAAG,IAAI,CAG7E;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAGtD"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** Remember to reopen the floors list after a remount (reload after add). */
|
|
2
|
+
export declare function markReturnToFloorsList(mapId: number): void;
|
|
3
|
+
export declare function consumeReturnToFloorsList(mapId: number): boolean;
|
|
4
|
+
export declare function clearReturnToFloorsList(mapId: number): void;
|
|
5
|
+
//# sourceMappingURL=floorsListReturn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"floorsListReturn.d.ts","sourceRoot":"","sources":["../../src/editor/floorsListReturn.ts"],"names":[],"mappings":"AAYA,6EAA6E;AAC7E,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAG1D;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAKhE;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAG3D"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { ShapeGeometry, Vec2, geometryBBox } from '../core';
|
|
2
|
+
/** Rebuild absolute path `d` strings from polygon rings (lossy for beziers). */
|
|
3
|
+
export declare function polygonsToPathD(polygons: Vec2[][]): string;
|
|
4
|
+
export declare function polygonsToGeometry(polygons: Vec2[][]): ShapeGeometry;
|
|
5
|
+
export declare function translateGeometry(geometry: ShapeGeometry, dx: number, dy: number): ShapeGeometry;
|
|
6
|
+
/** Slide one side: both endpoints (and that edge's handles) move together. */
|
|
7
|
+
export declare function translateEdge(geometry: ShapeGeometry, ringIndex: number, edgeIndex: number, delta: Vec2): ShapeGeometry;
|
|
8
|
+
export declare function moveVertex(geometry: ShapeGeometry, polygonIndex: number, vertexIndex: number, point: Vec2): ShapeGeometry;
|
|
9
|
+
export declare function moveHandle(geometry: ShapeGeometry, ringIndex: number, edgeIndex: number, handle: 1 | 2, point: Vec2): ShapeGeometry;
|
|
10
|
+
/** Drop both handles so the arch becomes a straight side. */
|
|
11
|
+
export declare function flattenCubicEdge(geometry: ShapeGeometry, ringIndex: number, edgeIndex: number): ShapeGeometry;
|
|
12
|
+
/** Pull a straight side into a cubic arch (or reshape a cubic from its chord). */
|
|
13
|
+
export declare function bendEdgeToCubic(geometry: ShapeGeometry, ringIndex: number, edgeIndex: number, pull: Vec2): ShapeGeometry;
|
|
14
|
+
/**
|
|
15
|
+
* Insert a vertex after `vertexIndex` on the given ring (before the next point).
|
|
16
|
+
*/
|
|
17
|
+
export declare function insertVertex(geometry: ShapeGeometry, polygonIndex: number, afterVertexIndex: number, point: Vec2): ShapeGeometry;
|
|
18
|
+
/** Remove a vertex; refuses to go below 3 points on a closed ring. */
|
|
19
|
+
export declare function removeVertex(geometry: ShapeGeometry, polygonIndex: number, vertexIndex: number): ShapeGeometry;
|
|
20
|
+
export interface VertexHit {
|
|
21
|
+
polygonIndex: number;
|
|
22
|
+
vertexIndex: number;
|
|
23
|
+
point: Vec2;
|
|
24
|
+
distance: number;
|
|
25
|
+
}
|
|
26
|
+
/** Nearest path anchor within `tolerance` world units, or null. */
|
|
27
|
+
export declare function hitTestVertex(geometry: ShapeGeometry, point: Vec2, tolerance: number): VertexHit | null;
|
|
28
|
+
export interface HandleHit {
|
|
29
|
+
ringIndex: number;
|
|
30
|
+
edgeIndex: number;
|
|
31
|
+
handle: 1 | 2;
|
|
32
|
+
point: Vec2;
|
|
33
|
+
distance: number;
|
|
34
|
+
}
|
|
35
|
+
export declare function hitTestHandle(geometry: ShapeGeometry, point: Vec2, tolerance: number): HandleHit | null;
|
|
36
|
+
export interface EdgeHit {
|
|
37
|
+
polygonIndex: number;
|
|
38
|
+
/** Insert after this vertex index. */
|
|
39
|
+
afterVertexIndex: number;
|
|
40
|
+
point: Vec2;
|
|
41
|
+
distance: number;
|
|
42
|
+
kind: 'line' | 'cubic';
|
|
43
|
+
}
|
|
44
|
+
/** Nearest edge midpoint within tolerance for insert. */
|
|
45
|
+
export declare function hitTestEdgeMidpoint(geometry: ShapeGeometry, point: Vec2, tolerance: number): EdgeHit | null;
|
|
46
|
+
/** Nearest point on any edge (for dragging a line into an arch). */
|
|
47
|
+
export declare function hitTestEdge(geometry: ShapeGeometry, point: Vec2, tolerance: number): EdgeHit | null;
|
|
48
|
+
export declare function geometryWithBBox(geometry: ShapeGeometry): {
|
|
49
|
+
geometry: ShapeGeometry;
|
|
50
|
+
bbox: ReturnType<typeof geometryBBox>;
|
|
51
|
+
};
|
|
52
|
+
export { geometryToRings, edgeCount, edgeFrom, edgeTo, edgeToPathD, pointOnRingEdge, ringToPathD, } from './pathRings';
|
|
53
|
+
export type { PathRing, PathEdge } from './pathRings';
|
|
54
|
+
//# sourceMappingURL=geometryEdit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geometryEdit.d.ts","sourceRoot":"","sources":["../../src/editor/geometryEdit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hexColor.d.ts","sourceRoot":"","sources":["../../src/editor/hexColor.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAW9D;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAExD"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { BatchOp } from '../core';
|
|
2
|
+
export declare const EDITOR_HISTORY_LIMIT = 100;
|
|
3
|
+
export type EditorHistorySnapshot = {
|
|
4
|
+
ops: BatchOp[];
|
|
5
|
+
nextTempId: number;
|
|
6
|
+
selectedShapeId: number | null;
|
|
7
|
+
selectedAnchorIds: number[];
|
|
8
|
+
};
|
|
9
|
+
export type EditorHistory = {
|
|
10
|
+
past: EditorHistorySnapshot[];
|
|
11
|
+
future: EditorHistorySnapshot[];
|
|
12
|
+
};
|
|
13
|
+
export declare function emptyEditorHistory(): EditorHistory;
|
|
14
|
+
export declare function cloneHistorySnapshot(snapshot: EditorHistorySnapshot): EditorHistorySnapshot;
|
|
15
|
+
export declare function pushEditorHistory(history: EditorHistory, current: EditorHistorySnapshot): EditorHistory;
|
|
16
|
+
export declare function undoEditorHistory(history: EditorHistory, current: EditorHistorySnapshot): {
|
|
17
|
+
history: EditorHistory;
|
|
18
|
+
restored: EditorHistorySnapshot;
|
|
19
|
+
} | null;
|
|
20
|
+
export declare function redoEditorHistory(history: EditorHistory, current: EditorHistorySnapshot): {
|
|
21
|
+
history: EditorHistory;
|
|
22
|
+
restored: EditorHistorySnapshot;
|
|
23
|
+
} | null;
|
|
24
|
+
export declare function isEditableTypingTarget(target: EventTarget | null): boolean;
|
|
25
|
+
type HotkeyEvent = Pick<KeyboardEvent, 'key' | 'metaKey' | 'ctrlKey' | 'shiftKey' | 'altKey'>;
|
|
26
|
+
/** Ctrl/Cmd+Z — Windows, Linux, and macOS undo. */
|
|
27
|
+
export declare function isEditorUndoHotkey(e: HotkeyEvent): boolean;
|
|
28
|
+
/** Ctrl/Cmd+Shift+Z or Ctrl/Cmd+Y — redo on every desktop OS. */
|
|
29
|
+
export declare function isEditorRedoHotkey(e: HotkeyEvent): boolean;
|
|
30
|
+
export {};
|
|
31
|
+
//# sourceMappingURL=history.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/editor/history.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAExC,MAAM,MAAM,qBAAqB,GAAG;IAClC,GAAG,EAAE,OAAO,EAAE,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,qBAAqB,EAAE,CAAC;IAC9B,MAAM,EAAE,qBAAqB,EAAE,CAAC;CACjC,CAAC;AAEF,wBAAgB,kBAAkB,IAAI,aAAa,CAElD;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,qBAAqB,GAC9B,qBAAqB,CAOvB;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,qBAAqB,GAC7B,aAAa,CAKf;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,qBAAqB,GAC7B;IAAE,OAAO,EAAE,aAAa,CAAC;IAAC,QAAQ,EAAE,qBAAqB,CAAA;CAAE,GAAG,IAAI,CAUpE;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,qBAAqB,GAC7B;IAAE,OAAO,EAAE,aAAa,CAAC;IAAC,QAAQ,EAAE,qBAAqB,CAAA;CAAE,GAAG,IAAI,CAUpE;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,OAAO,CAM1E;AAED,KAAK,WAAW,GAAG,IAAI,CACrB,aAAa,EACb,KAAK,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CACtD,CAAC;AAEF,mDAAmD;AACnD,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO,CAI1D;AAED,iEAAiE;AACjE,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO,CAM1D"}
|