@videojs/html 10.0.0-beta.1 → 10.0.0-beta.2
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/cdn/audio-minimal.css +1 -0
- package/cdn/audio-minimal.dev.js +5360 -0
- package/cdn/audio-minimal.dev.js.map +1 -0
- package/cdn/audio-minimal.js +25 -0
- package/cdn/audio-minimal.js.map +1 -0
- package/cdn/audio.css +1 -0
- package/cdn/audio.dev.js +5351 -0
- package/cdn/audio.dev.js.map +1 -0
- package/cdn/audio.js +25 -0
- package/cdn/audio.js.map +1 -0
- package/cdn/background.css +1 -0
- package/cdn/background.dev.js +2057 -0
- package/cdn/background.dev.js.map +1 -0
- package/cdn/background.js +19 -0
- package/cdn/background.js.map +1 -0
- package/cdn/media/hls-video.dev.js +28728 -0
- package/cdn/media/hls-video.dev.js.map +1 -0
- package/cdn/media/hls-video.js +83 -0
- package/cdn/media/hls-video.js.map +1 -0
- package/cdn/media/simple-hls-video.dev.js +3796 -0
- package/cdn/media/simple-hls-video.dev.js.map +1 -0
- package/cdn/media/simple-hls-video.js +44 -0
- package/cdn/media/simple-hls-video.js.map +1 -0
- package/cdn/video-minimal.css +1 -0
- package/cdn/video-minimal.dev.js +5714 -0
- package/cdn/video-minimal.dev.js.map +1 -0
- package/cdn/video-minimal.js +25 -0
- package/cdn/video-minimal.js.map +1 -0
- package/cdn/video.css +1 -0
- package/cdn/video.dev.js +5782 -0
- package/cdn/video.dev.js.map +1 -0
- package/cdn/video.js +25 -0
- package/cdn/video.js.map +1 -0
- package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/audio/skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/video/skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/video/skin.js.map +1 -1
- package/dist/default/define/audio/minimal-skin.js +1 -79
- package/dist/default/define/audio/minimal-skin.js.map +1 -1
- package/dist/default/define/audio/minimal-skin.tailwind.js +1 -81
- package/dist/default/define/audio/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/define/audio/skin.js +1 -70
- package/dist/default/define/audio/skin.js.map +1 -1
- package/dist/default/define/audio/skin.tailwind.js +1 -72
- package/dist/default/define/audio/skin.tailwind.js.map +1 -1
- package/dist/default/define/background/skin.js +1 -5
- package/dist/default/define/background/skin.js.map +1 -1
- package/dist/default/define/skin-mixin.js +1 -15
- package/dist/default/define/skin-mixin.js.map +1 -1
- package/dist/default/define/video/minimal-skin.js +1 -121
- package/dist/default/define/video/minimal-skin.js.map +1 -1
- package/dist/default/define/video/minimal-skin.tailwind.js +1 -131
- package/dist/default/define/video/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/define/video/skin.js +1 -116
- package/dist/default/define/video/skin.js.map +1 -1
- package/dist/default/define/video/skin.tailwind.js +1 -124
- package/dist/default/define/video/skin.tailwind.js.map +1 -1
- package/dist/default/media/background-video/index.js +1 -18
- package/dist/default/media/background-video/index.js.map +1 -1
- package/package.json +12 -10
|
@@ -23,78 +23,7 @@ import { cn } from "@videojs/utils/style";
|
|
|
23
23
|
//#region src/define/audio/skin.tailwind.ts
|
|
24
24
|
const SEEK_TIME = 10;
|
|
25
25
|
function getTemplateHTML() {
|
|
26
|
-
return
|
|
27
|
-
<media-container class="${root}">
|
|
28
|
-
<slot name="media"></slot>
|
|
29
|
-
|
|
30
|
-
<div class="${controls}">
|
|
31
|
-
<span class="${tooltipState.play.wrapper}">
|
|
32
|
-
<media-play-button commandfor="play-tooltip" class="${cn(button.base, button.icon, iconState.play.button)}">
|
|
33
|
-
${renderIcon("restart", { class: cn(icon, iconState.play.restart) })}
|
|
34
|
-
${renderIcon("play", { class: cn(icon, iconState.play.play) })}
|
|
35
|
-
${renderIcon("pause", { class: cn(icon, iconState.play.pause) })}
|
|
36
|
-
</media-play-button>
|
|
37
|
-
<media-tooltip id="play-tooltip" side="top" class="${cn(popup.tooltip)}">
|
|
38
|
-
<span class="${tooltipState.play.replay}">Replay</span>
|
|
39
|
-
<span class="${tooltipState.play.play}">Play</span>
|
|
40
|
-
<span class="${tooltipState.play.pause}">Pause</span>
|
|
41
|
-
</media-tooltip>
|
|
42
|
-
</span>
|
|
43
|
-
|
|
44
|
-
<media-seek-button commandfor="seek-backward-tooltip" seconds="${-SEEK_TIME}" class="${cn(button.base, button.icon, seek.button)}">
|
|
45
|
-
<span class="${iconContainer}">
|
|
46
|
-
${renderIcon("seek", { class: cn(icon, iconFlipped) })}
|
|
47
|
-
<span class="${cn(seek.label, seek.labelBackward)}">${SEEK_TIME}</span>
|
|
48
|
-
</span>
|
|
49
|
-
</media-seek-button>
|
|
50
|
-
<media-tooltip id="seek-backward-tooltip" side="top" class="${cn(popup.tooltip)}">
|
|
51
|
-
Seek backward ${SEEK_TIME} seconds
|
|
52
|
-
</media-tooltip>
|
|
53
|
-
|
|
54
|
-
<media-seek-button commandfor="seek-forward-tooltip" seconds="${SEEK_TIME}" class="${cn(button.base, button.icon, seek.button)}">
|
|
55
|
-
<span class="${iconContainer}">
|
|
56
|
-
${renderIcon("seek", { class: icon })}
|
|
57
|
-
<span class="${cn(seek.label, seek.labelForward)}">${SEEK_TIME}</span>
|
|
58
|
-
</span>
|
|
59
|
-
</media-seek-button>
|
|
60
|
-
<media-tooltip id="seek-forward-tooltip" side="top" class="${cn(popup.tooltip)}">
|
|
61
|
-
Seek forward ${SEEK_TIME} seconds
|
|
62
|
-
</media-tooltip>
|
|
63
|
-
|
|
64
|
-
<media-time-group class="${time.group}">
|
|
65
|
-
<media-time type="current" class="${time.current}"></media-time>
|
|
66
|
-
<media-time-slider class="${slider.root}">
|
|
67
|
-
<media-slider-track class="${slider.track}">
|
|
68
|
-
<media-slider-fill class="${cn(slider.fill.base, slider.fill.fill)}"></media-slider-fill>
|
|
69
|
-
<media-slider-buffer class="${cn(slider.fill.base, slider.fill.buffer)}"></media-slider-buffer>
|
|
70
|
-
</media-slider-track>
|
|
71
|
-
<media-slider-thumb class="${cn(slider.thumb.base, slider.thumb.interactive)}"></media-slider-thumb>
|
|
72
|
-
</media-time-slider>
|
|
73
|
-
<media-time type="duration" class="${time.duration}"></media-time>
|
|
74
|
-
</media-time-group>
|
|
75
|
-
|
|
76
|
-
<media-playback-rate-button commandfor="playback-rate-tooltip" class="${cn(button.base, button.icon, playbackRate.button)}"></media-playback-rate-button>
|
|
77
|
-
<media-tooltip id="playback-rate-tooltip" side="top" class="${cn(popup.tooltip)}">
|
|
78
|
-
Toggle playback rate
|
|
79
|
-
</media-tooltip>
|
|
80
|
-
|
|
81
|
-
<media-mute-button commandfor="audio-volume-popover" class="${cn(button.base, button.icon, iconState.mute.button)}">
|
|
82
|
-
${renderIcon("volume-off", { class: cn(icon, iconState.mute.volumeOff) })}
|
|
83
|
-
${renderIcon("volume-low", { class: cn(icon, iconState.mute.volumeLow) })}
|
|
84
|
-
${renderIcon("volume-high", { class: cn(icon, iconState.mute.volumeHigh) })}
|
|
85
|
-
</media-mute-button>
|
|
86
|
-
|
|
87
|
-
<media-popover id="audio-volume-popover" open-on-hover delay="200" close-delay="100" side="top" class="${cn(popup.popover, popup.volume)}">
|
|
88
|
-
<media-volume-slider class="${slider.root}" orientation="vertical" thumb-alignment="edge">
|
|
89
|
-
<media-slider-track class="${slider.track}">
|
|
90
|
-
<media-slider-fill class="${cn(slider.fill.base, slider.fill.fill)}"></media-slider-fill>
|
|
91
|
-
</media-slider-track>
|
|
92
|
-
<media-slider-thumb class="${cn(slider.thumb.base, slider.thumb.persistent)}"></media-slider-thumb>
|
|
93
|
-
</media-volume-slider>
|
|
94
|
-
</media-popover>
|
|
95
|
-
</div>
|
|
96
|
-
</media-container>
|
|
97
|
-
`;
|
|
26
|
+
return `<media-container class="${root}"><slot name="media"></slot><div class="${controls}"><span class="${tooltipState.play.wrapper}"><media-play-button commandfor="play-tooltip" class="${cn(button.base, button.icon, iconState.play.button)}"> ${renderIcon("restart", { class: cn(icon, iconState.play.restart) })} ${renderIcon("play", { class: cn(icon, iconState.play.play) })} ${renderIcon("pause", { class: cn(icon, iconState.play.pause) })} </media-play-button><media-tooltip id="play-tooltip" side="top" class="${cn(popup.tooltip)}"><span class="${tooltipState.play.replay}">Replay</span><span class="${tooltipState.play.play}">Play</span><span class="${tooltipState.play.pause}">Pause</span></media-tooltip></span><media-seek-button commandfor="seek-backward-tooltip" seconds="${-SEEK_TIME}" class="${cn(button.base, button.icon, seek.button)}"><span class="${iconContainer}"> ${renderIcon("seek", { class: cn(icon, iconFlipped) })} <span class="${cn(seek.label, seek.labelBackward)}">${SEEK_TIME}</span></span></media-seek-button><media-tooltip id="seek-backward-tooltip" side="top" class="${cn(popup.tooltip)}"> Seek backward ${SEEK_TIME} seconds </media-tooltip><media-seek-button commandfor="seek-forward-tooltip" seconds="${SEEK_TIME}" class="${cn(button.base, button.icon, seek.button)}"><span class="${iconContainer}"> ${renderIcon("seek", { class: icon })} <span class="${cn(seek.label, seek.labelForward)}">${SEEK_TIME}</span></span></media-seek-button><media-tooltip id="seek-forward-tooltip" side="top" class="${cn(popup.tooltip)}"> Seek forward ${SEEK_TIME} seconds </media-tooltip><media-time-group class="${time.group}"><media-time type="current" class="${time.current}"></media-time><media-time-slider class="${slider.root}"><media-slider-track class="${slider.track}"><media-slider-fill class="${cn(slider.fill.base, slider.fill.fill)}"></media-slider-fill><media-slider-buffer class="${cn(slider.fill.base, slider.fill.buffer)}"></media-slider-buffer></media-slider-track><media-slider-thumb class="${cn(slider.thumb.base, slider.thumb.interactive)}"></media-slider-thumb></media-time-slider><media-time type="duration" class="${time.duration}"></media-time></media-time-group><media-playback-rate-button commandfor="playback-rate-tooltip" class="${cn(button.base, button.icon, playbackRate.button)}"></media-playback-rate-button><media-tooltip id="playback-rate-tooltip" side="top" class="${cn(popup.tooltip)}"> Toggle playback rate </media-tooltip><media-mute-button commandfor="audio-volume-popover" class="${cn(button.base, button.icon, iconState.mute.button)}"> ${renderIcon("volume-off", { class: cn(icon, iconState.mute.volumeOff) })} ${renderIcon("volume-low", { class: cn(icon, iconState.mute.volumeLow) })} ${renderIcon("volume-high", { class: cn(icon, iconState.mute.volumeHigh) })} </media-mute-button><media-popover id="audio-volume-popover" open-on-hover delay="200" close-delay="100" side="top" class="${cn(popup.popover, popup.volume)}"><media-volume-slider class="${slider.root}" orientation="vertical" thumb-alignment="edge"><media-slider-track class="${slider.track}"><media-slider-fill class="${cn(slider.fill.base, slider.fill.fill)}"></media-slider-fill></media-slider-track><media-slider-thumb class="${cn(slider.thumb.base, slider.thumb.persistent)}"></media-slider-thumb></media-volume-slider></media-popover></div></media-container>`;
|
|
98
27
|
}
|
|
99
28
|
var AudioSkinTailwindElement = class extends SkinMixin(ReactiveElement) {
|
|
100
29
|
static {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skin.tailwind.js","names":[],"sources":["../../../../src/define/audio/skin.tailwind.ts"],"sourcesContent":["import { ReactiveElement } from '@videojs/element';\nimport { renderIcon } from '@videojs/icons/render';\nimport {\n button,\n controls,\n icon,\n iconContainer,\n iconFlipped,\n iconState,\n playbackRate,\n popup,\n root,\n seek,\n slider,\n time,\n tooltipState,\n} from '@videojs/skins/default/tailwind/audio.tailwind';\nimport { cn } from '@videojs/utils/style';\nimport { SkinMixin } from '../skin-mixin';\n\n// Side-effect imports: register all custom elements used in the template.\nimport '../media/container';\nimport '../ui/mute-button';\nimport '../ui/play-button';\nimport '../ui/playback-rate-button';\nimport '../ui/popover';\nimport '../ui/seek-button';\nimport '../ui/time';\nimport '../ui/time-slider';\nimport '../ui/tooltip';\nimport '../ui/volume-slider';\n\nconst SEEK_TIME = 10;\n\nfunction getTemplateHTML() {\n return /*html*/ `\n <media-container class=\"${root}\">\n <slot name=\"media\"></slot>\n\n <div class=\"${controls}\">\n <span class=\"${tooltipState.play.wrapper}\">\n <media-play-button commandfor=\"play-tooltip\" class=\"${cn(button.base, button.icon, iconState.play.button)}\">\n ${renderIcon('restart', { class: cn(icon, iconState.play.restart) })}\n ${renderIcon('play', { class: cn(icon, iconState.play.play) })}\n ${renderIcon('pause', { class: cn(icon, iconState.play.pause) })}\n </media-play-button>\n <media-tooltip id=\"play-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n <span class=\"${tooltipState.play.replay}\">Replay</span>\n <span class=\"${tooltipState.play.play}\">Play</span>\n <span class=\"${tooltipState.play.pause}\">Pause</span>\n </media-tooltip>\n </span>\n\n <media-seek-button commandfor=\"seek-backward-tooltip\" seconds=\"${-SEEK_TIME}\" class=\"${cn(button.base, button.icon, seek.button)}\">\n <span class=\"${iconContainer}\">\n ${renderIcon('seek', { class: cn(icon, iconFlipped) })}\n <span class=\"${cn(seek.label, seek.labelBackward)}\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-backward-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n Seek backward ${SEEK_TIME} seconds\n </media-tooltip>\n\n <media-seek-button commandfor=\"seek-forward-tooltip\" seconds=\"${SEEK_TIME}\" class=\"${cn(button.base, button.icon, seek.button)}\">\n <span class=\"${iconContainer}\">\n ${renderIcon('seek', { class: icon })}\n <span class=\"${cn(seek.label, seek.labelForward)}\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-forward-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n Seek forward ${SEEK_TIME} seconds\n </media-tooltip>\n\n <media-time-group class=\"${time.group}\">\n <media-time type=\"current\" class=\"${time.current}\"></media-time>\n <media-time-slider class=\"${slider.root}\">\n <media-slider-track class=\"${slider.track}\">\n <media-slider-fill class=\"${cn(slider.fill.base, slider.fill.fill)}\"></media-slider-fill>\n <media-slider-buffer class=\"${cn(slider.fill.base, slider.fill.buffer)}\"></media-slider-buffer>\n </media-slider-track>\n <media-slider-thumb class=\"${cn(slider.thumb.base, slider.thumb.interactive)}\"></media-slider-thumb>\n </media-time-slider>\n <media-time type=\"duration\" class=\"${time.duration}\"></media-time>\n </media-time-group>\n\n <media-playback-rate-button commandfor=\"playback-rate-tooltip\" class=\"${cn(button.base, button.icon, playbackRate.button)}\"></media-playback-rate-button>\n <media-tooltip id=\"playback-rate-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n Toggle playback rate\n </media-tooltip>\n\n <media-mute-button commandfor=\"audio-volume-popover\" class=\"${cn(button.base, button.icon, iconState.mute.button)}\">\n ${renderIcon('volume-off', { class: cn(icon, iconState.mute.volumeOff) })}\n ${renderIcon('volume-low', { class: cn(icon, iconState.mute.volumeLow) })}\n ${renderIcon('volume-high', { class: cn(icon, iconState.mute.volumeHigh) })}\n </media-mute-button>\n\n <media-popover id=\"audio-volume-popover\" open-on-hover delay=\"200\" close-delay=\"100\" side=\"top\" class=\"${cn(popup.popover, popup.volume)}\">\n <media-volume-slider class=\"${slider.root}\" orientation=\"vertical\" thumb-alignment=\"edge\">\n <media-slider-track class=\"${slider.track}\">\n <media-slider-fill class=\"${cn(slider.fill.base, slider.fill.fill)}\"></media-slider-fill>\n </media-slider-track>\n <media-slider-thumb class=\"${cn(slider.thumb.base, slider.thumb.persistent)}\"></media-slider-thumb>\n </media-volume-slider>\n </media-popover>\n </div>\n </media-container>\n `;\n}\n\nexport class AudioSkinTailwindElement extends SkinMixin(ReactiveElement) {\n static readonly tagName = 'audio-skin-tailwind';\n static getTemplateHTML = getTemplateHTML;\n}\n\ncustomElements.define(AudioSkinTailwindElement.tagName, AudioSkinTailwindElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [AudioSkinTailwindElement.tagName]: AudioSkinTailwindElement;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAgCA,MAAM,YAAY;AAElB,SAAS,kBAAkB;AACzB,QAAgB
|
|
1
|
+
{"version":3,"file":"skin.tailwind.js","names":[],"sources":["../../../../src/define/audio/skin.tailwind.ts"],"sourcesContent":["import { ReactiveElement } from '@videojs/element';\nimport { renderIcon } from '@videojs/icons/render';\nimport {\n button,\n controls,\n icon,\n iconContainer,\n iconFlipped,\n iconState,\n playbackRate,\n popup,\n root,\n seek,\n slider,\n time,\n tooltipState,\n} from '@videojs/skins/default/tailwind/audio.tailwind';\nimport { cn } from '@videojs/utils/style';\nimport { SkinMixin } from '../skin-mixin';\n\n// Side-effect imports: register all custom elements used in the template.\nimport '../media/container';\nimport '../ui/mute-button';\nimport '../ui/play-button';\nimport '../ui/playback-rate-button';\nimport '../ui/popover';\nimport '../ui/seek-button';\nimport '../ui/time';\nimport '../ui/time-slider';\nimport '../ui/tooltip';\nimport '../ui/volume-slider';\n\nconst SEEK_TIME = 10;\n\nfunction getTemplateHTML() {\n return /*html*/ `\n <media-container class=\"${root}\">\n <slot name=\"media\"></slot>\n\n <div class=\"${controls}\">\n <span class=\"${tooltipState.play.wrapper}\">\n <media-play-button commandfor=\"play-tooltip\" class=\"${cn(button.base, button.icon, iconState.play.button)}\">\n ${renderIcon('restart', { class: cn(icon, iconState.play.restart) })}\n ${renderIcon('play', { class: cn(icon, iconState.play.play) })}\n ${renderIcon('pause', { class: cn(icon, iconState.play.pause) })}\n </media-play-button>\n <media-tooltip id=\"play-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n <span class=\"${tooltipState.play.replay}\">Replay</span>\n <span class=\"${tooltipState.play.play}\">Play</span>\n <span class=\"${tooltipState.play.pause}\">Pause</span>\n </media-tooltip>\n </span>\n\n <media-seek-button commandfor=\"seek-backward-tooltip\" seconds=\"${-SEEK_TIME}\" class=\"${cn(button.base, button.icon, seek.button)}\">\n <span class=\"${iconContainer}\">\n ${renderIcon('seek', { class: cn(icon, iconFlipped) })}\n <span class=\"${cn(seek.label, seek.labelBackward)}\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-backward-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n Seek backward ${SEEK_TIME} seconds\n </media-tooltip>\n\n <media-seek-button commandfor=\"seek-forward-tooltip\" seconds=\"${SEEK_TIME}\" class=\"${cn(button.base, button.icon, seek.button)}\">\n <span class=\"${iconContainer}\">\n ${renderIcon('seek', { class: icon })}\n <span class=\"${cn(seek.label, seek.labelForward)}\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-forward-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n Seek forward ${SEEK_TIME} seconds\n </media-tooltip>\n\n <media-time-group class=\"${time.group}\">\n <media-time type=\"current\" class=\"${time.current}\"></media-time>\n <media-time-slider class=\"${slider.root}\">\n <media-slider-track class=\"${slider.track}\">\n <media-slider-fill class=\"${cn(slider.fill.base, slider.fill.fill)}\"></media-slider-fill>\n <media-slider-buffer class=\"${cn(slider.fill.base, slider.fill.buffer)}\"></media-slider-buffer>\n </media-slider-track>\n <media-slider-thumb class=\"${cn(slider.thumb.base, slider.thumb.interactive)}\"></media-slider-thumb>\n </media-time-slider>\n <media-time type=\"duration\" class=\"${time.duration}\"></media-time>\n </media-time-group>\n\n <media-playback-rate-button commandfor=\"playback-rate-tooltip\" class=\"${cn(button.base, button.icon, playbackRate.button)}\"></media-playback-rate-button>\n <media-tooltip id=\"playback-rate-tooltip\" side=\"top\" class=\"${cn(popup.tooltip)}\">\n Toggle playback rate\n </media-tooltip>\n\n <media-mute-button commandfor=\"audio-volume-popover\" class=\"${cn(button.base, button.icon, iconState.mute.button)}\">\n ${renderIcon('volume-off', { class: cn(icon, iconState.mute.volumeOff) })}\n ${renderIcon('volume-low', { class: cn(icon, iconState.mute.volumeLow) })}\n ${renderIcon('volume-high', { class: cn(icon, iconState.mute.volumeHigh) })}\n </media-mute-button>\n\n <media-popover id=\"audio-volume-popover\" open-on-hover delay=\"200\" close-delay=\"100\" side=\"top\" class=\"${cn(popup.popover, popup.volume)}\">\n <media-volume-slider class=\"${slider.root}\" orientation=\"vertical\" thumb-alignment=\"edge\">\n <media-slider-track class=\"${slider.track}\">\n <media-slider-fill class=\"${cn(slider.fill.base, slider.fill.fill)}\"></media-slider-fill>\n </media-slider-track>\n <media-slider-thumb class=\"${cn(slider.thumb.base, slider.thumb.persistent)}\"></media-slider-thumb>\n </media-volume-slider>\n </media-popover>\n </div>\n </media-container>\n `;\n}\n\nexport class AudioSkinTailwindElement extends SkinMixin(ReactiveElement) {\n static readonly tagName = 'audio-skin-tailwind';\n static getTemplateHTML = getTemplateHTML;\n}\n\ncustomElements.define(AudioSkinTailwindElement.tagName, AudioSkinTailwindElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [AudioSkinTailwindElement.tagName]: AudioSkinTailwindElement;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAgCA,MAAM,YAAY;AAElB,SAAS,kBAAkB;AACzB,QAAgB,2BAAA,KAAA,0CAAA,SAAA,iBAAA,aAAA,KAAA,QAAA,wDAAA,GAAA,OAAA,MAAA,OAAA,MAAA,UAAA,KAAA,OAAA,CAAA,KAAA,WAAA,WAAA,EAAA,OAAA,GAAA,MAAA,UAAA,KAAA,QAAA,EAAA,CAAA,CAAA,GAAA,WAAA,QAAA,EAAA,OAAA,GAAA,MAAA,UAAA,KAAA,KAAA,EAAA,CAAA,CAAA,GAAA,WAAA,SAAA,EAAA,OAAA,GAAA,MAAA,UAAA,KAAA,MAAA,EAAA,CAAA,CAAA,0EAAA,GAAA,MAAA,QAAA,CAAA,iBAAA,aAAA,KAAA,OAAA,8BAAA,aAAA,KAAA,KAAA,4BAAA,aAAA,KAAA,MAAA,sGAAA,CAAA,UAAA,WAAA,GAAA,OAAA,MAAA,OAAA,MAAA,KAAA,OAAA,CAAA,iBAAA,cAAA,KAAA,WAAA,QAAA,EAAA,OAAA,GAAA,MAAA,YAAA,EAAA,CAAA,CAAA,gBAAA,GAAA,KAAA,OAAA,KAAA,cAAA,CAAA,IAAA,UAAA,gGAAA,GAAA,MAAA,QAAA,CAAA,mBAAA,UAAA,yFAAA,UAAA,WAAA,GAAA,OAAA,MAAA,OAAA,MAAA,KAAA,OAAA,CAAA,iBAAA,cAAA,KAAA,WAAA,QAAA,EAAA,OAAA,MAAA,CAAA,CAAA,gBAAA,GAAA,KAAA,OAAA,KAAA,aAAA,CAAA,IAAA,UAAA,+FAAA,GAAA,MAAA,QAAA,CAAA,kBAAA,UAAA,oDAAA,KAAA,MAAA,sCAAA,KAAA,QAAA,2CAAA,OAAA,KAAA,+BAAA,OAAA,MAAA,8BAAA,GAAA,OAAA,KAAA,MAAA,OAAA,KAAA,KAAA,CAAA,oDAAA,GAAA,OAAA,KAAA,MAAA,OAAA,KAAA,OAAA,CAAA,0EAAA,GAAA,OAAA,MAAA,MAAA,OAAA,MAAA,YAAA,CAAA,gFAAA,KAAA,SAAA,0GAAA,GAAA,OAAA,MAAA,OAAA,MAAA,aAAA,OAAA,CAAA,6FAAA,GAAA,MAAA,QAAA,CAAA,sGAAA,GAAA,OAAA,MAAA,OAAA,MAAA,UAAA,KAAA,OAAA,CAAA,KAAA,WAAA,cAAA,EAAA,OAAA,GAAA,MAAA,UAAA,KAAA,UAAA,EAAA,CAAA,CAAA,GAAA,WAAA,cAAA,EAAA,OAAA,GAAA,MAAA,UAAA,KAAA,UAAA,EAAA,CAAA,CAAA,GAAA,WAAA,eAAA,EAAA,OAAA,GAAA,MAAA,UAAA,KAAA,WAAA,EAAA,CAAA,CAAA,8HAAA,GAAA,MAAA,SAAA,MAAA,OAAA,CAAA,gCAAA,OAAA,KAAA,6EAAA,OAAA,MAAA,8BAAA,GAAA,OAAA,KAAA,MAAA,OAAA,KAAA,KAAA,CAAA,wEAAA,GAAA,OAAA,MAAA,MAAA,OAAA,MAAA,WAAA,CAAA;;;;iBAIU;;;yBACL;;;AAGvB,eAAc,OAAA,yBAA+B,SAAM,yBAAuB"}
|
|
@@ -4,11 +4,7 @@ import { namedNodeMapToObject } from "@videojs/utils/dom";
|
|
|
4
4
|
|
|
5
5
|
//#region src/define/background/skin.ts
|
|
6
6
|
function getTemplateHTML(_attrs) {
|
|
7
|
-
return
|
|
8
|
-
<media-container>
|
|
9
|
-
<slot name="media" slot="media"></slot>
|
|
10
|
-
</media-container>
|
|
11
|
-
`;
|
|
7
|
+
return `<media-container><slot name="media" slot="media"></slot></media-container>`;
|
|
12
8
|
}
|
|
13
9
|
var BackgroundVideoSkinElement = class extends ReactiveElement {
|
|
14
10
|
static {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skin.js","names":[],"sources":["../../../../src/define/background/skin.ts"],"sourcesContent":["import { ReactiveElement } from '@videojs/element';\nimport { namedNodeMapToObject } from '@videojs/utils/dom';\nimport { safeDefine } from '../safe-define';\n\nfunction getTemplateHTML(_attrs: Record<string, string>) {\n return /*html*/ `\n <media-container>\n <slot name=\"media\" slot=\"media\"></slot>\n </media-container>\n `;\n}\n\nexport class BackgroundVideoSkinElement extends ReactiveElement {\n static readonly tagName = 'background-video-skin';\n static shadowRootOptions = { mode: 'open' as ShadowRootMode };\n static getTemplateHTML = getTemplateHTML;\n\n constructor() {\n super();\n\n if (!this.shadowRoot) {\n this.attachShadow((this.constructor as typeof BackgroundVideoSkinElement).shadowRootOptions);\n this.shadowRoot!.innerHTML = getTemplateHTML(namedNodeMapToObject(this.attributes));\n }\n }\n}\n\nsafeDefine(BackgroundVideoSkinElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [BackgroundVideoSkinElement.tagName]: BackgroundVideoSkinElement;\n }\n}\n"],"mappings":";;;;;AAIA,SAAS,gBAAgB,QAAgC;AACvD,QAAgB
|
|
1
|
+
{"version":3,"file":"skin.js","names":[],"sources":["../../../../src/define/background/skin.ts"],"sourcesContent":["import { ReactiveElement } from '@videojs/element';\nimport { namedNodeMapToObject } from '@videojs/utils/dom';\nimport { safeDefine } from '../safe-define';\n\nfunction getTemplateHTML(_attrs: Record<string, string>) {\n return /*html*/ `\n <media-container>\n <slot name=\"media\" slot=\"media\"></slot>\n </media-container>\n `;\n}\n\nexport class BackgroundVideoSkinElement extends ReactiveElement {\n static readonly tagName = 'background-video-skin';\n static shadowRootOptions = { mode: 'open' as ShadowRootMode };\n static getTemplateHTML = getTemplateHTML;\n\n constructor() {\n super();\n\n if (!this.shadowRoot) {\n this.attachShadow((this.constructor as typeof BackgroundVideoSkinElement).shadowRootOptions);\n this.shadowRoot!.innerHTML = getTemplateHTML(namedNodeMapToObject(this.attributes));\n }\n }\n}\n\nsafeDefine(BackgroundVideoSkinElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [BackgroundVideoSkinElement.tagName]: BackgroundVideoSkinElement;\n }\n}\n"],"mappings":";;;;;AAIA,SAAS,gBAAgB,QAAgC;AACvD,QAAgB;;AAGlB,IAAY,6BAAZ,cAAqB,gBAAA;;iBAClB;;;2BACH,EAAA,MAAA,QAAA;;;;;CAGE,cAAO;AACP,SAAO;;AAGP,QAAA,aAAc,KAAA,YAAA,kBAAA;AACZ,QAAO,WAAA,YAAA,gBAAA,qBAAA,KAAA,WAAA,CAAA;;;;AAKX,WAAI,2BAAA"}
|
|
@@ -7,21 +7,7 @@
|
|
|
7
7
|
* CSS spec, so this bridge lives in light DOM where it can directly
|
|
8
8
|
* target the video element's pseudo-elements.
|
|
9
9
|
*/
|
|
10
|
-
const NATIVE_CAPTION_BRIDGE_CSS =
|
|
11
|
-
.media-skin > video::-webkit-media-text-track-container {
|
|
12
|
-
transition: transform var(--media-caption-track-duration, 150ms) ease-out;
|
|
13
|
-
transition-delay: var(--media-caption-track-delay, 600ms);
|
|
14
|
-
transform: translateY(var(--media-caption-track-y, 0)) scale(0.98);
|
|
15
|
-
z-index: var(--media-caption-track-z, 1);
|
|
16
|
-
font-family: inherit;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
@media (prefers-reduced-motion: reduce) {
|
|
20
|
-
.media-skin > video::-webkit-media-text-track-container {
|
|
21
|
-
transition-duration: 50ms;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
`;
|
|
10
|
+
const NATIVE_CAPTION_BRIDGE_CSS = `.media-skin>video::-webkit-media-text-track-container{transition:transform var(--media-caption-track-duration,.15s) ease-out;transition-delay:var(--media-caption-track-delay,.6s);transform:translateY(var(--media-caption-track-y,0)) scale(.98);z-index:var(--media-caption-track-z,1);font-family:inherit}@media (prefers-reduced-motion:reduce){.media-skin>video::-webkit-media-text-track-container{transition-duration:50ms}}`;
|
|
25
11
|
const BRIDGE_ID = "media-caption-bridge";
|
|
26
12
|
function ensureCaptionBridge() {
|
|
27
13
|
if (document.getElementById(BRIDGE_ID)) return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skin-mixin.js","names":[],"sources":["../../../src/define/skin-mixin.ts"],"sourcesContent":["import type { ReactiveElement } from '@videojs/element';\nimport type { Constructor } from '@videojs/utils/types';\n\n/**\n * Light DOM stylesheet that bridges CSS custom properties set by skins\n * to native WebKit text track pseudo-elements on the slotted `<video>`.\n *\n * `::slotted(video)::-webkit-media-text-track-container` is invalid per\n * CSS spec, so this bridge lives in light DOM where it can directly\n * target the video element's pseudo-elements.\n */\nconst NATIVE_CAPTION_BRIDGE_CSS = /* css */ `\n.media-skin > video::-webkit-media-text-track-container {\n transition: transform var(--media-caption-track-duration, 150ms) ease-out;\n transition-delay: var(--media-caption-track-delay, 600ms);\n transform: translateY(var(--media-caption-track-y, 0)) scale(0.98);\n z-index: var(--media-caption-track-z, 1);\n font-family: inherit;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .media-skin > video::-webkit-media-text-track-container {\n transition-duration: 50ms;\n }\n}\n`;\n\nconst BRIDGE_ID = 'media-caption-bridge';\n\nfunction ensureCaptionBridge(): void {\n if (document.getElementById(BRIDGE_ID)) return;\n const style = document.createElement('style');\n style.id = BRIDGE_ID;\n style.textContent = NATIVE_CAPTION_BRIDGE_CSS;\n document.head.appendChild(style);\n}\n\n/**\n * Mixin for skin elements that renders the template from a static\n * `getTemplateHTML` method into a shadow root. Native `<slot>` elements\n * handle light DOM projection automatically.\n *\n * When `static styles` is set, the stylesheet is adopted into the shadow\n * root via `adoptedStyleSheets`.\n */\nexport function SkinMixin<Base extends Constructor<ReactiveElement>>(\n BaseClass: Base\n): Base & { shadowRootOptions: ShadowRootInit; styles?: CSSStyleSheet } {\n class SkinElement extends (BaseClass as Constructor<ReactiveElement>) {\n static shadowRootOptions: ShadowRootInit = { mode: 'open' };\n static styles?: CSSStyleSheet;\n\n constructor(...args: any[]) {\n super(...args);\n\n this.classList.add('media-skin');\n ensureCaptionBridge();\n\n if (!this.shadowRoot) {\n const ctor = this.constructor as typeof SkinElement & { getTemplateHTML?: () => string };\n this.attachShadow(ctor.shadowRootOptions);\n\n if (ctor.styles) {\n this.shadowRoot!.adoptedStyleSheets = [ctor.styles];\n }\n\n if (ctor.getTemplateHTML) {\n this.shadowRoot!.innerHTML = ctor.getTemplateHTML();\n }\n }\n }\n }\n\n return SkinElement as unknown as Base & { shadowRootOptions: ShadowRootInit; styles?: CSSStyleSheet };\n}\n\n/** Create a shared `CSSStyleSheet` from a CSS string. */\nexport function createStyles(css: string): CSSStyleSheet {\n const sheet = new CSSStyleSheet();\n sheet.replaceSync(css);\n return sheet;\n}\n"],"mappings":";;;;;;;;;AAWA,MAAM,4BAAsC
|
|
1
|
+
{"version":3,"file":"skin-mixin.js","names":[],"sources":["../../../src/define/skin-mixin.ts"],"sourcesContent":["import type { ReactiveElement } from '@videojs/element';\nimport type { Constructor } from '@videojs/utils/types';\n\n/**\n * Light DOM stylesheet that bridges CSS custom properties set by skins\n * to native WebKit text track pseudo-elements on the slotted `<video>`.\n *\n * `::slotted(video)::-webkit-media-text-track-container` is invalid per\n * CSS spec, so this bridge lives in light DOM where it can directly\n * target the video element's pseudo-elements.\n */\nconst NATIVE_CAPTION_BRIDGE_CSS = /* css */ `\n.media-skin > video::-webkit-media-text-track-container {\n transition: transform var(--media-caption-track-duration, 150ms) ease-out;\n transition-delay: var(--media-caption-track-delay, 600ms);\n transform: translateY(var(--media-caption-track-y, 0)) scale(0.98);\n z-index: var(--media-caption-track-z, 1);\n font-family: inherit;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .media-skin > video::-webkit-media-text-track-container {\n transition-duration: 50ms;\n }\n}\n`;\n\nconst BRIDGE_ID = 'media-caption-bridge';\n\nfunction ensureCaptionBridge(): void {\n if (document.getElementById(BRIDGE_ID)) return;\n const style = document.createElement('style');\n style.id = BRIDGE_ID;\n style.textContent = NATIVE_CAPTION_BRIDGE_CSS;\n document.head.appendChild(style);\n}\n\n/**\n * Mixin for skin elements that renders the template from a static\n * `getTemplateHTML` method into a shadow root. Native `<slot>` elements\n * handle light DOM projection automatically.\n *\n * When `static styles` is set, the stylesheet is adopted into the shadow\n * root via `adoptedStyleSheets`.\n */\nexport function SkinMixin<Base extends Constructor<ReactiveElement>>(\n BaseClass: Base\n): Base & { shadowRootOptions: ShadowRootInit; styles?: CSSStyleSheet } {\n class SkinElement extends (BaseClass as Constructor<ReactiveElement>) {\n static shadowRootOptions: ShadowRootInit = { mode: 'open' };\n static styles?: CSSStyleSheet;\n\n constructor(...args: any[]) {\n super(...args);\n\n this.classList.add('media-skin');\n ensureCaptionBridge();\n\n if (!this.shadowRoot) {\n const ctor = this.constructor as typeof SkinElement & { getTemplateHTML?: () => string };\n this.attachShadow(ctor.shadowRootOptions);\n\n if (ctor.styles) {\n this.shadowRoot!.adoptedStyleSheets = [ctor.styles];\n }\n\n if (ctor.getTemplateHTML) {\n this.shadowRoot!.innerHTML = ctor.getTemplateHTML();\n }\n }\n }\n }\n\n return SkinElement as unknown as Base & { shadowRootOptions: ShadowRootInit; styles?: CSSStyleSheet };\n}\n\n/** Create a shared `CSSStyleSheet` from a CSS string. */\nexport function createStyles(css: string): CSSStyleSheet {\n const sheet = new CSSStyleSheet();\n sheet.replaceSync(css);\n return sheet;\n}\n"],"mappings":";;;;;;;;;AAWA,MAAM,4BAAsC;AAE5C,MAAE,YAAY;AAEd,SAAE,sBAAkC;AAClC,KAAE,SAAW,eAAe,UAAU,CAAE;CACxC,MAAK,QAAQ,SAAO,cAAA,QAAA;AACtB,OAAA,KAAA;;AAEC,UAAO,KAAQ,YAAQ,MAAQ;;;;;;;;;;AAWhC,SAAgB,UACd,WAC6C;CAC7C,MAAA,oBAA0B,UAAM;;4BAClC,EAAA,MAAA,QAAA;;EAGG,YAAU,GAAK,MAAc;AAC5B,SAAA,GAAA,KAAgB;AAEnB,QAAA,UAAA,IAAA,aAAA;AACE,wBAAwB;AAEzB,OAAA,CAAA,KAAA,YAAA;IACK,MAAA,OAAS,KAAU;AACxB,SAAW,aAAA,KAAA,kBAAA;AAEL,QAAA,KAAA,OACE,MAAC,WAAA,qBAAqC,CAAC,KAAK,OAAO;AAGzD,QAAA,KAAa,gBACX,MAAS,WAAK,YAAA,KAAA,iBAAA;;;;AAMlB,QAAM;;;AAIR,SAAe,aAAY,KAA2B;CACpD,MAAM,QAAA,IAAA,eAAA;;AAEN,QAAM"}
|
|
@@ -20,127 +20,7 @@ import { ReactiveElement } from "@videojs/element";
|
|
|
20
20
|
//#region src/define/video/minimal-skin.ts
|
|
21
21
|
const SEEK_TIME = 10;
|
|
22
22
|
function getTemplateHTML() {
|
|
23
|
-
return
|
|
24
|
-
<media-container class="media-minimal-skin media-minimal-skin--video">
|
|
25
|
-
<slot name="media"></slot>
|
|
26
|
-
|
|
27
|
-
<media-buffering-indicator class="media-buffering-indicator">
|
|
28
|
-
${renderIcon("spinner", { class: "media-icon" })}
|
|
29
|
-
</media-buffering-indicator>
|
|
30
|
-
|
|
31
|
-
<!--<div class="media-error" role="alertdialog" aria-labelledby="media-error-title" aria-describedby="media-error-description">
|
|
32
|
-
<div class="media-error__dialog">
|
|
33
|
-
<div class="media-error__content">
|
|
34
|
-
<p id="media-error-title" class="media-error__title">Something went wrong.</p>
|
|
35
|
-
<p id="media-error-description" class="media-error__description">An error occurred while trying to play the video. Please try again.</p>
|
|
36
|
-
</div>
|
|
37
|
-
<div class="media-error__actions">
|
|
38
|
-
<button type="button" class="media-button">OK</button>
|
|
39
|
-
</div>
|
|
40
|
-
</div>
|
|
41
|
-
</div>-->
|
|
42
|
-
|
|
43
|
-
<media-controls class="media-controls">
|
|
44
|
-
<span class="media-button-group">
|
|
45
|
-
<media-play-button commandfor="play-tooltip" class="media-button media-button--icon media-button--play">
|
|
46
|
-
${renderIcon("restart", { class: "media-icon media-icon--restart" })}
|
|
47
|
-
${renderIcon("play", { class: "media-icon media-icon--play" })}
|
|
48
|
-
${renderIcon("pause", { class: "media-icon media-icon--pause" })}
|
|
49
|
-
</media-play-button>
|
|
50
|
-
<media-tooltip id="play-tooltip" side="top" class="media-tooltip">
|
|
51
|
-
<span class="media-tooltip-label media-tooltip-label--replay">Replay</span>
|
|
52
|
-
<span class="media-tooltip-label media-tooltip-label--play">Play</span>
|
|
53
|
-
<span class="media-tooltip-label media-tooltip-label--pause">Pause</span>
|
|
54
|
-
</media-tooltip>
|
|
55
|
-
|
|
56
|
-
<media-seek-button commandfor="seek-backward-tooltip" seconds="${-SEEK_TIME}" class="media-button media-button--icon media-button--seek">
|
|
57
|
-
<span class="media-icon__container">
|
|
58
|
-
${renderIcon("seek", { class: "media-icon media-icon--flipped" })}
|
|
59
|
-
<span class="media-icon__label">${SEEK_TIME}</span>
|
|
60
|
-
</span>
|
|
61
|
-
</media-seek-button>
|
|
62
|
-
<media-tooltip id="seek-backward-tooltip" side="top" class="media-tooltip">
|
|
63
|
-
Seek backward ${SEEK_TIME} seconds
|
|
64
|
-
</media-tooltip>
|
|
65
|
-
|
|
66
|
-
<media-seek-button commandfor="seek-forward-tooltip" seconds="${SEEK_TIME}" class="media-button media-button--icon media-button--seek">
|
|
67
|
-
<span class="media-icon__container">
|
|
68
|
-
${renderIcon("seek", { class: "media-icon" })}
|
|
69
|
-
<span class="media-icon__label">${SEEK_TIME}</span>
|
|
70
|
-
</span>
|
|
71
|
-
</media-seek-button>
|
|
72
|
-
<media-tooltip id="seek-forward-tooltip" side="top" class="media-tooltip">
|
|
73
|
-
Seek forward ${SEEK_TIME} seconds
|
|
74
|
-
</media-tooltip>
|
|
75
|
-
</span>
|
|
76
|
-
|
|
77
|
-
<span class="media-time-controls">
|
|
78
|
-
<media-time-group class="media-time">
|
|
79
|
-
<media-time type="current" class="media-time__value media-time__value--current"></media-time>
|
|
80
|
-
<media-time-separator class="media-time__separator"></media-time-separator>
|
|
81
|
-
<media-time type="duration" class="media-time__value media-time__value--duration"></media-time>
|
|
82
|
-
</media-time-group>
|
|
83
|
-
|
|
84
|
-
<media-time-slider class="media-slider">
|
|
85
|
-
<media-slider-track class="media-slider__track">
|
|
86
|
-
<media-slider-fill class="media-slider__fill"></media-slider-fill>
|
|
87
|
-
<media-slider-buffer class="media-slider__buffer"></media-slider-buffer>
|
|
88
|
-
</media-slider-track>
|
|
89
|
-
<media-slider-thumb class="media-slider__thumb"></media-slider-thumb>
|
|
90
|
-
</media-time-slider>
|
|
91
|
-
</span>
|
|
92
|
-
|
|
93
|
-
<span class="media-button-group">
|
|
94
|
-
<media-playback-rate-button commandfor="playback-rate-tooltip" class="media-button media-button--icon media-button--playback-rate"></media-playback-rate-button>
|
|
95
|
-
<media-tooltip id="playback-rate-tooltip" side="top" class="media-tooltip">
|
|
96
|
-
Toggle playback rate
|
|
97
|
-
</media-tooltip>
|
|
98
|
-
|
|
99
|
-
<media-mute-button commandfor="video-volume-popover" class="media-button media-button--icon media-button--mute">
|
|
100
|
-
${renderIcon("volume-off", { class: "media-icon media-icon--volume-off" })}
|
|
101
|
-
${renderIcon("volume-low", { class: "media-icon media-icon--volume-low" })}
|
|
102
|
-
${renderIcon("volume-high", { class: "media-icon media-icon--volume-high" })}
|
|
103
|
-
</media-mute-button>
|
|
104
|
-
|
|
105
|
-
<media-popover id="video-volume-popover" open-on-hover delay="200" close-delay="100" side="top" class="media-popover media-popover--volume">
|
|
106
|
-
<media-volume-slider class="media-slider" orientation="vertical" thumb-alignment="edge">
|
|
107
|
-
<media-slider-track class="media-slider__track">
|
|
108
|
-
<media-slider-fill class="media-slider__fill"></media-slider-fill>
|
|
109
|
-
</media-slider-track>
|
|
110
|
-
<media-slider-thumb class="media-slider__thumb media-slider__thumb--persistent"></media-slider-thumb>
|
|
111
|
-
</media-volume-slider>
|
|
112
|
-
</media-popover>
|
|
113
|
-
|
|
114
|
-
<media-captions-button commandfor="captions-tooltip" class="media-button media-button--icon media-button--captions">
|
|
115
|
-
${renderIcon("captions-off", { class: "media-icon media-icon--captions-off" })}
|
|
116
|
-
${renderIcon("captions-on", { class: "media-icon media-icon--captions-on" })}
|
|
117
|
-
</media-captions-button>
|
|
118
|
-
<media-tooltip id="captions-tooltip" side="top" class="media-tooltip">
|
|
119
|
-
Toggle captions
|
|
120
|
-
</media-tooltip>
|
|
121
|
-
|
|
122
|
-
<media-pip-button commandfor="pip-tooltip" class="media-button media-button--icon">
|
|
123
|
-
${renderIcon("pip", { class: "media-icon" })}
|
|
124
|
-
</media-pip-button>
|
|
125
|
-
<media-tooltip id="pip-tooltip" side="top" class="media-tooltip">
|
|
126
|
-
<span class="media-tooltip-label media-tooltip-label--enter-pip">Enter picture-in-picture</span>
|
|
127
|
-
<span class="media-tooltip-label media-tooltip-label--exit-pip">Exit picture-in-picture</span>
|
|
128
|
-
</media-tooltip>
|
|
129
|
-
|
|
130
|
-
<media-fullscreen-button commandfor="fullscreen-tooltip" class="media-button media-button--icon media-button--fullscreen">
|
|
131
|
-
${renderIcon("fullscreen-enter", { class: "media-icon media-icon--fullscreen-enter" })}
|
|
132
|
-
${renderIcon("fullscreen-exit", { class: "media-icon media-icon--fullscreen-exit" })}
|
|
133
|
-
</media-fullscreen-button>
|
|
134
|
-
<media-tooltip id="fullscreen-tooltip" side="top" class="media-tooltip">
|
|
135
|
-
<span class="media-tooltip-label media-tooltip-label--enter-fullscreen">Enter fullscreen</span>
|
|
136
|
-
<span class="media-tooltip-label media-tooltip-label--exit-fullscreen">Exit fullscreen</span>
|
|
137
|
-
</media-tooltip>
|
|
138
|
-
</span>
|
|
139
|
-
</media-controls>
|
|
140
|
-
|
|
141
|
-
<div class="media-overlay"></div>
|
|
142
|
-
</media-container>
|
|
143
|
-
`;
|
|
23
|
+
return `<media-container class="media-minimal-skin media-minimal-skin--video"><slot name="media"></slot><media-buffering-indicator class="media-buffering-indicator"> ${renderIcon("spinner", { class: "media-icon" })} </media-buffering-indicator><media-controls class="media-controls"><span class="media-button-group"><media-play-button commandfor="play-tooltip" class="media-button media-button--icon media-button--play"> ${renderIcon("restart", { class: "media-icon media-icon--restart" })} ${renderIcon("play", { class: "media-icon media-icon--play" })} ${renderIcon("pause", { class: "media-icon media-icon--pause" })} </media-play-button><media-tooltip id="play-tooltip" side="top" class="media-tooltip"><span class="media-tooltip-label media-tooltip-label--replay">Replay</span><span class="media-tooltip-label media-tooltip-label--play">Play</span><span class="media-tooltip-label media-tooltip-label--pause">Pause</span></media-tooltip><media-seek-button commandfor="seek-backward-tooltip" seconds="${-SEEK_TIME}" class="media-button media-button--icon media-button--seek"><span class="media-icon__container"> ${renderIcon("seek", { class: "media-icon media-icon--flipped" })} <span class="media-icon__label">${SEEK_TIME}</span></span></media-seek-button><media-tooltip id="seek-backward-tooltip" side="top" class="media-tooltip"> Seek backward ${SEEK_TIME} seconds </media-tooltip><media-seek-button commandfor="seek-forward-tooltip" seconds="${SEEK_TIME}" class="media-button media-button--icon media-button--seek"><span class="media-icon__container"> ${renderIcon("seek", { class: "media-icon" })} <span class="media-icon__label">${SEEK_TIME}</span></span></media-seek-button><media-tooltip id="seek-forward-tooltip" side="top" class="media-tooltip"> Seek forward ${SEEK_TIME} seconds </media-tooltip></span><span class="media-time-controls"><media-time-group class="media-time"><media-time type="current" class="media-time__value media-time__value--current"></media-time><media-time-separator class="media-time__separator"></media-time-separator><media-time type="duration" class="media-time__value media-time__value--duration"></media-time></media-time-group><media-time-slider class="media-slider"><media-slider-track class="media-slider__track"><media-slider-fill class="media-slider__fill"></media-slider-fill><media-slider-buffer class="media-slider__buffer"></media-slider-buffer></media-slider-track><media-slider-thumb class="media-slider__thumb"></media-slider-thumb></media-time-slider></span><span class="media-button-group"><media-playback-rate-button commandfor="playback-rate-tooltip" class="media-button media-button--icon media-button--playback-rate"></media-playback-rate-button><media-tooltip id="playback-rate-tooltip" side="top" class="media-tooltip"> Toggle playback rate </media-tooltip><media-mute-button commandfor="video-volume-popover" class="media-button media-button--icon media-button--mute"> ${renderIcon("volume-off", { class: "media-icon media-icon--volume-off" })} ${renderIcon("volume-low", { class: "media-icon media-icon--volume-low" })} ${renderIcon("volume-high", { class: "media-icon media-icon--volume-high" })} </media-mute-button><media-popover id="video-volume-popover" open-on-hover delay="200" close-delay="100" side="top" class="media-popover media-popover--volume"><media-volume-slider class="media-slider" orientation="vertical" thumb-alignment="edge"><media-slider-track class="media-slider__track"><media-slider-fill class="media-slider__fill"></media-slider-fill></media-slider-track><media-slider-thumb class="media-slider__thumb media-slider__thumb--persistent"></media-slider-thumb></media-volume-slider></media-popover><media-captions-button commandfor="captions-tooltip" class="media-button media-button--icon media-button--captions"> ${renderIcon("captions-off", { class: "media-icon media-icon--captions-off" })} ${renderIcon("captions-on", { class: "media-icon media-icon--captions-on" })} </media-captions-button><media-tooltip id="captions-tooltip" side="top" class="media-tooltip"> Toggle captions </media-tooltip><media-pip-button commandfor="pip-tooltip" class="media-button media-button--icon"> ${renderIcon("pip", { class: "media-icon" })} </media-pip-button><media-tooltip id="pip-tooltip" side="top" class="media-tooltip"><span class="media-tooltip-label media-tooltip-label--enter-pip">Enter picture-in-picture</span><span class="media-tooltip-label media-tooltip-label--exit-pip">Exit picture-in-picture</span></media-tooltip><media-fullscreen-button commandfor="fullscreen-tooltip" class="media-button media-button--icon media-button--fullscreen"> ${renderIcon("fullscreen-enter", { class: "media-icon media-icon--fullscreen-enter" })} ${renderIcon("fullscreen-exit", { class: "media-icon media-icon--fullscreen-exit" })} </media-fullscreen-button><media-tooltip id="fullscreen-tooltip" side="top" class="media-tooltip"><span class="media-tooltip-label media-tooltip-label--enter-fullscreen">Enter fullscreen</span><span class="media-tooltip-label media-tooltip-label--exit-fullscreen">Exit fullscreen</span></media-tooltip></span></media-controls><div class="media-overlay"></div></media-container>`;
|
|
144
24
|
}
|
|
145
25
|
var MinimalVideoSkinElement = class extends SkinMixin(ReactiveElement) {
|
|
146
26
|
static {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"minimal-skin.js","names":[
|
|
1
|
+
{"version":3,"file":"minimal-skin.js","names":[],"sources":["../../../../src/define/video/minimal-skin.ts"],"sourcesContent":["import { ReactiveElement } from '@videojs/element';\nimport { renderIcon } from '@videojs/icons/render/minimal';\nimport { createStyles, SkinMixin } from '../skin-mixin';\nimport styles from './minimal-skin.css?inline';\n\n// Side-effect imports: register all custom elements used in the template.\nimport '../media/container';\nimport '../ui/buffering-indicator';\nimport '../ui/controls';\nimport '../ui/fullscreen-button';\nimport '../ui/mute-button';\nimport '../ui/pip-button';\nimport '../ui/play-button';\nimport '../ui/playback-rate-button';\nimport '../ui/popover';\nimport '../ui/seek-button';\nimport '../ui/time';\nimport '../ui/time-slider';\nimport '../ui/tooltip';\nimport '../ui/volume-slider';\n\nconst SEEK_TIME = 10;\n\nfunction getTemplateHTML() {\n return /*html*/ `\n <media-container class=\"media-minimal-skin media-minimal-skin--video\">\n <slot name=\"media\"></slot>\n\n <media-buffering-indicator class=\"media-buffering-indicator\">\n ${renderIcon('spinner', { class: 'media-icon' })}\n </media-buffering-indicator>\n\n <!--<div class=\"media-error\" role=\"alertdialog\" aria-labelledby=\"media-error-title\" aria-describedby=\"media-error-description\">\n <div class=\"media-error__dialog\">\n <div class=\"media-error__content\">\n <p id=\"media-error-title\" class=\"media-error__title\">Something went wrong.</p>\n <p id=\"media-error-description\" class=\"media-error__description\">An error occurred while trying to play the video. Please try again.</p>\n </div>\n <div class=\"media-error__actions\">\n <button type=\"button\" class=\"media-button\">OK</button>\n </div>\n </div>\n </div>-->\n\n <media-controls class=\"media-controls\">\n <span class=\"media-button-group\">\n <media-play-button commandfor=\"play-tooltip\" class=\"media-button media-button--icon media-button--play\">\n ${renderIcon('restart', { class: 'media-icon media-icon--restart' })}\n ${renderIcon('play', { class: 'media-icon media-icon--play' })}\n ${renderIcon('pause', { class: 'media-icon media-icon--pause' })}\n </media-play-button>\n <media-tooltip id=\"play-tooltip\" side=\"top\" class=\"media-tooltip\">\n <span class=\"media-tooltip-label media-tooltip-label--replay\">Replay</span>\n <span class=\"media-tooltip-label media-tooltip-label--play\">Play</span>\n <span class=\"media-tooltip-label media-tooltip-label--pause\">Pause</span>\n </media-tooltip>\n\n <media-seek-button commandfor=\"seek-backward-tooltip\" seconds=\"${-SEEK_TIME}\" class=\"media-button media-button--icon media-button--seek\">\n <span class=\"media-icon__container\">\n ${renderIcon('seek', { class: 'media-icon media-icon--flipped' })}\n <span class=\"media-icon__label\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-backward-tooltip\" side=\"top\" class=\"media-tooltip\">\n Seek backward ${SEEK_TIME} seconds\n </media-tooltip>\n\n <media-seek-button commandfor=\"seek-forward-tooltip\" seconds=\"${SEEK_TIME}\" class=\"media-button media-button--icon media-button--seek\">\n <span class=\"media-icon__container\">\n ${renderIcon('seek', { class: 'media-icon' })}\n <span class=\"media-icon__label\">${SEEK_TIME}</span>\n </span>\n </media-seek-button>\n <media-tooltip id=\"seek-forward-tooltip\" side=\"top\" class=\"media-tooltip\">\n Seek forward ${SEEK_TIME} seconds\n </media-tooltip>\n </span>\n\n <span class=\"media-time-controls\">\n <media-time-group class=\"media-time\">\n <media-time type=\"current\" class=\"media-time__value media-time__value--current\"></media-time>\n <media-time-separator class=\"media-time__separator\"></media-time-separator>\n <media-time type=\"duration\" class=\"media-time__value media-time__value--duration\"></media-time>\n </media-time-group>\n\n <media-time-slider class=\"media-slider\">\n <media-slider-track class=\"media-slider__track\">\n <media-slider-fill class=\"media-slider__fill\"></media-slider-fill>\n <media-slider-buffer class=\"media-slider__buffer\"></media-slider-buffer>\n </media-slider-track>\n <media-slider-thumb class=\"media-slider__thumb\"></media-slider-thumb>\n </media-time-slider>\n </span>\n\n <span class=\"media-button-group\">\n <media-playback-rate-button commandfor=\"playback-rate-tooltip\" class=\"media-button media-button--icon media-button--playback-rate\"></media-playback-rate-button>\n <media-tooltip id=\"playback-rate-tooltip\" side=\"top\" class=\"media-tooltip\">\n Toggle playback rate\n </media-tooltip>\n\n <media-mute-button commandfor=\"video-volume-popover\" class=\"media-button media-button--icon media-button--mute\">\n ${renderIcon('volume-off', { class: 'media-icon media-icon--volume-off' })}\n ${renderIcon('volume-low', { class: 'media-icon media-icon--volume-low' })}\n ${renderIcon('volume-high', { class: 'media-icon media-icon--volume-high' })}\n </media-mute-button>\n\n <media-popover id=\"video-volume-popover\" open-on-hover delay=\"200\" close-delay=\"100\" side=\"top\" class=\"media-popover media-popover--volume\">\n <media-volume-slider class=\"media-slider\" orientation=\"vertical\" thumb-alignment=\"edge\">\n <media-slider-track class=\"media-slider__track\">\n <media-slider-fill class=\"media-slider__fill\"></media-slider-fill>\n </media-slider-track>\n <media-slider-thumb class=\"media-slider__thumb media-slider__thumb--persistent\"></media-slider-thumb>\n </media-volume-slider>\n </media-popover>\n\n <media-captions-button commandfor=\"captions-tooltip\" class=\"media-button media-button--icon media-button--captions\">\n ${renderIcon('captions-off', { class: 'media-icon media-icon--captions-off' })}\n ${renderIcon('captions-on', { class: 'media-icon media-icon--captions-on' })}\n </media-captions-button>\n <media-tooltip id=\"captions-tooltip\" side=\"top\" class=\"media-tooltip\">\n Toggle captions\n </media-tooltip>\n\n <media-pip-button commandfor=\"pip-tooltip\" class=\"media-button media-button--icon\">\n ${renderIcon('pip', { class: 'media-icon' })}\n </media-pip-button>\n <media-tooltip id=\"pip-tooltip\" side=\"top\" class=\"media-tooltip\">\n <span class=\"media-tooltip-label media-tooltip-label--enter-pip\">Enter picture-in-picture</span>\n <span class=\"media-tooltip-label media-tooltip-label--exit-pip\">Exit picture-in-picture</span>\n </media-tooltip>\n\n <media-fullscreen-button commandfor=\"fullscreen-tooltip\" class=\"media-button media-button--icon media-button--fullscreen\">\n ${renderIcon('fullscreen-enter', { class: 'media-icon media-icon--fullscreen-enter' })}\n ${renderIcon('fullscreen-exit', { class: 'media-icon media-icon--fullscreen-exit' })}\n </media-fullscreen-button>\n <media-tooltip id=\"fullscreen-tooltip\" side=\"top\" class=\"media-tooltip\">\n <span class=\"media-tooltip-label media-tooltip-label--enter-fullscreen\">Enter fullscreen</span>\n <span class=\"media-tooltip-label media-tooltip-label--exit-fullscreen\">Exit fullscreen</span>\n </media-tooltip>\n </span>\n </media-controls>\n\n <div class=\"media-overlay\"></div>\n </media-container>\n `;\n}\n\nexport class MinimalVideoSkinElement extends SkinMixin(ReactiveElement) {\n static readonly tagName = 'video-minimal-skin';\n static styles = createStyles(styles);\n static getTemplateHTML = getTemplateHTML;\n}\n\ncustomElements.define(MinimalVideoSkinElement.tagName, MinimalVideoSkinElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [MinimalVideoSkinElement.tagName]: MinimalVideoSkinElement;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAqBA,MAAM,YAAY;AAElB,SAAS,kBAAkB;AACzB,QAAgB,iKAAA,WAAA,WAAA,EAAA,OAAA,cAAA,CAAA,CAAA,gNAAA,WAAA,WAAA,EAAA,OAAA,kCAAA,CAAA,CAAA,GAAA,WAAA,QAAA,EAAA,OAAA,+BAAA,CAAA,CAAA,GAAA,WAAA,SAAA,EAAA,OAAA,gCAAA,CAAA,CAAA,mYAAA,CAAA,UAAA,oGAAA,WAAA,QAAA,EAAA,OAAA,kCAAA,CAAA,CAAA,mCAAA,UAAA,8HAAA,UAAA,yFAAA,UAAA,oGAAA,WAAA,QAAA,EAAA,OAAA,cAAA,CAAA,CAAA,mCAAA,UAAA,4HAAA,UAAA,6nCAAA,WAAA,cAAA,EAAA,OAAA,qCAAA,CAAA,CAAA,GAAA,WAAA,cAAA,EAAA,OAAA,qCAAA,CAAA,CAAA,GAAA,WAAA,eAAA,EAAA,OAAA,sCAAA,CAAA,CAAA,koBAAA,WAAA,gBAAA,EAAA,OAAA,uCAAA,CAAA,CAAA,GAAA,WAAA,eAAA,EAAA,OAAA,sCAAA,CAAA,CAAA,sNAAA,WAAA,OAAA,EAAA,OAAA,cAAA,CAAA,CAAA,gaAAA,WAAA,oBAAA,EAAA,OAAA,2CAAA,CAAA,CAAA,GAAA,WAAA,mBAAA,EAAA,OAAA,0CAAA,CAAA,CAAA;;;;iBAIK;;;gBACb,aAAqB,qBAAG;;;yBACV;;;AAGxB,eAAa,OAAO,wBAAoB,SAAA,wBAAA"}
|
|
@@ -33,137 +33,7 @@ import { cn } from "@videojs/utils/style";
|
|
|
33
33
|
//#region src/define/video/minimal-skin.tailwind.ts
|
|
34
34
|
const SEEK_TIME = 10;
|
|
35
35
|
function getTemplateHTML() {
|
|
36
|
-
return
|
|
37
|
-
<media-container class="${root(true)}">
|
|
38
|
-
<slot name="media"></slot>
|
|
39
|
-
|
|
40
|
-
<media-buffering-indicator class="${bufferingIndicator}">
|
|
41
|
-
${renderIcon("spinner")}
|
|
42
|
-
</media-buffering-indicator>
|
|
43
|
-
|
|
44
|
-
<!--<div class="${error.root}" role="alertdialog" aria-labelledby="media-error-title" aria-describedby="media-error-description">
|
|
45
|
-
<div class="${error.dialog}">
|
|
46
|
-
<div class="${error.content}">
|
|
47
|
-
<p id="media-error-title" class="${error.title}">Something went wrong.</p>
|
|
48
|
-
<p id="media-error-description">An error occurred while trying to play the video. Please try again.</p>
|
|
49
|
-
</div>
|
|
50
|
-
<div class="${error.actions}">
|
|
51
|
-
<button type="button" class="${cn(button.base, button.default)}">OK</button>
|
|
52
|
-
</div>
|
|
53
|
-
</div>
|
|
54
|
-
</div>-->
|
|
55
|
-
|
|
56
|
-
<media-controls data-controls="" class="${controls}">
|
|
57
|
-
<span class="${buttonGroup}">
|
|
58
|
-
<span class="${tooltipState.play.wrapper}">
|
|
59
|
-
<media-play-button commandfor="play-tooltip" class="${cn(button.base, button.icon, iconState.play.button)}">
|
|
60
|
-
${renderIcon("restart", { class: cn(icon, iconState.play.restart) })}
|
|
61
|
-
${renderIcon("play", { class: cn(icon, iconState.play.play) })}
|
|
62
|
-
${renderIcon("pause", { class: cn(icon, iconState.play.pause) })}
|
|
63
|
-
</media-play-button>
|
|
64
|
-
<media-tooltip id="play-tooltip" side="top" class="${cn(popup.tooltip)}">
|
|
65
|
-
<span class="${tooltipState.play.replay}">Replay</span>
|
|
66
|
-
<span class="${tooltipState.play.play}">Play</span>
|
|
67
|
-
<span class="${tooltipState.play.pause}">Pause</span>
|
|
68
|
-
</media-tooltip>
|
|
69
|
-
</span>
|
|
70
|
-
|
|
71
|
-
<media-seek-button commandfor="seek-backward-tooltip" seconds="${-SEEK_TIME}" class="${cn(button.base, button.icon, seek.button)}">
|
|
72
|
-
<span class="${iconContainer}">
|
|
73
|
-
${renderIcon("seek", { class: cn(icon, iconFlipped) })}
|
|
74
|
-
<span class="${cn(seek.label, seek.labelBackward)}">${SEEK_TIME}</span>
|
|
75
|
-
</span>
|
|
76
|
-
</media-seek-button>
|
|
77
|
-
<media-tooltip id="seek-backward-tooltip" side="top" class="${cn(popup.tooltip)}">
|
|
78
|
-
Seek backward ${SEEK_TIME} seconds
|
|
79
|
-
</media-tooltip>
|
|
80
|
-
|
|
81
|
-
<media-seek-button commandfor="seek-forward-tooltip" seconds="${SEEK_TIME}" class="${cn(button.base, button.icon, seek.button)}">
|
|
82
|
-
<span class="${iconContainer}">
|
|
83
|
-
${renderIcon("seek", { class: icon })}
|
|
84
|
-
<span class="${cn(seek.label, seek.labelForward)}">${SEEK_TIME}</span>
|
|
85
|
-
</span>
|
|
86
|
-
</media-seek-button>
|
|
87
|
-
<media-tooltip id="seek-forward-tooltip" side="top" class="${cn(popup.tooltip)}">
|
|
88
|
-
Seek forward ${SEEK_TIME} seconds
|
|
89
|
-
</media-tooltip>
|
|
90
|
-
</span>
|
|
91
|
-
|
|
92
|
-
<span class="${time.controls}">
|
|
93
|
-
<media-time-group class="${time.group}">
|
|
94
|
-
<media-time type="current" class="${time.current}"></media-time>
|
|
95
|
-
<media-time-separator class="${time.separator}"></media-time-separator>
|
|
96
|
-
<media-time type="duration" class="${time.duration}"></media-time>
|
|
97
|
-
</media-time-group>
|
|
98
|
-
|
|
99
|
-
<media-time-slider class="${slider.root}">
|
|
100
|
-
<media-slider-track class="${slider.track}">
|
|
101
|
-
<media-slider-fill class="${cn(slider.fill.base, slider.fill.fill)}"></media-slider-fill>
|
|
102
|
-
<media-slider-buffer class="${cn(slider.fill.base, slider.fill.buffer)}"></media-slider-buffer>
|
|
103
|
-
</media-slider-track>
|
|
104
|
-
<media-slider-thumb class="${cn(slider.thumb.base, slider.thumb.interactive)}"></media-slider-thumb>
|
|
105
|
-
</media-time-slider>
|
|
106
|
-
</span>
|
|
107
|
-
|
|
108
|
-
<span class="${buttonGroup}">
|
|
109
|
-
<media-playback-rate-button commandfor="playback-rate-tooltip" class="${cn(button.base, button.icon, playbackRate.button)}">
|
|
110
|
-
</media-playback-rate-button>
|
|
111
|
-
<media-tooltip id="playback-rate-tooltip" side="top" class="${cn(popup.tooltip)}">
|
|
112
|
-
Toggle playback rate
|
|
113
|
-
</media-tooltip>
|
|
114
|
-
|
|
115
|
-
<media-mute-button commandfor="video-volume-popover" class="${cn(button.base, button.icon, iconState.mute.button)}">
|
|
116
|
-
${renderIcon("volume-off", { class: cn(icon, iconState.mute.volumeOff) })}
|
|
117
|
-
${renderIcon("volume-low", { class: cn(icon, iconState.mute.volumeLow) })}
|
|
118
|
-
${renderIcon("volume-high", { class: cn(icon, iconState.mute.volumeHigh) })}
|
|
119
|
-
</media-mute-button>
|
|
120
|
-
|
|
121
|
-
<media-popover id="video-volume-popover" open-on-hover delay="200" close-delay="100" side="top" class="${cn(popup.volume)}">
|
|
122
|
-
<media-volume-slider class="${slider.root}" orientation="vertical" thumb-alignment="edge">
|
|
123
|
-
<media-slider-track class="${slider.track}">
|
|
124
|
-
<media-slider-fill class="${cn(slider.fill.base, slider.fill.fill)}"></media-slider-fill>
|
|
125
|
-
</media-slider-track>
|
|
126
|
-
<media-slider-thumb class="${slider.thumb.base}"></media-slider-thumb>
|
|
127
|
-
</media-volume-slider>
|
|
128
|
-
</media-popover>
|
|
129
|
-
|
|
130
|
-
<span class="${tooltipState.captions.wrapper}">
|
|
131
|
-
<media-captions-button commandfor="captions-tooltip" class="${cn(button.base, button.icon, iconState.captions.button)}">
|
|
132
|
-
${renderIcon("captions-off", { class: cn(icon, iconState.captions.off) })}
|
|
133
|
-
${renderIcon("captions-on", { class: cn(icon, iconState.captions.on) })}
|
|
134
|
-
</media-captions-button>
|
|
135
|
-
<media-tooltip id="captions-tooltip" side="top" class="${cn(popup.tooltip)}">
|
|
136
|
-
<span class="${tooltipState.captions.enable}">Enable captions</span>
|
|
137
|
-
<span class="${tooltipState.captions.disable}">Disable captions</span>
|
|
138
|
-
</media-tooltip>
|
|
139
|
-
</span>
|
|
140
|
-
|
|
141
|
-
<span class="${tooltipState.pip.wrapper}">
|
|
142
|
-
<media-pip-button commandfor="pip-tooltip" class="${cn(button.base, button.icon)}">
|
|
143
|
-
${renderIcon("pip", { class: icon })}
|
|
144
|
-
</media-pip-button>
|
|
145
|
-
<media-tooltip id="pip-tooltip" side="top" class="${cn(popup.tooltip)}">
|
|
146
|
-
<span class="${tooltipState.pip.enter}">Enter picture-in-picture</span>
|
|
147
|
-
<span class="${tooltipState.pip.exit}">Exit picture-in-picture</span>
|
|
148
|
-
</media-tooltip>
|
|
149
|
-
</span>
|
|
150
|
-
|
|
151
|
-
<span class="${tooltipState.fullscreen.wrapper}">
|
|
152
|
-
<media-fullscreen-button commandfor="fullscreen-tooltip" class="${cn(button.base, button.icon, iconState.fullscreen.button)}">
|
|
153
|
-
${renderIcon("fullscreen-enter", { class: cn(icon, iconState.fullscreen.enter) })}
|
|
154
|
-
${renderIcon("fullscreen-exit", { class: cn(icon, iconState.fullscreen.exit) })}
|
|
155
|
-
</media-fullscreen-button>
|
|
156
|
-
<media-tooltip id="fullscreen-tooltip" side="top" class="${cn(popup.tooltip)}">
|
|
157
|
-
<span class="${tooltipState.fullscreen.enter}">Enter fullscreen</span>
|
|
158
|
-
<span class="${tooltipState.fullscreen.exit}">Exit fullscreen</span>
|
|
159
|
-
</media-tooltip>
|
|
160
|
-
</span>
|
|
161
|
-
</span>
|
|
162
|
-
</media-controls>
|
|
163
|
-
|
|
164
|
-
<div class="${overlay}"></div>
|
|
165
|
-
</media-container>
|
|
166
|
-
`;
|
|
36
|
+
return `<media-container class="${root(true)}"><slot name="media"></slot><media-buffering-indicator class="${bufferingIndicator}"> ${renderIcon("spinner")} </media-buffering-indicator><!--<div class="${error.root}" role="alertdialog" aria-labelledby="media-error-title" aria-describedby="media-error-description"><div class="${error.dialog}"><div class="${error.content}"><p id="media-error-title" class="${error.title}">Something went wrong.</p><p id="media-error-description">An error occurred while trying to play the video. Please try again.</p></div><div class="${error.actions}"><button type="button" class="${cn(button.base, button.default)}">OK</button></div></div></div>--><media-controls data-controls="" class="${controls}"><span class="${buttonGroup}"><span class="${tooltipState.play.wrapper}"><media-play-button commandfor="play-tooltip" class="${cn(button.base, button.icon, iconState.play.button)}"> ${renderIcon("restart", { class: cn(icon, iconState.play.restart) })} ${renderIcon("play", { class: cn(icon, iconState.play.play) })} ${renderIcon("pause", { class: cn(icon, iconState.play.pause) })} </media-play-button><media-tooltip id="play-tooltip" side="top" class="${cn(popup.tooltip)}"><span class="${tooltipState.play.replay}">Replay</span><span class="${tooltipState.play.play}">Play</span><span class="${tooltipState.play.pause}">Pause</span></media-tooltip></span><media-seek-button commandfor="seek-backward-tooltip" seconds="${-SEEK_TIME}" class="${cn(button.base, button.icon, seek.button)}"><span class="${iconContainer}"> ${renderIcon("seek", { class: cn(icon, iconFlipped) })} <span class="${cn(seek.label, seek.labelBackward)}">${SEEK_TIME}</span></span></media-seek-button><media-tooltip id="seek-backward-tooltip" side="top" class="${cn(popup.tooltip)}"> Seek backward ${SEEK_TIME} seconds </media-tooltip><media-seek-button commandfor="seek-forward-tooltip" seconds="${SEEK_TIME}" class="${cn(button.base, button.icon, seek.button)}"><span class="${iconContainer}"> ${renderIcon("seek", { class: icon })} <span class="${cn(seek.label, seek.labelForward)}">${SEEK_TIME}</span></span></media-seek-button><media-tooltip id="seek-forward-tooltip" side="top" class="${cn(popup.tooltip)}"> Seek forward ${SEEK_TIME} seconds </media-tooltip></span><span class="${time.controls}"><media-time-group class="${time.group}"><media-time type="current" class="${time.current}"></media-time><media-time-separator class="${time.separator}"></media-time-separator><media-time type="duration" class="${time.duration}"></media-time></media-time-group><media-time-slider class="${slider.root}"><media-slider-track class="${slider.track}"><media-slider-fill class="${cn(slider.fill.base, slider.fill.fill)}"></media-slider-fill><media-slider-buffer class="${cn(slider.fill.base, slider.fill.buffer)}"></media-slider-buffer></media-slider-track><media-slider-thumb class="${cn(slider.thumb.base, slider.thumb.interactive)}"></media-slider-thumb></media-time-slider></span><span class="${buttonGroup}"><media-playback-rate-button commandfor="playback-rate-tooltip" class="${cn(button.base, button.icon, playbackRate.button)}"></media-playback-rate-button><media-tooltip id="playback-rate-tooltip" side="top" class="${cn(popup.tooltip)}"> Toggle playback rate </media-tooltip><media-mute-button commandfor="video-volume-popover" class="${cn(button.base, button.icon, iconState.mute.button)}"> ${renderIcon("volume-off", { class: cn(icon, iconState.mute.volumeOff) })} ${renderIcon("volume-low", { class: cn(icon, iconState.mute.volumeLow) })} ${renderIcon("volume-high", { class: cn(icon, iconState.mute.volumeHigh) })} </media-mute-button><media-popover id="video-volume-popover" open-on-hover delay="200" close-delay="100" side="top" class="${cn(popup.volume)}"><media-volume-slider class="${slider.root}" orientation="vertical" thumb-alignment="edge"><media-slider-track class="${slider.track}"><media-slider-fill class="${cn(slider.fill.base, slider.fill.fill)}"></media-slider-fill></media-slider-track><media-slider-thumb class="${slider.thumb.base}"></media-slider-thumb></media-volume-slider></media-popover><span class="${tooltipState.captions.wrapper}"><media-captions-button commandfor="captions-tooltip" class="${cn(button.base, button.icon, iconState.captions.button)}"> ${renderIcon("captions-off", { class: cn(icon, iconState.captions.off) })} ${renderIcon("captions-on", { class: cn(icon, iconState.captions.on) })} </media-captions-button><media-tooltip id="captions-tooltip" side="top" class="${cn(popup.tooltip)}"><span class="${tooltipState.captions.enable}">Enable captions</span><span class="${tooltipState.captions.disable}">Disable captions</span></media-tooltip></span><span class="${tooltipState.pip.wrapper}"><media-pip-button commandfor="pip-tooltip" class="${cn(button.base, button.icon)}"> ${renderIcon("pip", { class: icon })} </media-pip-button><media-tooltip id="pip-tooltip" side="top" class="${cn(popup.tooltip)}"><span class="${tooltipState.pip.enter}">Enter picture-in-picture</span><span class="${tooltipState.pip.exit}">Exit picture-in-picture</span></media-tooltip></span><span class="${tooltipState.fullscreen.wrapper}"><media-fullscreen-button commandfor="fullscreen-tooltip" class="${cn(button.base, button.icon, iconState.fullscreen.button)}"> ${renderIcon("fullscreen-enter", { class: cn(icon, iconState.fullscreen.enter) })} ${renderIcon("fullscreen-exit", { class: cn(icon, iconState.fullscreen.exit) })} </media-fullscreen-button><media-tooltip id="fullscreen-tooltip" side="top" class="${cn(popup.tooltip)}"><span class="${tooltipState.fullscreen.enter}">Enter fullscreen</span><span class="${tooltipState.fullscreen.exit}">Exit fullscreen</span></media-tooltip></span></span></media-controls><div class="${overlay}"></div></media-container>`;
|
|
167
37
|
}
|
|
168
38
|
var MinimalVideoSkinTailwindElement = class extends SkinMixin(ReactiveElement) {
|
|
169
39
|
static {
|