@seatlayer/core 0.69.0 → 0.70.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.
- package/dist/ar-R52D47QC.js +1 -0
- package/dist/be-P34NRZPF.js +1 -0
- package/dist/bg-4TEE6DSQ.js +1 -0
- package/dist/ca-V4A6DRPR.js +1 -0
- package/dist/{categoryInventory-DLDU-RSw.d.ts → categoryInventory-BiUDSvBt.d.ts} +1 -1
- package/dist/{categoryInventory-DZapeGK6.d.cts → categoryInventory-DBqgM5in.d.cts} +1 -1
- package/dist/{chunk-6JWYLLWU.js → chunk-5AHUGRHH.js} +1 -1
- package/dist/{chunk-RMNTGICO.js → chunk-652LV66L.js} +1 -1
- package/dist/{chunk-BV6FHURE.js → chunk-7OJ6SB6V.js} +1 -1
- package/dist/{chunk-HZT2U5IY.js → chunk-A27USMF7.js} +1 -1
- package/dist/{chunk-YYRUKI7A.js → chunk-AWPHGLTU.js} +1 -1
- package/dist/{chunk-WZ6ZNPNT.js → chunk-UHPX2P7O.js} +1 -1
- package/dist/{chunk-QYZ3P5L6.js → chunk-WXWJZ5DO.js} +1 -1
- package/dist/chunk-X3K36XZM.js +1 -0
- package/dist/core/chart-ops/index.cjs +1 -1
- package/dist/core/chart-ops/index.d.cts +4 -4
- package/dist/core/chart-ops/index.d.ts +4 -4
- package/dist/core/chart-ops/index.js +1 -1
- package/dist/core/inventory/index.d.cts +4 -4
- package/dist/core/inventory/index.d.ts +4 -4
- package/dist/core/inventory/index.js +1 -1
- package/dist/core/layout/index.cjs +1 -1
- package/dist/core/layout/index.d.cts +4 -4
- package/dist/core/layout/index.d.ts +4 -4
- package/dist/core/layout/index.js +1 -1
- package/dist/core/quality/index.d.cts +3 -3
- package/dist/core/quality/index.d.ts +3 -3
- package/dist/core/render-assets/index.d.cts +1 -1
- package/dist/core/render-assets/index.d.ts +1 -1
- package/dist/core/render-assets/index.js +1 -1
- package/dist/core/seatConfidence.d.cts +1 -1
- package/dist/core/seatConfidence.d.ts +1 -1
- package/dist/core/sections/index.d.cts +5 -5
- package/dist/core/sections/index.d.ts +5 -5
- package/dist/core/sections/index.js +1 -1
- package/dist/cs-GR5H3ZRU.js +1 -0
- package/dist/cy-XWYNMRNE.js +1 -0
- package/dist/da-NOYMEVP6.js +1 -0
- package/dist/de-LFHFC2XO.js +1 -0
- package/dist/el-AS3436E6.js +1 -0
- package/dist/es-IWBWYUHH.js +1 -0
- package/dist/et-VV7YGFEV.js +1 -0
- package/dist/{eventConfigurations-kZpADDdx.d.ts → eventConfigurations-CA2XhDig.d.ts} +1 -1
- package/dist/{eventConfigurations-C_dst7Ro.d.cts → eventConfigurations-Csdxe89O.d.cts} +1 -1
- package/dist/fa-JYLN4BIM.js +1 -0
- package/dist/fi-TXRN726I.js +1 -0
- package/dist/fr-PKEU6NKI.js +1 -0
- package/dist/he-H53ZPEAF.js +1 -0
- package/dist/hr-AIG6RMUY.js +1 -0
- package/dist/hu-KE64252D.js +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +225 -102
- package/dist/index.d.ts +225 -102
- package/dist/index.js +1 -1
- package/dist/it-GVT7VIKV.js +1 -0
- package/dist/ja-WMRRUDVD.js +1 -0
- package/dist/ku-77V6NTW7.js +1 -0
- package/dist/{labeling-Br0U7E-5.d.ts → labeling-CxZWjZBN.d.ts} +1 -1
- package/dist/{labeling-B07AFOvn.d.cts → labeling-DG-Sc8VW.d.cts} +1 -1
- package/dist/{layout-D2zJUmzs.d.ts → layout-BxJIZjPm.d.cts} +19 -5
- package/dist/{layout-CpnMRaZF.d.cts → layout-C6YaCOnZ.d.ts} +19 -5
- package/dist/localeLoaders-2KZHFEV7.js +1 -0
- package/dist/lt-7ICKT4ED.js +1 -0
- package/dist/lv-NTO2456Y.js +1 -0
- package/dist/nl-IYEEWC4A.js +1 -0
- package/dist/no-CKH6R5N2.js +1 -0
- package/dist/pl-ALK57HKB.js +1 -0
- package/dist/pt-EYFSXBVZ.js +1 -0
- package/dist/{renderedQuality-TApmHr3Q.d.ts → renderedQuality-CWwy14lb.d.ts} +1 -1
- package/dist/{renderedQuality-sc_d2CfA.d.cts → renderedQuality-CgBQYezj.d.cts} +1 -1
- package/dist/{renderer-BiCXjFCG.d.ts → renderer-DIcDImOu.d.ts} +56 -1
- package/dist/{renderer-CXwpt_qs.d.cts → renderer-DmG3C8vD.d.cts} +56 -1
- package/dist/ro-EUFVCBVY.js +1 -0
- package/dist/ru-XAIYWENX.js +1 -0
- package/dist/{sections-DCRfHaw4.d.ts → sections-87qiciyN.d.ts} +1 -1
- package/dist/{sections-BjzyfqGZ.d.cts → sections-Bb0L9lDT.d.cts} +1 -1
- package/dist/{segmentedRowModel-jfYcGWPd.d.cts → segmentedRowModel-BqiM0U65.d.cts} +1 -1
- package/dist/{segmentedRowModel-DQggl3UO.d.ts → segmentedRowModel-CEP6crcl.d.ts} +1 -1
- package/dist/sk-QIOFO4TV.js +1 -0
- package/dist/sl-37I57K2X.js +1 -0
- package/dist/sr-HE5DILFD.js +1 -0
- package/dist/sv-7SVBFLY3.js +1 -0
- package/dist/{ticketRestrictions-BjEP4hnD.d.ts → ticketRestrictions-B_qXQobd.d.ts} +2 -2
- package/dist/{ticketRestrictions-ChYdOguf.d.cts → ticketRestrictions-Bj8PBX_x.d.cts} +2 -2
- package/dist/tr-JNA4YJEJ.js +1 -0
- package/dist/{types-BjTzKc2D.d.cts → types-DNztpn7q.d.cts} +9 -0
- package/dist/{types-BjTzKc2D.d.ts → types-DNztpn7q.d.ts} +9 -0
- package/dist/uk-2723G7DI.js +1 -0
- package/dist/view3d/crossfade/panorama.d.cts +1 -1
- package/dist/view3d/crossfade/panorama.d.ts +1 -1
- package/dist/view3d/index.cjs +31 -31
- package/dist/view3d/index.d.cts +86 -4
- package/dist/view3d/index.d.ts +86 -4
- package/dist/view3d/index.js +29 -29
- package/dist/zh-Hans-ONBXTDHV.js +1 -0
- package/dist/zh-Hant-LVTMHA6P.js +1 -0
- package/package.json +1 -1
- package/dist/ar-QWMSVFMH.js +0 -1
- package/dist/be-3GMEVW5Q.js +0 -1
- package/dist/bg-W46PKTS7.js +0 -1
- package/dist/ca-FS3NR6VL.js +0 -1
- package/dist/chunk-I6DNJFRF.js +0 -1
- package/dist/cs-I4AKSFRV.js +0 -1
- package/dist/cy-ABRR65RX.js +0 -1
- package/dist/da-HNKK3PNG.js +0 -1
- package/dist/de-QUOPPJF7.js +0 -1
- package/dist/el-DUXSH2LY.js +0 -1
- package/dist/es-57EA3CTI.js +0 -1
- package/dist/et-RBSHG6OS.js +0 -1
- package/dist/fa-MJIJUBSS.js +0 -1
- package/dist/fi-HKF3AVOV.js +0 -1
- package/dist/fr-4U5K5VNS.js +0 -1
- package/dist/he-MIVDM6KS.js +0 -1
- package/dist/hr-G7RZP6DQ.js +0 -1
- package/dist/hu-QZE26B6N.js +0 -1
- package/dist/it-L2XL6VR7.js +0 -1
- package/dist/ja-Q64SRIIE.js +0 -1
- package/dist/ku-OG466MA5.js +0 -1
- package/dist/localeLoaders-V5HTIO2J.js +0 -1
- package/dist/lt-P2CZWZZL.js +0 -1
- package/dist/lv-IRHTS7ME.js +0 -1
- package/dist/nl-6WSAK5IB.js +0 -1
- package/dist/no-3G67YZZR.js +0 -1
- package/dist/pl-DUYWY7BZ.js +0 -1
- package/dist/pt-FNIRQMIZ.js +0 -1
- package/dist/ro-BBYEYZIK.js +0 -1
- package/dist/ru-NMG7W5QE.js +0 -1
- package/dist/sk-HI2H44DR.js +0 -1
- package/dist/sl-RBLBICUL.js +0 -1
- package/dist/sr-SNARC3RS.js +0 -1
- package/dist/sv-R7ZWBQIL.js +0 -1
- package/dist/tr-2JJXM4IM.js +0 -1
- package/dist/uk-GTBKSNLF.js +0 -1
- package/dist/zh-Hans-4V7ZG3GP.js +0 -1
- package/dist/zh-Hant-XWV277CF.js +0 -1
package/dist/index.d.cts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { C as ChartDoc, P as Point, A as AccessibilityType, m as CategoryTier, g as SeatCommercialAttributes } from './types-
|
|
2
|
-
export { v as ACCESSIBILITY_RING_COLOR, w as ACCESSIBILITY_TYPES, x as AccessibilityMeta, y as AuthoringObjectState, B as BoothObject, o as Category, z as ChartLayoutConstraint, d as ChartObject, n as ChartReferenceImage, D as ChartTheme, E as ConfidenceEvidenceScope, t as CubicPath, H as DecorImageObject, F as Floor, G as GAAreaObject, l as GAInventorySegment, I as LABEL_STYLE_MAX_SIZE, J as LABEL_STYLE_MIN_SIZE, K as LabelPresentation, L as LabelStyle, O as ObjectEditorState, M as Physical3dEvidence, N as RadialClearanceLayoutConstraint, f as RectTableSeatCounts, c as RectTableSide, Q as ReferenceAccessibilitySource, U as ReferenceCalibration, V as ReferenceCategorySource, W as ReferenceDerivedScale, X as ReferenceEnrichmentStatus, Y as ReferenceExtractEmptyReason, Z as ReferenceExtractEnrichment, _ as ReferenceExtractInput, $ as ReferenceExtractProposal, a0 as ReferenceExtractRegionSeats, a1 as ReferenceInventoryExclusionSource, a2 as ReferenceInventorySource, a3 as ReferenceMatchReport, a4 as ReferenceScanProposal, a5 as ReferenceScanRowProposal, a6 as ReferenceScanSectionProposal, a7 as ReferenceSeatSeed, a8 as ReferenceSectionTraceBatchInput, a9 as ReferenceSectionTraceBatchProposal, aa as ReferenceSectionTraceInput, ab as ReferenceSectionTraceProposal, h as ResolvedSeatConfidenceEvidence, R as RowObject, ac as SEAT_COMMERCIAL_MARKS, ad as SURROUNDINGS_SHAPE_ROLES, ae as SeatCommercialMark, af as SeatCommercialMeta, ag as SeatConfidenceCoverage, ah as SeatConfidenceEvidence, ai as SeatConfidenceModelLevel, aj as SeatConfidenceModeledTarget, ak as SeatConfidenceRealityLevel, a as SeatGlyphKind, S as SeatOverride, i as SeatViewCoverage, b as SeatViewMetadata, al as SeatViewVariant, e as SectionObject, j as SectionOutlinePath, k as SectionPathSegment, am as SelectionLayer, p as ShapeLineCap, q as ShapeLineEnding, r as ShapeLineJoin, s as ShapeObject, T as TableObject, an as TextAlignment, ao as TextBackground, u as TextObject, ap as TicketTierApplicability, aq as TicketTierEvidence, ar as TicketTierRestriction, as as Venue3DMaterialPalette, at as VenueSurveyRegistrationEvidence, au as ZoneDef, av as accessibilityMeta, aw as accessibilityRingColor, ax as layerOf, ay as seatCommercialMeta } from './types-
|
|
3
|
-
import { E as EventConfigurationRef, a as EventConfigurationVersion } from './eventConfigurations-
|
|
4
|
-
export { b as EVENT_CONFIGURATION_EXPORT_SCHEMA, c as EVENT_CONFIGURATION_SCHEMA, d as EventConfigurationBaseVenue, e as EventConfigurationCompatibilityIssue, f as EventConfigurationCompatibilityIssueCode, g as EventConfigurationCompatibilityResult, h as EventConfigurationExportEnvelope, i as EventConfigurationLifecycleStatus, j as EventConfigurationOcclusion, k as EventConfigurationOverlay, l as EventConfigurationParseIssue, m as EventConfigurationParseIssueCode, n as EventConfigurationParseResult, o as EventConfigurationProductionElement, p as EventConfigurationProductionElementKind, q as EventConfigurationVenueSnapshot, r as EventConfigurationVersionParseResult, s as EventConfigurationVersionSummary, L as LegacyEventConfigurationMigrationResult, t as canTransitionEventConfiguration, u as canonicalEventConfigurationJson, v as inspectEventConfigurationCompatibility, w as migrateLegacyEventConfigurations, x as parseEventConfigurationExport, y as parseEventConfigurationVersion, z as resolveEventConfigurationRollback } from './eventConfigurations-
|
|
5
|
-
export { E as ExpandChartOptions, R as RowSeatSlot, T as TABLE_SEAT_OFFSET, a as TableSeatSlot, b as allObjects, c as chartBounds, e as expandBooth, d as expandChart, f as expandRow, g as expandRowSlots, h as expandTable, i as expandTableSlots, j as floorObjects, k as floorOverviewTranslations, l as floorsOf, m as floorsShareFootprint, n as layoutFloorOverview, o as layoutFloorRings, p as objectCenter, q as owningSectionForObject, r as pointInPolygon, s as pointInPolygonWithHoles, t as polygonLabelPoint, u as rowInventoryCount, v as rowSeatPositions, w as stackFloors, x as tableInventoryCount, y as tableSeatCountsBySide, z as translateObject } from './layout-
|
|
6
|
-
import { c as TicketSelectionIssue } from './ticketRestrictions-
|
|
7
|
-
export { M as MAX_EVENT_INVENTORY, a as MAX_GA_CAPACITY, g as gaAreasOf, h as gaInventorySegments, i as gaUnitLabel, j as gaUnitLabels, k as growJoinedGAInventory, l as isGaUnitLabel, v as validGAInventorySegments } from './ticketRestrictions-
|
|
8
|
-
export { A as AvailabilityRule, S as SectionNode, T as TIER_HEIGHT_M, U as UNGROUPED_ID, a as applyHidden, c as computeSections, h as hiddenObjectIds, i as isSectionHidden, s as sectionGeometry } from './sections-
|
|
9
|
-
export { R as RENDERED_QUALITY_REPORT_VERSION, a as RenderedEvidenceState, b as RenderedQualityFinding, c as RenderedQualityFindingCode, d as RenderedQualityReport, e as RenderedQualitySample, i as inspectRenderedQualityEvidence } from './renderedQuality-
|
|
10
|
-
import { I as ISeatmapRenderer, b as RendererOptions, S as SeatStatus, c as SeatMark, E as ExpandedSeat, G as GAAreaState, d as RendererViewMode, e as RendererMinimapSnapshot, L as LodRung, R as RendererQualityEvidence, f as RendererCallbacks } from './renderer-
|
|
11
|
-
export { C as CHART_STORAGE_KEY, g as RenderedBookableLabelEvidence, a as RenderedFreeTextEvidence, h as RenderedGAAreaEvidence, i as RenderedHierarchyLabelEvidence, j as RenderedLabelHiddenReason, k as RenderedRowLabelEvidence, l as RendererHoverDetails, m as RendererMinimapSeat, n as RendererMinimapSection, o as SeatMarkKind } from './renderer-
|
|
12
|
-
import './segmentedRowModel-
|
|
1
|
+
import { C as ChartDoc, P as Point, A as AccessibilityType, m as CategoryTier, g as SeatCommercialAttributes } from './types-DNztpn7q.cjs';
|
|
2
|
+
export { v as ACCESSIBILITY_RING_COLOR, w as ACCESSIBILITY_TYPES, x as AccessibilityMeta, y as AuthoringObjectState, B as BoothObject, o as Category, z as ChartLayoutConstraint, d as ChartObject, n as ChartReferenceImage, D as ChartTheme, E as ConfidenceEvidenceScope, t as CubicPath, H as DecorImageObject, F as Floor, G as GAAreaObject, l as GAInventorySegment, I as LABEL_STYLE_MAX_SIZE, J as LABEL_STYLE_MIN_SIZE, K as LabelPresentation, L as LabelStyle, O as ObjectEditorState, M as Physical3dEvidence, N as RadialClearanceLayoutConstraint, f as RectTableSeatCounts, c as RectTableSide, Q as ReferenceAccessibilitySource, U as ReferenceCalibration, V as ReferenceCategorySource, W as ReferenceDerivedScale, X as ReferenceEnrichmentStatus, Y as ReferenceExtractEmptyReason, Z as ReferenceExtractEnrichment, _ as ReferenceExtractInput, $ as ReferenceExtractProposal, a0 as ReferenceExtractRegionSeats, a1 as ReferenceInventoryExclusionSource, a2 as ReferenceInventorySource, a3 as ReferenceMatchReport, a4 as ReferenceScanProposal, a5 as ReferenceScanRowProposal, a6 as ReferenceScanSectionProposal, a7 as ReferenceSeatSeed, a8 as ReferenceSectionTraceBatchInput, a9 as ReferenceSectionTraceBatchProposal, aa as ReferenceSectionTraceInput, ab as ReferenceSectionTraceProposal, h as ResolvedSeatConfidenceEvidence, R as RowObject, ac as SEAT_COMMERCIAL_MARKS, ad as SURROUNDINGS_SHAPE_ROLES, ae as SeatCommercialMark, af as SeatCommercialMeta, ag as SeatConfidenceCoverage, ah as SeatConfidenceEvidence, ai as SeatConfidenceModelLevel, aj as SeatConfidenceModeledTarget, ak as SeatConfidenceRealityLevel, a as SeatGlyphKind, S as SeatOverride, i as SeatViewCoverage, b as SeatViewMetadata, al as SeatViewVariant, e as SectionObject, j as SectionOutlinePath, k as SectionPathSegment, am as SelectionLayer, p as ShapeLineCap, q as ShapeLineEnding, r as ShapeLineJoin, s as ShapeObject, T as TableObject, an as TextAlignment, ao as TextBackground, u as TextObject, ap as TicketTierApplicability, aq as TicketTierEvidence, ar as TicketTierRestriction, as as Venue3DMaterialPalette, at as VenueSurveyRegistrationEvidence, au as ZoneDef, av as accessibilityMeta, aw as accessibilityRingColor, ax as layerOf, ay as seatCommercialMeta } from './types-DNztpn7q.cjs';
|
|
3
|
+
import { E as EventConfigurationRef, a as EventConfigurationVersion } from './eventConfigurations-Csdxe89O.cjs';
|
|
4
|
+
export { b as EVENT_CONFIGURATION_EXPORT_SCHEMA, c as EVENT_CONFIGURATION_SCHEMA, d as EventConfigurationBaseVenue, e as EventConfigurationCompatibilityIssue, f as EventConfigurationCompatibilityIssueCode, g as EventConfigurationCompatibilityResult, h as EventConfigurationExportEnvelope, i as EventConfigurationLifecycleStatus, j as EventConfigurationOcclusion, k as EventConfigurationOverlay, l as EventConfigurationParseIssue, m as EventConfigurationParseIssueCode, n as EventConfigurationParseResult, o as EventConfigurationProductionElement, p as EventConfigurationProductionElementKind, q as EventConfigurationVenueSnapshot, r as EventConfigurationVersionParseResult, s as EventConfigurationVersionSummary, L as LegacyEventConfigurationMigrationResult, t as canTransitionEventConfiguration, u as canonicalEventConfigurationJson, v as inspectEventConfigurationCompatibility, w as migrateLegacyEventConfigurations, x as parseEventConfigurationExport, y as parseEventConfigurationVersion, z as resolveEventConfigurationRollback } from './eventConfigurations-Csdxe89O.cjs';
|
|
5
|
+
export { C as ChartBoundsOptions, E as ExpandChartOptions, R as RowSeatSlot, T as TABLE_SEAT_OFFSET, a as TableSeatSlot, b as allObjects, c as chartBounds, e as expandBooth, d as expandChart, f as expandRow, g as expandRowSlots, h as expandTable, i as expandTableSlots, j as floorObjects, k as floorOverviewTranslations, l as floorsOf, m as floorsShareFootprint, n as layoutFloorOverview, o as layoutFloorRings, p as objectCenter, q as owningSectionForObject, r as pointInPolygon, s as pointInPolygonWithHoles, t as polygonLabelPoint, u as rowInventoryCount, v as rowSeatPositions, w as stackFloors, x as tableInventoryCount, y as tableSeatCountsBySide, z as translateObject } from './layout-BxJIZjPm.cjs';
|
|
6
|
+
import { c as TicketSelectionIssue } from './ticketRestrictions-Bj8PBX_x.cjs';
|
|
7
|
+
export { M as MAX_EVENT_INVENTORY, a as MAX_GA_CAPACITY, g as gaAreasOf, h as gaInventorySegments, i as gaUnitLabel, j as gaUnitLabels, k as growJoinedGAInventory, l as isGaUnitLabel, v as validGAInventorySegments } from './ticketRestrictions-Bj8PBX_x.cjs';
|
|
8
|
+
export { A as AvailabilityRule, S as SectionNode, T as TIER_HEIGHT_M, U as UNGROUPED_ID, a as applyHidden, c as computeSections, h as hiddenObjectIds, i as isSectionHidden, s as sectionGeometry } from './sections-Bb0L9lDT.cjs';
|
|
9
|
+
export { R as RENDERED_QUALITY_REPORT_VERSION, a as RenderedEvidenceState, b as RenderedQualityFinding, c as RenderedQualityFindingCode, d as RenderedQualityReport, e as RenderedQualitySample, i as inspectRenderedQualityEvidence } from './renderedQuality-CgBQYezj.cjs';
|
|
10
|
+
import { I as ISeatmapRenderer, b as RendererOptions, S as SeatStatus, c as SeatMark, E as ExpandedSeat, G as GAAreaState, d as RendererViewMode, e as RendererMinimapSnapshot, L as LodRung, R as RendererQualityEvidence, f as RendererCallbacks } from './renderer-DmG3C8vD.cjs';
|
|
11
|
+
export { C as CHART_STORAGE_KEY, g as RenderedBookableLabelEvidence, a as RenderedFreeTextEvidence, h as RenderedGAAreaEvidence, i as RenderedHierarchyLabelEvidence, j as RenderedLabelHiddenReason, k as RenderedRowLabelEvidence, l as RendererHoverDetails, m as RendererMinimapSeat, n as RendererMinimapSection, o as SeatMarkKind } from './renderer-DmG3C8vD.cjs';
|
|
12
|
+
import './segmentedRowModel-BqiM0U65.cjs';
|
|
13
13
|
|
|
14
14
|
declare class SeatmapRenderer implements ISeatmapRenderer {
|
|
15
15
|
private container;
|
|
@@ -85,10 +85,10 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
|
|
|
85
85
|
private selection;
|
|
86
86
|
/** Seat-contained selection markers: outline + non-colour check cue. */
|
|
87
87
|
private selectionMarkers;
|
|
88
|
-
/**
|
|
89
|
-
private
|
|
90
|
-
/**
|
|
91
|
-
private
|
|
88
|
+
/** Selection markers, the pick moment and the touch loupe — see seatMoments. */
|
|
89
|
+
private momentsCache;
|
|
90
|
+
/** Overview marks for the sections the buyer holds seats in — see ownedSections. */
|
|
91
|
+
private ownedCache;
|
|
92
92
|
/** Held by this picker instance, not by another buyer. */
|
|
93
93
|
private ownedHold;
|
|
94
94
|
private seatMarks;
|
|
@@ -114,6 +114,8 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
|
|
|
114
114
|
private commercialLimitedFilter;
|
|
115
115
|
private sections;
|
|
116
116
|
private zones;
|
|
117
|
+
/** World boxes of the fixed landmarks hierarchy chips must not sit on. */
|
|
118
|
+
private landmarkBoxes;
|
|
117
119
|
private seatSection;
|
|
118
120
|
/** Seats outside every authored section retain the legacy path in one group. */
|
|
119
121
|
private unsectionedSeatGroup;
|
|
@@ -129,6 +131,10 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
|
|
|
129
131
|
private closedSections;
|
|
130
132
|
/** AXS section-focus: the currently-focused section id (others dim), or null. */
|
|
131
133
|
private focusedSectionId;
|
|
134
|
+
/** Tap point the focus was entered on (replayed on a resize refit), and
|
|
135
|
+
* whether a manual pan has since put the locator on the buyer's camera. */
|
|
136
|
+
private focusAnchor;
|
|
137
|
+
private focusRoams;
|
|
132
138
|
/** Light backdrop panel drawn behind the focused section (removed on clear). */
|
|
133
139
|
private focusBackdrop;
|
|
134
140
|
/** Non-listening visual dim outside the focused section. One overlay replaces
|
|
@@ -180,6 +186,8 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
|
|
|
180
186
|
private reducedMotion;
|
|
181
187
|
private readonly cameraGlideMs;
|
|
182
188
|
private fitScale;
|
|
189
|
+
/** Stage pose the last overview fit landed on — see zoomToFit. */
|
|
190
|
+
private fitPose;
|
|
183
191
|
/** Effective seat radius (base × theme.seatScale), set per chart in setChart. */
|
|
184
192
|
private seatR;
|
|
185
193
|
private bounds;
|
|
@@ -190,10 +198,40 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
|
|
|
190
198
|
private assetPromises;
|
|
191
199
|
private assetErrors;
|
|
192
200
|
private assetCancels;
|
|
201
|
+
/**
|
|
202
|
+
* Progressive reveal: what a big chart does instead of appearing all at once.
|
|
203
|
+
*
|
|
204
|
+
* Section shells paint with the chart doc; the seats then build a section at
|
|
205
|
+
* a time in idle slices, nearest the viewport first. Non-null only while that
|
|
206
|
+
* is in flight — every path that needs a complete scene right now (an export,
|
|
207
|
+
* a chart replacement, teardown) finishes or cancels it first.
|
|
208
|
+
*/
|
|
209
|
+
private seatReveal;
|
|
210
|
+
/**
|
|
211
|
+
* True from the moment `setChart` decides to defer the seats until the last
|
|
212
|
+
* one has landed — which starts BEFORE `seatReveal` exists, because the
|
|
213
|
+
* schedule is only created after the fit, and the fit itself runs the LOD
|
|
214
|
+
* pass that would otherwise bake an empty seat layer into the overview.
|
|
215
|
+
*/
|
|
216
|
+
private seatRevealPending;
|
|
217
|
+
/** Below this the whole scene is cheap enough to build in one step. */
|
|
218
|
+
private readonly progressiveSeatFloor;
|
|
219
|
+
private readonly loadingReveal;
|
|
220
|
+
/** Host callback for the moment the last section's seats finish arriving. */
|
|
221
|
+
private readonly onSeatsRevealed;
|
|
193
222
|
private rafId;
|
|
194
|
-
private frames;
|
|
195
|
-
private lastFpsAt;
|
|
196
223
|
private recacheTimer;
|
|
224
|
+
/**
|
|
225
|
+
* True between `setChart()` and the first overview bake of that chart.
|
|
226
|
+
*
|
|
227
|
+
* `setChart` → `zoomToFit` → `updateLOD` reaches the bake BEFORE the host has
|
|
228
|
+
* applied inventory; the picker then applies statuses and calls `forceDraw()`
|
|
229
|
+
* in the same task, throwing that bitmap away and building it again. Two full
|
|
230
|
+
* rasterizations of one chart for one paint — 19ms where 10 will do at 760
|
|
231
|
+
* seats. So the mount bake waits a tick: `forceDraw()` flushes it, and a host
|
|
232
|
+
* that never calls it bakes on the next tick instead.
|
|
233
|
+
*/
|
|
234
|
+
private mountCachePending;
|
|
197
235
|
private resizeObs;
|
|
198
236
|
/** Coalesces bursty view-change sources (pointermove, wheel) into ≤1 callback/frame. */
|
|
199
237
|
private viewChangeRaf;
|
|
@@ -208,6 +246,21 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
|
|
|
208
246
|
private get moved();
|
|
209
247
|
private isGhostClick;
|
|
210
248
|
/** Behavioural surface the gesture machine calls back into. */
|
|
249
|
+
/**
|
|
250
|
+
* The overlay-layer moments (marker, pop/pulse, loupe). Built once and kept:
|
|
251
|
+
* a pointermove drives the loupe, and allocating a host per frame would be
|
|
252
|
+
* paid for on exactly the device that can least afford it.
|
|
253
|
+
*/
|
|
254
|
+
private get moments();
|
|
255
|
+
/** The buyer's seats, still visible once the seats have melted into blocks. */
|
|
256
|
+
private get owned();
|
|
257
|
+
/**
|
|
258
|
+
* Where a tap on this section should land the camera: on the buyer's own
|
|
259
|
+
* seats when they have some in there, otherwise on the point they touched.
|
|
260
|
+
*/
|
|
261
|
+
private sectionTapAnchor;
|
|
262
|
+
/** World points of the seats in this section the buyer has taken or holds. */
|
|
263
|
+
private ownedSeatPoints;
|
|
211
264
|
private get pointerHost();
|
|
212
265
|
/**
|
|
213
266
|
* Manage-mode rubber-band marquee (option-gated). `start`/`cur` are WORLD-space
|
|
@@ -220,6 +273,36 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
|
|
|
220
273
|
setChart(doc: ChartDoc, opts?: {
|
|
221
274
|
floorId?: string;
|
|
222
275
|
}): void;
|
|
276
|
+
/**
|
|
277
|
+
* Should this chart's seats arrive a section at a time?
|
|
278
|
+
*
|
|
279
|
+
* Only when there are enough of them to be worth it, the host asked for it,
|
|
280
|
+
* and the scene is one a buyer will look at. An export renders once to a
|
|
281
|
+
* file: a reveal there would either be captured half-built or have to be
|
|
282
|
+
* finished synchronously anyway, which is the plain path with extra steps.
|
|
283
|
+
*/
|
|
284
|
+
private seatRevealWanted;
|
|
285
|
+
/**
|
|
286
|
+
* Build the seats a section at a time, nearest the buyer first.
|
|
287
|
+
*
|
|
288
|
+
* Every seat's STATUS is already in `statusById` (setChart seeds it, and the
|
|
289
|
+
* controller's inventory apply writes it whether or not a node exists yet),
|
|
290
|
+
* and node construction paints from it — so a section built late arrives with
|
|
291
|
+
* the right colours and never needs a second pass. That is the whole reason
|
|
292
|
+
* inventory can land during the build without re-rasterizing anything.
|
|
293
|
+
*/
|
|
294
|
+
private startSeatReveal;
|
|
295
|
+
/** Centre of what the buyer can currently see, in chart coordinates. */
|
|
296
|
+
private viewportCentreInChartSpace;
|
|
297
|
+
/**
|
|
298
|
+
* Complete an in-flight reveal NOW, synchronously.
|
|
299
|
+
*
|
|
300
|
+
* Anything that reads or replaces the whole scene — a chart swap, an export,
|
|
301
|
+
* quality evidence, teardown — must see every seat. The reveal is a way of
|
|
302
|
+
* spreading construction over time, never a scene that is allowed to stay
|
|
303
|
+
* incomplete.
|
|
304
|
+
*/
|
|
305
|
+
private cancelSeatReveal;
|
|
223
306
|
/** The chart to render: authored-coordinate overview, stacked 3D overview,
|
|
224
307
|
* the active floor, or the whole chart for single-floor charts. */
|
|
225
308
|
private floorView;
|
|
@@ -293,13 +376,15 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
|
|
|
293
376
|
* fire `onMarquee`. A near-zero drag reads as a click: clear the selection.
|
|
294
377
|
*/
|
|
295
378
|
private finishMarquee;
|
|
379
|
+
/** Throw a ring off one seat — "this is the one" without moving the camera. */
|
|
296
380
|
flashSeat(seatId: string, color?: string): void;
|
|
297
381
|
/**
|
|
298
382
|
* Pulse a section outline without moving the camera or mutating the authored
|
|
299
|
-
* geometry. The
|
|
300
|
-
*
|
|
383
|
+
* geometry. The halo lives in the non-listening overlay layer, so its
|
|
384
|
+
* apparent 4% lift never changes hit testing or selection bounds.
|
|
301
385
|
*/
|
|
302
386
|
flashSection(sectionId: string, color?: string): void;
|
|
387
|
+
private get flashHost();
|
|
303
388
|
private onKeyDown;
|
|
304
389
|
/** Nearest seat from `fromId` in a cardinal direction (aligned + close wins). */
|
|
305
390
|
private nearestSeat;
|
|
@@ -404,6 +489,11 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
|
|
|
404
489
|
/** Restore section-owned containers before applying another projection. */
|
|
405
490
|
private resetSectionProjection;
|
|
406
491
|
/** Node/cache context the shared seat-anchor pass reads and updates. */
|
|
492
|
+
/** Cached, unlike its siblings, because it holds only stable references and
|
|
493
|
+
* no camera reading that could go stale; setChart (which reassigns `seats`)
|
|
494
|
+
* drops it. It is also the hot one — `updateSeatGroupVisibility` builds it
|
|
495
|
+
* per visible section on every pointermove of a perspective pan. */
|
|
496
|
+
private seatAnchorContextCache;
|
|
407
497
|
private get seatAnchorContext();
|
|
408
498
|
/** Move native seat/booth hit shapes to or from their exact pinhole anchors. */
|
|
409
499
|
private applyExactSeatAnchors;
|
|
@@ -435,11 +525,18 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
|
|
|
435
525
|
private seatContainer;
|
|
436
526
|
/** True when a section belongs to the active logical section/zone focus. */
|
|
437
527
|
private sectionMatchesFocus;
|
|
438
|
-
/**
|
|
528
|
+
/**
|
|
529
|
+
* Visual opacity after the section-focus overlay is composed.
|
|
530
|
+
*
|
|
531
|
+
* Gated on the dim ACTUALLY BEING ON SCREEN, not merely on a focus existing.
|
|
532
|
+
* releaseSectionFocusDim drops the overlay on the buyer's first pan — free
|
|
533
|
+
* roaming across sections is the product behaviour, the glide is only an
|
|
534
|
+
* entrance — and reporting a stale 0.16 after that told the label pass that
|
|
535
|
+
* every neighbouring seat was invisible. Pan from a focused Stalls F to
|
|
536
|
+
* Grand Circle and its seats lost their numbers (owner report 2026-08-27),
|
|
537
|
+
* at a zoom where they were fully bright on screen.
|
|
538
|
+
*/
|
|
439
539
|
private focusedSeatOpacity;
|
|
440
|
-
/** Project a section outline through elevation + the active affine view and
|
|
441
|
-
* then into viewport pixels. The result is conservative (AABB), so a visible
|
|
442
|
-
* section is never clipped even for rotated or isometric outlines. */
|
|
443
540
|
private sectionScreenBounds;
|
|
444
541
|
/** Hide only section groups wholly outside a padded viewport at the live-seat
|
|
445
542
|
* rung. Overview caching always restores all groups first, so panning a
|
|
@@ -459,9 +556,8 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
|
|
|
459
556
|
* the small transient set aligned explicitly. Selection is capped in buyer
|
|
460
557
|
* mode, making this constant-sized work during the iso tween. */
|
|
461
558
|
private syncSeatOverlayPositions;
|
|
559
|
+
/** Build every seat + booth node — see render/seatScene.ts. */
|
|
462
560
|
private renderSeats;
|
|
463
|
-
/** A booth renders as a click-selectable rounded block (dims from the doc). */
|
|
464
|
-
private renderBoothUnit;
|
|
465
561
|
/**
|
|
466
562
|
* Build the centred accessibility glyph for a seat. Sized relative to the seat
|
|
467
563
|
* radius (so it always fills the marker at any zoom) and given a contrast-aware
|
|
@@ -547,13 +643,12 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
|
|
|
547
643
|
* strategy, not a visual state — never use it to route a tap.
|
|
548
644
|
*/
|
|
549
645
|
seatsRevealed(): boolean;
|
|
550
|
-
/**
|
|
646
|
+
/**
|
|
647
|
+
* Draw (or replace) the focus treatment: the light backdrop panel behind the
|
|
648
|
+
* focused section, and the dim that pushes the rest of the venue back.
|
|
649
|
+
*/
|
|
551
650
|
private drawFocusBackdrop;
|
|
552
|
-
|
|
553
|
-
* opacity would make Konva recursively invalidate absolute-opacity caches on
|
|
554
|
-
* all 14k descendants. The cut-out follows the live elevation offset and is
|
|
555
|
-
* non-listening, so direct seat hit-testing is unchanged. */
|
|
556
|
-
private drawFocusDimOverlay;
|
|
651
|
+
private get focusBackdropHost();
|
|
557
652
|
/** Repaint every seat + section block to reflect closed/focus state, then redraw. */
|
|
558
653
|
private repaintSectionsAndSeats;
|
|
559
654
|
/** The world-space rectangle currently visible in the viewport (minimap F3). */
|
|
@@ -622,12 +717,18 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
|
|
|
622
717
|
* sale: a block with no price keeps the neutral treatment.
|
|
623
718
|
*/
|
|
624
719
|
private dominantSellableColor;
|
|
625
|
-
private get sectionLodPaintContext();
|
|
626
720
|
/**
|
|
627
|
-
*
|
|
628
|
-
*
|
|
629
|
-
*
|
|
721
|
+
* Free seats in this section that satisfy the active accessibility filter.
|
|
722
|
+
*
|
|
723
|
+
* The count, not a boolean, because the block rung has two jobs for it: mark
|
|
724
|
+
* the sections that have anything at all, and tell the buyer how much. Zero
|
|
725
|
+
* when no filter is on — nothing at that rung asks the question then, and
|
|
726
|
+
* walking every section's members on every paint to answer an unasked
|
|
727
|
+
* question is exactly the per-frame cost this rung exists to avoid.
|
|
630
728
|
*/
|
|
729
|
+
private sectionAccessibleFree;
|
|
730
|
+
private get sectionLodPaintContext();
|
|
731
|
+
/** Build the zone pills (name + FROM price) — see render/zoneScene.ts. */
|
|
631
732
|
private renderZones;
|
|
632
733
|
/**
|
|
633
734
|
* Map a container-relative screen point back to world coords. Inverts the
|
|
@@ -643,6 +744,20 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
|
|
|
643
744
|
/** Seat ids belonging to a section (Slice 5 section-summary card). */
|
|
644
745
|
sectionMembers(id: string): string[];
|
|
645
746
|
private isSelectable;
|
|
747
|
+
/**
|
|
748
|
+
* Is this seat out of the sale purely because the accessibility filter is on?
|
|
749
|
+
*
|
|
750
|
+
* The filter used to be paint only: non-matching seats dimmed to 25% and were
|
|
751
|
+
* still selectable, so a buyer who turned on "wheelchair-accessible seats"
|
|
752
|
+
* could — and did — pick a faded ordinary seat and never learn why the map
|
|
753
|
+
* looked odd. A filter that does not filter is a lie about the inventory.
|
|
754
|
+
*
|
|
755
|
+
* Kept separate from {@link isSelectable} because the answer is also the
|
|
756
|
+
* REASON: everything downstream (the tap explanation, the toast, best-seats)
|
|
757
|
+
* needs to distinguish "sold" from "you filtered this out", which is
|
|
758
|
+
* reversible by one tap.
|
|
759
|
+
*/
|
|
760
|
+
private hiddenByAccessFilter;
|
|
646
761
|
private toggleSeat;
|
|
647
762
|
/**
|
|
648
763
|
* Selection/hover ring color. An explicit theme.selectionColor always wins;
|
|
@@ -656,45 +771,16 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
|
|
|
656
771
|
private resolveCanvasBackground;
|
|
657
772
|
private resolveSelectionColor;
|
|
658
773
|
private setSelected;
|
|
659
|
-
/** Rebuild one marker after selected/held/candidate state changes. */
|
|
774
|
+
/** Rebuild one seat's marker after selected/held/candidate state changes. */
|
|
660
775
|
private syncSelectionMarker;
|
|
661
|
-
/**
|
|
662
|
-
* Fade a marker whose seat is no longer the buyer's, then destroy it. Reduced
|
|
663
|
-
* motion (and a hidden tab, where rAF never runs) drops it immediately —
|
|
664
|
-
* a node kept alive by an animation that will never tick is a leak.
|
|
665
|
-
*/
|
|
666
|
-
private retireSelectionMarker;
|
|
667
|
-
/**
|
|
668
|
-
* The pick moment: the seat marker pops, and a ring in the seat's own
|
|
669
|
-
* category colour expands out of it and fades. Fired only for the buyer's
|
|
670
|
-
* own tap — a bulk/marquee select would otherwise spawn one animation per
|
|
671
|
-
* seat, and a programmatic selection has no finger to answer.
|
|
672
|
-
*
|
|
673
|
-
* Reduced motion skips both; the persistent halo (which is the part that
|
|
674
|
-
* carries information) is drawn by syncSelectionMarker either way.
|
|
675
|
-
*/
|
|
776
|
+
/** The buyer's own pick: pop the marker and throw a pulse ring out of it. */
|
|
676
777
|
private playSeatPickMoment;
|
|
677
|
-
/**
|
|
678
|
-
* THE FINGER IS ON TOP OF THE SEAT. A fingertip covers roughly 45 screen
|
|
679
|
-
* pixels of a map whose seats are 24, so at the moment of picking, the buyer
|
|
680
|
-
* cannot see the thing they are picking — including whether it is the seat
|
|
681
|
-
* they meant. While a single finger is held down over a seat, a lens floats
|
|
682
|
-
* ~70px above it carrying that seat's colour, name and price.
|
|
683
|
-
*
|
|
684
|
-
* Touch only: nothing occludes a mouse or a pen. Tap semantics are untouched
|
|
685
|
-
* — selection still happens on release, through the same handlers.
|
|
686
|
-
*/
|
|
778
|
+
/** A finger is on a seat — lift it out from under the fingertip, and back. */
|
|
687
779
|
private showTouchLoupe;
|
|
688
|
-
/** Build the lens once and keep it — a press is not the time to allocate. */
|
|
689
|
-
private buildTouchLoupe;
|
|
690
|
-
/** Put the lens away — pointer up, cancel, or the press turning into a pan. */
|
|
691
780
|
private hideTouchLoupe;
|
|
692
781
|
/**
|
|
693
|
-
* The
|
|
694
|
-
*
|
|
695
|
-
* redirecting a seat tap to section-focus would actually zoom in FURTHER, or
|
|
696
|
-
* whether the section already fills the viewport (small container) so the tap
|
|
697
|
-
* must fall through and pick.
|
|
782
|
+
* The world rect that frames one whole section — outline, member seats,
|
|
783
|
+
* annotations, icons and placed row labels. See sectionCameraBounds.
|
|
698
784
|
*/
|
|
699
785
|
private sectionBounds;
|
|
700
786
|
private sectionFrameScale;
|
|
@@ -709,22 +795,12 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
|
|
|
709
795
|
* fall through and PICK. This is the invariant: seats are never unpickable.
|
|
710
796
|
*/
|
|
711
797
|
private handleSeatTap;
|
|
712
|
-
/**
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
* so a near-miss on mobile still lands on the intended seat, without ever
|
|
716
|
-
* hijacking a clean tap on empty space beyond the slop.
|
|
717
|
-
*/
|
|
798
|
+
/** Deck under the pointer in the 3D stacked overview — see screenPicking. */
|
|
799
|
+
private deckFloorAt;
|
|
800
|
+
/** Nearest selectable seat within `slopPx` of a screen point, or null. */
|
|
718
801
|
private nearestSeatToScreen;
|
|
802
|
+
private get screenPickingHost();
|
|
719
803
|
private wireInteraction;
|
|
720
|
-
/**
|
|
721
|
-
* Which deck (floor) a screen tap landed on in the 3D stacked overview. The
|
|
722
|
-
* seat layer is melt-cached at that zoom so individual seat nodes aren't
|
|
723
|
-
* hit-testable; instead we invert the iso+stage transform via the layer's
|
|
724
|
-
* relative pointer and take the nearest seat's floor. Only the floor matters,
|
|
725
|
-
* so within-floor elevation offsets don't affect the result. Null if none.
|
|
726
|
-
*/
|
|
727
|
-
private deckFloorAt;
|
|
728
804
|
/**
|
|
729
805
|
* Min is chart-relative (never lose the room); max is absolute so seats
|
|
730
806
|
* reach a readable size on any chart, however large the venue.
|
|
@@ -771,6 +847,18 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
|
|
|
771
847
|
private seatLabelTargetScale;
|
|
772
848
|
/** Recompute LOD (cache/labels) after any pan/zoom settles. */
|
|
773
849
|
private afterViewChange;
|
|
850
|
+
/**
|
|
851
|
+
* A camera move has FINISHED: drop any onViewChange scheduled from a frame
|
|
852
|
+
* the camera was merely passing through, and schedule exactly one from the
|
|
853
|
+
* settled state. Without it a backdrop tap (clearSectionFocus + zoomToFit)
|
|
854
|
+
* left the widget's deep state on the pre-settle reading — the map back at
|
|
855
|
+
* the overview, the chrome still saying the buyer was inside a section.
|
|
856
|
+
*/
|
|
857
|
+
private settleView;
|
|
858
|
+
/** Once the buyer is roaming, the locator names what is ON SCREEN rather than
|
|
859
|
+
* what they tapped — WITHOUT moving the camera. Retargeting is a
|
|
860
|
+
* relabelling; a glide here would fight the pan that caused it. */
|
|
861
|
+
private retargetRoamingFocus;
|
|
774
862
|
/** rAF-coalesced `onViewChange` — at most one host callback per animation frame. */
|
|
775
863
|
private scheduleViewChange;
|
|
776
864
|
/** Keep focal labels centred while their world font size tracks camera scale. */
|
|
@@ -780,21 +868,7 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
|
|
|
780
868
|
* debounced cacheSeatLayer() and the synchronous forceDraw() catch-up. */
|
|
781
869
|
private rebuildSeatCache;
|
|
782
870
|
private cacheSeatLayer;
|
|
783
|
-
/**
|
|
784
|
-
* Drop the seat-layer overview bitmap while PRESERVING every descendant's
|
|
785
|
-
* cached local transform + clientRect.
|
|
786
|
-
*
|
|
787
|
-
* Konva's public `Layer.clearCache()` releases the bitmap and then runs a deep
|
|
788
|
-
* `_clearSelfAndDescendantCache()` that clears those caches on all 14k seat
|
|
789
|
-
* nodes. Recomputing them on the single frame the melt first reveals a section's
|
|
790
|
-
* live seats is the ~480ms first-drill stall (OV-80). A camera glide only marks
|
|
791
|
-
* each seat's ABSOLUTE_TRANSFORM dirty (recomputed lazily at ordinary pan cost)
|
|
792
|
-
* and never moves a seat's LOCAL transform, so the local caches stay valid —
|
|
793
|
-
* keeping them lets the first melt paint at pan cost, matching the ~17ms of
|
|
794
|
-
* every subsequent glide on the same section. Any edit that actually moves a
|
|
795
|
-
* seat invalidates its own transform cache through the attr setter, so only
|
|
796
|
-
* still-valid caches survive here.
|
|
797
|
-
*/
|
|
871
|
+
/** See `render/seatLayerBitmap.releaseLayerBitmap` — NOT `clearCache()`. */
|
|
798
872
|
private releaseSeatLayerBitmap;
|
|
799
873
|
/**
|
|
800
874
|
* SYNCHRONOUS repaint that bypasses requestAnimationFrame — see the
|
|
@@ -839,7 +913,6 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
|
|
|
839
913
|
private updateLabels;
|
|
840
914
|
private get viewportLabelContext();
|
|
841
915
|
private handleResize;
|
|
842
|
-
private startFpsLoop;
|
|
843
916
|
}
|
|
844
917
|
declare function createRenderer(container: HTMLDivElement, opts?: RendererOptions): ISeatmapRenderer;
|
|
845
918
|
|
|
@@ -919,6 +992,15 @@ interface SeatHoverDetails extends PickerSeat {
|
|
|
919
992
|
mark?: SeatMark | null;
|
|
920
993
|
/** A deliberate press pins interactive details; hover remains preview-only. */
|
|
921
994
|
interaction?: 'hover' | 'press';
|
|
995
|
+
/**
|
|
996
|
+
* The press landed on a seat that cannot be taken (held by another buyer,
|
|
997
|
+
* sold, not for sale, filtered out). Touch has no hover, so this is how a
|
|
998
|
+
* finger gets the explanation a mouse gets for free.
|
|
999
|
+
*/
|
|
1000
|
+
unavailable?: boolean;
|
|
1001
|
+
/** Unavailable ONLY because the buyer's accessibility filter is on — one tap
|
|
1002
|
+
* from being takeable again, so the host prompts rather than refuses. */
|
|
1003
|
+
filteredOut?: boolean;
|
|
922
1004
|
}
|
|
923
1005
|
interface PickerGAArea {
|
|
924
1006
|
id: string;
|
|
@@ -985,6 +1067,12 @@ interface SectionSummary {
|
|
|
985
1067
|
color: string;
|
|
986
1068
|
/** Free member seats right now. */
|
|
987
1069
|
seatsLeft: number;
|
|
1070
|
+
/**
|
|
1071
|
+
* Free member seats matching the buyer's accessibility filter. Present ONLY
|
|
1072
|
+
* while a filter is on — a card that always said "0 accessible" would report
|
|
1073
|
+
* the filter's absence as an absence of provision.
|
|
1074
|
+
*/
|
|
1075
|
+
accessibleLeft?: number;
|
|
988
1076
|
priceMin: number;
|
|
989
1077
|
priceMax: number;
|
|
990
1078
|
/** Per-category breakdown, cheapest first. */
|
|
@@ -1218,6 +1306,15 @@ interface PickerOptions extends PickerCallbacks {
|
|
|
1218
1306
|
flashOnLiveChange?: boolean;
|
|
1219
1307
|
/** Start in colorblind-safe rendering (Okabe-Ito hues + hollow booked seats). */
|
|
1220
1308
|
colorblindSafe?: boolean;
|
|
1309
|
+
/**
|
|
1310
|
+
* How a big chart's seats arrive: 'progressive' (default) shows the venue's
|
|
1311
|
+
* sections as soon as the chart doc lands and fills the seats in a section at
|
|
1312
|
+
* a time, nearest the viewport first; 'plain' builds the whole scene in one
|
|
1313
|
+
* step, as every chart used to.
|
|
1314
|
+
*/
|
|
1315
|
+
loadingReveal?: 'progressive' | 'plain';
|
|
1316
|
+
/** Every seat of a progressively revealed chart is now on screen. */
|
|
1317
|
+
onSeatsRevealed?: () => void;
|
|
1221
1318
|
/**
|
|
1222
1319
|
* Keep painting seat-status deltas even while the tab is hidden/backgrounded.
|
|
1223
1320
|
*
|
|
@@ -1271,6 +1368,19 @@ interface PickerRenderPerformanceProfile {
|
|
|
1271
1368
|
firstPaint: number;
|
|
1272
1369
|
startRealtime: number;
|
|
1273
1370
|
controllerTotal: number;
|
|
1371
|
+
/** Buyer chrome up with the loading skeleton in the map host. Widget-owned. */
|
|
1372
|
+
skeletonPaint?: number;
|
|
1373
|
+
/** Section shells on screen — the first frame that shows the actual venue. */
|
|
1374
|
+
shellsPaint?: number;
|
|
1375
|
+
/**
|
|
1376
|
+
* Every seat on screen, measured from the same start as the rest.
|
|
1377
|
+
*
|
|
1378
|
+
* Filled in AFTER `render()` resolves, on the profile object it returned:
|
|
1379
|
+
* a progressive reveal is by definition still finishing when the chart is
|
|
1380
|
+
* usable, and pretending otherwise would be the number this whole change
|
|
1381
|
+
* exists to stop reporting.
|
|
1382
|
+
*/
|
|
1383
|
+
seatsComplete?: number;
|
|
1274
1384
|
}
|
|
1275
1385
|
/**
|
|
1276
1386
|
* The subset of `ChartTheme` a HOST may override on the drawn canvas.
|
|
@@ -1609,7 +1719,19 @@ declare class PickerController {
|
|
|
1609
1719
|
y: number;
|
|
1610
1720
|
};
|
|
1611
1721
|
setSelectionFocus(seatId: string | null): void;
|
|
1722
|
+
/**
|
|
1723
|
+
* The buyer's accessibility filter, remembered here as well as pushed at the
|
|
1724
|
+
* renderer.
|
|
1725
|
+
*
|
|
1726
|
+
* The renderer owns the paint; the controller owns everything the paint is
|
|
1727
|
+
* not — the section summaries the dock bar reads, best-available, and the
|
|
1728
|
+
* host's own queries. Keeping a copy is what lets those answer the filter
|
|
1729
|
+
* without reaching into the canvas for it.
|
|
1730
|
+
*/
|
|
1731
|
+
private accessFilter;
|
|
1612
1732
|
setAccessibilityFilter(types: string[] | null): void;
|
|
1733
|
+
/** The buyer's active accessibility filter, or null. */
|
|
1734
|
+
getAccessibilityFilter(): AccessibilityType[] | null;
|
|
1613
1735
|
/**
|
|
1614
1736
|
* "Hide limited-view seats" toggle — dims free seats flagged
|
|
1615
1737
|
* restricted/obstructed view. Additive commercial parallel to the
|
|
@@ -1699,8 +1821,9 @@ declare class PickerController {
|
|
|
1699
1821
|
* closed section is framed but never opens a buyer card. */
|
|
1700
1822
|
private handleSectionTap;
|
|
1701
1823
|
/**
|
|
1702
|
-
* Build a section summary from the renderer's spatial membership
|
|
1703
|
-
*
|
|
1824
|
+
* Build a section summary from the renderer's spatial membership. The
|
|
1825
|
+
* derivation itself lives in pickerSectionSummary.ts — it reads nothing this
|
|
1826
|
+
* object owns beyond four values, and this file is at its size cap.
|
|
1704
1827
|
*/
|
|
1705
1828
|
private sectionSummary;
|
|
1706
1829
|
destroy(): void;
|