-
Notifications
You must be signed in to change notification settings - Fork 79
/
video-player.story.js
111 lines (108 loc) · 3.18 KB
/
video-player.story.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
import { VideoPlayer } from "./video-player.js";
import { A11yMediaPlayer } from "@lrnwebcomponents/a11y-media-player/a11y-media-player.js";
import { A11yMediaBehaviors } from "@lrnwebcomponents/a11y-media-player/lib/a11y-media-behaviors.js";
import * as enVtt from "./demo/samples/sintel-en.vtt";
import * as deVtt from "./demo/samples/sintel-de.vtt";
import * as esVtt from "./demo/samples/sintel-es.vtt";
import * as buellerVtt from "./demo/samples/bueller.vtt";
import * as buellerMp3 from "./demo/samples/bueller.mp3";
import * as stclairVtt from "./demo/samples/stclair.vtt";
import stclairJpg from "./demo/samples/stclair.jpg";
import { StorybookUtilities } from "@lrnwebcomponents/storybook-utilities/storybook-utilities.js";
window.StorybookUtilities.requestAvailability();
/**
* add the live demo, only since the pattern itself is in a11y-media-player
*/
//combine all of the inherited properties into one object
let getVideoKnobs = () => {
let allKnobs = Object.assign(
window.StorybookUtilities.instance.getSimpleColorsPolymer(),
A11yMediaPlayer.properties,
A11yMediaBehaviors.properties
);
allKnobs.crossorigin = {
value: "anonymous",
type: "Select",
options: ["anonymous", "use-credentials", ""]
};
//remove properties we don't want to expose
[
"audioOnly",
"flexLayout",
"manifest",
"media",
"muteUnmute",
"playing",
"playPause",
"responsiveSize",
"seekDisabled",
"selectedTrack",
"selectedTrackID",
"status",
"target",
"search",
"youtubeId",
"youTube"
].forEach(prop => {
delete allKnobs[prop];
});
return allKnobs;
},
audioKnobs = getVideoKnobs(),
videoKnobs = getVideoKnobs(),
ytKnobs = getVideoKnobs();
videoKnobs.sources.value = [
{
src:
"https://iandevlin.github.io/mdn/video-player-with-captions/video/sintel-short.mp4",
type: "video/mp4"
}
];
videoKnobs.tracks.value = [
{ src: enVtt, srclang: "en", label: "English" },
{ src: esVtt, srclang: "es", label: "Español" },
{ src: deVtt, srclang: "de", label: "Deutsch" }
];
videoKnobs.source = { name: "source", value: null, type: "String" };
audioKnobs.sources.value = [
{
src: buellerMp3,
type: "audio/mp3"
}
];
audioKnobs.tracks.value = [
{ src: buellerVtt, srclang: "en", label: "English" }
];
ytKnobs.tracks.value = [{ src: buellerVtt, srclang: "en", label: "English" }];
ytKnobs.source = {
name: "source",
value: "https://www.youtube.com/watch?v=NP0mQeLWCCo",
type: "String"
};
const VideoPlayerStory = {
of: "Web Components/video-player",
name: "Video",
props: videoKnobs,
slots: {},
attr: ``,
slotted: ``
};
const VideoPlayerAudioStory = {
of: "Web Components/video-player",
name: "Audio",
props: audioKnobs,
slots: {},
attr: ` audio-only="audio-only"`,
slotted: ``
};
const VideoPlayerYTStory = {
of: "Web Components/video-player",
name: "YouTube",
props: ytKnobs,
slots: {},
attr: ``,
slotted: ``
};
window.StorybookUtilities.instance.addLiveDemo(VideoPlayerStory);
window.StorybookUtilities.instance.addLiveDemo(VideoPlayerAudioStory);
window.StorybookUtilities.instance.addLiveDemo(VideoPlayerYTStory);