@seatlayer/core 0.78.0 → 0.79.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-MBXKQCHF.js +1 -0
- package/dist/be-ZUVYQYAI.js +1 -0
- package/dist/bg-62YMMGP4.js +1 -0
- package/dist/ca-6CX2TCFE.js +1 -0
- package/dist/{categoryInventory-IgpsH6KG.d.cts → categoryInventory-BR7noBOD.d.cts} +1 -1
- package/dist/{categoryInventory-C_NIm0jr.d.ts → categoryInventory-CZRNxr1T.d.ts} +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/inventory/index.d.cts +5 -34
- package/dist/core/inventory/index.d.ts +5 -34
- 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-HPMCEWCG.js +1 -0
- package/dist/cy-NF6Y2W6J.js +1 -0
- package/dist/da-22D72GSM.js +1 -0
- package/dist/de-RPFLEDOZ.js +1 -0
- package/dist/el-FUQRGODC.js +1 -0
- package/dist/es-MCE7ZWGC.js +1 -0
- package/dist/et-GS4LQD5N.js +1 -0
- package/dist/{eventConfigurations-71rHjKl7.d.ts → eventConfigurations-DhGEe6fT.d.ts} +1 -1
- package/dist/{eventConfigurations-vOMFVz7c.d.cts → eventConfigurations-OVlni2ym.d.cts} +1 -1
- package/dist/fa-5MNQP3RH.js +1 -0
- package/dist/fi-5A22IZ6C.js +1 -0
- package/dist/fr-QSMP5CON.js +1 -0
- package/dist/he-ET4VHFSC.js +1 -0
- package/dist/hr-CEQPLBXQ.js +1 -0
- package/dist/hu-NWXXZPCO.js +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +87 -49
- package/dist/index.d.ts +87 -49
- package/dist/index.js +1 -1
- package/dist/it-LJJQ32WS.js +1 -0
- package/dist/ja-JH7SZMXQ.js +1 -0
- package/dist/ku-ZEL3JYZ3.js +1 -0
- package/dist/{labeling-BnjyAEbI.d.ts → labeling-Btg_slmM.d.ts} +1 -1
- package/dist/{labeling-pdEv7UN1.d.cts → labeling-DzPlkJct.d.cts} +1 -1
- package/dist/localeLoaders-CG4DAMUW.js +1 -0
- package/dist/lt-X4GMJWOB.js +1 -0
- package/dist/lv-OORJZFNN.js +1 -0
- package/dist/nl-EIWNKXHE.js +1 -0
- package/dist/no-KE42FJWD.js +1 -0
- package/dist/pl-ATCAGIF2.js +1 -0
- package/dist/pt-5DSXBZNH.js +1 -0
- package/dist/{renderedQuality-CXWlCsRS.d.ts → renderedQuality-C4-5Oy6-.d.ts} +1 -1
- package/dist/{renderedQuality-rc4xZnIy.d.cts → renderedQuality-CHAf5J4i.d.cts} +1 -1
- package/dist/{renderer-Cqd5w55S.d.ts → renderer-Bx0ucRf6.d.ts} +1 -1
- package/dist/{renderer-DW7ejcxk.d.cts → renderer-CuLIU7z1.d.cts} +1 -1
- package/dist/{ro-RHGJMFQQ.js → ro-ESUBYINR.js} +1 -1
- package/dist/ru-5SYA53AZ.js +1 -0
- package/dist/{sections-CQ0sd37E.d.cts → sections-DUG5M-hF.d.cts} +1 -1
- package/dist/{sections-F6wMlVqx.d.ts → sections-Du9QkrCf.d.ts} +1 -1
- package/dist/{segmentedRowModel-DqFhb-7Q.d.cts → segmentedRowModel-BYSxfsqX.d.cts} +1 -1
- package/dist/{segmentedRowModel-D-CEgxg7.d.ts → segmentedRowModel-N9Z0rnKY.d.ts} +1 -1
- package/dist/sk-QHQ7T2BK.js +1 -0
- package/dist/sl-OQHYGFQ7.js +1 -0
- package/dist/sr-VOVDWZBT.js +1 -0
- package/dist/sv-II3AGEJF.js +1 -0
- package/dist/{tableSizing-uVEPXCUD.d.ts → tableSizing-Dr-ksQTq.d.ts} +3 -3
- package/dist/{tableSizing-OzEvBirS.d.cts → tableSizing-tDaLWj54.d.cts} +3 -3
- package/dist/{ticketRestrictions-BH430to6.d.ts → ticketRestrictions-7HrT6IQM.d.ts} +32 -3
- package/dist/{ticketRestrictions-CGD-l3if.d.cts → ticketRestrictions-B4eT6vEy.d.cts} +32 -3
- package/dist/tr-EZHEWRQG.js +1 -0
- package/dist/{types-Dq-ipTBG.d.ts → types-eVmh2-Yn.d.cts} +1 -1
- package/dist/{types-Dq-ipTBG.d.cts → types-eVmh2-Yn.d.ts} +1 -1
- package/dist/uk-V3LWALME.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.d.cts +3 -3
- package/dist/view3d/index.d.ts +3 -3
- package/dist/zh-Hans-WG6IMHH2.js +1 -0
- package/dist/zh-Hant-I55RLM6N.js +1 -0
- package/package.json +1 -1
- package/dist/ar-U7RQGDKI.js +0 -1
- package/dist/be-AF2KLUPU.js +0 -1
- package/dist/bg-KQXVZFP5.js +0 -1
- package/dist/ca-2Z6OXARI.js +0 -1
- package/dist/cs-OA5PNXZF.js +0 -1
- package/dist/cy-SEZB6CFS.js +0 -1
- package/dist/da-WNYFNHJW.js +0 -1
- package/dist/de-GZ5KABWX.js +0 -1
- package/dist/el-ROWVMGFA.js +0 -1
- package/dist/es-WDEEXPGZ.js +0 -1
- package/dist/et-UZ6PWBEI.js +0 -1
- package/dist/fa-6RECOCDS.js +0 -1
- package/dist/fi-W2NFGTLE.js +0 -1
- package/dist/fr-TGQU57AA.js +0 -1
- package/dist/he-GW4WHBMC.js +0 -1
- package/dist/hr-XYCPPQ2E.js +0 -1
- package/dist/hu-MXARVYEB.js +0 -1
- package/dist/it-AEJ2XXPK.js +0 -1
- package/dist/ja-GEZL7WIS.js +0 -1
- package/dist/ku-X2WS563F.js +0 -1
- package/dist/localeLoaders-YAOADFDS.js +0 -1
- package/dist/lt-O6WX2MFZ.js +0 -1
- package/dist/lv-JQH24NH4.js +0 -1
- package/dist/nl-OYNNCIHM.js +0 -1
- package/dist/no-TJCQIIDH.js +0 -1
- package/dist/pl-WWCEGFPX.js +0 -1
- package/dist/pt-FWBIZXLG.js +0 -1
- package/dist/ru-6IAWMJIM.js +0 -1
- package/dist/sk-2NHU34X2.js +0 -1
- package/dist/sl-O2QSGQWN.js +0 -1
- package/dist/sr-XK7AKCDR.js +0 -1
- package/dist/sv-IPA5ZBAA.js +0 -1
- package/dist/tr-TM3T5KYL.js +0 -1
- package/dist/uk-37NGTGA6.js +0 -1
- package/dist/zh-Hans-QKYGPQQE.js +0 -1
- package/dist/zh-Hant-AUEE5P67.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,
|
|
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,
|
|
3
|
-
import { c as EventConfigurationRef, b as EventConfigurationVersion } from './eventConfigurations-
|
|
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-
|
|
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 {
|
|
7
|
-
export { M as MAX_EVENT_INVENTORY,
|
|
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, j as CategoryTier, S as SeatCommercialAttributes, w as ChartDeliveryPerformance } from './types-eVmh2-Yn.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, i 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, h 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-eVmh2-Yn.cjs';
|
|
3
|
+
import { c as EventConfigurationRef, b as EventConfigurationVersion } from './eventConfigurations-OVlni2ym.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-OVlni2ym.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-tDaLWj54.cjs';
|
|
6
|
+
import { f as TicketSelectionIssue, b as GroupedTableInventoryUnit } from './ticketRestrictions-B4eT6vEy.cjs';
|
|
7
|
+
export { M as MAX_EVENT_INVENTORY, d as MAX_GA_CAPACITY, j as gaAreasOf, k as gaInventorySegments, l as gaUnitLabel, m as gaUnitLabels, o as growJoinedGAInventory, p as isGaUnitLabel, v as validGAInventorySegments } from './ticketRestrictions-B4eT6vEy.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-DUG5M-hF.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-CHAf5J4i.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-CuLIU7z1.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-CuLIU7z1.cjs';
|
|
12
|
+
import './segmentedRowModel-BYSxfsqX.cjs';
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Half-width of the band around a legibility threshold, in rendered pixels.
|
|
@@ -2007,17 +2007,57 @@ interface PickerAccessNeed {
|
|
|
2007
2007
|
*/
|
|
2008
2008
|
declare function accessNeedsFor(seats: Iterable<ExpandedSeat>, statusOf: (seatId: string) => string): PickerAccessNeed[];
|
|
2009
2009
|
|
|
2010
|
+
/**
|
|
2011
|
+
* WHICH ANSWER ABOUT THE SEAT MAP IS THE YOUNGER ONE.
|
|
2012
|
+
*
|
|
2013
|
+
* The picker's open path runs its reads concurrently: the chart, the compact
|
|
2014
|
+
* inventory snapshot and the live socket all start together, so a buyer sees a
|
|
2015
|
+
* correct map at `max(reads) + parse` instead of at the sum of them. What that
|
|
2016
|
+
* buys in latency it costs in ordering, because three things can now happen
|
|
2017
|
+
* that a strictly serial boot made impossible:
|
|
2018
|
+
*
|
|
2019
|
+
* 1. An authoritative snapshot arrives BEFORE the chart does. The renderer
|
|
2020
|
+
* holds no seats yet, so painting is not an option — but dropping it is
|
|
2021
|
+
* worse, because the next authoritative answer may be seconds away.
|
|
2022
|
+
* 2. A live socket frame overtakes an HTTP body that was already in flight.
|
|
2023
|
+
* The body then lands LAST while describing an EARLIER instant, and
|
|
2024
|
+
* applying it un-sells seats the buyer has already been shown as gone.
|
|
2025
|
+
* 3. Both a buffered snapshot and the boot read are waiting when the chart
|
|
2026
|
+
* finally lands, and exactly one of them has to paint first.
|
|
2027
|
+
*
|
|
2028
|
+
* All three are the same question — which of two answers is younger — so it is
|
|
2029
|
+
* answered once, here, rather than three times inside PickerController where
|
|
2030
|
+
* each answer would be a different `if`. Kept pure (plain records, no renderer,
|
|
2031
|
+
* no controller) for the same reason ./availabilityRefresh is: the rule has to
|
|
2032
|
+
* be readable and testable on its own, and both buyer surfaces reconcile
|
|
2033
|
+
* through it rather than drifting into two orderings.
|
|
2034
|
+
*
|
|
2035
|
+
* The rule itself is one sentence: **a live frame is always younger than an
|
|
2036
|
+
* HTTP body it raced.** The socket does not answer questions, it announces
|
|
2037
|
+
* changes, so its frame describes the state at the moment it was sent; an HTTP
|
|
2038
|
+
* snapshot describes the state at the moment the SERVER read it, which is
|
|
2039
|
+
* necessarily before the response arrived. Where the two disagree, the socket
|
|
2040
|
+
* is the later truth. Where they agree, the ordering is invisible.
|
|
2041
|
+
*/
|
|
2042
|
+
/**
|
|
2043
|
+
* Where an authoritative seat map came from.
|
|
2044
|
+
*
|
|
2045
|
+
* The distinction exists only to order two answers about the same instant.
|
|
2046
|
+
* Nothing downstream renders differently because of it.
|
|
2047
|
+
*/
|
|
2048
|
+
type SnapshotSource = 'http' | 'socket';
|
|
2049
|
+
|
|
2010
2050
|
declare class PickerController {
|
|
2011
|
-
|
|
2012
|
-
|
|
2013
|
-
|
|
2051
|
+
/** @internal */ readonly opts: PickerOptions;
|
|
2052
|
+
/** @internal */ readonly api: PickerTransport;
|
|
2053
|
+
/** @internal */ readonly key: string;
|
|
2014
2054
|
private maxSelection;
|
|
2015
2055
|
private readonly numberOfPlacesToSelect;
|
|
2016
2056
|
private readonly selectionValidators;
|
|
2017
2057
|
private selectableObjectRefs;
|
|
2018
2058
|
private selectableSeatIds;
|
|
2019
2059
|
private lastSelectionValidity;
|
|
2020
|
-
|
|
2060
|
+
/** @internal */ renderer: ISeatmapRenderer | null;
|
|
2021
2061
|
/** Host-tracked pending GA quantity per area id (the widget cart's chips). */
|
|
2022
2062
|
private gaSelected;
|
|
2023
2063
|
private _doc;
|
|
@@ -2031,7 +2071,7 @@ declare class PickerController {
|
|
|
2031
2071
|
private closedSections;
|
|
2032
2072
|
/** label ⇄ id maps — backend speaks labels, the engine speaks ids. */
|
|
2033
2073
|
private labelToId;
|
|
2034
|
-
|
|
2074
|
+
/** @internal */ labelToSeat: Map<string, ExpandedSeat>;
|
|
2035
2075
|
/** One canonical expansion for buyer-model consumers outside this controller. */
|
|
2036
2076
|
private expandedSeats;
|
|
2037
2077
|
/** seatId → chosen ticket-tier id (absent ⇒ the category's first/default tier). */
|
|
@@ -2043,11 +2083,11 @@ declare class PickerController {
|
|
|
2043
2083
|
private allIds;
|
|
2044
2084
|
/** Model-2 tables are one booking unit whose chairs remain renderer geometry. */
|
|
2045
2085
|
private groupedTablesByObject;
|
|
2046
|
-
|
|
2086
|
+
/** @internal */ groupedTablesByLabel: Map<string, GroupedTableInventoryUnit>;
|
|
2047
2087
|
private groupedTableBySeatId;
|
|
2048
|
-
|
|
2088
|
+
/** @internal */ tableQuantities: Map<string, number>;
|
|
2049
2089
|
/** Variable quantity is a buyer contract, never an inferred default. */
|
|
2050
|
-
|
|
2090
|
+
/** @internal */ confirmedVariableTables: Set<string>;
|
|
2051
2091
|
private groupedSelectionOverhead;
|
|
2052
2092
|
private ws;
|
|
2053
2093
|
/** Standby snapshot pull for a socket that connected and then said nothing. */
|
|
@@ -2056,10 +2096,10 @@ declare class PickerController {
|
|
|
2056
2096
|
private realtime;
|
|
2057
2097
|
private reconnectTimer;
|
|
2058
2098
|
private attempt;
|
|
2059
|
-
|
|
2099
|
+
/** @internal */ closed: boolean;
|
|
2060
2100
|
/** Detach for the tab-regain catch-up listener; null when not attached. */
|
|
2061
2101
|
private detachVisibility;
|
|
2062
|
-
|
|
2102
|
+
/** @internal */ hold_: HoldInfo | null;
|
|
2063
2103
|
private liveStatuses;
|
|
2064
2104
|
/**
|
|
2065
2105
|
* What a label absent from `liveStatuses` is.
|
|
@@ -2072,7 +2112,7 @@ declare class PickerController {
|
|
|
2072
2112
|
*/
|
|
2073
2113
|
private liveDefault;
|
|
2074
2114
|
private currency;
|
|
2075
|
-
|
|
2115
|
+
/** @internal */ expiryTimer: ReturnType<typeof setTimeout> | null;
|
|
2076
2116
|
private readonly snapshots;
|
|
2077
2117
|
constructor(options: PickerOptions);
|
|
2078
2118
|
get doc(): ChartDoc | null;
|
|
@@ -2137,7 +2177,7 @@ declare class PickerController {
|
|
|
2137
2177
|
loadEventConfiguration(): Promise<EventConfigurationVersion | null>;
|
|
2138
2178
|
idForLabel(label: string): string | undefined;
|
|
2139
2179
|
private idsForLabel;
|
|
2140
|
-
|
|
2180
|
+
/** @internal */ idsForLabels(labels: Iterable<string>): string[];
|
|
2141
2181
|
/** Resolve a physical chair id (or table inventory label) to its table unit. */
|
|
2142
2182
|
tableSelection(seatIdOrLabel: string): TableSelectionDetails | null;
|
|
2143
2183
|
/**
|
|
@@ -2205,8 +2245,10 @@ declare class PickerController {
|
|
|
2205
2245
|
private handleRendererSelect;
|
|
2206
2246
|
private handleRendererDeselect;
|
|
2207
2247
|
private resetUnheldTableQuantities;
|
|
2208
|
-
|
|
2209
|
-
|
|
2248
|
+
/** @internal */ resetTableQuantitiesForLabels(labels: Iterable<string>): void;
|
|
2249
|
+
/** @internal */ tableQuantityRequest(seat: PickerSeat | null): {
|
|
2250
|
+
quantity?: number;
|
|
2251
|
+
};
|
|
2210
2252
|
/**
|
|
2211
2253
|
* Hold the current selection (or a given label set). The controller does the
|
|
2212
2254
|
* renderer/hold side (409 → deselect + repaint the taken seats held) and then
|
|
@@ -2273,9 +2315,7 @@ declare class PickerController {
|
|
|
2273
2315
|
ttlMs?: number;
|
|
2274
2316
|
}): Promise<HoldInfo | null>;
|
|
2275
2317
|
/**
|
|
2276
|
-
*
|
|
2277
|
-
* deliberately does not). `bookingRef` MUST be a real reference from the caller.
|
|
2278
|
-
* `labelsArg` lets the caller book its own cart (the live page's confirm-flow
|
|
2318
|
+
* Book the held seats. `labelsArg` names what to book (the SDK/hosted
|
|
2279
2319
|
* cart can hold best-available seats that aren't in the renderer selection);
|
|
2280
2320
|
* defaults to the renderer selection. Reuses an existing exact-match hold, else
|
|
2281
2321
|
* holds first. Returns the labels booked, or null on failure (conflicts painted).
|
|
@@ -2283,15 +2323,11 @@ declare class PickerController {
|
|
|
2283
2323
|
* seats sit held for the host's window rather than the longer server default.
|
|
2284
2324
|
*/
|
|
2285
2325
|
book(bookingRef: string, labelsArg?: string[], ttlMs?: number): Promise<string[] | null>;
|
|
2286
|
-
/** Release the whole open hold
|
|
2326
|
+
/** Release the whole open hold. */
|
|
2287
2327
|
release(): Promise<boolean>;
|
|
2288
|
-
/**
|
|
2289
|
-
* Release just some labels from the open hold, keeping the rest held (used when
|
|
2290
|
-
* a buyer removes one seat chip). Clears the hold entirely once it empties.
|
|
2291
|
-
*/
|
|
2328
|
+
/** Release named labels from the open hold, keeping the rest of it alive. */
|
|
2292
2329
|
releaseLabels(labels: string[]): Promise<boolean>;
|
|
2293
|
-
/**
|
|
2294
|
-
private releaseConfirmed;
|
|
2330
|
+
/** @internal */ releaseConfirmed(result: unknown, requested: string[]): boolean;
|
|
2295
2331
|
setStatus(ids: string[], status: SeatStatus): void;
|
|
2296
2332
|
getStatus(id: string): SeatStatus | undefined;
|
|
2297
2333
|
/** Seat ids whose category the author marked not-for-sale. */
|
|
@@ -2464,7 +2500,7 @@ declare class PickerController {
|
|
|
2464
2500
|
private sectionSummary;
|
|
2465
2501
|
private clearConnectFallback;
|
|
2466
2502
|
destroy(): void;
|
|
2467
|
-
|
|
2503
|
+
/** @internal */ toSeat(s: ExpandedSeat): PickerSeat;
|
|
2468
2504
|
private toTableSeat;
|
|
2469
2505
|
private describeSeat;
|
|
2470
2506
|
private priceFor;
|
|
@@ -2481,8 +2517,8 @@ declare class PickerController {
|
|
|
2481
2517
|
*/
|
|
2482
2518
|
setSeatTier(seatId: string, tierId: string | null): void;
|
|
2483
2519
|
/** PickerSeats (with chosen tier) for a set of held labels. */
|
|
2484
|
-
|
|
2485
|
-
|
|
2520
|
+
/** @internal */ seatsForLabels(labels: string[]): PickerSeat[];
|
|
2521
|
+
/** @internal */ emitSelectionChange(): void;
|
|
2486
2522
|
private emitSelectionValidity;
|
|
2487
2523
|
/** Check explicit tier applicability and companion relationships for the
|
|
2488
2524
|
* current (or supplied) seats. Ticket display names are never semantic input. */
|
|
@@ -2498,13 +2534,15 @@ declare class PickerController {
|
|
|
2498
2534
|
private emitOrphanHint;
|
|
2499
2535
|
/** Toggle colorblind-safe rendering at runtime (see PickerOptions.colorblindSafe). */
|
|
2500
2536
|
setColorblindSafe(on: boolean): void;
|
|
2501
|
-
|
|
2502
|
-
|
|
2503
|
-
|
|
2504
|
-
/**
|
|
2505
|
-
|
|
2506
|
-
|
|
2507
|
-
|
|
2537
|
+
/** @internal */ emitError(err: unknown): void;
|
|
2538
|
+
/** @internal */ holdCovers(labels: string[]): boolean;
|
|
2539
|
+
/** 409 conflict → deselect the taken labels and repaint them held. */
|
|
2540
|
+
/** @internal */ handle409Conflicts(err: unknown): void;
|
|
2541
|
+
/** @internal */ setHold(hold: Omit<HoldInfo, 'seats'> & {
|
|
2542
|
+
seats?: PickerSeat[];
|
|
2543
|
+
}, source?: 'created' | 'restored'): void;
|
|
2544
|
+
/** @internal */ clearHold(): void;
|
|
2545
|
+
/** @internal */ expireActiveHold(): Promise<void>;
|
|
2508
2546
|
/**
|
|
2509
2547
|
* Repaint from an authoritative map of unit statuses.
|
|
2510
2548
|
*
|
|
@@ -2515,7 +2553,7 @@ declare class PickerController {
|
|
|
2515
2553
|
* `free` would paint a sold-out stadium as fully available, so the default is
|
|
2516
2554
|
* a parameter rather than a constant.
|
|
2517
2555
|
*/
|
|
2518
|
-
|
|
2556
|
+
/** @internal */ applySeatsMap(seats: Record<string, string>, defaultStatus?: string, source?: SnapshotSource): void;
|
|
2519
2557
|
/**
|
|
2520
2558
|
* When an authoritative map was last painted, and whether one is recent.
|
|
2521
2559
|
*
|
|
@@ -2538,10 +2576,10 @@ declare class PickerController {
|
|
|
2538
2576
|
private socketVersion;
|
|
2539
2577
|
private snapshotIsFresh;
|
|
2540
2578
|
/** The live status of one unit, honouring the projection's default. */
|
|
2541
|
-
|
|
2579
|
+
/** @internal */ statusOf(label: string): string;
|
|
2542
2580
|
private clearBookedHoldIfSettled;
|
|
2543
2581
|
/** Repaint from truth. Coalesced — see snapshotCoalescer.ts. */
|
|
2544
|
-
|
|
2582
|
+
/** @internal */ resnapshot(force?: boolean): Promise<void>;
|
|
2545
2583
|
/**
|
|
2546
2584
|
* Repaint from truth on a realtime client's behalf — coalesced, never forced.
|
|
2547
2585
|
*
|
package/dist/index.d.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { C as ChartDoc, F as FloorLabelStyle, P as Point, A as AccessibilityType,
|
|
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,
|
|
3
|
-
import { c as EventConfigurationRef, b as EventConfigurationVersion } from './eventConfigurations-
|
|
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-
|
|
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 {
|
|
7
|
-
export { M as MAX_EVENT_INVENTORY,
|
|
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, j as CategoryTier, S as SeatCommercialAttributes, w as ChartDeliveryPerformance } from './types-eVmh2-Yn.js';
|
|
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, i 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, h 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-eVmh2-Yn.js';
|
|
3
|
+
import { c as EventConfigurationRef, b as EventConfigurationVersion } from './eventConfigurations-DhGEe6fT.js';
|
|
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-DhGEe6fT.js';
|
|
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-Dr-ksQTq.js';
|
|
6
|
+
import { f as TicketSelectionIssue, b as GroupedTableInventoryUnit } from './ticketRestrictions-7HrT6IQM.js';
|
|
7
|
+
export { M as MAX_EVENT_INVENTORY, d as MAX_GA_CAPACITY, j as gaAreasOf, k as gaInventorySegments, l as gaUnitLabel, m as gaUnitLabels, o as growJoinedGAInventory, p as isGaUnitLabel, v as validGAInventorySegments } from './ticketRestrictions-7HrT6IQM.js';
|
|
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-Du9QkrCf.js';
|
|
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-C4-5Oy6-.js';
|
|
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-Bx0ucRf6.js';
|
|
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-Bx0ucRf6.js';
|
|
12
|
+
import './segmentedRowModel-N9Z0rnKY.js';
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Half-width of the band around a legibility threshold, in rendered pixels.
|
|
@@ -2007,17 +2007,57 @@ interface PickerAccessNeed {
|
|
|
2007
2007
|
*/
|
|
2008
2008
|
declare function accessNeedsFor(seats: Iterable<ExpandedSeat>, statusOf: (seatId: string) => string): PickerAccessNeed[];
|
|
2009
2009
|
|
|
2010
|
+
/**
|
|
2011
|
+
* WHICH ANSWER ABOUT THE SEAT MAP IS THE YOUNGER ONE.
|
|
2012
|
+
*
|
|
2013
|
+
* The picker's open path runs its reads concurrently: the chart, the compact
|
|
2014
|
+
* inventory snapshot and the live socket all start together, so a buyer sees a
|
|
2015
|
+
* correct map at `max(reads) + parse` instead of at the sum of them. What that
|
|
2016
|
+
* buys in latency it costs in ordering, because three things can now happen
|
|
2017
|
+
* that a strictly serial boot made impossible:
|
|
2018
|
+
*
|
|
2019
|
+
* 1. An authoritative snapshot arrives BEFORE the chart does. The renderer
|
|
2020
|
+
* holds no seats yet, so painting is not an option — but dropping it is
|
|
2021
|
+
* worse, because the next authoritative answer may be seconds away.
|
|
2022
|
+
* 2. A live socket frame overtakes an HTTP body that was already in flight.
|
|
2023
|
+
* The body then lands LAST while describing an EARLIER instant, and
|
|
2024
|
+
* applying it un-sells seats the buyer has already been shown as gone.
|
|
2025
|
+
* 3. Both a buffered snapshot and the boot read are waiting when the chart
|
|
2026
|
+
* finally lands, and exactly one of them has to paint first.
|
|
2027
|
+
*
|
|
2028
|
+
* All three are the same question — which of two answers is younger — so it is
|
|
2029
|
+
* answered once, here, rather than three times inside PickerController where
|
|
2030
|
+
* each answer would be a different `if`. Kept pure (plain records, no renderer,
|
|
2031
|
+
* no controller) for the same reason ./availabilityRefresh is: the rule has to
|
|
2032
|
+
* be readable and testable on its own, and both buyer surfaces reconcile
|
|
2033
|
+
* through it rather than drifting into two orderings.
|
|
2034
|
+
*
|
|
2035
|
+
* The rule itself is one sentence: **a live frame is always younger than an
|
|
2036
|
+
* HTTP body it raced.** The socket does not answer questions, it announces
|
|
2037
|
+
* changes, so its frame describes the state at the moment it was sent; an HTTP
|
|
2038
|
+
* snapshot describes the state at the moment the SERVER read it, which is
|
|
2039
|
+
* necessarily before the response arrived. Where the two disagree, the socket
|
|
2040
|
+
* is the later truth. Where they agree, the ordering is invisible.
|
|
2041
|
+
*/
|
|
2042
|
+
/**
|
|
2043
|
+
* Where an authoritative seat map came from.
|
|
2044
|
+
*
|
|
2045
|
+
* The distinction exists only to order two answers about the same instant.
|
|
2046
|
+
* Nothing downstream renders differently because of it.
|
|
2047
|
+
*/
|
|
2048
|
+
type SnapshotSource = 'http' | 'socket';
|
|
2049
|
+
|
|
2010
2050
|
declare class PickerController {
|
|
2011
|
-
|
|
2012
|
-
|
|
2013
|
-
|
|
2051
|
+
/** @internal */ readonly opts: PickerOptions;
|
|
2052
|
+
/** @internal */ readonly api: PickerTransport;
|
|
2053
|
+
/** @internal */ readonly key: string;
|
|
2014
2054
|
private maxSelection;
|
|
2015
2055
|
private readonly numberOfPlacesToSelect;
|
|
2016
2056
|
private readonly selectionValidators;
|
|
2017
2057
|
private selectableObjectRefs;
|
|
2018
2058
|
private selectableSeatIds;
|
|
2019
2059
|
private lastSelectionValidity;
|
|
2020
|
-
|
|
2060
|
+
/** @internal */ renderer: ISeatmapRenderer | null;
|
|
2021
2061
|
/** Host-tracked pending GA quantity per area id (the widget cart's chips). */
|
|
2022
2062
|
private gaSelected;
|
|
2023
2063
|
private _doc;
|
|
@@ -2031,7 +2071,7 @@ declare class PickerController {
|
|
|
2031
2071
|
private closedSections;
|
|
2032
2072
|
/** label ⇄ id maps — backend speaks labels, the engine speaks ids. */
|
|
2033
2073
|
private labelToId;
|
|
2034
|
-
|
|
2074
|
+
/** @internal */ labelToSeat: Map<string, ExpandedSeat>;
|
|
2035
2075
|
/** One canonical expansion for buyer-model consumers outside this controller. */
|
|
2036
2076
|
private expandedSeats;
|
|
2037
2077
|
/** seatId → chosen ticket-tier id (absent ⇒ the category's first/default tier). */
|
|
@@ -2043,11 +2083,11 @@ declare class PickerController {
|
|
|
2043
2083
|
private allIds;
|
|
2044
2084
|
/** Model-2 tables are one booking unit whose chairs remain renderer geometry. */
|
|
2045
2085
|
private groupedTablesByObject;
|
|
2046
|
-
|
|
2086
|
+
/** @internal */ groupedTablesByLabel: Map<string, GroupedTableInventoryUnit>;
|
|
2047
2087
|
private groupedTableBySeatId;
|
|
2048
|
-
|
|
2088
|
+
/** @internal */ tableQuantities: Map<string, number>;
|
|
2049
2089
|
/** Variable quantity is a buyer contract, never an inferred default. */
|
|
2050
|
-
|
|
2090
|
+
/** @internal */ confirmedVariableTables: Set<string>;
|
|
2051
2091
|
private groupedSelectionOverhead;
|
|
2052
2092
|
private ws;
|
|
2053
2093
|
/** Standby snapshot pull for a socket that connected and then said nothing. */
|
|
@@ -2056,10 +2096,10 @@ declare class PickerController {
|
|
|
2056
2096
|
private realtime;
|
|
2057
2097
|
private reconnectTimer;
|
|
2058
2098
|
private attempt;
|
|
2059
|
-
|
|
2099
|
+
/** @internal */ closed: boolean;
|
|
2060
2100
|
/** Detach for the tab-regain catch-up listener; null when not attached. */
|
|
2061
2101
|
private detachVisibility;
|
|
2062
|
-
|
|
2102
|
+
/** @internal */ hold_: HoldInfo | null;
|
|
2063
2103
|
private liveStatuses;
|
|
2064
2104
|
/**
|
|
2065
2105
|
* What a label absent from `liveStatuses` is.
|
|
@@ -2072,7 +2112,7 @@ declare class PickerController {
|
|
|
2072
2112
|
*/
|
|
2073
2113
|
private liveDefault;
|
|
2074
2114
|
private currency;
|
|
2075
|
-
|
|
2115
|
+
/** @internal */ expiryTimer: ReturnType<typeof setTimeout> | null;
|
|
2076
2116
|
private readonly snapshots;
|
|
2077
2117
|
constructor(options: PickerOptions);
|
|
2078
2118
|
get doc(): ChartDoc | null;
|
|
@@ -2137,7 +2177,7 @@ declare class PickerController {
|
|
|
2137
2177
|
loadEventConfiguration(): Promise<EventConfigurationVersion | null>;
|
|
2138
2178
|
idForLabel(label: string): string | undefined;
|
|
2139
2179
|
private idsForLabel;
|
|
2140
|
-
|
|
2180
|
+
/** @internal */ idsForLabels(labels: Iterable<string>): string[];
|
|
2141
2181
|
/** Resolve a physical chair id (or table inventory label) to its table unit. */
|
|
2142
2182
|
tableSelection(seatIdOrLabel: string): TableSelectionDetails | null;
|
|
2143
2183
|
/**
|
|
@@ -2205,8 +2245,10 @@ declare class PickerController {
|
|
|
2205
2245
|
private handleRendererSelect;
|
|
2206
2246
|
private handleRendererDeselect;
|
|
2207
2247
|
private resetUnheldTableQuantities;
|
|
2208
|
-
|
|
2209
|
-
|
|
2248
|
+
/** @internal */ resetTableQuantitiesForLabels(labels: Iterable<string>): void;
|
|
2249
|
+
/** @internal */ tableQuantityRequest(seat: PickerSeat | null): {
|
|
2250
|
+
quantity?: number;
|
|
2251
|
+
};
|
|
2210
2252
|
/**
|
|
2211
2253
|
* Hold the current selection (or a given label set). The controller does the
|
|
2212
2254
|
* renderer/hold side (409 → deselect + repaint the taken seats held) and then
|
|
@@ -2273,9 +2315,7 @@ declare class PickerController {
|
|
|
2273
2315
|
ttlMs?: number;
|
|
2274
2316
|
}): Promise<HoldInfo | null>;
|
|
2275
2317
|
/**
|
|
2276
|
-
*
|
|
2277
|
-
* deliberately does not). `bookingRef` MUST be a real reference from the caller.
|
|
2278
|
-
* `labelsArg` lets the caller book its own cart (the live page's confirm-flow
|
|
2318
|
+
* Book the held seats. `labelsArg` names what to book (the SDK/hosted
|
|
2279
2319
|
* cart can hold best-available seats that aren't in the renderer selection);
|
|
2280
2320
|
* defaults to the renderer selection. Reuses an existing exact-match hold, else
|
|
2281
2321
|
* holds first. Returns the labels booked, or null on failure (conflicts painted).
|
|
@@ -2283,15 +2323,11 @@ declare class PickerController {
|
|
|
2283
2323
|
* seats sit held for the host's window rather than the longer server default.
|
|
2284
2324
|
*/
|
|
2285
2325
|
book(bookingRef: string, labelsArg?: string[], ttlMs?: number): Promise<string[] | null>;
|
|
2286
|
-
/** Release the whole open hold
|
|
2326
|
+
/** Release the whole open hold. */
|
|
2287
2327
|
release(): Promise<boolean>;
|
|
2288
|
-
/**
|
|
2289
|
-
* Release just some labels from the open hold, keeping the rest held (used when
|
|
2290
|
-
* a buyer removes one seat chip). Clears the hold entirely once it empties.
|
|
2291
|
-
*/
|
|
2328
|
+
/** Release named labels from the open hold, keeping the rest of it alive. */
|
|
2292
2329
|
releaseLabels(labels: string[]): Promise<boolean>;
|
|
2293
|
-
/**
|
|
2294
|
-
private releaseConfirmed;
|
|
2330
|
+
/** @internal */ releaseConfirmed(result: unknown, requested: string[]): boolean;
|
|
2295
2331
|
setStatus(ids: string[], status: SeatStatus): void;
|
|
2296
2332
|
getStatus(id: string): SeatStatus | undefined;
|
|
2297
2333
|
/** Seat ids whose category the author marked not-for-sale. */
|
|
@@ -2464,7 +2500,7 @@ declare class PickerController {
|
|
|
2464
2500
|
private sectionSummary;
|
|
2465
2501
|
private clearConnectFallback;
|
|
2466
2502
|
destroy(): void;
|
|
2467
|
-
|
|
2503
|
+
/** @internal */ toSeat(s: ExpandedSeat): PickerSeat;
|
|
2468
2504
|
private toTableSeat;
|
|
2469
2505
|
private describeSeat;
|
|
2470
2506
|
private priceFor;
|
|
@@ -2481,8 +2517,8 @@ declare class PickerController {
|
|
|
2481
2517
|
*/
|
|
2482
2518
|
setSeatTier(seatId: string, tierId: string | null): void;
|
|
2483
2519
|
/** PickerSeats (with chosen tier) for a set of held labels. */
|
|
2484
|
-
|
|
2485
|
-
|
|
2520
|
+
/** @internal */ seatsForLabels(labels: string[]): PickerSeat[];
|
|
2521
|
+
/** @internal */ emitSelectionChange(): void;
|
|
2486
2522
|
private emitSelectionValidity;
|
|
2487
2523
|
/** Check explicit tier applicability and companion relationships for the
|
|
2488
2524
|
* current (or supplied) seats. Ticket display names are never semantic input. */
|
|
@@ -2498,13 +2534,15 @@ declare class PickerController {
|
|
|
2498
2534
|
private emitOrphanHint;
|
|
2499
2535
|
/** Toggle colorblind-safe rendering at runtime (see PickerOptions.colorblindSafe). */
|
|
2500
2536
|
setColorblindSafe(on: boolean): void;
|
|
2501
|
-
|
|
2502
|
-
|
|
2503
|
-
|
|
2504
|
-
/**
|
|
2505
|
-
|
|
2506
|
-
|
|
2507
|
-
|
|
2537
|
+
/** @internal */ emitError(err: unknown): void;
|
|
2538
|
+
/** @internal */ holdCovers(labels: string[]): boolean;
|
|
2539
|
+
/** 409 conflict → deselect the taken labels and repaint them held. */
|
|
2540
|
+
/** @internal */ handle409Conflicts(err: unknown): void;
|
|
2541
|
+
/** @internal */ setHold(hold: Omit<HoldInfo, 'seats'> & {
|
|
2542
|
+
seats?: PickerSeat[];
|
|
2543
|
+
}, source?: 'created' | 'restored'): void;
|
|
2544
|
+
/** @internal */ clearHold(): void;
|
|
2545
|
+
/** @internal */ expireActiveHold(): Promise<void>;
|
|
2508
2546
|
/**
|
|
2509
2547
|
* Repaint from an authoritative map of unit statuses.
|
|
2510
2548
|
*
|
|
@@ -2515,7 +2553,7 @@ declare class PickerController {
|
|
|
2515
2553
|
* `free` would paint a sold-out stadium as fully available, so the default is
|
|
2516
2554
|
* a parameter rather than a constant.
|
|
2517
2555
|
*/
|
|
2518
|
-
|
|
2556
|
+
/** @internal */ applySeatsMap(seats: Record<string, string>, defaultStatus?: string, source?: SnapshotSource): void;
|
|
2519
2557
|
/**
|
|
2520
2558
|
* When an authoritative map was last painted, and whether one is recent.
|
|
2521
2559
|
*
|
|
@@ -2538,10 +2576,10 @@ declare class PickerController {
|
|
|
2538
2576
|
private socketVersion;
|
|
2539
2577
|
private snapshotIsFresh;
|
|
2540
2578
|
/** The live status of one unit, honouring the projection's default. */
|
|
2541
|
-
|
|
2579
|
+
/** @internal */ statusOf(label: string): string;
|
|
2542
2580
|
private clearBookedHoldIfSettled;
|
|
2543
2581
|
/** Repaint from truth. Coalesced — see snapshotCoalescer.ts. */
|
|
2544
|
-
|
|
2582
|
+
/** @internal */ resnapshot(force?: boolean): Promise<void>;
|
|
2545
2583
|
/**
|
|
2546
2584
|
* Repaint from truth on a realtime client's behalf — coalesced, never forced.
|
|
2547
2585
|
*
|