saltfish 0.1.3 → 0.1.6
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/core/SaltfishPlayer.d.ts +13 -3
- package/dist/core/SaltfishPlayer.d.ts.map +1 -1
- package/dist/core/store.d.ts.map +1 -1
- package/dist/managers/AnalyticsManager.d.ts +5 -0
- package/dist/managers/AnalyticsManager.d.ts.map +1 -1
- package/dist/managers/ButtonManager.d.ts +2 -0
- package/dist/managers/ButtonManager.d.ts.map +1 -1
- package/dist/managers/CursorManager.d.ts +27 -3
- package/dist/managers/CursorManager.d.ts.map +1 -1
- package/dist/managers/DragManager.d.ts +50 -0
- package/dist/managers/DragManager.d.ts.map +1 -0
- package/dist/managers/InteractionManager.d.ts +13 -1
- package/dist/managers/InteractionManager.d.ts.map +1 -1
- package/dist/managers/PlayerView.d.ts +34 -0
- package/dist/managers/PlayerView.d.ts.map +1 -0
- package/dist/managers/PlaylistManager.d.ts +16 -1
- package/dist/managers/PlaylistManager.d.ts.map +1 -1
- package/dist/managers/SessionRecordingManager.d.ts.map +1 -1
- package/dist/managers/StepTimeoutManager.d.ts +10 -5
- package/dist/managers/StepTimeoutManager.d.ts.map +1 -1
- package/dist/managers/TransitionManager.d.ts +8 -1
- package/dist/managers/TransitionManager.d.ts.map +1 -1
- package/dist/managers/TriggerManager.d.ts +85 -0
- package/dist/managers/TriggerManager.d.ts.map +1 -0
- package/dist/managers/UIManager.d.ts +7 -32
- package/dist/managers/UIManager.d.ts.map +1 -1
- package/dist/player.js +3 -2
- package/dist/player.min.js +3 -2
- package/dist/saltfish-playlist-player.es.js +1510 -921
- package/dist/saltfish-playlist-player.umd.js +1 -1
- package/dist/types/index.d.ts +18 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/updaters/EventUpdater.d.ts +13 -0
- package/dist/updaters/EventUpdater.d.ts.map +1 -0
- package/dist/updaters/UIUpdater.d.ts +7 -0
- package/dist/updaters/UIUpdater.d.ts.map +1 -0
- package/dist/utils/deviceDetection.d.ts +6 -0
- package/dist/utils/deviceDetection.d.ts.map +1 -1
- package/package.json +2 -8
- package/README.md +0 -634
- package/dist/observers/EventObserver.d.ts +0 -52
- package/dist/observers/EventObserver.d.ts.map +0 -1
- package/dist/observers/UIObserver.d.ts +0 -43
- package/dist/observers/UIObserver.d.ts.map +0 -1
- package/dist/patterns/PlayerStateSubject.d.ts +0 -34
- package/dist/patterns/PlayerStateSubject.d.ts.map +0 -1
|
@@ -15,13 +15,15 @@ export declare class SaltfishPlayer {
|
|
|
15
15
|
private sessionManager;
|
|
16
16
|
private buttonManager;
|
|
17
17
|
private transitionManager;
|
|
18
|
+
private triggerManager;
|
|
18
19
|
private eventManager;
|
|
19
20
|
private playlistManager;
|
|
20
21
|
private stepTimeoutManager;
|
|
21
22
|
private uiManager;
|
|
22
|
-
private
|
|
23
|
-
private
|
|
24
|
-
private
|
|
23
|
+
private playerView;
|
|
24
|
+
private dragManager;
|
|
25
|
+
private uiUpdaterUnsubscribe;
|
|
26
|
+
private eventUpdaterUnsubscribe;
|
|
25
27
|
private isInitialized;
|
|
26
28
|
private static prevState;
|
|
27
29
|
private static destroyTimeoutId;
|
|
@@ -91,6 +93,10 @@ export declare class SaltfishPlayer {
|
|
|
91
93
|
* @returns The video URL to use (compressed if available, otherwise regular)
|
|
92
94
|
*/
|
|
93
95
|
private getVideoUrl;
|
|
96
|
+
/**
|
|
97
|
+
* Setup UI and Event updaters that subscribe to store changes
|
|
98
|
+
*/
|
|
99
|
+
private setupUpdaters;
|
|
94
100
|
/**
|
|
95
101
|
* Handles store state changes
|
|
96
102
|
*/
|
|
@@ -124,6 +130,10 @@ export declare class SaltfishPlayer {
|
|
|
124
130
|
* Cleans up the current playlist state
|
|
125
131
|
*/
|
|
126
132
|
private cleanupCurrentPlaylist;
|
|
133
|
+
/**
|
|
134
|
+
* Cleans up playlist-specific resources while keeping trigger monitoring active
|
|
135
|
+
*/
|
|
136
|
+
private cleanupPlaylist;
|
|
127
137
|
/**
|
|
128
138
|
* Updates the visibility of player controls based on the current state
|
|
129
139
|
* @param state - The current player state
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SaltfishPlayer.d.ts","sourceRoot":"","sources":["../../src/core/SaltfishPlayer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"SaltfishPlayer.d.ts","sourceRoot":"","sources":["../../src/core/SaltfishPlayer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AASxD,OAAO,EAAgB,iBAAiB,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAMzF,OAAO,KAAK,EAAE,cAAc,EAAe,eAAe,EAAQ,MAAM,UAAU,CAAC;AASnF;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA+B;IAEtD,OAAO,CAAC,gBAAgB,CAAmB;IACpC,YAAY,EAAE,YAAY,CAAC;IAClC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,uBAAuB,CAA0B;IACzD,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,WAAW,CAAc;IAGjC,OAAO,CAAC,oBAAoB,CAA6B;IACzD,OAAO,CAAC,uBAAuB,CAA6B;IAE5D,OAAO,CAAC,aAAa,CAAkB;IAEvC,OAAO,CAAC,MAAM,CAAC,SAAS,CAItB;IAEF,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAuB;IAGtD,OAAO,CAAC,UAAU,CAA+B;IAGjD,OAAO,CAAC,sBAAsB,CAAmD;IAEjF;;;OAGG;IACH,OAAO;IA4CP;;OAEG;WACW,WAAW,IAAI,cAAc;IAQ3C;;;OAGG;IACI,YAAY,IAAI,MAAM;IAI7B;;;OAGG;IACI,QAAQ,IAAI,MAAM,GAAG,IAAI;IAIhC;;;OAGG;IACU,UAAU,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA+F9D;;;;OAIG;IACI,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,IAAI;IAuBzD;;;;OAIG;YACW,aAAa;IAwE3B;;;;;;;;;;OAUG;IACU,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAiexF;;OAEG;IACH,OAAO,CAAC,2BAA2B;IA6KnC;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IA+BxB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,OAAO,CAAC,aAAa;IAuCrB;;OAEG;IACH,OAAO,CAAC,kBAAkB,CAoDxB;IAEF;;OAEG;IACI,OAAO,IAAI,IAAI;IAmFtB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA0B5B;;;;OAIG;IACI,EAAE,CAAC,CAAC,SAAS,iBAAiB,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI;IAIrF;;;;;OAKG;IACI,GAAG,CAAC,CAAC,SAAS,iBAAiB,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO;IAIzF;;OAEG;IACI,aAAa,IAAI,IAAI;IAQ5B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAkD9B;;OAEG;IACH,OAAO,CAAC,eAAe;IA0DvB;;;OAGG;IACH,OAAO,CAAC,wBAAwB;CAIjC"}
|
package/dist/core/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/core/store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,aAAa,EAIb,IAAI,EAKL,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/core/store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,aAAa,EAIb,IAAI,EAKL,MAAM,UAAU,CAAC;AAelB;;;GAGG;AACH,eAAO,MAAM,aAAa;;CAgWzB,CAAC;AAIF,KAAK,YAAY,GAAG;IAClB,QAAQ,EAAE,MAAM,aAAa,CAAC;IAC9B,QAAQ,EAAE,OAAO,aAAa,CAAC,QAAQ,CAAC;IACxC,SAAS,EAAE,OAAO,aAAa,CAAC,SAAS,CAAC;IAC1C,OAAO,EAAE,OAAO,aAAa,CAAC,OAAO,CAAC;CACvC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,YAK9B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAO,IAAI,GAAG,IAKxC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAO,IAAI,GAAG,IAKxC,CAAC"}
|
|
@@ -90,6 +90,11 @@ export declare class AnalyticsManager {
|
|
|
90
90
|
* @param event - Event data
|
|
91
91
|
*/
|
|
92
92
|
private trackEvent;
|
|
93
|
+
/**
|
|
94
|
+
* Manually flush queued events immediately
|
|
95
|
+
* This is useful for ensuring events are sent before player destruction
|
|
96
|
+
*/
|
|
97
|
+
flush(): Promise<void>;
|
|
93
98
|
/**
|
|
94
99
|
* Sends queued events to the backend
|
|
95
100
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnalyticsManager.d.ts","sourceRoot":"","sources":["../../src/managers/AnalyticsManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,cAAc,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAK9C;;;;;;;;;GASG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,IAAI,CAAyB;IACrC,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,gBAAgB,CAAiB;IAEzC;;;OAGG;gBACS,YAAY,CAAC,EAAE,YAAY;IAMvC;;;OAGG;IACI,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI;IAKxD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgGzB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAUhB;;;;OAIG;IACI,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAqBnE;;;OAGG;IACI,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAIpC;;;OAGG;IACI,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAkBnD;;;OAGG;IACI,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAkBtD;;;;OAIG;IACI,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAmBjE;;;;OAIG;IACI,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAmBlE;;;;;OAKG;IACI,gBAAgB,CACrB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACnC,IAAI;IAmBP;;;;;;OAMG;IACI,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAuB9F;;;OAGG;IACH,OAAO,CAAC,UAAU;IAgBlB;;OAEG;YACW,WAAW;IAoDzB;;OAEG;IACI,OAAO,IAAI,IAAI;IA2BtB;;;OAGG;IACH,OAAO,CAAC,QAAQ;CASjB"}
|
|
1
|
+
{"version":3,"file":"AnalyticsManager.d.ts","sourceRoot":"","sources":["../../src/managers/AnalyticsManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,cAAc,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAK9C;;;;;;;;;GASG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,IAAI,CAAyB;IACrC,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,gBAAgB,CAAiB;IAEzC;;;OAGG;gBACS,YAAY,CAAC,EAAE,YAAY;IAMvC;;;OAGG;IACI,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI;IAKxD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgGzB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAUhB;;;;OAIG;IACI,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAqBnE;;;OAGG;IACI,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAIpC;;;OAGG;IACI,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAkBnD;;;OAGG;IACI,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAkBtD;;;;OAIG;IACI,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAmBjE;;;;OAIG;IACI,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAmBlE;;;;;OAKG;IACI,gBAAgB,CACrB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACnC,IAAI;IAmBP;;;;;;OAMG;IACI,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAuB9F;;;OAGG;IACH,OAAO,CAAC,UAAU;IAgBlB;;;OAGG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAInC;;OAEG;YACW,WAAW;IAoDzB;;OAEG;IACI,OAAO,IAAI,IAAI;IA2BtB;;;OAGG;IACH,OAAO,CAAC,QAAQ;CASjB"}
|
|
@@ -3,6 +3,7 @@ import type { VideoManager } from './VideoManager';
|
|
|
3
3
|
/**
|
|
4
4
|
* ButtonManager is responsible for managing the display of
|
|
5
5
|
* playback buttons, DOM click buttons, and other UI controls in the player.
|
|
6
|
+
* It subscribes to store changes and updates buttons automatically.
|
|
6
7
|
*/
|
|
7
8
|
export declare class ButtonManager {
|
|
8
9
|
private playbackButtonsVisible;
|
|
@@ -10,6 +11,7 @@ export declare class ButtonManager {
|
|
|
10
11
|
private playButton;
|
|
11
12
|
private centerPlayButton;
|
|
12
13
|
private videoManager;
|
|
14
|
+
private storeUnsubscribe;
|
|
13
15
|
constructor();
|
|
14
16
|
/**
|
|
15
17
|
* Initializes the ButtonManager with the root element and video manager
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonManager.d.ts","sourceRoot":"","sources":["../../src/managers/ButtonManager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD
|
|
1
|
+
{"version":3,"file":"ButtonManager.d.ts","sourceRoot":"","sources":["../../src/managers/ButtonManager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD;;;;GAIG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,gBAAgB,CAA4B;IACpD,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,gBAAgB,CAA6B;;IAMrD;;;;;OAKG;IACI,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,GAAG,IAAI;IA4FzE;;;OAGG;IAEH;;;OAGG;IACI,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAYrD;;;OAGG;IACI,qBAAqB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAgGtD;;OAEG;IACI,OAAO,IAAI,IAAI;CAevB"}
|
|
@@ -19,6 +19,8 @@ export declare class CursorManager {
|
|
|
19
19
|
private currentTargetElement;
|
|
20
20
|
private scrollThrottleTimeout;
|
|
21
21
|
private boundScrollHandler;
|
|
22
|
+
private scrollableParents;
|
|
23
|
+
private parentScrollHandlers;
|
|
22
24
|
private selectionElement;
|
|
23
25
|
private isSelectionMode;
|
|
24
26
|
private selectionStartWidth;
|
|
@@ -37,6 +39,21 @@ export declare class CursorManager {
|
|
|
37
39
|
private controlPointX;
|
|
38
40
|
private controlPointY;
|
|
39
41
|
private targetMutationObserver;
|
|
42
|
+
/**
|
|
43
|
+
* Finds all scrollable parent containers of an element
|
|
44
|
+
* @param element - The element to find scrollable parents for
|
|
45
|
+
* @returns Array of scrollable parent elements
|
|
46
|
+
*/
|
|
47
|
+
private findScrollableParents;
|
|
48
|
+
/**
|
|
49
|
+
* Adds scroll event listeners to scrollable parent containers
|
|
50
|
+
* @param element - The target element whose parents should be monitored
|
|
51
|
+
*/
|
|
52
|
+
private addScrollListenersToParents;
|
|
53
|
+
/**
|
|
54
|
+
* Removes scroll event listeners from all tracked parent containers
|
|
55
|
+
*/
|
|
56
|
+
private removeScrollListenersFromParents;
|
|
40
57
|
/**
|
|
41
58
|
* Helper function to find an element in the document
|
|
42
59
|
* @param selector - CSS selector
|
|
@@ -44,17 +61,24 @@ export declare class CursorManager {
|
|
|
44
61
|
*/
|
|
45
62
|
private findElement;
|
|
46
63
|
/**
|
|
47
|
-
* Checks if an element is visible in the viewport
|
|
64
|
+
* Checks if an element is completely visible in the viewport and within all scrollable parent containers
|
|
48
65
|
* @param element - The element to check
|
|
49
|
-
* @returns - Whether the element is visible in viewport
|
|
66
|
+
* @returns - Whether the entire element is visible in viewport and all scrollable parents
|
|
50
67
|
*/
|
|
51
68
|
private isElementInViewport;
|
|
52
69
|
/**
|
|
53
|
-
* Scrolls an element into view smoothly
|
|
70
|
+
* Scrolls an element into view smoothly, handling both window and parent container scrolling
|
|
54
71
|
* @param element - The element to scroll into view
|
|
55
72
|
* @returns - Promise that resolves when scrolling is complete
|
|
56
73
|
*/
|
|
57
74
|
private scrollElementIntoView;
|
|
75
|
+
/**
|
|
76
|
+
* Scrolls parent containers to make the element visible
|
|
77
|
+
* @param element - The target element
|
|
78
|
+
* @param scrollableParents - Array of scrollable parent containers
|
|
79
|
+
* @returns Promise that resolves when scrolling is complete
|
|
80
|
+
*/
|
|
81
|
+
private scrollParentContainersToShowElement;
|
|
58
82
|
/**
|
|
59
83
|
* Finds an element and scrolls it into view if necessary
|
|
60
84
|
* @param selector - CSS selector
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CursorManager.d.ts","sourceRoot":"","sources":["../../src/managers/CursorManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGhD;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,kBAAkB,CAAuB;IACjD,OAAO,CAAC,gBAAgB,CAAgC;IACxD,OAAO,CAAC,iBAAiB,CAA4B;IACrD,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,OAAO,CAAuB;IAEtC,OAAO,CAAC,gBAAgB,CAAkB;IAE1C,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,WAAW,CAAc;IAEjC,OAAO,CAAC,gBAAgB,CAAiB;IAEzC,OAAO,CAAC,oBAAoB,CAAwB;IAEpD,OAAO,CAAC,qBAAqB,CAAuB;IAEpD,OAAO,CAAC,kBAAkB,CAAoD;IAG9E,OAAO,CAAC,gBAAgB,CAA4B;IACpD,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,mBAAmB,CAAuB;IAClD,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,qBAAqB,CAAuB;IACpD,OAAO,CAAC,gBAAgB,CAAa;IAGrC,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,SAAS,CAA6D;IAC9E,OAAO,CAAC,sBAAsB,CAAuB;IAGrD,OAAO,CAAC,WAAW,CAAe;IAClC,OAAO,CAAC,aAAa,CAAa;IAClC,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,aAAa,CAAuB;IAG5C,OAAO,CAAC,sBAAsB,CAAiC;IAE/D;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAUnB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;
|
|
1
|
+
{"version":3,"file":"CursorManager.d.ts","sourceRoot":"","sources":["../../src/managers/CursorManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DragManager handles all drag-and-drop functionality for the player.
|
|
3
|
+
* It's responsible for managing drag state, handling mouse events,
|
|
4
|
+
* and updating player position during drag operations.
|
|
5
|
+
*/
|
|
6
|
+
export declare class DragManager {
|
|
7
|
+
private playerElement;
|
|
8
|
+
private playerRoot;
|
|
9
|
+
private isDragging;
|
|
10
|
+
private dragOffset;
|
|
11
|
+
private justFinishedDragging;
|
|
12
|
+
private dragStartPosition;
|
|
13
|
+
private hasMoved;
|
|
14
|
+
private resizeListener;
|
|
15
|
+
private onDragStateChange;
|
|
16
|
+
/**
|
|
17
|
+
* Initializes the drag manager with the player elements
|
|
18
|
+
* @param playerElement - The draggable player element
|
|
19
|
+
* @param playerRoot - The root element that gets positioned
|
|
20
|
+
* @param onDragStateChange - Callback for when drag state changes
|
|
21
|
+
*/
|
|
22
|
+
initialize(playerElement: HTMLElement, playerRoot: HTMLElement, onDragStateChange?: () => void): void;
|
|
23
|
+
/**
|
|
24
|
+
* Sets up drag handlers for the player
|
|
25
|
+
*/
|
|
26
|
+
private setupDragHandlers;
|
|
27
|
+
/**
|
|
28
|
+
* Updates the player position during drag operations
|
|
29
|
+
* @param position - The new position coordinates
|
|
30
|
+
* @param positionAlignment - The position alignment setting
|
|
31
|
+
*/
|
|
32
|
+
private updatePlayerPosition;
|
|
33
|
+
/**
|
|
34
|
+
* Checks if the UI is currently being dragged
|
|
35
|
+
*/
|
|
36
|
+
isCurrentlyDragging(): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Checks if dragging just finished
|
|
39
|
+
*/
|
|
40
|
+
hasJustFinishedDragging(): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Resets drag state
|
|
43
|
+
*/
|
|
44
|
+
resetDragState(): void;
|
|
45
|
+
/**
|
|
46
|
+
* Destroys the drag manager and cleans up resources
|
|
47
|
+
*/
|
|
48
|
+
destroy(): void;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=DragManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DragManager.d.ts","sourceRoot":"","sources":["../../src/managers/DragManager.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,UAAU,CAA4B;IAG9C,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,UAAU,CAA4C;IAC9D,OAAO,CAAC,oBAAoB,CAAkB;IAC9C,OAAO,CAAC,iBAAiB,CAA4C;IACrE,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,cAAc,CAA6B;IAGnD,OAAO,CAAC,iBAAiB,CAA6B;IAEtD;;;;;OAKG;IACI,UAAU,CACf,aAAa,EAAE,WAAW,EAC1B,UAAU,EAAE,WAAW,EACvB,iBAAiB,CAAC,EAAE,MAAM,IAAI,GAC7B,IAAI;IAQP;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA0IzB;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAa5B;;OAEG;IACI,mBAAmB,IAAI,OAAO;IAIrC;;OAEG;IACI,uBAAuB,IAAI,OAAO;IAIzC;;OAEG;IACI,cAAc,IAAI,IAAI;IAM7B;;OAEG;IACI,OAAO,IAAI,IAAI;CAiBvB"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import type { ButtonOverlay, DOMInteraction } from '../types';
|
|
2
2
|
/**
|
|
3
|
-
* Manager class for handling user interactions
|
|
3
|
+
* Manager class for handling user interactions.
|
|
4
|
+
* Now subscribes to store changes for automatic state management.
|
|
4
5
|
*/
|
|
5
6
|
export declare class InteractionManager {
|
|
6
7
|
private container;
|
|
7
8
|
private buttons;
|
|
8
9
|
private buttonContainer;
|
|
9
10
|
private domEventListeners;
|
|
11
|
+
private storeUnsubscribe;
|
|
10
12
|
/**
|
|
11
13
|
* Creates interaction elements
|
|
12
14
|
* @param container - The container element for interactions
|
|
@@ -46,6 +48,16 @@ export declare class InteractionManager {
|
|
|
46
48
|
* @param interaction - The interaction configuration
|
|
47
49
|
*/
|
|
48
50
|
private handleDOMInteraction;
|
|
51
|
+
/**
|
|
52
|
+
* Checks if the current step is the last step in the playlist
|
|
53
|
+
* @param store - The current store state
|
|
54
|
+
* @returns true if current step is the last step, false otherwise
|
|
55
|
+
*/
|
|
56
|
+
private isCurrentStepLast;
|
|
57
|
+
/**
|
|
58
|
+
* Flushes analytics events to ensure they're sent before player destruction
|
|
59
|
+
*/
|
|
60
|
+
private flushAnalytics;
|
|
49
61
|
/**
|
|
50
62
|
* Cleans up resources used by the interaction manager
|
|
51
63
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InteractionManager.d.ts","sourceRoot":"","sources":["../../src/managers/InteractionManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAI9D
|
|
1
|
+
{"version":3,"file":"InteractionManager.d.ts","sourceRoot":"","sources":["../../src/managers/InteractionManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAI9D;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,iBAAiB,CAA2F;IACpH,OAAO,CAAC,gBAAgB,CAA6B;IAErD;;;OAGG;IACI,MAAM,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;IAc3C;;;OAGG;IACI,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,IAAI;IAwDpD;;OAEG;IACI,YAAY,IAAI,IAAI;IAoB3B;;OAEG;IACI,qBAAqB,IAAI,IAAI;IAqBpC;;;OAGG;IACI,oBAAoB,CAAC,YAAY,EAAE,cAAc,EAAE,GAAG,IAAI;IA6CjE;;OAEG;IACI,oBAAoB,IAAI,IAAI;IAgBnC;;;;OAIG;YACW,iBAAiB;IAmG/B;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAqC5B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;OAEG;YACW,cAAc;IAmB5B;;OAEG;IACI,OAAO,IAAI,IAAI;CAkBvB"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PlayerView is responsible for creating the main player DOM structure
|
|
3
|
+
* and appending it to the shadow DOM. It handles only the structural
|
|
4
|
+
* creation of the player interface.
|
|
5
|
+
*/
|
|
6
|
+
export declare class PlayerView {
|
|
7
|
+
private playerElement;
|
|
8
|
+
/**
|
|
9
|
+
* Creates the main player DOM structure
|
|
10
|
+
* @param shadowRoot - The shadow DOM root element to append to
|
|
11
|
+
* @returns The created player element
|
|
12
|
+
*/
|
|
13
|
+
create(shadowRoot: HTMLElement): HTMLElement;
|
|
14
|
+
/**
|
|
15
|
+
* Creates the controls container structure
|
|
16
|
+
* @param parentElement - The parent element to append the controls container to
|
|
17
|
+
* @returns The created controls container element
|
|
18
|
+
*/
|
|
19
|
+
createControlsContainer(parentElement: HTMLElement): HTMLElement;
|
|
20
|
+
/**
|
|
21
|
+
* Creates and adds the saltfish logo to the player
|
|
22
|
+
* @param parentElement - The parent element to append the logo to
|
|
23
|
+
*/
|
|
24
|
+
createSaltfishLogo(parentElement: HTMLElement): void;
|
|
25
|
+
/**
|
|
26
|
+
* Gets the player element
|
|
27
|
+
*/
|
|
28
|
+
getPlayerElement(): HTMLElement | null;
|
|
29
|
+
/**
|
|
30
|
+
* Destroys the player view and cleans up resources
|
|
31
|
+
*/
|
|
32
|
+
destroy(): void;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=PlayerView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlayerView.d.ts","sourceRoot":"","sources":["../../src/managers/PlayerView.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,aAAa,CAA4B;IAEjD;;;;OAIG;IACI,MAAM,CAAC,UAAU,EAAE,WAAW,GAAG,WAAW;IAenD;;;;OAIG;IACI,uBAAuB,CAAC,aAAa,EAAE,WAAW,GAAG,WAAW;IAOvE;;;OAGG;IACI,kBAAkB,CAAC,aAAa,EAAE,WAAW,GAAG,IAAI;IA2C3D;;OAEG;IACI,gBAAgB,IAAI,WAAW,GAAG,IAAI;IAI7C;;OAEG;IACI,OAAO,IAAI,IAAI;CAMvB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { EventManager } from './EventManager';
|
|
2
|
+
import type { PlaylistOptions } from '../types';
|
|
2
3
|
/**
|
|
3
4
|
* Manager class for handling playlist-related functionality
|
|
4
5
|
*
|
|
@@ -9,6 +10,7 @@ import { EventManager } from './EventManager';
|
|
|
9
10
|
*/
|
|
10
11
|
export declare class PlaylistManager {
|
|
11
12
|
private eventManager;
|
|
13
|
+
private isUpdatingWatchedPlaylists;
|
|
12
14
|
/**
|
|
13
15
|
* Creates a new PlaylistManager
|
|
14
16
|
* @param eventManager - Optional event manager to subscribe to events
|
|
@@ -28,12 +30,25 @@ export declare class PlaylistManager {
|
|
|
28
30
|
*/
|
|
29
31
|
private getStore;
|
|
30
32
|
/**
|
|
31
|
-
* Updates the watched playlist status in the backend
|
|
33
|
+
* Updates the watched playlist status locally and in the backend
|
|
32
34
|
* @param playlistId - ID of the playlist
|
|
33
35
|
* @param status - New status ('in_progress' or 'completed')
|
|
34
36
|
* @param currentStepId - Optional current step ID
|
|
35
37
|
*/
|
|
36
38
|
private updateWatchedPlaylistStatus;
|
|
39
|
+
/**
|
|
40
|
+
* Loads a playlist manifest and sets up the store
|
|
41
|
+
* @param playlistId - Path or identifier for the playlist manifest
|
|
42
|
+
* @param options - Playlist configuration options
|
|
43
|
+
*/
|
|
44
|
+
load(playlistId: string, options: PlaylistOptions): Promise<void>;
|
|
45
|
+
/**
|
|
46
|
+
* Determines which step to start from based on persistence settings and saved progress
|
|
47
|
+
* @param manifest - The loaded playlist manifest
|
|
48
|
+
* @param options - Playlist configuration options
|
|
49
|
+
* @returns The step ID to start from
|
|
50
|
+
*/
|
|
51
|
+
private determineStartStep;
|
|
37
52
|
/**
|
|
38
53
|
* Cleans up resources used by the playlist manager
|
|
39
54
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlaylistManager.d.ts","sourceRoot":"","sources":["../../src/managers/PlaylistManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"PlaylistManager.d.ts","sourceRoot":"","sources":["../../src/managers/PlaylistManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,KAAK,EAAoB,eAAe,EAAE,MAAM,UAAU,CAAC;AAElE;;;;;;;GAOG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,0BAA0B,CAAkB;IAEpD;;;OAGG;gBACS,YAAY,CAAC,EAAE,YAAY;IAMvC;;;OAGG;IACI,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI;IAKxD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA4BzB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAShB;;;;;OAKG;YACW,2BAA2B;IA0EzC;;;;OAIG;IACU,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA0D9E;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAuB1B;;OAEG;IACI,OAAO,IAAI,IAAI;CAQvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionRecordingManager.d.ts","sourceRoot":"","sources":["../../src/managers/SessionRecordingManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAEzD;;;;;;;;GAQG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,WAAW,CAAkB;IAErC;;OAEG;;IAKH;;;;;OAKG;IACI,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"SessionRecordingManager.d.ts","sourceRoot":"","sources":["../../src/managers/SessionRecordingManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAEzD;;;;;;;;GAQG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,WAAW,CAAkB;IAErC;;OAEG;;IAKH;;;;;OAKG;IACI,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAyBnF;;OAEG;IACH,OAAO,CAAC,2BAA2B;IA4CnC;;;OAGG;IACH,OAAO,CAAC,cAAc;IA4BtB;;;OAGG;IACI,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAoCzC;;OAEG;IACI,aAAa,IAAI,IAAI;IAa5B;;;OAGG;IACI,oBAAoB,IAAI,OAAO;CAGvC"}
|
|
@@ -1,19 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
interface StepTimeoutData {
|
|
2
|
+
currentStepId: string | null;
|
|
3
|
+
currentState: string;
|
|
4
|
+
isMinimized: boolean;
|
|
5
|
+
previousState?: string;
|
|
6
|
+
}
|
|
3
7
|
/**
|
|
4
8
|
* Manages step timeout functionality to destroy the player if a user
|
|
5
9
|
* stays on the same step for more than 60 seconds
|
|
6
10
|
*/
|
|
7
|
-
export declare class StepTimeoutManager
|
|
11
|
+
export declare class StepTimeoutManager {
|
|
8
12
|
private static readonly STEP_TIMEOUT_MS;
|
|
9
13
|
private currentStepId;
|
|
10
14
|
private stepTimeoutId;
|
|
11
15
|
private destroyCallback;
|
|
12
16
|
constructor(destroyCallback: () => void);
|
|
13
17
|
/**
|
|
14
|
-
*
|
|
18
|
+
* Update method - called when player state changes
|
|
15
19
|
*/
|
|
16
|
-
update(data:
|
|
20
|
+
update(data: StepTimeoutData): void;
|
|
17
21
|
/**
|
|
18
22
|
* Sets or resets the step timeout
|
|
19
23
|
*/
|
|
@@ -35,4 +39,5 @@ export declare class StepTimeoutManager implements Observer<PlayerStateChangeDat
|
|
|
35
39
|
*/
|
|
36
40
|
destroy(): void;
|
|
37
41
|
}
|
|
42
|
+
export {};
|
|
38
43
|
//# sourceMappingURL=StepTimeoutManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StepTimeoutManager.d.ts","sourceRoot":"","sources":["../../src/managers/StepTimeoutManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"StepTimeoutManager.d.ts","sourceRoot":"","sources":["../../src/managers/StepTimeoutManager.ts"],"names":[],"mappings":"AAIA,UAAU,eAAe;IACvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAuB;IAE9D,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,eAAe,CAA6B;gBAExC,eAAe,EAAE,MAAM,IAAI;IAKvC;;OAEG;IACI,MAAM,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;IAsC1C;;OAEG;IACH,OAAO,CAAC,cAAc;IAmBtB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAQxB;;OAEG;IACH,OAAO,CAAC,aAAa;IAWrB;;OAEG;IACI,KAAK,IAAI,IAAI;IAMpB;;OAEG;IACI,OAAO,IAAI,IAAI;CAMvB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Step } from '../types';
|
|
2
|
+
import type { TriggerManager } from './TriggerManager';
|
|
2
3
|
/**
|
|
3
4
|
* Manages transitions between steps in the Saltfish playlist Player
|
|
4
5
|
* Serves as a single source of truth for determining when to move to the next step
|
|
@@ -6,13 +7,19 @@ import type { Step } from '../types';
|
|
|
6
7
|
export declare class TransitionManager {
|
|
7
8
|
private activeTransitions;
|
|
8
9
|
private waitingForInteraction;
|
|
10
|
+
private triggerManager;
|
|
9
11
|
constructor();
|
|
12
|
+
/**
|
|
13
|
+
* Sets the TriggerManager reference for coordinating autoStart triggers
|
|
14
|
+
* @param triggerManager - The TriggerManager instance
|
|
15
|
+
*/
|
|
16
|
+
setTriggerManager(triggerManager: TriggerManager): void;
|
|
10
17
|
/**
|
|
11
18
|
* Monitors history pushState and replaceState methods to detect SPA navigation
|
|
12
19
|
*/
|
|
13
20
|
private monitorHistoryChanges;
|
|
14
21
|
/**
|
|
15
|
-
* Handles URL changes by checking active URL path transitions
|
|
22
|
+
* Handles URL changes by checking active URL path transitions and autoStart triggers
|
|
16
23
|
*/
|
|
17
24
|
private handleURLChange;
|
|
18
25
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransitionManager.d.ts","sourceRoot":"","sources":["../../src/managers/TransitionManager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAuB,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"TransitionManager.d.ts","sourceRoot":"","sources":["../../src/managers/TransitionManager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAuB,MAAM,UAAU,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD;;;GAGG;AACH,qBAAa,iBAAiB;IAE5B,OAAO,CAAC,iBAAiB,CAQV;IAGf,OAAO,CAAC,qBAAqB,CAAkB;IAG/C,OAAO,CAAC,cAAc,CAA+B;;IAgBrD;;;OAGG;IACI,iBAAiB,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI;IAK9D;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAwB7B;;OAEG;IACH,OAAO,CAAC,eAAe,CAyBtB;IAED;;;;OAIG;IACI,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,kBAAkB,GAAE,OAAe,GAAG,IAAI;IA2B9E;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAyH/B;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IA0C9B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IA+F9B;;OAEG;IACH,OAAO,CAAC,cAAc;IA6BtB;;;OAGG;IACI,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IA2ClD;;OAEG;IACI,kBAAkB,IAAI,IAAI;IASjC;;;OAGG;IACI,wBAAwB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI;IAKzD;;;OAGG;IACI,uBAAuB,IAAI,OAAO;IAIzC;;OAEG;IACI,OAAO,IAAI,IAAI;IAQtB;;;OAGG;IACH,OAAO,CAAC,gCAAgC;CAiKzC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import type { PlaylistPathInfo } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Manages autoStart playlist triggers
|
|
4
|
+
* Evaluates trigger conditions and launches playlists automatically
|
|
5
|
+
*/
|
|
6
|
+
export declare class TriggerManager {
|
|
7
|
+
private autoStartPlaylists;
|
|
8
|
+
private triggeredPlaylists;
|
|
9
|
+
private isMonitoring;
|
|
10
|
+
constructor();
|
|
11
|
+
/**
|
|
12
|
+
* Registers autoStart playlists and their trigger configurations
|
|
13
|
+
* @param playlists - List of all playlists from backend
|
|
14
|
+
*/
|
|
15
|
+
registerTriggers(playlists: PlaylistPathInfo[]): void;
|
|
16
|
+
/**
|
|
17
|
+
* Starts monitoring for trigger conditions
|
|
18
|
+
*/
|
|
19
|
+
startMonitoring(): void;
|
|
20
|
+
/**
|
|
21
|
+
* Stops monitoring for trigger conditions
|
|
22
|
+
*/
|
|
23
|
+
stopMonitoring(): void;
|
|
24
|
+
/**
|
|
25
|
+
* Evaluates all registered triggers against current conditions
|
|
26
|
+
* Called by TransitionManager when URL changes occur
|
|
27
|
+
*/
|
|
28
|
+
evaluateAllTriggers(): void;
|
|
29
|
+
/**
|
|
30
|
+
* Evaluates triggers for a specific playlist
|
|
31
|
+
* @param playlist - The playlist to evaluate triggers for
|
|
32
|
+
*/
|
|
33
|
+
private evaluatePlaylistTrigger;
|
|
34
|
+
/**
|
|
35
|
+
* Evaluates the 'once' condition for a playlist
|
|
36
|
+
* @param once - Whether playlist should only trigger once per user
|
|
37
|
+
* @param playlistId - The playlist ID to check
|
|
38
|
+
* @param watchedPlaylists - User's watched playlists data
|
|
39
|
+
*/
|
|
40
|
+
private evaluateOnceCondition;
|
|
41
|
+
/**
|
|
42
|
+
* Evaluates the URL condition for a playlist
|
|
43
|
+
* @param pattern - URL pattern to match against (null = no URL condition)
|
|
44
|
+
*/
|
|
45
|
+
private evaluateURLCondition;
|
|
46
|
+
/**
|
|
47
|
+
* Evaluates the playlistSeen condition
|
|
48
|
+
* User must have seen ALL specified playlists
|
|
49
|
+
* @param requiredPlaylists - Array of playlist IDs that user must have seen
|
|
50
|
+
* @param watchedPlaylists - User's watched playlists data
|
|
51
|
+
*/
|
|
52
|
+
private evaluatePlaylistSeenCondition;
|
|
53
|
+
/**
|
|
54
|
+
* Evaluates the playlistNotSeen condition
|
|
55
|
+
* User must NOT have seen ANY of the specified playlists
|
|
56
|
+
* @param forbiddenPlaylists - Array of playlist IDs that user must not have seen
|
|
57
|
+
* @param watchedPlaylists - User's watched playlists data
|
|
58
|
+
*/
|
|
59
|
+
private evaluatePlaylistNotSeenCondition;
|
|
60
|
+
/**
|
|
61
|
+
* Applies logical operators to combine multiple conditions
|
|
62
|
+
* @param conditions - Array of boolean conditions to combine
|
|
63
|
+
* @param operators - Array of operators ("AND" or "OR")
|
|
64
|
+
*/
|
|
65
|
+
private applyOperators;
|
|
66
|
+
/**
|
|
67
|
+
* Triggers a playlist to start
|
|
68
|
+
* @param playlistId - ID of the playlist to trigger
|
|
69
|
+
*/
|
|
70
|
+
private triggerPlaylist;
|
|
71
|
+
/**
|
|
72
|
+
* Resets the triggered playlists tracking
|
|
73
|
+
* Useful for testing or when user context changes
|
|
74
|
+
*/
|
|
75
|
+
resetTriggeredPlaylists(): void;
|
|
76
|
+
/**
|
|
77
|
+
* Gets list of playlists that have been triggered this session
|
|
78
|
+
*/
|
|
79
|
+
getTriggeredPlaylists(): string[];
|
|
80
|
+
/**
|
|
81
|
+
* Cleanup method to be called on destroy
|
|
82
|
+
*/
|
|
83
|
+
destroy(): void;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=TriggerManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TriggerManager.d.ts","sourceRoot":"","sources":["../../src/managers/TriggerManager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,kBAAkB,CAA0B;IACpD,OAAO,CAAC,kBAAkB,CAA0B;IACpD,OAAO,CAAC,YAAY,CAAkB;;IAMtC;;;OAGG;IACI,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,EAAE,GAAG,IAAI;IAc5D;;OAEG;IACI,eAAe,IAAI,IAAI;IAa9B;;OAEG;IACI,cAAc,IAAI,IAAI;IAK7B;;;OAGG;IACI,mBAAmB,IAAI,IAAI;IAYlC;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAwD/B;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAW7B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IA4B5B;;;;;OAKG;IACH,OAAO,CAAC,6BAA6B;IAwBrC;;;;;OAKG;IACH,OAAO,CAAC,gCAAgC;IAwBxC;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAuBtB;;;OAGG;YACW,eAAe;IAsB7B;;;OAGG;IACI,uBAAuB,IAAI,IAAI;IAKtC;;OAEG;IACI,qBAAqB,IAAI,MAAM,EAAE;IAIxC;;OAEG;IACI,OAAO,IAAI,IAAI;CAMvB"}
|
|
@@ -1,48 +1,27 @@
|
|
|
1
1
|
import { ShadowDOMManager } from './ShadowDOMManager';
|
|
2
|
-
import { VideoManager } from './VideoManager';
|
|
3
|
-
import { CursorManager } from './CursorManager';
|
|
4
|
-
import { InteractionManager } from './InteractionManager';
|
|
5
|
-
import { ButtonManager } from './ButtonManager';
|
|
6
2
|
import type { PlayerState } from '../types';
|
|
7
|
-
import { UIObserver } from '../observers/UIObserver';
|
|
8
3
|
/**
|
|
9
|
-
* Manages
|
|
4
|
+
* Manages UI coordination and positioning. Now uses PlayerView for DOM creation
|
|
5
|
+
* and DragManager for drag functionality, making it much more focused.
|
|
10
6
|
*/
|
|
11
7
|
export declare class UIManager {
|
|
12
8
|
private shadowDOMManager;
|
|
13
|
-
private
|
|
14
|
-
private
|
|
15
|
-
private interactionManager;
|
|
16
|
-
private buttonManager;
|
|
17
|
-
private uiObserver;
|
|
9
|
+
private playerView;
|
|
10
|
+
private dragManager;
|
|
18
11
|
private playerRoot;
|
|
19
12
|
private playerElement;
|
|
20
13
|
private minimizeButton;
|
|
21
14
|
private exitButton;
|
|
22
15
|
private playPauseButton;
|
|
23
|
-
|
|
24
|
-
private dragOffset;
|
|
25
|
-
private justFinishedDragging;
|
|
26
|
-
private dragStartPosition;
|
|
27
|
-
private hasMoved;
|
|
28
|
-
private resizeListener;
|
|
29
|
-
constructor(shadowDOMManager: ShadowDOMManager, videoManager: VideoManager, cursorManager: CursorManager, interactionManager: InteractionManager, buttonManager: ButtonManager);
|
|
16
|
+
constructor(shadowDOMManager: ShadowDOMManager);
|
|
30
17
|
/**
|
|
31
|
-
*
|
|
18
|
+
* Creates the complete player UI using the new decoupled structure
|
|
32
19
|
*/
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Creates the complete player UI
|
|
36
|
-
*/
|
|
37
|
-
createPlayerUI(): void;
|
|
20
|
+
createPlayerUI(videoManager: any, cursorManager: any, interactionManager: any, buttonManager: any): void;
|
|
38
21
|
/**
|
|
39
22
|
* Sets up click handler for video container
|
|
40
23
|
*/
|
|
41
24
|
private setupVideoContainerClickHandler;
|
|
42
|
-
/**
|
|
43
|
-
* Creates and adds the saltfish logo to the bottom of the player
|
|
44
|
-
*/
|
|
45
|
-
private createSaltfishLogo;
|
|
46
25
|
/**
|
|
47
26
|
* Updates the position of the player element based on store state
|
|
48
27
|
*/
|
|
@@ -55,10 +34,6 @@ export declare class UIManager {
|
|
|
55
34
|
* Handles minimize state changes and updates button visibility
|
|
56
35
|
*/
|
|
57
36
|
handleMinimizeStateChange(isMinimized: boolean): void;
|
|
58
|
-
/**
|
|
59
|
-
* Sets up drag handlers for the player
|
|
60
|
-
*/
|
|
61
|
-
private setupDragHandlers;
|
|
62
37
|
/**
|
|
63
38
|
* Updates the visibility of player controls based on the current state
|
|
64
39
|
* @param state - The current player state
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UIManager.d.ts","sourceRoot":"","sources":["../../src/managers/UIManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"UIManager.d.ts","sourceRoot":"","sources":["../../src/managers/UIManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAOtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAK5C;;;GAGG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,WAAW,CAAc;IAEjC,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,eAAe,CAAgC;gBAE3C,gBAAgB,EAAE,gBAAgB;IAO9C;;OAEG;IACI,cAAc,CAAC,YAAY,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,GAAG,IAAI;IAsE/G;;OAEG;IACH,OAAO,CAAC,+BAA+B;IAsCvC;;OAEG;IACI,cAAc,IAAI,IAAI;IAgF7B;;OAEG;IACI,mBAAmB,IAAI,IAAI;IA0BlC;;OAEG;IACI,yBAAyB,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI;IAe5D;;;OAGG;IACI,wBAAwB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAWzD;;OAEG;IACI,gBAAgB,IAAI,WAAW,GAAG,IAAI;IAI7C;;OAEG;IACI,aAAa,IAAI,WAAW,GAAG,IAAI;IAI1C;;OAEG;IACI,mBAAmB,IAAI,OAAO;IAIrC;;OAEG;IACI,uBAAuB,IAAI,OAAO;IAIzC;;OAEG;IACI,cAAc,IAAI,IAAI;IAI7B;;OAEG;IACI,OAAO,IAAI,IAAI;CA6BvB"}
|