@seatlayer/core 0.75.2 → 0.77.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-ESLFQEY3.js +1 -0
- package/dist/be-7WI4WG2B.js +1 -0
- package/dist/bg-KKEOOUYL.js +1 -0
- package/dist/ca-L36KKI76.js +1 -0
- package/dist/{categoryInventory-Cy5pQ0KW.d.ts → categoryInventory-C_NIm0jr.d.ts} +1 -1
- package/dist/{categoryInventory-CBuJy9KM.d.cts → categoryInventory-IgpsH6KG.d.cts} +1 -1
- package/dist/chunk-QJXSZT3H.js +1 -0
- package/dist/chunk-SGYNM3SG.js +1 -0
- package/dist/core/chart-ops/index.d.cts +5 -5
- package/dist/core/chart-ops/index.d.ts +5 -5
- package/dist/core/inventory/index.cjs +1 -1
- package/dist/core/inventory/index.d.cts +4 -4
- package/dist/core/inventory/index.d.ts +4 -4
- package/dist/core/layout/index.d.cts +5 -5
- package/dist/core/layout/index.d.ts +5 -5
- 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/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/cs-2IEWVOHA.js +1 -0
- package/dist/cy-A5YBQD5Q.js +1 -0
- package/dist/da-IDXUY3QI.js +1 -0
- package/dist/de-L5PFY4CY.js +1 -0
- package/dist/el-4DPNHJGB.js +1 -0
- package/dist/es-IMADA3UR.js +1 -0
- package/dist/et-G6PPK4SF.js +1 -0
- package/dist/{eventConfigurations-CqfrYWAb.d.cts → eventConfigurations-71rHjKl7.d.ts} +5 -5
- package/dist/{eventConfigurations-Dhauc9V3.d.ts → eventConfigurations-vOMFVz7c.d.cts} +5 -5
- package/dist/fa-3RYGYXBU.js +1 -0
- package/dist/fi-KRSYZSV4.js +1 -0
- package/dist/fr-FOSKFLMV.js +1 -0
- package/dist/he-RXSGTRSH.js +1 -0
- package/dist/hr-IMBN4Z7O.js +1 -0
- package/dist/hu-UYWLVBH3.js +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +226 -133
- package/dist/index.d.ts +226 -133
- package/dist/index.js +1 -1
- package/dist/it-ZAWFQCOM.js +1 -0
- package/dist/ja-QZGXTROI.js +1 -0
- package/dist/ku-ZCTX4KKG.js +1 -0
- package/dist/{labeling-BwPEI5JN.d.ts → labeling-BnjyAEbI.d.ts} +1 -1
- package/dist/{labeling-B1xsmowB.d.cts → labeling-pdEv7UN1.d.cts} +1 -1
- package/dist/localeLoaders-BZZWN35C.js +1 -0
- package/dist/lt-N2OMHLDZ.js +1 -0
- package/dist/lv-WLIXXNIX.js +1 -0
- package/dist/nl-LZILGXRW.js +1 -0
- package/dist/no-2OJ4BSZI.js +1 -0
- package/dist/pl-FZUMWN56.js +1 -0
- package/dist/pt-R4XWF7UT.js +1 -0
- package/dist/{renderedQuality-1E9KuJvY.d.cts → renderedQuality-CRLkEGf8.d.cts} +1 -1
- package/dist/{renderedQuality-ChAZNV2N.d.ts → renderedQuality-DN8SFFjk.d.ts} +1 -1
- package/dist/{renderer-BRmVrITG.d.cts → renderer-B6kkgOHz.d.cts} +43 -1
- package/dist/{renderer-q7viZLGZ.d.ts → renderer-ByLmyQe_.d.ts} +43 -1
- package/dist/ro-WK3CNXGW.js +1 -0
- package/dist/ru-AGP7UPXQ.js +1 -0
- package/dist/{sections-CA-bBex5.d.cts → sections-CQ0sd37E.d.cts} +1 -1
- package/dist/{sections-ByTMouG8.d.ts → sections-F6wMlVqx.d.ts} +1 -1
- package/dist/{segmentedRowModel-DcvJVKLD.d.ts → segmentedRowModel-D-CEgxg7.d.ts} +1 -1
- package/dist/{segmentedRowModel-C7XOEjHk.d.cts → segmentedRowModel-DqFhb-7Q.d.cts} +1 -1
- package/dist/sk-LNR3ENI4.js +1 -0
- package/dist/sl-UG367TMJ.js +1 -0
- package/dist/sr-IHG5CL3F.js +1 -0
- package/dist/sv-RIFQBC5U.js +1 -0
- package/dist/{tableSizing-D8e8QAJ-.d.ts → tableSizing-B0JegL6B.d.ts} +3 -3
- package/dist/{tableSizing-BdCyNeqX.d.cts → tableSizing-DKygWd7z.d.cts} +3 -3
- package/dist/{ticketRestrictions-CorjMY49.d.ts → ticketRestrictions-Bp7ET0j4.d.ts} +2 -2
- package/dist/{ticketRestrictions-CPZglNvw.d.cts → ticketRestrictions-CvGDnGS8.d.cts} +2 -2
- package/dist/tr-LWSQYBXN.js +1 -0
- package/dist/{types-CqaNLbU6.d.ts → types-Dq-ipTBG.d.cts} +13 -15
- package/dist/{types-CqaNLbU6.d.cts → types-Dq-ipTBG.d.ts} +13 -15
- package/dist/uk-ZSWFWCW7.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 +27 -27
- package/dist/view3d/index.d.cts +3 -3
- package/dist/view3d/index.d.ts +3 -3
- package/dist/view3d/index.js +25 -25
- package/dist/view3d/scene/scene.worker.cjs +1 -1
- package/dist/view3d/scene/scene.worker.js +1 -1
- package/dist/zh-Hans-P4CJH4VJ.js +1 -0
- package/dist/zh-Hant-X7CHEXML.js +1 -0
- package/package.json +1 -1
- package/dist/ar-JOSU54ZZ.js +0 -1
- package/dist/be-UDIVAZGH.js +0 -1
- package/dist/bg-AJX2SNK4.js +0 -1
- package/dist/ca-MC23KMQH.js +0 -1
- package/dist/chunk-JQL77POQ.js +0 -1
- package/dist/cs-Q4OEV3NE.js +0 -1
- package/dist/cy-TPDRMPTK.js +0 -1
- package/dist/da-U6XXTCII.js +0 -1
- package/dist/de-ZV54ZWHR.js +0 -1
- package/dist/el-5VQKNNQV.js +0 -1
- package/dist/es-Y3BNIAEW.js +0 -1
- package/dist/et-HCCA6TE3.js +0 -1
- package/dist/fa-SZ3EAODM.js +0 -1
- package/dist/fi-S34TMT35.js +0 -1
- package/dist/fr-RQIXNHQ5.js +0 -1
- package/dist/he-PPNABESI.js +0 -1
- package/dist/hr-IZOGRWC5.js +0 -1
- package/dist/hu-K7EOGFAB.js +0 -1
- package/dist/it-PD5WJDNR.js +0 -1
- package/dist/ja-3CFZ2KK6.js +0 -1
- package/dist/ku-MQJTRLDV.js +0 -1
- package/dist/localeLoaders-ETY2H7H3.js +0 -1
- package/dist/lt-6Q5DJHXR.js +0 -1
- package/dist/lv-BQ3LWGW6.js +0 -1
- package/dist/nl-ZPVH2YGT.js +0 -1
- package/dist/no-R7I6YW7N.js +0 -1
- package/dist/pl-EU2O5DYI.js +0 -1
- package/dist/pt-UMSFOY5P.js +0 -1
- package/dist/ro-GR35LU2L.js +0 -1
- package/dist/ru-CXYAZQEV.js +0 -1
- package/dist/sk-GUB52YMC.js +0 -1
- package/dist/sl-J7N6LDON.js +0 -1
- package/dist/sr-A7GQEH7K.js +0 -1
- package/dist/sv-ARLHHSPZ.js +0 -1
- package/dist/tr-6TE3U7WM.js +0 -1
- package/dist/uk-RMVPSRMH.js +0 -1
- package/dist/zh-Hans-SNO4DA32.js +0 -1
- package/dist/zh-Hant-TVIKBD5S.js +0 -1
package/dist/index.d.cts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { C as ChartDoc, F as FloorLabelStyle, P as Point, A as AccessibilityType, i as CategoryTier, S as SeatCommercialAttributes, w as ChartDeliveryPerformance } from './types-
|
|
2
|
-
export { x as ACCESSIBILITY_RING_COLOR, y as ACCESSIBILITY_TYPES, z as AccessibilityMeta, D as AuthoringObjectState, B as BoothObject, p as Category, E as ChartLayoutConstraint, a as ChartObject, o as ChartReferenceImage, H as ChartTheme, I as ConfidenceEvidenceScope, u as CubicPath, J as DecorImageObject, m as Floor, G as GAAreaObject, h as GAInventorySegment, K as LABEL_STYLE_MAX_SIZE, M as LABEL_STYLE_MIN_SIZE, N as LabelPresentation, L as LabelStyle, O as ObjectEditorState, Q as Physical3dEvidence, U as RadialClearanceLayoutConstraint, n as RectTableSeatCounts, l as RectTableSide, V as ReferenceAccessibilitySource, W as ReferenceCalibration, X as ReferenceCategorySource, Y as ReferenceDerivedScale, Z as ReferenceDirectAnnotationSource, _ as ReferenceDirectLandmarkCandidate, $ as ReferenceDirectLandmarkDisposition, a0 as ReferenceDirectLandmarkRole, a1 as ReferenceDirectLandmarkSource, a2 as ReferenceDirectSeatGroup, a3 as ReferenceDirectSeatImportSource, a4 as ReferenceDirectSeatPlan, a5 as ReferenceDirectStageSource, a6 as ReferenceEnrichmentStatus, a7 as ReferenceExtractEmptyReason, a8 as ReferenceExtractEnrichment, a9 as ReferenceExtractInput, aa as ReferenceExtractProposal, ab as ReferenceExtractRegionSeats, ac as ReferenceInventoryExclusionSource, ad as ReferenceInventorySource, ae as ReferenceMatchReport, af as ReferenceScanProposal, ag as ReferenceScanRowProposal, ah as ReferenceScanSectionProposal, ai as ReferenceSeatSeed, aj as ReferenceSectionTraceBatchInput, ak as ReferenceSectionTraceBatchProposal, al as ReferenceSectionTraceInput, am as ReferenceSectionTraceProposal, c as ResolvedSeatConfidenceEvidence, R as RowObject, an as SEAT_COMMERCIAL_MARKS, ao as STAGE_LABEL_STYLE_MAX_SIZE, ap as SURROUNDINGS_SHAPE_ROLES, aq as SeatCommercialMark, ar as SeatCommercialMeta, as as SeatConfidenceCoverage, at as SeatConfidenceEvidence, au as SeatConfidenceModelLevel, av as SeatConfidenceModeledTarget, aw as SeatConfidenceRealityLevel, d as SeatGlyphKind, k as SeatOverride, e as SeatViewCoverage, b as SeatViewMetadata, ax as SeatViewVariant, j as SectionObject, f as SectionOutlinePath, g as SectionPathSegment, ay as SelectionLayer, q as ShapeLineCap, r as ShapeLineEnding, s as ShapeLineJoin, t as ShapeObject, az as StageLabelStyle, T as TableObject, aA as TextAlignment, aB as TextBackground, v as TextObject, aC as TicketTierApplicability, aD as TicketTierEvidence, aE as TicketTierRestriction, aF as Venue3DMaterialPalette, aG as VenueSurveyRegistrationEvidence, aH as ZoneDef, aI as accessibilityMeta, aJ as accessibilityRingColor, aK as layerOf, aL as seatCommercialMeta } from './types-
|
|
3
|
-
import {
|
|
4
|
-
export {
|
|
5
|
-
export { A as AUTOMATIC_ROUND_TABLE_RADIUS_MAX, a as AUTOMATIC_ROUND_TABLE_RADIUS_MIN, C as ChartBoundsOptions, E as ExpandChartOptions, F as FLOOR_STACK_GAP_RATIO, b as FLOOR_STACK_MIN_SURFACE_PX, c as FloorStackOptions, d as FloorStackPlacement, R as RowSeatSlot, T as TABLE_SEAT_OFFSET, e as TableSeatSlot, f as allObjects, g as automaticRoundTableRadius, h as chartBounds, i as expandBooth, j as expandChart, k as expandRow, l as expandRowSlots, m as expandTable, n as expandTableSlots, o as floorObjects, p as floorStackPlacements, q as floorsOf, r as initialFloorMode, s as layoutFloorStack, t as mainFloorId, u as objectCenter, v as owningSectionForObject, w as pointInPolygon, x as pointInPolygonWithHoles, y as polygonLabelPoint, z as rowInventoryCount, B as rowSeatPositions, D as stackFloors, G as tableInventoryCount, H as tableSeatCountsBySide, I as translateObject } from './tableSizing-
|
|
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 { M as MIN_POINTER_TARGET_PX, 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, F as FloorLabelStyle, P as Point, A as AccessibilityType, i as CategoryTier, S as SeatCommercialAttributes, w as ChartDeliveryPerformance } from './types-Dq-ipTBG.cjs';
|
|
2
|
+
export { x as ACCESSIBILITY_RING_COLOR, y as ACCESSIBILITY_TYPES, z as AccessibilityMeta, D as AuthoringObjectState, B as BoothObject, p as Category, E as ChartLayoutConstraint, a as ChartObject, o as ChartReferenceImage, H as ChartTheme, I as ConfidenceEvidenceScope, u as CubicPath, J as DecorImageObject, m as Floor, G as GAAreaObject, h as GAInventorySegment, K as LABEL_STYLE_MAX_SIZE, M as LABEL_STYLE_MIN_SIZE, N as LabelPresentation, L as LabelStyle, O as ObjectEditorState, Q as Physical3dEvidence, U as RadialClearanceLayoutConstraint, n as RectTableSeatCounts, l as RectTableSide, V as ReferenceAccessibilitySource, W as ReferenceCalibration, X as ReferenceCategorySource, Y as ReferenceDerivedScale, Z as ReferenceDirectAnnotationSource, _ as ReferenceDirectLandmarkCandidate, $ as ReferenceDirectLandmarkDisposition, a0 as ReferenceDirectLandmarkRole, a1 as ReferenceDirectLandmarkSource, a2 as ReferenceDirectSeatGroup, a3 as ReferenceDirectSeatImportSource, a4 as ReferenceDirectSeatPlan, a5 as ReferenceDirectStageSource, a6 as ReferenceEnrichmentStatus, a7 as ReferenceExtractEmptyReason, a8 as ReferenceExtractEnrichment, a9 as ReferenceExtractInput, aa as ReferenceExtractProposal, ab as ReferenceExtractRegionSeats, ac as ReferenceInventoryExclusionSource, ad as ReferenceInventorySource, ae as ReferenceMatchReport, af as ReferenceScanProposal, ag as ReferenceScanRowProposal, ah as ReferenceScanSectionProposal, ai as ReferenceSeatSeed, aj as ReferenceSectionTraceBatchInput, ak as ReferenceSectionTraceBatchProposal, al as ReferenceSectionTraceInput, am as ReferenceSectionTraceProposal, c as ResolvedSeatConfidenceEvidence, R as RowObject, an as SEAT_COMMERCIAL_MARKS, ao as STAGE_LABEL_STYLE_MAX_SIZE, ap as SURROUNDINGS_SHAPE_ROLES, aq as SeatCommercialMark, ar as SeatCommercialMeta, as as SeatConfidenceCoverage, at as SeatConfidenceEvidence, au as SeatConfidenceModelLevel, av as SeatConfidenceModeledTarget, aw as SeatConfidenceRealityLevel, d as SeatGlyphKind, k as SeatOverride, e as SeatViewCoverage, b as SeatViewMetadata, ax as SeatViewVariant, j as SectionObject, f as SectionOutlinePath, g as SectionPathSegment, ay as SelectionLayer, q as ShapeLineCap, r as ShapeLineEnding, s as ShapeLineJoin, t as ShapeObject, az as StageLabelStyle, T as TableObject, aA as TextAlignment, aB as TextBackground, v as TextObject, aC as TicketTierApplicability, aD as TicketTierEvidence, aE as TicketTierRestriction, aF as Venue3DMaterialPalette, aG as VenueSurveyRegistrationEvidence, aH as ZoneDef, aI as accessibilityMeta, aJ as accessibilityRingColor, aK as layerOf, aL as seatCommercialMeta } from './types-Dq-ipTBG.cjs';
|
|
3
|
+
import { c as EventConfigurationRef, b as EventConfigurationVersion } from './eventConfigurations-vOMFVz7c.cjs';
|
|
4
|
+
export { d as EVENT_CONFIGURATION_EXPORT_SCHEMA, e as EVENT_CONFIGURATION_SCHEMA, f as EventConfigurationBaseVenue, g as EventConfigurationCompatibilityIssue, h as EventConfigurationCompatibilityIssueCode, i as EventConfigurationCompatibilityResult, j as EventConfigurationExportEnvelope, k as EventConfigurationLifecycleStatus, a as EventConfigurationOcclusion, l as EventConfigurationOverlay, m as EventConfigurationParseIssue, n as EventConfigurationParseIssueCode, o as EventConfigurationParseResult, p as EventConfigurationProductionElement, E 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-vOMFVz7c.cjs';
|
|
5
|
+
export { A as AUTOMATIC_ROUND_TABLE_RADIUS_MAX, a as AUTOMATIC_ROUND_TABLE_RADIUS_MIN, C as ChartBoundsOptions, E as ExpandChartOptions, F as FLOOR_STACK_GAP_RATIO, b as FLOOR_STACK_MIN_SURFACE_PX, c as FloorStackOptions, d as FloorStackPlacement, R as RowSeatSlot, T as TABLE_SEAT_OFFSET, e as TableSeatSlot, f as allObjects, g as automaticRoundTableRadius, h as chartBounds, i as expandBooth, j as expandChart, k as expandRow, l as expandRowSlots, m as expandTable, n as expandTableSlots, o as floorObjects, p as floorStackPlacements, q as floorsOf, r as initialFloorMode, s as layoutFloorStack, t as mainFloorId, u as objectCenter, v as owningSectionForObject, w as pointInPolygon, x as pointInPolygonWithHoles, y as polygonLabelPoint, z as rowInventoryCount, B as rowSeatPositions, D as stackFloors, G as tableInventoryCount, H as tableSeatCountsBySide, I as translateObject } from './tableSizing-DKygWd7z.cjs';
|
|
6
|
+
import { c as TicketSelectionIssue } from './ticketRestrictions-CvGDnGS8.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-CvGDnGS8.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-CQ0sd37E.cjs';
|
|
9
|
+
export { M as MIN_POINTER_TARGET_PX, 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-CRLkEGf8.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-B6kkgOHz.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-B6kkgOHz.cjs';
|
|
12
|
+
import './segmentedRowModel-DqFhb-7Q.cjs';
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Half-width of the band around a legibility threshold, in rendered pixels.
|
|
@@ -91,6 +91,31 @@ interface CameraPose {
|
|
|
91
91
|
scale: number;
|
|
92
92
|
}
|
|
93
93
|
|
|
94
|
+
/** One named section a buyer's accessibility filter can actually send them to. */
|
|
95
|
+
interface AccessibleSectionSummary {
|
|
96
|
+
/** The logical section id — what `focusSection` and the dock bar both use. */
|
|
97
|
+
id: string;
|
|
98
|
+
/** The section's own name, as painted on the block. */
|
|
99
|
+
label: string;
|
|
100
|
+
/** Free seats in it that match the filter. */
|
|
101
|
+
free: number;
|
|
102
|
+
}
|
|
103
|
+
/** What the filter matched, and the SHAPE of it — see {@link accessibleSpread}. */
|
|
104
|
+
interface AccessibleSpread {
|
|
105
|
+
/** Free matching seats anywhere on the active floor. */
|
|
106
|
+
spaces: number;
|
|
107
|
+
/** The named sections holding them. */
|
|
108
|
+
sections: AccessibleSectionSummary[];
|
|
109
|
+
/**
|
|
110
|
+
* The matches are scattered across (nearly) the whole venue.
|
|
111
|
+
*
|
|
112
|
+
* The camera answer and the words the widget says both hang off this: a tight
|
|
113
|
+
* cluster is dived into and needs no explanation, a bowl-wide scatter is
|
|
114
|
+
* already on screen and needs to be told apart from "nothing happened".
|
|
115
|
+
*/
|
|
116
|
+
wholeVenue: boolean;
|
|
117
|
+
}
|
|
118
|
+
|
|
94
119
|
declare class SeatmapRenderer implements ISeatmapRenderer {
|
|
95
120
|
private container;
|
|
96
121
|
private opts;
|
|
@@ -100,6 +125,13 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
|
|
|
100
125
|
private seatLayer;
|
|
101
126
|
private overlayLayer;
|
|
102
127
|
private labelGroup;
|
|
128
|
+
/** Row letters live in their own child of {@link labelGroup}: they are
|
|
129
|
+
* rebuilt every settle, while the seat numbers beside them are reused. */
|
|
130
|
+
private rowLabelGroup;
|
|
131
|
+
/** Live seat-number / status-cue nodes, kept across settles — see
|
|
132
|
+
* render/viewportLabels `seatLabelPool`. */
|
|
133
|
+
private seatLabelPool;
|
|
134
|
+
private statusCuePool;
|
|
103
135
|
/** Per-elevated-section label containers. Keeping the labels grouped lets the
|
|
104
136
|
* Phase-B lift move thousands of seat labels with one transform per section
|
|
105
137
|
* instead of rewriting every label on every tween frame. */
|
|
@@ -183,6 +215,11 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
|
|
|
183
215
|
private seatMarks;
|
|
184
216
|
/** One selected seat being inspected before it is committed to the cart. */
|
|
185
217
|
private selectionFocusId;
|
|
218
|
+
/** Seats that keep full ink while the confirm card is open — see
|
|
219
|
+
* render/selectionNeighbourhood. Null whenever there is no focus. */
|
|
220
|
+
private selectionFocusKeep;
|
|
221
|
+
/** The camera as it stood when the host hid the map — see render/hostResize. */
|
|
222
|
+
private hiddenPose;
|
|
186
223
|
private hoverRing;
|
|
187
224
|
/** Seat currently owning the shared hover ring (null while not hovering). */
|
|
188
225
|
private hoveredId;
|
|
@@ -194,6 +231,8 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
|
|
|
194
231
|
* a type list = dim free seats lacking any of those accommodations.
|
|
195
232
|
*/
|
|
196
233
|
private accessFilter;
|
|
234
|
+
/** Memoised free-matching-space counts, keyed by SectionRender id. */
|
|
235
|
+
private readonly accessFreeBySection;
|
|
197
236
|
/** Category highlight (legend hover): dims free seats NOT of this category. */
|
|
198
237
|
private categoryHighlight;
|
|
199
238
|
/** Price-band filter (F4): dim free seats whose category is NOT in this set. */
|
|
@@ -297,6 +336,8 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
|
|
|
297
336
|
* half the chart's seat pitch. Depth/ceiling maths read this, never seatR:
|
|
298
337
|
* a traced plan leaves the radius at its default and packs the seats. */
|
|
299
338
|
private markerR;
|
|
339
|
+
/** Median in-row seat spacing, world units — the section-less neighbourhood's unit. */
|
|
340
|
+
private seatPitch;
|
|
300
341
|
private bounds;
|
|
301
342
|
private cached;
|
|
302
343
|
private dpr;
|
|
@@ -609,31 +650,23 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
|
|
|
609
650
|
/** Host-pushed GA availability / pending quantity — see {@link paintGAState}. */
|
|
610
651
|
setGAStates(states: Record<string, GAAreaState>): void;
|
|
611
652
|
setGAState(areaId: string, state: GAAreaState): void;
|
|
612
|
-
/**
|
|
653
|
+
/**
|
|
654
|
+
* The state the framing rules read — rebuilt per call so camera, filter and
|
|
655
|
+
* status changes are always seen fresh. See ./render/focusFraming.
|
|
656
|
+
*/
|
|
657
|
+
private get focusFramingContext();
|
|
658
|
+
/** Take the buyer to a price band's seats — see ./render/focusFraming. */
|
|
613
659
|
focusCategories(keys: string[] | null, opts?: {
|
|
614
660
|
animate?: boolean;
|
|
615
661
|
}): void;
|
|
616
|
-
/**
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
* Deliberately NOT {@link focusCategories}. A price band is thousands of
|
|
620
|
-
* seats forming blocks, so that path clusters them and, on a phone, dives
|
|
621
|
-
* into a seat-detail window showing the dominant block. An accessibility
|
|
622
|
-
* filter is a handful of spaces scattered around the venue: the phone
|
|
623
|
-
* validator's uber-arena has TWELVE, one or two per tier. Diving into a
|
|
624
|
-
* detail window there shows the buyer none of them, and jumping to the seats
|
|
625
|
-
* rung — which is what the widget did before this existed — put all twelve
|
|
626
|
-
* off-screen in the middle of a 14k arena.
|
|
627
|
-
*
|
|
628
|
-
* So the rule is the union, always: bounding box of the matching seats plus a
|
|
629
|
-
* margin, clamped to the zoom bounds. When that box fits at a scale where the
|
|
630
|
-
* seats are already tappable, the buyer lands on tappable seats; when it does
|
|
631
|
-
* not, they still SEE all twelve and can zoom into the one they want. Framing
|
|
632
|
-
* fewer than all of them is never the answer.
|
|
633
|
-
*
|
|
634
|
-
* Returns false when there is nothing to frame, so a caller can fall back.
|
|
635
|
-
*/
|
|
662
|
+
/** The ceiling for a camera move the ENGINE decided to make. */
|
|
663
|
+
private diveCeiling;
|
|
664
|
+
/** Frame every seat matching the accessibility filter — ALL of them. */
|
|
636
665
|
focusAccessibleSeats(types?: AccessibilityType[] | null): boolean;
|
|
666
|
+
/** Take the camera to the free matching spaces INSIDE one section. */
|
|
667
|
+
focusAccessibleSection(sectionId: string, types?: AccessibilityType[] | null): boolean;
|
|
668
|
+
/** What the filter matched, and how it is spread over the venue. */
|
|
669
|
+
accessibleSpread(types?: AccessibilityType[] | null): AccessibleSpread | null;
|
|
637
670
|
/**
|
|
638
671
|
* Switch the projection between flat top-down and the isometric "3D" view
|
|
639
672
|
* (rotate + y-squash about the chart centre, plus per-elevation lift). Tweens
|
|
@@ -727,6 +760,10 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
|
|
|
727
760
|
* Grand Circle and its seats lost their numbers (owner report 2026-08-27),
|
|
728
761
|
* at a zoom where they were fully bright on screen.
|
|
729
762
|
*/
|
|
763
|
+
/** Is the confirm-card focus receding THIS seat? False with no focus, false
|
|
764
|
+
* for the candidate, and false for its neighbourhood — see
|
|
765
|
+
* render/selectionNeighbourhood for how the neighbourhood is drawn. */
|
|
766
|
+
private selectionFocusDims;
|
|
730
767
|
private focusedSeatOpacity;
|
|
731
768
|
private sectionScreenBounds;
|
|
732
769
|
/** Hide only section groups wholly outside a padded viewport at the live-seat
|
|
@@ -817,6 +854,20 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
|
|
|
817
854
|
focusSection(id: string, opts?: {
|
|
818
855
|
anchor?: Point;
|
|
819
856
|
}): void;
|
|
857
|
+
/**
|
|
858
|
+
* Enter a section's focus state WITHOUT moving the camera.
|
|
859
|
+
*
|
|
860
|
+
* Split out because "which section is the buyer in" and "what is the camera
|
|
861
|
+
* framing" are not always the same answer: a best-available pick frames the
|
|
862
|
+
* SEATS it found, which may be a corner of the section, while the dock bar,
|
|
863
|
+
* the dim and the backdrop still have to belong to the section around them.
|
|
864
|
+
* Returns false for an id this chart has no section for.
|
|
865
|
+
*/
|
|
866
|
+
private markSectionFocus;
|
|
867
|
+
/** Frame THESE seats, close enough to take one — see ./render/focusFraming. */
|
|
868
|
+
focusSeats(ids: readonly string[], opts?: {
|
|
869
|
+
animate?: boolean;
|
|
870
|
+
}): boolean;
|
|
820
871
|
private focusSectionCamera;
|
|
821
872
|
/**
|
|
822
873
|
* Release only the focus dim + backdrop, keeping the focused-section state
|
|
@@ -903,23 +954,22 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
|
|
|
903
954
|
private renderShape;
|
|
904
955
|
private renderGA;
|
|
905
956
|
/**
|
|
906
|
-
*
|
|
907
|
-
*
|
|
908
|
-
*
|
|
909
|
-
* • one readable, contained section name.
|
|
910
|
-
* Category, row, seat, and availability detail belongs to section focus/zoom.
|
|
911
|
-
* Membership and category mix are still precomputed for the detailed state.
|
|
957
|
+
* Build one section's scene nodes (see ./render/sectionBuild), then register
|
|
958
|
+
* it: seat→section membership, the memoised unsectioned partition it
|
|
959
|
+
* invalidates, its first fill/heat paint, and the section list itself.
|
|
912
960
|
*/
|
|
913
961
|
private renderSection;
|
|
962
|
+
private get sectionBuildContext();
|
|
914
963
|
private refreshSectionHeat;
|
|
915
964
|
private refreshSectionFill;
|
|
916
965
|
private isSectionClosed;
|
|
917
966
|
/**
|
|
918
967
|
* The hue an overview block is tinted with; see ./render/overviewPalette. */
|
|
919
968
|
private dominantSellableColor;
|
|
920
|
-
/**
|
|
921
|
-
* Free seats here matching the accessibility filter; see ./render/sectionLod. */
|
|
969
|
+
/** Free matching seats in this section — memoised; see ./render/focusFraming. */
|
|
922
970
|
private sectionAccessibleFree;
|
|
971
|
+
/** The named sections holding a FREE matching space — see ./render/focusFraming. */
|
|
972
|
+
accessibleSections(types?: AccessibilityType[] | null): AccessibleSectionSummary[];
|
|
923
973
|
private get sectionLodPaintContext();
|
|
924
974
|
/** Build the zone pills (name + FROM price) — see render/zoneScene.ts. */
|
|
925
975
|
private renderZones;
|
|
@@ -937,6 +987,8 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
|
|
|
937
987
|
/** Seat ids belonging to a section (Slice 5 section-summary card). */
|
|
938
988
|
sectionMembers(id: string): string[];
|
|
939
989
|
private isSelectable;
|
|
990
|
+
/** One question for the one excluded treatment — see render/filterExclusion. */
|
|
991
|
+
private filterExcludesSeat;
|
|
940
992
|
/**
|
|
941
993
|
* Is this seat out of the sale purely because the accessibility filter is on?
|
|
942
994
|
*
|
|
@@ -1046,6 +1098,7 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
|
|
|
1046
1098
|
}, opts?: {
|
|
1047
1099
|
animate?: boolean;
|
|
1048
1100
|
minScale?: number;
|
|
1101
|
+
maxScale?: number;
|
|
1049
1102
|
durationMs?: number;
|
|
1050
1103
|
}): void;
|
|
1051
1104
|
/**
|
|
@@ -1077,8 +1130,12 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
|
|
|
1077
1130
|
* settled state. Without it a backdrop tap (clearSectionFocus + zoomToFit)
|
|
1078
1131
|
* left the widget's deep state on the pre-settle reading — the map back at
|
|
1079
1132
|
* the overview, the chrome still saying the buyer was inside a section.
|
|
1133
|
+
*
|
|
1134
|
+
* Public because a HOST rebuild owes one too: `setChart` empties the label
|
|
1135
|
+
* and status-cue pools, and restoring an identical camera pose after it runs
|
|
1136
|
+
* no pass of its own. See PickerController.rebuildPreservingState.
|
|
1080
1137
|
*/
|
|
1081
|
-
|
|
1138
|
+
settleView(): void;
|
|
1082
1139
|
/** Once the buyer is roaming, the locator names what is ON SCREEN rather than
|
|
1083
1140
|
* what they tapped — WITHOUT moving the camera. Retargeting is a
|
|
1084
1141
|
* relabelling; a glide here would fight the pan that caused it. */
|
|
@@ -1136,20 +1193,11 @@ declare class SeatmapRenderer implements ISeatmapRenderer {
|
|
|
1136
1193
|
private objectFilteredOut;
|
|
1137
1194
|
private updateLabels;
|
|
1138
1195
|
private get viewportLabelContext();
|
|
1196
|
+
/** See render/hostResize for the rule; this is the part that touches state. */
|
|
1139
1197
|
private handleResize;
|
|
1140
1198
|
}
|
|
1141
1199
|
declare function createRenderer(container: HTMLDivElement, opts?: RendererOptions): ISeatmapRenderer;
|
|
1142
1200
|
|
|
1143
|
-
/**
|
|
1144
|
-
* Automatic row-letter label planning: where each authored row label wants to
|
|
1145
|
-
* sit in world space, and how an automatic start/end label steps out of the way
|
|
1146
|
-
* of seats and already-painted text.
|
|
1147
|
-
*
|
|
1148
|
-
* Moved verbatim out of SeatmapRenderer (2026-08-15 refactor, Phase 2B pass B);
|
|
1149
|
-
* `this.` became either a `ctx` field or an explicit parameter, and
|
|
1150
|
-
* `buildRowLabelPlan` returns the plan instead of assigning `this.rowLabelPlan`.
|
|
1151
|
-
*/
|
|
1152
|
-
|
|
1153
1201
|
/**
|
|
1154
1202
|
* Reduce a globally-unique authored row name to the local identity a buyer
|
|
1155
1203
|
* needs, given the section that already names itself on screen.
|
|
@@ -1174,42 +1222,6 @@ declare function createRenderer(container: HTMLDivElement, opts?: RendererOption
|
|
|
1174
1222
|
*/
|
|
1175
1223
|
declare function compactRowLabel(rowLabel: string, sectionLabel: string | undefined): string;
|
|
1176
1224
|
|
|
1177
|
-
/**
|
|
1178
|
-
* The access needs THIS chart actually offers, with live free counts.
|
|
1179
|
-
*
|
|
1180
|
-
* The accessibility sheet used to render the whole twelve-key taxonomy on
|
|
1181
|
-
* every event, so a buyer at a venue with nothing but wheelchair bays was
|
|
1182
|
-
* offered "CART live-caption view" and "Sign-language view" — chips that
|
|
1183
|
-
* filter to an empty map. Offering a provision that does not exist is worse
|
|
1184
|
-
* than a short list: it reads as a venue that has it and has sold out of it.
|
|
1185
|
-
*
|
|
1186
|
-
* So the list is derived from the seats the chart authored. A key appears
|
|
1187
|
-
* because at least one seat carries it — including a key whose seats are all
|
|
1188
|
-
* gone, which is shown at zero and disabled rather than dropped, so the
|
|
1189
|
-
* difference between "this venue has none" and "this venue's are taken" stays
|
|
1190
|
-
* visible.
|
|
1191
|
-
*
|
|
1192
|
-
* `count` is FREE seats only, and is counted exactly the way
|
|
1193
|
-
* `sectionAccessibleFreeCount` counts them (status `free`, then the seat's own
|
|
1194
|
-
* accommodation set) — one definition of "available accessible seating" across
|
|
1195
|
-
* the overview blocks, the section card and this list.
|
|
1196
|
-
*/
|
|
1197
|
-
|
|
1198
|
-
/** One provision the event offers, and how many of it are still free. */
|
|
1199
|
-
interface PickerAccessNeed {
|
|
1200
|
-
key: AccessibilityType;
|
|
1201
|
-
/** Free seats carrying this accommodation right now. May be 0. */
|
|
1202
|
-
count: number;
|
|
1203
|
-
}
|
|
1204
|
-
/**
|
|
1205
|
-
* The provisions on this chart, in the taxonomy's own order.
|
|
1206
|
-
*
|
|
1207
|
-
* Taxonomy order rather than count order on purpose: the sheet is a stable
|
|
1208
|
-
* control, and a list that reshuffles itself as other buyers take seats is one
|
|
1209
|
-
* the returning buyer has to re-read every time.
|
|
1210
|
-
*/
|
|
1211
|
-
declare function accessNeedsFor(seats: Iterable<ExpandedSeat>, statusOf: (seatId: string) => string): PickerAccessNeed[];
|
|
1212
|
-
|
|
1213
1225
|
/**
|
|
1214
1226
|
* What an availability refresh means for the buyer who is looking at the map.
|
|
1215
1227
|
*
|
|
@@ -1568,8 +1580,20 @@ interface PickerRealtimeSink {
|
|
|
1568
1580
|
default: string;
|
|
1569
1581
|
exceptions: Record<string, string>;
|
|
1570
1582
|
}): void;
|
|
1571
|
-
/**
|
|
1572
|
-
|
|
1583
|
+
/**
|
|
1584
|
+
* Re-pull authoritative state over HTTP (a frame that cannot be diffed).
|
|
1585
|
+
*
|
|
1586
|
+
* `reason: 'connect'` marks the pull a fresh socket makes for parity rather
|
|
1587
|
+
* than because anything said the map is stale. A sink that has just booted
|
|
1588
|
+
* from an authoritative read is entitled to skip that one — the connection
|
|
1589
|
+
* itself is not evidence of a change, and on a real event page the boot read
|
|
1590
|
+
* and the connect read were landing 400ms apart, both of them full snapshots.
|
|
1591
|
+
* Any other reason (an undiffable frame, a resume the server never answered)
|
|
1592
|
+
* is a real "I do not know the state" and is never skipped.
|
|
1593
|
+
*/
|
|
1594
|
+
resync(opts?: {
|
|
1595
|
+
reason?: 'connect' | 'frame';
|
|
1596
|
+
}): void | Promise<void>;
|
|
1573
1597
|
/** Section availability changed (hidden = stripped, closed = greyed). */
|
|
1574
1598
|
onSections?(hidden: string[], closed: string[]): void;
|
|
1575
1599
|
/** Scope-projected presence counters. Unused by the picker today. */
|
|
@@ -1686,8 +1710,19 @@ interface PickerCallbacks extends RendererCallbacks {
|
|
|
1686
1710
|
onHoldExpired?: () => void;
|
|
1687
1711
|
/** A booking completed with this ref. */
|
|
1688
1712
|
onBook?: (bookingRef: string) => void;
|
|
1689
|
-
/**
|
|
1690
|
-
|
|
1713
|
+
/**
|
|
1714
|
+
* A seat-status batch was painted (delta or snapshot) — e.g. to recount "N left".
|
|
1715
|
+
*
|
|
1716
|
+
* `changed` says whether that batch moved anything. A re-stated snapshot —
|
|
1717
|
+
* what a fresh socket, a resume answer or a section rebuild produces — paints
|
|
1718
|
+
* the identical map, and a listener that treats every paint as news does real
|
|
1719
|
+
* work for it: the buyer widget was pulling live offer availability over the
|
|
1720
|
+
* network once per repaint. Absent on an older engine, so read it as
|
|
1721
|
+
* "assume changed" when it is not there.
|
|
1722
|
+
*/
|
|
1723
|
+
onStatusChange?: (info?: {
|
|
1724
|
+
changed: boolean;
|
|
1725
|
+
}) => void;
|
|
1691
1726
|
/**
|
|
1692
1727
|
* An availability refresh finished — what it changed for THIS buyer.
|
|
1693
1728
|
*
|
|
@@ -1850,6 +1885,62 @@ interface PickerMapTheme {
|
|
|
1850
1885
|
selectionColor?: string;
|
|
1851
1886
|
}
|
|
1852
1887
|
|
|
1888
|
+
/**
|
|
1889
|
+
* The buyer picker's FILTER-DRIVEN camera rules.
|
|
1890
|
+
*
|
|
1891
|
+
* Two filters — accessibility and price band — each answer "take me to what I
|
|
1892
|
+
* asked for", and both have to solve the same multi-floor trap first: the
|
|
1893
|
+
* renderer only knows the active floor's seats, so a match on another deck is
|
|
1894
|
+
* a silent no-op unless the floor is switched before the camera is asked to
|
|
1895
|
+
* move. Those decisions moved out of PickerController verbatim behind an
|
|
1896
|
+
* explicit context; they own no state and touch the renderer only through the
|
|
1897
|
+
* interface the controller already used.
|
|
1898
|
+
*/
|
|
1899
|
+
|
|
1900
|
+
/** One step of the accessibility section tour — see {@link focusNextAccessibleSection}. */
|
|
1901
|
+
interface AccessibleSectionStep extends AccessibleSectionSummary {
|
|
1902
|
+
/** 0-based position in the tour. */
|
|
1903
|
+
index: number;
|
|
1904
|
+
/** How many sections the tour has. */
|
|
1905
|
+
total: number;
|
|
1906
|
+
}
|
|
1907
|
+
|
|
1908
|
+
/**
|
|
1909
|
+
* The access needs THIS chart actually offers, with live free counts.
|
|
1910
|
+
*
|
|
1911
|
+
* The accessibility sheet used to render the whole twelve-key taxonomy on
|
|
1912
|
+
* every event, so a buyer at a venue with nothing but wheelchair bays was
|
|
1913
|
+
* offered "CART live-caption view" and "Sign-language view" — chips that
|
|
1914
|
+
* filter to an empty map. Offering a provision that does not exist is worse
|
|
1915
|
+
* than a short list: it reads as a venue that has it and has sold out of it.
|
|
1916
|
+
*
|
|
1917
|
+
* So the list is derived from the seats the chart authored. A key appears
|
|
1918
|
+
* because at least one seat carries it — including a key whose seats are all
|
|
1919
|
+
* gone, which is shown at zero and disabled rather than dropped, so the
|
|
1920
|
+
* difference between "this venue has none" and "this venue's are taken" stays
|
|
1921
|
+
* visible.
|
|
1922
|
+
*
|
|
1923
|
+
* `count` is FREE seats only, and is counted exactly the way
|
|
1924
|
+
* `sectionAccessibleFreeCount` counts them (status `free`, then the seat's own
|
|
1925
|
+
* accommodation set) — one definition of "available accessible seating" across
|
|
1926
|
+
* the overview blocks, the section card and this list.
|
|
1927
|
+
*/
|
|
1928
|
+
|
|
1929
|
+
/** One provision the event offers, and how many of it are still free. */
|
|
1930
|
+
interface PickerAccessNeed {
|
|
1931
|
+
key: AccessibilityType;
|
|
1932
|
+
/** Free seats carrying this accommodation right now. May be 0. */
|
|
1933
|
+
count: number;
|
|
1934
|
+
}
|
|
1935
|
+
/**
|
|
1936
|
+
* The provisions on this chart, in the taxonomy's own order.
|
|
1937
|
+
*
|
|
1938
|
+
* Taxonomy order rather than count order on purpose: the sheet is a stable
|
|
1939
|
+
* control, and a list that reshuffles itself as other buyers take seats is one
|
|
1940
|
+
* the returning buyer has to re-read every time.
|
|
1941
|
+
*/
|
|
1942
|
+
declare function accessNeedsFor(seats: Iterable<ExpandedSeat>, statusOf: (seatId: string) => string): PickerAccessNeed[];
|
|
1943
|
+
|
|
1853
1944
|
declare class PickerController {
|
|
1854
1945
|
private readonly opts;
|
|
1855
1946
|
private readonly api;
|
|
@@ -1893,6 +1984,8 @@ declare class PickerController {
|
|
|
1893
1984
|
private confirmedVariableTables;
|
|
1894
1985
|
private groupedSelectionOverhead;
|
|
1895
1986
|
private ws;
|
|
1987
|
+
/** Standby snapshot pull for a socket that connected and then said nothing. */
|
|
1988
|
+
private connectFallback;
|
|
1896
1989
|
/** Transport-owned v1 client; mutually exclusive with `ws`. */
|
|
1897
1990
|
private realtime;
|
|
1898
1991
|
private reconnectTimer;
|
|
@@ -2184,41 +2277,21 @@ declare class PickerController {
|
|
|
2184
2277
|
setAccessibilityFilter(types: string[] | null): void;
|
|
2185
2278
|
/** The buyer's active accessibility filter, or null. */
|
|
2186
2279
|
getAccessibilityFilter(): AccessibilityType[] | null;
|
|
2280
|
+
/** Where {@link focusNextAccessibleSection} last stopped. */
|
|
2281
|
+
private accessStepAt;
|
|
2187
2282
|
/**
|
|
2188
|
-
*
|
|
2189
|
-
*
|
|
2190
|
-
*
|
|
2191
|
-
* camera rule (see the renderer's `focusAccessibleSeats`). Switching the
|
|
2192
|
-
* filter on used to jump to the seats rung, which on the validator's
|
|
2193
|
-
* uber-arena — twelve wheelchair spaces spread over a 14k-seat venue — put
|
|
2194
|
-
* every single match off-screen: the buyer asked "where can I sit?" and got
|
|
2195
|
-
* a close-up of a block with no accessible seats in it.
|
|
2196
|
-
*
|
|
2197
|
-
* Frames the union of the matches instead, so all twelve are on screen. No-op
|
|
2198
|
-
* when the filter is off or matched nothing; returns whether it moved, so a
|
|
2199
|
-
* host can keep its old behaviour as a fallback.
|
|
2283
|
+
* The state the filter-driven camera rules read and change — see
|
|
2284
|
+
* ./pickerFocus. Rebuilt per call; the accessor pair keeps the controller
|
|
2285
|
+
* the owner of the filter and of the section-tour cursor.
|
|
2200
2286
|
*/
|
|
2287
|
+
private get pickerFocusContext();
|
|
2288
|
+
/** Take the buyer to the seats their accessibility filter matched. */
|
|
2201
2289
|
focusAccessibilityFilter(types?: AccessibilityType[] | null): boolean;
|
|
2202
|
-
/**
|
|
2203
|
-
|
|
2204
|
-
|
|
2205
|
-
|
|
2206
|
-
|
|
2207
|
-
private floorForAccessibility;
|
|
2208
|
-
/**
|
|
2209
|
-
* Does the active accessibility filter RECEDE this seat?
|
|
2210
|
-
*
|
|
2211
|
-
* The 2D map answers this with Konva opacity, which the GL view never sees —
|
|
2212
|
-
* so a buyer who filtered for wheelchair spaces and then switched to 3D got
|
|
2213
|
-
* the unfiltered venue back, every zone in normal colour, with no sign the
|
|
2214
|
-
* filter was still on. The widget's 3D snapshot builder already asks the same
|
|
2215
|
-
* question of the price band and the limited-view toggle; this is the third,
|
|
2216
|
-
* and it is answered HERE rather than in the widget so the rule cannot drift
|
|
2217
|
-
* from the one the canvas paints (renderer `hiddenByAccessFilter`).
|
|
2218
|
-
*
|
|
2219
|
-
* Presentation only, exactly as in 2D: a dimmed seat is not an unselectable
|
|
2220
|
-
* one.
|
|
2221
|
-
*/
|
|
2290
|
+
/** What the accessibility filter matched, and how it is spread. */
|
|
2291
|
+
accessibilitySpread(types?: AccessibilityType[] | null): AccessibleSpread | null;
|
|
2292
|
+
/** Step to the next section holding a free matching space. */
|
|
2293
|
+
focusNextAccessibleSection(types?: AccessibilityType[] | null): AccessibleSectionStep | null;
|
|
2294
|
+
/** Does the active accessibility filter RECEDE this seat? See ./pickerFocus. */
|
|
2222
2295
|
accessibilityFilterDims(seat: ExpandedSeat): boolean;
|
|
2223
2296
|
/**
|
|
2224
2297
|
* "Hide limited-view seats" toggle — dims free seats flagged
|
|
@@ -2261,15 +2334,8 @@ declare class PickerController {
|
|
|
2261
2334
|
/** Price-band filter (F4): dim free seats whose category is outside `keys`
|
|
2262
2335
|
* (null clears). The widget resolves which categories fall in the band. */
|
|
2263
2336
|
setCategoryFilter(keys: string[] | null): void;
|
|
2264
|
-
/**
|
|
2265
|
-
* chart: clear any older section drill-in and guide the camera to the seats
|
|
2266
|
-
* that remain relevant. Clearing the filter glides back to the full chart. */
|
|
2337
|
+
/** Guide the camera to the seats a price band left — see ./pickerFocus. */
|
|
2267
2338
|
focusCategoryFilter(keys: string[] | null): void;
|
|
2268
|
-
/** The floor a buyer means when filtering to `keys`: the active floor when it
|
|
2269
|
-
* carries any of those categories, else the first floor that does (null =
|
|
2270
|
-
* stay put). Row overrides and GA areas count — a category can exist on a
|
|
2271
|
-
* floor only via a per-seat override. */
|
|
2272
|
-
private floorForCategories;
|
|
2273
2339
|
/** World-space rect currently visible + full chart bounds (F3 minimap frame). */
|
|
2274
2340
|
getViewport(): {
|
|
2275
2341
|
visible: {
|
|
@@ -2300,6 +2366,19 @@ declare class PickerController {
|
|
|
2300
2366
|
x: number;
|
|
2301
2367
|
y: number;
|
|
2302
2368
|
}): void;
|
|
2369
|
+
/**
|
|
2370
|
+
* Take the camera to seats the ENGINE picked, and name the section they are in.
|
|
2371
|
+
*
|
|
2372
|
+
* Best-available's arrival used to frame the section of the first seat found,
|
|
2373
|
+
* which on a large stand showed the buyer everything except which seats they
|
|
2374
|
+
* had been given. The renderer frames the seats themselves; the summary
|
|
2375
|
+
* emitted here is what renames the dock bar, so the two halves of "you are
|
|
2376
|
+
* here" still agree. False when the renderer could not frame them — the
|
|
2377
|
+
* caller falls back to the section.
|
|
2378
|
+
*/
|
|
2379
|
+
focusSeats(ids: readonly string[], opts?: {
|
|
2380
|
+
animate?: boolean;
|
|
2381
|
+
}): boolean;
|
|
2303
2382
|
/** Live seat membership count used by buyer section-navigation controls. */
|
|
2304
2383
|
getSectionSeatCount(id: string): number;
|
|
2305
2384
|
/** Zoom back out to the whole chart and clear the section-summary card + focus. */
|
|
@@ -2314,6 +2393,7 @@ declare class PickerController {
|
|
|
2314
2393
|
* object owns beyond four values, and this file is at its size cap.
|
|
2315
2394
|
*/
|
|
2316
2395
|
private sectionSummary;
|
|
2396
|
+
private clearConnectFallback;
|
|
2317
2397
|
destroy(): void;
|
|
2318
2398
|
private toSeat;
|
|
2319
2399
|
private toTableSeat;
|
|
@@ -2367,6 +2447,17 @@ declare class PickerController {
|
|
|
2367
2447
|
* a parameter rather than a constant.
|
|
2368
2448
|
*/
|
|
2369
2449
|
private applySeatsMap;
|
|
2450
|
+
/**
|
|
2451
|
+
* When an authoritative map was last painted, and whether one is recent.
|
|
2452
|
+
*
|
|
2453
|
+
* A socket opening is not news. The boot read and the connect read were
|
|
2454
|
+
* landing within half a second of each other on a real event page — two full
|
|
2455
|
+
* snapshots of the same venue, the second answering a question nobody asked.
|
|
2456
|
+
* Five seconds is comfortably longer than a boot takes and far shorter than
|
|
2457
|
+
* any window in which a silent server could leave the map wrong.
|
|
2458
|
+
*/
|
|
2459
|
+
private lastSnapshotAt;
|
|
2460
|
+
private snapshotIsFresh;
|
|
2370
2461
|
/** The live status of one unit, honouring the projection's default. */
|
|
2371
2462
|
private statusOf;
|
|
2372
2463
|
private clearBookedHoldIfSettled;
|
|
@@ -2416,6 +2507,8 @@ declare class PickerController {
|
|
|
2416
2507
|
* callbacks in the same order whichever path is live.
|
|
2417
2508
|
*/
|
|
2418
2509
|
private realtimeSink;
|
|
2510
|
+
/** Does this authoritative map say anything the last one did not? */
|
|
2511
|
+
private seatsMapDiffers;
|
|
2419
2512
|
/** Paint one delta batch. Shared by the v1 sink and the plain-socket handler. */
|
|
2420
2513
|
private applyStatusChanges;
|
|
2421
2514
|
private connect;
|
|
@@ -2696,4 +2789,4 @@ declare function formatMinor(minor: number, currency?: string, locale?: string):
|
|
|
2696
2789
|
/** Bare symbol for input adornments ("€", "$", "₹"). */
|
|
2697
2790
|
declare function currencySymbol(currency?: string): string;
|
|
2698
2791
|
|
|
2699
|
-
export { AccessibilityType, type AvailabilityRefreshInput, type AvailabilityRefreshOutcome, CURRENCY_CHOICES, CategoryTier, ChartDeliveryPerformance, ChartDoc, DEFAULT_CURRENCY, type Dict, type Direction, EMPTY_AVAILABILITY_REFRESH, EventConfigurationRef, EventConfigurationVersion, ExpandedSeat, FloorLabelStyle, GAAreaState, HOLD_CLOCK_SKEW_MS, type HoldConflict, type HoldInfo, type HoldRecoveryShape, type HoldSelectionRequest, type HoldServerItem, ISeatmapRenderer, LABEL_FADE_MS, LEGIBILITY_HYSTERESIS_PX, LOCALE_NAMES, type Locale, LodRung, type MoneyFormatOptions, type PanoramaResult, type PickerAccessNeed, type PickerCallbacks, PickerController, type PickerGAArea, type PickerMapTheme, type PickerOptions, type PickerRealtimeConnection, type PickerRealtimeSink, type PickerRenderPerformanceProfile, type PickerSeat, PickerSelectionError, type PickerSelectionValidator, type PickerSelectionValidity, type PickerSelectionViolation, type PickerStatusChange, type PickerTransport, Point, RendererCallbacks, RendererMinimapSnapshot, RendererOptions, RendererQualityEvidence, RendererViewMode, SUPPORTED_LOCALES, SeatCommercialAttributes, type SeatHoverDetails, SeatMark, SeatStatus, SeatmapRenderer, type SectionCategory, type SectionSummary, TRANSLATED_LOCALES, type TableSelectionDetails, accessNeedsFor, attachVisibilityCatchUp, compactRowLabel, createRenderer, crossesThreshold, currencyExponent, currencySymbol, formatDate, formatMinor, formatMoney, fromMinorUnits, generateSeatPanorama, generateSeatThumb, getLocale, holdHasLapsed, holdRecoveryShape, hysteresisScale, isLocaleLoaded, loadLocale, localeDirection, reconcileAvailability, refreshChangedSomething, renderedPx, resolveLocale, setLocale, setMoneyLocale, setStringOverrides, shouldWaitForHoldExpiry, t, tCount, zoomTowardPoint };
|
|
2792
|
+
export { AccessibilityType, type AccessibleSectionStep, type AccessibleSectionSummary, type AccessibleSpread, type AvailabilityRefreshInput, type AvailabilityRefreshOutcome, CURRENCY_CHOICES, CategoryTier, ChartDeliveryPerformance, ChartDoc, DEFAULT_CURRENCY, type Dict, type Direction, EMPTY_AVAILABILITY_REFRESH, EventConfigurationRef, EventConfigurationVersion, ExpandedSeat, FloorLabelStyle, GAAreaState, HOLD_CLOCK_SKEW_MS, type HoldConflict, type HoldInfo, type HoldRecoveryShape, type HoldSelectionRequest, type HoldServerItem, ISeatmapRenderer, LABEL_FADE_MS, LEGIBILITY_HYSTERESIS_PX, LOCALE_NAMES, type Locale, LodRung, type MoneyFormatOptions, type PanoramaResult, type PickerAccessNeed, type PickerCallbacks, PickerController, type PickerGAArea, type PickerMapTheme, type PickerOptions, type PickerRealtimeConnection, type PickerRealtimeSink, type PickerRenderPerformanceProfile, type PickerSeat, PickerSelectionError, type PickerSelectionValidator, type PickerSelectionValidity, type PickerSelectionViolation, type PickerStatusChange, type PickerTransport, Point, RendererCallbacks, RendererMinimapSnapshot, RendererOptions, RendererQualityEvidence, RendererViewMode, SUPPORTED_LOCALES, SeatCommercialAttributes, type SeatHoverDetails, SeatMark, SeatStatus, SeatmapRenderer, type SectionCategory, type SectionSummary, TRANSLATED_LOCALES, type TableSelectionDetails, accessNeedsFor, attachVisibilityCatchUp, compactRowLabel, createRenderer, crossesThreshold, currencyExponent, currencySymbol, formatDate, formatMinor, formatMoney, fromMinorUnits, generateSeatPanorama, generateSeatThumb, getLocale, holdHasLapsed, holdRecoveryShape, hysteresisScale, isLocaleLoaded, loadLocale, localeDirection, reconcileAvailability, refreshChangedSomething, renderedPx, resolveLocale, setLocale, setMoneyLocale, setStringOverrides, shouldWaitForHoldExpiry, t, tCount, zoomTowardPoint };
|