@seatlayer/js 0.41.0 → 0.42.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 +178 -63
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +58 -1
- package/dist/index.d.ts +58 -1
- package/dist/index.js +178 -63
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.cts
CHANGED
|
@@ -3576,6 +3576,17 @@ declare class ChannelsMode {
|
|
|
3576
3576
|
private stagedDoneTimer;
|
|
3577
3577
|
private lastSelectionCount;
|
|
3578
3578
|
private lastCounts;
|
|
3579
|
+
/** The markup currently in the rail. An identical repaint is skipped, which is
|
|
3580
|
+
* what keeps the organizer's scroll position (and open <select>) alive. */
|
|
3581
|
+
private railHtml;
|
|
3582
|
+
/**
|
|
3583
|
+
* The `assignmentVersion` the allocation map was built from. Walking every
|
|
3584
|
+
* allocation page is the expensive half of a refresh and the server already
|
|
3585
|
+
* tells us, in the channels response, whether ANY seat moved. Unchanged
|
|
3586
|
+
* version, unchanged allocation — so the walk is skipped entirely.
|
|
3587
|
+
*/
|
|
3588
|
+
private allocationVersion;
|
|
3589
|
+
private onVisibility;
|
|
3579
3590
|
constructor(host: ChannelsModeHost, capabilities: ChannelsCapabilities);
|
|
3580
3591
|
/** Called when the cockpit switches into Channels mode. */
|
|
3581
3592
|
enter(): void;
|
|
@@ -3651,6 +3662,22 @@ declare class ChannelsMode {
|
|
|
3651
3662
|
/** Set by the cockpit so a view switch can re-arm canvas selection. */
|
|
3652
3663
|
onInteractionChange?: () => void;
|
|
3653
3664
|
private loadPreview;
|
|
3665
|
+
/**
|
|
3666
|
+
* Replace the rail's markup — but only when it actually differs, and never at
|
|
3667
|
+
* the cost of where the organizer had scrolled to.
|
|
3668
|
+
*
|
|
3669
|
+
* The rail repaints on a clock, on every selection change and after every
|
|
3670
|
+
* mutation. Rewriting `innerHTML` each time resets `scrollTop`, which is
|
|
3671
|
+
* exactly what "the rail gets stuck" was: scroll down to Create channel, the
|
|
3672
|
+
* poll ticks, and the list snaps back to the top under the cursor. So skip the
|
|
3673
|
+
* write when the markup is byte-identical, and restore the offset when it is
|
|
3674
|
+
* not.
|
|
3675
|
+
*
|
|
3676
|
+
* Returns whether the DOM was rewritten. Callers must only re-wire listeners
|
|
3677
|
+
* when it was — a skipped paint keeps the old nodes AND their listeners, so
|
|
3678
|
+
* re-wiring would double every handler.
|
|
3679
|
+
*/
|
|
3680
|
+
private setRailHtml;
|
|
3654
3681
|
paintRail(): void;
|
|
3655
3682
|
private viewSegmentHtml;
|
|
3656
3683
|
private mapNavigationHtml;
|
|
@@ -3659,6 +3686,24 @@ declare class ChannelsMode {
|
|
|
3659
3686
|
private listRailHtml;
|
|
3660
3687
|
private selectionRailHtml;
|
|
3661
3688
|
private detailRailHtml;
|
|
3689
|
+
/**
|
|
3690
|
+
* "Distribute" — how the seats in this channel actually reach a buyer.
|
|
3691
|
+
*
|
|
3692
|
+
* This replaced a four-value "access intent" picker (none / internal /
|
|
3693
|
+
* hosted_link / server). Two of those values did nothing anywhere: no buyer or
|
|
3694
|
+
* inventory path reads `access_intent`, so `none` and `internal` were labels an
|
|
3695
|
+
* organizer could set and then wait forever for something to happen. A third,
|
|
3696
|
+
* `hosted_link`, is not the organizer's to choose at all — the server sets it
|
|
3697
|
+
* when a buyer link is created and clears it when the last live one is revoked.
|
|
3698
|
+
*
|
|
3699
|
+
* So this is two ACTIONS, not a setting: create a buyer link, or point the
|
|
3700
|
+
* channel at a website integration. Both of them do something the moment they
|
|
3701
|
+
* are pressed. A legacy row still carrying `none` or `internal` renders the
|
|
3702
|
+
* neutral "not distributed yet" state with both actions offered — the stored
|
|
3703
|
+
* value is left alone (it is organizer-declared metadata and the API that
|
|
3704
|
+
* writes it is unchanged), it simply no longer has a control of its own.
|
|
3705
|
+
*/
|
|
3706
|
+
private distributeHtml;
|
|
3662
3707
|
/**
|
|
3663
3708
|
* Read the status projection for the open channel. Never paints — the caller
|
|
3664
3709
|
* decides when the rail repaints, so a poll-driven reload does not fight a
|
|
@@ -3667,12 +3712,16 @@ declare class ChannelsMode {
|
|
|
3667
3712
|
*/
|
|
3668
3713
|
private loadLinks;
|
|
3669
3714
|
/**
|
|
3670
|
-
* The
|
|
3715
|
+
* The buyer-link status section of the detail panel.
|
|
3671
3716
|
*
|
|
3672
3717
|
* STATUS ONLY, by design (comp 06 `hosted`): label, state, expiry,
|
|
3673
3718
|
* redemptions, seats per buyer, live sessions. There is no Copy control here
|
|
3674
3719
|
* and no field to hang one on — the URL was shown once at creation and cannot
|
|
3675
3720
|
* be produced again. Rotation is the recovery path, and it says so.
|
|
3721
|
+
*
|
|
3722
|
+
* Creating a link is the Distribute card's action, not this section's, so a
|
|
3723
|
+
* channel with no links renders nothing here rather than an empty heading and
|
|
3724
|
+
* a second button saying the same thing.
|
|
3676
3725
|
*/
|
|
3677
3726
|
private hostedLinksHtml;
|
|
3678
3727
|
private linkCardHtml;
|
|
@@ -3706,6 +3755,14 @@ declare class ChannelsMode {
|
|
|
3706
3755
|
private showApplied;
|
|
3707
3756
|
private shakeStaged;
|
|
3708
3757
|
private renderRenameDialog;
|
|
3758
|
+
/**
|
|
3759
|
+
* "Get embed code" — mark the channel as reached through the organizer's own
|
|
3760
|
+
* backend. The write itself is `setChannelAccessIntent(…, 'server')`, the same
|
|
3761
|
+
* API the old picker called; the difference is that it is now a deliberate
|
|
3762
|
+
* action with a consequence the organizer is told about, rather than one of
|
|
3763
|
+
* four dropdown values with no observable effect.
|
|
3764
|
+
*/
|
|
3765
|
+
private chooseWebsiteIntegration;
|
|
3709
3766
|
private setAccessIntent;
|
|
3710
3767
|
private togglePause;
|
|
3711
3768
|
private renderArchiveDialog;
|
package/dist/index.d.ts
CHANGED
|
@@ -3576,6 +3576,17 @@ declare class ChannelsMode {
|
|
|
3576
3576
|
private stagedDoneTimer;
|
|
3577
3577
|
private lastSelectionCount;
|
|
3578
3578
|
private lastCounts;
|
|
3579
|
+
/** The markup currently in the rail. An identical repaint is skipped, which is
|
|
3580
|
+
* what keeps the organizer's scroll position (and open <select>) alive. */
|
|
3581
|
+
private railHtml;
|
|
3582
|
+
/**
|
|
3583
|
+
* The `assignmentVersion` the allocation map was built from. Walking every
|
|
3584
|
+
* allocation page is the expensive half of a refresh and the server already
|
|
3585
|
+
* tells us, in the channels response, whether ANY seat moved. Unchanged
|
|
3586
|
+
* version, unchanged allocation — so the walk is skipped entirely.
|
|
3587
|
+
*/
|
|
3588
|
+
private allocationVersion;
|
|
3589
|
+
private onVisibility;
|
|
3579
3590
|
constructor(host: ChannelsModeHost, capabilities: ChannelsCapabilities);
|
|
3580
3591
|
/** Called when the cockpit switches into Channels mode. */
|
|
3581
3592
|
enter(): void;
|
|
@@ -3651,6 +3662,22 @@ declare class ChannelsMode {
|
|
|
3651
3662
|
/** Set by the cockpit so a view switch can re-arm canvas selection. */
|
|
3652
3663
|
onInteractionChange?: () => void;
|
|
3653
3664
|
private loadPreview;
|
|
3665
|
+
/**
|
|
3666
|
+
* Replace the rail's markup — but only when it actually differs, and never at
|
|
3667
|
+
* the cost of where the organizer had scrolled to.
|
|
3668
|
+
*
|
|
3669
|
+
* The rail repaints on a clock, on every selection change and after every
|
|
3670
|
+
* mutation. Rewriting `innerHTML` each time resets `scrollTop`, which is
|
|
3671
|
+
* exactly what "the rail gets stuck" was: scroll down to Create channel, the
|
|
3672
|
+
* poll ticks, and the list snaps back to the top under the cursor. So skip the
|
|
3673
|
+
* write when the markup is byte-identical, and restore the offset when it is
|
|
3674
|
+
* not.
|
|
3675
|
+
*
|
|
3676
|
+
* Returns whether the DOM was rewritten. Callers must only re-wire listeners
|
|
3677
|
+
* when it was — a skipped paint keeps the old nodes AND their listeners, so
|
|
3678
|
+
* re-wiring would double every handler.
|
|
3679
|
+
*/
|
|
3680
|
+
private setRailHtml;
|
|
3654
3681
|
paintRail(): void;
|
|
3655
3682
|
private viewSegmentHtml;
|
|
3656
3683
|
private mapNavigationHtml;
|
|
@@ -3659,6 +3686,24 @@ declare class ChannelsMode {
|
|
|
3659
3686
|
private listRailHtml;
|
|
3660
3687
|
private selectionRailHtml;
|
|
3661
3688
|
private detailRailHtml;
|
|
3689
|
+
/**
|
|
3690
|
+
* "Distribute" — how the seats in this channel actually reach a buyer.
|
|
3691
|
+
*
|
|
3692
|
+
* This replaced a four-value "access intent" picker (none / internal /
|
|
3693
|
+
* hosted_link / server). Two of those values did nothing anywhere: no buyer or
|
|
3694
|
+
* inventory path reads `access_intent`, so `none` and `internal` were labels an
|
|
3695
|
+
* organizer could set and then wait forever for something to happen. A third,
|
|
3696
|
+
* `hosted_link`, is not the organizer's to choose at all — the server sets it
|
|
3697
|
+
* when a buyer link is created and clears it when the last live one is revoked.
|
|
3698
|
+
*
|
|
3699
|
+
* So this is two ACTIONS, not a setting: create a buyer link, or point the
|
|
3700
|
+
* channel at a website integration. Both of them do something the moment they
|
|
3701
|
+
* are pressed. A legacy row still carrying `none` or `internal` renders the
|
|
3702
|
+
* neutral "not distributed yet" state with both actions offered — the stored
|
|
3703
|
+
* value is left alone (it is organizer-declared metadata and the API that
|
|
3704
|
+
* writes it is unchanged), it simply no longer has a control of its own.
|
|
3705
|
+
*/
|
|
3706
|
+
private distributeHtml;
|
|
3662
3707
|
/**
|
|
3663
3708
|
* Read the status projection for the open channel. Never paints — the caller
|
|
3664
3709
|
* decides when the rail repaints, so a poll-driven reload does not fight a
|
|
@@ -3667,12 +3712,16 @@ declare class ChannelsMode {
|
|
|
3667
3712
|
*/
|
|
3668
3713
|
private loadLinks;
|
|
3669
3714
|
/**
|
|
3670
|
-
* The
|
|
3715
|
+
* The buyer-link status section of the detail panel.
|
|
3671
3716
|
*
|
|
3672
3717
|
* STATUS ONLY, by design (comp 06 `hosted`): label, state, expiry,
|
|
3673
3718
|
* redemptions, seats per buyer, live sessions. There is no Copy control here
|
|
3674
3719
|
* and no field to hang one on — the URL was shown once at creation and cannot
|
|
3675
3720
|
* be produced again. Rotation is the recovery path, and it says so.
|
|
3721
|
+
*
|
|
3722
|
+
* Creating a link is the Distribute card's action, not this section's, so a
|
|
3723
|
+
* channel with no links renders nothing here rather than an empty heading and
|
|
3724
|
+
* a second button saying the same thing.
|
|
3676
3725
|
*/
|
|
3677
3726
|
private hostedLinksHtml;
|
|
3678
3727
|
private linkCardHtml;
|
|
@@ -3706,6 +3755,14 @@ declare class ChannelsMode {
|
|
|
3706
3755
|
private showApplied;
|
|
3707
3756
|
private shakeStaged;
|
|
3708
3757
|
private renderRenameDialog;
|
|
3758
|
+
/**
|
|
3759
|
+
* "Get embed code" — mark the channel as reached through the organizer's own
|
|
3760
|
+
* backend. The write itself is `setChannelAccessIntent(…, 'server')`, the same
|
|
3761
|
+
* API the old picker called; the difference is that it is now a deliberate
|
|
3762
|
+
* action with a consequence the organizer is told about, rather than one of
|
|
3763
|
+
* four dropdown values with no observable effect.
|
|
3764
|
+
*/
|
|
3765
|
+
private chooseWebsiteIntegration;
|
|
3709
3766
|
private setAccessIntent;
|
|
3710
3767
|
private togglePause;
|
|
3711
3768
|
private renderArchiveDialog;
|