@glitchlab/vue-video-player 1.5.0 → 1.6.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.
Files changed (35) hide show
  1. package/README.md +112 -15
  2. package/dist/HLSPlayer.vue.d.ts +4 -0
  3. package/dist/HLSPlayer.vue.d.ts.map +1 -1
  4. package/dist/VideoPlayer.vue.d.ts +9 -0
  5. package/dist/VideoPlayer.vue.d.ts.map +1 -1
  6. package/dist/components/ControlBar.vue.d.ts +24 -0
  7. package/dist/components/ControlBar.vue.d.ts.map +1 -1
  8. package/dist/components/{IconQuality.vue.d.ts → IconAlert.vue.d.ts} +1 -1
  9. package/dist/components/IconAlert.vue.d.ts.map +1 -0
  10. package/dist/components/IconCheck.vue.d.ts +16 -0
  11. package/dist/components/IconCheck.vue.d.ts.map +1 -0
  12. package/dist/components/IconChevronRight.vue.d.ts +16 -0
  13. package/dist/components/IconChevronRight.vue.d.ts.map +1 -0
  14. package/dist/components/IconGear.vue.d.ts +16 -0
  15. package/dist/components/IconGear.vue.d.ts.map +1 -0
  16. package/dist/components/IconRefresh.vue.d.ts +16 -0
  17. package/dist/components/{IconQuality.vue.d.ts.map → IconRefresh.vue.d.ts.map} +1 -1
  18. package/dist/components/SettingsMenu.vue.d.ts +61 -0
  19. package/dist/components/SettingsMenu.vue.d.ts.map +1 -0
  20. package/dist/index.cjs +3 -3
  21. package/dist/index.cjs.map +1 -1
  22. package/dist/index.d.ts +2 -1
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.mjs +1772 -1287
  25. package/dist/index.mjs.map +1 -1
  26. package/dist/style.css +1 -1
  27. package/dist/utils/caption-style.d.ts +17 -0
  28. package/dist/utils/caption-style.d.ts.map +1 -0
  29. package/dist/utils/preferences.d.ts +26 -0
  30. package/dist/utils/preferences.d.ts.map +1 -0
  31. package/dist/utils/theme.d.ts +15 -0
  32. package/dist/utils/theme.d.ts.map +1 -0
  33. package/dist/utils/types.d.ts +46 -0
  34. package/dist/utils/types.d.ts.map +1 -1
  35. package/package.json +1 -1
package/README.md CHANGED
@@ -15,20 +15,28 @@ A lightweight, HLS-capable Vue 3 video player with a polished overlay UI, device
15
15
 
16
16
  - **HLS streaming** via `hls.js` with automatic native fallback (Safari)
17
17
  - **YouTube support** — pass a YouTube URL and it embeds automatically, no extra config
18
- - **Custom control bar** (default) — play/seek/time/speed/quality/captions/volume/PiP/fullscreen, consistent across every browser and OS. Or use `"native"` controls, or none.
18
+ - **Custom control bar** (default) — a clean YouTube-style layout: full-width seek bar, playback controls on the left, utilities on the right. Or use `"native"` controls, or none.
19
+ - **Settings menu** — one gear button with a two-level menu for speed, quality, subtitles and audio track
19
20
  - **Thumbnail seek preview** — hover the seek bar to see a frame preview from a WebVTT storyboard sprite
20
21
  - **Chapters** — named timeline segments with tick marks on the seek bar, from a WebVTT file or an inline array
21
22
  - **Playlist** — play a list of videos in sequence with auto-advance and prev/next buttons
22
23
  - **Quality selector** — `Auto` + per-resolution switching for multi-rendition HLS streams
23
24
  - **Audio-track switcher** — pick between multiple audio tracks (e.g. languages) when the stream provides them
24
- - **Captions** — `<track>` subtitles/captions with an in-bar menu
25
+ - **Captions** — `<track>` subtitles/captions, with optional cue styling (font size, colors, background)
26
+ - **Live stream UX** — a LIVE badge for live HLS, with click-to-jump-to-edge
27
+ - **Mini-player** — floats to a viewport corner when scrolled out of view while playing
28
+ - **Ambient mode** — an optional soft, blurred color glow behind the player
29
+ - **Loading & error states** — a buffering spinner and a styled error overlay with a retry button
25
30
  - **Event emits** — `play`, `pause`, `ended`, `time-update`, `seeked`, `volume-change`, `milestone`, `error`
26
- - **Keyboard shortcuts** — space, arrows, `M`, `F`, `P`
31
+ - **Persisted preferences** — opt-in volume, speed and resume-position memory via `localStorage`
32
+ - **Theming** — rebrand with a `theme` prop (accent color, radius) or `--gvp-*` CSS variables
33
+ - **Keyboard shortcuts** + double-click to toggle fullscreen
34
+ - **Accessible** — focus rings, ARIA on every control, screen-reader announcements, `prefers-reduced-motion`
27
35
  - **Nuxt 3 module** — `modules: ["@glitchlab/vue-video-player/nuxt"]` and you're done
28
36
  - **Scoped CSS, no preflight** — all styles live under `.gvp-root`. No `*` resets, no theme tokens leaked into your design system
29
37
  - **Device-mode toggle** — flip between desktop (16:9) and mobile (9:16) presets
30
38
  - **Hover-to-play** with safe play/pause race handling
31
- - Lightweight: ~2 KB CSS + ~13 KB JS gzipped (hls.js is a peer dependency, loaded once)
39
+ - Lightweight: ~3.5 KB CSS + ~19 KB JS gzipped (hls.js is a peer dependency, loaded once)
32
40
  - Fully typed; SSR-safe
33
41
 
34
42
  ---
@@ -120,6 +128,12 @@ Then use the component anywhere — no manual import required:
120
128
  | `aspectRatio` | `{ desktop?: AspectRatio; mobile?: AspectRatio }` | `{ desktop: "16/9", mobile: "9/16" }` | Aspect ratio per device mode. `AspectRatio` is `` `${number}/${number}` ``. |
121
129
  | `hlsConfig` | `Hls.HlsConfig` | — | Optional hls.js config. Use a stable reference (e.g. `shallowRef`) to avoid HLS rebuilds.|
122
130
  | `isHls` | `boolean` | `false` | Force HLS routing even when the URL doesn't end in `.m3u8`. |
131
+ | `theme` | `PlayerTheme` | — | `{ accent?, radius? }` — rebrand via CSS variables. See [Theming](#theming). |
132
+ | `captionStyle` | `CaptionStyle` | — | `{ fontSize?, textColor?, backgroundColor?, backgroundOpacity? }` — style caption cues. |
133
+ | `miniPlayer` | `boolean` | `false` | Float to a viewport corner when scrolled out of view while playing. See [Mini-player](#mini-player). |
134
+ | `miniPlayerPosition`| `"bottom-right" \| "bottom-left" \| "top-right" \| "top-left"` | `"bottom-right"` | Corner the mini-player docks to. |
135
+ | `ambientMode` | `boolean` | `false` | Show a soft, blurred color glow behind the player. See [Ambient mode](#ambient-mode). |
136
+ | `persistKey` | `string` | — | When set, persists volume, speed and resume position to `localStorage` under this key. |
123
137
 
124
138
  ## Events
125
139
 
@@ -162,19 +176,14 @@ The branded control bar is **on by default** — it looks and behaves the same a
162
176
  <VueVideoPlayer src="/videos/movie.m3u8" :controls="false" />
163
177
  ```
164
178
 
165
- The bar includes, left to right:
179
+ The bar uses a YouTube-style layout — a **full-width seek bar** on top, then a button row:
166
180
 
167
- - **Play / pause**
168
- - **Seek bar** with a buffered indicator (live scrub — the video previews as you drag)
169
- - **Time** — `current / duration`
170
- - **Playback speed** — `0.5×` to `2×` menu
171
- - **Quality** — resolution selector (`Auto` + each height) — appears only for HLS streams with more than one quality level
172
- - **Captions** — appears only when the source has `<track>` subtitle/caption tracks
173
- - **Volume** — mute toggle + slider (slider expands on hover)
174
- - **Picture-in-Picture** — appears only where the browser supports it
175
- - **Fullscreen**
181
+ - **Left group** — play/pause, prev/next (when a playlist is active), volume (mute toggle + slider that expands on hover), and the time / LIVE badge
182
+ - **Right group** — the settings gear, Picture-in-Picture, and fullscreen
176
183
 
177
- It **auto-hides 3 seconds** after the last interaction during playback and reappears on mouse move; it stays visible while paused. Clicking anywhere on the video toggles play/pause.
184
+ The **settings gear** opens a two-level menu grouping **playback speed**, **quality** (resolution), **subtitles** and **audio track**. Rows for unavailable settings (e.g. no extra audio tracks) are hidden, so the menu never shows a dead option.
185
+
186
+ It **auto-hides 3 seconds** after the last interaction during playback and reappears on mouse move; it stays visible while paused. **Single-click** the video toggles play/pause; **double-click** toggles fullscreen.
178
187
 
179
188
  ### Keyboard shortcuts
180
189
 
@@ -189,6 +198,8 @@ When the player has focus (`controls="custom"`):
189
198
  | `F` | Fullscreen toggle |
190
199
  | `P` | Picture-in-Picture |
191
200
 
201
+ Double-clicking the video surface also toggles fullscreen.
202
+
192
203
  ### Platform notes
193
204
 
194
205
  The bar degrades gracefully where a platform can't support a control:
@@ -304,6 +315,92 @@ Wire the player's playback events into your own analytics or UI without a separa
304
315
 
305
316
  ---
306
317
 
318
+ ## Theming
319
+
320
+ Rebrand the player without overriding component classes. Pass a `theme` prop — it maps to CSS custom properties on the player root:
321
+
322
+ ```vue
323
+ <VueVideoPlayer
324
+ src="/videos/movie.m3u8"
325
+ :theme="{ accent: '#e11d48', radius: '0.5rem' }"
326
+ />
327
+ ```
328
+
329
+ | Field | Maps to | Description |
330
+ |----------|--------------------|------------------------------------------------------|
331
+ | `accent` | `--gvp-accent` | Seek progress, play button, active states. Any CSS color. |
332
+ | `radius` | `--gvp-radius` | Corner radius of the player frame. |
333
+
334
+ For deeper control, set the `--gvp-*` variables (or override `.gvp-*` classes) directly in your own CSS:
335
+
336
+ ```css
337
+ .gvp-root { --gvp-accent-rgb: 225 29 72; --gvp-radius: 0.5rem; }
338
+ ```
339
+
340
+ ---
341
+
342
+ ## Mini-player
343
+
344
+ Set `miniPlayer` and the player floats to a corner of the viewport when it scrolls out of view **while playing** — so viewers keep watching as they read the rest of the page. It returns when scrolled back; a close button dismisses it.
345
+
346
+ ```vue
347
+ <VueVideoPlayer
348
+ src="/videos/movie.m3u8"
349
+ miniPlayer
350
+ miniPlayerPosition="bottom-right"
351
+ />
352
+ ```
353
+
354
+ ---
355
+
356
+ ## Ambient mode
357
+
358
+ `ambientMode` adds a soft, blurred color glow behind the player that samples the current video frame (YouTube's "ambient mode"). Give the player some surrounding padding so the glow is visible.
359
+
360
+ ```vue
361
+ <VueVideoPlayer src="/videos/movie.m3u8" ambientMode />
362
+ ```
363
+
364
+ ---
365
+
366
+ ## Live streams
367
+
368
+ Live HLS streams are detected automatically (via hls.js's live flag). The control bar shows a **LIVE badge** instead of a duration — red and pulsing at the live edge, dimmed when behind. Clicking the badge jumps back to the live edge. No prop needed.
369
+
370
+ ---
371
+
372
+ ## Persisted preferences
373
+
374
+ Pass a `persistKey` and the player remembers volume, mute, playback speed and the **resume position** across reloads and revisits, via `localStorage`:
375
+
376
+ ```vue
377
+ <VueVideoPlayer src="/videos/course-1.m3u8" persistKey="my-course" />
378
+ ```
379
+
380
+ Resume position is tracked per source URL, so one key can resume many videos independently. Omit `persistKey` to disable persistence entirely.
381
+
382
+ ---
383
+
384
+ ## Caption styling
385
+
386
+ Style subtitle/caption cue text with `captionStyle` — applied via the `::cue` pseudo-element:
387
+
388
+ ```vue
389
+ <VueVideoPlayer
390
+ src="/videos/talk.m3u8"
391
+ :caption-style="{
392
+ fontSize: '1.4em',
393
+ textColor: '#fde047',
394
+ backgroundColor: '#000000',
395
+ backgroundOpacity: 0.75,
396
+ }"
397
+ >
398
+ <track kind="subtitles" src="/subs/en.vtt" srclang="en" label="English" default />
399
+ </VueVideoPlayer>
400
+ ```
401
+
402
+ ---
403
+
307
404
  ## YouTube URLs
308
405
 
309
406
  Pass any common YouTube URL as `src` and the player swaps the `<video>` element for a privacy-enhanced (`youtube-nocookie.com`) embed inside the same styled frame — no extra prop needed:
@@ -36,6 +36,8 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
36
36
  play: () => void;
37
37
  pause: () => void;
38
38
  ended: () => void;
39
+ "fatal-error": () => void;
40
+ "live-change": (isLive: boolean) => void;
39
41
  "audio-tracks": (tracks: AudioTrackInfo[]) => void;
40
42
  "quality-levels": (levels: QualityLevelInfo[]) => void;
41
43
  "current-level": (index: number) => void;
@@ -68,6 +70,8 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
68
70
  onPlay?: (() => any) | undefined;
69
71
  onPause?: (() => any) | undefined;
70
72
  onEnded?: (() => any) | undefined;
73
+ "onFatal-error"?: (() => any) | undefined;
74
+ "onLive-change"?: ((isLive: boolean) => any) | undefined;
71
75
  "onAudio-tracks"?: ((tracks: AudioTrackInfo[]) => any) | undefined;
72
76
  "onQuality-levels"?: ((levels: QualityLevelInfo[]) => any) | undefined;
73
77
  "onCurrent-level"?: ((index: number) => any) | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"HLSPlayer.vue.d.ts","sourceRoot":"","sources":["../src/HLSPlayer.vue"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAqB,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAsOlF,iBAAS,cAAc;qBA2DO,GAAG;EAGhC;AA2BD,QAAA,MAAM,eAAe;SAOZ,MAAM;gBACC,SAAS;YACb,OAAO;YACP,OAAO;WACR,OAAO;eACH,OAAO;eACP,OAAO;kBACJ,OAAO;cACX,MAAM;aACP,MAAM;YACP,MAAM;IACd,kFAAkF;sBAChE,MAAM;IACxB,oEAAoE;wBAChD,MAAM;;;;;;;;;;;;;;;;;;;;SAdrB,MAAM;gBACC,SAAS;YACb,OAAO;YACP,OAAO;WACR,OAAO;eACH,OAAO;eACP,OAAO;kBACJ,OAAO;cACX,MAAM;aACP,MAAM;YACP,MAAM;IACd,kFAAkF;sBAChE,MAAM;IACxB,oEAAoE;wBAChD,MAAM;;;;;;;;;;;;;;;;;;WAXlB,OAAO;UACR,OAAO;cACH,OAAO;cACP,OAAO;iBACJ,OAAO;aACX,MAAM;qBAIE,MAAM;uBAEJ,MAAM;4EAG5B,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAAvG,wBAAwG;AACxG,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC;AAC9M,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI;KAE1B,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QACxE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;KACb,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACT,CAAC;AACN,KAAK,cAAc,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC;AACxD,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAAE,QAAO;QAClD,MAAM,EAAE,CAAC,CAAC;KACT,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"HLSPlayer.vue.d.ts","sourceRoot":"","sources":["../src/HLSPlayer.vue"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAqB,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAyPlF,iBAAS,cAAc;qBA2DO,GAAG;EAGhC;AA2BD,QAAA,MAAM,eAAe;SAOZ,MAAM;gBACC,SAAS;YACb,OAAO;YACP,OAAO;WACR,OAAO;eACH,OAAO;eACP,OAAO;kBACJ,OAAO;cACX,MAAM;aACP,MAAM;YACP,MAAM;IACd,kFAAkF;sBAChE,MAAM;IACxB,oEAAoE;wBAChD,MAAM;;;;;;;;;;;;;;;;;;;;;;SAdrB,MAAM;gBACC,SAAS;YACb,OAAO;YACP,OAAO;WACR,OAAO;eACH,OAAO;eACP,OAAO;kBACJ,OAAO;cACX,MAAM;aACP,MAAM;YACP,MAAM;IACd,kFAAkF;sBAChE,MAAM;IACxB,oEAAoE;wBAChD,MAAM;;;;;;;;;;;;;;;;;;;;WAXlB,OAAO;UACR,OAAO;cACH,OAAO;cACP,OAAO;iBACJ,OAAO;aACX,MAAM;qBAIE,MAAM;uBAEJ,MAAM;4EAG5B,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAAvG,wBAAwG;AACxG,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC;AAC9M,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI;KAE1B,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QACxE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;KACb,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACT,CAAC;AACN,KAAK,cAAc,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC;AACxD,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAAE,QAAO;QAClD,MAAM,EAAE,CAAC,CAAC;KACT,CAAA;CAAE,CAAC"}
@@ -17,6 +17,9 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
17
17
  closable: boolean;
18
18
  defaultIndex: number;
19
19
  autoAdvance: boolean;
20
+ miniPlayer: boolean;
21
+ miniPlayerPosition: string;
22
+ ambientMode: boolean;
20
23
  class: string;
21
24
  }>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
22
25
  play: () => void;
@@ -43,6 +46,9 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
43
46
  closable: boolean;
44
47
  defaultIndex: number;
45
48
  autoAdvance: boolean;
49
+ miniPlayer: boolean;
50
+ miniPlayerPosition: string;
51
+ ambientMode: boolean;
46
52
  class: string;
47
53
  }>>> & Readonly<{
48
54
  onPlay?: (() => any) | undefined;
@@ -66,6 +72,9 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
66
72
  showDeviceToggle: boolean;
67
73
  defaultDevice: DeviceMode;
68
74
  hoverPlay: boolean;
75
+ miniPlayer: boolean;
76
+ miniPlayerPosition: "bottom-right" | "bottom-left" | "top-right" | "top-left";
77
+ ambientMode: boolean;
69
78
  closable: boolean;
70
79
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
71
80
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
@@ -1 +1 @@
1
- {"version":3,"file":"VideoPlayer.vue.d.ts","sourceRoot":"","sources":["../src/VideoPlayer.vue"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAyVhF,iBAAS,cAAc;qBAudO,GAAG;EAGhC;AA2DD,QAAA,MAAM,eAAe;YAKsE,MAAM;eAAa,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;YAA1B,MAAM;eAAa,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAA1B,MAAM;;;;;;cAAa,OAAO;4EAEnH,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAAvG,wBAAwG;AACxG,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC;AAC9M,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI;KAE1B,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QACxE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;KACb,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACT,CAAC;AACN,KAAK,cAAc,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC;AACxD,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAAE,QAAO;QAClD,MAAM,EAAE,CAAC,CAAC;KACT,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"VideoPlayer.vue.d.ts","sourceRoot":"","sources":["../src/VideoPlayer.vue"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAilBhF,iBAAS,cAAc;qBAgrBO,GAAG;EAGhC;AA4ED,QAAA,MAAM,eAAe;YAKsE,MAAM;eAAa,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAA1B,MAAM;eAAa,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAA1B,MAAM;;;;;;;;;cAAa,OAAO;4EAEnH,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAAvG,wBAAwG;AACxG,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC;AAC9M,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI;KAE1B,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QACxE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;KACb,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACT,CAAC;AACN,KAAK,cAAc,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC;AACxD,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAAE,QAAO;QAClD,MAAM,EAAE,CAAC,CAAC;KACT,CAAA;CAAE,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { QualityLevelInfo } from '../utils/quality-levels';
2
+ import { AudioTrackInfo } from '../utils/audio-tracks';
2
3
 
3
4
  declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
4
5
  video: HTMLVideoElement | null;
@@ -23,14 +24,24 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
23
24
  hasPrev?: boolean;
24
25
  /** Whether a next playlist item exists. Shows the next button. */
25
26
  hasNext?: boolean;
27
+ /** Whether the source is a live stream (from hls.js's live flag). */
28
+ isLive?: boolean;
29
+ /** Available audio tracks (empty / single hides the audio submenu). */
30
+ audioTracks?: AudioTrackInfo[];
31
+ /** Index of the active audio track, or -1 for the source default. */
32
+ audioTrackIndex?: number;
26
33
  }>, {
27
34
  qualityLevels: () => never[];
28
35
  currentLevel: number;
29
36
  selectedLevel: number;
30
37
  hasPrev: boolean;
31
38
  hasNext: boolean;
39
+ isLive: boolean;
40
+ audioTracks: () => never[];
41
+ audioTrackIndex: number;
32
42
  }>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
33
43
  "select-level": (index: number) => void;
44
+ "select-audio-track": (index: number) => void;
34
45
  prev: () => void;
35
46
  next: () => void;
36
47
  }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
@@ -56,22 +67,35 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
56
67
  hasPrev?: boolean;
57
68
  /** Whether a next playlist item exists. Shows the next button. */
58
69
  hasNext?: boolean;
70
+ /** Whether the source is a live stream (from hls.js's live flag). */
71
+ isLive?: boolean;
72
+ /** Available audio tracks (empty / single hides the audio submenu). */
73
+ audioTracks?: AudioTrackInfo[];
74
+ /** Index of the active audio track, or -1 for the source default. */
75
+ audioTrackIndex?: number;
59
76
  }>, {
60
77
  qualityLevels: () => never[];
61
78
  currentLevel: number;
62
79
  selectedLevel: number;
63
80
  hasPrev: boolean;
64
81
  hasNext: boolean;
82
+ isLive: boolean;
83
+ audioTracks: () => never[];
84
+ audioTrackIndex: number;
65
85
  }>>> & Readonly<{
66
86
  "onSelect-level"?: ((index: number) => any) | undefined;
87
+ "onSelect-audio-track"?: ((index: number) => any) | undefined;
67
88
  onPrev?: (() => any) | undefined;
68
89
  onNext?: (() => any) | undefined;
69
90
  }>, {
91
+ audioTrackIndex: number;
70
92
  currentLevel: number;
93
+ audioTracks: AudioTrackInfo[];
71
94
  qualityLevels: QualityLevelInfo[];
72
95
  selectedLevel: number;
73
96
  hasPrev: boolean;
74
97
  hasNext: boolean;
98
+ isLive: boolean;
75
99
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
76
100
  export default _default;
77
101
  type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
@@ -1 +1 @@
1
- {"version":3,"file":"ControlBar.vue.d.ts","sourceRoot":"","sources":["../../src/components/ControlBar.vue"],"names":[],"mappings":"AAiBA,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;;WA8zCnE,gBAAgB,GAAG,IAAI;eACnB,OAAO;eACP,WAAW,GAAG,IAAI;kBACf,MAAM,IAAI;IACxB,sDAAsD;oBACtC,gBAAgB,EAAE;IAClC,uEAAuE;mBACxD,MAAM;IACrB,mDAAmD;oBACnC,MAAM;IACtB,kEAAkE;iBACrD,MAAM;IACnB,mEAAmE;eACxD,MAAM,GAAG,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACzE,sEAAsE;cAC5D,OAAO;IACjB,kEAAkE;cACxD,OAAO;;;;;;;;;;;;WAjBV,gBAAgB,GAAG,IAAI;eACnB,OAAO;eACP,WAAW,GAAG,IAAI;kBACf,MAAM,IAAI;IACxB,sDAAsD;oBACtC,gBAAgB,EAAE;IAClC,uEAAuE;mBACxD,MAAM;IACrB,mDAAmD;oBACnC,MAAM;IACtB,kEAAkE;iBACrD,MAAM;IACnB,mEAAmE;eACxD,MAAM,GAAG,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACzE,sEAAsE;cAC5D,OAAO;IACjB,kEAAkE;cACxD,OAAO;;;;;;;;;;;;kBAVF,MAAM;mBAFL,gBAAgB,EAAE;mBAIlB,MAAM;aAMZ,OAAO;aAEP,OAAO;;AAvBrB,wBA0BG;AACH,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC;AAC9M,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI;KAE1B,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QACxE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;KACb,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACT,CAAC;AACN,KAAK,cAAc,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"ControlBar.vue.d.ts","sourceRoot":"","sources":["../../src/components/ControlBar.vue"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;;WAs/BjD,gBAAgB,GAAG,IAAI;eACnB,OAAO;eACP,WAAW,GAAG,IAAI;kBACf,MAAM,IAAI;IACxB,sDAAsD;oBACtC,gBAAgB,EAAE;IAClC,uEAAuE;mBACxD,MAAM;IACrB,mDAAmD;oBACnC,MAAM;IACtB,kEAAkE;iBACrD,MAAM;IACnB,mEAAmE;eACxD,MAAM,GAAG,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACzE,sEAAsE;cAC5D,OAAO;IACjB,kEAAkE;cACxD,OAAO;IACjB,qEAAqE;aAC5D,OAAO;IAChB,uEAAuE;kBACzD,cAAc,EAAE;IAC9B,qEAAqE;sBACnD,MAAM;;;;;;;;;;;;;;;;WAvBjB,gBAAgB,GAAG,IAAI;eACnB,OAAO;eACP,WAAW,GAAG,IAAI;kBACf,MAAM,IAAI;IACxB,sDAAsD;oBACtC,gBAAgB,EAAE;IAClC,uEAAuE;mBACxD,MAAM;IACrB,mDAAmD;oBACnC,MAAM;IACtB,kEAAkE;iBACrD,MAAM;IACnB,mEAAmE;eACxD,MAAM,GAAG,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACzE,sEAAsE;cAC5D,OAAO;IACjB,kEAAkE;cACxD,OAAO;IACjB,qEAAqE;aAC5D,OAAO;IAChB,uEAAuE;kBACzD,cAAc,EAAE;IAC9B,qEAAqE;sBACnD,MAAM;;;;;;;;;;;;;;;;qBAAN,MAAM;kBAhBT,MAAM;iBAcP,cAAc,EAAE;mBAhBd,gBAAgB,EAAE;mBAIlB,MAAM;aAMZ,OAAO;aAEP,OAAO;YAER,OAAO;;AAzBpB,wBAgCG;AACH,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC;AAC9M,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI;KAE1B,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QACxE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;KACb,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACT,CAAC;AACN,KAAK,cAAc,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
@@ -13,4 +13,4 @@ type __VLS_TypePropsToRuntimeProps<T> = {
13
13
  required: true;
14
14
  };
15
15
  };
16
- //# sourceMappingURL=IconQuality.vue.d.ts.map
16
+ //# sourceMappingURL=IconAlert.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconAlert.vue.d.ts","sourceRoot":"","sources":["../../src/components/IconAlert.vue"],"names":[],"mappings":";YA+DqD,MAAM;;YAAN,MAAM;;AA3D3D,wBA6DI;AAAA,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACrE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC"}
@@ -0,0 +1,16 @@
1
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
2
+ class?: string;
3
+ }>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
4
+ class?: string;
5
+ }>>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
6
+ export default _default;
7
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
8
+ type __VLS_TypePropsToRuntimeProps<T> = {
9
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
10
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
11
+ } : {
12
+ type: import('vue').PropType<T[K]>;
13
+ required: true;
14
+ };
15
+ };
16
+ //# sourceMappingURL=IconCheck.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconCheck.vue.d.ts","sourceRoot":"","sources":["../../src/components/IconCheck.vue"],"names":[],"mappings":";YA+DqD,MAAM;;YAAN,MAAM;;AA3D3D,wBA6DI;AAAA,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACrE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC"}
@@ -0,0 +1,16 @@
1
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
2
+ class?: string;
3
+ }>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
4
+ class?: string;
5
+ }>>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
6
+ export default _default;
7
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
8
+ type __VLS_TypePropsToRuntimeProps<T> = {
9
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
10
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
11
+ } : {
12
+ type: import('vue').PropType<T[K]>;
13
+ required: true;
14
+ };
15
+ };
16
+ //# sourceMappingURL=IconChevronRight.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconChevronRight.vue.d.ts","sourceRoot":"","sources":["../../src/components/IconChevronRight.vue"],"names":[],"mappings":";YA+DqD,MAAM;;YAAN,MAAM;;AA3D3D,wBA6DI;AAAA,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACrE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC"}
@@ -0,0 +1,16 @@
1
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
2
+ class?: string;
3
+ }>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
4
+ class?: string;
5
+ }>>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
6
+ export default _default;
7
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
8
+ type __VLS_TypePropsToRuntimeProps<T> = {
9
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
10
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
11
+ } : {
12
+ type: import('vue').PropType<T[K]>;
13
+ required: true;
14
+ };
15
+ };
16
+ //# sourceMappingURL=IconGear.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconGear.vue.d.ts","sourceRoot":"","sources":["../../src/components/IconGear.vue"],"names":[],"mappings":";YA+DqD,MAAM;;YAAN,MAAM;;AA3D3D,wBA6DI;AAAA,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACrE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC"}
@@ -0,0 +1,16 @@
1
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
2
+ class?: string;
3
+ }>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
4
+ class?: string;
5
+ }>>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
6
+ export default _default;
7
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
8
+ type __VLS_TypePropsToRuntimeProps<T> = {
9
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
10
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
11
+ } : {
12
+ type: import('vue').PropType<T[K]>;
13
+ required: true;
14
+ };
15
+ };
16
+ //# sourceMappingURL=IconRefresh.vue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IconQuality.vue.d.ts","sourceRoot":"","sources":["../../src/components/IconQuality.vue"],"names":[],"mappings":";YAuEqD,MAAM;;YAAN,MAAM;;AAnE3D,wBAqEI;AAAA,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACrE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC"}
1
+ {"version":3,"file":"IconRefresh.vue.d.ts","sourceRoot":"","sources":["../../src/components/IconRefresh.vue"],"names":[],"mappings":";YA+DqD,MAAM;;YAAN,MAAM;;AA3D3D,wBA6DI;AAAA,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACrE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC"}
@@ -0,0 +1,61 @@
1
+ import { QualityLevelInfo } from '../utils/quality-levels';
2
+ import { AudioTrackInfo } from '../utils/audio-tracks';
3
+
4
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
5
+ video: HTMLVideoElement | null;
6
+ qualityLevels?: QualityLevelInfo[];
7
+ currentLevel?: number;
8
+ selectedLevel?: number;
9
+ audioTracks?: AudioTrackInfo[];
10
+ audioTrackIndex?: number;
11
+ }>, {
12
+ qualityLevels: () => never[];
13
+ currentLevel: number;
14
+ selectedLevel: number;
15
+ audioTracks: () => never[];
16
+ audioTrackIndex: number;
17
+ }>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
18
+ "select-level": (index: number) => void;
19
+ "select-audio-track": (index: number) => void;
20
+ }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
21
+ video: HTMLVideoElement | null;
22
+ qualityLevels?: QualityLevelInfo[];
23
+ currentLevel?: number;
24
+ selectedLevel?: number;
25
+ audioTracks?: AudioTrackInfo[];
26
+ audioTrackIndex?: number;
27
+ }>, {
28
+ qualityLevels: () => never[];
29
+ currentLevel: number;
30
+ selectedLevel: number;
31
+ audioTracks: () => never[];
32
+ audioTrackIndex: number;
33
+ }>>> & Readonly<{
34
+ "onSelect-level"?: ((index: number) => any) | undefined;
35
+ "onSelect-audio-track"?: ((index: number) => any) | undefined;
36
+ }>, {
37
+ audioTrackIndex: number;
38
+ currentLevel: number;
39
+ audioTracks: AudioTrackInfo[];
40
+ qualityLevels: QualityLevelInfo[];
41
+ selectedLevel: number;
42
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
43
+ export default _default;
44
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
45
+ type __VLS_TypePropsToRuntimeProps<T> = {
46
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
47
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
48
+ } : {
49
+ type: import('vue').PropType<T[K]>;
50
+ required: true;
51
+ };
52
+ };
53
+ type __VLS_WithDefaults<P, D> = {
54
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
55
+ default: D[K];
56
+ }> : P[K];
57
+ };
58
+ type __VLS_Prettify<T> = {
59
+ [K in keyof T]: T[K];
60
+ } & {};
61
+ //# sourceMappingURL=SettingsMenu.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SettingsMenu.vue.d.ts","sourceRoot":"","sources":["../../src/components/SettingsMenu.vue"],"names":[],"mappings":"AAMA,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;;WA82BjD,gBAAgB,GAAG,IAAI;oBACd,gBAAgB,EAAE;mBACnB,MAAM;oBACL,MAAM;kBACR,cAAc,EAAE;sBACZ,MAAM;;;;;;;;;;;WALjB,gBAAgB,GAAG,IAAI;oBACd,gBAAgB,EAAE;mBACnB,MAAM;oBACL,MAAM;kBACR,cAAc,EAAE;sBACZ,MAAM;;;;;;;;;;;qBAAN,MAAM;kBAHT,MAAM;iBAEP,cAAc,EAAE;mBAHd,gBAAgB,EAAE;mBAElB,MAAM;;AA72B1B,wBAm3BI;AAAA,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACrE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC;AAC9M,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI;KAE1B,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QACxE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;KACb,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACT,CAAC;AACN,KAAK,cAAc,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}