@seatlayer/js 0.41.0 → 0.43.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/index.cjs +525 -98
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +116 -7
- package/dist/index.d.ts +116 -7
- package/dist/index.js +525 -98
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.cts
CHANGED
|
@@ -3388,6 +3388,16 @@ interface ChannelsSeatView {
|
|
|
3388
3388
|
x: number;
|
|
3389
3389
|
y: number;
|
|
3390
3390
|
}
|
|
3391
|
+
/** One row offered to the bulk assignment chooser. A physically segmented row
|
|
3392
|
+
* (one label split across several row objects) shares one logical id, so the
|
|
3393
|
+
* organizer picks "Row AA" once rather than three fragments of it. */
|
|
3394
|
+
interface ChannelsRowView {
|
|
3395
|
+
id: string;
|
|
3396
|
+
label: string;
|
|
3397
|
+
sectionId: string;
|
|
3398
|
+
sectionLabel: string;
|
|
3399
|
+
labels: string[];
|
|
3400
|
+
}
|
|
3391
3401
|
/** The `ManageApi` subset Channels mode uses — structural so tests can pass a
|
|
3392
3402
|
* hand-rolled double without constructing a real client. */
|
|
3393
3403
|
interface ChannelsClient {
|
|
@@ -3478,6 +3488,10 @@ interface ChannelsModeHost {
|
|
|
3478
3488
|
id: string;
|
|
3479
3489
|
label: string;
|
|
3480
3490
|
}>;
|
|
3491
|
+
/** Every selectable label inside one section, for the additive scope chooser. */
|
|
3492
|
+
labelsInSection(sectionId: string): string[];
|
|
3493
|
+
/** Logical rows across the whole chart, grouped by their section. */
|
|
3494
|
+
rows(): ChannelsRowView[];
|
|
3481
3495
|
categories(): Array<{
|
|
3482
3496
|
key: string;
|
|
3483
3497
|
label: string;
|
|
@@ -3576,6 +3590,21 @@ declare class ChannelsMode {
|
|
|
3576
3590
|
private stagedDoneTimer;
|
|
3577
3591
|
private lastSelectionCount;
|
|
3578
3592
|
private lastCounts;
|
|
3593
|
+
/** Rows are structural chart data — they do not move while the organizer is
|
|
3594
|
+
* allocating. Deriving them walks every seat, so the view is cached for the
|
|
3595
|
+
* lifetime of this mode entry and ordinary selection repaints stay O(1). */
|
|
3596
|
+
private assignmentRowsCache;
|
|
3597
|
+
/** The markup currently in the rail. An identical repaint is skipped, which is
|
|
3598
|
+
* what keeps the organizer's scroll position (and open <select>) alive. */
|
|
3599
|
+
private railHtml;
|
|
3600
|
+
/**
|
|
3601
|
+
* The `assignmentVersion` the allocation map was built from. Walking every
|
|
3602
|
+
* allocation page is the expensive half of a refresh and the server already
|
|
3603
|
+
* tells us, in the channels response, whether ANY seat moved. Unchanged
|
|
3604
|
+
* version, unchanged allocation — so the walk is skipped entirely.
|
|
3605
|
+
*/
|
|
3606
|
+
private allocationVersion;
|
|
3607
|
+
private onVisibility;
|
|
3579
3608
|
constructor(host: ChannelsModeHost, capabilities: ChannelsCapabilities);
|
|
3580
3609
|
/** Called when the cockpit switches into Channels mode. */
|
|
3581
3610
|
enter(): void;
|
|
@@ -3651,14 +3680,59 @@ declare class ChannelsMode {
|
|
|
3651
3680
|
/** Set by the cockpit so a view switch can re-arm canvas selection. */
|
|
3652
3681
|
onInteractionChange?: () => void;
|
|
3653
3682
|
private loadPreview;
|
|
3683
|
+
/**
|
|
3684
|
+
* Replace the rail's markup — but only when it actually differs, and never at
|
|
3685
|
+
* the cost of where the organizer had scrolled to.
|
|
3686
|
+
*
|
|
3687
|
+
* The rail repaints on a clock, on every selection change and after every
|
|
3688
|
+
* mutation. Rewriting `innerHTML` each time resets `scrollTop`, which is
|
|
3689
|
+
* exactly what "the rail gets stuck" was: scroll down to Create channel, the
|
|
3690
|
+
* poll ticks, and the list snaps back to the top under the cursor. So skip the
|
|
3691
|
+
* write when the markup is byte-identical, and restore the offset when it is
|
|
3692
|
+
* not.
|
|
3693
|
+
*
|
|
3694
|
+
* Returns whether the DOM was rewritten. Callers must only re-wire listeners
|
|
3695
|
+
* when it was — a skipped paint keeps the old nodes AND their listeners, so
|
|
3696
|
+
* re-wiring would double every handler.
|
|
3697
|
+
*/
|
|
3698
|
+
private setRailHtml;
|
|
3654
3699
|
paintRail(): void;
|
|
3655
3700
|
private viewSegmentHtml;
|
|
3656
3701
|
private mapNavigationHtml;
|
|
3657
3702
|
private countsHtml;
|
|
3658
3703
|
private channelRowHtml;
|
|
3659
3704
|
private listRailHtml;
|
|
3705
|
+
/**
|
|
3706
|
+
* Destination-first assignment controls.
|
|
3707
|
+
*
|
|
3708
|
+
* These used to live only inside the selection rail, which meant every route
|
|
3709
|
+
* into them was gated behind "select a seat on the map first" — the section,
|
|
3710
|
+
* row and category choosers were invisible until the organizer had already
|
|
3711
|
+
* done the work by hand. They now paint above the channel list too, so the
|
|
3712
|
+
* destination is chosen first and whole sections and rows are discoverable
|
|
3713
|
+
* without learning a hidden seat-first workflow.
|
|
3714
|
+
*/
|
|
3715
|
+
private assignmentToolsHtml;
|
|
3660
3716
|
private selectionRailHtml;
|
|
3661
3717
|
private detailRailHtml;
|
|
3718
|
+
/**
|
|
3719
|
+
* "Distribute" — how the seats in this channel actually reach a buyer.
|
|
3720
|
+
*
|
|
3721
|
+
* This replaced a four-value "access intent" picker (none / internal /
|
|
3722
|
+
* hosted_link / server). Two of those values did nothing anywhere: no buyer or
|
|
3723
|
+
* inventory path reads `access_intent`, so `none` and `internal` were labels an
|
|
3724
|
+
* organizer could set and then wait forever for something to happen. A third,
|
|
3725
|
+
* `hosted_link`, is not the organizer's to choose at all — the server sets it
|
|
3726
|
+
* when a buyer link is created and clears it when the last live one is revoked.
|
|
3727
|
+
*
|
|
3728
|
+
* So this is two ACTIONS, not a setting: create a buyer link, or point the
|
|
3729
|
+
* channel at a website integration. Both of them do something the moment they
|
|
3730
|
+
* are pressed. A legacy row still carrying `none` or `internal` renders the
|
|
3731
|
+
* neutral "not distributed yet" state with both actions offered — the stored
|
|
3732
|
+
* value is left alone (it is organizer-declared metadata and the API that
|
|
3733
|
+
* writes it is unchanged), it simply no longer has a control of its own.
|
|
3734
|
+
*/
|
|
3735
|
+
private distributeHtml;
|
|
3662
3736
|
/**
|
|
3663
3737
|
* Read the status projection for the open channel. Never paints — the caller
|
|
3664
3738
|
* decides when the rail repaints, so a poll-driven reload does not fight a
|
|
@@ -3667,12 +3741,16 @@ declare class ChannelsMode {
|
|
|
3667
3741
|
*/
|
|
3668
3742
|
private loadLinks;
|
|
3669
3743
|
/**
|
|
3670
|
-
* The
|
|
3744
|
+
* The buyer-link status section of the detail panel.
|
|
3671
3745
|
*
|
|
3672
3746
|
* STATUS ONLY, by design (comp 06 `hosted`): label, state, expiry,
|
|
3673
3747
|
* redemptions, seats per buyer, live sessions. There is no Copy control here
|
|
3674
3748
|
* and no field to hang one on — the URL was shown once at creation and cannot
|
|
3675
3749
|
* be produced again. Rotation is the recovery path, and it says so.
|
|
3750
|
+
*
|
|
3751
|
+
* Creating a link is the Distribute card's action, not this section's, so a
|
|
3752
|
+
* channel with no links renders nothing here rather than an empty heading and
|
|
3753
|
+
* a second button saying the same thing.
|
|
3676
3754
|
*/
|
|
3677
3755
|
private hostedLinksHtml;
|
|
3678
3756
|
private linkCardHtml;
|
|
@@ -3680,10 +3758,25 @@ declare class ChannelsMode {
|
|
|
3680
3758
|
private paintSelection;
|
|
3681
3759
|
private wireRail;
|
|
3682
3760
|
private railAction;
|
|
3683
|
-
|
|
3761
|
+
/** Derived once per mode entry — see `assignmentRowsCache`. */
|
|
3762
|
+
private assignmentRows;
|
|
3684
3763
|
private pickCategory;
|
|
3685
3764
|
/** A tiny modal chooser reusing the dialog primitive (focus trap + Escape). */
|
|
3686
3765
|
private promptChoice;
|
|
3766
|
+
/**
|
|
3767
|
+
* Add several whole sections, or several whole rows, in one operation.
|
|
3768
|
+
*
|
|
3769
|
+
* ADDITIVE by contract: the chooser starts from the labels already selected
|
|
3770
|
+
* and only ever grows that set, so opening it never destroys a hard-won
|
|
3771
|
+
* marquee or seat-list selection. The confirm button always states the net
|
|
3772
|
+
* number of seats it will add, and refuses to exceed `MAX_ASSIGNMENT_UNITS`.
|
|
3773
|
+
*
|
|
3774
|
+
* Rows get the richer variant. A large venue has thousands of them, so they
|
|
3775
|
+
* arrive collapsed under their section, with a section-level tri-state
|
|
3776
|
+
* checkbox, a search across every row, and a render cap — the flat list used
|
|
3777
|
+
* for sections would be an unusable wall of buttons.
|
|
3778
|
+
*/
|
|
3779
|
+
private renderScopeDialog;
|
|
3687
3780
|
private openDialog;
|
|
3688
3781
|
private renderDialog;
|
|
3689
3782
|
/**
|
|
@@ -3697,15 +3790,31 @@ declare class ChannelsMode {
|
|
|
3697
3790
|
private showDialogError;
|
|
3698
3791
|
private renderReviewDialog;
|
|
3699
3792
|
/**
|
|
3700
|
-
* Apply. On success the
|
|
3701
|
-
*
|
|
3702
|
-
*
|
|
3703
|
-
*
|
|
3793
|
+
* Apply. On success the sheet CLOSES and the staged bar confirms what moved,
|
|
3794
|
+
* naming the destination and any skipped seats, with the AUTHORITATIVE server
|
|
3795
|
+
* buckets still one Details press away. Leaving the modal up on success made
|
|
3796
|
+
* the organizer dismiss a sheet to get back to a map they had just changed.
|
|
3797
|
+
* On a stale version the server mutated nothing: keep the selection, shake
|
|
3798
|
+
* the bar once, and offer exactly one action — Refresh and review.
|
|
3704
3799
|
*/
|
|
3705
3800
|
private apply;
|
|
3801
|
+
/**
|
|
3802
|
+
* The success receipt, now that the review sheet closes on Apply. It names the
|
|
3803
|
+
* destination and the seats that could not move, keeps the authoritative
|
|
3804
|
+
* buckets reachable through Details, and stays up long enough to be read —
|
|
3805
|
+
* 1.2s was tuned for a confirmation the organizer was already looking at.
|
|
3806
|
+
*/
|
|
3706
3807
|
private showApplied;
|
|
3707
3808
|
private shakeStaged;
|
|
3708
3809
|
private renderRenameDialog;
|
|
3810
|
+
/**
|
|
3811
|
+
* "Get embed code" — mark the channel as reached through the organizer's own
|
|
3812
|
+
* backend. The write itself is `setChannelAccessIntent(…, 'server')`, the same
|
|
3813
|
+
* API the old picker called; the difference is that it is now a deliberate
|
|
3814
|
+
* action with a consequence the organizer is told about, rather than one of
|
|
3815
|
+
* four dropdown values with no observable effect.
|
|
3816
|
+
*/
|
|
3817
|
+
private chooseWebsiteIntegration;
|
|
3709
3818
|
private setAccessIntent;
|
|
3710
3819
|
private togglePause;
|
|
3711
3820
|
private renderArchiveDialog;
|
|
@@ -3771,4 +3880,4 @@ declare class ChannelsMode {
|
|
|
3771
3880
|
handleBack(): boolean;
|
|
3772
3881
|
}
|
|
3773
3882
|
|
|
3774
|
-
export { ACCESS_LINK_DEFAULTS, type AccessLinkRecord, type AccessLinkReveal, type AccessLinkState, type AccessLinkStatus, type AccessLinkStatusRecord, ApiError, type ArchiveBlockedDetails, type AssignmentBuckets, type AssignmentDropDetails, type AssignmentResult, type AttachPickerFrameOptions, type BestAvailableResult, type BucketRow, BuyerAccessContext, type BuyerAccessExpiredEvent, type BuyerAccessRefreshReason, type BuyerAccessToken, type BuyerAccessTokenProvider, BuyerAccessUnavailableError, type BuyerAccessUnavailableEvent, type BuyerAccessUnavailableReason, BuyerRealtimeClient, type BuyerRealtimeOptions, type ChannelAccessIntent, type ChannelAccessSummary, type ChannelAllocationPage, type ChannelAuditEntry, type ChannelAuditPage, type ChannelCounts, type ChannelListResult, type ChannelPreviewProjection, type ChannelRecord, type ChannelSeatStatus, type ChannelState, type ChannelsCapabilities, type ChannelsClient, ChannelsMode, type ChannelsModeHost, type ChannelsSeatView, type CheckoutHandoff, type CheckoutLineItem, type CheckoutSessionResult, type ControlRoomActivityEntry, type ControlRoomSectionMetric, type ControlRoomSnapshot, EmbeddedDesigner, type EmbeddedDesignerEventType, type EmbeddedDesignerMessage, type EmbeddedDesignerOptions, type GAAreaAvailability, type HoldConflict, type HoldLineItem, type HoldResult, type LogEntry, type LogPage, ManageApi, ManageApiError, type OrderStatusResult, PUBLIC_CHANNEL_ID, PUBLIC_CHANNEL_NAME, type PaymentOptionsReason, type PaymentOptionsResult, type PaymentProviderName, type Projection, type PubApiOptions, type RealtimeSink, type ReportByStatus, type ReportCategoryMeta, type ReportCategoryRow, type ReportResult, type ResumedHoldResult, SeatManager, type SeatManagerActionResult, type SeatManagerActivity, type SeatManagerCapability, type SeatManagerConnection, type SeatManagerMode, type SeatManagerOptions, type SeatManagerTallies, SeatPicker, type SeatPickerOptions, type SeatPickerTheme, SeatingChart, type SeatingChartOptions, type SelectedObjectUnavailableEvent, type SelectedSeat, type SelectionSourceRow, type StatusChange, type SubscribeTicket$1 as SubscribeTicket, accessIntentLabel, accessLine, accessLinkBadge, accessLinkErrorCopy, accessLinkIsLive, accessLinkPolicyLines, attachPickerFrame, bucketRows, bucketRowsHtml, createBuyerAccessContext, createControllerSink, dropReviewRows, isPublicChannelId, markerLetter, markerOf, mutationCount, needsMoveConfirmation, planAssignment, retryAfterCopy, selectionSources, stateBadge, suggestMarker };
|
|
3883
|
+
export { ACCESS_LINK_DEFAULTS, type AccessLinkRecord, type AccessLinkReveal, type AccessLinkState, type AccessLinkStatus, type AccessLinkStatusRecord, ApiError, type ArchiveBlockedDetails, type AssignmentBuckets, type AssignmentDropDetails, type AssignmentResult, type AttachPickerFrameOptions, type BestAvailableResult, type BucketRow, BuyerAccessContext, type BuyerAccessExpiredEvent, type BuyerAccessRefreshReason, type BuyerAccessToken, type BuyerAccessTokenProvider, BuyerAccessUnavailableError, type BuyerAccessUnavailableEvent, type BuyerAccessUnavailableReason, BuyerRealtimeClient, type BuyerRealtimeOptions, type ChannelAccessIntent, type ChannelAccessSummary, type ChannelAllocationPage, type ChannelAuditEntry, type ChannelAuditPage, type ChannelCounts, type ChannelListResult, type ChannelPreviewProjection, type ChannelRecord, type ChannelSeatStatus, type ChannelState, type ChannelsCapabilities, type ChannelsClient, ChannelsMode, type ChannelsModeHost, type ChannelsRowView, type ChannelsSeatView, type CheckoutHandoff, type CheckoutLineItem, type CheckoutSessionResult, type ControlRoomActivityEntry, type ControlRoomSectionMetric, type ControlRoomSnapshot, EmbeddedDesigner, type EmbeddedDesignerEventType, type EmbeddedDesignerMessage, type EmbeddedDesignerOptions, type GAAreaAvailability, type HoldConflict, type HoldLineItem, type HoldResult, type LogEntry, type LogPage, ManageApi, ManageApiError, type OrderStatusResult, PUBLIC_CHANNEL_ID, PUBLIC_CHANNEL_NAME, type PaymentOptionsReason, type PaymentOptionsResult, type PaymentProviderName, type Projection, type PubApiOptions, type RealtimeSink, type ReportByStatus, type ReportCategoryMeta, type ReportCategoryRow, type ReportResult, type ResumedHoldResult, SeatManager, type SeatManagerActionResult, type SeatManagerActivity, type SeatManagerCapability, type SeatManagerConnection, type SeatManagerMode, type SeatManagerOptions, type SeatManagerTallies, SeatPicker, type SeatPickerOptions, type SeatPickerTheme, SeatingChart, type SeatingChartOptions, type SelectedObjectUnavailableEvent, type SelectedSeat, type SelectionSourceRow, type StatusChange, type SubscribeTicket$1 as SubscribeTicket, accessIntentLabel, accessLine, accessLinkBadge, accessLinkErrorCopy, accessLinkIsLive, accessLinkPolicyLines, attachPickerFrame, bucketRows, bucketRowsHtml, createBuyerAccessContext, createControllerSink, dropReviewRows, isPublicChannelId, markerLetter, markerOf, mutationCount, needsMoveConfirmation, planAssignment, retryAfterCopy, selectionSources, stateBadge, suggestMarker };
|
package/dist/index.d.ts
CHANGED
|
@@ -3388,6 +3388,16 @@ interface ChannelsSeatView {
|
|
|
3388
3388
|
x: number;
|
|
3389
3389
|
y: number;
|
|
3390
3390
|
}
|
|
3391
|
+
/** One row offered to the bulk assignment chooser. A physically segmented row
|
|
3392
|
+
* (one label split across several row objects) shares one logical id, so the
|
|
3393
|
+
* organizer picks "Row AA" once rather than three fragments of it. */
|
|
3394
|
+
interface ChannelsRowView {
|
|
3395
|
+
id: string;
|
|
3396
|
+
label: string;
|
|
3397
|
+
sectionId: string;
|
|
3398
|
+
sectionLabel: string;
|
|
3399
|
+
labels: string[];
|
|
3400
|
+
}
|
|
3391
3401
|
/** The `ManageApi` subset Channels mode uses — structural so tests can pass a
|
|
3392
3402
|
* hand-rolled double without constructing a real client. */
|
|
3393
3403
|
interface ChannelsClient {
|
|
@@ -3478,6 +3488,10 @@ interface ChannelsModeHost {
|
|
|
3478
3488
|
id: string;
|
|
3479
3489
|
label: string;
|
|
3480
3490
|
}>;
|
|
3491
|
+
/** Every selectable label inside one section, for the additive scope chooser. */
|
|
3492
|
+
labelsInSection(sectionId: string): string[];
|
|
3493
|
+
/** Logical rows across the whole chart, grouped by their section. */
|
|
3494
|
+
rows(): ChannelsRowView[];
|
|
3481
3495
|
categories(): Array<{
|
|
3482
3496
|
key: string;
|
|
3483
3497
|
label: string;
|
|
@@ -3576,6 +3590,21 @@ declare class ChannelsMode {
|
|
|
3576
3590
|
private stagedDoneTimer;
|
|
3577
3591
|
private lastSelectionCount;
|
|
3578
3592
|
private lastCounts;
|
|
3593
|
+
/** Rows are structural chart data — they do not move while the organizer is
|
|
3594
|
+
* allocating. Deriving them walks every seat, so the view is cached for the
|
|
3595
|
+
* lifetime of this mode entry and ordinary selection repaints stay O(1). */
|
|
3596
|
+
private assignmentRowsCache;
|
|
3597
|
+
/** The markup currently in the rail. An identical repaint is skipped, which is
|
|
3598
|
+
* what keeps the organizer's scroll position (and open <select>) alive. */
|
|
3599
|
+
private railHtml;
|
|
3600
|
+
/**
|
|
3601
|
+
* The `assignmentVersion` the allocation map was built from. Walking every
|
|
3602
|
+
* allocation page is the expensive half of a refresh and the server already
|
|
3603
|
+
* tells us, in the channels response, whether ANY seat moved. Unchanged
|
|
3604
|
+
* version, unchanged allocation — so the walk is skipped entirely.
|
|
3605
|
+
*/
|
|
3606
|
+
private allocationVersion;
|
|
3607
|
+
private onVisibility;
|
|
3579
3608
|
constructor(host: ChannelsModeHost, capabilities: ChannelsCapabilities);
|
|
3580
3609
|
/** Called when the cockpit switches into Channels mode. */
|
|
3581
3610
|
enter(): void;
|
|
@@ -3651,14 +3680,59 @@ declare class ChannelsMode {
|
|
|
3651
3680
|
/** Set by the cockpit so a view switch can re-arm canvas selection. */
|
|
3652
3681
|
onInteractionChange?: () => void;
|
|
3653
3682
|
private loadPreview;
|
|
3683
|
+
/**
|
|
3684
|
+
* Replace the rail's markup — but only when it actually differs, and never at
|
|
3685
|
+
* the cost of where the organizer had scrolled to.
|
|
3686
|
+
*
|
|
3687
|
+
* The rail repaints on a clock, on every selection change and after every
|
|
3688
|
+
* mutation. Rewriting `innerHTML` each time resets `scrollTop`, which is
|
|
3689
|
+
* exactly what "the rail gets stuck" was: scroll down to Create channel, the
|
|
3690
|
+
* poll ticks, and the list snaps back to the top under the cursor. So skip the
|
|
3691
|
+
* write when the markup is byte-identical, and restore the offset when it is
|
|
3692
|
+
* not.
|
|
3693
|
+
*
|
|
3694
|
+
* Returns whether the DOM was rewritten. Callers must only re-wire listeners
|
|
3695
|
+
* when it was — a skipped paint keeps the old nodes AND their listeners, so
|
|
3696
|
+
* re-wiring would double every handler.
|
|
3697
|
+
*/
|
|
3698
|
+
private setRailHtml;
|
|
3654
3699
|
paintRail(): void;
|
|
3655
3700
|
private viewSegmentHtml;
|
|
3656
3701
|
private mapNavigationHtml;
|
|
3657
3702
|
private countsHtml;
|
|
3658
3703
|
private channelRowHtml;
|
|
3659
3704
|
private listRailHtml;
|
|
3705
|
+
/**
|
|
3706
|
+
* Destination-first assignment controls.
|
|
3707
|
+
*
|
|
3708
|
+
* These used to live only inside the selection rail, which meant every route
|
|
3709
|
+
* into them was gated behind "select a seat on the map first" — the section,
|
|
3710
|
+
* row and category choosers were invisible until the organizer had already
|
|
3711
|
+
* done the work by hand. They now paint above the channel list too, so the
|
|
3712
|
+
* destination is chosen first and whole sections and rows are discoverable
|
|
3713
|
+
* without learning a hidden seat-first workflow.
|
|
3714
|
+
*/
|
|
3715
|
+
private assignmentToolsHtml;
|
|
3660
3716
|
private selectionRailHtml;
|
|
3661
3717
|
private detailRailHtml;
|
|
3718
|
+
/**
|
|
3719
|
+
* "Distribute" — how the seats in this channel actually reach a buyer.
|
|
3720
|
+
*
|
|
3721
|
+
* This replaced a four-value "access intent" picker (none / internal /
|
|
3722
|
+
* hosted_link / server). Two of those values did nothing anywhere: no buyer or
|
|
3723
|
+
* inventory path reads `access_intent`, so `none` and `internal` were labels an
|
|
3724
|
+
* organizer could set and then wait forever for something to happen. A third,
|
|
3725
|
+
* `hosted_link`, is not the organizer's to choose at all — the server sets it
|
|
3726
|
+
* when a buyer link is created and clears it when the last live one is revoked.
|
|
3727
|
+
*
|
|
3728
|
+
* So this is two ACTIONS, not a setting: create a buyer link, or point the
|
|
3729
|
+
* channel at a website integration. Both of them do something the moment they
|
|
3730
|
+
* are pressed. A legacy row still carrying `none` or `internal` renders the
|
|
3731
|
+
* neutral "not distributed yet" state with both actions offered — the stored
|
|
3732
|
+
* value is left alone (it is organizer-declared metadata and the API that
|
|
3733
|
+
* writes it is unchanged), it simply no longer has a control of its own.
|
|
3734
|
+
*/
|
|
3735
|
+
private distributeHtml;
|
|
3662
3736
|
/**
|
|
3663
3737
|
* Read the status projection for the open channel. Never paints — the caller
|
|
3664
3738
|
* decides when the rail repaints, so a poll-driven reload does not fight a
|
|
@@ -3667,12 +3741,16 @@ declare class ChannelsMode {
|
|
|
3667
3741
|
*/
|
|
3668
3742
|
private loadLinks;
|
|
3669
3743
|
/**
|
|
3670
|
-
* The
|
|
3744
|
+
* The buyer-link status section of the detail panel.
|
|
3671
3745
|
*
|
|
3672
3746
|
* STATUS ONLY, by design (comp 06 `hosted`): label, state, expiry,
|
|
3673
3747
|
* redemptions, seats per buyer, live sessions. There is no Copy control here
|
|
3674
3748
|
* and no field to hang one on — the URL was shown once at creation and cannot
|
|
3675
3749
|
* be produced again. Rotation is the recovery path, and it says so.
|
|
3750
|
+
*
|
|
3751
|
+
* Creating a link is the Distribute card's action, not this section's, so a
|
|
3752
|
+
* channel with no links renders nothing here rather than an empty heading and
|
|
3753
|
+
* a second button saying the same thing.
|
|
3676
3754
|
*/
|
|
3677
3755
|
private hostedLinksHtml;
|
|
3678
3756
|
private linkCardHtml;
|
|
@@ -3680,10 +3758,25 @@ declare class ChannelsMode {
|
|
|
3680
3758
|
private paintSelection;
|
|
3681
3759
|
private wireRail;
|
|
3682
3760
|
private railAction;
|
|
3683
|
-
|
|
3761
|
+
/** Derived once per mode entry — see `assignmentRowsCache`. */
|
|
3762
|
+
private assignmentRows;
|
|
3684
3763
|
private pickCategory;
|
|
3685
3764
|
/** A tiny modal chooser reusing the dialog primitive (focus trap + Escape). */
|
|
3686
3765
|
private promptChoice;
|
|
3766
|
+
/**
|
|
3767
|
+
* Add several whole sections, or several whole rows, in one operation.
|
|
3768
|
+
*
|
|
3769
|
+
* ADDITIVE by contract: the chooser starts from the labels already selected
|
|
3770
|
+
* and only ever grows that set, so opening it never destroys a hard-won
|
|
3771
|
+
* marquee or seat-list selection. The confirm button always states the net
|
|
3772
|
+
* number of seats it will add, and refuses to exceed `MAX_ASSIGNMENT_UNITS`.
|
|
3773
|
+
*
|
|
3774
|
+
* Rows get the richer variant. A large venue has thousands of them, so they
|
|
3775
|
+
* arrive collapsed under their section, with a section-level tri-state
|
|
3776
|
+
* checkbox, a search across every row, and a render cap — the flat list used
|
|
3777
|
+
* for sections would be an unusable wall of buttons.
|
|
3778
|
+
*/
|
|
3779
|
+
private renderScopeDialog;
|
|
3687
3780
|
private openDialog;
|
|
3688
3781
|
private renderDialog;
|
|
3689
3782
|
/**
|
|
@@ -3697,15 +3790,31 @@ declare class ChannelsMode {
|
|
|
3697
3790
|
private showDialogError;
|
|
3698
3791
|
private renderReviewDialog;
|
|
3699
3792
|
/**
|
|
3700
|
-
* Apply. On success the
|
|
3701
|
-
*
|
|
3702
|
-
*
|
|
3703
|
-
*
|
|
3793
|
+
* Apply. On success the sheet CLOSES and the staged bar confirms what moved,
|
|
3794
|
+
* naming the destination and any skipped seats, with the AUTHORITATIVE server
|
|
3795
|
+
* buckets still one Details press away. Leaving the modal up on success made
|
|
3796
|
+
* the organizer dismiss a sheet to get back to a map they had just changed.
|
|
3797
|
+
* On a stale version the server mutated nothing: keep the selection, shake
|
|
3798
|
+
* the bar once, and offer exactly one action — Refresh and review.
|
|
3704
3799
|
*/
|
|
3705
3800
|
private apply;
|
|
3801
|
+
/**
|
|
3802
|
+
* The success receipt, now that the review sheet closes on Apply. It names the
|
|
3803
|
+
* destination and the seats that could not move, keeps the authoritative
|
|
3804
|
+
* buckets reachable through Details, and stays up long enough to be read —
|
|
3805
|
+
* 1.2s was tuned for a confirmation the organizer was already looking at.
|
|
3806
|
+
*/
|
|
3706
3807
|
private showApplied;
|
|
3707
3808
|
private shakeStaged;
|
|
3708
3809
|
private renderRenameDialog;
|
|
3810
|
+
/**
|
|
3811
|
+
* "Get embed code" — mark the channel as reached through the organizer's own
|
|
3812
|
+
* backend. The write itself is `setChannelAccessIntent(…, 'server')`, the same
|
|
3813
|
+
* API the old picker called; the difference is that it is now a deliberate
|
|
3814
|
+
* action with a consequence the organizer is told about, rather than one of
|
|
3815
|
+
* four dropdown values with no observable effect.
|
|
3816
|
+
*/
|
|
3817
|
+
private chooseWebsiteIntegration;
|
|
3709
3818
|
private setAccessIntent;
|
|
3710
3819
|
private togglePause;
|
|
3711
3820
|
private renderArchiveDialog;
|
|
@@ -3771,4 +3880,4 @@ declare class ChannelsMode {
|
|
|
3771
3880
|
handleBack(): boolean;
|
|
3772
3881
|
}
|
|
3773
3882
|
|
|
3774
|
-
export { ACCESS_LINK_DEFAULTS, type AccessLinkRecord, type AccessLinkReveal, type AccessLinkState, type AccessLinkStatus, type AccessLinkStatusRecord, ApiError, type ArchiveBlockedDetails, type AssignmentBuckets, type AssignmentDropDetails, type AssignmentResult, type AttachPickerFrameOptions, type BestAvailableResult, type BucketRow, BuyerAccessContext, type BuyerAccessExpiredEvent, type BuyerAccessRefreshReason, type BuyerAccessToken, type BuyerAccessTokenProvider, BuyerAccessUnavailableError, type BuyerAccessUnavailableEvent, type BuyerAccessUnavailableReason, BuyerRealtimeClient, type BuyerRealtimeOptions, type ChannelAccessIntent, type ChannelAccessSummary, type ChannelAllocationPage, type ChannelAuditEntry, type ChannelAuditPage, type ChannelCounts, type ChannelListResult, type ChannelPreviewProjection, type ChannelRecord, type ChannelSeatStatus, type ChannelState, type ChannelsCapabilities, type ChannelsClient, ChannelsMode, type ChannelsModeHost, type ChannelsSeatView, type CheckoutHandoff, type CheckoutLineItem, type CheckoutSessionResult, type ControlRoomActivityEntry, type ControlRoomSectionMetric, type ControlRoomSnapshot, EmbeddedDesigner, type EmbeddedDesignerEventType, type EmbeddedDesignerMessage, type EmbeddedDesignerOptions, type GAAreaAvailability, type HoldConflict, type HoldLineItem, type HoldResult, type LogEntry, type LogPage, ManageApi, ManageApiError, type OrderStatusResult, PUBLIC_CHANNEL_ID, PUBLIC_CHANNEL_NAME, type PaymentOptionsReason, type PaymentOptionsResult, type PaymentProviderName, type Projection, type PubApiOptions, type RealtimeSink, type ReportByStatus, type ReportCategoryMeta, type ReportCategoryRow, type ReportResult, type ResumedHoldResult, SeatManager, type SeatManagerActionResult, type SeatManagerActivity, type SeatManagerCapability, type SeatManagerConnection, type SeatManagerMode, type SeatManagerOptions, type SeatManagerTallies, SeatPicker, type SeatPickerOptions, type SeatPickerTheme, SeatingChart, type SeatingChartOptions, type SelectedObjectUnavailableEvent, type SelectedSeat, type SelectionSourceRow, type StatusChange, type SubscribeTicket$1 as SubscribeTicket, accessIntentLabel, accessLine, accessLinkBadge, accessLinkErrorCopy, accessLinkIsLive, accessLinkPolicyLines, attachPickerFrame, bucketRows, bucketRowsHtml, createBuyerAccessContext, createControllerSink, dropReviewRows, isPublicChannelId, markerLetter, markerOf, mutationCount, needsMoveConfirmation, planAssignment, retryAfterCopy, selectionSources, stateBadge, suggestMarker };
|
|
3883
|
+
export { ACCESS_LINK_DEFAULTS, type AccessLinkRecord, type AccessLinkReveal, type AccessLinkState, type AccessLinkStatus, type AccessLinkStatusRecord, ApiError, type ArchiveBlockedDetails, type AssignmentBuckets, type AssignmentDropDetails, type AssignmentResult, type AttachPickerFrameOptions, type BestAvailableResult, type BucketRow, BuyerAccessContext, type BuyerAccessExpiredEvent, type BuyerAccessRefreshReason, type BuyerAccessToken, type BuyerAccessTokenProvider, BuyerAccessUnavailableError, type BuyerAccessUnavailableEvent, type BuyerAccessUnavailableReason, BuyerRealtimeClient, type BuyerRealtimeOptions, type ChannelAccessIntent, type ChannelAccessSummary, type ChannelAllocationPage, type ChannelAuditEntry, type ChannelAuditPage, type ChannelCounts, type ChannelListResult, type ChannelPreviewProjection, type ChannelRecord, type ChannelSeatStatus, type ChannelState, type ChannelsCapabilities, type ChannelsClient, ChannelsMode, type ChannelsModeHost, type ChannelsRowView, type ChannelsSeatView, type CheckoutHandoff, type CheckoutLineItem, type CheckoutSessionResult, type ControlRoomActivityEntry, type ControlRoomSectionMetric, type ControlRoomSnapshot, EmbeddedDesigner, type EmbeddedDesignerEventType, type EmbeddedDesignerMessage, type EmbeddedDesignerOptions, type GAAreaAvailability, type HoldConflict, type HoldLineItem, type HoldResult, type LogEntry, type LogPage, ManageApi, ManageApiError, type OrderStatusResult, PUBLIC_CHANNEL_ID, PUBLIC_CHANNEL_NAME, type PaymentOptionsReason, type PaymentOptionsResult, type PaymentProviderName, type Projection, type PubApiOptions, type RealtimeSink, type ReportByStatus, type ReportCategoryMeta, type ReportCategoryRow, type ReportResult, type ResumedHoldResult, SeatManager, type SeatManagerActionResult, type SeatManagerActivity, type SeatManagerCapability, type SeatManagerConnection, type SeatManagerMode, type SeatManagerOptions, type SeatManagerTallies, SeatPicker, type SeatPickerOptions, type SeatPickerTheme, SeatingChart, type SeatingChartOptions, type SelectedObjectUnavailableEvent, type SelectedSeat, type SelectionSourceRow, type StatusChange, type SubscribeTicket$1 as SubscribeTicket, accessIntentLabel, accessLine, accessLinkBadge, accessLinkErrorCopy, accessLinkIsLive, accessLinkPolicyLines, attachPickerFrame, bucketRows, bucketRowsHtml, createBuyerAccessContext, createControllerSink, dropReviewRows, isPublicChannelId, markerLetter, markerOf, mutationCount, needsMoveConfirmation, planAssignment, retryAfterCopy, selectionSources, stateBadge, suggestMarker };
|