platform-calendar-seatmap 2.0.0 → 2.0.2

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 (113) hide show
  1. package/dist/9ff54b1cefde15da74a9.svg +198 -0
  2. package/dist/components/actionsHandler/ActionsHandler.d.ts +11 -0
  3. package/dist/components/alignmentGuides/AlignmentGuides.d.ts +6 -0
  4. package/dist/components/app/App.d.ts +18 -0
  5. package/dist/components/background/Background.d.ts +7 -0
  6. package/dist/components/deleteModal/DeleteModal.d.ts +4 -0
  7. package/dist/components/draggable/Draggable.d.ts +14 -0
  8. package/dist/components/elementSelector/ElementSelector.d.ts +10 -0
  9. package/dist/components/elementSelector/dropdown/Dropdown.d.ts +7 -0
  10. package/dist/components/elementSelector/dropdown/sections/aisles/Aisles.d.ts +7 -0
  11. package/dist/components/elementSelector/dropdown/sections/info/Info.d.ts +3 -0
  12. package/dist/components/elementSelector/dropdown/sections/objects/Objects.d.ts +7 -0
  13. package/dist/components/elementSelector/dropdown/sections/seatEditor/SeatEditor.d.ts +3 -0
  14. package/dist/components/elementSelector/dropdown/sections/seatingGroup/SeatingGroup.d.ts +7 -0
  15. package/dist/components/elementSelector/dropdown/sections/settings/Settings.d.ts +3 -0
  16. package/dist/components/elementSelector/dropdown/sections/standingArea/StandingArea.d.ts +7 -0
  17. package/dist/components/elementSelector/dropdown/sections/stats/Statistics.d.ts +3 -0
  18. package/dist/components/elementSelector/dropdown/sections/tables/Tables.d.ts +7 -0
  19. package/dist/components/elementSelector/dropdown/sections/text/Text.d.ts +7 -0
  20. package/dist/components/elementTitle/ElementTitle.d.ts +15 -0
  21. package/dist/components/elementWrapper/ElementWrapper.d.ts +19 -0
  22. package/dist/components/elements/aisle/Aisle.d.ts +12 -0
  23. package/dist/components/elements/object/Object.d.ts +7 -0
  24. package/dist/components/elements/seatingGroup/SeatingGroup.d.ts +7 -0
  25. package/dist/components/elements/stage/Stage.d.ts +28 -0
  26. package/dist/components/elements/standingArea/StandingArea.d.ts +7 -0
  27. package/dist/components/elements/table/Table.d.ts +7 -0
  28. package/dist/components/elements/table/round/Round.d.ts +20 -0
  29. package/dist/components/elements/table/square/Square.d.ts +20 -0
  30. package/dist/components/elements/text/Text.d.ts +7 -0
  31. package/dist/components/mouseSeatSelector/MouseSeatSelector.d.ts +6 -0
  32. package/dist/components/numberingSettings/NumberingSettings.d.ts +12 -0
  33. package/dist/components/onboarding/Onboarding.d.ts +31 -0
  34. package/dist/components/previewMode/PreviewMode.d.ts +24 -0
  35. package/dist/components/resizer/Resizer.d.ts +18 -0
  36. package/dist/components/rotate/Rotate.d.ts +9 -0
  37. package/dist/components/scene3d/InteractionController3D.d.ts +18 -0
  38. package/dist/components/scene3d/Scene3D.d.ts +13 -0
  39. package/dist/components/scene3d/builders/Object3D.d.ts +3 -0
  40. package/dist/components/scene3d/builders/SeatingGroup3D.d.ts +3 -0
  41. package/dist/components/scene3d/builders/StandingArea3D.d.ts +3 -0
  42. package/dist/components/scene3d/builders/Table3D.d.ts +3 -0
  43. package/dist/components/scene3d/builders/Text3D.d.ts +3 -0
  44. package/dist/components/scene3d/builders/materials.d.ts +11 -0
  45. package/dist/components/scene3d/builders/types.d.ts +36 -0
  46. package/dist/components/sceneContainer/SceneContainer.d.ts +10 -0
  47. package/dist/components/seat/Seat.d.ts +39 -0
  48. package/dist/components/seat/seatIcons/index.d.ts +46 -0
  49. package/dist/components/seatTooltip/SeatTooltip.d.ts +30 -0
  50. package/dist/helpers/constants/commons.d.ts +10 -0
  51. package/dist/helpers/constants/numberingStyles.d.ts +55 -0
  52. package/dist/helpers/constants/seatColors.d.ts +35 -0
  53. package/dist/helpers/constants/seatMap.d.ts +12 -0
  54. package/dist/helpers/constants/standingAreaStyles.d.ts +51 -0
  55. package/dist/helpers/functions/commons.d.ts +9 -0
  56. package/dist/helpers/functions/export.d.ts +30 -0
  57. package/dist/helpers/functions/rowLabels.d.ts +7 -0
  58. package/dist/helpers/functions/seat.d.ts +16 -0
  59. package/dist/helpers/functions/seatMap.d.ts +38 -0
  60. package/dist/helpers/functions/seatSelectionUtils.d.ts +33 -0
  61. package/dist/helpers/functions/seatStatus.d.ts +20 -0
  62. package/dist/helpers/functions/seatingGroup.d.ts +4 -0
  63. package/dist/helpers/functions/statistics.d.ts +116 -0
  64. package/dist/helpers/functions/zoomToFit.d.ts +20 -0
  65. package/dist/helpers/types/aisle.d.ts +25 -0
  66. package/dist/helpers/types/commons.d.ts +10 -0
  67. package/dist/hooks/useCopyPaste.d.ts +1 -0
  68. package/dist/hooks/useElementWrapperActionHandlers.d.ts +21 -0
  69. package/dist/hooks/useIsViewOnly.d.ts +2 -0
  70. package/dist/hooks/useKeyboardSeatNavigation.d.ts +22 -0
  71. package/dist/hooks/useKeyboardShortcuts.d.ts +1 -0
  72. package/dist/hooks/useScaleTracker.d.ts +2 -0
  73. package/dist/hooks/useSmoothZoom.d.ts +18 -0
  74. package/dist/hooks/useUndoRedo.d.ts +4 -0
  75. package/dist/index.d.ts +2 -0
  76. package/dist/index.html +1 -0
  77. package/dist/index.js +2 -0
  78. package/dist/index.js.LICENSE.txt +66 -0
  79. package/dist/lib/numberInputWithSlider/NumberInputWithSlider.d.ts +11 -0
  80. package/dist/store/middleware/historyMiddleware.d.ts +3 -0
  81. package/dist/store/reducers/actionHandlers/actionCreators.d.ts +3 -0
  82. package/dist/store/reducers/actionHandlers/actionTypes.d.ts +2 -0
  83. package/dist/store/reducers/actionHandlers/reducer.d.ts +3 -0
  84. package/dist/store/reducers/actionHandlers/selectors.d.ts +8 -0
  85. package/dist/store/reducers/actionHandlers/types.d.ts +20 -0
  86. package/dist/store/reducers/clipboard/actionCreators.d.ts +6 -0
  87. package/dist/store/reducers/clipboard/actionTypes.d.ts +3 -0
  88. package/dist/store/reducers/clipboard/reducer.d.ts +3 -0
  89. package/dist/store/reducers/clipboard/selectors.d.ts +6 -0
  90. package/dist/store/reducers/clipboard/types.d.ts +19 -0
  91. package/dist/store/reducers/elementSelector/actionCreators.d.ts +7 -0
  92. package/dist/store/reducers/elementSelector/actionTypes.d.ts +5 -0
  93. package/dist/store/reducers/elementSelector/reducer.d.ts +3 -0
  94. package/dist/store/reducers/elementSelector/selectors.d.ts +8 -0
  95. package/dist/store/reducers/elementSelector/types.d.ts +45 -0
  96. package/dist/store/reducers/history/actionCreators.d.ts +10 -0
  97. package/dist/store/reducers/history/actionTypes.d.ts +4 -0
  98. package/dist/store/reducers/history/reducer.d.ts +21 -0
  99. package/dist/store/reducers/history/selectors.d.ts +5 -0
  100. package/dist/store/reducers/history/types.d.ts +18 -0
  101. package/dist/store/reducers/main/actionCreators.d.ts +15 -0
  102. package/dist/store/reducers/main/actionTypes.d.ts +12 -0
  103. package/dist/store/reducers/main/reducer.d.ts +3 -0
  104. package/dist/store/reducers/main/selectors.d.ts +65 -0
  105. package/dist/store/reducers/main/types.d.ts +89 -0
  106. package/dist/store/reducers/rootReducer.d.ts +28 -0
  107. package/dist/store/reducers/seatMap/actionCreators.d.ts +11 -0
  108. package/dist/store/reducers/seatMap/actionTypes.d.ts +9 -0
  109. package/dist/store/reducers/seatMap/reducer.d.ts +3 -0
  110. package/dist/store/reducers/seatMap/selectors.d.ts +474 -0
  111. package/dist/store/reducers/seatMap/types.d.ts +70 -0
  112. package/dist/store/store.d.ts +19 -0
  113. package/package.json +1 -1
@@ -0,0 +1,38 @@
1
+ import { T_Seat, T_SeatMap } from 'platform-calendar-helpers';
2
+ import { T_SelectedSeats } from "../../store/reducers/elementSelector/types";
3
+ declare const removeFakeElementsFromSeatMap: (_seatMap: T_SeatMap) => {
4
+ elements: {
5
+ objects: import("platform-calendar-helpers").T_Element_Object[];
6
+ seatingGroup: import("platform-calendar-helpers").T_Element_SeatingGroup[];
7
+ standingArea: import("platform-calendar-helpers").T_Element_StandingArea[];
8
+ tables: import("platform-calendar-helpers").T_Element_Table[];
9
+ text: import("platform-calendar-helpers").T_Element_Text[];
10
+ aisles: any;
11
+ };
12
+ id: number;
13
+ name: string;
14
+ backgroundColor?: string;
15
+ };
16
+ declare const addFakeElementsToSeatMap: (_seatMap: T_SeatMap) => T_SeatMap;
17
+ /**
18
+ * Sold seats are not mutated. Sold status is determined by the soldSeats list (UI/selectors).
19
+ * We do NOT set seat.locked for sold seats — being sold is separate from being locked.
20
+ * (Previously this set locked:true on sold seats, which then got copied on paste/duplicate.)
21
+ */
22
+ declare const disableSoldSeats: (seatMap: T_SeatMap, _soldSeats: T_Seat[]) => T_SeatMap;
23
+ declare const getElementInitialPosition: (sceneCoords: {
24
+ x: number;
25
+ y: number;
26
+ }) => {
27
+ top: number;
28
+ left: number;
29
+ };
30
+ /**
31
+ * Check if an element has any sold seats
32
+ * @param elementId - The ID of the element to check
33
+ * @param elementType - The type of element ('tables' | 'seatingGroup')
34
+ * @param soldSeats - Array of sold seats from Redux state
35
+ * @returns true if the element has sold seats, false otherwise
36
+ */
37
+ declare const hasSoldSeats: (elementId: string | number, elementType: "tables" | "seatingGroup", soldSeats: T_SelectedSeats[keyof T_SelectedSeats][]) => boolean;
38
+ export { removeFakeElementsFromSeatMap, addFakeElementsToSeatMap, getElementInitialPosition, disableSoldSeats, hasSoldSeats };
@@ -0,0 +1,33 @@
1
+ export type T_SeatId = string;
2
+ export type T_GridCoord = {
3
+ row: number;
4
+ col: number;
5
+ };
6
+ export type T_SeatLookup = (coord: T_GridCoord) => T_SeatId | undefined;
7
+ export type T_IsSelectable = (seatId: T_SeatId) => boolean;
8
+ /**
9
+ * Computes all selectable seats in the axis-aligned rectangle between anchor and current (inclusive).
10
+ * Only iterates within bounds; does not scan the full grid.
11
+ */
12
+ export declare function getRectangleSeats(anchor: T_GridCoord, current: T_GridCoord, seatLookup: T_SeatLookup, isSelectable: T_IsSelectable): Set<T_SeatId>;
13
+ /**
14
+ * Grid line algorithm (Bresenham) from anchor to current (inclusive).
15
+ * Missing seats (gaps/aisles) are skipped but the path is preserved.
16
+ */
17
+ export declare function getLineSeatsBresenham(anchor: T_GridCoord, current: T_GridCoord, seatLookup: T_SeatLookup, isSelectable: T_IsSelectable): Set<T_SeatId>;
18
+ /**
19
+ * Selects BOTH diagonals of the bounding box defined by anchor/current:
20
+ * - top-left -> bottom-right
21
+ * - top-right -> bottom-left
22
+ */
23
+ export declare function getBothDiagonalsSeats(anchor: T_GridCoord, current: T_GridCoord, seatLookup: T_SeatLookup, isSelectable: T_IsSelectable): Set<T_SeatId>;
24
+ export type T_SelectionApplyMode = 'replace' | 'add' | 'toggle';
25
+ /**
26
+ * Applies a computed selection set onto an existing set.
27
+ *
28
+ * Modifier priority (documented & enforced by caller):
29
+ * - ctrl/meta => toggle (xor)
30
+ * - else shift => add
31
+ * - else => replace
32
+ */
33
+ export declare function applySelectionWithModifier(existing: Set<T_SeatId>, computed: Set<T_SeatId>, mode: T_SelectionApplyMode): Set<T_SeatId>;
@@ -0,0 +1,20 @@
1
+ import { T_Seat } from 'platform-calendar-helpers';
2
+ import { T_SeatColors } from "../constants/seatColors";
3
+ export type { T_SeatColors } from "../constants/seatColors";
4
+ export type T_SeatStatus = 'available' | 'locked' | 'unassigned' | 'sold';
5
+ /**
6
+ * Determines the status of a seat based on its locked state, whether it's sold, and if it has a ticket assigned
7
+ */
8
+ export declare const getSeatStatus: (seat: T_Seat, soldSeatIds: Set<string | number>, ticketIds?: {
9
+ [key: string | number]: boolean;
10
+ }) => T_SeatStatus;
11
+ /**
12
+ * Gets the appropriate color for a seat based on its status
13
+ */
14
+ export declare const getSeatColor: (seat: T_Seat, seatColors: T_SeatColors, soldSeatIds: Set<string | number>, ticketIds?: {
15
+ [key: string | number]: boolean;
16
+ }) => string;
17
+ /**
18
+ * Gets seat colors with fallback to defaults if missing
19
+ */
20
+ export declare const getSeatColorsWithDefaults: (seatColors?: Partial<T_SeatColors> | null) => T_SeatColors;
@@ -0,0 +1,4 @@
1
+ import { T_Element } from 'platform-calendar-helpers';
2
+ declare const updateCurve: (elementId: T_Element["id"], curveValue: number) => void;
3
+ declare const updateStretch: (elementId: T_Element["id"], stretchValue: number) => void;
4
+ export { updateCurve, updateStretch };
@@ -0,0 +1,116 @@
1
+ import { T_Element, T_ElementType, T_Seat, T_SeatMap, T_Ticket } from 'platform-calendar-helpers';
2
+ import { T_SelectedSeats } from "../../store/reducers/elementSelector/types";
3
+ /**
4
+ * Count total seats in the seatmap
5
+ */
6
+ export declare const getTotalCapacity: (seatMap: T_SeatMap) => number;
7
+ /**
8
+ * Count total seats including hidden ones (for capacity calculation)
9
+ * Note: StandingArea capacity is determined by ticket limit, not by seats
10
+ */
11
+ export declare const getTotalCapacityIncludingHidden: (seatMap: T_SeatMap) => number;
12
+ /**
13
+ * Calculate occupancy percentage
14
+ * If there are sold seats but percentage rounds to 0, show at least 1%
15
+ */
16
+ export declare const getOccupancyPercentage: (sold: number, total: number) => number;
17
+ /**
18
+ * Seat index structure for efficient lookups
19
+ */
20
+ export type T_SeatIndex = {
21
+ bySeatId: Map<T_Seat['id'], {
22
+ seat: T_Seat;
23
+ elementId: T_Element['id'];
24
+ elementTitle: T_Element['title'];
25
+ elementType: T_ElementType;
26
+ }>;
27
+ byElementId: Map<T_Element['id'], {
28
+ elementTitle: T_Element['title'];
29
+ elementType: T_ElementType;
30
+ seats: T_Seat[];
31
+ }>;
32
+ totalsByElement: Map<T_Element['id'], {
33
+ total: number;
34
+ sold: number;
35
+ }>;
36
+ totalsByTicketId: Map<T_Ticket['id'], {
37
+ total: number;
38
+ sold: number;
39
+ }>;
40
+ };
41
+ /**
42
+ * Build a seat index from the seatmap for efficient lookups
43
+ */
44
+ export declare const buildSeatIndex: (seatMap: T_SeatMap, tickets?: T_Ticket[]) => T_SeatIndex;
45
+ /**
46
+ * Audit findings for sold seats
47
+ */
48
+ export type T_AuditFindings = {
49
+ orphanSeats: Array<{
50
+ seatId: T_Seat['id'];
51
+ elementId?: T_Element['id'];
52
+ elementTitle?: string;
53
+ }>;
54
+ duplicateSeats: Array<{
55
+ seatId: T_Seat['id'];
56
+ count: number;
57
+ }>;
58
+ ticketMismatches: Array<{
59
+ seatId: T_Seat['id'];
60
+ ticketId: T_Ticket['id'];
61
+ elementTitle?: string;
62
+ }>;
63
+ hiddenSoldSeats: Array<{
64
+ seatId: T_Seat['id'];
65
+ elementTitle?: string;
66
+ }>;
67
+ };
68
+ /**
69
+ * Analyze sold seats against the seatmap index
70
+ */
71
+ export declare const analyzeSoldSeats: (seatIndex: T_SeatIndex, soldSeats: T_SelectedSeats[keyof T_SelectedSeats][], tickets?: T_Ticket[]) => T_AuditFindings;
72
+ /**
73
+ * Get occupancy breakdown by element
74
+ */
75
+ export type T_ElementOccupancy = {
76
+ elementId: T_Element['id'];
77
+ elementTitle: T_Element['title'];
78
+ elementType: T_ElementType;
79
+ total: number;
80
+ sold: number;
81
+ available: number;
82
+ occupancyPercentage: number;
83
+ };
84
+ export declare const getOccupancyByElement: (seatIndex: T_SeatIndex, seatMap?: T_SeatMap, tickets?: T_Ticket[], filteredSoldSeats?: T_SelectedSeats[keyof T_SelectedSeats][]) => T_ElementOccupancy[];
85
+ /**
86
+ * Get occupancy breakdown by ticket type
87
+ */
88
+ export type T_TicketOccupancy = {
89
+ ticketId: T_Ticket['id'];
90
+ ticketName?: string;
91
+ total: number;
92
+ sold: number;
93
+ available: number;
94
+ occupancyPercentage: number;
95
+ };
96
+ export declare const getOccupancyByTicket: (seatIndex: T_SeatIndex, tickets?: T_Ticket[], filteredSoldSeats?: T_SelectedSeats[keyof T_SelectedSeats][]) => T_TicketOccupancy[];
97
+ /**
98
+ * Type for statistics
99
+ */
100
+ export type T_Statistics = {
101
+ totalCapacity: number;
102
+ soldCount: number;
103
+ availableCount: number;
104
+ unassignedCount: number;
105
+ lockedCount: number;
106
+ hiddenCount: number;
107
+ occupancyPercentage: number;
108
+ };
109
+ /**
110
+ * Calculate detailed seat statistics (unassigned, locked, hidden counts)
111
+ */
112
+ export declare const calculateDetailedStatistics: (seatMap: T_SeatMap, soldSeats: T_SelectedSeats[keyof T_SelectedSeats][], tickets?: T_Ticket[]) => {
113
+ unassignedCount: number;
114
+ lockedCount: number;
115
+ hiddenCount: number;
116
+ };
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Calculates the optimal scale and translation to fit all elements in the viewport
3
+ * @param elements - Array of element positions and dimensions
4
+ * @param viewportWidth - Width of the viewport
5
+ * @param viewportHeight - Height of the viewport
6
+ * @param padding - Padding around elements (in pixels)
7
+ * @param minScale - Minimum allowed scale
8
+ * @param maxScale - Maximum allowed scale
9
+ * @returns Object with scale, translateX, and translateY
10
+ */
11
+ export declare const calculateZoomToFit: (elements: Array<{
12
+ top: number;
13
+ left: number;
14
+ width: number;
15
+ height: number;
16
+ }>, viewportWidth: number, viewportHeight: number, padding?: number, minScale?: number, maxScale?: number) => {
17
+ scale: number;
18
+ translateX: number;
19
+ translateY: number;
20
+ };
@@ -0,0 +1,25 @@
1
+ /**
2
+ * LOCAL AISLE TYPES
3
+ * These are defined locally until platform-calendar-helpers is updated
4
+ */
5
+ export type T_AisleStyle = 'solid' | 'dashed' | 'dotted' | 'carpet' | 'arrows';
6
+ export type T_Element_Aisle = {
7
+ id: string;
8
+ title: string;
9
+ position: {
10
+ top: number;
11
+ left: number;
12
+ };
13
+ width: number;
14
+ height: number;
15
+ rotate: number;
16
+ zIndex: number;
17
+ style: T_AisleStyle;
18
+ color: string;
19
+ opacity: number;
20
+ showLabel: boolean;
21
+ showArrows: boolean;
22
+ isEmergencyExit: boolean;
23
+ };
24
+ export declare const AISLE_ELEMENT_TYPE: "aisles";
25
+ export declare const D_ELEMENT_AISLE: T_Element_Aisle;
@@ -0,0 +1,10 @@
1
+ import { MODES } from "../constants/commons";
2
+ type RecursivePartial<T> = {
3
+ [P in keyof T]?: T[P] extends (infer U)[] ? RecursivePartial<U>[] : T[P] extends object ? RecursivePartial<T[P]> : T[P];
4
+ };
5
+ type T_Mode = (typeof MODES)[keyof typeof MODES];
6
+ type T_SceneTransform = React.MutableRefObject<{
7
+ x: number;
8
+ y: number;
9
+ }>;
10
+ export { type RecursivePartial, type T_Mode, type T_SceneTransform };
@@ -0,0 +1 @@
1
+ export declare const useCopyPaste: () => void;
@@ -0,0 +1,21 @@
1
+ import { T_Element, T_ElementType } from 'platform-calendar-helpers';
2
+ import { T_Element_Aisle } from "../helpers/types/aisle";
3
+ /** Element type union: helpers + local aisle */
4
+ type T_ElementType_SeatMap = T_ElementType | 'aisles';
5
+ type T_Props = {
6
+ element: T_Element | T_Element_Aisle;
7
+ elementType: T_ElementType_SeatMap;
8
+ };
9
+ declare const useElementWrapperActionHandlers: ({ element, elementType }: T_Props) => {
10
+ deleteElement: () => void;
11
+ editElement: () => void;
12
+ duplicateElement: () => void;
13
+ resize: (updatedSizes: {
14
+ top: number;
15
+ left: number;
16
+ height: number;
17
+ width: number;
18
+ }) => void;
19
+ rotate: (updatedAngle: T_Element["rotate"]) => void;
20
+ };
21
+ export { useElementWrapperActionHandlers };
@@ -0,0 +1,2 @@
1
+ declare const useIsViewOnly: () => boolean;
2
+ export { useIsViewOnly };
@@ -0,0 +1,22 @@
1
+ /**
2
+ * KEYBOARD SEAT NAVIGATION
3
+ * Navigate seats using arrow keys, Enter to select
4
+ */
5
+ import { T_Seat } from 'platform-calendar-helpers';
6
+ export declare const useKeyboardSeatNavigation: (enabled?: boolean) => {
7
+ focusedSeat: {
8
+ seatId: T_Seat["id"];
9
+ elementId: string;
10
+ elementType: "seatingGroup" | "tables";
11
+ rowIndex: number;
12
+ colIndex: number;
13
+ };
14
+ setFocusedSeat: import("react").Dispatch<import("react").SetStateAction<{
15
+ seatId: T_Seat["id"];
16
+ elementId: string;
17
+ elementType: "seatingGroup" | "tables";
18
+ rowIndex: number;
19
+ colIndex: number;
20
+ }>>;
21
+ clearFocus: () => void;
22
+ };
@@ -0,0 +1 @@
1
+ export declare const useKeyboardShortcuts: () => void;
@@ -0,0 +1,2 @@
1
+ declare const useScaleTracker: (wrapperRef: React.MutableRefObject<HTMLDivElement>) => number;
2
+ export { useScaleTracker };
@@ -0,0 +1,18 @@
1
+ /**
2
+ * SMOOTH ZOOM HOOK
3
+ * Animated zoom to selection, zoom to fit, etc.
4
+ */
5
+ import { T_Seat } from 'platform-calendar-helpers';
6
+ type T_ZoomTarget = {
7
+ scale: number;
8
+ x: number;
9
+ y: number;
10
+ };
11
+ export declare const useSmoothZoom: (sceneRef: React.RefObject<HTMLDivElement>, wrapperRef: React.RefObject<HTMLDivElement>) => {
12
+ zoomToSelection: (padding?: number) => void;
13
+ zoomToSeat: (seatId: T_Seat["id"], targetScale?: number) => void;
14
+ zoomToElement: (elementId: string, padding?: number) => void;
15
+ animateTo: (target: T_ZoomTarget, duration?: number) => void;
16
+ cleanup: () => void;
17
+ };
18
+ export {};
@@ -0,0 +1,4 @@
1
+ export declare const useUndoRedo: () => {
2
+ canUndo: boolean;
3
+ canRedo: boolean;
4
+ };
@@ -0,0 +1,2 @@
1
+ export { App as SeatMap } from './components/app/App';
2
+ export { useResetOnboarding } from './components/onboarding/Onboarding';
@@ -0,0 +1 @@
1
+ <!doctype html><html><head><meta charset="utf-8"><title>Webpack App</title><meta name="viewport" content="width=device-width,initial-scale=1"><script defer="defer" src="./index.js"></script></head><body></body></html>