Spaces:
Running
Running
Upload folder using huggingface_hub
Browse files- README.md +3 -5
- app.py +2 -3
- space.py +2 -3
- src/README.md +3 -5
- src/backend/gradio_mediagallery/templates/component/index.js +213 -213
- src/backend/gradio_mediagallery/templates/component/style.css +1 -1
- src/demo/app.py +2 -3
- src/demo/space.py +2 -3
- src/frontend/Gallery.css +0 -452
- src/frontend/shared/Gallery.svelte +3 -23
- src/pyproject.toml +1 -1
README.md
CHANGED
|
@@ -10,7 +10,7 @@ app_file: space.py
|
|
| 10 |
---
|
| 11 |
|
| 12 |
# `gradio_mediagallery`
|
| 13 |
-
<img alt="Static Badge" src="https://img.shields.io/badge/version%20-%200.0.
|
| 14 |
|
| 15 |
Python library for easily interacting with trained machine learning models
|
| 16 |
|
|
@@ -19,7 +19,6 @@ Python library for easily interacting with trained machine learning models
|
|
| 19 |
```bash
|
| 20 |
pip install gradio_mediagallery gradio_folderexplorer
|
| 21 |
```
|
| 22 |
-
|
| 23 |
## Usage
|
| 24 |
|
| 25 |
```python
|
|
@@ -28,8 +27,7 @@ import gradio as gr
|
|
| 28 |
from gradio_folderexplorer import FolderExplorer
|
| 29 |
from gradio_folderexplorer.helpers import load_media_from_folder
|
| 30 |
from gradio_mediagallery import MediaGallery
|
| 31 |
-
from gradio_mediagallery.helpers import
|
| 32 |
-
import os
|
| 33 |
|
| 34 |
# Configuration constant for the root directory containing media files
|
| 35 |
ROOT_DIR_PATH = "./src/examples"
|
|
@@ -54,7 +52,7 @@ def handle_load_metadata(image_data: gr.EventData) -> List[Any]:
|
|
| 54 |
)
|
| 55 |
|
| 56 |
# UI layout and logic
|
| 57 |
-
with gr.Blocks() as demo:
|
| 58 |
"""
|
| 59 |
A Gradio interface for browsing and displaying media files with metadata extraction.
|
| 60 |
"""
|
|
|
|
| 10 |
---
|
| 11 |
|
| 12 |
# `gradio_mediagallery`
|
| 13 |
+
<img alt="Static Badge" src="https://img.shields.io/badge/version%20-%200.0.2%20-%20blue"> <a href="https://huggingface.co/spaces/elismasilva/gradio_mediagallery"><img src="https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Demo-blue"></a><p><span>💻 <a href='https://github.com/DEVAIEXP/gradio_component_mediagallery'>Component GitHub Code</a></span></p>
|
| 14 |
|
| 15 |
Python library for easily interacting with trained machine learning models
|
| 16 |
|
|
|
|
| 19 |
```bash
|
| 20 |
pip install gradio_mediagallery gradio_folderexplorer
|
| 21 |
```
|
|
|
|
| 22 |
## Usage
|
| 23 |
|
| 24 |
```python
|
|
|
|
| 27 |
from gradio_folderexplorer import FolderExplorer
|
| 28 |
from gradio_folderexplorer.helpers import load_media_from_folder
|
| 29 |
from gradio_mediagallery import MediaGallery
|
| 30 |
+
from gradio_mediagallery.helpers import transfer_metadata
|
|
|
|
| 31 |
|
| 32 |
# Configuration constant for the root directory containing media files
|
| 33 |
ROOT_DIR_PATH = "./src/examples"
|
|
|
|
| 52 |
)
|
| 53 |
|
| 54 |
# UI layout and logic
|
| 55 |
+
with gr.Blocks(theme=gr.themes.Ocean()) as demo:
|
| 56 |
"""
|
| 57 |
A Gradio interface for browsing and displaying media files with metadata extraction.
|
| 58 |
"""
|
app.py
CHANGED
|
@@ -3,8 +3,7 @@ import gradio as gr
|
|
| 3 |
from gradio_folderexplorer import FolderExplorer
|
| 4 |
from gradio_folderexplorer.helpers import load_media_from_folder
|
| 5 |
from gradio_mediagallery import MediaGallery
|
| 6 |
-
from gradio_mediagallery.helpers import
|
| 7 |
-
import os
|
| 8 |
|
| 9 |
# Configuration constant for the root directory containing media files
|
| 10 |
ROOT_DIR_PATH = "./src/examples"
|
|
@@ -29,7 +28,7 @@ def handle_load_metadata(image_data: gr.EventData) -> List[Any]:
|
|
| 29 |
)
|
| 30 |
|
| 31 |
# UI layout and logic
|
| 32 |
-
with gr.Blocks() as demo:
|
| 33 |
"""
|
| 34 |
A Gradio interface for browsing and displaying media files with metadata extraction.
|
| 35 |
"""
|
|
|
|
| 3 |
from gradio_folderexplorer import FolderExplorer
|
| 4 |
from gradio_folderexplorer.helpers import load_media_from_folder
|
| 5 |
from gradio_mediagallery import MediaGallery
|
| 6 |
+
from gradio_mediagallery.helpers import transfer_metadata
|
|
|
|
| 7 |
|
| 8 |
# Configuration constant for the root directory containing media files
|
| 9 |
ROOT_DIR_PATH = "./src/examples"
|
|
|
|
| 28 |
)
|
| 29 |
|
| 30 |
# UI layout and logic
|
| 31 |
+
with gr.Blocks(theme=gr.themes.Ocean()) as demo:
|
| 32 |
"""
|
| 33 |
A Gradio interface for browsing and displaying media files with metadata extraction.
|
| 34 |
"""
|
space.py
CHANGED
|
@@ -43,8 +43,7 @@ import gradio as gr
|
|
| 43 |
from gradio_folderexplorer import FolderExplorer
|
| 44 |
from gradio_folderexplorer.helpers import load_media_from_folder
|
| 45 |
from gradio_mediagallery import MediaGallery
|
| 46 |
-
from gradio_mediagallery.helpers import
|
| 47 |
-
import os
|
| 48 |
|
| 49 |
# Configuration constant for the root directory containing media files
|
| 50 |
ROOT_DIR_PATH = "./src/examples"
|
|
@@ -69,7 +68,7 @@ def handle_load_metadata(image_data: gr.EventData) -> List[Any]:
|
|
| 69 |
)
|
| 70 |
|
| 71 |
# UI layout and logic
|
| 72 |
-
with gr.Blocks() as demo:
|
| 73 |
\"\"\"
|
| 74 |
A Gradio interface for browsing and displaying media files with metadata extraction.
|
| 75 |
\"\"\"
|
|
|
|
| 43 |
from gradio_folderexplorer import FolderExplorer
|
| 44 |
from gradio_folderexplorer.helpers import load_media_from_folder
|
| 45 |
from gradio_mediagallery import MediaGallery
|
| 46 |
+
from gradio_mediagallery.helpers import transfer_metadata
|
|
|
|
| 47 |
|
| 48 |
# Configuration constant for the root directory containing media files
|
| 49 |
ROOT_DIR_PATH = "./src/examples"
|
|
|
|
| 68 |
)
|
| 69 |
|
| 70 |
# UI layout and logic
|
| 71 |
+
with gr.Blocks(theme=gr.themes.Ocean()) as demo:
|
| 72 |
\"\"\"
|
| 73 |
A Gradio interface for browsing and displaying media files with metadata extraction.
|
| 74 |
\"\"\"
|
src/README.md
CHANGED
|
@@ -10,7 +10,7 @@ app_file: space.py
|
|
| 10 |
---
|
| 11 |
|
| 12 |
# `gradio_mediagallery`
|
| 13 |
-
<img alt="Static Badge" src="https://img.shields.io/badge/version%20-%200.0.
|
| 14 |
|
| 15 |
Python library for easily interacting with trained machine learning models
|
| 16 |
|
|
@@ -19,7 +19,6 @@ Python library for easily interacting with trained machine learning models
|
|
| 19 |
```bash
|
| 20 |
pip install gradio_mediagallery gradio_folderexplorer
|
| 21 |
```
|
| 22 |
-
|
| 23 |
## Usage
|
| 24 |
|
| 25 |
```python
|
|
@@ -28,8 +27,7 @@ import gradio as gr
|
|
| 28 |
from gradio_folderexplorer import FolderExplorer
|
| 29 |
from gradio_folderexplorer.helpers import load_media_from_folder
|
| 30 |
from gradio_mediagallery import MediaGallery
|
| 31 |
-
from gradio_mediagallery.helpers import
|
| 32 |
-
import os
|
| 33 |
|
| 34 |
# Configuration constant for the root directory containing media files
|
| 35 |
ROOT_DIR_PATH = "./src/examples"
|
|
@@ -54,7 +52,7 @@ def handle_load_metadata(image_data: gr.EventData) -> List[Any]:
|
|
| 54 |
)
|
| 55 |
|
| 56 |
# UI layout and logic
|
| 57 |
-
with gr.Blocks() as demo:
|
| 58 |
"""
|
| 59 |
A Gradio interface for browsing and displaying media files with metadata extraction.
|
| 60 |
"""
|
|
|
|
| 10 |
---
|
| 11 |
|
| 12 |
# `gradio_mediagallery`
|
| 13 |
+
<img alt="Static Badge" src="https://img.shields.io/badge/version%20-%200.0.2%20-%20blue"> <a href="https://huggingface.co/spaces/elismasilva/gradio_mediagallery"><img src="https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Demo-blue"></a><p><span>💻 <a href='https://github.com/DEVAIEXP/gradio_component_mediagallery'>Component GitHub Code</a></span></p>
|
| 14 |
|
| 15 |
Python library for easily interacting with trained machine learning models
|
| 16 |
|
|
|
|
| 19 |
```bash
|
| 20 |
pip install gradio_mediagallery gradio_folderexplorer
|
| 21 |
```
|
|
|
|
| 22 |
## Usage
|
| 23 |
|
| 24 |
```python
|
|
|
|
| 27 |
from gradio_folderexplorer import FolderExplorer
|
| 28 |
from gradio_folderexplorer.helpers import load_media_from_folder
|
| 29 |
from gradio_mediagallery import MediaGallery
|
| 30 |
+
from gradio_mediagallery.helpers import transfer_metadata
|
|
|
|
| 31 |
|
| 32 |
# Configuration constant for the root directory containing media files
|
| 33 |
ROOT_DIR_PATH = "./src/examples"
|
|
|
|
| 52 |
)
|
| 53 |
|
| 54 |
# UI layout and logic
|
| 55 |
+
with gr.Blocks(theme=gr.themes.Ocean()) as demo:
|
| 56 |
"""
|
| 57 |
A Gradio interface for browsing and displaying media files with metadata extraction.
|
| 58 |
"""
|
src/backend/gradio_mediagallery/templates/component/index.js
CHANGED
|
@@ -20125,7 +20125,7 @@ function JS(r, e = {}) {
|
|
| 20125 |
return `${XS}=${t}`;
|
| 20126 |
}
|
| 20127 |
const Nc = /CMCD=[^&#]+/;
|
| 20128 |
-
function
|
| 20129 |
const i = JS(e, t);
|
| 20130 |
if (!i)
|
| 20131 |
return r;
|
|
@@ -20134,7 +20134,7 @@ function eb(r, e, t) {
|
|
| 20134 |
const n = r.includes("?") ? "&" : "?";
|
| 20135 |
return `${r}${n}${i}`;
|
| 20136 |
}
|
| 20137 |
-
class
|
| 20138 |
constructor(e) {
|
| 20139 |
this.hls = void 0, this.config = void 0, this.media = void 0, this.sid = void 0, this.cid = void 0, this.useHeaders = !1, this.includeKeys = void 0, this.initialized = !1, this.starved = !1, this.buffering = !0, this.audioBuffer = void 0, this.videoBuffer = void 0, this.onWaiting = () => {
|
| 20140 |
this.initialized && (this.starved = !0), this.buffering = !0;
|
|
@@ -20219,7 +20219,7 @@ class tb {
|
|
| 20219 |
const s = {
|
| 20220 |
baseUrl: e.url
|
| 20221 |
};
|
| 20222 |
-
this.useHeaders ? (e.headers || (e.headers = {}), YS(e.headers, t, s)) : e.url =
|
| 20223 |
}
|
| 20224 |
getNextFrag(e) {
|
| 20225 |
var t;
|
|
@@ -20342,8 +20342,8 @@ class tb {
|
|
| 20342 |
};
|
| 20343 |
}
|
| 20344 |
}
|
| 20345 |
-
const
|
| 20346 |
-
class
|
| 20347 |
constructor(e) {
|
| 20348 |
super("content-steering", e.logger), this.hls = void 0, this.loader = null, this.uri = null, this.pathwayId = ".", this._pathwayPriority = null, this.timeToLoad = 300, this.reloadTimer = -1, this.updated = 0, this.started = !1, this.enabled = !0, this.levels = null, this.audioTracks = null, this.subtitleTracks = null, this.penalizedPathways = {}, this.hls = e, this.registerListeners();
|
| 20349 |
}
|
|
@@ -20436,7 +20436,7 @@ class nb extends Kt {
|
|
| 20436 |
let t;
|
| 20437 |
const i = this.penalizedPathways, n = performance.now();
|
| 20438 |
Object.keys(i).forEach((s) => {
|
| 20439 |
-
n - i[s] >
|
| 20440 |
});
|
| 20441 |
for (let s = 0; s < e.length; s++) {
|
| 20442 |
const a = e[s];
|
|
@@ -20821,7 +20821,7 @@ class xn extends Kt {
|
|
| 20821 |
mediaKeySessions: t
|
| 20822 |
} = this;
|
| 20823 |
for (let i = 0; i < t.length; i++) {
|
| 20824 |
-
const n =
|
| 20825 |
if (n)
|
| 20826 |
return n;
|
| 20827 |
}
|
|
@@ -21256,7 +21256,7 @@ function Bs(r) {
|
|
| 21256 |
throw new Error("keyId is null");
|
| 21257 |
return ot(r.keyId);
|
| 21258 |
}
|
| 21259 |
-
function
|
| 21260 |
if (r.keyId && e.mediaKeysSession.keyStatuses.has(r.keyId))
|
| 21261 |
return e.mediaKeysSession.keyStatuses.get(r.keyId);
|
| 21262 |
if (r.matches(e.decryptdata))
|
|
@@ -21276,7 +21276,7 @@ function Gc(r, e) {
|
|
| 21276 |
decryptdata: e
|
| 21277 |
}, t ? "HDCP level output restricted" : `key status changed to "${r}"`);
|
| 21278 |
}
|
| 21279 |
-
class
|
| 21280 |
constructor(e) {
|
| 21281 |
this.hls = void 0, this.isVideoPlaybackQualityAvailable = !1, this.timer = void 0, this.media = null, this.lastTime = void 0, this.lastDroppedFrames = 0, this.lastDecodedFrames = 0, this.streamController = void 0, this.hls = e, this.registerListeners();
|
| 21282 |
}
|
|
@@ -21368,13 +21368,13 @@ function Tn(r, e) {
|
|
| 21368 |
function Lo(r, e, t, i) {
|
| 21369 |
const n = r.mode;
|
| 21370 |
if (n === "disabled" && (r.mode = "hidden"), r.cues && r.cues.length > 0) {
|
| 21371 |
-
const s =
|
| 21372 |
for (let a = 0; a < s.length; a++)
|
| 21373 |
(!i || i(s[a])) && r.removeCue(s[a]);
|
| 21374 |
}
|
| 21375 |
n === "disabled" && (r.mode = n);
|
| 21376 |
}
|
| 21377 |
-
function
|
| 21378 |
if (e <= r[0].startTime)
|
| 21379 |
return 0;
|
| 21380 |
const t = r.length - 1;
|
|
@@ -21390,8 +21390,8 @@ function ab(r, e) {
|
|
| 21390 |
return s;
|
| 21391 |
return r[i].startTime - e < e - r[n].startTime ? i : n;
|
| 21392 |
}
|
| 21393 |
-
function
|
| 21394 |
-
const i = [], n =
|
| 21395 |
if (n > -1)
|
| 21396 |
for (let s = n, a = r.length; s < a; s++) {
|
| 21397 |
const o = r[s];
|
|
@@ -21410,7 +21410,7 @@ function cr(r) {
|
|
| 21410 |
}
|
| 21411 |
return e;
|
| 21412 |
}
|
| 21413 |
-
class
|
| 21414 |
constructor(e) {
|
| 21415 |
super(e, "subtitle-track-controller"), this.media = null, this.tracks = [], this.groupIds = null, this.tracksInGroup = [], this.trackId = -1, this.currentTrack = null, this.selectDefaultTrack = !0, this.queuedDefaultTrack = -1, this.useTextTrackPolling = !1, this.subtitlePollingInterval = -1, this._subtitleDisplay = !0, this.asyncPollTrackChange = () => this.pollTrackChange(0), this.onTextTracksChanged = () => {
|
| 21416 |
if (this.useTextTrackPolling || self.clearInterval(this.subtitlePollingInterval), !this.media || !this.hls.config.renderTextTracksNatively)
|
|
@@ -21681,7 +21681,7 @@ class lb extends El {
|
|
| 21681 |
this.loadPlaylist(d);
|
| 21682 |
}
|
| 21683 |
}
|
| 21684 |
-
function
|
| 21685 |
try {
|
| 21686 |
return crypto.randomUUID();
|
| 21687 |
} catch {
|
|
@@ -21707,10 +21707,10 @@ const Ln = 0.025;
|
|
| 21707 |
let Cr = /* @__PURE__ */ function(r) {
|
| 21708 |
return r[r.Point = 0] = "Point", r[r.Range = 1] = "Range", r;
|
| 21709 |
}({});
|
| 21710 |
-
function
|
| 21711 |
return `${r.identifier}-${t + 1}-${Qn(e)}`;
|
| 21712 |
}
|
| 21713 |
-
class
|
| 21714 |
constructor(e, t) {
|
| 21715 |
this.base = void 0, this._duration = null, this._timelineStart = null, this.appendInPlaceDisabled = void 0, this.appendInPlaceStarted = void 0, this.dateRange = void 0, this.hasPlayed = !1, this.cumulativeDuration = 0, this.resumeOffset = NaN, this.playoutLimit = NaN, this.restrictions = {
|
| 21716 |
skip: !1,
|
|
@@ -21829,7 +21829,7 @@ class db {
|
|
| 21829 |
return this.assetList.length > 0 || this.assetListResponse !== null;
|
| 21830 |
}
|
| 21831 |
toString() {
|
| 21832 |
-
return
|
| 21833 |
}
|
| 21834 |
}
|
| 21835 |
function Ba(r, e) {
|
|
@@ -21844,14 +21844,14 @@ function Na(r, e) {
|
|
| 21844 |
var t;
|
| 21845 |
return e;
|
| 21846 |
}
|
| 21847 |
-
function
|
| 21848 |
return `["${r.identifier}" ${r.cue.pre ? "<pre>" : r.cue.post ? "<post>" : ""}${r.timelineStart.toFixed(2)}-${r.resumeTime.toFixed(2)}]`;
|
| 21849 |
}
|
| 21850 |
function bn(r) {
|
| 21851 |
const e = r.timelineStart, t = r.duration || 0;
|
| 21852 |
return `["${r.identifier}" ${e.toFixed(2)}-${(e + t).toFixed(2)}]`;
|
| 21853 |
}
|
| 21854 |
-
class
|
| 21855 |
constructor(e, t, i, n) {
|
| 21856 |
this.hls = void 0, this.interstitial = void 0, this.assetItem = void 0, this.tracks = null, this.hasDetails = !1, this.mediaAttached = null, this._currentTime = void 0, this._bufferedEosTime = void 0, this.checkPlayout = () => {
|
| 21857 |
this.reachedPlayout(this.currentTime) && this.hls && this.hls.trigger(E.PLAYOUT_LIMIT_REACHED, {});
|
|
@@ -22024,7 +22024,7 @@ class fb {
|
|
| 22024 |
}
|
| 22025 |
}
|
| 22026 |
const Vc = 0.033;
|
| 22027 |
-
class
|
| 22028 |
constructor(e, t) {
|
| 22029 |
super("interstitials-sched", t), this.onScheduleUpdate = void 0, this.eventMap = {}, this.events = null, this.items = null, this.durations = {
|
| 22030 |
primary: 0,
|
|
@@ -22157,7 +22157,7 @@ class gb extends Kt {
|
|
| 22157 |
const o = s[a], l = e[o];
|
| 22158 |
if (l.isInterstitial) {
|
| 22159 |
let u = this.eventMap[o];
|
| 22160 |
-
u ? u.setDateRange(l) : (u = new
|
| 22161 |
}
|
| 22162 |
}
|
| 22163 |
return n;
|
|
@@ -22322,7 +22322,7 @@ class gb extends Kt {
|
|
| 22322 |
function Yt(r) {
|
| 22323 |
return `[${r.event ? '"' + r.event.identifier + '"' : "primary"}: ${r.start.toFixed(2)}-${r.end.toFixed(2)}]`;
|
| 22324 |
}
|
| 22325 |
-
class
|
| 22326 |
constructor(e) {
|
| 22327 |
this.hls = void 0, this.hls = e;
|
| 22328 |
}
|
|
@@ -22396,7 +22396,7 @@ function Kc(r) {
|
|
| 22396 |
function Ns(r, e) {
|
| 22397 |
return `[${r}] Advancing timeline position to ${e}`;
|
| 22398 |
}
|
| 22399 |
-
class
|
| 22400 |
constructor(e, t) {
|
| 22401 |
super("interstitials", e.logger), this.HlsPlayerClass = void 0, this.hls = void 0, this.assetListLoader = void 0, this.mediaSelection = null, this.altSelection = null, this.media = null, this.detachedData = null, this.requiredTracks = null, this.manager = null, this.playerQueue = [], this.bufferedPos = -1, this.timelinePos = -1, this.schedule = void 0, this.playingItem = null, this.bufferingItem = null, this.waitingItem = null, this.endedItem = null, this.playingAsset = null, this.endedAsset = null, this.bufferingAsset = null, this.shouldPlay = !1, this.onPlay = () => {
|
| 22402 |
this.shouldPlay = !0;
|
|
@@ -22500,7 +22500,7 @@ Schedule: ${l.map((m) => Yt(m))} pos: ${this.timelinePos}`), c.length && this.lo
|
|
| 22500 |
}
|
| 22501 |
a && this.trimInPlace(h, a), g && f !== h && this.trimInPlace(f, g), this.checkBuffer();
|
| 22502 |
}
|
| 22503 |
-
}, this.hls = e, this.HlsPlayerClass = t, this.assetListLoader = new
|
| 22504 |
}
|
| 22505 |
registerListeners() {
|
| 22506 |
const e = this.hls;
|
|
@@ -23376,7 +23376,7 @@ Schedule: ${l.map((m) => Yt(m))} pos: ${this.timelinePos}`), c.length && this.lo
|
|
| 23376 |
createAsset(e, t, i, n, s, a) {
|
| 23377 |
const o = {
|
| 23378 |
parentIdentifier: e.identifier,
|
| 23379 |
-
identifier:
|
| 23380 |
duration: s,
|
| 23381 |
startOffset: i,
|
| 23382 |
timelineStart: n,
|
|
@@ -23418,7 +23418,7 @@ Schedule: ${l.map((m) => Yt(m))} pos: ${this.timelinePos}`), c.length && this.lo
|
|
| 23418 |
f != null && f.sessionId && f.contentId && (h.cmcd = Se({}, f, {
|
| 23419 |
contentId: Qn(t.uri)
|
| 23420 |
})), this.getAssetPlayer(d) && this.warn(`Duplicate date range identifier ${e} and asset ${d}`);
|
| 23421 |
-
const g = new
|
| 23422 |
this.playerQueue.push(g), e.assetList[i] = t;
|
| 23423 |
let m = !0;
|
| 23424 |
const p = (S) => {
|
|
@@ -23693,7 +23693,7 @@ Schedule: ${l.map((m) => Yt(m))} pos: ${this.timelinePos}`), c.length && this.lo
|
|
| 23693 |
}
|
| 23694 |
}
|
| 23695 |
const Hc = 500;
|
| 23696 |
-
class
|
| 23697 |
constructor(e, t, i) {
|
| 23698 |
super(e, t, i, "subtitle-stream-controller", W.SUBTITLE), this.currentTrackId = -1, this.tracksBuffered = [], this.mainDetails = null, this.registerListeners();
|
| 23699 |
}
|
|
@@ -23913,10 +23913,10 @@ class _b extends hl {
|
|
| 23913 |
Oe(e) ? super.loadFragment(e, t, i) : this._loadInitSegment(e, t);
|
| 23914 |
}
|
| 23915 |
get mediaBufferTimeRanges() {
|
| 23916 |
-
return new
|
| 23917 |
}
|
| 23918 |
}
|
| 23919 |
-
class
|
| 23920 |
constructor(e) {
|
| 23921 |
this.buffered = void 0;
|
| 23922 |
const t = (i, n, s) => {
|
|
@@ -23937,7 +23937,7 @@ class yb {
|
|
| 23937 |
};
|
| 23938 |
}
|
| 23939 |
}
|
| 23940 |
-
const
|
| 23941 |
42: 225,
|
| 23942 |
// lowercase a, acute accent
|
| 23943 |
92: 233,
|
|
@@ -24125,7 +24125,7 @@ const vb = {
|
|
| 24125 |
// Box drawings heavy up and right
|
| 24126 |
207: 9499
|
| 24127 |
// Box drawings heavy up and left
|
| 24128 |
-
}, bg = (r) => String.fromCharCode(
|
| 24129 |
17: 1,
|
| 24130 |
18: 3,
|
| 24131 |
21: 5,
|
|
@@ -24134,7 +24134,7 @@ const vb = {
|
|
| 24134 |
16: 11,
|
| 24135 |
19: 12,
|
| 24136 |
20: 14
|
| 24137 |
-
},
|
| 24138 |
17: 2,
|
| 24139 |
18: 4,
|
| 24140 |
21: 6,
|
|
@@ -24142,7 +24142,7 @@ const vb = {
|
|
| 24142 |
23: 10,
|
| 24143 |
19: 13,
|
| 24144 |
20: 15
|
| 24145 |
-
},
|
| 24146 |
25: 1,
|
| 24147 |
26: 3,
|
| 24148 |
29: 5,
|
|
@@ -24151,7 +24151,7 @@ const vb = {
|
|
| 24151 |
24: 11,
|
| 24152 |
27: 12,
|
| 24153 |
28: 14
|
| 24154 |
-
},
|
| 24155 |
25: 2,
|
| 24156 |
26: 4,
|
| 24157 |
29: 6,
|
|
@@ -24159,8 +24159,8 @@ const vb = {
|
|
| 24159 |
31: 10,
|
| 24160 |
27: 13,
|
| 24161 |
28: 15
|
| 24162 |
-
},
|
| 24163 |
-
class
|
| 24164 |
constructor() {
|
| 24165 |
this.time = null, this.verboseLevel = 0;
|
| 24166 |
}
|
|
@@ -24204,7 +24204,7 @@ class Tg {
|
|
| 24204 |
return "color=" + this.foreground + ", underline=" + this.underline + ", italics=" + this.italics + ", background=" + this.background + ", flash=" + this.flash;
|
| 24205 |
}
|
| 24206 |
}
|
| 24207 |
-
class
|
| 24208 |
constructor() {
|
| 24209 |
this.uchar = " ", this.penState = new Tg();
|
| 24210 |
}
|
|
@@ -24227,11 +24227,11 @@ class Ib {
|
|
| 24227 |
return this.uchar === " " && this.penState.isDefault();
|
| 24228 |
}
|
| 24229 |
}
|
| 24230 |
-
class
|
| 24231 |
constructor(e) {
|
| 24232 |
this.chars = [], this.pos = 0, this.currPenState = new Tg(), this.cueStartTime = null, this.logger = void 0;
|
| 24233 |
for (let t = 0; t < vi; t++)
|
| 24234 |
-
this.chars.push(new
|
| 24235 |
this.logger = e;
|
| 24236 |
}
|
| 24237 |
equals(e) {
|
|
@@ -24312,7 +24312,7 @@ class Ua {
|
|
| 24312 |
constructor(e) {
|
| 24313 |
this.rows = [], this.currRow = Jt - 1, this.nrRollUpRows = null, this.lastOutputScreen = null, this.logger = void 0;
|
| 24314 |
for (let t = 0; t < Jt; t++)
|
| 24315 |
-
this.rows.push(new
|
| 24316 |
this.logger = e;
|
| 24317 |
}
|
| 24318 |
reset() {
|
|
@@ -24527,8 +24527,8 @@ class qc {
|
|
| 24527 |
}
|
| 24528 |
class zc {
|
| 24529 |
constructor(e, t, i) {
|
| 24530 |
-
this.channels = void 0, this.currentChannel = 0, this.cmdHistory =
|
| 24531 |
-
const n = this.logger = new
|
| 24532 |
this.channels = [null, new qc(e, t, n), new qc(e + 1, i, n)];
|
| 24533 |
}
|
| 24534 |
getHandler(e) {
|
|
@@ -24550,7 +24550,7 @@ class zc {
|
|
| 24550 |
this.logger.log(3, () => "[" + Wi([t[i], t[i + 1]]) + "] -> (" + Wi([n, s]) + ")");
|
| 24551 |
const l = this.cmdHistory;
|
| 24552 |
if (n >= 16 && n <= 31) {
|
| 24553 |
-
if (
|
| 24554 |
Us(null, null, l), this.logger.log(3, () => "Repeated command (" + Wi([n, s]) + ") is dropped");
|
| 24555 |
continue;
|
| 24556 |
}
|
|
@@ -24598,7 +24598,7 @@ class zc {
|
|
| 24598 |
if (!(n || s))
|
| 24599 |
return !1;
|
| 24600 |
const a = e <= 23 ? 1 : 2;
|
| 24601 |
-
t >= 64 && t <= 95 ? i = a === 1 ?
|
| 24602 |
const o = this.channels[a];
|
| 24603 |
return o ? (o.setPAC(this.interpretPAC(i, t)), this.currentChannel = a, !0) : !1;
|
| 24604 |
}
|
|
@@ -24639,7 +24639,7 @@ class zc {
|
|
| 24639 |
return !1;
|
| 24640 |
let s;
|
| 24641 |
const a = {};
|
| 24642 |
-
e === 16 || e === 24 ? (s = Math.floor((t - 32) / 2), a.background =
|
| 24643 |
const o = e <= 23 ? 1 : 2;
|
| 24644 |
return this.channels[o].setBkgData(a), !0;
|
| 24645 |
}
|
|
@@ -24666,10 +24666,10 @@ class zc {
|
|
| 24666 |
function Us(r, e, t) {
|
| 24667 |
t.a = r, t.b = e;
|
| 24668 |
}
|
| 24669 |
-
function
|
| 24670 |
return t.a === r && t.b === e;
|
| 24671 |
}
|
| 24672 |
-
function
|
| 24673 |
return {
|
| 24674 |
a: null,
|
| 24675 |
b: null
|
|
@@ -24832,7 +24832,7 @@ var Al = function() {
|
|
| 24832 |
return self.WebVTT.convertCueToDOMTree(self, this.text);
|
| 24833 |
}, a;
|
| 24834 |
}();
|
| 24835 |
-
class
|
| 24836 |
decode(e, t) {
|
| 24837 |
if (!e)
|
| 24838 |
return "";
|
|
@@ -24848,7 +24848,7 @@ function Ag(r) {
|
|
| 24848 |
const t = r.match(/^(?:(\d+):)?(\d{2}):(\d{2})(\.\d+)?/);
|
| 24849 |
return t ? parseFloat(t[2]) > 59 ? e(t[2], t[3], 0, t[4]) : e(t[1], t[2], t[3], t[4]) : null;
|
| 24850 |
}
|
| 24851 |
-
class
|
| 24852 |
constructor() {
|
| 24853 |
this.values = /* @__PURE__ */ Object.create(null);
|
| 24854 |
}
|
|
@@ -24903,7 +24903,7 @@ function Dg(r, e, t, i) {
|
|
| 24903 |
}
|
| 24904 |
}
|
| 24905 |
const ko = new Al(0, 0, ""), Gs = ko.align === "middle" ? "middle" : "center";
|
| 24906 |
-
function
|
| 24907 |
const i = r;
|
| 24908 |
function n() {
|
| 24909 |
const o = Ag(r);
|
|
@@ -24912,7 +24912,7 @@ function wb(r, e, t) {
|
|
| 24912 |
return r = r.replace(/^[^\sa-zA-Z-]+/, ""), o;
|
| 24913 |
}
|
| 24914 |
function s(o, l) {
|
| 24915 |
-
const u = new
|
| 24916 |
Dg(o, function(h, f) {
|
| 24917 |
let g;
|
| 24918 |
switch (h) {
|
|
@@ -24956,9 +24956,9 @@ function Ig(r) {
|
|
| 24956 |
return r.replace(/<br(?: \/)?>/gi, `
|
| 24957 |
`);
|
| 24958 |
}
|
| 24959 |
-
class
|
| 24960 |
constructor() {
|
| 24961 |
-
this.state = "INITIAL", this.buffer = "", this.decoder = new
|
| 24962 |
}
|
| 24963 |
parse(e) {
|
| 24964 |
const t = this;
|
|
@@ -25017,7 +25017,7 @@ class Fb {
|
|
| 25017 |
continue;
|
| 25018 |
}
|
| 25019 |
try {
|
| 25020 |
-
|
| 25021 |
} catch {
|
| 25022 |
t.cue = null, t.state = "BADCUE";
|
| 25023 |
continue;
|
|
@@ -25059,9 +25059,9 @@ class Fb {
|
|
| 25059 |
return e.onflush && e.onflush(), this;
|
| 25060 |
}
|
| 25061 |
}
|
| 25062 |
-
const
|
| 25063 |
return e.slice(i, i + t.length) === t;
|
| 25064 |
-
},
|
| 25065 |
let t = parseInt(e.slice(-3));
|
| 25066 |
const i = parseInt(e.slice(-6, -4)), n = parseInt(e.slice(-9, -7)), s = e.length > 9 ? parseInt(e.substring(0, e.indexOf(":"))) : 0;
|
| 25067 |
if (!H(t) || !H(i) || !H(n) || !H(s))
|
|
@@ -25071,7 +25071,7 @@ const Pb = /\r\n|\n\r|\n|\r/g, Ga = function(e, t, i = 0) {
|
|
| 25071 |
function Dl(r, e, t) {
|
| 25072 |
return Qn(r.toString()) + Qn(e.toString()) + Qn(t);
|
| 25073 |
}
|
| 25074 |
-
const $
|
| 25075 |
let n = e[t], s = e[n.prevCC];
|
| 25076 |
if (!s || !s.new && n.new) {
|
| 25077 |
e.ccOffset = e.presentationOffset = n.start, n.new = !1;
|
|
@@ -25083,8 +25083,8 @@ const $b = function(e, t, i) {
|
|
| 25083 |
}
|
| 25084 |
e.presentationOffset = i;
|
| 25085 |
};
|
| 25086 |
-
function
|
| 25087 |
-
const o = new
|
| 25088 |
`).split(`
|
| 25089 |
`), u = [], c = e ? KE(e.baseTime, e.timescale) : 0;
|
| 25090 |
let d = "00:00.000", h = 0, f = 0, g, m = !0;
|
|
@@ -25092,7 +25092,7 @@ function Mb(r, e, t, i, n, s, a) {
|
|
| 25092 |
const v = t[i];
|
| 25093 |
let _ = t.ccOffset;
|
| 25094 |
const y = (h - c) / 9e4;
|
| 25095 |
-
if (v != null && v.new && (f !== void 0 ? _ = t.ccOffset = v.start : $
|
| 25096 |
if (!e) {
|
| 25097 |
g = new Error("Missing initPTS for VTT MPEGTS");
|
| 25098 |
return;
|
|
@@ -25118,7 +25118,7 @@ function Mb(r, e, t, i, n, s, a) {
|
|
| 25118 |
Ga(v, "LOCAL:") ? d = v.slice(6) : Ga(v, "MPEGTS:") && (h = parseInt(v.slice(7)));
|
| 25119 |
});
|
| 25120 |
try {
|
| 25121 |
-
f =
|
| 25122 |
} catch (v) {
|
| 25123 |
g = v;
|
| 25124 |
}
|
|
@@ -25128,7 +25128,7 @@ function Mb(r, e, t, i, n, s, a) {
|
|
| 25128 |
`);
|
| 25129 |
}), o.flush();
|
| 25130 |
}
|
| 25131 |
-
const Va = "stpp.ttml.im1t", xg = /^(\d{2,}):(\d{2}):(\d{2}):(\d{2})\.?(\d+)?$/, Lg = /^(\d*(?:\.\d*)?)(h|m|s|ms|f|t)$/,
|
| 25132 |
left: "start",
|
| 25133 |
center: "center",
|
| 25134 |
right: "end",
|
|
@@ -25143,12 +25143,12 @@ function Wc(r, e, t, i) {
|
|
| 25143 |
}
|
| 25144 |
const s = n.map((o) => Rt(o)), a = VE(e.baseTime, 1, e.timescale);
|
| 25145 |
try {
|
| 25146 |
-
s.forEach((o) => t(
|
| 25147 |
} catch (o) {
|
| 25148 |
i(o);
|
| 25149 |
}
|
| 25150 |
}
|
| 25151 |
-
function
|
| 25152 |
const n = new DOMParser().parseFromString(r, "text/xml").getElementsByTagName("tt")[0];
|
| 25153 |
if (!n)
|
| 25154 |
throw new Error("Invalid ttml");
|
|
@@ -25173,11 +25173,11 @@ function Nb(r, e) {
|
|
| 25173 |
}
|
| 25174 |
const p = new Al(f - e, m - e, h);
|
| 25175 |
p.id = Dl(p.startTime, p.endTime, p.text);
|
| 25176 |
-
const v = u[d.getAttribute("region")], _ = l[d.getAttribute("style")], y =
|
| 25177 |
textAlign: S
|
| 25178 |
} = y;
|
| 25179 |
if (S) {
|
| 25180 |
-
const b =
|
| 25181 |
b && (p.lineAlign = b), p.align = S;
|
| 25182 |
}
|
| 25183 |
return Se(p, y), p;
|
|
@@ -25200,7 +25200,7 @@ function kg(r, e) {
|
|
| 25200 |
` : (s = i.childNodes) != null && s.length ? kg(i, e) : e ? t + i.textContent.trim().replace(/\s+/g, " ") : t + i.textContent;
|
| 25201 |
}, "");
|
| 25202 |
}
|
| 25203 |
-
function
|
| 25204 |
const i = "http://www.w3.org/ns/ttml#styling";
|
| 25205 |
let n = null;
|
| 25206 |
const s = [
|
|
@@ -25232,13 +25232,13 @@ function qa(r, e) {
|
|
| 25232 |
if (!r)
|
| 25233 |
return null;
|
| 25234 |
let t = Ag(r);
|
| 25235 |
-
return t === null && (xg.test(r) ? t =
|
| 25236 |
}
|
| 25237 |
-
function
|
| 25238 |
const t = xg.exec(r), i = (t[4] | 0) + (t[5] | 0) / e.subFrameRate;
|
| 25239 |
return (t[1] | 0) * 3600 + (t[2] | 0) * 60 + (t[3] | 0) + i / e.frameRate;
|
| 25240 |
}
|
| 25241 |
-
function
|
| 25242 |
const t = Lg.exec(r), i = Number(t[1]);
|
| 25243 |
switch (t[2]) {
|
| 25244 |
case "h":
|
|
@@ -25268,7 +25268,7 @@ class Vs {
|
|
| 25268 |
this.cueRanges = [], this.startTime = null;
|
| 25269 |
}
|
| 25270 |
}
|
| 25271 |
-
class
|
| 25272 |
constructor(e) {
|
| 25273 |
this.hls = void 0, this.media = null, this.config = void 0, this.enabled = !0, this.Cues = void 0, this.textTracks = [], this.tracks = [], this.initPTS = [], this.unparsedVttFrags = [], this.captionsTracks = {}, this.nonNativeCaptionsTracks = {}, this.cea608Parser1 = void 0, this.cea608Parser2 = void 0, this.lastCc = -1, this.lastSn = -1, this.lastPartIndex = -1, this.prevCC = -1, this.vttCCs = Qc(), this.captionsProperties = void 0, this.hls = e, this.config = e.config, this.Cues = e.config.cueHandler, this.captionsProperties = {
|
| 25274 |
textTrack1: {
|
|
@@ -25302,7 +25302,7 @@ class Kb {
|
|
| 25302 |
addCues(e, t, i, n, s) {
|
| 25303 |
let a = !1;
|
| 25304 |
for (let o = s.length; o--; ) {
|
| 25305 |
-
const l = s[o], u =
|
| 25306 |
if (u >= 0 && (l[0] = Math.min(l[0], t), l[1] = Math.max(l[1], i), a = !0, u / (i - t) > 0.5))
|
| 25307 |
return;
|
| 25308 |
}
|
|
@@ -25551,7 +25551,7 @@ class Kb {
|
|
| 25551 |
return;
|
| 25552 |
}
|
| 25553 |
const l = this.hls, u = (t = i.initSegment) != null && t.data ? Gt(i.initSegment.data, new Uint8Array(n)).buffer : n;
|
| 25554 |
-
|
| 25555 |
this._appendCues(c, i.level), l.trigger(E.SUBTITLE_FRAG_PROCESSED, {
|
| 25556 |
success: !0,
|
| 25557 |
frag: i
|
|
@@ -25663,7 +25663,7 @@ function Cg(r) {
|
|
| 25663 |
function Xc(r, e) {
|
| 25664 |
return !!r && r.kind === Cg(e) && Ao(e, r);
|
| 25665 |
}
|
| 25666 |
-
function
|
| 25667 |
return Math.min(e, i) - Math.max(r, t);
|
| 25668 |
}
|
| 25669 |
function Qc() {
|
|
@@ -25677,7 +25677,7 @@ function Qc() {
|
|
| 25677 |
}
|
| 25678 |
};
|
| 25679 |
}
|
| 25680 |
-
const
|
| 25681 |
newCue(r, e, t, i) {
|
| 25682 |
const n = [];
|
| 25683 |
let s, a, o, l, u;
|
|
@@ -25686,7 +25686,7 @@ const qb = /\s/, zb = {
|
|
| 25686 |
if (s = i.rows[h], o = !0, l = 0, u = "", !s.isEmpty()) {
|
| 25687 |
var d;
|
| 25688 |
for (let m = 0; m < s.chars.length; m++)
|
| 25689 |
-
|
| 25690 |
s.cueStartTime = e, e === t && (t += 1e-4), l >= 16 ? l-- : l++;
|
| 25691 |
const f = Ig(u.trim()), g = Dl(e, t, f);
|
| 25692 |
r != null && (d = r.cues) != null && d.getCueById(g) || (a = new c(e, t, f), a.id = g, a.line = h + 1, a.align = "left", a.position = 10 + Math.min(80, Math.floor(l * 8 / 32) * 10), n.push(a));
|
|
@@ -25694,7 +25694,7 @@ const qb = /\s/, zb = {
|
|
| 25694 |
return r && n.length && (n.sort((h, f) => h.line === "auto" || f.line === "auto" ? 0 : h.line > 8 && f.line > 8 ? f.line - h.line : h.line - f.line), n.forEach((h) => Eg(r, h))), n;
|
| 25695 |
}
|
| 25696 |
};
|
| 25697 |
-
function
|
| 25698 |
if (
|
| 25699 |
// @ts-ignore
|
| 25700 |
self.fetch && self.AbortController && self.ReadableStream && self.Request
|
|
@@ -25705,10 +25705,10 @@ function Wb() {
|
|
| 25705 |
}
|
| 25706 |
return !1;
|
| 25707 |
}
|
| 25708 |
-
const
|
| 25709 |
class Zc {
|
| 25710 |
constructor(e) {
|
| 25711 |
-
this.fetchSetup = void 0, this.requestTimeout = void 0, this.request = null, this.response = null, this.controller = void 0, this.context = null, this.config = null, this.callbacks = null, this.stats = void 0, this.loader = null, this.fetchSetup = e.fetchSetup ||
|
| 25712 |
}
|
| 25713 |
destroy() {
|
| 25714 |
this.loader = this.callbacks = this.context = this.config = this.request = null, this.abortInternal(), this.response = null, this.fetchSetup = this.controller = this.stats = null;
|
|
@@ -25725,7 +25725,7 @@ class Zc {
|
|
| 25725 |
if (n.loading.start)
|
| 25726 |
throw new Error("Loader can only be used once.");
|
| 25727 |
n.loading.start = self.performance.now();
|
| 25728 |
-
const s =
|
| 25729 |
maxTimeToFirstByteMs: l,
|
| 25730 |
maxLoadTimeMs: u
|
| 25731 |
} = t.loadPolicy;
|
|
@@ -25742,9 +25742,9 @@ class Zc {
|
|
| 25742 |
status: m,
|
| 25743 |
statusText: p
|
| 25744 |
} = d;
|
| 25745 |
-
throw new
|
| 25746 |
}
|
| 25747 |
-
n.loading.first = f, n.total =
|
| 25748 |
const g = (h = this.callbacks) == null ? void 0 : h.onProgress;
|
| 25749 |
return g && H(t.highWaterMark) ? this.loadProgressively(d, n, e, t.highWaterMark, g) : a ? d.arrayBuffer() : e.responseType === "json" ? d.json() : d.text();
|
| 25750 |
}).then((d) => {
|
|
@@ -25793,7 +25793,7 @@ class Zc {
|
|
| 25793 |
return l();
|
| 25794 |
}
|
| 25795 |
}
|
| 25796 |
-
function
|
| 25797 |
const t = {
|
| 25798 |
method: "GET",
|
| 25799 |
mode: "cors",
|
|
@@ -25803,15 +25803,15 @@ function Yb(r, e) {
|
|
| 25803 |
};
|
| 25804 |
return r.rangeEnd && t.headers.set("Range", "bytes=" + r.rangeStart + "-" + String(r.rangeEnd - 1)), t;
|
| 25805 |
}
|
| 25806 |
-
function
|
| 25807 |
-
const e =
|
| 25808 |
if (e)
|
| 25809 |
return parseInt(e[2]) - parseInt(e[1]) + 1;
|
| 25810 |
}
|
| 25811 |
-
function
|
| 25812 |
const e = r.get("Content-Range");
|
| 25813 |
if (e) {
|
| 25814 |
-
const i =
|
| 25815 |
if (H(i))
|
| 25816 |
return i;
|
| 25817 |
}
|
|
@@ -25819,15 +25819,15 @@ function Qb(r) {
|
|
| 25819 |
if (t)
|
| 25820 |
return parseInt(t);
|
| 25821 |
}
|
| 25822 |
-
function
|
| 25823 |
return new self.Request(r.url, e);
|
| 25824 |
}
|
| 25825 |
-
class
|
| 25826 |
constructor(e, t, i) {
|
| 25827 |
super(e), this.code = void 0, this.details = void 0, this.code = t, this.details = i;
|
| 25828 |
}
|
| 25829 |
}
|
| 25830 |
-
const
|
| 25831 |
class Rg {
|
| 25832 |
constructor(e) {
|
| 25833 |
this.xhrSetup = void 0, this.requestTimeout = void 0, this.retryTimeout = void 0, this.retryDelay = void 0, this.config = null, this.callbacks = null, this.context = null, this.loader = null, this.stats = void 0, this.xhrSetup = e && e.xhrSetup || null, this.stats = new nl(), this.retryDelay = 0;
|
|
@@ -25956,7 +25956,7 @@ class Rg {
|
|
| 25956 |
}
|
| 25957 |
getCacheAge() {
|
| 25958 |
let e = null;
|
| 25959 |
-
if (this.loader &&
|
| 25960 |
const t = this.loader.getResponseHeader("age");
|
| 25961 |
e = t ? parseFloat(t) : null;
|
| 25962 |
}
|
|
@@ -25966,12 +25966,12 @@ class Rg {
|
|
| 25966 |
return this.loader && new RegExp(`^${e}:\\s*[\\d.]+\\s*$`, "im").test(this.loader.getAllResponseHeaders()) ? this.loader.getResponseHeader(e) : null;
|
| 25967 |
}
|
| 25968 |
}
|
| 25969 |
-
const
|
| 25970 |
maxTimeToFirstByteMs: 8e3,
|
| 25971 |
maxLoadTimeMs: 2e4,
|
| 25972 |
timeoutRetry: null,
|
| 25973 |
errorRetry: null
|
| 25974 |
-
},
|
| 25975 |
autoStartLoad: !0,
|
| 25976 |
// used by stream-controller
|
| 25977 |
startPosition: -1,
|
|
@@ -26070,7 +26070,7 @@ const t1 = {
|
|
| 26070 |
bufferController: sS,
|
| 26071 |
capLevelController: Sl,
|
| 26072 |
errorController: vv,
|
| 26073 |
-
fpsController:
|
| 26074 |
stretchShortVideoTrack: !1,
|
| 26075 |
// used by mp4-remuxer
|
| 26076 |
maxAudioFramesDrift: 1,
|
|
@@ -26127,7 +26127,7 @@ const t1 = {
|
|
| 26127 |
useMediaCapabilities: !0,
|
| 26128 |
preserveManualLevelOnError: !1,
|
| 26129 |
certLoadPolicy: {
|
| 26130 |
-
default:
|
| 26131 |
},
|
| 26132 |
keyLoadPolicy: {
|
| 26133 |
default: {
|
|
@@ -26241,20 +26241,20 @@ const t1 = {
|
|
| 26241 |
fragLoadingMaxRetry: 6,
|
| 26242 |
fragLoadingRetryDelay: 1e3,
|
| 26243 |
fragLoadingMaxRetryTimeout: 64e3
|
| 26244 |
-
},
|
| 26245 |
-
subtitleStreamController:
|
| 26246 |
-
subtitleTrackController:
|
| 26247 |
-
timelineController:
|
| 26248 |
audioStreamController: eS,
|
| 26249 |
audioTrackController: tS,
|
| 26250 |
emeController: xn,
|
| 26251 |
-
cmcdController:
|
| 26252 |
-
contentSteeringController:
|
| 26253 |
-
interstitialsController:
|
| 26254 |
});
|
| 26255 |
-
function
|
| 26256 |
return {
|
| 26257 |
-
cueHandler:
|
| 26258 |
// used by timeline-controller
|
| 26259 |
enableWebVTT: !0,
|
| 26260 |
// used by timeline-controller
|
|
@@ -26281,7 +26281,7 @@ function n1() {
|
|
| 26281 |
renderTextTracksNatively: !0
|
| 26282 |
};
|
| 26283 |
}
|
| 26284 |
-
function
|
| 26285 |
if ((e.liveSyncDurationCount || e.liveMaxLatencyDurationCount) && (e.liveSyncDuration || e.liveMaxLatencyDuration))
|
| 26286 |
throw new Error("Illegal hls.js config: don't mix up liveSyncDurationCount/liveMaxLatencyDurationCount and liveSyncDuration/liveMaxLatencyDuration");
|
| 26287 |
if (e.liveMaxLatencyDurationCount !== void 0 && (e.liveSyncDurationCount === void 0 || e.liveMaxLatencyDurationCount <= e.liveSyncDurationCount))
|
|
@@ -26319,12 +26319,12 @@ function s1(r, e, t) {
|
|
| 26319 |
function Co(r) {
|
| 26320 |
return r && typeof r == "object" ? Array.isArray(r) ? r.map(Co) : Object.keys(r).reduce((e, t) => (e[t] = Co(r[t]), e), {}) : r;
|
| 26321 |
}
|
| 26322 |
-
function
|
| 26323 |
const t = r.loader;
|
| 26324 |
-
t !== Zc && t !== Rg ? (e.log("[config]: Custom loader detected, cannot enable progressive streaming"), r.progressive = !1) :
|
| 26325 |
}
|
| 26326 |
-
const dr = 2,
|
| 26327 |
-
class
|
| 26328 |
constructor(e, t) {
|
| 26329 |
super("gap-controller", e.logger), this.hls = void 0, this.fragmentTracker = void 0, this.media = null, this.mediaSource = void 0, this.nudgeRetry = 0, this.stallReported = !1, this.stalled = null, this.moved = !1, this.seeking = !1, this.buffered = {}, this.lastCurrentTime = 0, this.ended = 0, this.waiting = 0, this.onMediaPlaying = () => {
|
| 26330 |
this.ended = 0, this.waiting = 0;
|
|
@@ -26356,7 +26356,7 @@ class u1 extends Af {
|
|
| 26356 |
super.destroy(), this.unregisterListeners(), this.media = this.hls = this.fragmentTracker = null, this.mediaSource = void 0;
|
| 26357 |
}
|
| 26358 |
onMediaAttached(e, t) {
|
| 26359 |
-
this.setInterval(
|
| 26360 |
const i = this.media = t.media;
|
| 26361 |
dt(i, "playing", this.onMediaPlaying), dt(i, "waiting", this.onMediaWaiting), dt(i, "ended", this.onMediaEnded);
|
| 26362 |
}
|
|
@@ -26594,7 +26594,7 @@ class u1 extends Af {
|
|
| 26594 |
return 0;
|
| 26595 |
}
|
| 26596 |
}
|
| 26597 |
-
const f = Math.max(l +
|
| 26598 |
if (this.warn(`skipping hole, adjusting currentTime from ${a} to ${f}`), this.moved = !0, n.currentTime = f, !(e != null && e.gap)) {
|
| 26599 |
const g = new Error(`fragment loaded with buffer holes, seeking from ${a} to ${f}`), m = {
|
| 26600 |
type: j.MEDIA_ERROR,
|
|
@@ -26670,7 +26670,7 @@ function ed(r) {
|
|
| 26670 |
function Ks(r, e) {
|
| 26671 |
return e.getAppendedFrag(r, W.MAIN) || e.getPartialFragment(r);
|
| 26672 |
}
|
| 26673 |
-
const
|
| 26674 |
function Ro() {
|
| 26675 |
if (!(typeof self > "u"))
|
| 26676 |
return self.VTTCue || self.TextTrackCue;
|
|
@@ -26695,7 +26695,7 @@ const Hs = (() => {
|
|
| 26695 |
}
|
| 26696 |
return Number.POSITIVE_INFINITY;
|
| 26697 |
})();
|
| 26698 |
-
class
|
| 26699 |
constructor(e) {
|
| 26700 |
this.hls = void 0, this.id3Track = null, this.media = null, this.dateRangeCuesAppended = {}, this.removeCues = !0, this.assetCue = void 0, this.onEventCueEnter = () => {
|
| 26701 |
this.hls && this.hls.trigger(E.EVENT_CUE_ENTER, {});
|
|
@@ -26767,7 +26767,7 @@ class d1 {
|
|
| 26767 |
continue;
|
| 26768 |
const u = Wf(s[o].data), c = s[o].pts;
|
| 26769 |
let d = c + s[o].duration;
|
| 26770 |
-
d > Hs && (d = Hs), d - c <= 0 && (d = c +
|
| 26771 |
for (let f = 0; f < u.length; f++) {
|
| 26772 |
const g = u[f];
|
| 26773 |
if (!jf(g)) {
|
|
@@ -26918,7 +26918,7 @@ class d1 {
|
|
| 26918 |
}
|
| 26919 |
}
|
| 26920 |
}
|
| 26921 |
-
class
|
| 26922 |
constructor(e) {
|
| 26923 |
this.hls = void 0, this.config = void 0, this.media = null, this.currentTime = 0, this.stallCount = 0, this._latency = null, this._targetLatencyUpdated = !1, this.onTimeupdate = () => {
|
| 26924 |
const {
|
|
@@ -27060,7 +27060,7 @@ class h1 {
|
|
| 27060 |
return e === null ? null : e - this.currentTime;
|
| 27061 |
}
|
| 27062 |
}
|
| 27063 |
-
class
|
| 27064 |
constructor(e, t) {
|
| 27065 |
super(e, "level-controller"), this._levels = [], this._firstLevel = -1, this._maxAutoLevel = -1, this._startLevel = void 0, this.currentLevel = null, this.currentLevelIndex = -1, this.manualLevelIndex = -1, this.steering = void 0, this.onParsedComplete = void 0, this.steering = t, this._registerListeners();
|
| 27066 |
}
|
|
@@ -27431,19 +27431,19 @@ function Fg() {
|
|
| 27431 |
const e = wg();
|
| 27432 |
return !e || e.prototype && typeof e.prototype.appendBuffer == "function" && typeof e.prototype.remove == "function";
|
| 27433 |
}
|
| 27434 |
-
function
|
| 27435 |
if (!Fg())
|
| 27436 |
return !1;
|
| 27437 |
const r = Mi();
|
| 27438 |
return typeof (r == null ? void 0 : r.isTypeSupported) == "function" && (["avc1.42E01E,mp4a.40.2", "av01.0.01M.08", "vp09.00.50.08"].some((e) => r.isTypeSupported(is(e, "video"))) || ["mp4a.40.2", "fLaC"].some((e) => r.isTypeSupported(is(e, "audio"))));
|
| 27439 |
}
|
| 27440 |
-
function
|
| 27441 |
var r;
|
| 27442 |
const e = wg();
|
| 27443 |
return typeof (e == null || (r = e.prototype) == null ? void 0 : r.changeType) == "function";
|
| 27444 |
}
|
| 27445 |
-
const
|
| 27446 |
-
class
|
| 27447 |
constructor(e, t, i) {
|
| 27448 |
super(e, t, i, "stream-controller", W.MAIN), this.audioCodecSwap = !1, this.level = -1, this._forceStartLoad = !1, this._hasEnoughToStart = !1, this.altAudio = 0, this.audioOnly = !1, this.fragPlaying = null, this.fragLastKbps = 0, this.couldBacktrack = !1, this.backtrackFragment = null, this.audioCodecSwitch = !1, this.videoBuffer = null, this.onMediaPlaying = () => {
|
| 27449 |
this.tick();
|
|
@@ -27482,7 +27482,7 @@ class _1 extends hl {
|
|
| 27482 |
lastCurrentTime: i,
|
| 27483 |
hls: n
|
| 27484 |
} = this;
|
| 27485 |
-
if (this.stopLoad(), this.setInterval(
|
| 27486 |
let s = n.startLevel;
|
| 27487 |
s === -1 && (n.config.testBandwidth && this.levels.length > 1 ? (s = 0, this.bitrateTest = !0) : s = n.firstAutoLevel), n.nextLoadLevel = s, this.level = n.loadLevel, this._hasEnoughToStart = !!t;
|
| 27488 |
}
|
|
@@ -27662,7 +27662,7 @@ class _1 extends hl {
|
|
| 27662 |
const a = t.levels[s].audioCodec;
|
| 27663 |
a && (i = i || a.indexOf("mp4a.40.2") !== -1, n = n || a.indexOf("mp4a.40.5") !== -1);
|
| 27664 |
}
|
| 27665 |
-
this.audioCodecSwitch = i && n && !
|
| 27666 |
}
|
| 27667 |
onLevelLoading(e, t) {
|
| 27668 |
const {
|
|
@@ -28167,7 +28167,7 @@ class _1 extends hl {
|
|
| 28167 |
return this._forceStartLoad;
|
| 28168 |
}
|
| 28169 |
}
|
| 28170 |
-
class
|
| 28171 |
constructor(e, t) {
|
| 28172 |
super("key-loader", t), this.config = void 0, this.keyIdToKeyInfo = {}, this.emeController = null, this.config = e;
|
| 28173 |
}
|
|
@@ -28383,7 +28383,7 @@ function ja(r, e) {
|
|
| 28383 |
let t = r.url;
|
| 28384 |
return (t === void 0 || t.indexOf("data:") === 0) && (t = e.url), t;
|
| 28385 |
}
|
| 28386 |
-
class
|
| 28387 |
constructor(e) {
|
| 28388 |
this.hls = void 0, this.loaders = /* @__PURE__ */ Object.create(null), this.variableList = null, this.onManifestLoaded = this.checkAutostartLoad, this.hls = e, this.registerListeners();
|
| 28389 |
}
|
|
@@ -28833,7 +28833,7 @@ class kt {
|
|
| 28833 |
* Check if MediaSource Extensions are available and isTypeSupported checks pass for any baseline codecs.
|
| 28834 |
*/
|
| 28835 |
static isSupported() {
|
| 28836 |
-
return
|
| 28837 |
}
|
| 28838 |
/**
|
| 28839 |
* Get the MediaSource global used for MSE playback (ManagedMediaSource, MediaSource, or WebKitMediaSource).
|
|
@@ -28857,7 +28857,7 @@ class kt {
|
|
| 28857 |
* Get the default configuration applied to new instances.
|
| 28858 |
*/
|
| 28859 |
static get DefaultConfig() {
|
| 28860 |
-
return kt.defaultConfig ? kt.defaultConfig :
|
| 28861 |
}
|
| 28862 |
/**
|
| 28863 |
* Replace the default configuration applied to new instances.
|
|
@@ -28871,15 +28871,15 @@ class kt {
|
|
| 28871 |
*/
|
| 28872 |
constructor(e = {}) {
|
| 28873 |
this.config = void 0, this.userConfig = void 0, this.logger = void 0, this.coreComponents = void 0, this.networkControllers = void 0, this._emitter = new fl(), this._autoLevelCapping = -1, this._maxHdcpLevel = null, this.abrController = void 0, this.bufferController = void 0, this.capLevelController = void 0, this.latencyController = void 0, this.levelController = void 0, this.streamController = void 0, this.audioStreamController = void 0, this.subtititleStreamController = void 0, this.audioTrackController = void 0, this.subtitleTrackController = void 0, this.interstitialsController = void 0, this.gapController = void 0, this.emeController = void 0, this.cmcdController = void 0, this._media = null, this._url = null, this._sessionId = void 0, this.triggeringException = void 0, this.started = !1;
|
| 28874 |
-
const t = this.logger = Dy(e.debug || !1, "Hls instance", e.assetPlayerId), i = this.config =
|
| 28875 |
-
this.userConfig = e, i.progressive &&
|
| 28876 |
const {
|
| 28877 |
abrController: n,
|
| 28878 |
bufferController: s,
|
| 28879 |
capLevelController: a,
|
| 28880 |
errorController: o,
|
| 28881 |
fpsController: l
|
| 28882 |
-
} = i, u = new o(this), c = this.abrController = new n(this), d = new Ev(this), h = i.interstitialsController, f = h ? this.interstitialsController = new h(this, kt) : null, g = this.bufferController = new s(this, d), m = this.capLevelController = new a(this), p = new l(this), v = new
|
| 28883 |
m.setStreamController(T), p.setStreamController(T);
|
| 28884 |
const I = [v, S, T];
|
| 28885 |
f && I.splice(1, 0, f), y && I.splice(1, 0, y), this.networkControllers = I;
|
|
@@ -28888,7 +28888,7 @@ class kt {
|
|
| 28888 |
const k = i.audioStreamController;
|
| 28889 |
k && I.push(this.audioStreamController = new k(this, d, A)), this.subtitleTrackController = this.createController(i.subtitleTrackController, I);
|
| 28890 |
const R = i.subtitleStreamController;
|
| 28891 |
-
R && I.push(this.subtititleStreamController = new R(this, d, A)), this.createController(i.timelineController, x), A.emeController = this.emeController = this.createController(i.emeController, x), this.cmcdController = this.createController(i.cmcdController, x), this.latencyController = this.createController(
|
| 28892 |
const N = u.onErrorOut;
|
| 28893 |
typeof N == "function" && this.on(E.ERROR, N, u), this.on(E.MANIFEST_LOADED, v.onManifestLoaded, v);
|
| 28894 |
}
|
|
@@ -29095,7 +29095,7 @@ class kt {
|
|
| 29095 |
*/
|
| 29096 |
get sessionId() {
|
| 29097 |
let e = this._sessionId;
|
| 29098 |
-
return e || (e = this._sessionId =
|
| 29099 |
}
|
| 29100 |
/**
|
| 29101 |
* @returns an array of levels (variants) sorted by HDCP-LEVEL, RESOLUTION (height), FRAME-RATE, CODECS, VIDEO-RANGE, and BANDWIDTH
|
|
@@ -29524,43 +29524,43 @@ class kt {
|
|
| 29524 |
}
|
| 29525 |
kt.defaultConfig = void 0;
|
| 29526 |
const {
|
| 29527 |
-
SvelteComponent:
|
| 29528 |
-
action_destroyer:
|
| 29529 |
-
add_render_callback:
|
| 29530 |
assign: nd,
|
| 29531 |
attr: Fi,
|
| 29532 |
-
binding_callbacks:
|
| 29533 |
bubble: Ya,
|
| 29534 |
-
children:
|
| 29535 |
claim_element: sd,
|
| 29536 |
-
claim_space:
|
| 29537 |
-
create_slot:
|
| 29538 |
detach: qs,
|
| 29539 |
element: rd,
|
| 29540 |
exclude_internal_props: ad,
|
| 29541 |
-
get_all_dirty_from_scope:
|
| 29542 |
-
get_slot_changes:
|
| 29543 |
-
get_svelte_dataset:
|
| 29544 |
-
init:
|
| 29545 |
insert_hydration: Xa,
|
| 29546 |
-
is_function:
|
| 29547 |
listen: Ye,
|
| 29548 |
-
raf:
|
| 29549 |
-
run_all:
|
| 29550 |
-
safe_not_equal:
|
| 29551 |
-
space:
|
| 29552 |
src_url_equal: od,
|
| 29553 |
toggle_class: ld,
|
| 29554 |
-
transition_in: $
|
| 29555 |
-
transition_out:
|
| 29556 |
-
update_slot_base:
|
| 29557 |
-
} = window.__gradio__svelte__internal, { createEventDispatcher:
|
| 29558 |
-
function
|
| 29559 |
let e, t = '<span class="load-wrap svelte-1pwzuub"><span class="loader svelte-1pwzuub"></span></span>', i, n, s, a, o = !1, l, u = !0, c, d, h, f;
|
| 29560 |
const g = (
|
| 29561 |
/*#slots*/
|
| 29562 |
r[16].default
|
| 29563 |
-
), m =
|
| 29564 |
g,
|
| 29565 |
r,
|
| 29566 |
/*$$scope*/
|
|
@@ -29568,20 +29568,20 @@ function U1(r) {
|
|
| 29568 |
null
|
| 29569 |
);
|
| 29570 |
function p() {
|
| 29571 |
-
cancelAnimationFrame(l), n.paused || (l =
|
| 29572 |
}
|
| 29573 |
return {
|
| 29574 |
c() {
|
| 29575 |
-
e = rd("div"), e.innerHTML = t, i =
|
| 29576 |
},
|
| 29577 |
l(v) {
|
| 29578 |
-
e = sd(v, "DIV", { class: !0, "data-svelte-h": !0 }),
|
| 29579 |
src: !0,
|
| 29580 |
preload: !0,
|
| 29581 |
"data-testid": !0,
|
| 29582 |
crossorigin: !0
|
| 29583 |
});
|
| 29584 |
-
var _ =
|
| 29585 |
m && m.l(_), _.forEach(qs), this.h();
|
| 29586 |
},
|
| 29587 |
h() {
|
|
@@ -29599,7 +29599,7 @@ function U1(r) {
|
|
| 29599 |
r[9], n.loop = /*loop*/
|
| 29600 |
r[10], Fi(n, "data-testid", a = /*$$props*/
|
| 29601 |
r[13]["data-testid"]), Fi(n, "crossorigin", "anonymous"), /*duration*/
|
| 29602 |
-
r[2] === void 0 &&
|
| 29603 |
/*video_durationchange_handler*/
|
| 29604 |
r[21].call(n)
|
| 29605 |
));
|
|
@@ -29703,7 +29703,7 @@ function U1(r) {
|
|
| 29703 |
/*video_play_pause_handler*/
|
| 29704 |
r[22]
|
| 29705 |
),
|
| 29706 |
-
|
| 29707 |
/*autoplay*/
|
| 29708 |
r[8] ?? !1
|
| 29709 |
) }))
|
|
@@ -29713,19 +29713,19 @@ function U1(r) {
|
|
| 29713 |
(!d || _ & /*processingVideo*/
|
| 29714 |
2048) && ld(e, "hidden", !/*processingVideo*/
|
| 29715 |
v[11]), m && m.p && (!d || _ & /*$$scope*/
|
| 29716 |
-
32768) &&
|
| 29717 |
m,
|
| 29718 |
g,
|
| 29719 |
v,
|
| 29720 |
/*$$scope*/
|
| 29721 |
v[15],
|
| 29722 |
-
d ?
|
| 29723 |
g,
|
| 29724 |
/*$$scope*/
|
| 29725 |
v[15],
|
| 29726 |
_,
|
| 29727 |
null
|
| 29728 |
-
) :
|
| 29729 |
/*$$scope*/
|
| 29730 |
v[15]
|
| 29731 |
),
|
|
@@ -29757,26 +29757,26 @@ function U1(r) {
|
|
| 29757 |
) && (n.currentTime = /*currentTime*/
|
| 29758 |
v[1]), o = !1, _ & /*paused*/
|
| 29759 |
8 && u !== (u = /*paused*/
|
| 29760 |
-
v[3]) && n[u ? "pause" : "play"](), c &&
|
| 29761 |
256 && c.update.call(null, { autoplay: (
|
| 29762 |
/*autoplay*/
|
| 29763 |
v[8] ?? !1
|
| 29764 |
) });
|
| 29765 |
},
|
| 29766 |
i(v) {
|
| 29767 |
-
d || ($
|
| 29768 |
},
|
| 29769 |
o(v) {
|
| 29770 |
-
|
| 29771 |
},
|
| 29772 |
d(v) {
|
| 29773 |
-
v && (qs(e), qs(i), qs(n)), m && m.d(v), r[23](null), h = !1,
|
| 29774 |
}
|
| 29775 |
};
|
| 29776 |
}
|
| 29777 |
-
function
|
| 29778 |
let { $$slots: i = {}, $$scope: n } = e, { src: s = void 0 } = e, { muted: a = void 0 } = e, { playsinline: o = void 0 } = e, { preload: l = void 0 } = e, { autoplay: u = void 0 } = e, { controls: c = void 0 } = e, { currentTime: d = void 0 } = e, { duration: h = void 0 } = e, { paused: f = void 0 } = e, { node: g = void 0 } = e, { loop: m } = e, { is_stream: p } = e, { processingVideo: v = !1 } = e, _ = !1;
|
| 29779 |
-
const y =
|
| 29780 |
function S(R, N, K) {
|
| 29781 |
if (!(!R || !N) && kt.isSupported() && !_) {
|
| 29782 |
const U = new kt({
|
|
@@ -29824,7 +29824,7 @@ function G1(r, e, t) {
|
|
| 29824 |
f = this.paused, t(3, f);
|
| 29825 |
}
|
| 29826 |
function k(R) {
|
| 29827 |
-
|
| 29828 |
g = R, t(0, g);
|
| 29829 |
});
|
| 29830 |
}
|
|
@@ -29861,9 +29861,9 @@ function G1(r, e, t) {
|
|
| 29861 |
k
|
| 29862 |
];
|
| 29863 |
}
|
| 29864 |
-
class zr extends
|
| 29865 |
constructor(e) {
|
| 29866 |
-
super(),
|
| 29867 |
src: 4,
|
| 29868 |
muted: 5,
|
| 29869 |
playsinline: 6,
|
|
@@ -29965,14 +29965,14 @@ class C4 extends TransformStream {
|
|
| 29965 |
}
|
| 29966 |
}
|
| 29967 |
Ai = new WeakMap();
|
| 29968 |
-
async function
|
| 29969 |
return r ? `<div style="display: flex; flex-wrap: wrap; gap: 16px">${(await Promise.all(
|
| 29970 |
r.map(async ([t, i]) => t === null || !t.url ? "" : await f_(t.url))
|
| 29971 |
)).map((t) => `<img src="${t}" style="height: 400px" />`).join("")}</div>` : "";
|
| 29972 |
}
|
| 29973 |
var Wr = typeof self < "u" ? self : global;
|
| 29974 |
-
const ls = typeof navigator < "u",
|
| 29975 |
-
function wr(r, e =
|
| 29976 |
if (Rr) try {
|
| 29977 |
return typeof require == "function" ? Promise.resolve(e(require(r))) : import(
|
| 29978 |
/* webpackIgnore: true */
|
|
@@ -29983,7 +29983,7 @@ function wr(r, e = H1) {
|
|
| 29983 |
}
|
| 29984 |
}
|
| 29985 |
let Ll = Wr.fetch;
|
| 29986 |
-
const
|
| 29987 |
if (!Wr.fetch) {
|
| 29988 |
const r = wr("http", (i) => i), e = wr("https", (i) => i), t = (i, { headers: n } = {}) => new Promise(async (s, a) => {
|
| 29989 |
let { port: o, hostname: l, pathname: u, protocol: c, search: d } = new URL(i);
|
|
@@ -30001,14 +30001,14 @@ if (!Wr.fetch) {
|
|
| 30001 |
});
|
| 30002 |
f.on("error", a), f.end();
|
| 30003 |
});
|
| 30004 |
-
|
| 30005 |
}
|
| 30006 |
function ie(r, e, t) {
|
| 30007 |
return e in r ? Object.defineProperty(r, e, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : r[e] = t, r;
|
| 30008 |
}
|
| 30009 |
-
const Fr = (r) => Pg(r) ? void 0 : r,
|
| 30010 |
function Pg(r) {
|
| 30011 |
-
return r === void 0 || (r instanceof Map ? r.size === 0 : Object.values(r).filter(
|
| 30012 |
}
|
| 30013 |
function $e(r) {
|
| 30014 |
let e = new Error(r);
|
|
@@ -30163,8 +30163,8 @@ class kl extends Map {
|
|
| 30163 |
}
|
| 30164 |
}
|
| 30165 |
var Fn = new kl("file parser"), tt = new kl("segment parser"), $n = new kl("file reader");
|
| 30166 |
-
function
|
| 30167 |
-
return typeof r == "string" ? hd(r, e) : ls && !
|
| 30168 |
}
|
| 30169 |
function hd(r, e) {
|
| 30170 |
return (t = r).startsWith("data:") || t.length > 1e4 ? $o(r, e, "base64") : Rr && r.includes("://") ? Oo(r, e, "url", Mo) : Rr ? $o(r, e, "fs") : ls ? Oo(r, e, "url", Mo) : void $e("Invalid input argument");
|
|
@@ -30184,7 +30184,7 @@ const Mo = (r) => Ll(r).then((e) => e.arrayBuffer()), Bo = (r) => new Promise((e
|
|
| 30184 |
let i = new FileReader();
|
| 30185 |
i.onloadend = () => e(i.result || new ArrayBuffer()), i.onerror = t, i.readAsArrayBuffer(r);
|
| 30186 |
});
|
| 30187 |
-
class
|
| 30188 |
get tagKeys() {
|
| 30189 |
return this.allKeys || (this.allKeys = Array.from(this.keys())), this.allKeys;
|
| 30190 |
}
|
|
@@ -30193,7 +30193,7 @@ class j1 extends Map {
|
|
| 30193 |
}
|
| 30194 |
}
|
| 30195 |
function Ze(r, e, t) {
|
| 30196 |
-
let i = new
|
| 30197 |
for (let [n, s] of t) i.set(n, s);
|
| 30198 |
if (Array.isArray(e)) for (let n of e) r.set(n, i);
|
| 30199 |
else r.set(e, i);
|
|
@@ -30327,12 +30327,12 @@ function Pr(r, e) {
|
|
| 30327 |
for (let t of e) r.add(t);
|
| 30328 |
}
|
| 30329 |
ie(Cl, "default", at);
|
| 30330 |
-
class
|
| 30331 |
constructor(e) {
|
| 30332 |
ie(this, "parsers", {}), ie(this, "output", {}), ie(this, "errors", []), ie(this, "pushToErrors", (t) => this.errors.push(t)), this.options = Cl.useCached(e);
|
| 30333 |
}
|
| 30334 |
async read(e) {
|
| 30335 |
-
this.file = await
|
| 30336 |
}
|
| 30337 |
setup() {
|
| 30338 |
if (this.fileParser) return;
|
|
@@ -30362,8 +30362,8 @@ class Y1 {
|
|
| 30362 |
return t.close && t.close(), o;
|
| 30363 |
}
|
| 30364 |
}
|
| 30365 |
-
async function
|
| 30366 |
-
let t = new
|
| 30367 |
return await t.read(r), t.parse();
|
| 30368 |
}
|
| 30369 |
class jr {
|
|
@@ -30441,13 +30441,13 @@ class ei {
|
|
| 30441 |
}
|
| 30442 |
}
|
| 30443 |
ie(ei, "headerLength", 4), ie(ei, "type", void 0), ie(ei, "multiSegment", !1), ie(ei, "canHandle", () => !1);
|
| 30444 |
-
function
|
| 30445 |
return r === 192 || r === 194 || r === 196 || r === 219 || r === 221 || r === 218 || r === 254;
|
| 30446 |
}
|
| 30447 |
-
function
|
| 30448 |
return r >= 224 && r <= 239;
|
| 30449 |
}
|
| 30450 |
-
function
|
| 30451 |
for (let [i, n] of tt) if (n.canHandle(r, e, t)) return i;
|
| 30452 |
}
|
| 30453 |
class md extends jr {
|
|
@@ -30481,10 +30481,10 @@ class md extends jr {
|
|
| 30481 |
t -= 2;
|
| 30482 |
let i, n, s, a, o, l, { file: u, findAll: c, wanted: d, remaining: h, options: f } = this;
|
| 30483 |
for (; e < t; e++) if (u.getUint8(e) === 255) {
|
| 30484 |
-
if (i = u.getUint8(e + 1),
|
| 30485 |
-
if (n = u.getUint16(e + 2), s =
|
| 30486 |
f.recordUnknownSegments && (o = ei.findPosition(u, e), o.marker = i, this.unknownSegments.push(o)), e += n + 1;
|
| 30487 |
-
} else if (
|
| 30488 |
if (n = u.getUint16(e + 2), i === 218 && f.stopAfterSos !== !1) return;
|
| 30489 |
f.recordJpegSegments && this.jpegSegments.push({ offset: e, length: n, marker: i }), e += n + 1;
|
| 30490 |
}
|
|
@@ -31504,7 +31504,7 @@ function ET(r) {
|
|
| 31504 |
s && s.l(g), g.forEach(X), f.forEach(X), this.h();
|
| 31505 |
},
|
| 31506 |
h() {
|
| 31507 |
-
ae(i, "class", "grid-wrap svelte-
|
| 31508 |
i,
|
| 31509 |
"minimal",
|
| 31510 |
/*mode*/
|
|
@@ -31524,7 +31524,7 @@ function ET(r) {
|
|
| 31524 |
/*height*/
|
| 31525 |
r[6] !== "auto" ? `${/*height*/
|
| 31526 |
r[6]}px` : null
|
| 31527 |
-
), ae(e, "class", "gallery-container
|
| 31528 |
},
|
| 31529 |
m(h, f) {
|
| 31530 |
ye(h, e, f), o && o.m(e, null), ue(e, t), ue(e, i), ~n && u[n].m(i, null), r[63](e), a = !0;
|
|
@@ -31670,12 +31670,12 @@ function Pd(r) {
|
|
| 31670 |
x.forEach(X), c = ke(D), b && b.l(D), D.forEach(X), this.h();
|
| 31671 |
},
|
| 31672 |
h() {
|
| 31673 |
-
ae(n, "class", "media-container svelte-
|
| 31674 |
u,
|
| 31675 |
"justify-content",
|
| 31676 |
/*thumbnails_overflow*/
|
| 31677 |
r[24] ? "flex-start" : "center"
|
| 31678 |
-
), ae(e, "class", "preview svelte-
|
| 31679 |
e,
|
| 31680 |
"minimal",
|
| 31681 |
/*mode*/
|
|
@@ -31902,7 +31902,7 @@ function Bd(r) {
|
|
| 31902 |
/*value*/
|
| 31903 |
r[4]
|
| 31904 |
),
|
| 31905 |
-
formatter:
|
| 31906 |
}
|
| 31907 |
}), t.$on(
|
| 31908 |
"share",
|
|
@@ -32135,7 +32135,7 @@ function Ud(r) {
|
|
| 32135 |
i = nn(s, t), s.forEach(X), this.h();
|
| 32136 |
},
|
| 32137 |
h() {
|
| 32138 |
-
ae(e, "class", "caption svelte-
|
| 32139 |
},
|
| 32140 |
m(n, s) {
|
| 32141 |
ye(n, e, s), ue(e, i);
|
|
@@ -32277,7 +32277,7 @@ function Gd(r) {
|
|
| 32277 |
i.l(v), n = ke(v), v.forEach(X), this.h();
|
| 32278 |
},
|
| 32279 |
h() {
|
| 32280 |
-
ae(e, "class", "thumbnail-item thumbnail-small svelte-
|
| 32281 |
(r[75] + 1) + " of " + /*resolved_value*/
|
| 32282 |
r[16].length), mt(
|
| 32283 |
e,
|
|
@@ -32344,7 +32344,7 @@ function Vd(r) {
|
|
| 32344 |
i = he(v, "BUTTON", { class: !0, "data-svelte-h": !0 }), $r(i) !== "svelte-1irq3m4" && (i.textContent = n), s = ke(v), a = he(v, "H3", { class: !0, "data-svelte-h": !0 }), $r(a) !== "svelte-1tc7pig" && (a.textContent = o), l = ke(v), g.l(v), v.forEach(X), p.forEach(X), this.h();
|
| 32345 |
},
|
| 32346 |
h() {
|
| 32347 |
-
ae(i, "class", "close-button svelte-
|
| 32348 |
r[15] == "number" ? `${/*popup_metadata_width*/
|
| 32349 |
r[15]}px` : (
|
| 32350 |
/*popup_metadata_width*/
|
|
@@ -32389,7 +32389,7 @@ function xT(r) {
|
|
| 32389 |
e = he(i, "P", { class: !0, "data-svelte-h": !0 }), $r(e) !== "svelte-1qb2m81" && (e.textContent = t), this.h();
|
| 32390 |
},
|
| 32391 |
h() {
|
| 32392 |
-
ae(e, "class", "no-metadata-message svelte-
|
| 32393 |
},
|
| 32394 |
m(i, n) {
|
| 32395 |
ye(i, e, n);
|
|
@@ -32426,7 +32426,7 @@ function LT(r) {
|
|
| 32426 |
g.forEach(X), f.forEach(X), h.forEach(X), n = ke(d), s = he(d, "BUTTON", { class: !0, "data-svelte-h": !0 }), $r(s) !== "svelte-o01tbk" && (s.textContent = a), this.h();
|
| 32427 |
},
|
| 32428 |
h() {
|
| 32429 |
-
ae(t, "class", "metadata-table svelte-
|
| 32430 |
},
|
| 32431 |
m(d, h) {
|
| 32432 |
ye(d, e, h), ue(e, t), ue(t, i);
|
|
@@ -32483,7 +32483,7 @@ function Kd(r) {
|
|
| 32483 |
l = nn(f, o), f.forEach(X), u = ke(d), d.forEach(X), this.h();
|
| 32484 |
},
|
| 32485 |
h() {
|
| 32486 |
-
ae(t, "class", "metadata-label svelte-
|
| 32487 |
},
|
| 32488 |
m(c, d) {
|
| 32489 |
ye(c, e, d), ue(e, t), ue(t, n), ue(e, s), ue(e, a), ue(a, l), ue(e, u);
|
|
@@ -32555,7 +32555,7 @@ function kT(r) {
|
|
| 32555 |
a.l(b), o = ke(b), m && m.l(b), b.forEach(X), S.forEach(X), l = ke(y), p && p.l(y), y.forEach(X), _.forEach(X), this.h();
|
| 32556 |
},
|
| 32557 |
h() {
|
| 32558 |
-
ae(n, "class", "thumbnail-item thumbnail-lg svelte-
|
| 32559 |
e,
|
| 32560 |
"--object-fit",
|
| 32561 |
/*object_fit*/
|
|
@@ -32620,7 +32620,7 @@ function CT(r) {
|
|
| 32620 |
o.forEach(X), this.h();
|
| 32621 |
},
|
| 32622 |
h() {
|
| 32623 |
-
ae(e, "class", "grid-container svelte-
|
| 32624 |
e,
|
| 32625 |
"pt-6",
|
| 32626 |
/*show_label*/
|
|
@@ -32812,7 +32812,7 @@ function qd(r) {
|
|
| 32812 |
i = nn(s, t), s.forEach(X), this.h();
|
| 32813 |
},
|
| 32814 |
h() {
|
| 32815 |
-
ae(e, "class", "caption-label svelte-
|
| 32816 |
},
|
| 32817 |
m(n, s) {
|
| 32818 |
ye(n, e, s), ue(e, i);
|
|
@@ -32842,7 +32842,7 @@ function zd(r) {
|
|
| 32842 |
i = nn(a, t), a.forEach(X), this.h();
|
| 32843 |
},
|
| 32844 |
h() {
|
| 32845 |
-
ae(e, "class", "thumbnail-filename svelte-
|
| 32846 |
r[73]);
|
| 32847 |
},
|
| 32848 |
m(s, a) {
|
|
@@ -32964,7 +32964,7 @@ function Wd(r) {
|
|
| 32964 |
i = nn(s, t), s.forEach(X), this.h();
|
| 32965 |
},
|
| 32966 |
h() {
|
| 32967 |
-
ae(e, "class", "caption-label svelte-
|
| 32968 |
},
|
| 32969 |
m(n, s) {
|
| 32970 |
ye(n, e, s), ue(e, i);
|
|
@@ -32994,7 +32994,7 @@ function jd(r) {
|
|
| 32994 |
i = nn(a, t), a.forEach(X), this.h();
|
| 32995 |
},
|
| 32996 |
h() {
|
| 32997 |
-
ae(e, "class", "thumbnail-filename svelte-
|
| 32998 |
r[73]);
|
| 32999 |
},
|
| 33000 |
m(s, a) {
|
|
@@ -33051,7 +33051,7 @@ function Yd(r) {
|
|
| 33051 |
s.l(A), a = ke(A), p && p.l(A), A.forEach(X), b.forEach(X), l = ke(S), _ && _.l(S), u = ke(S), S.forEach(X), this.h();
|
| 33052 |
},
|
| 33053 |
h() {
|
| 33054 |
-
ae(i, "class", "thumbnail-item thumbnail-lg svelte-
|
| 33055 |
(r[75] + 1) + " of " + /*resolved_value*/
|
| 33056 |
r[16].length), mt(
|
| 33057 |
i,
|
|
@@ -33059,7 +33059,7 @@ function Yd(r) {
|
|
| 33059 |
/*selected_index*/
|
| 33060 |
r[0] === /*i*/
|
| 33061 |
r[75]
|
| 33062 |
-
), ae(t, "class", "gallery-item svelte-
|
| 33063 |
},
|
| 33064 |
m(y, S) {
|
| 33065 |
ye(y, e, S), ue(e, t), ue(t, i), g[n].m(i, null), ue(i, a), p && p.m(i, null), ue(e, l), _ && _.m(e, null), ue(e, u), c = !0, d || (h = Ni(i, "click", v), d = !0);
|
|
@@ -33211,7 +33211,7 @@ function MT(r, e, t) {
|
|
| 33211 |
if (!(P != null && P.url)) return null;
|
| 33212 |
if (P.url.toLowerCase().endsWith(".png") || P.url.toLowerCase().endsWith(".jpg") || P.url.toLowerCase().endsWith(".jpeg"))
|
| 33213 |
try {
|
| 33214 |
-
const st = yield
|
| 33215 |
let rt = {};
|
| 33216 |
if (st)
|
| 33217 |
for (const [Ft, qt] of Object.entries(st))
|
|
|
|
| 20125 |
return `${XS}=${t}`;
|
| 20126 |
}
|
| 20127 |
const Nc = /CMCD=[^&#]+/;
|
| 20128 |
+
function e1(r, e, t) {
|
| 20129 |
const i = JS(e, t);
|
| 20130 |
if (!i)
|
| 20131 |
return r;
|
|
|
|
| 20134 |
const n = r.includes("?") ? "&" : "?";
|
| 20135 |
return `${r}${n}${i}`;
|
| 20136 |
}
|
| 20137 |
+
class t1 {
|
| 20138 |
constructor(e) {
|
| 20139 |
this.hls = void 0, this.config = void 0, this.media = void 0, this.sid = void 0, this.cid = void 0, this.useHeaders = !1, this.includeKeys = void 0, this.initialized = !1, this.starved = !1, this.buffering = !0, this.audioBuffer = void 0, this.videoBuffer = void 0, this.onWaiting = () => {
|
| 20140 |
this.initialized && (this.starved = !0), this.buffering = !0;
|
|
|
|
| 20219 |
const s = {
|
| 20220 |
baseUrl: e.url
|
| 20221 |
};
|
| 20222 |
+
this.useHeaders ? (e.headers || (e.headers = {}), YS(e.headers, t, s)) : e.url = e1(e.url, t, s);
|
| 20223 |
}
|
| 20224 |
getNextFrag(e) {
|
| 20225 |
var t;
|
|
|
|
| 20342 |
};
|
| 20343 |
}
|
| 20344 |
}
|
| 20345 |
+
const i1 = 3e5;
|
| 20346 |
+
class n1 extends Kt {
|
| 20347 |
constructor(e) {
|
| 20348 |
super("content-steering", e.logger), this.hls = void 0, this.loader = null, this.uri = null, this.pathwayId = ".", this._pathwayPriority = null, this.timeToLoad = 300, this.reloadTimer = -1, this.updated = 0, this.started = !1, this.enabled = !0, this.levels = null, this.audioTracks = null, this.subtitleTracks = null, this.penalizedPathways = {}, this.hls = e, this.registerListeners();
|
| 20349 |
}
|
|
|
|
| 20436 |
let t;
|
| 20437 |
const i = this.penalizedPathways, n = performance.now();
|
| 20438 |
Object.keys(i).forEach((s) => {
|
| 20439 |
+
n - i[s] > i1 && delete i[s];
|
| 20440 |
});
|
| 20441 |
for (let s = 0; s < e.length; s++) {
|
| 20442 |
const a = e[s];
|
|
|
|
| 20821 |
mediaKeySessions: t
|
| 20822 |
} = this;
|
| 20823 |
for (let i = 0; i < t.length; i++) {
|
| 20824 |
+
const n = s1(e, t[i]);
|
| 20825 |
if (n)
|
| 20826 |
return n;
|
| 20827 |
}
|
|
|
|
| 21256 |
throw new Error("keyId is null");
|
| 21257 |
return ot(r.keyId);
|
| 21258 |
}
|
| 21259 |
+
function s1(r, e) {
|
| 21260 |
if (r.keyId && e.mediaKeysSession.keyStatuses.has(r.keyId))
|
| 21261 |
return e.mediaKeysSession.keyStatuses.get(r.keyId);
|
| 21262 |
if (r.matches(e.decryptdata))
|
|
|
|
| 21276 |
decryptdata: e
|
| 21277 |
}, t ? "HDCP level output restricted" : `key status changed to "${r}"`);
|
| 21278 |
}
|
| 21279 |
+
class r1 {
|
| 21280 |
constructor(e) {
|
| 21281 |
this.hls = void 0, this.isVideoPlaybackQualityAvailable = !1, this.timer = void 0, this.media = null, this.lastTime = void 0, this.lastDroppedFrames = 0, this.lastDecodedFrames = 0, this.streamController = void 0, this.hls = e, this.registerListeners();
|
| 21282 |
}
|
|
|
|
| 21368 |
function Lo(r, e, t, i) {
|
| 21369 |
const n = r.mode;
|
| 21370 |
if (n === "disabled" && (r.mode = "hidden"), r.cues && r.cues.length > 0) {
|
| 21371 |
+
const s = o1(r.cues, e, t);
|
| 21372 |
for (let a = 0; a < s.length; a++)
|
| 21373 |
(!i || i(s[a])) && r.removeCue(s[a]);
|
| 21374 |
}
|
| 21375 |
n === "disabled" && (r.mode = n);
|
| 21376 |
}
|
| 21377 |
+
function a1(r, e) {
|
| 21378 |
if (e <= r[0].startTime)
|
| 21379 |
return 0;
|
| 21380 |
const t = r.length - 1;
|
|
|
|
| 21390 |
return s;
|
| 21391 |
return r[i].startTime - e < e - r[n].startTime ? i : n;
|
| 21392 |
}
|
| 21393 |
+
function o1(r, e, t) {
|
| 21394 |
+
const i = [], n = a1(r, e);
|
| 21395 |
if (n > -1)
|
| 21396 |
for (let s = n, a = r.length; s < a; s++) {
|
| 21397 |
const o = r[s];
|
|
|
|
| 21410 |
}
|
| 21411 |
return e;
|
| 21412 |
}
|
| 21413 |
+
class l1 extends El {
|
| 21414 |
constructor(e) {
|
| 21415 |
super(e, "subtitle-track-controller"), this.media = null, this.tracks = [], this.groupIds = null, this.tracksInGroup = [], this.trackId = -1, this.currentTrack = null, this.selectDefaultTrack = !0, this.queuedDefaultTrack = -1, this.useTextTrackPolling = !1, this.subtitlePollingInterval = -1, this._subtitleDisplay = !0, this.asyncPollTrackChange = () => this.pollTrackChange(0), this.onTextTracksChanged = () => {
|
| 21416 |
if (this.useTextTrackPolling || self.clearInterval(this.subtitlePollingInterval), !this.media || !this.hls.config.renderTextTracksNatively)
|
|
|
|
| 21681 |
this.loadPlaylist(d);
|
| 21682 |
}
|
| 21683 |
}
|
| 21684 |
+
function u1() {
|
| 21685 |
try {
|
| 21686 |
return crypto.randomUUID();
|
| 21687 |
} catch {
|
|
|
|
| 21707 |
let Cr = /* @__PURE__ */ function(r) {
|
| 21708 |
return r[r.Point = 0] = "Point", r[r.Range = 1] = "Range", r;
|
| 21709 |
}({});
|
| 21710 |
+
function c1(r, e, t) {
|
| 21711 |
return `${r.identifier}-${t + 1}-${Qn(e)}`;
|
| 21712 |
}
|
| 21713 |
+
class d1 {
|
| 21714 |
constructor(e, t) {
|
| 21715 |
this.base = void 0, this._duration = null, this._timelineStart = null, this.appendInPlaceDisabled = void 0, this.appendInPlaceStarted = void 0, this.dateRange = void 0, this.hasPlayed = !1, this.cumulativeDuration = 0, this.resumeOffset = NaN, this.playoutLimit = NaN, this.restrictions = {
|
| 21716 |
skip: !1,
|
|
|
|
| 21829 |
return this.assetList.length > 0 || this.assetListResponse !== null;
|
| 21830 |
}
|
| 21831 |
toString() {
|
| 21832 |
+
return h1(this);
|
| 21833 |
}
|
| 21834 |
}
|
| 21835 |
function Ba(r, e) {
|
|
|
|
| 21844 |
var t;
|
| 21845 |
return e;
|
| 21846 |
}
|
| 21847 |
+
function h1(r) {
|
| 21848 |
return `["${r.identifier}" ${r.cue.pre ? "<pre>" : r.cue.post ? "<post>" : ""}${r.timelineStart.toFixed(2)}-${r.resumeTime.toFixed(2)}]`;
|
| 21849 |
}
|
| 21850 |
function bn(r) {
|
| 21851 |
const e = r.timelineStart, t = r.duration || 0;
|
| 21852 |
return `["${r.identifier}" ${e.toFixed(2)}-${(e + t).toFixed(2)}]`;
|
| 21853 |
}
|
| 21854 |
+
class f1 {
|
| 21855 |
constructor(e, t, i, n) {
|
| 21856 |
this.hls = void 0, this.interstitial = void 0, this.assetItem = void 0, this.tracks = null, this.hasDetails = !1, this.mediaAttached = null, this._currentTime = void 0, this._bufferedEosTime = void 0, this.checkPlayout = () => {
|
| 21857 |
this.reachedPlayout(this.currentTime) && this.hls && this.hls.trigger(E.PLAYOUT_LIMIT_REACHED, {});
|
|
|
|
| 22024 |
}
|
| 22025 |
}
|
| 22026 |
const Vc = 0.033;
|
| 22027 |
+
class g1 extends Kt {
|
| 22028 |
constructor(e, t) {
|
| 22029 |
super("interstitials-sched", t), this.onScheduleUpdate = void 0, this.eventMap = {}, this.events = null, this.items = null, this.durations = {
|
| 22030 |
primary: 0,
|
|
|
|
| 22157 |
const o = s[a], l = e[o];
|
| 22158 |
if (l.isInterstitial) {
|
| 22159 |
let u = this.eventMap[o];
|
| 22160 |
+
u ? u.setDateRange(l) : (u = new d1(l, t), this.eventMap[o] = u, i === !1 && (u.appendInPlace = i)), n.push(u);
|
| 22161 |
}
|
| 22162 |
}
|
| 22163 |
return n;
|
|
|
|
| 22322 |
function Yt(r) {
|
| 22323 |
return `[${r.event ? '"' + r.event.identifier + '"' : "primary"}: ${r.start.toFixed(2)}-${r.end.toFixed(2)}]`;
|
| 22324 |
}
|
| 22325 |
+
class m1 {
|
| 22326 |
constructor(e) {
|
| 22327 |
this.hls = void 0, this.hls = e;
|
| 22328 |
}
|
|
|
|
| 22396 |
function Ns(r, e) {
|
| 22397 |
return `[${r}] Advancing timeline position to ${e}`;
|
| 22398 |
}
|
| 22399 |
+
class p1 extends Kt {
|
| 22400 |
constructor(e, t) {
|
| 22401 |
super("interstitials", e.logger), this.HlsPlayerClass = void 0, this.hls = void 0, this.assetListLoader = void 0, this.mediaSelection = null, this.altSelection = null, this.media = null, this.detachedData = null, this.requiredTracks = null, this.manager = null, this.playerQueue = [], this.bufferedPos = -1, this.timelinePos = -1, this.schedule = void 0, this.playingItem = null, this.bufferingItem = null, this.waitingItem = null, this.endedItem = null, this.playingAsset = null, this.endedAsset = null, this.bufferingAsset = null, this.shouldPlay = !1, this.onPlay = () => {
|
| 22402 |
this.shouldPlay = !0;
|
|
|
|
| 22500 |
}
|
| 22501 |
a && this.trimInPlace(h, a), g && f !== h && this.trimInPlace(f, g), this.checkBuffer();
|
| 22502 |
}
|
| 22503 |
+
}, this.hls = e, this.HlsPlayerClass = t, this.assetListLoader = new m1(e), this.schedule = new g1(this.onScheduleUpdate, e.logger), this.registerListeners();
|
| 22504 |
}
|
| 22505 |
registerListeners() {
|
| 22506 |
const e = this.hls;
|
|
|
|
| 23376 |
createAsset(e, t, i, n, s, a) {
|
| 23377 |
const o = {
|
| 23378 |
parentIdentifier: e.identifier,
|
| 23379 |
+
identifier: c1(e, a, t),
|
| 23380 |
duration: s,
|
| 23381 |
startOffset: i,
|
| 23382 |
timelineStart: n,
|
|
|
|
| 23418 |
f != null && f.sessionId && f.contentId && (h.cmcd = Se({}, f, {
|
| 23419 |
contentId: Qn(t.uri)
|
| 23420 |
})), this.getAssetPlayer(d) && this.warn(`Duplicate date range identifier ${e} and asset ${d}`);
|
| 23421 |
+
const g = new f1(this.HlsPlayerClass, h, e, t);
|
| 23422 |
this.playerQueue.push(g), e.assetList[i] = t;
|
| 23423 |
let m = !0;
|
| 23424 |
const p = (S) => {
|
|
|
|
| 23693 |
}
|
| 23694 |
}
|
| 23695 |
const Hc = 500;
|
| 23696 |
+
class _1 extends hl {
|
| 23697 |
constructor(e, t, i) {
|
| 23698 |
super(e, t, i, "subtitle-stream-controller", W.SUBTITLE), this.currentTrackId = -1, this.tracksBuffered = [], this.mainDetails = null, this.registerListeners();
|
| 23699 |
}
|
|
|
|
| 23913 |
Oe(e) ? super.loadFragment(e, t, i) : this._loadInitSegment(e, t);
|
| 23914 |
}
|
| 23915 |
get mediaBufferTimeRanges() {
|
| 23916 |
+
return new y1(this.tracksBuffered[this.currentTrackId] || []);
|
| 23917 |
}
|
| 23918 |
}
|
| 23919 |
+
class y1 {
|
| 23920 |
constructor(e) {
|
| 23921 |
this.buffered = void 0;
|
| 23922 |
const t = (i, n, s) => {
|
|
|
|
| 23937 |
};
|
| 23938 |
}
|
| 23939 |
}
|
| 23940 |
+
const v1 = {
|
| 23941 |
42: 225,
|
| 23942 |
// lowercase a, acute accent
|
| 23943 |
92: 233,
|
|
|
|
| 24125 |
// Box drawings heavy up and right
|
| 24126 |
207: 9499
|
| 24127 |
// Box drawings heavy up and left
|
| 24128 |
+
}, bg = (r) => String.fromCharCode(v1[r] || r), Jt = 15, vi = 100, E1 = {
|
| 24129 |
17: 1,
|
| 24130 |
18: 3,
|
| 24131 |
21: 5,
|
|
|
|
| 24134 |
16: 11,
|
| 24135 |
19: 12,
|
| 24136 |
20: 14
|
| 24137 |
+
}, S1 = {
|
| 24138 |
17: 2,
|
| 24139 |
18: 4,
|
| 24140 |
21: 6,
|
|
|
|
| 24142 |
23: 10,
|
| 24143 |
19: 13,
|
| 24144 |
20: 15
|
| 24145 |
+
}, b1 = {
|
| 24146 |
25: 1,
|
| 24147 |
26: 3,
|
| 24148 |
29: 5,
|
|
|
|
| 24151 |
24: 11,
|
| 24152 |
27: 12,
|
| 24153 |
28: 14
|
| 24154 |
+
}, T1 = {
|
| 24155 |
25: 2,
|
| 24156 |
26: 4,
|
| 24157 |
29: 6,
|
|
|
|
| 24159 |
31: 10,
|
| 24160 |
27: 13,
|
| 24161 |
28: 15
|
| 24162 |
+
}, A1 = ["white", "green", "blue", "cyan", "red", "yellow", "magenta", "black", "transparent"];
|
| 24163 |
+
class D1 {
|
| 24164 |
constructor() {
|
| 24165 |
this.time = null, this.verboseLevel = 0;
|
| 24166 |
}
|
|
|
|
| 24204 |
return "color=" + this.foreground + ", underline=" + this.underline + ", italics=" + this.italics + ", background=" + this.background + ", flash=" + this.flash;
|
| 24205 |
}
|
| 24206 |
}
|
| 24207 |
+
class I1 {
|
| 24208 |
constructor() {
|
| 24209 |
this.uchar = " ", this.penState = new Tg();
|
| 24210 |
}
|
|
|
|
| 24227 |
return this.uchar === " " && this.penState.isDefault();
|
| 24228 |
}
|
| 24229 |
}
|
| 24230 |
+
class x1 {
|
| 24231 |
constructor(e) {
|
| 24232 |
this.chars = [], this.pos = 0, this.currPenState = new Tg(), this.cueStartTime = null, this.logger = void 0;
|
| 24233 |
for (let t = 0; t < vi; t++)
|
| 24234 |
+
this.chars.push(new I1());
|
| 24235 |
this.logger = e;
|
| 24236 |
}
|
| 24237 |
equals(e) {
|
|
|
|
| 24312 |
constructor(e) {
|
| 24313 |
this.rows = [], this.currRow = Jt - 1, this.nrRollUpRows = null, this.lastOutputScreen = null, this.logger = void 0;
|
| 24314 |
for (let t = 0; t < Jt; t++)
|
| 24315 |
+
this.rows.push(new x1(e));
|
| 24316 |
this.logger = e;
|
| 24317 |
}
|
| 24318 |
reset() {
|
|
|
|
| 24527 |
}
|
| 24528 |
class zc {
|
| 24529 |
constructor(e, t, i) {
|
| 24530 |
+
this.channels = void 0, this.currentChannel = 0, this.cmdHistory = k1(), this.logger = void 0;
|
| 24531 |
+
const n = this.logger = new D1();
|
| 24532 |
this.channels = [null, new qc(e, t, n), new qc(e + 1, i, n)];
|
| 24533 |
}
|
| 24534 |
getHandler(e) {
|
|
|
|
| 24550 |
this.logger.log(3, () => "[" + Wi([t[i], t[i + 1]]) + "] -> (" + Wi([n, s]) + ")");
|
| 24551 |
const l = this.cmdHistory;
|
| 24552 |
if (n >= 16 && n <= 31) {
|
| 24553 |
+
if (L1(n, s, l)) {
|
| 24554 |
Us(null, null, l), this.logger.log(3, () => "Repeated command (" + Wi([n, s]) + ") is dropped");
|
| 24555 |
continue;
|
| 24556 |
}
|
|
|
|
| 24598 |
if (!(n || s))
|
| 24599 |
return !1;
|
| 24600 |
const a = e <= 23 ? 1 : 2;
|
| 24601 |
+
t >= 64 && t <= 95 ? i = a === 1 ? E1[e] : b1[e] : i = a === 1 ? S1[e] : T1[e];
|
| 24602 |
const o = this.channels[a];
|
| 24603 |
return o ? (o.setPAC(this.interpretPAC(i, t)), this.currentChannel = a, !0) : !1;
|
| 24604 |
}
|
|
|
|
| 24639 |
return !1;
|
| 24640 |
let s;
|
| 24641 |
const a = {};
|
| 24642 |
+
e === 16 || e === 24 ? (s = Math.floor((t - 32) / 2), a.background = A1[s], t % 2 === 1 && (a.background = a.background + "_semi")) : t === 45 ? a.background = "transparent" : (a.foreground = "black", t === 47 && (a.underline = !0));
|
| 24643 |
const o = e <= 23 ? 1 : 2;
|
| 24644 |
return this.channels[o].setBkgData(a), !0;
|
| 24645 |
}
|
|
|
|
| 24666 |
function Us(r, e, t) {
|
| 24667 |
t.a = r, t.b = e;
|
| 24668 |
}
|
| 24669 |
+
function L1(r, e, t) {
|
| 24670 |
return t.a === r && t.b === e;
|
| 24671 |
}
|
| 24672 |
+
function k1() {
|
| 24673 |
return {
|
| 24674 |
a: null,
|
| 24675 |
b: null
|
|
|
|
| 24832 |
return self.WebVTT.convertCueToDOMTree(self, this.text);
|
| 24833 |
}, a;
|
| 24834 |
}();
|
| 24835 |
+
class C1 {
|
| 24836 |
decode(e, t) {
|
| 24837 |
if (!e)
|
| 24838 |
return "";
|
|
|
|
| 24848 |
const t = r.match(/^(?:(\d+):)?(\d{2}):(\d{2})(\.\d+)?/);
|
| 24849 |
return t ? parseFloat(t[2]) > 59 ? e(t[2], t[3], 0, t[4]) : e(t[1], t[2], t[3], t[4]) : null;
|
| 24850 |
}
|
| 24851 |
+
class R1 {
|
| 24852 |
constructor() {
|
| 24853 |
this.values = /* @__PURE__ */ Object.create(null);
|
| 24854 |
}
|
|
|
|
| 24903 |
}
|
| 24904 |
}
|
| 24905 |
const ko = new Al(0, 0, ""), Gs = ko.align === "middle" ? "middle" : "center";
|
| 24906 |
+
function w1(r, e, t) {
|
| 24907 |
const i = r;
|
| 24908 |
function n() {
|
| 24909 |
const o = Ag(r);
|
|
|
|
| 24912 |
return r = r.replace(/^[^\sa-zA-Z-]+/, ""), o;
|
| 24913 |
}
|
| 24914 |
function s(o, l) {
|
| 24915 |
+
const u = new R1();
|
| 24916 |
Dg(o, function(h, f) {
|
| 24917 |
let g;
|
| 24918 |
switch (h) {
|
|
|
|
| 24956 |
return r.replace(/<br(?: \/)?>/gi, `
|
| 24957 |
`);
|
| 24958 |
}
|
| 24959 |
+
class F1 {
|
| 24960 |
constructor() {
|
| 24961 |
+
this.state = "INITIAL", this.buffer = "", this.decoder = new C1(), this.regionList = [], this.cue = null, this.oncue = void 0, this.onparsingerror = void 0, this.onflush = void 0;
|
| 24962 |
}
|
| 24963 |
parse(e) {
|
| 24964 |
const t = this;
|
|
|
|
| 25017 |
continue;
|
| 25018 |
}
|
| 25019 |
try {
|
| 25020 |
+
w1(s, t.cue, t.regionList);
|
| 25021 |
} catch {
|
| 25022 |
t.cue = null, t.state = "BADCUE";
|
| 25023 |
continue;
|
|
|
|
| 25059 |
return e.onflush && e.onflush(), this;
|
| 25060 |
}
|
| 25061 |
}
|
| 25062 |
+
const P1 = /\r\n|\n\r|\n|\r/g, Ga = function(e, t, i = 0) {
|
| 25063 |
return e.slice(i, i + t.length) === t;
|
| 25064 |
+
}, O1 = function(e) {
|
| 25065 |
let t = parseInt(e.slice(-3));
|
| 25066 |
const i = parseInt(e.slice(-6, -4)), n = parseInt(e.slice(-9, -7)), s = e.length > 9 ? parseInt(e.substring(0, e.indexOf(":"))) : 0;
|
| 25067 |
if (!H(t) || !H(i) || !H(n) || !H(s))
|
|
|
|
| 25071 |
function Dl(r, e, t) {
|
| 25072 |
return Qn(r.toString()) + Qn(e.toString()) + Qn(t);
|
| 25073 |
}
|
| 25074 |
+
const $1 = function(e, t, i) {
|
| 25075 |
let n = e[t], s = e[n.prevCC];
|
| 25076 |
if (!s || !s.new && n.new) {
|
| 25077 |
e.ccOffset = e.presentationOffset = n.start, n.new = !1;
|
|
|
|
| 25083 |
}
|
| 25084 |
e.presentationOffset = i;
|
| 25085 |
};
|
| 25086 |
+
function M1(r, e, t, i, n, s, a) {
|
| 25087 |
+
const o = new F1(), l = Rt(new Uint8Array(r)).trim().replace(P1, `
|
| 25088 |
`).split(`
|
| 25089 |
`), u = [], c = e ? KE(e.baseTime, e.timescale) : 0;
|
| 25090 |
let d = "00:00.000", h = 0, f = 0, g, m = !0;
|
|
|
|
| 25092 |
const v = t[i];
|
| 25093 |
let _ = t.ccOffset;
|
| 25094 |
const y = (h - c) / 9e4;
|
| 25095 |
+
if (v != null && v.new && (f !== void 0 ? _ = t.ccOffset = v.start : $1(t, i, y)), y) {
|
| 25096 |
if (!e) {
|
| 25097 |
g = new Error("Missing initPTS for VTT MPEGTS");
|
| 25098 |
return;
|
|
|
|
| 25118 |
Ga(v, "LOCAL:") ? d = v.slice(6) : Ga(v, "MPEGTS:") && (h = parseInt(v.slice(7)));
|
| 25119 |
});
|
| 25120 |
try {
|
| 25121 |
+
f = O1(d) / 1e3;
|
| 25122 |
} catch (v) {
|
| 25123 |
g = v;
|
| 25124 |
}
|
|
|
|
| 25128 |
`);
|
| 25129 |
}), o.flush();
|
| 25130 |
}
|
| 25131 |
+
const Va = "stpp.ttml.im1t", xg = /^(\d{2,}):(\d{2}):(\d{2}):(\d{2})\.?(\d+)?$/, Lg = /^(\d*(?:\.\d*)?)(h|m|s|ms|f|t)$/, B1 = {
|
| 25132 |
left: "start",
|
| 25133 |
center: "center",
|
| 25134 |
right: "end",
|
|
|
|
| 25143 |
}
|
| 25144 |
const s = n.map((o) => Rt(o)), a = VE(e.baseTime, 1, e.timescale);
|
| 25145 |
try {
|
| 25146 |
+
s.forEach((o) => t(N1(o, a)));
|
| 25147 |
} catch (o) {
|
| 25148 |
i(o);
|
| 25149 |
}
|
| 25150 |
}
|
| 25151 |
+
function N1(r, e) {
|
| 25152 |
const n = new DOMParser().parseFromString(r, "text/xml").getElementsByTagName("tt")[0];
|
| 25153 |
if (!n)
|
| 25154 |
throw new Error("Invalid ttml");
|
|
|
|
| 25173 |
}
|
| 25174 |
const p = new Al(f - e, m - e, h);
|
| 25175 |
p.id = Dl(p.startTime, p.endTime, p.text);
|
| 25176 |
+
const v = u[d.getAttribute("region")], _ = l[d.getAttribute("style")], y = U1(v, _, l), {
|
| 25177 |
textAlign: S
|
| 25178 |
} = y;
|
| 25179 |
if (S) {
|
| 25180 |
+
const b = B1[S];
|
| 25181 |
b && (p.lineAlign = b), p.align = S;
|
| 25182 |
}
|
| 25183 |
return Se(p, y), p;
|
|
|
|
| 25200 |
` : (s = i.childNodes) != null && s.length ? kg(i, e) : e ? t + i.textContent.trim().replace(/\s+/g, " ") : t + i.textContent;
|
| 25201 |
}, "");
|
| 25202 |
}
|
| 25203 |
+
function U1(r, e, t) {
|
| 25204 |
const i = "http://www.w3.org/ns/ttml#styling";
|
| 25205 |
let n = null;
|
| 25206 |
const s = [
|
|
|
|
| 25232 |
if (!r)
|
| 25233 |
return null;
|
| 25234 |
let t = Ag(r);
|
| 25235 |
+
return t === null && (xg.test(r) ? t = G1(r, e) : Lg.test(r) && (t = V1(r, e))), t;
|
| 25236 |
}
|
| 25237 |
+
function G1(r, e) {
|
| 25238 |
const t = xg.exec(r), i = (t[4] | 0) + (t[5] | 0) / e.subFrameRate;
|
| 25239 |
return (t[1] | 0) * 3600 + (t[2] | 0) * 60 + (t[3] | 0) + i / e.frameRate;
|
| 25240 |
}
|
| 25241 |
+
function V1(r, e) {
|
| 25242 |
const t = Lg.exec(r), i = Number(t[1]);
|
| 25243 |
switch (t[2]) {
|
| 25244 |
case "h":
|
|
|
|
| 25268 |
this.cueRanges = [], this.startTime = null;
|
| 25269 |
}
|
| 25270 |
}
|
| 25271 |
+
class K1 {
|
| 25272 |
constructor(e) {
|
| 25273 |
this.hls = void 0, this.media = null, this.config = void 0, this.enabled = !0, this.Cues = void 0, this.textTracks = [], this.tracks = [], this.initPTS = [], this.unparsedVttFrags = [], this.captionsTracks = {}, this.nonNativeCaptionsTracks = {}, this.cea608Parser1 = void 0, this.cea608Parser2 = void 0, this.lastCc = -1, this.lastSn = -1, this.lastPartIndex = -1, this.prevCC = -1, this.vttCCs = Qc(), this.captionsProperties = void 0, this.hls = e, this.config = e.config, this.Cues = e.config.cueHandler, this.captionsProperties = {
|
| 25274 |
textTrack1: {
|
|
|
|
| 25302 |
addCues(e, t, i, n, s) {
|
| 25303 |
let a = !1;
|
| 25304 |
for (let o = s.length; o--; ) {
|
| 25305 |
+
const l = s[o], u = H1(l[0], l[1], t, i);
|
| 25306 |
if (u >= 0 && (l[0] = Math.min(l[0], t), l[1] = Math.max(l[1], i), a = !0, u / (i - t) > 0.5))
|
| 25307 |
return;
|
| 25308 |
}
|
|
|
|
| 25551 |
return;
|
| 25552 |
}
|
| 25553 |
const l = this.hls, u = (t = i.initSegment) != null && t.data ? Gt(i.initSegment.data, new Uint8Array(n)).buffer : n;
|
| 25554 |
+
M1(u, this.initPTS[i.cc], this.vttCCs, i.cc, i.start, (c) => {
|
| 25555 |
this._appendCues(c, i.level), l.trigger(E.SUBTITLE_FRAG_PROCESSED, {
|
| 25556 |
success: !0,
|
| 25557 |
frag: i
|
|
|
|
| 25663 |
function Xc(r, e) {
|
| 25664 |
return !!r && r.kind === Cg(e) && Ao(e, r);
|
| 25665 |
}
|
| 25666 |
+
function H1(r, e, t, i) {
|
| 25667 |
return Math.min(e, i) - Math.max(r, t);
|
| 25668 |
}
|
| 25669 |
function Qc() {
|
|
|
|
| 25677 |
}
|
| 25678 |
};
|
| 25679 |
}
|
| 25680 |
+
const q1 = /\s/, z1 = {
|
| 25681 |
newCue(r, e, t, i) {
|
| 25682 |
const n = [];
|
| 25683 |
let s, a, o, l, u;
|
|
|
|
| 25686 |
if (s = i.rows[h], o = !0, l = 0, u = "", !s.isEmpty()) {
|
| 25687 |
var d;
|
| 25688 |
for (let m = 0; m < s.chars.length; m++)
|
| 25689 |
+
q1.test(s.chars[m].uchar) && o ? l++ : (u += s.chars[m].uchar, o = !1);
|
| 25690 |
s.cueStartTime = e, e === t && (t += 1e-4), l >= 16 ? l-- : l++;
|
| 25691 |
const f = Ig(u.trim()), g = Dl(e, t, f);
|
| 25692 |
r != null && (d = r.cues) != null && d.getCueById(g) || (a = new c(e, t, f), a.id = g, a.line = h + 1, a.align = "left", a.position = 10 + Math.min(80, Math.floor(l * 8 / 32) * 10), n.push(a));
|
|
|
|
| 25694 |
return r && n.length && (n.sort((h, f) => h.line === "auto" || f.line === "auto" ? 0 : h.line > 8 && f.line > 8 ? f.line - h.line : h.line - f.line), n.forEach((h) => Eg(r, h))), n;
|
| 25695 |
}
|
| 25696 |
};
|
| 25697 |
+
function W1() {
|
| 25698 |
if (
|
| 25699 |
// @ts-ignore
|
| 25700 |
self.fetch && self.AbortController && self.ReadableStream && self.Request
|
|
|
|
| 25705 |
}
|
| 25706 |
return !1;
|
| 25707 |
}
|
| 25708 |
+
const j1 = /(\d+)-(\d+)\/(\d+)/;
|
| 25709 |
class Zc {
|
| 25710 |
constructor(e) {
|
| 25711 |
+
this.fetchSetup = void 0, this.requestTimeout = void 0, this.request = null, this.response = null, this.controller = void 0, this.context = null, this.config = null, this.callbacks = null, this.stats = void 0, this.loader = null, this.fetchSetup = e.fetchSetup || Z1, this.controller = new self.AbortController(), this.stats = new nl();
|
| 25712 |
}
|
| 25713 |
destroy() {
|
| 25714 |
this.loader = this.callbacks = this.context = this.config = this.request = null, this.abortInternal(), this.response = null, this.fetchSetup = this.controller = this.stats = null;
|
|
|
|
| 25725 |
if (n.loading.start)
|
| 25726 |
throw new Error("Loader can only be used once.");
|
| 25727 |
n.loading.start = self.performance.now();
|
| 25728 |
+
const s = Y1(e, this.controller.signal), a = e.responseType === "arraybuffer", o = a ? "byteLength" : "length", {
|
| 25729 |
maxTimeToFirstByteMs: l,
|
| 25730 |
maxLoadTimeMs: u
|
| 25731 |
} = t.loadPolicy;
|
|
|
|
| 25742 |
status: m,
|
| 25743 |
statusText: p
|
| 25744 |
} = d;
|
| 25745 |
+
throw new J1(p || "fetch, bad network response", m, d);
|
| 25746 |
}
|
| 25747 |
+
n.loading.first = f, n.total = Q1(d.headers) || n.total;
|
| 25748 |
const g = (h = this.callbacks) == null ? void 0 : h.onProgress;
|
| 25749 |
return g && H(t.highWaterMark) ? this.loadProgressively(d, n, e, t.highWaterMark, g) : a ? d.arrayBuffer() : e.responseType === "json" ? d.json() : d.text();
|
| 25750 |
}).then((d) => {
|
|
|
|
| 25793 |
return l();
|
| 25794 |
}
|
| 25795 |
}
|
| 25796 |
+
function Y1(r, e) {
|
| 25797 |
const t = {
|
| 25798 |
method: "GET",
|
| 25799 |
mode: "cors",
|
|
|
|
| 25803 |
};
|
| 25804 |
return r.rangeEnd && t.headers.set("Range", "bytes=" + r.rangeStart + "-" + String(r.rangeEnd - 1)), t;
|
| 25805 |
}
|
| 25806 |
+
function X1(r) {
|
| 25807 |
+
const e = j1.exec(r);
|
| 25808 |
if (e)
|
| 25809 |
return parseInt(e[2]) - parseInt(e[1]) + 1;
|
| 25810 |
}
|
| 25811 |
+
function Q1(r) {
|
| 25812 |
const e = r.get("Content-Range");
|
| 25813 |
if (e) {
|
| 25814 |
+
const i = X1(e);
|
| 25815 |
if (H(i))
|
| 25816 |
return i;
|
| 25817 |
}
|
|
|
|
| 25819 |
if (t)
|
| 25820 |
return parseInt(t);
|
| 25821 |
}
|
| 25822 |
+
function Z1(r, e) {
|
| 25823 |
return new self.Request(r.url, e);
|
| 25824 |
}
|
| 25825 |
+
class J1 extends Error {
|
| 25826 |
constructor(e, t, i) {
|
| 25827 |
super(e), this.code = void 0, this.details = void 0, this.code = t, this.details = i;
|
| 25828 |
}
|
| 25829 |
}
|
| 25830 |
+
const eb = /^age:\s*[\d.]+\s*$/im;
|
| 25831 |
class Rg {
|
| 25832 |
constructor(e) {
|
| 25833 |
this.xhrSetup = void 0, this.requestTimeout = void 0, this.retryTimeout = void 0, this.retryDelay = void 0, this.config = null, this.callbacks = null, this.context = null, this.loader = null, this.stats = void 0, this.xhrSetup = e && e.xhrSetup || null, this.stats = new nl(), this.retryDelay = 0;
|
|
|
|
| 25956 |
}
|
| 25957 |
getCacheAge() {
|
| 25958 |
let e = null;
|
| 25959 |
+
if (this.loader && eb.test(this.loader.getAllResponseHeaders())) {
|
| 25960 |
const t = this.loader.getResponseHeader("age");
|
| 25961 |
e = t ? parseFloat(t) : null;
|
| 25962 |
}
|
|
|
|
| 25966 |
return this.loader && new RegExp(`^${e}:\\s*[\\d.]+\\s*$`, "im").test(this.loader.getAllResponseHeaders()) ? this.loader.getResponseHeader(e) : null;
|
| 25967 |
}
|
| 25968 |
}
|
| 25969 |
+
const tb = {
|
| 25970 |
maxTimeToFirstByteMs: 8e3,
|
| 25971 |
maxLoadTimeMs: 2e4,
|
| 25972 |
timeoutRetry: null,
|
| 25973 |
errorRetry: null
|
| 25974 |
+
}, ib = pe(pe({
|
| 25975 |
autoStartLoad: !0,
|
| 25976 |
// used by stream-controller
|
| 25977 |
startPosition: -1,
|
|
|
|
| 26070 |
bufferController: sS,
|
| 26071 |
capLevelController: Sl,
|
| 26072 |
errorController: vv,
|
| 26073 |
+
fpsController: r1,
|
| 26074 |
stretchShortVideoTrack: !1,
|
| 26075 |
// used by mp4-remuxer
|
| 26076 |
maxAudioFramesDrift: 1,
|
|
|
|
| 26127 |
useMediaCapabilities: !0,
|
| 26128 |
preserveManualLevelOnError: !1,
|
| 26129 |
certLoadPolicy: {
|
| 26130 |
+
default: tb
|
| 26131 |
},
|
| 26132 |
keyLoadPolicy: {
|
| 26133 |
default: {
|
|
|
|
| 26241 |
fragLoadingMaxRetry: 6,
|
| 26242 |
fragLoadingRetryDelay: 1e3,
|
| 26243 |
fragLoadingMaxRetryTimeout: 64e3
|
| 26244 |
+
}, nb()), {}, {
|
| 26245 |
+
subtitleStreamController: _1,
|
| 26246 |
+
subtitleTrackController: l1,
|
| 26247 |
+
timelineController: K1,
|
| 26248 |
audioStreamController: eS,
|
| 26249 |
audioTrackController: tS,
|
| 26250 |
emeController: xn,
|
| 26251 |
+
cmcdController: t1,
|
| 26252 |
+
contentSteeringController: n1,
|
| 26253 |
+
interstitialsController: p1
|
| 26254 |
});
|
| 26255 |
+
function nb() {
|
| 26256 |
return {
|
| 26257 |
+
cueHandler: z1,
|
| 26258 |
// used by timeline-controller
|
| 26259 |
enableWebVTT: !0,
|
| 26260 |
// used by timeline-controller
|
|
|
|
| 26281 |
renderTextTracksNatively: !0
|
| 26282 |
};
|
| 26283 |
}
|
| 26284 |
+
function sb(r, e, t) {
|
| 26285 |
if ((e.liveSyncDurationCount || e.liveMaxLatencyDurationCount) && (e.liveSyncDuration || e.liveMaxLatencyDuration))
|
| 26286 |
throw new Error("Illegal hls.js config: don't mix up liveSyncDurationCount/liveMaxLatencyDurationCount and liveSyncDuration/liveMaxLatencyDuration");
|
| 26287 |
if (e.liveMaxLatencyDurationCount !== void 0 && (e.liveSyncDurationCount === void 0 || e.liveMaxLatencyDurationCount <= e.liveSyncDurationCount))
|
|
|
|
| 26319 |
function Co(r) {
|
| 26320 |
return r && typeof r == "object" ? Array.isArray(r) ? r.map(Co) : Object.keys(r).reduce((e, t) => (e[t] = Co(r[t]), e), {}) : r;
|
| 26321 |
}
|
| 26322 |
+
function rb(r, e) {
|
| 26323 |
const t = r.loader;
|
| 26324 |
+
t !== Zc && t !== Rg ? (e.log("[config]: Custom loader detected, cannot enable progressive streaming"), r.progressive = !1) : W1() && (r.loader = Zc, r.progressive = !0, r.enableSoftwareAES = !0, e.log("[config]: Progressive streaming enabled, using FetchLoader"));
|
| 26325 |
}
|
| 26326 |
+
const dr = 2, ab = 0.1, ob = 0.05, lb = 100;
|
| 26327 |
+
class ub extends Af {
|
| 26328 |
constructor(e, t) {
|
| 26329 |
super("gap-controller", e.logger), this.hls = void 0, this.fragmentTracker = void 0, this.media = null, this.mediaSource = void 0, this.nudgeRetry = 0, this.stallReported = !1, this.stalled = null, this.moved = !1, this.seeking = !1, this.buffered = {}, this.lastCurrentTime = 0, this.ended = 0, this.waiting = 0, this.onMediaPlaying = () => {
|
| 26330 |
this.ended = 0, this.waiting = 0;
|
|
|
|
| 26356 |
super.destroy(), this.unregisterListeners(), this.media = this.hls = this.fragmentTracker = null, this.mediaSource = void 0;
|
| 26357 |
}
|
| 26358 |
onMediaAttached(e, t) {
|
| 26359 |
+
this.setInterval(lb), this.mediaSource = t.mediaSource;
|
| 26360 |
const i = this.media = t.media;
|
| 26361 |
dt(i, "playing", this.onMediaPlaying), dt(i, "waiting", this.onMediaWaiting), dt(i, "ended", this.onMediaEnded);
|
| 26362 |
}
|
|
|
|
| 26594 |
return 0;
|
| 26595 |
}
|
| 26596 |
}
|
| 26597 |
+
const f = Math.max(l + ob, a + ab);
|
| 26598 |
if (this.warn(`skipping hole, adjusting currentTime from ${a} to ${f}`), this.moved = !0, n.currentTime = f, !(e != null && e.gap)) {
|
| 26599 |
const g = new Error(`fragment loaded with buffer holes, seeking from ${a} to ${f}`), m = {
|
| 26600 |
type: j.MEDIA_ERROR,
|
|
|
|
| 26670 |
function Ks(r, e) {
|
| 26671 |
return e.getAppendedFrag(r, W.MAIN) || e.getPartialFragment(r);
|
| 26672 |
}
|
| 26673 |
+
const cb = 0.25;
|
| 26674 |
function Ro() {
|
| 26675 |
if (!(typeof self > "u"))
|
| 26676 |
return self.VTTCue || self.TextTrackCue;
|
|
|
|
| 26695 |
}
|
| 26696 |
return Number.POSITIVE_INFINITY;
|
| 26697 |
})();
|
| 26698 |
+
class db {
|
| 26699 |
constructor(e) {
|
| 26700 |
this.hls = void 0, this.id3Track = null, this.media = null, this.dateRangeCuesAppended = {}, this.removeCues = !0, this.assetCue = void 0, this.onEventCueEnter = () => {
|
| 26701 |
this.hls && this.hls.trigger(E.EVENT_CUE_ENTER, {});
|
|
|
|
| 26767 |
continue;
|
| 26768 |
const u = Wf(s[o].data), c = s[o].pts;
|
| 26769 |
let d = c + s[o].duration;
|
| 26770 |
+
d > Hs && (d = Hs), d - c <= 0 && (d = c + cb);
|
| 26771 |
for (let f = 0; f < u.length; f++) {
|
| 26772 |
const g = u[f];
|
| 26773 |
if (!jf(g)) {
|
|
|
|
| 26918 |
}
|
| 26919 |
}
|
| 26920 |
}
|
| 26921 |
+
class hb {
|
| 26922 |
constructor(e) {
|
| 26923 |
this.hls = void 0, this.config = void 0, this.media = null, this.currentTime = 0, this.stallCount = 0, this._latency = null, this._targetLatencyUpdated = !1, this.onTimeupdate = () => {
|
| 26924 |
const {
|
|
|
|
| 27060 |
return e === null ? null : e - this.currentTime;
|
| 27061 |
}
|
| 27062 |
}
|
| 27063 |
+
class fb extends El {
|
| 27064 |
constructor(e, t) {
|
| 27065 |
super(e, "level-controller"), this._levels = [], this._firstLevel = -1, this._maxAutoLevel = -1, this._startLevel = void 0, this.currentLevel = null, this.currentLevelIndex = -1, this.manualLevelIndex = -1, this.steering = void 0, this.onParsedComplete = void 0, this.steering = t, this._registerListeners();
|
| 27066 |
}
|
|
|
|
| 27431 |
const e = wg();
|
| 27432 |
return !e || e.prototype && typeof e.prototype.appendBuffer == "function" && typeof e.prototype.remove == "function";
|
| 27433 |
}
|
| 27434 |
+
function gb() {
|
| 27435 |
if (!Fg())
|
| 27436 |
return !1;
|
| 27437 |
const r = Mi();
|
| 27438 |
return typeof (r == null ? void 0 : r.isTypeSupported) == "function" && (["avc1.42E01E,mp4a.40.2", "av01.0.01M.08", "vp09.00.50.08"].some((e) => r.isTypeSupported(is(e, "video"))) || ["mp4a.40.2", "fLaC"].some((e) => r.isTypeSupported(is(e, "audio"))));
|
| 27439 |
}
|
| 27440 |
+
function mb() {
|
| 27441 |
var r;
|
| 27442 |
const e = wg();
|
| 27443 |
return typeof (e == null || (r = e.prototype) == null ? void 0 : r.changeType) == "function";
|
| 27444 |
}
|
| 27445 |
+
const pb = 100;
|
| 27446 |
+
class _b extends hl {
|
| 27447 |
constructor(e, t, i) {
|
| 27448 |
super(e, t, i, "stream-controller", W.MAIN), this.audioCodecSwap = !1, this.level = -1, this._forceStartLoad = !1, this._hasEnoughToStart = !1, this.altAudio = 0, this.audioOnly = !1, this.fragPlaying = null, this.fragLastKbps = 0, this.couldBacktrack = !1, this.backtrackFragment = null, this.audioCodecSwitch = !1, this.videoBuffer = null, this.onMediaPlaying = () => {
|
| 27449 |
this.tick();
|
|
|
|
| 27482 |
lastCurrentTime: i,
|
| 27483 |
hls: n
|
| 27484 |
} = this;
|
| 27485 |
+
if (this.stopLoad(), this.setInterval(pb), this.level = -1, !this.startFragRequested) {
|
| 27486 |
let s = n.startLevel;
|
| 27487 |
s === -1 && (n.config.testBandwidth && this.levels.length > 1 ? (s = 0, this.bitrateTest = !0) : s = n.firstAutoLevel), n.nextLoadLevel = s, this.level = n.loadLevel, this._hasEnoughToStart = !!t;
|
| 27488 |
}
|
|
|
|
| 27662 |
const a = t.levels[s].audioCodec;
|
| 27663 |
a && (i = i || a.indexOf("mp4a.40.2") !== -1, n = n || a.indexOf("mp4a.40.5") !== -1);
|
| 27664 |
}
|
| 27665 |
+
this.audioCodecSwitch = i && n && !mb(), this.audioCodecSwitch && this.log("Both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC"), this.levels = t.levels, this.startFragRequested = !1;
|
| 27666 |
}
|
| 27667 |
onLevelLoading(e, t) {
|
| 27668 |
const {
|
|
|
|
| 28167 |
return this._forceStartLoad;
|
| 28168 |
}
|
| 28169 |
}
|
| 28170 |
+
class yb extends Kt {
|
| 28171 |
constructor(e, t) {
|
| 28172 |
super("key-loader", t), this.config = void 0, this.keyIdToKeyInfo = {}, this.emeController = null, this.config = e;
|
| 28173 |
}
|
|
|
|
| 28383 |
let t = r.url;
|
| 28384 |
return (t === void 0 || t.indexOf("data:") === 0) && (t = e.url), t;
|
| 28385 |
}
|
| 28386 |
+
class vb {
|
| 28387 |
constructor(e) {
|
| 28388 |
this.hls = void 0, this.loaders = /* @__PURE__ */ Object.create(null), this.variableList = null, this.onManifestLoaded = this.checkAutostartLoad, this.hls = e, this.registerListeners();
|
| 28389 |
}
|
|
|
|
| 28833 |
* Check if MediaSource Extensions are available and isTypeSupported checks pass for any baseline codecs.
|
| 28834 |
*/
|
| 28835 |
static isSupported() {
|
| 28836 |
+
return gb();
|
| 28837 |
}
|
| 28838 |
/**
|
| 28839 |
* Get the MediaSource global used for MSE playback (ManagedMediaSource, MediaSource, or WebKitMediaSource).
|
|
|
|
| 28857 |
* Get the default configuration applied to new instances.
|
| 28858 |
*/
|
| 28859 |
static get DefaultConfig() {
|
| 28860 |
+
return kt.defaultConfig ? kt.defaultConfig : ib;
|
| 28861 |
}
|
| 28862 |
/**
|
| 28863 |
* Replace the default configuration applied to new instances.
|
|
|
|
| 28871 |
*/
|
| 28872 |
constructor(e = {}) {
|
| 28873 |
this.config = void 0, this.userConfig = void 0, this.logger = void 0, this.coreComponents = void 0, this.networkControllers = void 0, this._emitter = new fl(), this._autoLevelCapping = -1, this._maxHdcpLevel = null, this.abrController = void 0, this.bufferController = void 0, this.capLevelController = void 0, this.latencyController = void 0, this.levelController = void 0, this.streamController = void 0, this.audioStreamController = void 0, this.subtititleStreamController = void 0, this.audioTrackController = void 0, this.subtitleTrackController = void 0, this.interstitialsController = void 0, this.gapController = void 0, this.emeController = void 0, this.cmcdController = void 0, this._media = null, this._url = null, this._sessionId = void 0, this.triggeringException = void 0, this.started = !1;
|
| 28874 |
+
const t = this.logger = Dy(e.debug || !1, "Hls instance", e.assetPlayerId), i = this.config = sb(kt.DefaultConfig, e, t);
|
| 28875 |
+
this.userConfig = e, i.progressive && rb(i, t);
|
| 28876 |
const {
|
| 28877 |
abrController: n,
|
| 28878 |
bufferController: s,
|
| 28879 |
capLevelController: a,
|
| 28880 |
errorController: o,
|
| 28881 |
fpsController: l
|
| 28882 |
+
} = i, u = new o(this), c = this.abrController = new n(this), d = new Ev(this), h = i.interstitialsController, f = h ? this.interstitialsController = new h(this, kt) : null, g = this.bufferController = new s(this, d), m = this.capLevelController = new a(this), p = new l(this), v = new vb(this), _ = i.contentSteeringController, y = _ ? new _(this) : null, S = this.levelController = new fb(this, y), b = new db(this), A = new yb(this.config, this.logger), T = this.streamController = new _b(this, d, A), D = this.gapController = new ub(this, d);
|
| 28883 |
m.setStreamController(T), p.setStreamController(T);
|
| 28884 |
const I = [v, S, T];
|
| 28885 |
f && I.splice(1, 0, f), y && I.splice(1, 0, y), this.networkControllers = I;
|
|
|
|
| 28888 |
const k = i.audioStreamController;
|
| 28889 |
k && I.push(this.audioStreamController = new k(this, d, A)), this.subtitleTrackController = this.createController(i.subtitleTrackController, I);
|
| 28890 |
const R = i.subtitleStreamController;
|
| 28891 |
+
R && I.push(this.subtititleStreamController = new R(this, d, A)), this.createController(i.timelineController, x), A.emeController = this.emeController = this.createController(i.emeController, x), this.cmcdController = this.createController(i.cmcdController, x), this.latencyController = this.createController(hb, x), this.coreComponents = x, I.push(u);
|
| 28892 |
const N = u.onErrorOut;
|
| 28893 |
typeof N == "function" && this.on(E.ERROR, N, u), this.on(E.MANIFEST_LOADED, v.onManifestLoaded, v);
|
| 28894 |
}
|
|
|
|
| 29095 |
*/
|
| 29096 |
get sessionId() {
|
| 29097 |
let e = this._sessionId;
|
| 29098 |
+
return e || (e = this._sessionId = u1()), e;
|
| 29099 |
}
|
| 29100 |
/**
|
| 29101 |
* @returns an array of levels (variants) sorted by HDCP-LEVEL, RESOLUTION (height), FRAME-RATE, CODECS, VIDEO-RANGE, and BANDWIDTH
|
|
|
|
| 29524 |
}
|
| 29525 |
kt.defaultConfig = void 0;
|
| 29526 |
const {
|
| 29527 |
+
SvelteComponent: Eb,
|
| 29528 |
+
action_destroyer: Sb,
|
| 29529 |
+
add_render_callback: bb,
|
| 29530 |
assign: nd,
|
| 29531 |
attr: Fi,
|
| 29532 |
+
binding_callbacks: Tb,
|
| 29533 |
bubble: Ya,
|
| 29534 |
+
children: Ab,
|
| 29535 |
claim_element: sd,
|
| 29536 |
+
claim_space: Db,
|
| 29537 |
+
create_slot: Ib,
|
| 29538 |
detach: qs,
|
| 29539 |
element: rd,
|
| 29540 |
exclude_internal_props: ad,
|
| 29541 |
+
get_all_dirty_from_scope: xb,
|
| 29542 |
+
get_slot_changes: Lb,
|
| 29543 |
+
get_svelte_dataset: kb,
|
| 29544 |
+
init: Cb,
|
| 29545 |
insert_hydration: Xa,
|
| 29546 |
+
is_function: Rb,
|
| 29547 |
listen: Ye,
|
| 29548 |
+
raf: wb,
|
| 29549 |
+
run_all: Fb,
|
| 29550 |
+
safe_not_equal: Pb,
|
| 29551 |
+
space: Ob,
|
| 29552 |
src_url_equal: od,
|
| 29553 |
toggle_class: ld,
|
| 29554 |
+
transition_in: $b,
|
| 29555 |
+
transition_out: Mb,
|
| 29556 |
+
update_slot_base: Bb
|
| 29557 |
+
} = window.__gradio__svelte__internal, { createEventDispatcher: Nb } = window.__gradio__svelte__internal;
|
| 29558 |
+
function Ub(r) {
|
| 29559 |
let e, t = '<span class="load-wrap svelte-1pwzuub"><span class="loader svelte-1pwzuub"></span></span>', i, n, s, a, o = !1, l, u = !0, c, d, h, f;
|
| 29560 |
const g = (
|
| 29561 |
/*#slots*/
|
| 29562 |
r[16].default
|
| 29563 |
+
), m = Ib(
|
| 29564 |
g,
|
| 29565 |
r,
|
| 29566 |
/*$$scope*/
|
|
|
|
| 29568 |
null
|
| 29569 |
);
|
| 29570 |
function p() {
|
| 29571 |
+
cancelAnimationFrame(l), n.paused || (l = wb(p), o = !0), r[20].call(n);
|
| 29572 |
}
|
| 29573 |
return {
|
| 29574 |
c() {
|
| 29575 |
+
e = rd("div"), e.innerHTML = t, i = Ob(), n = rd("video"), m && m.c(), this.h();
|
| 29576 |
},
|
| 29577 |
l(v) {
|
| 29578 |
+
e = sd(v, "DIV", { class: !0, "data-svelte-h": !0 }), kb(e) !== "svelte-mez4j5" && (e.innerHTML = t), i = Db(v), n = sd(v, "VIDEO", {
|
| 29579 |
src: !0,
|
| 29580 |
preload: !0,
|
| 29581 |
"data-testid": !0,
|
| 29582 |
crossorigin: !0
|
| 29583 |
});
|
| 29584 |
+
var _ = Ab(n);
|
| 29585 |
m && m.l(_), _.forEach(qs), this.h();
|
| 29586 |
},
|
| 29587 |
h() {
|
|
|
|
| 29599 |
r[9], n.loop = /*loop*/
|
| 29600 |
r[10], Fi(n, "data-testid", a = /*$$props*/
|
| 29601 |
r[13]["data-testid"]), Fi(n, "crossorigin", "anonymous"), /*duration*/
|
| 29602 |
+
r[2] === void 0 && bb(() => (
|
| 29603 |
/*video_durationchange_handler*/
|
| 29604 |
r[21].call(n)
|
| 29605 |
));
|
|
|
|
| 29703 |
/*video_play_pause_handler*/
|
| 29704 |
r[22]
|
| 29705 |
),
|
| 29706 |
+
Sb(c = py.call(null, n, { autoplay: (
|
| 29707 |
/*autoplay*/
|
| 29708 |
r[8] ?? !1
|
| 29709 |
) }))
|
|
|
|
| 29713 |
(!d || _ & /*processingVideo*/
|
| 29714 |
2048) && ld(e, "hidden", !/*processingVideo*/
|
| 29715 |
v[11]), m && m.p && (!d || _ & /*$$scope*/
|
| 29716 |
+
32768) && Bb(
|
| 29717 |
m,
|
| 29718 |
g,
|
| 29719 |
v,
|
| 29720 |
/*$$scope*/
|
| 29721 |
v[15],
|
| 29722 |
+
d ? Lb(
|
| 29723 |
g,
|
| 29724 |
/*$$scope*/
|
| 29725 |
v[15],
|
| 29726 |
_,
|
| 29727 |
null
|
| 29728 |
+
) : xb(
|
| 29729 |
/*$$scope*/
|
| 29730 |
v[15]
|
| 29731 |
),
|
|
|
|
| 29757 |
) && (n.currentTime = /*currentTime*/
|
| 29758 |
v[1]), o = !1, _ & /*paused*/
|
| 29759 |
8 && u !== (u = /*paused*/
|
| 29760 |
+
v[3]) && n[u ? "pause" : "play"](), c && Rb(c.update) && _ & /*autoplay*/
|
| 29761 |
256 && c.update.call(null, { autoplay: (
|
| 29762 |
/*autoplay*/
|
| 29763 |
v[8] ?? !1
|
| 29764 |
) });
|
| 29765 |
},
|
| 29766 |
i(v) {
|
| 29767 |
+
d || ($b(m, v), d = !0);
|
| 29768 |
},
|
| 29769 |
o(v) {
|
| 29770 |
+
Mb(m, v), d = !1;
|
| 29771 |
},
|
| 29772 |
d(v) {
|
| 29773 |
+
v && (qs(e), qs(i), qs(n)), m && m.d(v), r[23](null), h = !1, Fb(f);
|
| 29774 |
}
|
| 29775 |
};
|
| 29776 |
}
|
| 29777 |
+
function Gb(r, e, t) {
|
| 29778 |
let { $$slots: i = {}, $$scope: n } = e, { src: s = void 0 } = e, { muted: a = void 0 } = e, { playsinline: o = void 0 } = e, { preload: l = void 0 } = e, { autoplay: u = void 0 } = e, { controls: c = void 0 } = e, { currentTime: d = void 0 } = e, { duration: h = void 0 } = e, { paused: f = void 0 } = e, { node: g = void 0 } = e, { loop: m } = e, { is_stream: p } = e, { processingVideo: v = !1 } = e, _ = !1;
|
| 29779 |
+
const y = Nb();
|
| 29780 |
function S(R, N, K) {
|
| 29781 |
if (!(!R || !N) && kt.isSupported() && !_) {
|
| 29782 |
const U = new kt({
|
|
|
|
| 29824 |
f = this.paused, t(3, f);
|
| 29825 |
}
|
| 29826 |
function k(R) {
|
| 29827 |
+
Tb[R ? "unshift" : "push"](() => {
|
| 29828 |
g = R, t(0, g);
|
| 29829 |
});
|
| 29830 |
}
|
|
|
|
| 29861 |
k
|
| 29862 |
];
|
| 29863 |
}
|
| 29864 |
+
class zr extends Eb {
|
| 29865 |
constructor(e) {
|
| 29866 |
+
super(), Cb(this, e, Gb, Ub, Pb, {
|
| 29867 |
src: 4,
|
| 29868 |
muted: 5,
|
| 29869 |
playsinline: 6,
|
|
|
|
| 29965 |
}
|
| 29966 |
}
|
| 29967 |
Ai = new WeakMap();
|
| 29968 |
+
async function Vb(r) {
|
| 29969 |
return r ? `<div style="display: flex; flex-wrap: wrap; gap: 16px">${(await Promise.all(
|
| 29970 |
r.map(async ([t, i]) => t === null || !t.url ? "" : await f_(t.url))
|
| 29971 |
)).map((t) => `<img src="${t}" style="height: 400px" />`).join("")}</div>` : "";
|
| 29972 |
}
|
| 29973 |
var Wr = typeof self < "u" ? self : global;
|
| 29974 |
+
const ls = typeof navigator < "u", Kb = ls && typeof HTMLImageElement > "u", Rr = !(typeof global > "u" || typeof process > "u" || !process.versions || !process.versions.node), Il = Wr.Buffer, zs = Wr.BigInt, xl = !!Il, Hb = (r) => r;
|
| 29975 |
+
function wr(r, e = Hb) {
|
| 29976 |
if (Rr) try {
|
| 29977 |
return typeof require == "function" ? Promise.resolve(e(require(r))) : import(
|
| 29978 |
/* webpackIgnore: true */
|
|
|
|
| 29983 |
}
|
| 29984 |
}
|
| 29985 |
let Ll = Wr.fetch;
|
| 29986 |
+
const qb = (r) => Ll = r;
|
| 29987 |
if (!Wr.fetch) {
|
| 29988 |
const r = wr("http", (i) => i), e = wr("https", (i) => i), t = (i, { headers: n } = {}) => new Promise(async (s, a) => {
|
| 29989 |
let { port: o, hostname: l, pathname: u, protocol: c, search: d } = new URL(i);
|
|
|
|
| 30001 |
});
|
| 30002 |
f.on("error", a), f.end();
|
| 30003 |
});
|
| 30004 |
+
qb(t);
|
| 30005 |
}
|
| 30006 |
function ie(r, e, t) {
|
| 30007 |
return e in r ? Object.defineProperty(r, e, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : r[e] = t, r;
|
| 30008 |
}
|
| 30009 |
+
const Fr = (r) => Pg(r) ? void 0 : r, zb = (r) => r !== void 0;
|
| 30010 |
function Pg(r) {
|
| 30011 |
+
return r === void 0 || (r instanceof Map ? r.size === 0 : Object.values(r).filter(zb).length === 0);
|
| 30012 |
}
|
| 30013 |
function $e(r) {
|
| 30014 |
let e = new Error(r);
|
|
|
|
| 30163 |
}
|
| 30164 |
}
|
| 30165 |
var Fn = new kl("file parser"), tt = new kl("segment parser"), $n = new kl("file reader");
|
| 30166 |
+
function Wb(r, e) {
|
| 30167 |
+
return typeof r == "string" ? hd(r, e) : ls && !Kb && r instanceof HTMLImageElement ? hd(r.src, e) : r instanceof Uint8Array || r instanceof ArrayBuffer || r instanceof DataView ? new pt(r) : ls && r instanceof Blob ? Oo(r, e, "blob", Bo) : void $e("Invalid input argument");
|
| 30168 |
}
|
| 30169 |
function hd(r, e) {
|
| 30170 |
return (t = r).startsWith("data:") || t.length > 1e4 ? $o(r, e, "base64") : Rr && r.includes("://") ? Oo(r, e, "url", Mo) : Rr ? $o(r, e, "fs") : ls ? Oo(r, e, "url", Mo) : void $e("Invalid input argument");
|
|
|
|
| 30184 |
let i = new FileReader();
|
| 30185 |
i.onloadend = () => e(i.result || new ArrayBuffer()), i.onerror = t, i.readAsArrayBuffer(r);
|
| 30186 |
});
|
| 30187 |
+
class jb extends Map {
|
| 30188 |
get tagKeys() {
|
| 30189 |
return this.allKeys || (this.allKeys = Array.from(this.keys())), this.allKeys;
|
| 30190 |
}
|
|
|
|
| 30193 |
}
|
| 30194 |
}
|
| 30195 |
function Ze(r, e, t) {
|
| 30196 |
+
let i = new jb();
|
| 30197 |
for (let [n, s] of t) i.set(n, s);
|
| 30198 |
if (Array.isArray(e)) for (let n of e) r.set(n, i);
|
| 30199 |
else r.set(e, i);
|
|
|
|
| 30327 |
for (let t of e) r.add(t);
|
| 30328 |
}
|
| 30329 |
ie(Cl, "default", at);
|
| 30330 |
+
class Yb {
|
| 30331 |
constructor(e) {
|
| 30332 |
ie(this, "parsers", {}), ie(this, "output", {}), ie(this, "errors", []), ie(this, "pushToErrors", (t) => this.errors.push(t)), this.options = Cl.useCached(e);
|
| 30333 |
}
|
| 30334 |
async read(e) {
|
| 30335 |
+
this.file = await Wb(e, this.options);
|
| 30336 |
}
|
| 30337 |
setup() {
|
| 30338 |
if (this.fileParser) return;
|
|
|
|
| 30362 |
return t.close && t.close(), o;
|
| 30363 |
}
|
| 30364 |
}
|
| 30365 |
+
async function Xb(r, e) {
|
| 30366 |
+
let t = new Yb(e);
|
| 30367 |
return await t.read(r), t.parse();
|
| 30368 |
}
|
| 30369 |
class jr {
|
|
|
|
| 30441 |
}
|
| 30442 |
}
|
| 30443 |
ie(ei, "headerLength", 4), ie(ei, "type", void 0), ie(ei, "multiSegment", !1), ie(ei, "canHandle", () => !1);
|
| 30444 |
+
function Qb(r) {
|
| 30445 |
return r === 192 || r === 194 || r === 196 || r === 219 || r === 221 || r === 218 || r === 254;
|
| 30446 |
}
|
| 30447 |
+
function Zb(r) {
|
| 30448 |
return r >= 224 && r <= 239;
|
| 30449 |
}
|
| 30450 |
+
function Jb(r, e, t) {
|
| 30451 |
for (let [i, n] of tt) if (n.canHandle(r, e, t)) return i;
|
| 30452 |
}
|
| 30453 |
class md extends jr {
|
|
|
|
| 30481 |
t -= 2;
|
| 30482 |
let i, n, s, a, o, l, { file: u, findAll: c, wanted: d, remaining: h, options: f } = this;
|
| 30483 |
for (; e < t; e++) if (u.getUint8(e) === 255) {
|
| 30484 |
+
if (i = u.getUint8(e + 1), Zb(i)) {
|
| 30485 |
+
if (n = u.getUint16(e + 2), s = Jb(u, e, n), s && d.has(s) && (a = tt.get(s), o = a.findPosition(u, e), l = f[s], o.type = s, this.appSegments.push(o), !c && (a.multiSegment && l.multiSegment ? (this.unfinishedMultiSegment = o.chunkNumber < o.chunkCount, this.unfinishedMultiSegment || h.delete(s)) : h.delete(s), h.size === 0))) break;
|
| 30486 |
f.recordUnknownSegments && (o = ei.findPosition(u, e), o.marker = i, this.unknownSegments.push(o)), e += n + 1;
|
| 30487 |
+
} else if (Qb(i)) {
|
| 30488 |
if (n = u.getUint16(e + 2), i === 218 && f.stopAfterSos !== !1) return;
|
| 30489 |
f.recordJpegSegments && this.jpegSegments.push({ offset: e, length: n, marker: i }), e += n + 1;
|
| 30490 |
}
|
|
|
|
| 31504 |
s && s.l(g), g.forEach(X), f.forEach(X), this.h();
|
| 31505 |
},
|
| 31506 |
h() {
|
| 31507 |
+
ae(i, "class", "grid-wrap svelte-1k19y3g"), mt(
|
| 31508 |
i,
|
| 31509 |
"minimal",
|
| 31510 |
/*mode*/
|
|
|
|
| 31524 |
/*height*/
|
| 31525 |
r[6] !== "auto" ? `${/*height*/
|
| 31526 |
r[6]}px` : null
|
| 31527 |
+
), ae(e, "class", "gallery-container");
|
| 31528 |
},
|
| 31529 |
m(h, f) {
|
| 31530 |
ye(h, e, f), o && o.m(e, null), ue(e, t), ue(e, i), ~n && u[n].m(i, null), r[63](e), a = !0;
|
|
|
|
| 31670 |
x.forEach(X), c = ke(D), b && b.l(D), D.forEach(X), this.h();
|
| 31671 |
},
|
| 31672 |
h() {
|
| 31673 |
+
ae(n, "class", "media-container svelte-1k19y3g"), ae(u, "class", "thumbnails scroll-hide svelte-1k19y3g"), gt(
|
| 31674 |
u,
|
| 31675 |
"justify-content",
|
| 31676 |
/*thumbnails_overflow*/
|
| 31677 |
r[24] ? "flex-start" : "center"
|
| 31678 |
+
), ae(e, "class", "preview svelte-1k19y3g"), ae(e, "aria-label", "Image Preview"), ae(e, "tabindex", "-1"), mt(
|
| 31679 |
e,
|
| 31680 |
"minimal",
|
| 31681 |
/*mode*/
|
|
|
|
| 31902 |
/*value*/
|
| 31903 |
r[4]
|
| 31904 |
),
|
| 31905 |
+
formatter: Vb
|
| 31906 |
}
|
| 31907 |
}), t.$on(
|
| 31908 |
"share",
|
|
|
|
| 32135 |
i = nn(s, t), s.forEach(X), this.h();
|
| 32136 |
},
|
| 32137 |
h() {
|
| 32138 |
+
ae(e, "class", "caption svelte-1k19y3g");
|
| 32139 |
},
|
| 32140 |
m(n, s) {
|
| 32141 |
ye(n, e, s), ue(e, i);
|
|
|
|
| 32277 |
i.l(v), n = ke(v), v.forEach(X), this.h();
|
| 32278 |
},
|
| 32279 |
h() {
|
| 32280 |
+
ae(e, "class", "thumbnail-item thumbnail-small svelte-1k19y3g"), ae(e, "aria-label", s = "Thumbnail " + /*i*/
|
| 32281 |
(r[75] + 1) + " of " + /*resolved_value*/
|
| 32282 |
r[16].length), mt(
|
| 32283 |
e,
|
|
|
|
| 32344 |
i = he(v, "BUTTON", { class: !0, "data-svelte-h": !0 }), $r(i) !== "svelte-1irq3m4" && (i.textContent = n), s = ke(v), a = he(v, "H3", { class: !0, "data-svelte-h": !0 }), $r(a) !== "svelte-1tc7pig" && (a.textContent = o), l = ke(v), g.l(v), v.forEach(X), p.forEach(X), this.h();
|
| 32345 |
},
|
| 32346 |
h() {
|
| 32347 |
+
ae(i, "class", "close-button svelte-1k19y3g"), ae(a, "class", "popup-title svelte-1k19y3g"), ae(t, "class", "popup-content svelte-1k19y3g"), ae(e, "class", "metadata-popup svelte-1k19y3g"), ae(e, "role", "presentation"), gt(e, "width", typeof /*popup_metadata_width*/
|
| 32348 |
r[15] == "number" ? `${/*popup_metadata_width*/
|
| 32349 |
r[15]}px` : (
|
| 32350 |
/*popup_metadata_width*/
|
|
|
|
| 32389 |
e = he(i, "P", { class: !0, "data-svelte-h": !0 }), $r(e) !== "svelte-1qb2m81" && (e.textContent = t), this.h();
|
| 32390 |
},
|
| 32391 |
h() {
|
| 32392 |
+
ae(e, "class", "no-metadata-message svelte-1k19y3g");
|
| 32393 |
},
|
| 32394 |
m(i, n) {
|
| 32395 |
ye(i, e, n);
|
|
|
|
| 32426 |
g.forEach(X), f.forEach(X), h.forEach(X), n = ke(d), s = he(d, "BUTTON", { class: !0, "data-svelte-h": !0 }), $r(s) !== "svelte-o01tbk" && (s.textContent = a), this.h();
|
| 32427 |
},
|
| 32428 |
h() {
|
| 32429 |
+
ae(t, "class", "metadata-table svelte-1k19y3g"), ae(e, "class", "metadata-table-container svelte-1k19y3g"), ae(s, "class", "load-metadata-button svelte-1k19y3g");
|
| 32430 |
},
|
| 32431 |
m(d, h) {
|
| 32432 |
ye(d, e, h), ue(e, t), ue(t, i);
|
|
|
|
| 32483 |
l = nn(f, o), f.forEach(X), u = ke(d), d.forEach(X), this.h();
|
| 32484 |
},
|
| 32485 |
h() {
|
| 32486 |
+
ae(t, "class", "metadata-label svelte-1k19y3g"), ae(a, "class", "metadata-value svelte-1k19y3g");
|
| 32487 |
},
|
| 32488 |
m(c, d) {
|
| 32489 |
ye(c, e, d), ue(e, t), ue(t, n), ue(e, s), ue(e, a), ue(a, l), ue(e, u);
|
|
|
|
| 32555 |
a.l(b), o = ke(b), m && m.l(b), b.forEach(X), S.forEach(X), l = ke(y), p && p.l(y), y.forEach(X), _.forEach(X), this.h();
|
| 32556 |
},
|
| 32557 |
h() {
|
| 32558 |
+
ae(n, "class", "thumbnail-item thumbnail-lg svelte-1k19y3g"), ae(n, "aria-label", "View single item in preview mode"), ae(i, "class", "gallery-item svelte-1k19y3g"), ae(t, "class", "gallery-item-with-name svelte-1k19y3g"), ae(e, "class", "single-item-wrapper svelte-1k19y3g"), gt(
|
| 32559 |
e,
|
| 32560 |
"--object-fit",
|
| 32561 |
/*object_fit*/
|
|
|
|
| 32620 |
o.forEach(X), this.h();
|
| 32621 |
},
|
| 32622 |
h() {
|
| 32623 |
+
ae(e, "class", "grid-container svelte-1k19y3g"), mt(
|
| 32624 |
e,
|
| 32625 |
"pt-6",
|
| 32626 |
/*show_label*/
|
|
|
|
| 32812 |
i = nn(s, t), s.forEach(X), this.h();
|
| 32813 |
},
|
| 32814 |
h() {
|
| 32815 |
+
ae(e, "class", "caption-label svelte-1k19y3g");
|
| 32816 |
},
|
| 32817 |
m(n, s) {
|
| 32818 |
ye(n, e, s), ue(e, i);
|
|
|
|
| 32842 |
i = nn(a, t), a.forEach(X), this.h();
|
| 32843 |
},
|
| 32844 |
h() {
|
| 32845 |
+
ae(e, "class", "thumbnail-filename svelte-1k19y3g"), ae(e, "title", n = /*file_name*/
|
| 32846 |
r[73]);
|
| 32847 |
},
|
| 32848 |
m(s, a) {
|
|
|
|
| 32964 |
i = nn(s, t), s.forEach(X), this.h();
|
| 32965 |
},
|
| 32966 |
h() {
|
| 32967 |
+
ae(e, "class", "caption-label svelte-1k19y3g");
|
| 32968 |
},
|
| 32969 |
m(n, s) {
|
| 32970 |
ye(n, e, s), ue(e, i);
|
|
|
|
| 32994 |
i = nn(a, t), a.forEach(X), this.h();
|
| 32995 |
},
|
| 32996 |
h() {
|
| 32997 |
+
ae(e, "class", "thumbnail-filename svelte-1k19y3g"), ae(e, "title", n = /*file_name*/
|
| 32998 |
r[73]);
|
| 32999 |
},
|
| 33000 |
m(s, a) {
|
|
|
|
| 33051 |
s.l(A), a = ke(A), p && p.l(A), A.forEach(X), b.forEach(X), l = ke(S), _ && _.l(S), u = ke(S), S.forEach(X), this.h();
|
| 33052 |
},
|
| 33053 |
h() {
|
| 33054 |
+
ae(i, "class", "thumbnail-item thumbnail-lg svelte-1k19y3g"), ae(i, "aria-label", o = "Thumbnail " + /*i*/
|
| 33055 |
(r[75] + 1) + " of " + /*resolved_value*/
|
| 33056 |
r[16].length), mt(
|
| 33057 |
i,
|
|
|
|
| 33059 |
/*selected_index*/
|
| 33060 |
r[0] === /*i*/
|
| 33061 |
r[75]
|
| 33062 |
+
), ae(t, "class", "gallery-item svelte-1k19y3g"), ae(e, "class", "gallery-item-with-name svelte-1k19y3g");
|
| 33063 |
},
|
| 33064 |
m(y, S) {
|
| 33065 |
ye(y, e, S), ue(e, t), ue(t, i), g[n].m(i, null), ue(i, a), p && p.m(i, null), ue(e, l), _ && _.m(e, null), ue(e, u), c = !0, d || (h = Ni(i, "click", v), d = !0);
|
|
|
|
| 33211 |
if (!(P != null && P.url)) return null;
|
| 33212 |
if (P.url.toLowerCase().endsWith(".png") || P.url.toLowerCase().endsWith(".jpg") || P.url.toLowerCase().endsWith(".jpeg"))
|
| 33213 |
try {
|
| 33214 |
+
const st = yield Xb(P.url, !0);
|
| 33215 |
let rt = {};
|
| 33216 |
if (st)
|
| 33217 |
for (const [Ft, qt] of Object.entries(st))
|
src/backend/gradio_mediagallery/templates/component/style.css
CHANGED
|
@@ -1 +1 @@
|
|
| 1 |
-
.block.svelte-239wnu{position:relative;margin:0;box-shadow:var(--block-shadow);border-width:var(--block-border-width);border-color:var(--block-border-color);border-radius:var(--block-radius);background:var(--block-background-fill);width:100%;line-height:var(--line-sm)}.block.fullscreen.svelte-239wnu{border-radius:0}.auto-margin.svelte-239wnu{margin-left:auto;margin-right:auto}.block.border_focus.svelte-239wnu{border-color:var(--color-accent)}.block.border_contrast.svelte-239wnu{border-color:var(--body-text-color)}.padded.svelte-239wnu{padding:var(--block-padding)}.hidden.svelte-239wnu{display:none}.flex.svelte-239wnu{display:flex;flex-direction:column}.hide-container.svelte-239wnu:not(.fullscreen){margin:0;box-shadow:none;--block-border-width:0;background:transparent;padding:0;overflow:visible}.resize-handle.svelte-239wnu{position:absolute;bottom:0;right:0;width:10px;height:10px;fill:var(--block-border-color);cursor:nwse-resize}.fullscreen.svelte-239wnu{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:1000;overflow:auto}.animating.svelte-239wnu{animation:svelte-239wnu-pop-out .1s ease-out forwards}@keyframes svelte-239wnu-pop-out{0%{position:fixed;top:var(--start-top);left:var(--start-left);width:var(--start-width);height:var(--start-height);z-index:100}to{position:fixed;top:0vh;left:0vw;width:100vw;height:100vh;z-index:1000}}.placeholder.svelte-239wnu{border-radius:var(--block-radius);border-width:var(--block-border-width);border-color:var(--block-border-color);border-style:dashed}Tables */ table,tr,td,th{margin-top:var(--spacing-sm);margin-bottom:var(--spacing-sm);padding:var(--spacing-xl)}.md code,.md pre{background:none;font-family:var(--font-mono);font-size:var(--text-sm);text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:2;tab-size:2;-webkit-hyphens:none;hyphens:none}.md pre[class*=language-]::selection,.md pre[class*=language-] ::selection,.md code[class*=language-]::selection,.md code[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}.md pre{padding:1em;margin:.5em 0;overflow:auto;position:relative;margin-top:var(--spacing-sm);margin-bottom:var(--spacing-sm);box-shadow:none;border:none;border-radius:var(--radius-md);background:var(--code-background-fill);padding:var(--spacing-xxl);font-family:var(--font-mono);text-shadow:none;border-radius:var(--radius-sm);white-space:nowrap;display:block;white-space:pre}.md :not(pre)>code{padding:.1em;border-radius:var(--radius-xs);white-space:normal;background:var(--code-background-fill);border:1px solid var(--panel-border-color);padding:var(--spacing-xxs) var(--spacing-xs)}.md .token.comment,.md .token.prolog,.md .token.doctype,.md .token.cdata{color:#708090}.md .token.punctuation{color:#999}.md .token.namespace{opacity:.7}.md .token.property,.md .token.tag,.md .token.boolean,.md .token.number,.md .token.constant,.md .token.symbol,.md .token.deleted{color:#905}.md .token.selector,.md .token.attr-name,.md .token.string,.md .token.char,.md .token.builtin,.md .token.inserted{color:#690}.md .token.atrule,.md .token.attr-value,.md .token.keyword{color:#07a}.md .token.function,.md .token.class-name{color:#dd4a68}.md .token.regex,.md .token.important,.md .token.variable{color:#e90}.md .token.important,.md .token.bold{font-weight:700}.md .token.italic{font-style:italic}.md .token.entity{cursor:help}.dark .md .token.comment,.dark .md .token.prolog,.dark .md .token.cdata{color:#5c6370}.dark .md .token.doctype,.dark .md .token.punctuation,.dark .md .token.entity{color:#abb2bf}.dark .md .token.attr-name,.dark .md .token.class-name,.dark .md .token.boolean,.dark .md .token.constant,.dark .md .token.number,.dark .md .token.atrule{color:#d19a66}.dark .md .token.keyword{color:#c678dd}.dark .md .token.property,.dark .md .token.tag,.dark .md .token.symbol,.dark .md .token.deleted,.dark .md .token.important{color:#e06c75}.dark .md .token.selector,.dark .md .token.string,.dark .md .token.char,.dark .md .token.builtin,.dark .md .token.inserted,.dark .md .token.regex,.dark .md .token.attr-value,.dark .md .token.attr-value>.token.punctuation{color:#98c379}.dark .md .token.variable,.dark .md .token.operator,.dark .md .token.function{color:#61afef}.dark .md .token.url{color:#56b6c2}span.svelte-1m32c2s div[class*=code_wrap]{position:relative}span.svelte-1m32c2s span.katex{font-size:var(--text-lg);direction:ltr}span.svelte-1m32c2s div[class*=code_wrap]>button{z-index:1;cursor:pointer;border-bottom-left-radius:var(--radius-sm);padding:var(--spacing-md);width:25px;height:25px;position:absolute;right:0}span.svelte-1m32c2s .check{opacity:0;z-index:var(--layer-top);transition:opacity .2s;background:var(--code-background-fill);color:var(--body-text-color);position:absolute;top:var(--size-1-5);left:var(--size-1-5)}span.svelte-1m32c2s p:not(:first-child){margin-top:var(--spacing-xxl)}span.svelte-1m32c2s .md-header-anchor{margin-left:-25px;padding-right:8px;line-height:1;color:var(--body-text-color-subdued);opacity:0}span.svelte-1m32c2s h1:hover .md-header-anchor,span.svelte-1m32c2s h2:hover .md-header-anchor,span.svelte-1m32c2s h3:hover .md-header-anchor,span.svelte-1m32c2s h4:hover .md-header-anchor,span.svelte-1m32c2s h5:hover .md-header-anchor,span.svelte-1m32c2s h6:hover .md-header-anchor{opacity:1}span.md.svelte-1m32c2s .md-header-anchor>svg{color:var(--body-text-color-subdued)}span.svelte-1m32c2s table{word-break:break-word}div.svelte-17qq50w>.md.prose{font-weight:var(--block-info-text-weight);font-size:var(--block-info-text-size);line-height:var(--line-sm)}div.svelte-17qq50w>.md.prose *{color:var(--block-info-text-color)}div.svelte-17qq50w{margin-bottom:var(--spacing-md)}span.has-info.svelte-zgrq3{margin-bottom:var(--spacing-xs)}span.svelte-zgrq3:not(.has-info){margin-bottom:var(--spacing-lg)}span.svelte-zgrq3{display:inline-block;position:relative;z-index:var(--layer-4);border:solid var(--block-title-border-width) var(--block-title-border-color);border-radius:var(--block-title-radius);background:var(--block-title-background-fill);padding:var(--block-title-padding);color:var(--block-title-text-color);font-weight:var(--block-title-text-weight);font-size:var(--block-title-text-size);line-height:var(--line-sm)}span[dir=rtl].svelte-zgrq3{display:block}.hide.svelte-zgrq3{margin:0;height:0}label.svelte-igqdol.svelte-igqdol{display:inline-flex;align-items:center;z-index:var(--layer-2);box-shadow:var(--block-label-shadow);border:var(--block-label-border-width) solid var(--block-label-border-color);border-top:none;border-left:none;border-radius:var(--block-label-radius);background:var(--block-label-background-fill);padding:var(--block-label-padding);pointer-events:none;color:var(--block-label-text-color);font-weight:var(--block-label-text-weight);font-size:var(--block-label-text-size);line-height:var(--line-sm)}.gr-group label.svelte-igqdol.svelte-igqdol{border-top-left-radius:0}label.float.svelte-igqdol.svelte-igqdol{position:absolute;top:var(--block-label-margin);left:var(--block-label-margin)}label.svelte-igqdol.svelte-igqdol:not(.float){position:static;margin-top:var(--block-label-margin);margin-left:var(--block-label-margin)}.hide.svelte-igqdol.svelte-igqdol{display:none}span.svelte-igqdol.svelte-igqdol{opacity:.8;margin-right:var(--size-2);width:calc(var(--block-label-text-size) - 1px);height:calc(var(--block-label-text-size) - 1px)}.hide-label.svelte-igqdol.svelte-igqdol{box-shadow:none;border-width:0;background:transparent;overflow:visible}label[dir=rtl].svelte-igqdol.svelte-igqdol{border:var(--block-label-border-width) solid var(--block-label-border-color);border-top:none;border-right:none;border-bottom-left-radius:var(--block-radius);border-bottom-right-radius:var(--block-label-radius);border-top-left-radius:var(--block-label-radius)}label[dir=rtl].svelte-igqdol span.svelte-igqdol{margin-left:var(--size-2);margin-right:0}.unstyled-link.svelte-151nsdd{all:unset;cursor:pointer}button.svelte-y0enk4{display:flex;justify-content:center;align-items:center;gap:1px;z-index:var(--layer-2);border-radius:var(--radius-xs);color:var(--block-label-text-color);border:1px solid var(--border-color);padding:var(--spacing-xxs)}button.svelte-y0enk4:hover{background-color:var(--background-fill-secondary)}button[disabled].svelte-y0enk4{opacity:.5;box-shadow:none}button[disabled].svelte-y0enk4:hover{cursor:not-allowed}.padded.svelte-y0enk4{background:var(--bg-color)}button.svelte-y0enk4:hover,button.highlight.svelte-y0enk4{cursor:pointer;color:var(--color-accent)}.padded.svelte-y0enk4:hover{color:var(--block-label-text-color)}span.svelte-y0enk4{padding:0 1px;font-size:10px}div.svelte-y0enk4{display:flex;align-items:center;justify-content:center;transition:filter .2s ease-in-out}.x-small.svelte-y0enk4{width:10px;height:10px}.small.svelte-y0enk4{width:14px;height:14px}.medium.svelte-y0enk4{width:20px;height:20px}.large.svelte-y0enk4{width:22px;height:22px}.pending.svelte-y0enk4{animation:svelte-y0enk4-flash .5s infinite}@keyframes svelte-y0enk4-flash{0%{opacity:.5}50%{opacity:1}to{opacity:.5}}.transparent.svelte-y0enk4{background:transparent;border:none;box-shadow:none}.empty.svelte-3w3rth{display:flex;justify-content:center;align-items:center;margin-top:calc(0px - var(--size-6));height:var(--size-full)}.icon.svelte-3w3rth{opacity:.5;height:var(--size-5);color:var(--body-text-color)}.small.svelte-3w3rth{min-height:calc(var(--size-32) - 20px)}.large.svelte-3w3rth{min-height:calc(var(--size-64) - 20px)}.unpadded_box.svelte-3w3rth{margin-top:0}.small_parent.svelte-3w3rth{min-height:100%!important}.dropdown-arrow.svelte-145leq6,.dropdown-arrow.svelte-ihhdbf{fill:currentColor}.circle.svelte-ihhdbf{fill:currentColor;opacity:.1}svg.svelte-pb9pol{animation:svelte-pb9pol-spin 1.5s linear infinite}@keyframes svelte-pb9pol-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}h2.svelte-1xg7h5n{font-size:var(--text-xl)!important}p.svelte-1xg7h5n,h2.svelte-1xg7h5n{white-space:pre-line}.wrap.svelte-1xg7h5n{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:var(--size-60);color:var(--block-label-text-color);line-height:var(--line-md);height:100%;padding-top:var(--size-3);text-align:center;margin:auto var(--spacing-lg)}.or.svelte-1xg7h5n{color:var(--body-text-color-subdued);display:flex}.icon-wrap.svelte-1xg7h5n{width:30px;margin-bottom:var(--spacing-lg)}@media (--screen-md){.wrap.svelte-1xg7h5n{font-size:var(--text-lg)}}.hovered.svelte-1xg7h5n{color:var(--color-accent)}div.svelte-q32hvf{border-top:1px solid transparent;display:flex;max-height:100%;justify-content:center;align-items:center;gap:var(--spacing-sm);height:auto;align-items:flex-end;color:var(--block-label-text-color);flex-shrink:0}.show_border.svelte-q32hvf{border-top:1px solid var(--block-border-color);margin-top:var(--spacing-xxl);box-shadow:var(--shadow-drop)}.source-selection.svelte-15ls1gu{display:flex;align-items:center;justify-content:center;border-top:1px solid var(--border-color-primary);width:100%;margin-left:auto;margin-right:auto;height:var(--size-10)}.icon.svelte-15ls1gu{width:22px;height:22px;margin:var(--spacing-lg) var(--spacing-xs);padding:var(--spacing-xs);color:var(--neutral-400);border-radius:var(--radius-md)}.selected.svelte-15ls1gu{color:var(--color-accent)}.icon.svelte-15ls1gu:hover,.icon.svelte-15ls1gu:focus{color:var(--color-accent)}.icon-button-wrapper.svelte-1h0hs6p{display:flex;flex-direction:row;align-items:center;justify-content:center;z-index:var(--layer-2);gap:var(--spacing-sm);box-shadow:var(--shadow-drop);border:1px solid var(--border-color-primary);background:var(--block-background-fill);padding:var(--spacing-xxs)}.icon-button-wrapper.hide-top-corner.svelte-1h0hs6p{border-top:none;border-right:none;border-radius:var(--block-label-right-radius)}.icon-button-wrapper.display-top-corner.svelte-1h0hs6p{border-radius:var(--radius-sm) 0 0 var(--radius-sm);top:var(--spacing-sm);right:-1px}.icon-button-wrapper.svelte-1h0hs6p:not(.top-panel){border:1px solid var(--border-color-primary);border-radius:var(--radius-sm)}.top-panel.svelte-1h0hs6p{position:absolute;top:var(--block-label-margin);right:var(--block-label-margin);margin:0}.icon-button-wrapper.svelte-1h0hs6p button{margin:var(--spacing-xxs);border-radius:var(--radius-xs);position:relative}.icon-button-wrapper.svelte-1h0hs6p a.download-link:not(:last-child),.icon-button-wrapper.svelte-1h0hs6p button:not(:last-child){margin-right:var(--spacing-xxs)}.icon-button-wrapper.svelte-1h0hs6p a.download-link:not(:last-child):not(.no-border *):after,.icon-button-wrapper.svelte-1h0hs6p button:not(:last-child):not(.no-border *):after{content:"";position:absolute;right:-4.5px;top:15%;height:70%;width:1px;background-color:var(--border-color-primary)}.icon-button-wrapper.svelte-1h0hs6p>*{height:100%}img.svelte-kxeri3{object-fit:cover}.image-container.svelte-x2tujq.svelte-x2tujq{height:100%;position:relative;min-width:var(--size-20)}.image-container.svelte-x2tujq button.svelte-x2tujq{width:var(--size-full);height:var(--size-full);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center}.image-frame.svelte-x2tujq img{width:var(--size-full);height:var(--size-full);object-fit:scale-down}.selectable.svelte-x2tujq.svelte-x2tujq{cursor:crosshair}.fullscreen-controls svg{position:relative;top:0}.image-container:fullscreen{background-color:#000;display:flex;justify-content:center;align-items:center}.image-container:fullscreen img{max-width:90vw;max-height:90vh;object-fit:scale-down}.image-frame.svelte-x2tujq.svelte-x2tujq{width:auto;height:100%;display:flex;align-items:center;justify-content:center}.overlay.svelte-1pwzuub{position:absolute;background-color:#0006;width:100%;height:100%}.hidden.svelte-1pwzuub{display:none}.load-wrap.svelte-1pwzuub{display:flex;justify-content:center;align-items:center;height:100%}.loader.svelte-1pwzuub{display:flex;position:relative;background-color:var(--border-color-accent-subdued);animation:svelte-1pwzuub-shadowPulse 2s linear infinite;box-shadow:-24px 0 var(--border-color-accent-subdued),24px 0 var(--border-color-accent-subdued);margin:var(--spacing-md);border-radius:50%;width:10px;height:10px;scale:.5}@keyframes svelte-1pwzuub-shadowPulse{33%{box-shadow:-24px 0 var(--border-color-accent-subdued),24px 0 #fff;background:#fff}66%{box-shadow:-24px 0 #fff,24px 0 #fff;background:var(--border-color-accent-subdued)}to{box-shadow:-24px 0 #fff,24px 0 var(--border-color-accent-subdued);background:#fff}}.gallery-container.svelte-1crbckc.svelte-1crbckc{position:relative;width:100%;height:100%}button.svelte-1crbckc.svelte-1crbckc{width:var(--size-full);height:var(--size-full);display:block;border-radius:var(--radius-lg)}.preview.svelte-1crbckc.svelte-1crbckc{display:flex;position:absolute;flex-direction:column;z-index:var(--layer-2);border-radius:calc(var(--block-radius) - var(--block-border-width));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:var(--size-full);height:var(--size-full)}.preview.svelte-1crbckc.svelte-1crbckc:focus-visible{outline:none}.preview.minimal.svelte-1crbckc.svelte-1crbckc{width:fit-content;height:fit-content}.preview.svelte-1crbckc.svelte-1crbckc:before{content:"";position:absolute;z-index:var(--layer-below);background:var(--background-fill-primary);opacity:.9;width:var(--size-full);height:var(--size-full)}.fixed-height.svelte-1crbckc.svelte-1crbckc{min-height:var(--size-80);max-height:65vh}@media (--screen-xl){.fixed-height.svelte-1crbckc.svelte-1crbckc{min-height:450px}}.media-container.svelte-1crbckc.svelte-1crbckc{height:calc(100% - var(--size-14));width:100%;display:flex;align-items:center;justify-content:center;cursor:pointer}.media-container.svelte-1crbckc img,.media-container.svelte-1crbckc video{max-width:100%;max-height:100%;object-fit:contain}.thumbnails.svelte-1crbckc img{object-fit:cover;width:var(--size-full);height:var(--size-full)}.thumbnails.svelte-1crbckc svg{position:absolute;top:var(--size-2);left:var(--size-2);width:50%;height:50%;opacity:50%}.caption.svelte-1crbckc.svelte-1crbckc{padding:var(--size-2) var(--size-3);overflow:hidden;color:var(--block-label-text-color);font-weight:var(--weight-semibold);text-align:center;text-overflow:ellipsis;white-space:nowrap;align-self:center}.thumbnails.svelte-1crbckc.svelte-1crbckc{display:flex;position:absolute;bottom:0;justify-content:flex-start;align-items:center;gap:var(--spacing-lg);width:var(--size-full);height:var(--size-14);overflow-x:scroll}.thumbnail-item.svelte-1crbckc.svelte-1crbckc{--ring-color:transparent;position:relative;box-shadow:inset 0 0 0 1px var(--ring-color),var(--shadow-drop);border:1px solid var(--border-color-primary);border-radius:var(--button-small-radius);background:var(--background-fill-secondary);aspect-ratio:var(--ratio-square);width:var(--size-full);height:var(--size-full);overflow:clip}.thumbnail-item.svelte-1crbckc.svelte-1crbckc:hover{--ring-color:var(--color-accent);border-color:var(--color-accent);filter:brightness(1.1)}.thumbnail-item.selected.svelte-1crbckc.svelte-1crbckc{--ring-color:var(--color-accent);border-color:var(--color-accent)}.thumbnail-item.svelte-1crbckc svg{position:absolute;top:50%;left:50%;width:50%;height:50%;opacity:50%;transform:translate(-50%,-50%)}.thumbnail-item.svelte-1crbckc video{width:var(--size-full);height:var(--size-full);overflow:hidden;object-fit:cover}.thumbnail-small.svelte-1crbckc.svelte-1crbckc{flex:none;transform:scale(.9);transition:75ms;width:var(--size-9);height:var(--size-9)}.thumbnail-small.selected.svelte-1crbckc.svelte-1crbckc{--ring-color:var(--color-accent);transform:scale(1);border-color:var(--color-accent)}.grid-wrap.svelte-1crbckc.svelte-1crbckc{position:relative;padding:var(--size-2);overflow-y:auto}.grid-wrap.fixed-height.svelte-1crbckc.svelte-1crbckc{min-height:var(--size-80);max-height:65vh}.grid-container.svelte-1crbckc.svelte-1crbckc{display:grid;position:relative;grid-template-rows:repeat(var(--grid-rows),minmax(100px,1fr));grid-template-columns:repeat(var(--grid-cols),minmax(100px,1fr));grid-auto-rows:minmax(100px,1fr);gap:var(--spacing-lg)}.single-item-wrapper.svelte-1crbckc.svelte-1crbckc{display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:var(--spacing-xxl);box-sizing:border-box}.single-item-wrapper.svelte-1crbckc .gallery-item-with-name.svelte-1crbckc{width:100%;height:100%;max-width:min(300px,80vw);max-height:min(320px,calc(80vh - var(--size-4)));display:flex;flex-direction:column;align-items:center}.single-item-wrapper.svelte-1crbckc .gallery-item.svelte-1crbckc{width:100%;height:100%;max-width:100%;max-height:100%}.single-item-wrapper.svelte-1crbckc .thumbnail-item.thumbnail-lg.svelte-1crbckc{display:flex!important;align-items:center!important;justify-content:center!important}.single-item-wrapper.svelte-1crbckc .thumbnail-filename.svelte-1crbckc{height:var(--size-4);line-height:var(--size-4)}.single-item-wrapper.svelte-1crbckc .thumbnail-lg.svelte-1crbckc>img,.single-item-wrapper.svelte-1crbckc .thumbnail-lg.svelte-1crbckc>video{object-fit:var(--object-fit)!important}.thumbnail-lg.svelte-1crbckc>img,.thumbnail-lg.svelte-1crbckc>video{width:var(--size-full);height:var(--size-full);overflow:hidden;object-fit:var(--object-fit)}.thumbnail-lg.svelte-1crbckc:hover .caption-label.svelte-1crbckc{opacity:.5}.caption-label.svelte-1crbckc.svelte-1crbckc{position:absolute;right:var(--block-label-margin);bottom:var(--block-label-margin);z-index:var(--layer-1);border-top:1px solid var(--border-color-primary);border-left:1px solid var(--border-color-primary);border-radius:var(--block-label-radius);background:var(--background-fill-secondary);padding:var(--block-label-padding);max-width:80%;overflow:hidden;font-size:var(--block-label-text-size);text-align:left;text-overflow:ellipsis;white-space:nowrap}.grid-wrap.minimal.svelte-1crbckc.svelte-1crbckc{padding:0}.gallery-item-with-name.svelte-1crbckc.svelte-1crbckc{display:flex;flex-direction:column;gap:var(--size-1);width:100%;height:100%}.thumbnail-filename.svelte-1crbckc.svelte-1crbckc{font-size:var(--text-xs);color:var(--body-text-color);text-align:center;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 var(--size-1)}.gallery-item.svelte-1crbckc.svelte-1crbckc{position:relative;width:100%;height:100%}.metadata-popup.svelte-1crbckc.svelte-1crbckc{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--background-fill-primary, white);border:1px solid var(--border-color-primary);box-shadow:0 4px 8px #0003;z-index:1000;border-radius:8px;max-width:min(90%,600px);max-height:min(50vh,calc(100% - 2rem));min-height:200px;display:flex;flex-direction:column;pointer-events:auto}.popup-content.svelte-1crbckc.svelte-1crbckc{padding:1rem;display:flex;flex-direction:column;width:100%;box-sizing:border-box;overflow-y:auto;position:relative}.close-button.svelte-1crbckc.svelte-1crbckc{position:absolute;top:.5rem;right:.5rem;background:none;border:none;font-size:1.25rem;cursor:pointer;z-index:20;color:var(--body-text-color);padding:.25rem;line-height:1;width:24px;height:24px;text-align:center}.popup-title.svelte-1crbckc.svelte-1crbckc{font-weight:700;margin:0 0 1rem;flex-shrink:0;padding-right:2.5rem}.metadata-table-container.svelte-1crbckc.svelte-1crbckc{flex-grow:1;overflow-y:auto;max-height:calc(100% - 5rem);min-height:0;margin-bottom:1rem}.metadata-table.svelte-1crbckc.svelte-1crbckc{width:100%;border-collapse:collapse;table-layout:auto}.metadata-label.svelte-1crbckc.svelte-1crbckc{background:var(--background-fill-secondary, #f5f5f5);padding:.5rem;font-weight:700;text-align:left;vertical-align:top;width:35%}.metadata-value.svelte-1crbckc.svelte-1crbckc{text-align:left;padding:.5rem;white-space:pre-wrap;word-break:break-all;vertical-align:top}.load-metadata-button.svelte-1crbckc.svelte-1crbckc{margin-top:1rem;padding:.5rem 1rem;background-color:var(--button-primary-background-fill);color:var(--button-primary-text-color);border:none;border-radius:4px;cursor:pointer;align-self:center;flex-shrink:0}.load-metadata-button.svelte-1crbckc.svelte-1crbckc:hover{background-color:var(--button-primary-background-fill-hover)}.no-metadata-message.svelte-1crbckc.svelte-1crbckc{flex-grow:1;display:flex;align-items:center;justify-content:center;color:var(--body-text-color-subdued)}svg.svelte-43sxxs.svelte-43sxxs{width:var(--size-20);height:var(--size-20)}svg.svelte-43sxxs path.svelte-43sxxs{fill:var(--loader-color)}div.svelte-43sxxs.svelte-43sxxs{z-index:var(--layer-2)}.margin.svelte-43sxxs.svelte-43sxxs{margin:var(--size-4)}.wrap.svelte-vusapu.svelte-vusapu{display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:var(--layer-3);transition:opacity .1s ease-in-out;border-radius:var(--block-radius);background:var(--block-background-fill);padding:0 var(--size-6);overflow:hidden;pointer-events:none}.wrap.center.svelte-vusapu.svelte-vusapu{top:0;right:0;left:0}.wrap.default.svelte-vusapu.svelte-vusapu{top:0;right:0;bottom:0;left:0}.hide.svelte-vusapu.svelte-vusapu{opacity:0;pointer-events:none}.generating.svelte-vusapu.svelte-vusapu{animation:svelte-vusapu-pulseStart 1s cubic-bezier(.4,0,.6,1),svelte-vusapu-pulse 2s cubic-bezier(.4,0,.6,1) 1s infinite;border:2px solid var(--color-accent);background:transparent;z-index:var(--layer-1);pointer-events:none}.translucent.svelte-vusapu.svelte-vusapu{background:none}@keyframes svelte-vusapu-pulseStart{0%{opacity:0}to{opacity:1}}@keyframes svelte-vusapu-pulse{0%,to{opacity:1}50%{opacity:.5}}.loading.svelte-vusapu.svelte-vusapu{z-index:var(--layer-2);color:var(--body-text-color)}.eta-bar.svelte-vusapu.svelte-vusapu{position:absolute;top:0;right:0;bottom:0;left:0;transform-origin:left;opacity:.8;z-index:var(--layer-1);transition:10ms;background:var(--background-fill-secondary)}.progress-bar-wrap.svelte-vusapu.svelte-vusapu{border:1px solid var(--border-color-primary);background:var(--background-fill-primary);width:55.5%;height:var(--size-4)}.progress-bar.svelte-vusapu.svelte-vusapu{transform-origin:left;background-color:var(--loader-color);width:var(--size-full);height:var(--size-full)}.progress-level.svelte-vusapu.svelte-vusapu{display:flex;flex-direction:column;align-items:center;gap:1;z-index:var(--layer-2);width:var(--size-full)}.progress-level-inner.svelte-vusapu.svelte-vusapu{margin:var(--size-2) auto;color:var(--body-text-color);font-size:var(--text-sm);font-family:var(--font-mono)}.meta-text.svelte-vusapu.svelte-vusapu{position:absolute;bottom:0;right:0;z-index:var(--layer-2);padding:var(--size-1) var(--size-2);font-size:var(--text-sm);font-family:var(--font-mono)}.meta-text-center.svelte-vusapu.svelte-vusapu{display:flex;position:absolute;top:0;right:0;justify-content:center;align-items:center;transform:translateY(var(--size-6));z-index:var(--layer-2);padding:var(--size-1) var(--size-2);font-size:var(--text-sm);font-family:var(--font-mono);text-align:center}.error.svelte-vusapu.svelte-vusapu{box-shadow:var(--shadow-drop);border:solid 1px var(--error-border-color);border-radius:var(--radius-full);background:var(--error-background-fill);padding-right:var(--size-4);padding-left:var(--size-4);color:var(--error-text-color);font-weight:var(--weight-semibold);font-size:var(--text-lg);line-height:var(--line-lg);font-family:var(--font)}.validation-error.svelte-vusapu.svelte-vusapu{pointer-events:auto;color:var(--error-text-color);font-weight:var(--weight-semibold);font-size:var(--text-lg);line-height:var(--line-lg);font-family:var(--font);position:absolute;background:var(--error-background-fill);top:0;right:0;z-index:var(--layer-3);padding:var(--size-1) var(--size-2);font-size:var(--text-md);text-align:center;border-bottom-left-radius:var(--radius-sm);border-bottom:1px solid var(--error-border-color);border-left:1px solid var(--error-border-color);display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-xl)}.minimal.svelte-vusapu.svelte-vusapu{pointer-events:none}.minimal.svelte-vusapu .progress-text.svelte-vusapu{background:var(--block-background-fill)}.border.svelte-vusapu.svelte-vusapu{border:1px solid var(--border-color-primary)}.clear-status.svelte-vusapu.svelte-vusapu{position:absolute;display:flex;top:var(--size-2);right:var(--size-2);justify-content:flex-end;gap:var(--spacing-sm);z-index:var(--layer-1)}.toast-body.svelte-syezpc{display:flex;position:relative;right:0;left:0;align-items:center;margin:var(--size-6) var(--size-4);margin:auto;border-radius:var(--container-radius);overflow:hidden;pointer-events:auto}.toast-body.error.svelte-syezpc{border:1px solid var(--color-red-700);background:var(--color-red-50)}.dark .toast-body.error.svelte-syezpc{border:1px solid var(--color-red-500);background-color:var(--color-grey-950)}.toast-body.warning.svelte-syezpc{border:1px solid var(--color-yellow-700);background:var(--color-yellow-50)}.dark .toast-body.warning.svelte-syezpc{border:1px solid var(--color-yellow-500);background-color:var(--color-grey-950)}.toast-body.info.svelte-syezpc{border:1px solid var(--color-grey-700);background:var(--color-grey-50)}.dark .toast-body.info.svelte-syezpc{border:1px solid var(--color-grey-500);background-color:var(--color-grey-950)}.toast-body.success.svelte-syezpc{border:1px solid var(--color-green-700);background:var(--color-green-50)}.dark .toast-body.success.svelte-syezpc{border:1px solid var(--color-green-500);background-color:var(--color-grey-950)}.toast-title.svelte-syezpc{display:flex;align-items:center;font-weight:var(--weight-bold);font-size:var(--text-lg);line-height:var(--line-sm)}.toast-title.error.svelte-syezpc{color:var(--color-red-700)}.dark .toast-title.error.svelte-syezpc{color:var(--color-red-50)}.toast-title.warning.svelte-syezpc{color:var(--color-yellow-700)}.dark .toast-title.warning.svelte-syezpc{color:var(--color-yellow-50)}.toast-title.info.svelte-syezpc{color:var(--color-grey-700)}.dark .toast-title.info.svelte-syezpc{color:var(--color-grey-50)}.toast-title.success.svelte-syezpc{color:var(--color-green-700)}.dark .toast-title.success.svelte-syezpc{color:var(--color-green-50)}.toast-close.svelte-syezpc{margin:0 var(--size-3);border-radius:var(--size-3);padding:0px var(--size-1-5);font-size:var(--size-5);line-height:var(--size-5)}.toast-close.error.svelte-syezpc{color:var(--color-red-700)}.dark .toast-close.error.svelte-syezpc{color:var(--color-red-500)}.toast-close.warning.svelte-syezpc{color:var(--color-yellow-700)}.dark .toast-close.warning.svelte-syezpc{color:var(--color-yellow-500)}.toast-close.info.svelte-syezpc{color:var(--color-grey-700)}.dark .toast-close.info.svelte-syezpc{color:var(--color-grey-500)}.toast-close.success.svelte-syezpc{color:var(--color-green-700)}.dark .toast-close.success.svelte-syezpc{color:var(--color-green-500)}.toast-text.svelte-syezpc{font-size:var(--text-lg);word-wrap:break-word;overflow-wrap:break-word;word-break:break-word}.toast-text.error.svelte-syezpc{color:var(--color-red-700)}.dark .toast-text.error.svelte-syezpc{color:var(--color-red-50)}.toast-text.warning.svelte-syezpc{color:var(--color-yellow-700)}.dark .toast-text.warning.svelte-syezpc{color:var(--color-yellow-50)}.toast-text.info.svelte-syezpc{color:var(--color-grey-700)}.dark .toast-text.info.svelte-syezpc{color:var(--color-grey-50)}.toast-text.success.svelte-syezpc{color:var(--color-green-700)}.dark .toast-text.success.svelte-syezpc{color:var(--color-green-50)}.toast-details.svelte-syezpc{margin:var(--size-3) var(--size-3) var(--size-3) 0;width:100%}.toast-icon.svelte-syezpc{display:flex;position:absolute;position:relative;flex-shrink:0;justify-content:center;align-items:center;margin:var(--size-2);border-radius:var(--radius-full);padding:var(--size-1);padding-left:calc(var(--size-1) - 1px);width:35px;height:35px}.toast-icon.error.svelte-syezpc{color:var(--color-red-700)}.dark .toast-icon.error.svelte-syezpc{color:var(--color-red-500)}.toast-icon.warning.svelte-syezpc{color:var(--color-yellow-700)}.dark .toast-icon.warning.svelte-syezpc{color:var(--color-yellow-500)}.toast-icon.info.svelte-syezpc{color:var(--color-grey-700)}.dark .toast-icon.info.svelte-syezpc{color:var(--color-grey-500)}.toast-icon.success.svelte-syezpc{color:var(--color-green-700)}.dark .toast-icon.success.svelte-syezpc{color:var(--color-green-500)}@keyframes svelte-syezpc-countdown{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.timer.svelte-syezpc{position:absolute;bottom:0;left:0;transform-origin:0 0;animation:svelte-syezpc-countdown 10s linear forwards;width:100%;height:var(--size-1)}.timer.error.svelte-syezpc{background:var(--color-red-700)}.dark .timer.error.svelte-syezpc{background:var(--color-red-500)}.timer.warning.svelte-syezpc{background:var(--color-yellow-700)}.dark .timer.warning.svelte-syezpc{background:var(--color-yellow-500)}.timer.info.svelte-syezpc{background:var(--color-grey-700)}.dark .timer.info.svelte-syezpc{background:var(--color-grey-500)}.timer.success.svelte-syezpc{background:var(--color-green-700)}.dark .timer.success.svelte-syezpc{background:var(--color-green-500)}.hidden.svelte-syezpc{display:none}.toast-text.svelte-syezpc a{text-decoration:underline}.toast-wrap.svelte-je2isz{--toast-top:var(--size-4);display:flex;position:fixed;top:calc(var(--toast-top) + var(--size-4));right:var(--size-4);flex-direction:column;align-items:end;gap:var(--size-2);z-index:var(--layer-top);width:calc(100% - var(--size-8))}@media (--screen-sm){.toast-wrap.svelte-je2isz{width:calc(var(--size-96) + var(--size-10))}}.streaming-bar.svelte-ga0jj6{position:absolute;bottom:0;left:0;right:0;height:4px;background-color:var(--primary-600);animation:svelte-ga0jj6-countdown linear forwards;z-index:1}@keyframes svelte-ga0jj6-countdown{0%{transform:translate(0)}to{transform:translate(-100%)}}:global(*::-webkit-scrollbar){width:8px;height:8px;background-color:transparent}:global(*::-webkit-scrollbar-track){background:transparent;border-radius:10px}:global(*::-webkit-scrollbar-thumb){background-color:#8886;border-radius:10px;border:2px solid transparent;background-clip:content-box}:global(*::-webkit-scrollbar-thumb:hover){background-color:#888888b3}:global(html){scrollbar-width:thin;scrollbar-color:rgba(136,136,136,.7) transparent}.gallery-container{position:relative;width:100%;height:100%}button{width:var(--size-full);height:var(--size-full);display:block;border-radius:var(--radius-lg)}.preview{display:flex;position:absolute;flex-direction:column;z-index:var(--layer-2);border-radius:calc(var(--block-radius) - var(--block-border-width));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:var(--size-full);height:var(--size-full)}.preview:focus-visible{outline:none}.preview.minimal{width:fit-content;height:fit-content}.preview:before{content:"";position:absolute;z-index:var(--layer-below);background:var(--background-fill-primary);opacity:.9;width:var(--size-full);height:var(--size-full)}.fixed-height{min-height:var(--size-80);max-height:65vh}@media (--screen-xl){.fixed-height{min-height:450px}}.media-container{height:calc(100% - var(--size-14));width:100%;display:flex;align-items:center;justify-content:center;cursor:pointer}.media-container :global(img),.media-container :global(video){max-width:100%;max-height:100%;object-fit:contain}.thumbnails :global(img){object-fit:cover;width:var(--size-full);height:var(--size-full)}.thumbnails :global(svg){position:absolute;top:var(--size-2);left:var(--size-2);width:50%;height:50%;opacity:50%}.caption{padding:var(--size-2) var(--size-3);overflow:hidden;color:var(--block-label-text-color);font-weight:var(--weight-semibold);text-align:center;text-overflow:ellipsis;white-space:nowrap;align-self:center}.thumbnails{display:flex;position:absolute;bottom:0;justify-content:flex-start;align-items:center;gap:var(--spacing-lg);width:var(--size-full);height:var(--size-14);overflow-x:scroll}.thumbnail-item{--ring-color: transparent;position:relative;box-shadow:inset 0 0 0 1px var(--ring-color),var(--shadow-drop);border:1px solid var(--border-color-primary);border-radius:var(--button-small-radius);background:var(--background-fill-secondary);aspect-ratio:var(--ratio-square);width:var(--size-full);height:var(--size-full);overflow:clip}.thumbnail-item:hover{--ring-color: var(--color-accent);border-color:var(--color-accent);filter:brightness(1.1)}.thumbnail-item.selected{--ring-color: var(--color-accent);border-color:var(--color-accent)}.thumbnail-item :global(svg){position:absolute;top:50%;left:50%;width:50%;height:50%;opacity:50%;transform:translate(-50%,-50%)}.thumbnail-item :global(video){width:var(--size-full);height:var(--size-full);overflow:hidden;object-fit:cover}.thumbnail-small{flex:none;transform:scale(.9);transition:75ms;width:var(--size-9);height:var(--size-9)}.thumbnail-small.selected{--ring-color: var(--color-accent);transform:scale(1);border-color:var(--color-accent)}.grid-wrap{position:relative;padding:var(--size-2);overflow-y:auto}.grid-wrap.fixed-height{min-height:var(--size-80);max-height:65vh}.grid-container{display:grid;position:relative;grid-template-rows:repeat(var(--grid-rows),minmax(100px,1fr));grid-template-columns:repeat(var(--grid-cols),minmax(100px,1fr));grid-auto-rows:minmax(100px,1fr);gap:var(--spacing-lg)}.single-item-wrapper{display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:var(--spacing-xxl);box-sizing:border-box}.single-item-wrapper .gallery-item-with-name{width:100%;height:100%;max-width:min(300px,80vw);max-height:min(320px,calc(80vh - var(--size-4)));display:flex;flex-direction:column;align-items:center}.single-item-wrapper .gallery-item{width:100%;height:100%;max-width:100%;max-height:100%}.single-item-wrapper .thumbnail-item.thumbnail-lg{display:flex!important;align-items:center!important;justify-content:center!important}.single-item-wrapper .thumbnail-filename{height:var(--size-4);line-height:var(--size-4)}.single-item-wrapper .thumbnail-lg>:global(img),.single-item-wrapper .thumbnail-lg>:global(video){object-fit:var(--object-fit)!important}.thumbnail-lg>:global(img),.thumbnail-lg>:global(video){width:var(--size-full);height:var(--size-full);overflow:hidden;object-fit:var(--object-fit)}.thumbnail-lg:hover .caption-label{opacity:.5}.caption-label{position:absolute;right:var(--block-label-margin);bottom:var(--block-label-margin);z-index:var(--layer-1);border-top:1px solid var(--border-color-primary);border-left:1px solid var(--border-color-primary);border-radius:var(--block-label-radius);background:var(--background-fill-secondary);padding:var(--block-label-padding);max-width:80%;overflow:hidden;font-size:var(--block-label-text-size);text-align:left;text-overflow:ellipsis;white-space:nowrap}.grid-wrap.minimal{padding:0}.gallery-item-with-name{display:flex;flex-direction:column;gap:var(--size-1);width:100%;height:100%}.thumbnail-filename{font-size:var(--text-xs);color:var(--body-text-color);text-align:center;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 var(--size-1)}.gallery-item{position:relative;width:100%;height:100%}.metadata-popup{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--background-fill-primary, white);border:1px solid var(--border-color-primary);box-shadow:0 4px 8px #0003;z-index:1000;border-radius:8px;max-width:min(90%,600px);max-height:min(50vh,calc(100% - 2rem));min-height:200px;display:flex;flex-direction:column;pointer-events:auto}.popup-content{padding:1rem;display:flex;flex-direction:column;width:100%;box-sizing:border-box;overflow-y:auto;position:relative}.close-button{position:absolute;top:.5rem;right:.5rem;background:none;border:none;font-size:1.25rem;cursor:pointer;z-index:20;color:var(--body-text-color);padding:.25rem;line-height:1;width:24px;height:24px;text-align:center}.popup-title{font-weight:700;margin:0 0 1rem;flex-shrink:0;padding-right:2.5rem}.metadata-table-container{flex-grow:1;overflow-y:auto;max-height:calc(100% - 5rem);min-height:0;margin-bottom:1rem}.metadata-table{width:100%;border-collapse:collapse;table-layout:auto}.metadata-label{background:var(--background-fill-secondary, #f5f5f5);padding:.5rem;font-weight:700;text-align:left;vertical-align:top;width:35%}.metadata-value{text-align:left;padding:.5rem;white-space:pre-wrap;word-break:break-all;vertical-align:top}.load-metadata-button{margin-top:1rem;padding:.5rem 1rem;background-color:var(--button-primary-background-fill);color:var(--button-primary-text-color);border:none;border-radius:4px;cursor:pointer;align-self:center;flex-shrink:0}.load-metadata-button:hover{background-color:var(--button-primary-background-fill-hover)}.no-metadata-message{flex-grow:1;display:flex;align-items:center;justify-content:center;color:var(--body-text-color-subdued)}.container.svelte-1onbytl.svelte-1onbytl{border-radius:var(--radius-lg);overflow:hidden}.container.selected.svelte-1onbytl.svelte-1onbytl{border:2px solid var(--border-color-accent)}.images-wrapper.svelte-1onbytl.svelte-1onbytl{display:flex;gap:var(--spacing-sm)}.container.table.svelte-1onbytl .images-wrapper.svelte-1onbytl{flex-direction:row;align-items:center;padding:var(--spacing-sm);border:1px solid var(--border-color-primary);border-radius:var(--radius-lg);background:var(--background-fill-secondary)}.container.gallery.svelte-1onbytl .images-wrapper.svelte-1onbytl{flex-direction:row;gap:0}.image-container.svelte-1onbytl.svelte-1onbytl{position:relative;flex-shrink:0}.container.table.svelte-1onbytl .image-container.svelte-1onbytl{width:var(--size-12);height:var(--size-12)}.container.gallery.svelte-1onbytl .image-container.svelte-1onbytl{width:var(--size-20);height:var(--size-20);margin-left:calc(-1 * var(--size-8))}.container.gallery.svelte-1onbytl .image-container.svelte-1onbytl:first-child{margin-left:0}.more-indicator.svelte-1onbytl.svelte-1onbytl{display:flex;align-items:center;justify-content:center;font-size:var(--text-lg);font-weight:700;color:var(--border-color-primary)}.container.table.svelte-1onbytl .more-indicator.svelte-1onbytl{width:var(--size-12);height:var(--size-12)}.container.gallery.svelte-1onbytl .more-indicator.svelte-1onbytl{width:var(--size-20);height:var(--size-20);margin-left:calc(-1 * var(--size-8));margin-right:calc(-1 * var(--size-6))}.image-container.svelte-1onbytl img.svelte-1onbytl,.image-container.svelte-1onbytl video.svelte-1onbytl{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-md)}.caption.svelte-1onbytl.svelte-1onbytl{position:absolute;bottom:0;left:0;right:0;background:#000000b3;color:#fff;padding:var(--spacing-xs);font-size:var(--text-xs);text-align:center;border-radius:0 0 var(--radius-md) var(--radius-md);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.container.table.svelte-1onbytl .caption.svelte-1onbytl{display:none}
|
|
|
|
| 1 |
+
.block.svelte-239wnu{position:relative;margin:0;box-shadow:var(--block-shadow);border-width:var(--block-border-width);border-color:var(--block-border-color);border-radius:var(--block-radius);background:var(--block-background-fill);width:100%;line-height:var(--line-sm)}.block.fullscreen.svelte-239wnu{border-radius:0}.auto-margin.svelte-239wnu{margin-left:auto;margin-right:auto}.block.border_focus.svelte-239wnu{border-color:var(--color-accent)}.block.border_contrast.svelte-239wnu{border-color:var(--body-text-color)}.padded.svelte-239wnu{padding:var(--block-padding)}.hidden.svelte-239wnu{display:none}.flex.svelte-239wnu{display:flex;flex-direction:column}.hide-container.svelte-239wnu:not(.fullscreen){margin:0;box-shadow:none;--block-border-width:0;background:transparent;padding:0;overflow:visible}.resize-handle.svelte-239wnu{position:absolute;bottom:0;right:0;width:10px;height:10px;fill:var(--block-border-color);cursor:nwse-resize}.fullscreen.svelte-239wnu{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:1000;overflow:auto}.animating.svelte-239wnu{animation:svelte-239wnu-pop-out .1s ease-out forwards}@keyframes svelte-239wnu-pop-out{0%{position:fixed;top:var(--start-top);left:var(--start-left);width:var(--start-width);height:var(--start-height);z-index:100}to{position:fixed;top:0vh;left:0vw;width:100vw;height:100vh;z-index:1000}}.placeholder.svelte-239wnu{border-radius:var(--block-radius);border-width:var(--block-border-width);border-color:var(--block-border-color);border-style:dashed}Tables */ table,tr,td,th{margin-top:var(--spacing-sm);margin-bottom:var(--spacing-sm);padding:var(--spacing-xl)}.md code,.md pre{background:none;font-family:var(--font-mono);font-size:var(--text-sm);text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:2;tab-size:2;-webkit-hyphens:none;hyphens:none}.md pre[class*=language-]::selection,.md pre[class*=language-] ::selection,.md code[class*=language-]::selection,.md code[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}.md pre{padding:1em;margin:.5em 0;overflow:auto;position:relative;margin-top:var(--spacing-sm);margin-bottom:var(--spacing-sm);box-shadow:none;border:none;border-radius:var(--radius-md);background:var(--code-background-fill);padding:var(--spacing-xxl);font-family:var(--font-mono);text-shadow:none;border-radius:var(--radius-sm);white-space:nowrap;display:block;white-space:pre}.md :not(pre)>code{padding:.1em;border-radius:var(--radius-xs);white-space:normal;background:var(--code-background-fill);border:1px solid var(--panel-border-color);padding:var(--spacing-xxs) var(--spacing-xs)}.md .token.comment,.md .token.prolog,.md .token.doctype,.md .token.cdata{color:#708090}.md .token.punctuation{color:#999}.md .token.namespace{opacity:.7}.md .token.property,.md .token.tag,.md .token.boolean,.md .token.number,.md .token.constant,.md .token.symbol,.md .token.deleted{color:#905}.md .token.selector,.md .token.attr-name,.md .token.string,.md .token.char,.md .token.builtin,.md .token.inserted{color:#690}.md .token.atrule,.md .token.attr-value,.md .token.keyword{color:#07a}.md .token.function,.md .token.class-name{color:#dd4a68}.md .token.regex,.md .token.important,.md .token.variable{color:#e90}.md .token.important,.md .token.bold{font-weight:700}.md .token.italic{font-style:italic}.md .token.entity{cursor:help}.dark .md .token.comment,.dark .md .token.prolog,.dark .md .token.cdata{color:#5c6370}.dark .md .token.doctype,.dark .md .token.punctuation,.dark .md .token.entity{color:#abb2bf}.dark .md .token.attr-name,.dark .md .token.class-name,.dark .md .token.boolean,.dark .md .token.constant,.dark .md .token.number,.dark .md .token.atrule{color:#d19a66}.dark .md .token.keyword{color:#c678dd}.dark .md .token.property,.dark .md .token.tag,.dark .md .token.symbol,.dark .md .token.deleted,.dark .md .token.important{color:#e06c75}.dark .md .token.selector,.dark .md .token.string,.dark .md .token.char,.dark .md .token.builtin,.dark .md .token.inserted,.dark .md .token.regex,.dark .md .token.attr-value,.dark .md .token.attr-value>.token.punctuation{color:#98c379}.dark .md .token.variable,.dark .md .token.operator,.dark .md .token.function{color:#61afef}.dark .md .token.url{color:#56b6c2}span.svelte-1m32c2s div[class*=code_wrap]{position:relative}span.svelte-1m32c2s span.katex{font-size:var(--text-lg);direction:ltr}span.svelte-1m32c2s div[class*=code_wrap]>button{z-index:1;cursor:pointer;border-bottom-left-radius:var(--radius-sm);padding:var(--spacing-md);width:25px;height:25px;position:absolute;right:0}span.svelte-1m32c2s .check{opacity:0;z-index:var(--layer-top);transition:opacity .2s;background:var(--code-background-fill);color:var(--body-text-color);position:absolute;top:var(--size-1-5);left:var(--size-1-5)}span.svelte-1m32c2s p:not(:first-child){margin-top:var(--spacing-xxl)}span.svelte-1m32c2s .md-header-anchor{margin-left:-25px;padding-right:8px;line-height:1;color:var(--body-text-color-subdued);opacity:0}span.svelte-1m32c2s h1:hover .md-header-anchor,span.svelte-1m32c2s h2:hover .md-header-anchor,span.svelte-1m32c2s h3:hover .md-header-anchor,span.svelte-1m32c2s h4:hover .md-header-anchor,span.svelte-1m32c2s h5:hover .md-header-anchor,span.svelte-1m32c2s h6:hover .md-header-anchor{opacity:1}span.md.svelte-1m32c2s .md-header-anchor>svg{color:var(--body-text-color-subdued)}span.svelte-1m32c2s table{word-break:break-word}div.svelte-17qq50w>.md.prose{font-weight:var(--block-info-text-weight);font-size:var(--block-info-text-size);line-height:var(--line-sm)}div.svelte-17qq50w>.md.prose *{color:var(--block-info-text-color)}div.svelte-17qq50w{margin-bottom:var(--spacing-md)}span.has-info.svelte-zgrq3{margin-bottom:var(--spacing-xs)}span.svelte-zgrq3:not(.has-info){margin-bottom:var(--spacing-lg)}span.svelte-zgrq3{display:inline-block;position:relative;z-index:var(--layer-4);border:solid var(--block-title-border-width) var(--block-title-border-color);border-radius:var(--block-title-radius);background:var(--block-title-background-fill);padding:var(--block-title-padding);color:var(--block-title-text-color);font-weight:var(--block-title-text-weight);font-size:var(--block-title-text-size);line-height:var(--line-sm)}span[dir=rtl].svelte-zgrq3{display:block}.hide.svelte-zgrq3{margin:0;height:0}label.svelte-igqdol.svelte-igqdol{display:inline-flex;align-items:center;z-index:var(--layer-2);box-shadow:var(--block-label-shadow);border:var(--block-label-border-width) solid var(--block-label-border-color);border-top:none;border-left:none;border-radius:var(--block-label-radius);background:var(--block-label-background-fill);padding:var(--block-label-padding);pointer-events:none;color:var(--block-label-text-color);font-weight:var(--block-label-text-weight);font-size:var(--block-label-text-size);line-height:var(--line-sm)}.gr-group label.svelte-igqdol.svelte-igqdol{border-top-left-radius:0}label.float.svelte-igqdol.svelte-igqdol{position:absolute;top:var(--block-label-margin);left:var(--block-label-margin)}label.svelte-igqdol.svelte-igqdol:not(.float){position:static;margin-top:var(--block-label-margin);margin-left:var(--block-label-margin)}.hide.svelte-igqdol.svelte-igqdol{display:none}span.svelte-igqdol.svelte-igqdol{opacity:.8;margin-right:var(--size-2);width:calc(var(--block-label-text-size) - 1px);height:calc(var(--block-label-text-size) - 1px)}.hide-label.svelte-igqdol.svelte-igqdol{box-shadow:none;border-width:0;background:transparent;overflow:visible}label[dir=rtl].svelte-igqdol.svelte-igqdol{border:var(--block-label-border-width) solid var(--block-label-border-color);border-top:none;border-right:none;border-bottom-left-radius:var(--block-radius);border-bottom-right-radius:var(--block-label-radius);border-top-left-radius:var(--block-label-radius)}label[dir=rtl].svelte-igqdol span.svelte-igqdol{margin-left:var(--size-2);margin-right:0}.unstyled-link.svelte-151nsdd{all:unset;cursor:pointer}button.svelte-y0enk4{display:flex;justify-content:center;align-items:center;gap:1px;z-index:var(--layer-2);border-radius:var(--radius-xs);color:var(--block-label-text-color);border:1px solid var(--border-color);padding:var(--spacing-xxs)}button.svelte-y0enk4:hover{background-color:var(--background-fill-secondary)}button[disabled].svelte-y0enk4{opacity:.5;box-shadow:none}button[disabled].svelte-y0enk4:hover{cursor:not-allowed}.padded.svelte-y0enk4{background:var(--bg-color)}button.svelte-y0enk4:hover,button.highlight.svelte-y0enk4{cursor:pointer;color:var(--color-accent)}.padded.svelte-y0enk4:hover{color:var(--block-label-text-color)}span.svelte-y0enk4{padding:0 1px;font-size:10px}div.svelte-y0enk4{display:flex;align-items:center;justify-content:center;transition:filter .2s ease-in-out}.x-small.svelte-y0enk4{width:10px;height:10px}.small.svelte-y0enk4{width:14px;height:14px}.medium.svelte-y0enk4{width:20px;height:20px}.large.svelte-y0enk4{width:22px;height:22px}.pending.svelte-y0enk4{animation:svelte-y0enk4-flash .5s infinite}@keyframes svelte-y0enk4-flash{0%{opacity:.5}50%{opacity:1}to{opacity:.5}}.transparent.svelte-y0enk4{background:transparent;border:none;box-shadow:none}.empty.svelte-3w3rth{display:flex;justify-content:center;align-items:center;margin-top:calc(0px - var(--size-6));height:var(--size-full)}.icon.svelte-3w3rth{opacity:.5;height:var(--size-5);color:var(--body-text-color)}.small.svelte-3w3rth{min-height:calc(var(--size-32) - 20px)}.large.svelte-3w3rth{min-height:calc(var(--size-64) - 20px)}.unpadded_box.svelte-3w3rth{margin-top:0}.small_parent.svelte-3w3rth{min-height:100%!important}.dropdown-arrow.svelte-145leq6,.dropdown-arrow.svelte-ihhdbf{fill:currentColor}.circle.svelte-ihhdbf{fill:currentColor;opacity:.1}svg.svelte-pb9pol{animation:svelte-pb9pol-spin 1.5s linear infinite}@keyframes svelte-pb9pol-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}h2.svelte-1xg7h5n{font-size:var(--text-xl)!important}p.svelte-1xg7h5n,h2.svelte-1xg7h5n{white-space:pre-line}.wrap.svelte-1xg7h5n{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:var(--size-60);color:var(--block-label-text-color);line-height:var(--line-md);height:100%;padding-top:var(--size-3);text-align:center;margin:auto var(--spacing-lg)}.or.svelte-1xg7h5n{color:var(--body-text-color-subdued);display:flex}.icon-wrap.svelte-1xg7h5n{width:30px;margin-bottom:var(--spacing-lg)}@media (--screen-md){.wrap.svelte-1xg7h5n{font-size:var(--text-lg)}}.hovered.svelte-1xg7h5n{color:var(--color-accent)}div.svelte-q32hvf{border-top:1px solid transparent;display:flex;max-height:100%;justify-content:center;align-items:center;gap:var(--spacing-sm);height:auto;align-items:flex-end;color:var(--block-label-text-color);flex-shrink:0}.show_border.svelte-q32hvf{border-top:1px solid var(--block-border-color);margin-top:var(--spacing-xxl);box-shadow:var(--shadow-drop)}.source-selection.svelte-15ls1gu{display:flex;align-items:center;justify-content:center;border-top:1px solid var(--border-color-primary);width:100%;margin-left:auto;margin-right:auto;height:var(--size-10)}.icon.svelte-15ls1gu{width:22px;height:22px;margin:var(--spacing-lg) var(--spacing-xs);padding:var(--spacing-xs);color:var(--neutral-400);border-radius:var(--radius-md)}.selected.svelte-15ls1gu{color:var(--color-accent)}.icon.svelte-15ls1gu:hover,.icon.svelte-15ls1gu:focus{color:var(--color-accent)}.icon-button-wrapper.svelte-1h0hs6p{display:flex;flex-direction:row;align-items:center;justify-content:center;z-index:var(--layer-2);gap:var(--spacing-sm);box-shadow:var(--shadow-drop);border:1px solid var(--border-color-primary);background:var(--block-background-fill);padding:var(--spacing-xxs)}.icon-button-wrapper.hide-top-corner.svelte-1h0hs6p{border-top:none;border-right:none;border-radius:var(--block-label-right-radius)}.icon-button-wrapper.display-top-corner.svelte-1h0hs6p{border-radius:var(--radius-sm) 0 0 var(--radius-sm);top:var(--spacing-sm);right:-1px}.icon-button-wrapper.svelte-1h0hs6p:not(.top-panel){border:1px solid var(--border-color-primary);border-radius:var(--radius-sm)}.top-panel.svelte-1h0hs6p{position:absolute;top:var(--block-label-margin);right:var(--block-label-margin);margin:0}.icon-button-wrapper.svelte-1h0hs6p button{margin:var(--spacing-xxs);border-radius:var(--radius-xs);position:relative}.icon-button-wrapper.svelte-1h0hs6p a.download-link:not(:last-child),.icon-button-wrapper.svelte-1h0hs6p button:not(:last-child){margin-right:var(--spacing-xxs)}.icon-button-wrapper.svelte-1h0hs6p a.download-link:not(:last-child):not(.no-border *):after,.icon-button-wrapper.svelte-1h0hs6p button:not(:last-child):not(.no-border *):after{content:"";position:absolute;right:-4.5px;top:15%;height:70%;width:1px;background-color:var(--border-color-primary)}.icon-button-wrapper.svelte-1h0hs6p>*{height:100%}img.svelte-kxeri3{object-fit:cover}.image-container.svelte-x2tujq.svelte-x2tujq{height:100%;position:relative;min-width:var(--size-20)}.image-container.svelte-x2tujq button.svelte-x2tujq{width:var(--size-full);height:var(--size-full);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center}.image-frame.svelte-x2tujq img{width:var(--size-full);height:var(--size-full);object-fit:scale-down}.selectable.svelte-x2tujq.svelte-x2tujq{cursor:crosshair}.fullscreen-controls svg{position:relative;top:0}.image-container:fullscreen{background-color:#000;display:flex;justify-content:center;align-items:center}.image-container:fullscreen img{max-width:90vw;max-height:90vh;object-fit:scale-down}.image-frame.svelte-x2tujq.svelte-x2tujq{width:auto;height:100%;display:flex;align-items:center;justify-content:center}.overlay.svelte-1pwzuub{position:absolute;background-color:#0006;width:100%;height:100%}.hidden.svelte-1pwzuub{display:none}.load-wrap.svelte-1pwzuub{display:flex;justify-content:center;align-items:center;height:100%}.loader.svelte-1pwzuub{display:flex;position:relative;background-color:var(--border-color-accent-subdued);animation:svelte-1pwzuub-shadowPulse 2s linear infinite;box-shadow:-24px 0 var(--border-color-accent-subdued),24px 0 var(--border-color-accent-subdued);margin:var(--spacing-md);border-radius:50%;width:10px;height:10px;scale:.5}@keyframes svelte-1pwzuub-shadowPulse{33%{box-shadow:-24px 0 var(--border-color-accent-subdued),24px 0 #fff;background:#fff}66%{box-shadow:-24px 0 #fff,24px 0 #fff;background:var(--border-color-accent-subdued)}to{box-shadow:-24px 0 #fff,24px 0 var(--border-color-accent-subdued);background:#fff}}.preview.svelte-1k19y3g.svelte-1k19y3g{display:flex;position:absolute;flex-direction:column;z-index:var(--layer-2);border-radius:calc(var(--block-radius) - var(--block-border-width));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:var(--size-full);height:var(--size-full)}.preview.svelte-1k19y3g.svelte-1k19y3g:focus-visible{outline:none}.preview.minimal.svelte-1k19y3g.svelte-1k19y3g{width:fit-content;height:fit-content}.preview.svelte-1k19y3g.svelte-1k19y3g:before{content:"";position:absolute;z-index:var(--layer-below);background:var(--background-fill-primary);opacity:.9;width:var(--size-full);height:var(--size-full)}.fixed-height.svelte-1k19y3g.svelte-1k19y3g{min-height:var(--size-80);max-height:65vh}@media (--screen-xl){.fixed-height.svelte-1k19y3g.svelte-1k19y3g{min-height:450px}}.media-container.svelte-1k19y3g.svelte-1k19y3g{height:calc(100% - var(--size-14));width:100%;display:flex;align-items:center;justify-content:center;cursor:pointer}.media-container.svelte-1k19y3g img,.media-container.svelte-1k19y3g video{max-width:100%;max-height:100%;object-fit:contain}.thumbnails.svelte-1k19y3g img{object-fit:cover;width:var(--size-full);height:var(--size-full)}.thumbnails.svelte-1k19y3g svg{position:absolute;top:var(--size-2);left:var(--size-2);width:50%;height:50%;opacity:50%}.caption.svelte-1k19y3g.svelte-1k19y3g{padding:var(--size-2) var(--size-3);overflow:hidden;color:var(--block-label-text-color);font-weight:var(--weight-semibold);text-align:center;text-overflow:ellipsis;white-space:nowrap;align-self:center}.thumbnails.svelte-1k19y3g.svelte-1k19y3g{display:flex;position:absolute;bottom:0;justify-content:flex-start;align-items:center;gap:var(--spacing-lg);width:var(--size-full);height:var(--size-14);overflow-x:scroll}.thumbnail-item.svelte-1k19y3g.svelte-1k19y3g{--ring-color:transparent;position:relative;box-shadow:inset 0 0 0 1px var(--ring-color),var(--shadow-drop);border:1px solid var(--border-color-primary);border-radius:var(--button-small-radius);background:var(--background-fill-secondary);aspect-ratio:var(--ratio-square);width:var(--size-full);height:var(--size-full);overflow:clip}.thumbnail-item.svelte-1k19y3g.svelte-1k19y3g:hover{--ring-color:var(--color-accent);border-color:var(--color-accent);filter:brightness(1.1)}.thumbnail-item.selected.svelte-1k19y3g.svelte-1k19y3g{--ring-color:var(--color-accent);border-color:var(--color-accent)}.thumbnail-item.svelte-1k19y3g svg{position:absolute;top:50%;left:50%;width:50%;height:50%;opacity:50%;transform:translate(-50%,-50%)}.thumbnail-item.svelte-1k19y3g video{width:var(--size-full);height:var(--size-full);overflow:hidden;object-fit:cover}.thumbnail-small.svelte-1k19y3g.svelte-1k19y3g{flex:none;transform:scale(.9);transition:75ms;width:var(--size-9);height:var(--size-9)}.thumbnail-small.selected.svelte-1k19y3g.svelte-1k19y3g{--ring-color:var(--color-accent);transform:scale(1);border-color:var(--color-accent)}.grid-wrap.svelte-1k19y3g.svelte-1k19y3g{position:relative;padding:var(--size-2);overflow-y:auto}.grid-wrap.fixed-height.svelte-1k19y3g.svelte-1k19y3g{min-height:var(--size-80);max-height:65vh}.grid-container.svelte-1k19y3g.svelte-1k19y3g{display:grid;position:relative;grid-template-rows:repeat(var(--grid-rows),minmax(100px,1fr));grid-template-columns:repeat(var(--grid-cols),minmax(100px,1fr));grid-auto-rows:minmax(100px,1fr);gap:var(--spacing-lg)}.single-item-wrapper.svelte-1k19y3g.svelte-1k19y3g{display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:var(--spacing-xxl);box-sizing:border-box}.single-item-wrapper.svelte-1k19y3g .gallery-item-with-name.svelte-1k19y3g{width:100%;height:100%;max-width:min(300px,80vw);max-height:min(320px,calc(80vh - var(--size-4)));display:flex;flex-direction:column;align-items:center}.single-item-wrapper.svelte-1k19y3g .gallery-item.svelte-1k19y3g{width:100%;height:100%;max-width:100%;max-height:100%}.single-item-wrapper.svelte-1k19y3g .thumbnail-item.thumbnail-lg.svelte-1k19y3g{display:flex!important;align-items:center!important;justify-content:center!important}.single-item-wrapper.svelte-1k19y3g .thumbnail-filename.svelte-1k19y3g{height:var(--size-4);line-height:var(--size-4)}.single-item-wrapper.svelte-1k19y3g .thumbnail-lg.svelte-1k19y3g>img,.single-item-wrapper.svelte-1k19y3g .thumbnail-lg.svelte-1k19y3g>video{object-fit:var(--object-fit)!important}.thumbnail-lg.svelte-1k19y3g>img,.thumbnail-lg.svelte-1k19y3g>video{width:var(--size-full);height:var(--size-full);overflow:hidden;object-fit:var(--object-fit)}.thumbnail-lg.svelte-1k19y3g:hover .caption-label.svelte-1k19y3g{opacity:.5}.caption-label.svelte-1k19y3g.svelte-1k19y3g{position:absolute;right:var(--block-label-margin);bottom:var(--block-label-margin);z-index:var(--layer-1);border-top:1px solid var(--border-color-primary);border-left:1px solid var(--border-color-primary);border-radius:var(--block-label-radius);background:var(--background-fill-secondary);padding:var(--block-label-padding);max-width:80%;overflow:hidden;font-size:var(--block-label-text-size);text-align:left;text-overflow:ellipsis;white-space:nowrap}.grid-wrap.minimal.svelte-1k19y3g.svelte-1k19y3g{padding:0}.gallery-item-with-name.svelte-1k19y3g.svelte-1k19y3g{display:flex;flex-direction:column;gap:var(--size-1);width:100%;height:100%}.thumbnail-filename.svelte-1k19y3g.svelte-1k19y3g{font-size:var(--text-xs);color:var(--body-text-color);text-align:center;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 var(--size-1)}.gallery-item.svelte-1k19y3g.svelte-1k19y3g{position:relative;width:100%;height:100%}.metadata-popup.svelte-1k19y3g.svelte-1k19y3g{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--background-fill-primary, white);border:1px solid var(--border-color-primary);box-shadow:0 4px 8px #0003;z-index:1000;border-radius:8px;max-width:min(90%,600px);max-height:min(50vh,calc(100% - 2rem));min-height:200px;display:flex;flex-direction:column;pointer-events:auto}.popup-content.svelte-1k19y3g.svelte-1k19y3g{padding:1rem;display:flex;flex-direction:column;width:100%;box-sizing:border-box;overflow-y:auto;position:relative}.close-button.svelte-1k19y3g.svelte-1k19y3g{position:absolute;top:.5rem;right:.5rem;background:none;border:none;font-size:1.25rem;cursor:pointer;z-index:20;color:var(--body-text-color);padding:.25rem;line-height:1;width:24px;height:24px;text-align:center}.popup-title.svelte-1k19y3g.svelte-1k19y3g{font-weight:700;margin:0 0 1rem;flex-shrink:0;padding-right:2.5rem}.metadata-table-container.svelte-1k19y3g.svelte-1k19y3g{flex-grow:1;overflow-y:auto;max-height:calc(100% - 5rem);min-height:0;margin-bottom:1rem}.metadata-table.svelte-1k19y3g.svelte-1k19y3g{width:100%;border-collapse:collapse;table-layout:auto}.metadata-label.svelte-1k19y3g.svelte-1k19y3g{background:var(--background-fill-secondary, #f5f5f5);padding:.5rem;font-weight:700;text-align:left;vertical-align:top;width:35%}.metadata-value.svelte-1k19y3g.svelte-1k19y3g{text-align:left;padding:.5rem;white-space:pre-wrap;word-break:break-all;vertical-align:top}.load-metadata-button.svelte-1k19y3g.svelte-1k19y3g{margin-top:1rem;padding:.5rem 1rem;background-color:var(--button-primary-border-color);color:var(--button-primary-text-color);border:none;border-radius:4px;cursor:pointer;align-self:center;flex-shrink:0}.load-metadata-button.svelte-1k19y3g.svelte-1k19y3g:hover{background-color:var(--button-primary-background-fill-hover)}.no-metadata-message.svelte-1k19y3g.svelte-1k19y3g{flex-grow:1;display:flex;align-items:center;justify-content:center;color:var(--body-text-color-subdued)}svg.svelte-43sxxs.svelte-43sxxs{width:var(--size-20);height:var(--size-20)}svg.svelte-43sxxs path.svelte-43sxxs{fill:var(--loader-color)}div.svelte-43sxxs.svelte-43sxxs{z-index:var(--layer-2)}.margin.svelte-43sxxs.svelte-43sxxs{margin:var(--size-4)}.wrap.svelte-vusapu.svelte-vusapu{display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:var(--layer-3);transition:opacity .1s ease-in-out;border-radius:var(--block-radius);background:var(--block-background-fill);padding:0 var(--size-6);overflow:hidden;pointer-events:none}.wrap.center.svelte-vusapu.svelte-vusapu{top:0;right:0;left:0}.wrap.default.svelte-vusapu.svelte-vusapu{top:0;right:0;bottom:0;left:0}.hide.svelte-vusapu.svelte-vusapu{opacity:0;pointer-events:none}.generating.svelte-vusapu.svelte-vusapu{animation:svelte-vusapu-pulseStart 1s cubic-bezier(.4,0,.6,1),svelte-vusapu-pulse 2s cubic-bezier(.4,0,.6,1) 1s infinite;border:2px solid var(--color-accent);background:transparent;z-index:var(--layer-1);pointer-events:none}.translucent.svelte-vusapu.svelte-vusapu{background:none}@keyframes svelte-vusapu-pulseStart{0%{opacity:0}to{opacity:1}}@keyframes svelte-vusapu-pulse{0%,to{opacity:1}50%{opacity:.5}}.loading.svelte-vusapu.svelte-vusapu{z-index:var(--layer-2);color:var(--body-text-color)}.eta-bar.svelte-vusapu.svelte-vusapu{position:absolute;top:0;right:0;bottom:0;left:0;transform-origin:left;opacity:.8;z-index:var(--layer-1);transition:10ms;background:var(--background-fill-secondary)}.progress-bar-wrap.svelte-vusapu.svelte-vusapu{border:1px solid var(--border-color-primary);background:var(--background-fill-primary);width:55.5%;height:var(--size-4)}.progress-bar.svelte-vusapu.svelte-vusapu{transform-origin:left;background-color:var(--loader-color);width:var(--size-full);height:var(--size-full)}.progress-level.svelte-vusapu.svelte-vusapu{display:flex;flex-direction:column;align-items:center;gap:1;z-index:var(--layer-2);width:var(--size-full)}.progress-level-inner.svelte-vusapu.svelte-vusapu{margin:var(--size-2) auto;color:var(--body-text-color);font-size:var(--text-sm);font-family:var(--font-mono)}.meta-text.svelte-vusapu.svelte-vusapu{position:absolute;bottom:0;right:0;z-index:var(--layer-2);padding:var(--size-1) var(--size-2);font-size:var(--text-sm);font-family:var(--font-mono)}.meta-text-center.svelte-vusapu.svelte-vusapu{display:flex;position:absolute;top:0;right:0;justify-content:center;align-items:center;transform:translateY(var(--size-6));z-index:var(--layer-2);padding:var(--size-1) var(--size-2);font-size:var(--text-sm);font-family:var(--font-mono);text-align:center}.error.svelte-vusapu.svelte-vusapu{box-shadow:var(--shadow-drop);border:solid 1px var(--error-border-color);border-radius:var(--radius-full);background:var(--error-background-fill);padding-right:var(--size-4);padding-left:var(--size-4);color:var(--error-text-color);font-weight:var(--weight-semibold);font-size:var(--text-lg);line-height:var(--line-lg);font-family:var(--font)}.validation-error.svelte-vusapu.svelte-vusapu{pointer-events:auto;color:var(--error-text-color);font-weight:var(--weight-semibold);font-size:var(--text-lg);line-height:var(--line-lg);font-family:var(--font);position:absolute;background:var(--error-background-fill);top:0;right:0;z-index:var(--layer-3);padding:var(--size-1) var(--size-2);font-size:var(--text-md);text-align:center;border-bottom-left-radius:var(--radius-sm);border-bottom:1px solid var(--error-border-color);border-left:1px solid var(--error-border-color);display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-xl)}.minimal.svelte-vusapu.svelte-vusapu{pointer-events:none}.minimal.svelte-vusapu .progress-text.svelte-vusapu{background:var(--block-background-fill)}.border.svelte-vusapu.svelte-vusapu{border:1px solid var(--border-color-primary)}.clear-status.svelte-vusapu.svelte-vusapu{position:absolute;display:flex;top:var(--size-2);right:var(--size-2);justify-content:flex-end;gap:var(--spacing-sm);z-index:var(--layer-1)}.toast-body.svelte-syezpc{display:flex;position:relative;right:0;left:0;align-items:center;margin:var(--size-6) var(--size-4);margin:auto;border-radius:var(--container-radius);overflow:hidden;pointer-events:auto}.toast-body.error.svelte-syezpc{border:1px solid var(--color-red-700);background:var(--color-red-50)}.dark .toast-body.error.svelte-syezpc{border:1px solid var(--color-red-500);background-color:var(--color-grey-950)}.toast-body.warning.svelte-syezpc{border:1px solid var(--color-yellow-700);background:var(--color-yellow-50)}.dark .toast-body.warning.svelte-syezpc{border:1px solid var(--color-yellow-500);background-color:var(--color-grey-950)}.toast-body.info.svelte-syezpc{border:1px solid var(--color-grey-700);background:var(--color-grey-50)}.dark .toast-body.info.svelte-syezpc{border:1px solid var(--color-grey-500);background-color:var(--color-grey-950)}.toast-body.success.svelte-syezpc{border:1px solid var(--color-green-700);background:var(--color-green-50)}.dark .toast-body.success.svelte-syezpc{border:1px solid var(--color-green-500);background-color:var(--color-grey-950)}.toast-title.svelte-syezpc{display:flex;align-items:center;font-weight:var(--weight-bold);font-size:var(--text-lg);line-height:var(--line-sm)}.toast-title.error.svelte-syezpc{color:var(--color-red-700)}.dark .toast-title.error.svelte-syezpc{color:var(--color-red-50)}.toast-title.warning.svelte-syezpc{color:var(--color-yellow-700)}.dark .toast-title.warning.svelte-syezpc{color:var(--color-yellow-50)}.toast-title.info.svelte-syezpc{color:var(--color-grey-700)}.dark .toast-title.info.svelte-syezpc{color:var(--color-grey-50)}.toast-title.success.svelte-syezpc{color:var(--color-green-700)}.dark .toast-title.success.svelte-syezpc{color:var(--color-green-50)}.toast-close.svelte-syezpc{margin:0 var(--size-3);border-radius:var(--size-3);padding:0px var(--size-1-5);font-size:var(--size-5);line-height:var(--size-5)}.toast-close.error.svelte-syezpc{color:var(--color-red-700)}.dark .toast-close.error.svelte-syezpc{color:var(--color-red-500)}.toast-close.warning.svelte-syezpc{color:var(--color-yellow-700)}.dark .toast-close.warning.svelte-syezpc{color:var(--color-yellow-500)}.toast-close.info.svelte-syezpc{color:var(--color-grey-700)}.dark .toast-close.info.svelte-syezpc{color:var(--color-grey-500)}.toast-close.success.svelte-syezpc{color:var(--color-green-700)}.dark .toast-close.success.svelte-syezpc{color:var(--color-green-500)}.toast-text.svelte-syezpc{font-size:var(--text-lg);word-wrap:break-word;overflow-wrap:break-word;word-break:break-word}.toast-text.error.svelte-syezpc{color:var(--color-red-700)}.dark .toast-text.error.svelte-syezpc{color:var(--color-red-50)}.toast-text.warning.svelte-syezpc{color:var(--color-yellow-700)}.dark .toast-text.warning.svelte-syezpc{color:var(--color-yellow-50)}.toast-text.info.svelte-syezpc{color:var(--color-grey-700)}.dark .toast-text.info.svelte-syezpc{color:var(--color-grey-50)}.toast-text.success.svelte-syezpc{color:var(--color-green-700)}.dark .toast-text.success.svelte-syezpc{color:var(--color-green-50)}.toast-details.svelte-syezpc{margin:var(--size-3) var(--size-3) var(--size-3) 0;width:100%}.toast-icon.svelte-syezpc{display:flex;position:absolute;position:relative;flex-shrink:0;justify-content:center;align-items:center;margin:var(--size-2);border-radius:var(--radius-full);padding:var(--size-1);padding-left:calc(var(--size-1) - 1px);width:35px;height:35px}.toast-icon.error.svelte-syezpc{color:var(--color-red-700)}.dark .toast-icon.error.svelte-syezpc{color:var(--color-red-500)}.toast-icon.warning.svelte-syezpc{color:var(--color-yellow-700)}.dark .toast-icon.warning.svelte-syezpc{color:var(--color-yellow-500)}.toast-icon.info.svelte-syezpc{color:var(--color-grey-700)}.dark .toast-icon.info.svelte-syezpc{color:var(--color-grey-500)}.toast-icon.success.svelte-syezpc{color:var(--color-green-700)}.dark .toast-icon.success.svelte-syezpc{color:var(--color-green-500)}@keyframes svelte-syezpc-countdown{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.timer.svelte-syezpc{position:absolute;bottom:0;left:0;transform-origin:0 0;animation:svelte-syezpc-countdown 10s linear forwards;width:100%;height:var(--size-1)}.timer.error.svelte-syezpc{background:var(--color-red-700)}.dark .timer.error.svelte-syezpc{background:var(--color-red-500)}.timer.warning.svelte-syezpc{background:var(--color-yellow-700)}.dark .timer.warning.svelte-syezpc{background:var(--color-yellow-500)}.timer.info.svelte-syezpc{background:var(--color-grey-700)}.dark .timer.info.svelte-syezpc{background:var(--color-grey-500)}.timer.success.svelte-syezpc{background:var(--color-green-700)}.dark .timer.success.svelte-syezpc{background:var(--color-green-500)}.hidden.svelte-syezpc{display:none}.toast-text.svelte-syezpc a{text-decoration:underline}.toast-wrap.svelte-je2isz{--toast-top:var(--size-4);display:flex;position:fixed;top:calc(var(--toast-top) + var(--size-4));right:var(--size-4);flex-direction:column;align-items:end;gap:var(--size-2);z-index:var(--layer-top);width:calc(100% - var(--size-8))}@media (--screen-sm){.toast-wrap.svelte-je2isz{width:calc(var(--size-96) + var(--size-10))}}.streaming-bar.svelte-ga0jj6{position:absolute;bottom:0;left:0;right:0;height:4px;background-color:var(--primary-600);animation:svelte-ga0jj6-countdown linear forwards;z-index:1}@keyframes svelte-ga0jj6-countdown{0%{transform:translate(0)}to{transform:translate(-100%)}}.gallery-container{position:relative;width:100%;height:100%}button{width:var(--size-full);height:var(--size-full);display:block;border-radius:var(--radius-lg)}.container.svelte-1onbytl.svelte-1onbytl{border-radius:var(--radius-lg);overflow:hidden}.container.selected.svelte-1onbytl.svelte-1onbytl{border:2px solid var(--border-color-accent)}.images-wrapper.svelte-1onbytl.svelte-1onbytl{display:flex;gap:var(--spacing-sm)}.container.table.svelte-1onbytl .images-wrapper.svelte-1onbytl{flex-direction:row;align-items:center;padding:var(--spacing-sm);border:1px solid var(--border-color-primary);border-radius:var(--radius-lg);background:var(--background-fill-secondary)}.container.gallery.svelte-1onbytl .images-wrapper.svelte-1onbytl{flex-direction:row;gap:0}.image-container.svelte-1onbytl.svelte-1onbytl{position:relative;flex-shrink:0}.container.table.svelte-1onbytl .image-container.svelte-1onbytl{width:var(--size-12);height:var(--size-12)}.container.gallery.svelte-1onbytl .image-container.svelte-1onbytl{width:var(--size-20);height:var(--size-20);margin-left:calc(-1 * var(--size-8))}.container.gallery.svelte-1onbytl .image-container.svelte-1onbytl:first-child{margin-left:0}.more-indicator.svelte-1onbytl.svelte-1onbytl{display:flex;align-items:center;justify-content:center;font-size:var(--text-lg);font-weight:700;color:var(--border-color-primary)}.container.table.svelte-1onbytl .more-indicator.svelte-1onbytl{width:var(--size-12);height:var(--size-12)}.container.gallery.svelte-1onbytl .more-indicator.svelte-1onbytl{width:var(--size-20);height:var(--size-20);margin-left:calc(-1 * var(--size-8));margin-right:calc(-1 * var(--size-6))}.image-container.svelte-1onbytl img.svelte-1onbytl,.image-container.svelte-1onbytl video.svelte-1onbytl{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-md)}.caption.svelte-1onbytl.svelte-1onbytl{position:absolute;bottom:0;left:0;right:0;background:#000000b3;color:#fff;padding:var(--spacing-xs);font-size:var(--text-xs);text-align:center;border-radius:0 0 var(--radius-md) var(--radius-md);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.container.table.svelte-1onbytl .caption.svelte-1onbytl{display:none}
|
src/demo/app.py
CHANGED
|
@@ -3,8 +3,7 @@ import gradio as gr
|
|
| 3 |
from gradio_folderexplorer import FolderExplorer
|
| 4 |
from gradio_folderexplorer.helpers import load_media_from_folder
|
| 5 |
from gradio_mediagallery import MediaGallery
|
| 6 |
-
from gradio_mediagallery.helpers import
|
| 7 |
-
import os
|
| 8 |
|
| 9 |
# Configuration constant for the root directory containing media files
|
| 10 |
ROOT_DIR_PATH = "./src/examples"
|
|
@@ -29,7 +28,7 @@ def handle_load_metadata(image_data: gr.EventData) -> List[Any]:
|
|
| 29 |
)
|
| 30 |
|
| 31 |
# UI layout and logic
|
| 32 |
-
with gr.Blocks() as demo:
|
| 33 |
"""
|
| 34 |
A Gradio interface for browsing and displaying media files with metadata extraction.
|
| 35 |
"""
|
|
|
|
| 3 |
from gradio_folderexplorer import FolderExplorer
|
| 4 |
from gradio_folderexplorer.helpers import load_media_from_folder
|
| 5 |
from gradio_mediagallery import MediaGallery
|
| 6 |
+
from gradio_mediagallery.helpers import transfer_metadata
|
|
|
|
| 7 |
|
| 8 |
# Configuration constant for the root directory containing media files
|
| 9 |
ROOT_DIR_PATH = "./src/examples"
|
|
|
|
| 28 |
)
|
| 29 |
|
| 30 |
# UI layout and logic
|
| 31 |
+
with gr.Blocks(theme=gr.themes.Ocean()) as demo:
|
| 32 |
"""
|
| 33 |
A Gradio interface for browsing and displaying media files with metadata extraction.
|
| 34 |
"""
|
src/demo/space.py
CHANGED
|
@@ -43,8 +43,7 @@ import gradio as gr
|
|
| 43 |
from gradio_folderexplorer import FolderExplorer
|
| 44 |
from gradio_folderexplorer.helpers import load_media_from_folder
|
| 45 |
from gradio_mediagallery import MediaGallery
|
| 46 |
-
from gradio_mediagallery.helpers import
|
| 47 |
-
import os
|
| 48 |
|
| 49 |
# Configuration constant for the root directory containing media files
|
| 50 |
ROOT_DIR_PATH = "./src/examples"
|
|
@@ -69,7 +68,7 @@ def handle_load_metadata(image_data: gr.EventData) -> List[Any]:
|
|
| 69 |
)
|
| 70 |
|
| 71 |
# UI layout and logic
|
| 72 |
-
with gr.Blocks() as demo:
|
| 73 |
\"\"\"
|
| 74 |
A Gradio interface for browsing and displaying media files with metadata extraction.
|
| 75 |
\"\"\"
|
|
|
|
| 43 |
from gradio_folderexplorer import FolderExplorer
|
| 44 |
from gradio_folderexplorer.helpers import load_media_from_folder
|
| 45 |
from gradio_mediagallery import MediaGallery
|
| 46 |
+
from gradio_mediagallery.helpers import transfer_metadata
|
|
|
|
| 47 |
|
| 48 |
# Configuration constant for the root directory containing media files
|
| 49 |
ROOT_DIR_PATH = "./src/examples"
|
|
|
|
| 68 |
)
|
| 69 |
|
| 70 |
# UI layout and logic
|
| 71 |
+
with gr.Blocks(theme=gr.themes.Ocean()) as demo:
|
| 72 |
\"\"\"
|
| 73 |
A Gradio interface for browsing and displaying media files with metadata extraction.
|
| 74 |
\"\"\"
|
src/frontend/Gallery.css
CHANGED
|
@@ -1,31 +1,3 @@
|
|
| 1 |
-
:global(*::-webkit-scrollbar) {
|
| 2 |
-
width: 8px;
|
| 3 |
-
height: 8px;
|
| 4 |
-
background-color: transparent;
|
| 5 |
-
}
|
| 6 |
-
|
| 7 |
-
:global(*::-webkit-scrollbar-track) {
|
| 8 |
-
background: transparent;
|
| 9 |
-
border-radius: 10px;
|
| 10 |
-
}
|
| 11 |
-
|
| 12 |
-
:global(*::-webkit-scrollbar-thumb) {
|
| 13 |
-
background-color: rgba(136, 136, 136, 0.4);
|
| 14 |
-
border-radius: 10px;
|
| 15 |
-
border: 2px solid transparent;
|
| 16 |
-
background-clip: content-box;
|
| 17 |
-
}
|
| 18 |
-
|
| 19 |
-
:global(*::-webkit-scrollbar-thumb:hover) {
|
| 20 |
-
background-color: rgba(136, 136, 136, 0.7);
|
| 21 |
-
}
|
| 22 |
-
|
| 23 |
-
/* Para Firefox */
|
| 24 |
-
:global(html) {
|
| 25 |
-
scrollbar-width: thin;
|
| 26 |
-
scrollbar-color: rgba(136, 136, 136, 0.7) transparent;
|
| 27 |
-
}
|
| 28 |
-
|
| 29 |
/**
|
| 30 |
* Styles for the gallery container, which holds the entire component.
|
| 31 |
*/
|
|
@@ -45,427 +17,3 @@
|
|
| 45 |
border-radius: var(--radius-lg);
|
| 46 |
}
|
| 47 |
|
| 48 |
-
/**
|
| 49 |
-
* Styles for the preview mode, displaying a selected media item.
|
| 50 |
-
*/
|
| 51 |
-
.preview {
|
| 52 |
-
display: flex;
|
| 53 |
-
position: absolute;
|
| 54 |
-
flex-direction: column;
|
| 55 |
-
z-index: var(--layer-2);
|
| 56 |
-
border-radius: calc(var(--block-radius) - var(--block-border-width));
|
| 57 |
-
-webkit-backdrop-filter: blur(8px);
|
| 58 |
-
backdrop-filter: blur(8px);
|
| 59 |
-
width: var(--size-full);
|
| 60 |
-
height: var(--size-full);
|
| 61 |
-
}
|
| 62 |
-
|
| 63 |
-
.preview:focus-visible {
|
| 64 |
-
outline: none;
|
| 65 |
-
}
|
| 66 |
-
|
| 67 |
-
.preview.minimal {
|
| 68 |
-
width: fit-content;
|
| 69 |
-
height: fit-content;
|
| 70 |
-
}
|
| 71 |
-
|
| 72 |
-
.preview::before {
|
| 73 |
-
content: "";
|
| 74 |
-
position: absolute;
|
| 75 |
-
z-index: var(--layer-below);
|
| 76 |
-
background: var(--background-fill-primary);
|
| 77 |
-
opacity: 0.9;
|
| 78 |
-
width: var(--size-full);
|
| 79 |
-
height: var(--size-full);
|
| 80 |
-
}
|
| 81 |
-
|
| 82 |
-
/**
|
| 83 |
-
* Styles for the grid wrapper with fixed height constraints.
|
| 84 |
-
*/
|
| 85 |
-
.fixed-height {
|
| 86 |
-
min-height: var(--size-80);
|
| 87 |
-
max-height: 65vh;
|
| 88 |
-
}
|
| 89 |
-
|
| 90 |
-
@media (--screen-xl) {
|
| 91 |
-
.fixed-height {
|
| 92 |
-
min-height: 450px;
|
| 93 |
-
}
|
| 94 |
-
}
|
| 95 |
-
|
| 96 |
-
/**
|
| 97 |
-
* Styles for the media container in preview mode.
|
| 98 |
-
*/
|
| 99 |
-
.media-container {
|
| 100 |
-
height: calc(100% - var(--size-14));
|
| 101 |
-
width: 100%;
|
| 102 |
-
display: flex;
|
| 103 |
-
align-items: center;
|
| 104 |
-
justify-content: center;
|
| 105 |
-
cursor: pointer;
|
| 106 |
-
}
|
| 107 |
-
|
| 108 |
-
.media-container :global(img),
|
| 109 |
-
.media-container :global(video) {
|
| 110 |
-
max-width: 100%;
|
| 111 |
-
max-height: 100%;
|
| 112 |
-
object-fit: contain;
|
| 113 |
-
}
|
| 114 |
-
|
| 115 |
-
/**
|
| 116 |
-
* Styles for thumbnails in the preview mode carousel.
|
| 117 |
-
*/
|
| 118 |
-
.thumbnails :global(img) {
|
| 119 |
-
object-fit: cover;
|
| 120 |
-
width: var(--size-full);
|
| 121 |
-
height: var(--size-full);
|
| 122 |
-
}
|
| 123 |
-
|
| 124 |
-
.thumbnails :global(svg) {
|
| 125 |
-
position: absolute;
|
| 126 |
-
top: var(--size-2);
|
| 127 |
-
left: var(--size-2);
|
| 128 |
-
width: 50%;
|
| 129 |
-
height: 50%;
|
| 130 |
-
opacity: 50%;
|
| 131 |
-
}
|
| 132 |
-
|
| 133 |
-
/**
|
| 134 |
-
* Styles for captions in preview mode.
|
| 135 |
-
*/
|
| 136 |
-
.caption {
|
| 137 |
-
padding: var(--size-2) var(--size-3);
|
| 138 |
-
overflow: hidden;
|
| 139 |
-
color: var(--block-label-text-color);
|
| 140 |
-
font-weight: var(--weight-semibold);
|
| 141 |
-
text-align: center;
|
| 142 |
-
text-overflow: ellipsis;
|
| 143 |
-
white-space: nowrap;
|
| 144 |
-
align-self: center;
|
| 145 |
-
}
|
| 146 |
-
|
| 147 |
-
/**
|
| 148 |
-
* Styles for the thumbnails carousel in preview mode.
|
| 149 |
-
*/
|
| 150 |
-
.thumbnails {
|
| 151 |
-
display: flex;
|
| 152 |
-
position: absolute;
|
| 153 |
-
bottom: 0;
|
| 154 |
-
justify-content: flex-start;
|
| 155 |
-
align-items: center;
|
| 156 |
-
gap: var(--spacing-lg);
|
| 157 |
-
width: var(--size-full);
|
| 158 |
-
height: var(--size-14);
|
| 159 |
-
overflow-x: scroll;
|
| 160 |
-
}
|
| 161 |
-
|
| 162 |
-
/**
|
| 163 |
-
* Styles for individual thumbnail items.
|
| 164 |
-
*/
|
| 165 |
-
.thumbnail-item {
|
| 166 |
-
--ring-color: transparent;
|
| 167 |
-
position: relative;
|
| 168 |
-
box-shadow: inset 0 0 0 1px var(--ring-color), var(--shadow-drop);
|
| 169 |
-
border: 1px solid var(--border-color-primary);
|
| 170 |
-
border-radius: var(--button-small-radius);
|
| 171 |
-
background: var(--background-fill-secondary);
|
| 172 |
-
aspect-ratio: var(--ratio-square);
|
| 173 |
-
width: var(--size-full);
|
| 174 |
-
height: var(--size-full);
|
| 175 |
-
overflow: clip;
|
| 176 |
-
}
|
| 177 |
-
|
| 178 |
-
.thumbnail-item:hover {
|
| 179 |
-
--ring-color: var(--color-accent);
|
| 180 |
-
border-color: var(--color-accent);
|
| 181 |
-
filter: brightness(1.1);
|
| 182 |
-
}
|
| 183 |
-
|
| 184 |
-
.thumbnail-item.selected {
|
| 185 |
-
--ring-color: var(--color-accent);
|
| 186 |
-
border-color: var(--color-accent);
|
| 187 |
-
}
|
| 188 |
-
|
| 189 |
-
.thumbnail-item :global(svg) {
|
| 190 |
-
position: absolute;
|
| 191 |
-
top: 50%;
|
| 192 |
-
left: 50%;
|
| 193 |
-
width: 50%;
|
| 194 |
-
height: 50%;
|
| 195 |
-
opacity: 50%;
|
| 196 |
-
transform: translate(-50%, -50%);
|
| 197 |
-
}
|
| 198 |
-
|
| 199 |
-
.thumbnail-item :global(video) {
|
| 200 |
-
width: var(--size-full);
|
| 201 |
-
height: var(--size-full);
|
| 202 |
-
overflow: hidden;
|
| 203 |
-
object-fit: cover;
|
| 204 |
-
}
|
| 205 |
-
|
| 206 |
-
/**
|
| 207 |
-
* Styles for small thumbnails in the preview carousel.
|
| 208 |
-
*/
|
| 209 |
-
.thumbnail-small {
|
| 210 |
-
flex: none;
|
| 211 |
-
transform: scale(0.9);
|
| 212 |
-
transition: 0.075s;
|
| 213 |
-
width: var(--size-9);
|
| 214 |
-
height: var(--size-9);
|
| 215 |
-
}
|
| 216 |
-
|
| 217 |
-
.thumbnail-small.selected {
|
| 218 |
-
--ring-color: var(--color-accent);
|
| 219 |
-
transform: scale(1);
|
| 220 |
-
border-color: var(--color-accent);
|
| 221 |
-
}
|
| 222 |
-
|
| 223 |
-
/**
|
| 224 |
-
* Styles for the grid wrapper containing the gallery items.
|
| 225 |
-
*/
|
| 226 |
-
.grid-wrap {
|
| 227 |
-
position: relative;
|
| 228 |
-
padding: var(--size-2);
|
| 229 |
-
overflow-y: auto;
|
| 230 |
-
}
|
| 231 |
-
|
| 232 |
-
.grid-wrap.fixed-height {
|
| 233 |
-
min-height: var(--size-80);
|
| 234 |
-
max-height: 65vh;
|
| 235 |
-
}
|
| 236 |
-
|
| 237 |
-
/**
|
| 238 |
-
* Styles for the grid container for multiple items.
|
| 239 |
-
*/
|
| 240 |
-
.grid-container {
|
| 241 |
-
display: grid;
|
| 242 |
-
position: relative;
|
| 243 |
-
grid-template-rows: repeat(var(--grid-rows), minmax(100px, 1fr));
|
| 244 |
-
grid-template-columns: repeat(var(--grid-cols), minmax(100px, 1fr));
|
| 245 |
-
grid-auto-rows: minmax(100px, 1fr);
|
| 246 |
-
gap: var(--spacing-lg);
|
| 247 |
-
}
|
| 248 |
-
|
| 249 |
-
/**
|
| 250 |
-
* Styles for single-item view wrapper.
|
| 251 |
-
*/
|
| 252 |
-
.single-item-wrapper {
|
| 253 |
-
display: flex;
|
| 254 |
-
align-items: center;
|
| 255 |
-
justify-content: center;
|
| 256 |
-
width: 100%;
|
| 257 |
-
height: 100%;
|
| 258 |
-
padding: var(--spacing-xxl);
|
| 259 |
-
box-sizing: border-box;
|
| 260 |
-
}
|
| 261 |
-
|
| 262 |
-
.single-item-wrapper .gallery-item-with-name {
|
| 263 |
-
width: 100%;
|
| 264 |
-
height: 100%;
|
| 265 |
-
max-width: min(300px, 80vw);
|
| 266 |
-
max-height: min(320px, calc(80vh - var(--size-4)));
|
| 267 |
-
display: flex;
|
| 268 |
-
flex-direction: column;
|
| 269 |
-
align-items: center;
|
| 270 |
-
}
|
| 271 |
-
|
| 272 |
-
.single-item-wrapper .gallery-item {
|
| 273 |
-
width: 100%;
|
| 274 |
-
height: 100%;
|
| 275 |
-
max-width: 100%;
|
| 276 |
-
max-height: 100%;
|
| 277 |
-
}
|
| 278 |
-
|
| 279 |
-
.single-item-wrapper .thumbnail-item.thumbnail-lg {
|
| 280 |
-
display: flex !important;
|
| 281 |
-
align-items: center !important;
|
| 282 |
-
justify-content: center !important;
|
| 283 |
-
}
|
| 284 |
-
|
| 285 |
-
.single-item-wrapper .thumbnail-filename {
|
| 286 |
-
height: var(--size-4);
|
| 287 |
-
line-height: var(--size-4);
|
| 288 |
-
}
|
| 289 |
-
|
| 290 |
-
.single-item-wrapper .thumbnail-lg > :global(img),
|
| 291 |
-
.single-item-wrapper .thumbnail-lg > :global(video) {
|
| 292 |
-
object-fit: var(--object-fit) !important;
|
| 293 |
-
}
|
| 294 |
-
|
| 295 |
-
/**
|
| 296 |
-
* Styles for large thumbnails in the grid or single-item view.
|
| 297 |
-
*/
|
| 298 |
-
.thumbnail-lg > :global(img),
|
| 299 |
-
.thumbnail-lg > :global(video) {
|
| 300 |
-
width: var(--size-full);
|
| 301 |
-
height: var(--size-full);
|
| 302 |
-
overflow: hidden;
|
| 303 |
-
object-fit: var(--object-fit);
|
| 304 |
-
}
|
| 305 |
-
|
| 306 |
-
.thumbnail-lg:hover .caption-label {
|
| 307 |
-
opacity: 0.5;
|
| 308 |
-
}
|
| 309 |
-
|
| 310 |
-
/**
|
| 311 |
-
* Styles for captions in the grid or single-item view.
|
| 312 |
-
*/
|
| 313 |
-
.caption-label {
|
| 314 |
-
position: absolute;
|
| 315 |
-
right: var(--block-label-margin);
|
| 316 |
-
bottom: var(--block-label-margin);
|
| 317 |
-
z-index: var(--layer-1);
|
| 318 |
-
border-top: 1px solid var(--border-color-primary);
|
| 319 |
-
border-left: 1px solid var(--border-color-primary);
|
| 320 |
-
border-radius: var(--block-label-radius);
|
| 321 |
-
background: var(--background-fill-secondary);
|
| 322 |
-
padding: var(--block-label-padding);
|
| 323 |
-
max-width: 80%;
|
| 324 |
-
overflow: hidden;
|
| 325 |
-
font-size: var(--block-label-text-size);
|
| 326 |
-
text-align: left;
|
| 327 |
-
text-overflow: ellipsis;
|
| 328 |
-
white-space: nowrap;
|
| 329 |
-
}
|
| 330 |
-
|
| 331 |
-
.grid-wrap.minimal {
|
| 332 |
-
padding: 0;
|
| 333 |
-
}
|
| 334 |
-
|
| 335 |
-
/**
|
| 336 |
-
* Styles for gallery items with associated filenames.
|
| 337 |
-
*/
|
| 338 |
-
.gallery-item-with-name {
|
| 339 |
-
display: flex;
|
| 340 |
-
flex-direction: column;
|
| 341 |
-
gap: var(--size-1);
|
| 342 |
-
width: 100%;
|
| 343 |
-
height: 100%;
|
| 344 |
-
}
|
| 345 |
-
|
| 346 |
-
.thumbnail-filename {
|
| 347 |
-
font-size: var(--text-xs);
|
| 348 |
-
color: var(--body-text-color);
|
| 349 |
-
text-align: center;
|
| 350 |
-
width: 100%;
|
| 351 |
-
overflow: hidden;
|
| 352 |
-
text-overflow: ellipsis;
|
| 353 |
-
white-space: nowrap;
|
| 354 |
-
padding: 0 var(--size-1);
|
| 355 |
-
}
|
| 356 |
-
|
| 357 |
-
.gallery-item {
|
| 358 |
-
position: relative;
|
| 359 |
-
width: 100%;
|
| 360 |
-
height: 100%;
|
| 361 |
-
}
|
| 362 |
-
|
| 363 |
-
/**
|
| 364 |
-
* Styles for the metadata popup displayed in preview mode.
|
| 365 |
-
*/
|
| 366 |
-
.metadata-popup {
|
| 367 |
-
position: fixed;
|
| 368 |
-
top: 50%;
|
| 369 |
-
left: 50%;
|
| 370 |
-
transform: translate(-50%, -50%);
|
| 371 |
-
background: var(--background-fill-primary, white);
|
| 372 |
-
border: 1px solid var(--border-color-primary);
|
| 373 |
-
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
|
| 374 |
-
z-index: 1000;
|
| 375 |
-
border-radius: 8px;
|
| 376 |
-
max-width: min(90%, 600px);
|
| 377 |
-
max-height: min(50vh, calc(100% - 2rem));
|
| 378 |
-
min-height: 200px;
|
| 379 |
-
display: flex;
|
| 380 |
-
flex-direction: column;
|
| 381 |
-
pointer-events: auto;
|
| 382 |
-
}
|
| 383 |
-
|
| 384 |
-
.popup-content {
|
| 385 |
-
padding: 1rem;
|
| 386 |
-
display: flex;
|
| 387 |
-
flex-direction: column;
|
| 388 |
-
width: 100%;
|
| 389 |
-
box-sizing: border-box;
|
| 390 |
-
overflow-y: auto;
|
| 391 |
-
position: relative;
|
| 392 |
-
}
|
| 393 |
-
|
| 394 |
-
.close-button {
|
| 395 |
-
position: absolute;
|
| 396 |
-
top: 0.5rem;
|
| 397 |
-
right: 0.5rem;
|
| 398 |
-
background: none;
|
| 399 |
-
border: none;
|
| 400 |
-
font-size: 1.25rem;
|
| 401 |
-
cursor: pointer;
|
| 402 |
-
z-index: 20;
|
| 403 |
-
color: var(--body-text-color);
|
| 404 |
-
padding: 0.25rem;
|
| 405 |
-
line-height: 1;
|
| 406 |
-
width: 24px;
|
| 407 |
-
height: 24px;
|
| 408 |
-
text-align: center;
|
| 409 |
-
}
|
| 410 |
-
|
| 411 |
-
.popup-title {
|
| 412 |
-
font-weight: bold;
|
| 413 |
-
margin: 0 0 1rem 0;
|
| 414 |
-
flex-shrink: 0;
|
| 415 |
-
padding-right: 2.5rem;
|
| 416 |
-
}
|
| 417 |
-
|
| 418 |
-
.metadata-table-container {
|
| 419 |
-
flex-grow: 1;
|
| 420 |
-
overflow-y: auto;
|
| 421 |
-
max-height: calc(100% - 5rem);
|
| 422 |
-
min-height: 0;
|
| 423 |
-
margin-bottom: 1rem;
|
| 424 |
-
}
|
| 425 |
-
|
| 426 |
-
.metadata-table {
|
| 427 |
-
width: 100%;
|
| 428 |
-
border-collapse: collapse;
|
| 429 |
-
table-layout: auto;
|
| 430 |
-
}
|
| 431 |
-
|
| 432 |
-
.metadata-label {
|
| 433 |
-
background: var(--background-fill-secondary, #f5f5f5);
|
| 434 |
-
padding: 0.5rem;
|
| 435 |
-
font-weight: bold;
|
| 436 |
-
text-align: left;
|
| 437 |
-
vertical-align: top;
|
| 438 |
-
width: 35%;
|
| 439 |
-
}
|
| 440 |
-
|
| 441 |
-
.metadata-value {
|
| 442 |
-
text-align: left;
|
| 443 |
-
padding: 0.5rem;
|
| 444 |
-
white-space: pre-wrap;
|
| 445 |
-
word-break: break-all;
|
| 446 |
-
vertical-align: top;
|
| 447 |
-
}
|
| 448 |
-
|
| 449 |
-
.load-metadata-button {
|
| 450 |
-
margin-top: 1rem;
|
| 451 |
-
padding: 0.5rem 1rem;
|
| 452 |
-
background-color: var(--button-primary-background-fill);
|
| 453 |
-
color: var(--button-primary-text-color);
|
| 454 |
-
border: none;
|
| 455 |
-
border-radius: 4px;
|
| 456 |
-
cursor: pointer;
|
| 457 |
-
align-self: center;
|
| 458 |
-
flex-shrink: 0;
|
| 459 |
-
}
|
| 460 |
-
|
| 461 |
-
.load-metadata-button:hover {
|
| 462 |
-
background-color: var(--button-primary-background-fill-hover);
|
| 463 |
-
}
|
| 464 |
-
|
| 465 |
-
.no-metadata-message {
|
| 466 |
-
flex-grow: 1;
|
| 467 |
-
display: flex;
|
| 468 |
-
align-items: center;
|
| 469 |
-
justify-content: center;
|
| 470 |
-
color: var(--body-text-color-subdued);
|
| 471 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
/**
|
| 2 |
* Styles for the gallery container, which holds the entire component.
|
| 3 |
*/
|
|
|
|
| 17 |
border-radius: var(--radius-lg);
|
| 18 |
}
|
| 19 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/frontend/shared/Gallery.svelte
CHANGED
|
@@ -650,27 +650,8 @@
|
|
| 650 |
</div>
|
| 651 |
{/if}
|
| 652 |
|
| 653 |
-
<style
|
| 654 |
-
|
| 655 |
-
* Styles for the gallery container, which holds the entire component.
|
| 656 |
-
*/
|
| 657 |
-
.gallery-container {
|
| 658 |
-
position: relative;
|
| 659 |
-
width: 100%;
|
| 660 |
-
height: 100%;
|
| 661 |
-
}
|
| 662 |
-
|
| 663 |
-
/**
|
| 664 |
-
* Styles for buttons to ensure they fill their container.
|
| 665 |
-
*/
|
| 666 |
-
button {
|
| 667 |
-
width: var(--size-full);
|
| 668 |
-
height: var(--size-full);
|
| 669 |
-
display: block;
|
| 670 |
-
border-radius: var(--radius-lg);
|
| 671 |
-
}
|
| 672 |
-
|
| 673 |
-
/**
|
| 674 |
* Styles for the preview mode, displaying a selected media item.
|
| 675 |
*/
|
| 676 |
.preview {
|
|
@@ -1074,7 +1055,7 @@
|
|
| 1074 |
.load-metadata-button {
|
| 1075 |
margin-top: 1rem;
|
| 1076 |
padding: 0.5rem 1rem;
|
| 1077 |
-
background-color: var(--button-primary-
|
| 1078 |
color: var(--button-primary-text-color);
|
| 1079 |
border: none;
|
| 1080 |
border-radius: 4px;
|
|
@@ -1095,5 +1076,4 @@
|
|
| 1095 |
color: var(--body-text-color-subdued);
|
| 1096 |
}
|
| 1097 |
|
| 1098 |
-
|
| 1099 |
</style>
|
|
|
|
| 650 |
</div>
|
| 651 |
{/if}
|
| 652 |
|
| 653 |
+
<style>
|
| 654 |
+
/**
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 655 |
* Styles for the preview mode, displaying a selected media item.
|
| 656 |
*/
|
| 657 |
.preview {
|
|
|
|
| 1055 |
.load-metadata-button {
|
| 1056 |
margin-top: 1rem;
|
| 1057 |
padding: 0.5rem 1rem;
|
| 1058 |
+
background-color: var(--button-primary-border-color);
|
| 1059 |
color: var(--button-primary-text-color);
|
| 1060 |
border: none;
|
| 1061 |
border-radius: 4px;
|
|
|
|
| 1076 |
color: var(--body-text-color-subdued);
|
| 1077 |
}
|
| 1078 |
|
|
|
|
| 1079 |
</style>
|
src/pyproject.toml
CHANGED
|
@@ -8,7 +8,7 @@ build-backend = "hatchling.build"
|
|
| 8 |
|
| 9 |
[project]
|
| 10 |
name = "gradio_mediagallery"
|
| 11 |
-
version = "0.0.
|
| 12 |
description = "Python library for easily interacting with trained machine learning models"
|
| 13 |
readme = "README.md"
|
| 14 |
license = "Apache-2.0"
|
|
|
|
| 8 |
|
| 9 |
[project]
|
| 10 |
name = "gradio_mediagallery"
|
| 11 |
+
version = "0.0.2"
|
| 12 |
description = "Python library for easily interacting with trained machine learning models"
|
| 13 |
readme = "README.md"
|
| 14 |
license = "Apache-2.0"
|