@nex125/seatmap-editor 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,178 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { Venue, Viewport, SpatialIndex, CommandHistory, Vec2 } from '@nex125/seatmap-core';
3
+ import { SeatmapStore } from '@nex125/seatmap-react';
4
+ import { CSSProperties } from 'react';
5
+
6
+ interface SeatmapEditorProps {
7
+ venue?: Venue;
8
+ onChange?: (venue: Venue) => void;
9
+ className?: string;
10
+ }
11
+ declare function SeatmapEditor({ venue, onChange, className }: SeatmapEditorProps): react_jsx_runtime.JSX.Element;
12
+
13
+ interface ToolPointerEvent {
14
+ worldX: number;
15
+ worldY: number;
16
+ screenX: number;
17
+ screenY: number;
18
+ shiftKey: boolean;
19
+ ctrlKey: boolean;
20
+ metaKey: boolean;
21
+ button: number;
22
+ }
23
+ declare abstract class BaseTool {
24
+ abstract readonly name: string;
25
+ abstract readonly cursor: string;
26
+ onPointerDown(_e: ToolPointerEvent, _viewport: Viewport, _store: SeatmapStore): void;
27
+ onPointerMove(_e: ToolPointerEvent, _viewport: Viewport, _store: SeatmapStore): void;
28
+ onPointerUp(_e: ToolPointerEvent, _viewport: Viewport, _store: SeatmapStore): void;
29
+ onActivate(_viewport: Viewport, _store: SeatmapStore): void;
30
+ onDeactivate(): void;
31
+ }
32
+
33
+ declare class PanTool extends BaseTool {
34
+ readonly name = "pan";
35
+ readonly cursor = "grab";
36
+ private isPanning;
37
+ private lastX;
38
+ private lastY;
39
+ onPointerDown(e: ToolPointerEvent): void;
40
+ onPointerMove(e: ToolPointerEvent, viewport: Viewport): void;
41
+ onPointerUp(): void;
42
+ onDeactivate(): void;
43
+ }
44
+
45
+ declare class SelectTool extends BaseTool {
46
+ private spatialIndex;
47
+ private history;
48
+ readonly name = "select";
49
+ readonly cursor = "default";
50
+ private isDragging;
51
+ private dragStartWorld;
52
+ private hasDragged;
53
+ private dragMode;
54
+ selectionRect: {
55
+ x: number;
56
+ y: number;
57
+ width: number;
58
+ height: number;
59
+ } | null;
60
+ constructor(spatialIndex: SpatialIndex, history: CommandHistory);
61
+ onPointerDown(e: ToolPointerEvent, _viewport: Viewport, store: SeatmapStore): void;
62
+ onPointerMove(e: ToolPointerEvent, _viewport: Viewport, store: SeatmapStore): void;
63
+ onPointerUp(e: ToolPointerEvent, _viewport: Viewport, store: SeatmapStore): void;
64
+ private commitDrag;
65
+ private reset;
66
+ onDeactivate(): void;
67
+ }
68
+
69
+ declare class AddSectionTool extends BaseTool {
70
+ private history;
71
+ private categoryId;
72
+ readonly name = "add-section";
73
+ readonly cursor = "crosshair";
74
+ points: Vec2[];
75
+ onPointsChange?: (points: Vec2[], closeable: boolean) => void;
76
+ constructor(history: CommandHistory, categoryId?: string);
77
+ setCategoryId(id: string): void;
78
+ onPointerDown(e: ToolPointerEvent, _viewport: Viewport, store: SeatmapStore): void;
79
+ onPointerMove(e: ToolPointerEvent): void;
80
+ private finishPolygon;
81
+ private notifyChange;
82
+ onDeactivate(): void;
83
+ }
84
+
85
+ declare class AddRowTool extends BaseTool {
86
+ private history;
87
+ private spatialIndex;
88
+ readonly name = "add-row";
89
+ readonly cursor = "cell";
90
+ seatsPerRow: number;
91
+ seatSpacing: number;
92
+ constructor(history: CommandHistory, spatialIndex: SpatialIndex);
93
+ onPointerDown(e: ToolPointerEvent, _viewport: Viewport, store: SeatmapStore): void;
94
+ }
95
+
96
+ declare class AddSeatTool extends BaseTool {
97
+ private history;
98
+ private spatialIndex;
99
+ readonly name = "add-seat";
100
+ readonly cursor = "crosshair";
101
+ constructor(history: CommandHistory, spatialIndex: SpatialIndex);
102
+ onPointerDown(e: ToolPointerEvent, _viewport: Viewport, store: SeatmapStore): void;
103
+ private findNonOverlapping;
104
+ }
105
+
106
+ declare class DrawGATool extends BaseTool {
107
+ private history;
108
+ readonly name = "draw-ga";
109
+ readonly cursor = "crosshair";
110
+ points: Array<{
111
+ x: number;
112
+ y: number;
113
+ }>;
114
+ capacity: number;
115
+ categoryId: string;
116
+ constructor(history: CommandHistory);
117
+ onPointerDown(e: ToolPointerEvent, _viewport: Viewport, store: SeatmapStore): void;
118
+ finishPolygon(store: SeatmapStore): void;
119
+ onDeactivate(): void;
120
+ }
121
+
122
+ declare class AddTableTool extends BaseTool {
123
+ private history;
124
+ readonly name = "add-table";
125
+ readonly cursor = "crosshair";
126
+ shape: "round" | "rectangular";
127
+ seatsPerTable: number;
128
+ tableRadius: number;
129
+ categoryId: string;
130
+ constructor(history: CommandHistory);
131
+ onPointerDown(e: ToolPointerEvent, _viewport: Viewport, store: SeatmapStore): void;
132
+ }
133
+
134
+ interface ToolbarProps {
135
+ activeTool: string;
136
+ onToolChange: (tool: string) => void;
137
+ canUndo: boolean;
138
+ canRedo: boolean;
139
+ onUndo: () => void;
140
+ onRedo: () => void;
141
+ onFitView: () => void;
142
+ onSave: () => void;
143
+ onLoad: () => void;
144
+ seatsPerRow: number;
145
+ onSeatsPerRowChange: (n: number) => void;
146
+ style?: CSSProperties;
147
+ }
148
+ declare function Toolbar({ activeTool, onToolChange, canUndo, canRedo, onUndo, onRedo, onFitView, onSave, onLoad, seatsPerRow, onSeatsPerRowChange, style, }: ToolbarProps): react_jsx_runtime.JSX.Element;
149
+
150
+ interface PropertyPanelProps {
151
+ venue: Venue | null;
152
+ selectedSeatIds: Set<string>;
153
+ history: CommandHistory;
154
+ store: SeatmapStore;
155
+ onUploadBackground?: () => void;
156
+ onRemoveBackground?: () => void;
157
+ onBackgroundOpacityChange?: (opacity: number) => void;
158
+ style?: CSSProperties;
159
+ }
160
+ declare function PropertyPanel({ venue, selectedSeatIds, history, store, onUploadBackground, onRemoveBackground, onBackgroundOpacityChange, style, }: PropertyPanelProps): react_jsx_runtime.JSX.Element;
161
+
162
+ interface CategoryManagerProps {
163
+ venue: Venue | null;
164
+ history: CommandHistory;
165
+ store: SeatmapStore;
166
+ style?: CSSProperties;
167
+ }
168
+ declare function CategoryManager({ venue, history, store, style, }: CategoryManagerProps): react_jsx_runtime.JSX.Element | null;
169
+
170
+ interface LayerPanelProps {
171
+ venue: Venue | null;
172
+ selectedSeatIds: Set<string>;
173
+ onSelectSection: (sectionId: string) => void;
174
+ style?: CSSProperties;
175
+ }
176
+ declare function LayerPanel({ venue, selectedSeatIds, onSelectSection, style, }: LayerPanelProps): react_jsx_runtime.JSX.Element | null;
177
+
178
+ export { AddRowTool, AddSeatTool, AddSectionTool, AddTableTool, BaseTool, CategoryManager, DrawGATool, LayerPanel, PanTool, PropertyPanel, SeatmapEditor, type SeatmapEditorProps, SelectTool, type ToolPointerEvent, Toolbar };