saltfish 0.1.2 → 0.1.4

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.
Files changed (51) hide show
  1. package/dist/core/SaltfishPlayer.d.ts +19 -3
  2. package/dist/core/SaltfishPlayer.d.ts.map +1 -1
  3. package/dist/core/store.d.ts.map +1 -1
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/managers/AnalyticsManager.d.ts +5 -0
  6. package/dist/managers/AnalyticsManager.d.ts.map +1 -1
  7. package/dist/managers/ButtonManager.d.ts +2 -0
  8. package/dist/managers/ButtonManager.d.ts.map +1 -1
  9. package/dist/managers/CursorManager.d.ts +50 -3
  10. package/dist/managers/CursorManager.d.ts.map +1 -1
  11. package/dist/managers/DevicePlaybackHandler.d.ts +118 -0
  12. package/dist/managers/DevicePlaybackHandler.d.ts.map +1 -0
  13. package/dist/managers/DragManager.d.ts +50 -0
  14. package/dist/managers/DragManager.d.ts.map +1 -0
  15. package/dist/managers/InteractionManager.d.ts +13 -1
  16. package/dist/managers/InteractionManager.d.ts.map +1 -1
  17. package/dist/managers/PlayerView.d.ts +34 -0
  18. package/dist/managers/PlayerView.d.ts.map +1 -0
  19. package/dist/managers/PlaylistManager.d.ts +16 -1
  20. package/dist/managers/PlaylistManager.d.ts.map +1 -1
  21. package/dist/managers/SessionRecordingManager.d.ts.map +1 -1
  22. package/dist/managers/StepTimeoutManager.d.ts +10 -5
  23. package/dist/managers/StepTimeoutManager.d.ts.map +1 -1
  24. package/dist/managers/TransitionManager.d.ts +8 -1
  25. package/dist/managers/TransitionManager.d.ts.map +1 -1
  26. package/dist/managers/TriggerManager.d.ts +85 -0
  27. package/dist/managers/TriggerManager.d.ts.map +1 -0
  28. package/dist/managers/UIManager.d.ts +7 -32
  29. package/dist/managers/UIManager.d.ts.map +1 -1
  30. package/dist/managers/VideoManager.d.ts +1 -7
  31. package/dist/managers/VideoManager.d.ts.map +1 -1
  32. package/dist/player.js +3 -2
  33. package/dist/player.min.js +3 -2
  34. package/dist/saltfish-playlist-player.es.js +1960 -1081
  35. package/dist/saltfish-playlist-player.umd.js +1 -1
  36. package/dist/types/index.d.ts +21 -1
  37. package/dist/types/index.d.ts.map +1 -1
  38. package/dist/updaters/EventUpdater.d.ts +13 -0
  39. package/dist/updaters/EventUpdater.d.ts.map +1 -0
  40. package/dist/updaters/UIUpdater.d.ts +7 -0
  41. package/dist/updaters/UIUpdater.d.ts.map +1 -0
  42. package/dist/utils/deviceDetection.d.ts +6 -0
  43. package/dist/utils/deviceDetection.d.ts.map +1 -1
  44. package/package.json +2 -8
  45. package/README.md +0 -633
  46. package/dist/observers/EventObserver.d.ts +0 -52
  47. package/dist/observers/EventObserver.d.ts.map +0 -1
  48. package/dist/observers/UIObserver.d.ts +0 -43
  49. package/dist/observers/UIObserver.d.ts.map +0 -1
  50. package/dist/patterns/PlayerStateSubject.d.ts +0 -34
  51. 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 stateSubject;
23
- private uiObserver;
24
- private eventObserver;
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;
@@ -85,6 +87,16 @@ export declare class SaltfishPlayer {
85
87
  * @returns The URL of the next video or null if no next video exists
86
88
  */
87
89
  private findNextVideoUrl;
90
+ /**
91
+ * Gets the appropriate video URL for a step, preferring compressedVideoUrl if available
92
+ * @param step - The step to get the video URL for
93
+ * @returns The video URL to use (compressed if available, otherwise regular)
94
+ */
95
+ private getVideoUrl;
96
+ /**
97
+ * Setup UI and Event updaters that subscribe to store changes
98
+ */
99
+ private setupUpdaters;
88
100
  /**
89
101
  * Handles store state changes
90
102
  */
@@ -118,6 +130,10 @@ export declare class SaltfishPlayer {
118
130
  * Cleans up the current playlist state
119
131
  */
120
132
  private cleanupCurrentPlaylist;
133
+ /**
134
+ * Cleans up playlist-specific resources while keeping trigger monitoring active
135
+ */
136
+ private cleanupPlaylist;
121
137
  /**
122
138
  * Updates the visibility of player controls based on the current state
123
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;AAQxD,OAAO,EAAgB,iBAAiB,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAIzF,OAAO,KAAK,EAAE,cAAc,EAAe,eAAe,EAAQ,MAAM,UAAU,CAAC;AAWnF;;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,YAAY,CAAe;IACnC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,SAAS,CAAY;IAE7B,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,aAAa,CAAgB;IAErC,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;IA0DP;;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;IAqF9D;;;;OAIG;IACI,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,IAAI;IAuBzD;;;;OAIG;YACW,aAAa;IAoE3B;;;;;;;;;;OAUG;IACU,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAoaxF;;OAEG;IACH,OAAO,CAAC,2BAA2B;IA6KnC;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IA+BxB;;OAEG;IACH,OAAO,CAAC,kBAAkB,CA0DxB;IAEF;;OAEG;IACI,OAAO,IAAI,IAAI;IAyEtB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA4B5B;;;;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;IAoD9B;;;OAGG;IACH,OAAO,CAAC,wBAAwB;CAIjC"}
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"}
@@ -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;AAgBlB;;;GAGG;AACH,eAAO,MAAM,aAAa;;CA2azB,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"}
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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEjF,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAG1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAExD;;;;OAIG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IAEnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,aAAa,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhF;;;OAGG;IACH,YAAY,EAAE,MAAM,MAAM,CAAC;IAE3B;;;OAGG;IACH,QAAQ,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAE9B;;;;OAIG;IACH,EAAE,EAAE,CAAC,CAAC,SAAS,iBAAiB,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAEnF;;;;;OAKG;IACH,GAAG,EAAE,CAAC,CAAC,SAAS,iBAAiB,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC;IAEvF;;OAEG;IACH,aAAa,EAAE,MAAM,IAAI,CAAC;IAE1B;;OAEG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;IAEpB;;;OAGG;IACH,OAAO,CAAC,EAAE;QACR;;;WAGG;QACH,eAAe,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;QAEtD;;;WAGG;QACH,kBAAkB,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,KAAK,gBAAgB,CAAC;QAE/E;;WAEG;QACH,mBAAmB,EAAE,gBAAgB,CAAC;QAEtC;;;WAGG;QACH,aAAa,EAAE,MAAM,UAAU,CAAC;KACjC,CAAA;CACF;AAyMD,QAAA,MAAM,QAAQ,aAAc,CAAC;AAO7B,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEjF,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAG1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAExD;;;;OAIG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IAEnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,aAAa,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhF;;;OAGG;IACH,YAAY,EAAE,MAAM,MAAM,CAAC;IAE3B;;;OAGG;IACH,QAAQ,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAE9B;;;;OAIG;IACH,EAAE,EAAE,CAAC,CAAC,SAAS,iBAAiB,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAEnF;;;;;OAKG;IACH,GAAG,EAAE,CAAC,CAAC,SAAS,iBAAiB,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC;IAEvF;;OAEG;IACH,aAAa,EAAE,MAAM,IAAI,CAAC;IAE1B;;OAEG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;IAEpB;;;OAGG;IACH,OAAO,CAAC,EAAE;QACR;;;WAGG;QACH,eAAe,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;QAEtD;;;WAGG;QACH,kBAAkB,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,KAAK,gBAAgB,CAAC;QAE/E;;WAEG;QACH,mBAAmB,EAAE,gBAAgB,CAAC;QAEtC;;;WAGG;QACH,aAAa,EAAE,MAAM,UAAU,CAAC;KACjC,CAAA;CACF;AAmMD,QAAA,MAAM,QAAQ,aAAc,CAAC;AAO7B,eAAe,QAAQ,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;;;GAGG;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;;IAMjD;;;;;OAKG;IACI,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,GAAG,IAAI;IAuFzE;;;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;CAQvB"}
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,12 +39,52 @@ 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
43
60
  * @returns - The found element or null
44
61
  */
45
62
  private findElement;
63
+ /**
64
+ * Checks if an element is completely visible in the viewport and within all scrollable parent containers
65
+ * @param element - The element to check
66
+ * @returns - Whether the entire element is visible in viewport and all scrollable parents
67
+ */
68
+ private isElementInViewport;
69
+ /**
70
+ * Scrolls an element into view smoothly, handling both window and parent container scrolling
71
+ * @param element - The element to scroll into view
72
+ * @returns - Promise that resolves when scrolling is complete
73
+ */
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;
82
+ /**
83
+ * Finds an element and scrolls it into view if necessary
84
+ * @param selector - CSS selector
85
+ * @returns - Promise that resolves with the element or null
86
+ */
87
+ private findElementAndScrollIntoView;
46
88
  /**
47
89
  * Creates the virtual cursor element
48
90
  */
@@ -51,6 +93,11 @@ export declare class CursorManager {
51
93
  * Handles scrolling to keep the cursor positioned on the target element
52
94
  */
53
95
  private handleScroll;
96
+ /**
97
+ * Checks if autoplay is blocked and cursor should be disabled
98
+ * @returns - Whether autoplay is blocked
99
+ */
100
+ private isAutoplayBlocked;
54
101
  /**
55
102
  * Sets whether the cursor should be shown based on step configuration
56
103
  * @param shouldShow - Whether the cursor should be shown
@@ -58,7 +105,7 @@ export declare class CursorManager {
58
105
  setShouldShowCursor(shouldShow: boolean): void;
59
106
  /**
60
107
  * Shows the cursor and flashlight at a specific position
61
- * Note: Will only show if shouldShowCursor is true
108
+ * Note: Will only show if shouldShowCursor is true and autoplay is not blocked
62
109
  * @param x - X coordinate
63
110
  * @param y - Y coordinate
64
111
  */
@@ -82,7 +129,7 @@ export declare class CursorManager {
82
129
  * Animates the cursor along a path
83
130
  * @param animation - Animation configuration
84
131
  */
85
- animate(animation: CursorAnimation): void;
132
+ animate(animation: CursorAnimation): Promise<void>;
86
133
  /**
87
134
  * Handles selection mode setup and animation
88
135
  */
@@ -105,7 +152,7 @@ export declare class CursorManager {
105
152
  * @param mode - Optional mode for cursor (pointer or selection)
106
153
  * @param selectionStyles - Optional styles for selection mode
107
154
  */
108
- moveToElement(selector: string, mode?: 'pointer' | 'selection', selectionStyles?: CursorAnimation['selectionStyles']): void;
155
+ moveToElement(selector: string, mode?: 'pointer' | 'selection', selectionStyles?: CursorAnimation['selectionStyles']): Promise<void>;
109
156
  /**
110
157
  * Simulates a click action with the cursor
111
158
  */
@@ -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;AAEhD;;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;;OAEG;IACI,MAAM,IAAI,IAAI;IA0DrB;;OAEG;IACH,OAAO,CAAC,YAAY;IAyDpB;;;OAGG;IACI,mBAAmB,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;IAcrD;;;;;OAKG;IACI,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAyBvC;;;OAGG;IACI,IAAI,IAAI,IAAI;IAsBnB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAa9B;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAyB3B;;;OAGG;IACI,OAAO,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI;IAoHhD;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAyE3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA6L1B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IA+BlC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAsD7B;;;;;OAKG;IACI,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,WAAW,EAAE,eAAe,CAAC,EAAE,eAAe,CAAC,iBAAiB,CAAC,GAAG,IAAI;IAiElI;;OAEG;IACI,KAAK,IAAI,IAAI;IAqCpB;;OAEG;IACI,aAAa,IAAI,IAAI;IAuC5B;;OAEG;IACI,UAAU,IAAI,MAAM;IAW3B;;OAEG;IACI,UAAU,IAAI,MAAM;IAW3B;;OAEG;IACI,mBAAmB,IAAI,IAAI;IAIlC;;OAEG;IACI,OAAO,IAAI,IAAI;IAiDtB;;OAEG;IACH,OAAO,CAAC,cAAc;IA6HtB;;;OAGG;IACI,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAkBrC"}
1
+ {"version":3,"file":"CursorManager.d.ts","sourceRoot":"","sources":["../../src/managers/CursorManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,118 @@
1
+ import { DeviceInfo } from '../utils/deviceDetection';
2
+ /**
3
+ * Configuration for video elements based on device type
4
+ */
5
+ export interface VideoElementConfig {
6
+ playsInline: boolean;
7
+ muted: boolean;
8
+ controls: boolean;
9
+ preload: "" | "metadata" | "none" | "auto";
10
+ additionalAttributes: Record<string, string>;
11
+ styles: Record<string, string>;
12
+ }
13
+ /**
14
+ * Configuration for UI controls based on device type
15
+ */
16
+ export interface ControlsConfig {
17
+ buttonMinSize: {
18
+ width: string;
19
+ height: string;
20
+ };
21
+ useTouch: boolean;
22
+ progressUpdateInterval: number;
23
+ }
24
+ /**
25
+ * Autoplay strategy configuration
26
+ */
27
+ export interface AutoplayConfig {
28
+ shouldStartMuted: boolean;
29
+ enableFallbackLoop: boolean;
30
+ fallbackTimeout: number;
31
+ requiresUserInteraction: boolean;
32
+ }
33
+ /**
34
+ * Abstract base class for device-specific playback handling
35
+ */
36
+ export declare abstract class DevicePlaybackHandler {
37
+ protected deviceInfo: DeviceInfo;
38
+ constructor(deviceInfo: DeviceInfo);
39
+ /**
40
+ * Get device-specific video element configuration
41
+ */
42
+ abstract getVideoElementConfig(): VideoElementConfig;
43
+ /**
44
+ * Get device-specific controls configuration
45
+ */
46
+ abstract getControlsConfig(): ControlsConfig;
47
+ /**
48
+ * Get device-specific autoplay configuration
49
+ */
50
+ abstract getAutoplayConfig(hasUserInteracted: boolean): AutoplayConfig;
51
+ /**
52
+ * Apply device-specific video element setup
53
+ */
54
+ abstract configureVideoElement(video: HTMLVideoElement): void;
55
+ /**
56
+ * Apply device-specific control styling
57
+ */
58
+ abstract configureControlElement(element: HTMLElement): void;
59
+ /**
60
+ * Handle device-specific play attempt
61
+ */
62
+ abstract handlePlayAttempt(video: HTMLVideoElement, hasUserInteracted: boolean): Promise<boolean>;
63
+ /**
64
+ * Handle device-specific autoplay fallback
65
+ */
66
+ abstract handleAutoplayFallback(video: HTMLVideoElement): Promise<void>;
67
+ /**
68
+ * Get appropriate progress update strategy
69
+ */
70
+ abstract getProgressUpdateFrequency(isAutoplayFallback: boolean): number;
71
+ /**
72
+ * Clean up resources when handler is destroyed
73
+ */
74
+ abstract destroy(): void;
75
+ /**
76
+ * Handle device change updates
77
+ */
78
+ updateDeviceInfo(newDeviceInfo: DeviceInfo): void;
79
+ }
80
+ /**
81
+ * Mobile-specific playback handler
82
+ */
83
+ export declare class MobilePlaybackHandler extends DevicePlaybackHandler {
84
+ getVideoElementConfig(): VideoElementConfig;
85
+ getControlsConfig(): ControlsConfig;
86
+ getAutoplayConfig(hasUserInteracted: boolean): AutoplayConfig;
87
+ configureVideoElement(video: HTMLVideoElement): void;
88
+ configureControlElement(element: HTMLElement): void;
89
+ handlePlayAttempt(video: HTMLVideoElement, hasUserInteracted: boolean): Promise<boolean>;
90
+ handleAutoplayFallback(video: HTMLVideoElement): Promise<void>;
91
+ /**
92
+ * Clean up resources when handler is destroyed
93
+ */
94
+ destroy(): void;
95
+ getProgressUpdateFrequency(isAutoplayFallback: boolean): number;
96
+ }
97
+ /**
98
+ * Desktop-specific playback handler
99
+ */
100
+ export declare class DesktopPlaybackHandler extends DevicePlaybackHandler {
101
+ getVideoElementConfig(): VideoElementConfig;
102
+ getControlsConfig(): ControlsConfig;
103
+ getAutoplayConfig(_hasUserInteracted: boolean): AutoplayConfig;
104
+ configureVideoElement(video: HTMLVideoElement): void;
105
+ configureControlElement(_element: HTMLElement): void;
106
+ handlePlayAttempt(video: HTMLVideoElement, _hasUserInteracted: boolean): Promise<boolean>;
107
+ handleAutoplayFallback(video: HTMLVideoElement): Promise<void>;
108
+ getProgressUpdateFrequency(_isAutoplayFallback: boolean): number;
109
+ /**
110
+ * Clean up resources when handler is destroyed
111
+ */
112
+ destroy(): void;
113
+ }
114
+ /**
115
+ * Factory function to create appropriate device handler
116
+ */
117
+ export declare function createDevicePlaybackHandler(deviceInfo: DeviceInfo): DevicePlaybackHandler;
118
+ //# sourceMappingURL=DevicePlaybackHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DevicePlaybackHandler.d.ts","sourceRoot":"","sources":["../../src/managers/DevicePlaybackHandler.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;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,iBAAiB,CAA2F;IAEpH;;;OAGG;IACI,MAAM,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;IAK3C;;;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;IAkF/B;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAqC5B;;OAEG;IACI,OAAO,IAAI,IAAI;CAYvB"}
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;AAI9C;;;;;;;GAOG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,YAAY,CAA6B;IAEjD;;;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;IAmCzC;;OAEG;IACI,OAAO,IAAI,IAAI;CAQvB"}
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;IAmBnF;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAsCnC;;;OAGG;IACH,OAAO,CAAC,cAAc;IAuBtB;;;OAGG;IACI,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IA+BzC;;OAEG;IACI,aAAa,IAAI,IAAI;IAQ5B;;;OAGG;IACI,oBAAoB,IAAI,OAAO;CAGvC"}
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
- import { PlayerStateChangeData } from '../patterns/PlayerStateSubject';
2
- import { Observer } from '../patterns/Observer';
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 implements Observer<PlayerStateChangeData> {
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
- * Observer pattern implementation - called when player state changes
18
+ * Update method - called when player state changes
15
19
  */
16
- update(data: PlayerStateChangeData): void;
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":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD;;;GAGG;AACH,qBAAa,kBAAmB,YAAW,QAAQ,CAAC,qBAAqB,CAAC;IACxE,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,qBAAqB,GAAG,IAAI;IAsChD;;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
+ {"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;AAE1D;;;GAGG;AACH,qBAAa,iBAAiB;IAE5B,OAAO,CAAC,iBAAiB,CAQV;IAGf,OAAO,CAAC,qBAAqB,CAAkB;;IAgB/C;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAwB7B;;OAEG;IACH,OAAO,CAAC,eAAe,CAkBtB;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;IAuBtB;;;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;CA6IzC"}
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"}