@hopecloud/jetstream-player 0.1.0 → 0.1.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/{src/index.ts → dist/index.d.ts} +1 -1
- package/dist/index.js +2 -0
- package/dist/useEmbedPlayerEvents.d.ts +1 -0
- package/{src/useEmbedPlayerEvents.ts → dist/useEmbedPlayerEvents.js} +10 -22
- package/dist/useEmbedPlayerMethods.d.ts +9 -0
- package/{src/useEmbedPlayerMethods.ts → dist/useEmbedPlayerMethods.js} +13 -32
- package/package.json +1 -1
- package/.idea/hcc-jetstream-player.iml +0 -9
- package/.idea/misc.xml +0 -6
- package/.idea/modules.xml +0 -8
- package/.idea/vcs.xml +0 -6
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export * from './useEmbedPlayerMethods';
|
|
2
|
-
export * from './useEmbedPlayerEvents';
|
|
2
|
+
export * from './useEmbedPlayerEvents';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const setEmbedPlayerEvents: (player: any, link: string) => void;
|
|
@@ -1,33 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
interface VideoMessage {
|
|
4
|
-
msg: string;
|
|
5
|
-
src: string;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
const videoMethods: { [key: string]: string } = {
|
|
1
|
+
const videoMethods = {
|
|
9
2
|
play: 'play',
|
|
10
3
|
pause: 'pause',
|
|
11
4
|
};
|
|
12
|
-
|
|
13
|
-
let playerInstance: any;
|
|
5
|
+
let playerInstance;
|
|
14
6
|
let linkHref = '';
|
|
15
|
-
|
|
16
|
-
export const setEmbedPlayerEvents = (player: any, link: string): void => {
|
|
7
|
+
export const setEmbedPlayerEvents = (player, link) => {
|
|
17
8
|
playerInstance = player;
|
|
18
9
|
linkHref = link;
|
|
19
|
-
|
|
20
10
|
playerInstance?.videoJsPlayer?.on('ended', () => {
|
|
21
|
-
const message
|
|
11
|
+
const message = {
|
|
22
12
|
msg: 'onEnded',
|
|
23
13
|
src: linkHref,
|
|
24
14
|
};
|
|
25
15
|
window.parent.postMessage(message, '*');
|
|
26
16
|
});
|
|
27
|
-
|
|
28
17
|
for (const event of ['pause', 'play']) {
|
|
29
18
|
playerInstance?.videoJsPlayer?.on(event, () => {
|
|
30
|
-
const message
|
|
19
|
+
const message = {
|
|
31
20
|
msg: `${event}Video`,
|
|
32
21
|
src: linkHref,
|
|
33
22
|
};
|
|
@@ -35,13 +24,12 @@ export const setEmbedPlayerEvents = (player: any, link: string): void => {
|
|
|
35
24
|
});
|
|
36
25
|
}
|
|
37
26
|
};
|
|
38
|
-
|
|
39
|
-
window.addEventListener('message', ({ data }: MessageEvent<VideoMethod>) => {
|
|
27
|
+
window.addEventListener('message', ({ data }) => {
|
|
40
28
|
const method = videoMethods[data];
|
|
41
|
-
|
|
42
29
|
if (method) {
|
|
43
|
-
|
|
44
|
-
}
|
|
30
|
+
playerInstance?.videoJsPlayer?.[method]();
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
45
33
|
console.warn(`Non-available video method: ${data}`);
|
|
46
34
|
}
|
|
47
|
-
});
|
|
35
|
+
});
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const embedPlayer: {
|
|
2
|
+
play: (index: number) => void;
|
|
3
|
+
pause: (index: number) => void;
|
|
4
|
+
};
|
|
5
|
+
type CallbackType = (index: number) => void;
|
|
6
|
+
export declare const onEnded: (callback: CallbackType) => void;
|
|
7
|
+
export declare const playVideo: (callback: CallbackType) => void;
|
|
8
|
+
export declare const pauseVideo: (callback: CallbackType) => void;
|
|
9
|
+
export {};
|
|
@@ -1,23 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
embedVideosSrc: string[];
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
interface IFrameMessage {
|
|
8
|
-
msg: string;
|
|
9
|
-
src: string;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
let iframesWithEmbedVideo: HTMLIFrameElement[] = [];
|
|
13
|
-
let allIframes: HTMLIFrameElement[] = [];
|
|
14
|
-
let embedVideosSrc: string[] = [];
|
|
15
|
-
|
|
1
|
+
let iframesWithEmbedVideo = [];
|
|
2
|
+
let allIframes = [];
|
|
3
|
+
let embedVideosSrc = [];
|
|
16
4
|
document.addEventListener('DOMContentLoaded', () => {
|
|
17
|
-
({ iframesWithEmbedVideo, allIframes, embedVideosSrc } = Array.from(document.querySelectorAll('iframe')).reduce
|
|
5
|
+
({ iframesWithEmbedVideo, allIframes, embedVideosSrc } = Array.from(document.querySelectorAll('iframe')).reduce((acc, iframe) => {
|
|
18
6
|
const { src } = iframe;
|
|
19
7
|
const iframeOrigin = new URL(src).origin;
|
|
20
|
-
|
|
21
8
|
// Check if iframe has embed player origin
|
|
22
9
|
if (iframeOrigin.includes('jstre')) {
|
|
23
10
|
acc.iframesWithEmbedVideo.push(iframe);
|
|
@@ -27,36 +14,30 @@ document.addEventListener('DOMContentLoaded', () => {
|
|
|
27
14
|
return acc;
|
|
28
15
|
}, { iframesWithEmbedVideo: [], allIframes: [], embedVideosSrc: [] }));
|
|
29
16
|
});
|
|
30
|
-
|
|
31
17
|
export const embedPlayer = new Proxy({
|
|
32
|
-
play: (index
|
|
33
|
-
pause: (index
|
|
18
|
+
play: (index) => { },
|
|
19
|
+
pause: (index) => { }
|
|
34
20
|
}, {
|
|
35
21
|
get(target, prop) {
|
|
36
|
-
return (index
|
|
22
|
+
return (index) => {
|
|
37
23
|
const method = prop.toString();
|
|
38
24
|
iframesWithEmbedVideo[index].contentWindow?.postMessage(method, '*');
|
|
39
25
|
};
|
|
40
26
|
}
|
|
41
27
|
});
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
const callbacks: { [key: string]: CallbackType } = {};
|
|
46
|
-
|
|
47
|
-
export const onEnded = (callback: CallbackType) => {
|
|
28
|
+
const callbacks = {};
|
|
29
|
+
export const onEnded = (callback) => {
|
|
48
30
|
callbacks.onEnded = callback;
|
|
49
31
|
};
|
|
50
|
-
export const playVideo = (callback
|
|
32
|
+
export const playVideo = (callback) => {
|
|
51
33
|
callbacks.playVideo = callback;
|
|
52
34
|
};
|
|
53
|
-
export const pauseVideo = (callback
|
|
35
|
+
export const pauseVideo = (callback) => {
|
|
54
36
|
callbacks.pauseVideo = callback;
|
|
55
37
|
};
|
|
56
|
-
|
|
57
|
-
window.addEventListener('message', (event: MessageEvent<IFrameMessage>) => {
|
|
38
|
+
window.addEventListener('message', (event) => {
|
|
58
39
|
const index = embedVideosSrc.findIndex((e) => e === event.data.src);
|
|
59
40
|
if (event.data.msg in callbacks) {
|
|
60
41
|
callbacks[event.data.msg](index);
|
|
61
42
|
}
|
|
62
|
-
});
|
|
43
|
+
});
|
package/package.json
CHANGED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<module type="JAVA_MODULE" version="4">
|
|
3
|
-
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
|
4
|
-
<exclude-output />
|
|
5
|
-
<content url="file://$MODULE_DIR$" />
|
|
6
|
-
<orderEntry type="inheritedJdk" />
|
|
7
|
-
<orderEntry type="sourceFolder" forTests="false" />
|
|
8
|
-
</component>
|
|
9
|
-
</module>
|
package/.idea/misc.xml
DELETED
package/.idea/modules.xml
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<project version="4">
|
|
3
|
-
<component name="ProjectModuleManager">
|
|
4
|
-
<modules>
|
|
5
|
-
<module fileurl="file://$PROJECT_DIR$/.idea/hcc-jetstream-player.iml" filepath="$PROJECT_DIR$/.idea/hcc-jetstream-player.iml" />
|
|
6
|
-
</modules>
|
|
7
|
-
</component>
|
|
8
|
-
</project>
|