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.
- package/dist/{components/DailyMotion-B7yDPBbg.js → DailyMotion-B-Q4fBEb.js} +1 -1
- package/dist/{components/DailyMotion-BmnymjR1.esm.js → DailyMotion-BAvo3Toe.esm.js} +1 -1
- package/dist/{components/Facebook-D9Ak6ZJU.esm.js → Facebook-C8GOujDt.esm.js} +1 -1
- package/dist/{components/Facebook-42iqQU2G.js → Facebook-CASik-P5.js} +1 -1
- package/dist/{components/FilePlayer-wg9lyafD.esm.js → FilePlayer-BOZIvaDy.esm.js} +1 -1
- package/dist/{components/FilePlayer-CAnHK0Cd.js → FilePlayer-CQ80KWY2.js} +1 -1
- package/dist/{components/Kaltura-DPaEN-dq.esm.js → Kaltura-B12Xdl6X.esm.js} +1 -1
- package/dist/{components/Kaltura-Ct6kwbgP.js → Kaltura-nYc5k7UB.js} +1 -1
- package/dist/{components/Mixcloud-sBbcL5rG.js → Mixcloud-DGQnlDAK.js} +1 -1
- package/dist/{components/Mixcloud-BobSN3YI.esm.js → Mixcloud-JfeQIOki.esm.js} +1 -1
- package/dist/{components/Mux-B9YP-rFr.esm.js → Mux-BHWzpAR-.esm.js} +1 -1
- package/dist/{components/Mux-Cosy8sFO.js → Mux-CiKZc8gj.js} +1 -1
- package/dist/{components/Preview-XcTlhHT1.esm.js → Preview-DSovY9gr.esm.js} +1 -1
- package/dist/{components/Preview-DiVfo6aa.js → Preview-DvZKrgm5.js} +1 -1
- package/dist/{components/SoundCloud-CIWqB-QW.js → SoundCloud-Di7z3nmP.js} +1 -1
- package/dist/{components/SoundCloud-BTHoyFWT.esm.js → SoundCloud-j_R0lK8D.esm.js} +1 -1
- package/dist/{components/Streamable-DsfQCy3p.esm.js → Streamable-CRhXZIKP.esm.js} +1 -1
- package/dist/{components/Streamable-9anYiQtU.js → Streamable-CV1mgzRv.js} +1 -1
- package/dist/{components/Twitch-D1BOr8hj.esm.js → Twitch-6icfp-ZE.esm.js} +1 -1
- package/dist/{components/Twitch-Dud6e1Rv.js → Twitch-Dj66vkCD.js} +1 -1
- package/dist/{components/Vidyard-C1csjpQH.esm.js → Vidyard--KX47pZ0.esm.js} +1 -1
- package/dist/{components/Vidyard-BuOu85uS.js → Vidyard-B-qmApe9.js} +1 -1
- package/dist/{components/Vimeo-CHlHIswX.esm.js → Vimeo-Ba9C6utC.esm.js} +1 -1
- package/dist/{components/Vimeo-DrDJ5O9H.js → Vimeo-DePzl7Sn.js} +1 -1
- package/dist/{components/Wistia-fh9U2CA2.js → Wistia-CXYB3Yus.js} +1 -1
- package/dist/{components/Wistia-D-eYyONb.esm.js → Wistia-DWJcdcY2.esm.js} +1 -1
- package/dist/{components/YouTube-CmnnzZvk.esm.js → YouTube-DdBVPxzz.esm.js} +1 -1
- package/dist/{components/YouTube-DC2uZ14c.js → YouTube-vwMoW93C.js} +1 -1
- package/dist/components/CourseCard/CourseCard.styles.d.ts +1 -1
- package/dist/components/DailyMotion-Cr_8IZRR.js +180 -0
- package/dist/components/DailyMotion-D2n1NDDi.esm.js +178 -0
- package/dist/components/Facebook-CDrTA2_L.esm.js +179 -0
- package/dist/components/Facebook-YxZce26V.js +181 -0
- package/dist/components/FilePlayer-BzkVMbQ8.esm.js +408 -0
- package/dist/components/FilePlayer-DqqTufgX.js +410 -0
- package/dist/components/Kaltura-B0UZLr6g.esm.js +176 -0
- package/dist/components/Kaltura-krSxvIBr.js +178 -0
- package/dist/components/Mixcloud-BCT5e47d.js +166 -0
- package/dist/components/Mixcloud-D9qk3D6i.esm.js +164 -0
- package/dist/components/Mux-BZleoaJh.esm.js +264 -0
- package/dist/components/Mux-D_si09u2.js +266 -0
- package/dist/components/Preview-CmduMeEZ.js +175 -0
- package/dist/components/Preview-DQLbQ8_C.esm.js +173 -0
- package/dist/components/SoundCloud-BHgTfaW7.js +183 -0
- package/dist/components/SoundCloud-BgnX8kOF.esm.js +181 -0
- package/dist/components/Streamable-DTAzjVwd.js +176 -0
- package/dist/components/Streamable-DbRbUflP.esm.js +174 -0
- package/dist/components/Twitch-CXOhay4a.esm.js +168 -0
- package/dist/components/Twitch-CnEk-l9R.js +170 -0
- package/dist/components/VideoPlayer/PiPContext.d.ts +8 -0
- package/dist/components/VideoPlayer/PiPContext.js +149 -0
- package/dist/components/VideoPlayer/PiPContext.js.map +1 -0
- package/dist/components/VideoPlayer/PiPContext.types.d.ts +16 -0
- package/dist/components/VideoPlayer/PiPContext.types.js +2 -0
- package/dist/components/VideoPlayer/PiPContext.types.js.map +1 -0
- package/dist/components/VideoPlayer/usePiP.d.ts +2 -0
- package/dist/components/VideoPlayer/usePiP.js +10 -0
- package/dist/components/VideoPlayer/usePiP.js.map +1 -0
- package/dist/components/VideoPlayer/usePlayerControls.js +12 -40
- package/dist/components/VideoPlayer/usePlayerControls.js.map +1 -1
- package/dist/components/Vidyard-Cn_LcGwi.js +174 -0
- package/dist/components/Vidyard-YcZH6kkW.esm.js +172 -0
- package/dist/components/Vimeo-BUVxWt7t.js +215 -0
- package/dist/components/Vimeo-Cv0qx3aR.esm.js +213 -0
- package/dist/components/Wistia-COWrV8QC.js +190 -0
- package/dist/components/Wistia-PneZ48dn.esm.js +188 -0
- package/dist/components/YouTube-BUyvzJQw.esm.js +258 -0
- package/dist/components/YouTube-DeQdfkWm.js +260 -0
- package/dist/components/components/CourseCard/CourseCard.styles.d.ts +1 -1
- package/dist/components/components/VideoPlayer/PiPContext.d.ts +8 -0
- package/dist/components/components/VideoPlayer/PiPContext.types.d.ts +16 -0
- package/dist/components/components/VideoPlayer/usePiP.d.ts +2 -0
- package/dist/components/components/index.d.ts +2 -0
- package/dist/components/{index-DetZ05pw.js → index-Bs-XxxV4.js} +153 -304
- package/dist/components/{index-DKAGRUEW.esm.js → index-C4Mk2H3N.esm.js} +152 -305
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.esm.js +1 -1
- package/dist/components/index.js +2 -0
- package/dist/components/index.js.map +1 -1
- package/dist/icons/components/CourseCard/CourseCard.styles.d.ts +1 -1
- package/dist/icons/components/VideoPlayer/PiPContext.d.ts +8 -0
- package/dist/icons/components/VideoPlayer/PiPContext.types.d.ts +16 -0
- package/dist/icons/components/VideoPlayer/usePiP.d.ts +2 -0
- package/dist/icons/components/index.d.ts +2 -0
- package/dist/index-Bp-idbg5.esm.js +94907 -0
- package/dist/index-CSj9NYxJ.js +95129 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.esm.js +3 -3
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/components/VideoPlayer/pipManager.d.ts +0 -60
- package/dist/components/VideoPlayer/pipManager.js +0 -272
- package/dist/components/VideoPlayer/pipManager.js.map +0 -1
- package/dist/components/components/VideoPlayer/pipManager.d.ts +0 -60
- package/dist/icons/components/VideoPlayer/pipManager.d.ts +0 -60
package/dist/index.d.ts
CHANGED
package/dist/index.esm.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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
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,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 {};
|