suada-components 1.9.0 → 1.9.1

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 (96) hide show
  1. package/dist/{components/DailyMotion-B7yDPBbg.js → DailyMotion-B-Q4fBEb.js} +1 -1
  2. package/dist/{components/DailyMotion-BmnymjR1.esm.js → DailyMotion-BAvo3Toe.esm.js} +1 -1
  3. package/dist/{components/Facebook-D9Ak6ZJU.esm.js → Facebook-C8GOujDt.esm.js} +1 -1
  4. package/dist/{components/Facebook-42iqQU2G.js → Facebook-CASik-P5.js} +1 -1
  5. package/dist/{components/FilePlayer-wg9lyafD.esm.js → FilePlayer-BOZIvaDy.esm.js} +1 -1
  6. package/dist/{components/FilePlayer-CAnHK0Cd.js → FilePlayer-CQ80KWY2.js} +1 -1
  7. package/dist/{components/Kaltura-DPaEN-dq.esm.js → Kaltura-B12Xdl6X.esm.js} +1 -1
  8. package/dist/{components/Kaltura-Ct6kwbgP.js → Kaltura-nYc5k7UB.js} +1 -1
  9. package/dist/{components/Mixcloud-sBbcL5rG.js → Mixcloud-DGQnlDAK.js} +1 -1
  10. package/dist/{components/Mixcloud-BobSN3YI.esm.js → Mixcloud-JfeQIOki.esm.js} +1 -1
  11. package/dist/{components/Mux-B9YP-rFr.esm.js → Mux-BHWzpAR-.esm.js} +1 -1
  12. package/dist/{components/Mux-Cosy8sFO.js → Mux-CiKZc8gj.js} +1 -1
  13. package/dist/{components/Preview-XcTlhHT1.esm.js → Preview-DSovY9gr.esm.js} +1 -1
  14. package/dist/{components/Preview-DiVfo6aa.js → Preview-DvZKrgm5.js} +1 -1
  15. package/dist/{components/SoundCloud-CIWqB-QW.js → SoundCloud-Di7z3nmP.js} +1 -1
  16. package/dist/{components/SoundCloud-BTHoyFWT.esm.js → SoundCloud-j_R0lK8D.esm.js} +1 -1
  17. package/dist/{components/Streamable-DsfQCy3p.esm.js → Streamable-CRhXZIKP.esm.js} +1 -1
  18. package/dist/{components/Streamable-9anYiQtU.js → Streamable-CV1mgzRv.js} +1 -1
  19. package/dist/{components/Twitch-D1BOr8hj.esm.js → Twitch-6icfp-ZE.esm.js} +1 -1
  20. package/dist/{components/Twitch-Dud6e1Rv.js → Twitch-Dj66vkCD.js} +1 -1
  21. package/dist/{components/Vidyard-C1csjpQH.esm.js → Vidyard--KX47pZ0.esm.js} +1 -1
  22. package/dist/{components/Vidyard-BuOu85uS.js → Vidyard-B-qmApe9.js} +1 -1
  23. package/dist/{components/Vimeo-CHlHIswX.esm.js → Vimeo-Ba9C6utC.esm.js} +1 -1
  24. package/dist/{components/Vimeo-DrDJ5O9H.js → Vimeo-DePzl7Sn.js} +1 -1
  25. package/dist/{components/Wistia-fh9U2CA2.js → Wistia-CXYB3Yus.js} +1 -1
  26. package/dist/{components/Wistia-D-eYyONb.esm.js → Wistia-DWJcdcY2.esm.js} +1 -1
  27. package/dist/{components/YouTube-CmnnzZvk.esm.js → YouTube-DdBVPxzz.esm.js} +1 -1
  28. package/dist/{components/YouTube-DC2uZ14c.js → YouTube-vwMoW93C.js} +1 -1
  29. package/dist/components/CourseCard/CourseCard.styles.d.ts +1 -1
  30. package/dist/components/DailyMotion-Cr_8IZRR.js +180 -0
  31. package/dist/components/DailyMotion-D2n1NDDi.esm.js +178 -0
  32. package/dist/components/Facebook-CDrTA2_L.esm.js +179 -0
  33. package/dist/components/Facebook-YxZce26V.js +181 -0
  34. package/dist/components/FilePlayer-BzkVMbQ8.esm.js +408 -0
  35. package/dist/components/FilePlayer-DqqTufgX.js +410 -0
  36. package/dist/components/Kaltura-B0UZLr6g.esm.js +176 -0
  37. package/dist/components/Kaltura-krSxvIBr.js +178 -0
  38. package/dist/components/Mixcloud-BCT5e47d.js +166 -0
  39. package/dist/components/Mixcloud-D9qk3D6i.esm.js +164 -0
  40. package/dist/components/Mux-BZleoaJh.esm.js +264 -0
  41. package/dist/components/Mux-D_si09u2.js +266 -0
  42. package/dist/components/Preview-CmduMeEZ.js +175 -0
  43. package/dist/components/Preview-DQLbQ8_C.esm.js +173 -0
  44. package/dist/components/SoundCloud-BHgTfaW7.js +183 -0
  45. package/dist/components/SoundCloud-BgnX8kOF.esm.js +181 -0
  46. package/dist/components/Streamable-DTAzjVwd.js +176 -0
  47. package/dist/components/Streamable-DbRbUflP.esm.js +174 -0
  48. package/dist/components/Twitch-CXOhay4a.esm.js +168 -0
  49. package/dist/components/Twitch-CnEk-l9R.js +170 -0
  50. package/dist/components/VideoPlayer/PiPContext.d.ts +8 -0
  51. package/dist/components/VideoPlayer/PiPContext.js +149 -0
  52. package/dist/components/VideoPlayer/PiPContext.js.map +1 -0
  53. package/dist/components/VideoPlayer/PiPContext.types.d.ts +16 -0
  54. package/dist/components/VideoPlayer/PiPContext.types.js +2 -0
  55. package/dist/components/VideoPlayer/PiPContext.types.js.map +1 -0
  56. package/dist/components/VideoPlayer/usePiP.d.ts +2 -0
  57. package/dist/components/VideoPlayer/usePiP.js +10 -0
  58. package/dist/components/VideoPlayer/usePiP.js.map +1 -0
  59. package/dist/components/VideoPlayer/usePlayerControls.js +12 -40
  60. package/dist/components/VideoPlayer/usePlayerControls.js.map +1 -1
  61. package/dist/components/Vidyard-Cn_LcGwi.js +174 -0
  62. package/dist/components/Vidyard-YcZH6kkW.esm.js +172 -0
  63. package/dist/components/Vimeo-BUVxWt7t.js +215 -0
  64. package/dist/components/Vimeo-Cv0qx3aR.esm.js +213 -0
  65. package/dist/components/Wistia-COWrV8QC.js +190 -0
  66. package/dist/components/Wistia-PneZ48dn.esm.js +188 -0
  67. package/dist/components/YouTube-BUyvzJQw.esm.js +258 -0
  68. package/dist/components/YouTube-DeQdfkWm.js +260 -0
  69. package/dist/components/components/CourseCard/CourseCard.styles.d.ts +1 -1
  70. package/dist/components/components/VideoPlayer/PiPContext.d.ts +8 -0
  71. package/dist/components/components/VideoPlayer/PiPContext.types.d.ts +16 -0
  72. package/dist/components/components/VideoPlayer/usePiP.d.ts +2 -0
  73. package/dist/components/components/index.d.ts +2 -0
  74. package/dist/components/{index-DetZ05pw.js → index-Bs-XxxV4.js} +153 -304
  75. package/dist/components/{index-DKAGRUEW.esm.js → index-C4Mk2H3N.esm.js} +152 -305
  76. package/dist/components/index.d.ts +2 -0
  77. package/dist/components/index.esm.js +1 -1
  78. package/dist/components/index.js +2 -0
  79. package/dist/components/index.js.map +1 -1
  80. package/dist/icons/components/CourseCard/CourseCard.styles.d.ts +1 -1
  81. package/dist/icons/components/VideoPlayer/PiPContext.d.ts +8 -0
  82. package/dist/icons/components/VideoPlayer/PiPContext.types.d.ts +16 -0
  83. package/dist/icons/components/VideoPlayer/usePiP.d.ts +2 -0
  84. package/dist/icons/components/index.d.ts +2 -0
  85. package/dist/index-Bp-idbg5.esm.js +94907 -0
  86. package/dist/index-CSj9NYxJ.js +95129 -0
  87. package/dist/index.d.ts +2 -0
  88. package/dist/index.esm.js +3 -3
  89. package/dist/index.js +3 -0
  90. package/dist/index.js.map +1 -1
  91. package/package.json +1 -1
  92. package/dist/components/VideoPlayer/pipManager.d.ts +0 -60
  93. package/dist/components/VideoPlayer/pipManager.js +0 -272
  94. package/dist/components/VideoPlayer/pipManager.js.map +0 -1
  95. package/dist/components/components/VideoPlayer/pipManager.d.ts +0 -60
  96. package/dist/icons/components/VideoPlayer/pipManager.d.ts +0 -60
package/dist/index.d.ts CHANGED
@@ -1 +1,3 @@
1
1
  export declare const version = "1.0.0";
2
+ export * from './components';
3
+ export * from './icons';
package/dist/index.esm.js CHANGED
@@ -1,3 +1,3 @@
1
- var version = '1.0.0';
2
-
3
- export { version };
1
+ export { z as ActivityIcon, _ as AddAlt, bV as AddCircleIcon, a5 as AddIcon, a0 as AddStudent, Z as Analytics, a6 as AnalyticsIcon, bl as ArchiveIcon, Y as ArrowDropDownIcon, aE as ArrowDropUpIcon, a7 as AssignTutor, A as AudioPlayer, bm as BackspaceRoundedIcon, bn as BackupIcon, k as Badge, a8 as Book, a9 as BookWithBookmark, h as Breadcrumb, aa as BusinessIcon, B as Button, bW as CancelIcon, ab as CaretDown, bX as Check, bY as CheckBoxIcon, ch as CheckBoxOutlineBlankIcon, bZ as CheckCircleIcon, b_ as CheckCircleOutlineOutlinedIcon, bo as CheckCircleOutlineRoundedIcon, e as Checkbox, ac as CheckedIcon, ad as Checkmark, ae as CheckmarkOutline, af as CheckmarkOutlineAction, ci as ChevronRightIcon, a3 as Circle, aF as CircleNotificationsIcon, ag as Close, ah as CloseIcon, ai as CloseOutline, aj as CloseOutlineAction, bp as ClosedCaptionIcon, bq as CloudDownloadIcon, ak as Coach, j as ColorPicker, p as ColumnNavigation, $ as Company, br as ContactSupportOutlinedIcon, C as CourseCard, c as CustomSwitcher, m as CustomTooltip, al as DarkAddAlt, am as DarkAiAssistent, an as DarkCloseOutline, ao as DarkTrashCan, cg as DashboardIcon, d as DatePicker, ap as DefaultAvatar, aq as Delete, bF as DeleteForeverRoundedIcon, ba as DeleteIcon, cj as DeleteIconRounded, ar as DocumentAttachment, at as Download, as as DownloadIcon, b$ as DragIndicatorIcon, x as DrawerTips, D as DropDown, au as Edit, c0 as EditIcon, av as EditRounded, aw as EditUsers, ax as Education, ay as EducationDefault, az as EmailIcon, c1 as ErrorOutlineIcon, bs as ErrorOutlineRoundedIcon, aA as EventIcon, c2 as ExpandMoreIcon, bG as FeaturedPlayListIcon, bH as FiberManualRecordIcon, bt as FileCopyIcon, cf as FileUploadOutlinedIcon, aH as FilterIcon, c3 as GetAppIcon, aI as GrayDownload, aO as GrayPlayIcon, G as GridActionMenu, aP as GridView, aQ as Group, aR as GroupDefault, bI as GroupOutlined, bJ as GroupsOutlined, bu as HeadsetIcon, H as HeartIcon, aS as Help, aK as HelpIcon, c4 as HighlightOffRoundedIcon, aT as HorizontalView, bK as HourglassEmptyIcon, bL as ImageIcon, aU as Information, c5 as InsertDriveFileIcon, aG as KeyboardBackspaceIcon, a1 as Learning, a4 as Library, L as Loader, aB as LocationCityIcon, aC as LocationOnIcon, bv as LockIcon, aV as Locked, aW as Logout, aD as MarkunreadMailboxIcon, F as MaximizeIcon, X as MeterIcon, M as MinimizeIcon, bM as MoreHorizIcon, aX as MoreVertRoundedIcon, aY as MyProfile, N as NavigationBar, aZ as NewFilter, a_ as Notification, bw as NotificationsOutlined, c6 as OndemandVideoIcon, f as Pagination, I as PauseIcon, bN as PermMediaIcon, aJ as Person, P as PhoneCountryCode, aL as PhoneIphoneIcon, n as PiPProvider, c7 as PictureInPictureIcon, a$ as PlayButton, bx as PlayCircleOutlineIcon, aN as PlayGrayButton, K as PlayIcon, bO as PlaylistAddIcon, by as PlaylistPlayIcon, b0 as PresentationScreen, b1 as Profile, aM as PublicIcon, c8 as PublishIcon, R as RadioButton, y as RangeSlider, bP as RecordVoiceOverOutlined, b2 as RedDeleteIcon, b3 as RemoveAlt, b4 as RemoveAltDisable, c9 as RemoveCircleIcon, b5 as RemoveFilter, ca as ReportProblemIcon, b6 as Reset, O as RewindIcon, ck as SchoolIcon, bz as SchoolOutlinedIcon, b7 as Search, S as SearchInput, b8 as SearchRounded, bQ as Send, b9 as SendAlt, cb as SettingsApplicationsIcon, bA as SettingsOutlinedIcon, Q as SkipIcon, o as SplashScreen, cc as StarsRoundedIcon, q as StatusIndicator, W as SubtitlesIcon, bc as SwitchCompany, t as TabNavigation, s as TabPanel, b as ThemeProvider, i as Tile, bB as Timeline, l as TooltipHeight, T as TranslationProvider, bd as TrashCan, be as TrashCanAction, bf as TrashCanRed, bC as TrendingUpOutlinedIcon, bg as UnfillPlay, bh as Unlock, bb as Unlocked, U as Uploader, bi as UserActivity, bj as UserSpeaker, a2 as UsersIcon, cd as VideoCallIcon, E as VideoCheckmarkIcon, V as VideoPlayer, bR as ViewCompactIcon, bS as ViewListIcon, bD as Visibility, bE as VisibilityOff, J as VolumeMuteIcon, ce as VolumeUpIcon, bk as WhiteAiAssistant, bT as WorkOutlineOutlinedIcon, bU as ZoomInIcon, w as activeTabClassName, u as usePiP, v as version } from './index-Bp-idbg5.esm.js';
2
+ import 'react';
3
+ import 'react-dom';
package/dist/index.js CHANGED
@@ -1,2 +1,5 @@
1
1
  export var version = '1.0.0';
2
+ // Re-export all components
3
+ export * from './components';
4
+ export * from './icons';
2
5
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,OAAO,GAAG,OAAO,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,OAAO,GAAG,OAAO,CAAA;AAE9B,2BAA2B;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,SAAS,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "suada-components",
3
3
  "private": false,
4
- "version": "1.9.0",
4
+ "version": "1.9.1",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.esm.js",
@@ -1,60 +0,0 @@
1
- /**
2
- * Global Picture-in-Picture Manager
3
- * This module manages PiP state across component unmounts and route changes
4
- */
5
- interface PiPVideoState {
6
- url: string;
7
- currentTime: number;
8
- isPlaying: boolean;
9
- volume: number;
10
- playbackRate: number;
11
- }
12
- declare class PictureInPictureManager {
13
- private videoElement;
14
- private pipContainer;
15
- private currentVideoState;
16
- private onStateChange;
17
- constructor();
18
- /**
19
- * Register a video element for PiP management
20
- */
21
- registerVideo(videoElement: HTMLVideoElement, url: string, onStateChange?: (state: PiPVideoState) => void): void;
22
- /**
23
- * Unregister the current video element
24
- */
25
- unregisterVideo(): void;
26
- /**
27
- * Create a persistent video element for PiP
28
- */
29
- private createPersistentVideo;
30
- /**
31
- * Enter picture-in-picture mode with persistence
32
- */
33
- enterPiP(): Promise<void>;
34
- /**
35
- * Exit picture-in-picture mode
36
- */
37
- exitPiP(): Promise<void>;
38
- /**
39
- * Check if currently in PiP mode
40
- */
41
- isPiPActive(): boolean;
42
- /**
43
- * Get current video state
44
- */
45
- getCurrentState(): PiPVideoState | null;
46
- /**
47
- * Restore video state to a new video element
48
- */
49
- restoreStateToVideo(videoElement: HTMLVideoElement): void;
50
- private handleTimeUpdate;
51
- private handlePlayStateChange;
52
- private handleVolumeChange;
53
- private handleRateChange;
54
- private handlePiPEnter;
55
- private handlePiPExit;
56
- private notifyStateChange;
57
- private cleanup;
58
- }
59
- export declare const pipManager: PictureInPictureManager;
60
- export {};
@@ -1,272 +0,0 @@
1
- /**
2
- * Global Picture-in-Picture Manager
3
- * This module manages PiP state across component unmounts and route changes
4
- */
5
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
6
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
7
- return new (P || (P = Promise))(function (resolve, reject) {
8
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
9
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
10
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
11
- step((generator = generator.apply(thisArg, _arguments || [])).next());
12
- });
13
- };
14
- var __generator = (this && this.__generator) || function (thisArg, body) {
15
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
16
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
17
- function verb(n) { return function (v) { return step([n, v]); }; }
18
- function step(op) {
19
- if (f) throw new TypeError("Generator is already executing.");
20
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
21
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
22
- if (y = 0, t) op = [op[0] & 2, t.value];
23
- switch (op[0]) {
24
- case 0: case 1: t = op; break;
25
- case 4: _.label++; return { value: op[1], done: false };
26
- case 5: _.label++; y = op[1]; op = [0]; continue;
27
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
28
- default:
29
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
30
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
31
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
32
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
33
- if (t[2]) _.ops.pop();
34
- _.trys.pop(); continue;
35
- }
36
- op = body.call(thisArg, _);
37
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
38
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
39
- }
40
- };
41
- var PictureInPictureManager = /** @class */ (function () {
42
- function PictureInPictureManager() {
43
- this.videoElement = null;
44
- this.pipContainer = null;
45
- this.currentVideoState = null;
46
- this.onStateChange = null;
47
- // Listen for PiP events globally
48
- document.addEventListener('leavepictureinpicture', this.handlePiPExit.bind(this));
49
- document.addEventListener('enterpictureinpicture', this.handlePiPEnter.bind(this));
50
- }
51
- /**
52
- * Register a video element for PiP management
53
- */
54
- PictureInPictureManager.prototype.registerVideo = function (videoElement, url, onStateChange) {
55
- this.videoElement = videoElement;
56
- this.onStateChange = onStateChange || null;
57
- // Store current video state
58
- this.currentVideoState = {
59
- url: url,
60
- currentTime: videoElement.currentTime,
61
- isPlaying: !videoElement.paused,
62
- volume: videoElement.volume,
63
- playbackRate: videoElement.playbackRate
64
- };
65
- // Add listeners to track state changes
66
- videoElement.addEventListener('timeupdate', this.handleTimeUpdate.bind(this));
67
- videoElement.addEventListener('play', this.handlePlayStateChange.bind(this));
68
- videoElement.addEventListener('pause', this.handlePlayStateChange.bind(this));
69
- videoElement.addEventListener('volumechange', this.handleVolumeChange.bind(this));
70
- videoElement.addEventListener('ratechange', this.handleRateChange.bind(this));
71
- };
72
- /**
73
- * Unregister the current video element
74
- */
75
- PictureInPictureManager.prototype.unregisterVideo = function () {
76
- if (this.videoElement) {
77
- this.videoElement.removeEventListener('timeupdate', this.handleTimeUpdate.bind(this));
78
- this.videoElement.removeEventListener('play', this.handlePlayStateChange.bind(this));
79
- this.videoElement.removeEventListener('pause', this.handlePlayStateChange.bind(this));
80
- this.videoElement.removeEventListener('volumechange', this.handleVolumeChange.bind(this));
81
- this.videoElement.removeEventListener('ratechange', this.handleRateChange.bind(this));
82
- }
83
- this.videoElement = null;
84
- this.onStateChange = null;
85
- };
86
- /**
87
- * Create a persistent video element for PiP
88
- */
89
- PictureInPictureManager.prototype.createPersistentVideo = function (originalVideo) {
90
- var persistentVideo = originalVideo.cloneNode(true);
91
- // Copy all relevant properties
92
- persistentVideo.src = originalVideo.src;
93
- persistentVideo.currentTime = originalVideo.currentTime;
94
- persistentVideo.volume = originalVideo.volume;
95
- persistentVideo.playbackRate = originalVideo.playbackRate;
96
- persistentVideo.muted = originalVideo.muted;
97
- // Set properties for PiP
98
- persistentVideo.style.position = 'fixed';
99
- persistentVideo.style.top = '-9999px';
100
- persistentVideo.style.left = '-9999px';
101
- persistentVideo.style.width = '1px';
102
- persistentVideo.style.height = '1px';
103
- persistentVideo.style.opacity = '0';
104
- persistentVideo.style.pointerEvents = 'none';
105
- return persistentVideo;
106
- };
107
- /**
108
- * Enter picture-in-picture mode with persistence
109
- */
110
- PictureInPictureManager.prototype.enterPiP = function () {
111
- return __awaiter(this, void 0, void 0, function () {
112
- var persistentVideo_1, error_1;
113
- return __generator(this, function (_a) {
114
- switch (_a.label) {
115
- case 0:
116
- if (!this.videoElement || !document.pictureInPictureEnabled) {
117
- return [2 /*return*/];
118
- }
119
- _a.label = 1;
120
- case 1:
121
- _a.trys.push([1, 6, , 7]);
122
- if (!document.pictureInPictureElement) return [3 /*break*/, 3];
123
- return [4 /*yield*/, document.exitPictureInPicture()];
124
- case 2:
125
- _a.sent();
126
- _a.label = 3;
127
- case 3:
128
- // Create a container if it doesn't exist
129
- if (!this.pipContainer) {
130
- this.pipContainer = document.createElement('div');
131
- this.pipContainer.id = 'suada-pip-container';
132
- this.pipContainer.style.position = 'fixed';
133
- this.pipContainer.style.top = '-9999px';
134
- this.pipContainer.style.left = '-9999px';
135
- this.pipContainer.style.width = '1px';
136
- this.pipContainer.style.height = '1px';
137
- this.pipContainer.style.zIndex = '-1';
138
- document.body.appendChild(this.pipContainer);
139
- }
140
- persistentVideo_1 = this.createPersistentVideo(this.videoElement);
141
- this.pipContainer.appendChild(persistentVideo_1);
142
- // Wait for video to load
143
- return [4 /*yield*/, new Promise(function (resolve) {
144
- if (persistentVideo_1.readyState >= 2) {
145
- resolve();
146
- }
147
- else {
148
- persistentVideo_1.addEventListener('loadedmetadata', function () { return resolve(); }, { once: true });
149
- }
150
- })
151
- // Enter PiP mode
152
- ];
153
- case 4:
154
- // Wait for video to load
155
- _a.sent();
156
- // Enter PiP mode
157
- return [4 /*yield*/, persistentVideo_1.requestPictureInPicture()
158
- // Update the reference to the persistent video
159
- ];
160
- case 5:
161
- // Enter PiP mode
162
- _a.sent();
163
- // Update the reference to the persistent video
164
- this.videoElement = persistentVideo_1;
165
- return [3 /*break*/, 7];
166
- case 6:
167
- error_1 = _a.sent();
168
- console.error('Failed to enter picture-in-picture:', error_1);
169
- return [3 /*break*/, 7];
170
- case 7: return [2 /*return*/];
171
- }
172
- });
173
- });
174
- };
175
- /**
176
- * Exit picture-in-picture mode
177
- */
178
- PictureInPictureManager.prototype.exitPiP = function () {
179
- return __awaiter(this, void 0, void 0, function () {
180
- var error_2;
181
- return __generator(this, function (_a) {
182
- switch (_a.label) {
183
- case 0:
184
- _a.trys.push([0, 3, , 4]);
185
- if (!document.pictureInPictureElement) return [3 /*break*/, 2];
186
- return [4 /*yield*/, document.exitPictureInPicture()];
187
- case 1:
188
- _a.sent();
189
- _a.label = 2;
190
- case 2: return [3 /*break*/, 4];
191
- case 3:
192
- error_2 = _a.sent();
193
- console.error('Failed to exit picture-in-picture:', error_2);
194
- return [3 /*break*/, 4];
195
- case 4: return [2 /*return*/];
196
- }
197
- });
198
- });
199
- };
200
- /**
201
- * Check if currently in PiP mode
202
- */
203
- PictureInPictureManager.prototype.isPiPActive = function () {
204
- return !!document.pictureInPictureElement;
205
- };
206
- /**
207
- * Get current video state
208
- */
209
- PictureInPictureManager.prototype.getCurrentState = function () {
210
- return this.currentVideoState;
211
- };
212
- /**
213
- * Restore video state to a new video element
214
- */
215
- PictureInPictureManager.prototype.restoreStateToVideo = function (videoElement) {
216
- if (!this.currentVideoState)
217
- return;
218
- videoElement.currentTime = this.currentVideoState.currentTime;
219
- videoElement.volume = this.currentVideoState.volume;
220
- videoElement.playbackRate = this.currentVideoState.playbackRate;
221
- if (this.currentVideoState.isPlaying) {
222
- videoElement.play().catch(console.error);
223
- }
224
- };
225
- PictureInPictureManager.prototype.handleTimeUpdate = function () {
226
- if (this.videoElement && this.currentVideoState) {
227
- this.currentVideoState.currentTime = this.videoElement.currentTime;
228
- this.notifyStateChange();
229
- }
230
- };
231
- PictureInPictureManager.prototype.handlePlayStateChange = function () {
232
- if (this.videoElement && this.currentVideoState) {
233
- this.currentVideoState.isPlaying = !this.videoElement.paused;
234
- this.notifyStateChange();
235
- }
236
- };
237
- PictureInPictureManager.prototype.handleVolumeChange = function () {
238
- if (this.videoElement && this.currentVideoState) {
239
- this.currentVideoState.volume = this.videoElement.volume;
240
- this.notifyStateChange();
241
- }
242
- };
243
- PictureInPictureManager.prototype.handleRateChange = function () {
244
- if (this.videoElement && this.currentVideoState) {
245
- this.currentVideoState.playbackRate = this.videoElement.playbackRate;
246
- this.notifyStateChange();
247
- }
248
- };
249
- PictureInPictureManager.prototype.handlePiPEnter = function () {
250
- console.log('Entered picture-in-picture mode');
251
- };
252
- PictureInPictureManager.prototype.handlePiPExit = function () {
253
- console.log('Exited picture-in-picture mode');
254
- this.cleanup();
255
- };
256
- PictureInPictureManager.prototype.notifyStateChange = function () {
257
- if (this.onStateChange && this.currentVideoState) {
258
- this.onStateChange(this.currentVideoState);
259
- }
260
- };
261
- PictureInPictureManager.prototype.cleanup = function () {
262
- // Clean up the persistent container
263
- if (this.pipContainer && this.pipContainer.parentNode) {
264
- this.pipContainer.parentNode.removeChild(this.pipContainer);
265
- this.pipContainer = null;
266
- }
267
- };
268
- return PictureInPictureManager;
269
- }());
270
- // Create a singleton instance
271
- export var pipManager = new PictureInPictureManager();
272
- //# sourceMappingURL=pipManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pipManager.js","sourceRoot":"","sources":["../../../src/components/VideoPlayer/pipManager.ts"],"names":[],"mappings":"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"}
@@ -1,60 +0,0 @@
1
- /**
2
- * Global Picture-in-Picture Manager
3
- * This module manages PiP state across component unmounts and route changes
4
- */
5
- interface PiPVideoState {
6
- url: string;
7
- currentTime: number;
8
- isPlaying: boolean;
9
- volume: number;
10
- playbackRate: number;
11
- }
12
- declare class PictureInPictureManager {
13
- private videoElement;
14
- private pipContainer;
15
- private currentVideoState;
16
- private onStateChange;
17
- constructor();
18
- /**
19
- * Register a video element for PiP management
20
- */
21
- registerVideo(videoElement: HTMLVideoElement, url: string, onStateChange?: (state: PiPVideoState) => void): void;
22
- /**
23
- * Unregister the current video element
24
- */
25
- unregisterVideo(): void;
26
- /**
27
- * Create a persistent video element for PiP
28
- */
29
- private createPersistentVideo;
30
- /**
31
- * Enter picture-in-picture mode with persistence
32
- */
33
- enterPiP(): Promise<void>;
34
- /**
35
- * Exit picture-in-picture mode
36
- */
37
- exitPiP(): Promise<void>;
38
- /**
39
- * Check if currently in PiP mode
40
- */
41
- isPiPActive(): boolean;
42
- /**
43
- * Get current video state
44
- */
45
- getCurrentState(): PiPVideoState | null;
46
- /**
47
- * Restore video state to a new video element
48
- */
49
- restoreStateToVideo(videoElement: HTMLVideoElement): void;
50
- private handleTimeUpdate;
51
- private handlePlayStateChange;
52
- private handleVolumeChange;
53
- private handleRateChange;
54
- private handlePiPEnter;
55
- private handlePiPExit;
56
- private notifyStateChange;
57
- private cleanup;
58
- }
59
- export declare const pipManager: PictureInPictureManager;
60
- export {};
@@ -1,60 +0,0 @@
1
- /**
2
- * Global Picture-in-Picture Manager
3
- * This module manages PiP state across component unmounts and route changes
4
- */
5
- interface PiPVideoState {
6
- url: string;
7
- currentTime: number;
8
- isPlaying: boolean;
9
- volume: number;
10
- playbackRate: number;
11
- }
12
- declare class PictureInPictureManager {
13
- private videoElement;
14
- private pipContainer;
15
- private currentVideoState;
16
- private onStateChange;
17
- constructor();
18
- /**
19
- * Register a video element for PiP management
20
- */
21
- registerVideo(videoElement: HTMLVideoElement, url: string, onStateChange?: (state: PiPVideoState) => void): void;
22
- /**
23
- * Unregister the current video element
24
- */
25
- unregisterVideo(): void;
26
- /**
27
- * Create a persistent video element for PiP
28
- */
29
- private createPersistentVideo;
30
- /**
31
- * Enter picture-in-picture mode with persistence
32
- */
33
- enterPiP(): Promise<void>;
34
- /**
35
- * Exit picture-in-picture mode
36
- */
37
- exitPiP(): Promise<void>;
38
- /**
39
- * Check if currently in PiP mode
40
- */
41
- isPiPActive(): boolean;
42
- /**
43
- * Get current video state
44
- */
45
- getCurrentState(): PiPVideoState | null;
46
- /**
47
- * Restore video state to a new video element
48
- */
49
- restoreStateToVideo(videoElement: HTMLVideoElement): void;
50
- private handleTimeUpdate;
51
- private handlePlayStateChange;
52
- private handleVolumeChange;
53
- private handleRateChange;
54
- private handlePiPEnter;
55
- private handlePiPExit;
56
- private notifyStateChange;
57
- private cleanup;
58
- }
59
- export declare const pipManager: PictureInPictureManager;
60
- export {};