mirror of
https://github.com/zoriya/v10.git
synced 2026-08-05 05:37:21 +00:00
feat(html): add ui bundles for eject (#1206)
This commit is contained in:
@@ -0,0 +1 @@
|
||||
import '../define/audio/minimal-ui';
|
||||
@@ -1,2 +1 @@
|
||||
import '../define/audio/player';
|
||||
import '../define/audio/minimal-skin';
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
import '../define/audio/ui';
|
||||
@@ -1,2 +1 @@
|
||||
import '../define/audio/player';
|
||||
import '../define/audio/skin';
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
import '../define/video/minimal-ui';
|
||||
@@ -1,2 +1 @@
|
||||
import '../define/video/player';
|
||||
import '../define/video/minimal-skin';
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
import '../define/video/ui';
|
||||
@@ -1,2 +1 @@
|
||||
import '../define/video/player';
|
||||
import '../define/video/skin';
|
||||
|
||||
@@ -20,19 +20,8 @@ import { cn } from '@videojs/utils/style';
|
||||
import { safeDefine } from '../safe-define';
|
||||
import { SkinElement } from '../skin-element';
|
||||
|
||||
// Side-effect imports: register all custom elements used in the template.
|
||||
import '../media/container';
|
||||
import '../ui/error-dialog';
|
||||
import '../ui/mute-button';
|
||||
import '../ui/play-button';
|
||||
import '../ui/playback-rate-button';
|
||||
import '../ui/popover';
|
||||
import '../ui/seek-button';
|
||||
import '../ui/time';
|
||||
import '../ui/time-slider';
|
||||
import '../ui/tooltip';
|
||||
import '../ui/tooltip-group';
|
||||
import '../ui/volume-slider';
|
||||
// Register the player, container, and all UI custom elements.
|
||||
import './minimal-ui';
|
||||
|
||||
const SEEK_TIME = 10;
|
||||
|
||||
|
||||
@@ -4,19 +4,8 @@ import { safeDefine } from '../safe-define';
|
||||
import { SkinElement } from '../skin-element';
|
||||
import styles from './minimal-skin.css?inline';
|
||||
|
||||
// Side-effect imports: register all custom elements used in the template.
|
||||
import '../media/container';
|
||||
import '../ui/error-dialog';
|
||||
import '../ui/mute-button';
|
||||
import '../ui/play-button';
|
||||
import '../ui/playback-rate-button';
|
||||
import '../ui/popover';
|
||||
import '../ui/seek-button';
|
||||
import '../ui/time';
|
||||
import '../ui/time-slider';
|
||||
import '../ui/tooltip';
|
||||
import '../ui/tooltip-group';
|
||||
import '../ui/volume-slider';
|
||||
// Register the player, container, and all UI custom elements.
|
||||
import './minimal-ui';
|
||||
|
||||
const SEEK_TIME = 10;
|
||||
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
// Side-effect-only module: registers the audio player, container, and all
|
||||
// audio UI custom elements used by the minimal skin without creating a skin
|
||||
// element. Use this entry when building an ejected (light DOM) player layout.
|
||||
import './player';
|
||||
|
||||
import '../ui/error-dialog';
|
||||
import '../ui/mute-button';
|
||||
import '../ui/play-button';
|
||||
import '../ui/playback-rate-button';
|
||||
import '../ui/popover';
|
||||
import '../ui/seek-button';
|
||||
import '../ui/time';
|
||||
import '../ui/time-slider';
|
||||
import '../ui/tooltip';
|
||||
import '../ui/tooltip-group';
|
||||
import '../ui/volume-slider';
|
||||
@@ -20,19 +20,8 @@ import { cn } from '@videojs/utils/style';
|
||||
import { safeDefine } from '../safe-define';
|
||||
import { SkinElement } from '../skin-element';
|
||||
|
||||
// Side-effect imports: register all custom elements used in the template.
|
||||
import '../media/container';
|
||||
import '../ui/error-dialog';
|
||||
import '../ui/mute-button';
|
||||
import '../ui/play-button';
|
||||
import '../ui/playback-rate-button';
|
||||
import '../ui/popover';
|
||||
import '../ui/seek-button';
|
||||
import '../ui/time';
|
||||
import '../ui/time-slider';
|
||||
import '../ui/tooltip';
|
||||
import '../ui/tooltip-group';
|
||||
import '../ui/volume-slider';
|
||||
// Register the player, container, and all UI custom elements.
|
||||
import './ui';
|
||||
|
||||
const SEEK_TIME = 10;
|
||||
|
||||
|
||||
@@ -4,19 +4,8 @@ import { safeDefine } from '../safe-define';
|
||||
import { SkinElement } from '../skin-element';
|
||||
import styles from './skin.css?inline';
|
||||
|
||||
// Side-effect imports: register all custom elements used in the template.
|
||||
import '../media/container';
|
||||
import '../ui/error-dialog';
|
||||
import '../ui/mute-button';
|
||||
import '../ui/play-button';
|
||||
import '../ui/playback-rate-button';
|
||||
import '../ui/popover';
|
||||
import '../ui/seek-button';
|
||||
import '../ui/time';
|
||||
import '../ui/time-slider';
|
||||
import '../ui/tooltip';
|
||||
import '../ui/tooltip-group';
|
||||
import '../ui/volume-slider';
|
||||
// Register the player, container, and all UI custom elements.
|
||||
import './ui';
|
||||
|
||||
const SEEK_TIME = 10;
|
||||
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
// Side-effect-only module: registers the audio player, container, and all
|
||||
// audio UI custom elements without creating a skin element. Use this entry
|
||||
// when building an ejected (light DOM) player layout.
|
||||
import './player';
|
||||
|
||||
import '../ui/error-dialog';
|
||||
import '../ui/mute-button';
|
||||
import '../ui/play-button';
|
||||
import '../ui/playback-rate-button';
|
||||
import '../ui/popover';
|
||||
import '../ui/seek-button';
|
||||
import '../ui/time';
|
||||
import '../ui/time-slider';
|
||||
import '../ui/tooltip';
|
||||
import '../ui/tooltip-group';
|
||||
import '../ui/volume-slider';
|
||||
@@ -25,25 +25,8 @@ import { cn } from '@videojs/utils/style';
|
||||
import { safeDefine } from '../safe-define';
|
||||
import { SkinElement } from '../skin-element';
|
||||
|
||||
// Side-effect imports: register all custom elements used in the template.
|
||||
import '../media/container';
|
||||
import '../ui/buffering-indicator';
|
||||
import '../ui/captions-button';
|
||||
import '../ui/controls';
|
||||
import '../ui/error-dialog';
|
||||
import '../ui/fullscreen-button';
|
||||
import '../ui/mute-button';
|
||||
import '../ui/pip-button';
|
||||
import '../ui/play-button';
|
||||
import '../ui/playback-rate-button';
|
||||
import '../ui/popover';
|
||||
import '../ui/poster';
|
||||
import '../ui/seek-button';
|
||||
import '../ui/time';
|
||||
import '../ui/time-slider';
|
||||
import '../ui/tooltip';
|
||||
import '../ui/tooltip-group';
|
||||
import '../ui/volume-slider';
|
||||
// Register the player, container, and all UI custom elements.
|
||||
import './minimal-ui';
|
||||
|
||||
const SEEK_TIME = 10;
|
||||
|
||||
|
||||
@@ -4,24 +4,8 @@ import { safeDefine } from '../safe-define';
|
||||
import { SkinElement } from '../skin-element';
|
||||
import styles from './minimal-skin.css?inline';
|
||||
|
||||
// Side-effect imports: register all custom elements used in the template.
|
||||
import '../media/container';
|
||||
import '../ui/buffering-indicator';
|
||||
import '../ui/controls';
|
||||
import '../ui/error-dialog';
|
||||
import '../ui/fullscreen-button';
|
||||
import '../ui/mute-button';
|
||||
import '../ui/pip-button';
|
||||
import '../ui/play-button';
|
||||
import '../ui/playback-rate-button';
|
||||
import '../ui/popover';
|
||||
import '../ui/poster';
|
||||
import '../ui/seek-button';
|
||||
import '../ui/time';
|
||||
import '../ui/time-slider';
|
||||
import '../ui/tooltip';
|
||||
import '../ui/tooltip-group';
|
||||
import '../ui/volume-slider';
|
||||
// Register the player, container, and all UI custom elements.
|
||||
import './minimal-ui';
|
||||
|
||||
const SEEK_TIME = 10;
|
||||
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
// Side-effect-only module: registers the video player, container, and all
|
||||
// video UI custom elements used by the minimal skin without creating a skin
|
||||
// element. Use this entry when building an ejected (light DOM) player layout.
|
||||
import './player';
|
||||
|
||||
import '../ui/buffering-indicator';
|
||||
import '../ui/captions-button';
|
||||
import '../ui/controls';
|
||||
import '../ui/error-dialog';
|
||||
import '../ui/fullscreen-button';
|
||||
import '../ui/mute-button';
|
||||
import '../ui/pip-button';
|
||||
import '../ui/play-button';
|
||||
import '../ui/playback-rate-button';
|
||||
import '../ui/popover';
|
||||
import '../ui/poster';
|
||||
import '../ui/seek-button';
|
||||
import '../ui/time';
|
||||
import '../ui/time-slider';
|
||||
import '../ui/tooltip';
|
||||
import '../ui/tooltip-group';
|
||||
import '../ui/volume-slider';
|
||||
@@ -25,25 +25,8 @@ import { cn } from '@videojs/utils/style';
|
||||
import { safeDefine } from '../safe-define';
|
||||
import { SkinElement } from '../skin-element';
|
||||
|
||||
// Side-effect imports: register all custom elements used in the template.
|
||||
import '../media/container';
|
||||
import '../ui/buffering-indicator';
|
||||
import '../ui/captions-button';
|
||||
import '../ui/error-dialog';
|
||||
import '../ui/controls';
|
||||
import '../ui/fullscreen-button';
|
||||
import '../ui/mute-button';
|
||||
import '../ui/pip-button';
|
||||
import '../ui/play-button';
|
||||
import '../ui/playback-rate-button';
|
||||
import '../ui/popover';
|
||||
import '../ui/poster';
|
||||
import '../ui/seek-button';
|
||||
import '../ui/time';
|
||||
import '../ui/time-slider';
|
||||
import '../ui/tooltip';
|
||||
import '../ui/tooltip-group';
|
||||
import '../ui/volume-slider';
|
||||
// Register the player, container, and all UI custom elements.
|
||||
import './ui';
|
||||
|
||||
const SEEK_TIME = 10;
|
||||
|
||||
|
||||
@@ -4,25 +4,8 @@ import { safeDefine } from '../safe-define';
|
||||
import { SkinElement } from '../skin-element';
|
||||
import styles from './skin.css?inline';
|
||||
|
||||
// Side-effect imports: register all custom elements used in the template.
|
||||
import '../media/container';
|
||||
import '../ui/buffering-indicator';
|
||||
import '../ui/captions-button';
|
||||
import '../ui/error-dialog';
|
||||
import '../ui/controls';
|
||||
import '../ui/fullscreen-button';
|
||||
import '../ui/mute-button';
|
||||
import '../ui/pip-button';
|
||||
import '../ui/play-button';
|
||||
import '../ui/playback-rate-button';
|
||||
import '../ui/popover';
|
||||
import '../ui/poster';
|
||||
import '../ui/seek-button';
|
||||
import '../ui/time';
|
||||
import '../ui/time-slider';
|
||||
import '../ui/tooltip';
|
||||
import '../ui/tooltip-group';
|
||||
import '../ui/volume-slider';
|
||||
// Register the player, container, and all UI custom elements.
|
||||
import './ui';
|
||||
|
||||
const SEEK_TIME = 10;
|
||||
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
// Side-effect-only module: registers the video player, container, and all
|
||||
// video UI custom elements without creating a skin element. Use this entry
|
||||
// when building an ejected (light DOM) player layout.
|
||||
import './player';
|
||||
|
||||
import '../ui/buffering-indicator';
|
||||
import '../ui/captions-button';
|
||||
import '../ui/controls';
|
||||
import '../ui/error-dialog';
|
||||
import '../ui/fullscreen-button';
|
||||
import '../ui/mute-button';
|
||||
import '../ui/pip-button';
|
||||
import '../ui/play-button';
|
||||
import '../ui/playback-rate-button';
|
||||
import '../ui/popover';
|
||||
import '../ui/poster';
|
||||
import '../ui/seek-button';
|
||||
import '../ui/time';
|
||||
import '../ui/time-slider';
|
||||
import '../ui/tooltip';
|
||||
import '../ui/tooltip-group';
|
||||
import '../ui/volume-slider';
|
||||
@@ -12,7 +12,17 @@ const skinsDir = resolve(dirname(fileURLToPath(import.meta.url)), '../skins/src'
|
||||
|
||||
const buildModes: BuildMode[] = ['dev', 'prod'];
|
||||
|
||||
const presets = ['video', 'video-minimal', 'audio', 'audio-minimal', 'background'];
|
||||
const presets = [
|
||||
'video',
|
||||
'video-minimal',
|
||||
'video-ui',
|
||||
'video-minimal-ui',
|
||||
'audio',
|
||||
'audio-minimal',
|
||||
'audio-ui',
|
||||
'audio-minimal-ui',
|
||||
'background',
|
||||
];
|
||||
const media = ['hls-video', 'mux-video', 'simple-hls-video', 'dash-video'];
|
||||
|
||||
const entries = [
|
||||
|
||||
@@ -15,7 +15,8 @@
|
||||
.media-default-skin > img:not([data-visible]) {
|
||||
opacity: 0;
|
||||
}
|
||||
.media-default-skin media-poster ::slotted(img) {
|
||||
.media-default-skin media-poster ::slotted(img),
|
||||
.media-default-skin media-poster img {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
width: 100%;
|
||||
@@ -31,6 +32,7 @@
|
||||
}
|
||||
|
||||
.media-default-skin:fullscreen media-poster ::slotted(img),
|
||||
.media-default-skin:fullscreen media-poster img,
|
||||
.media-default-skin:fullscreen > img {
|
||||
object-fit: contain;
|
||||
}
|
||||
|
||||
@@ -15,7 +15,8 @@
|
||||
.media-minimal-skin > img:not([data-visible]) {
|
||||
opacity: 0;
|
||||
}
|
||||
.media-minimal-skin media-poster ::slotted(img) {
|
||||
.media-minimal-skin media-poster ::slotted(img),
|
||||
.media-minimal-skin media-poster img {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
width: 100%;
|
||||
@@ -31,6 +32,7 @@
|
||||
}
|
||||
|
||||
.media-minimal-skin:fullscreen media-poster ::slotted(img),
|
||||
.media-minimal-skin:fullscreen media-poster img,
|
||||
.media-minimal-skin:fullscreen > img {
|
||||
object-fit: contain;
|
||||
}
|
||||
|
||||
@@ -679,19 +679,10 @@ function resolveCss(cssPath: string): string {
|
||||
}
|
||||
|
||||
function getHtmlSkinCdnFileName(skin: HtmlSkinDef): string {
|
||||
if (skin.id.includes('minimal-video')) {
|
||||
return 'video-minimal';
|
||||
}
|
||||
const isMinimal = skin.id.includes('minimal');
|
||||
const prefix = skin.id.includes('video') ? 'video' : 'audio';
|
||||
|
||||
if (skin.id.includes('minimal-audio')) {
|
||||
return 'audio-minimal';
|
||||
}
|
||||
|
||||
if (skin.id.includes('video')) {
|
||||
return 'video';
|
||||
}
|
||||
|
||||
return 'audio';
|
||||
return isMinimal ? `${prefix}-minimal-ui` : `${prefix}-ui`;
|
||||
}
|
||||
|
||||
function prependHtmlSkinScripts(html: string, skin: HtmlSkinDef): string {
|
||||
|
||||
Reference in New Issue
Block a user