classicy 0.6.2 → 0.6.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +6 -3
- package/dist/Preview-DFWgeXbD.js +0 -87
- package/dist/Preview-DFWgeXbD.js.map +0 -1
- package/dist/classicy.css +0 -1
- package/dist/classicy.es.js +0 -34154
- package/dist/classicy.es.js.map +0 -1
- package/dist/classicy.umd.js +0 -3619
- package/dist/classicy.umd.js.map +0 -1
- package/dist/dash.all.min-DWS2dLrE.js +0 -18789
- package/dist/dash.all.min-DWS2dLrE.js.map +0 -1
- package/dist/hls-BoR3u0PC.js +0 -21705
- package/dist/hls-BoR3u0PC.js.map +0 -1
- package/dist/index-Cd0v-WM7.js +0 -15697
- package/dist/index-Cd0v-WM7.js.map +0 -1
- package/dist/mixin-CkMUTfmX.js +0 -731
- package/dist/mixin-CkMUTfmX.js.map +0 -1
- package/dist/react-BnzwZp9T.js +0 -357
- package/dist/react-BnzwZp9T.js.map +0 -1
- package/dist/react-BzHiAeII.js +0 -402
- package/dist/react-BzHiAeII.js.map +0 -1
- package/dist/react-Ct5L317G.js +0 -217
- package/dist/react-Ct5L317G.js.map +0 -1
- package/dist/react-DY0DOTNY.js +0 -356
- package/dist/react-DY0DOTNY.js.map +0 -1
- package/dist/react-D_7TFUvN.js +0 -437
- package/dist/react-D_7TFUvN.js.map +0 -1
- package/dist/react-Ql_PNI5h.js +0 -267
- package/dist/react-Ql_PNI5h.js.map +0 -1
- package/dist/react-_-oMoy3X.js +0 -503
- package/dist/react-_-oMoy3X.js.map +0 -1
- package/dist/react-b5Gp0-6S.js +0 -3067
- package/dist/react-b5Gp0-6S.js.map +0 -1
- package/dist/sounds/platinum/platinum.ac3 +0 -0
- package/dist/sounds/platinum/platinum.caf +0 -0
- package/dist/sounds/platinum/platinum.json +0 -174
- package/dist/sounds/platinum/platinum.m4a +0 -0
- package/dist/sounds/platinum/platinum.mp3 +0 -0
- package/dist/sounds/platinum/platinum.ogg +0 -0
- package/dist/sounds/platinum/platinum.wav +0 -0
- package/dist/types/assets/sounds/platinum/platinum.json.d.ts +0 -176
- package/dist/types/src/SystemFolder/ControlPanels/AppManager/ClassicyAppManager.d.ts +0 -98
- package/dist/types/src/SystemFolder/ControlPanels/AppManager/ClassicyAppManager.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/ControlPanels/AppManager/ClassicyAppManagerContext.d.ts +0 -9
- package/dist/types/src/SystemFolder/ControlPanels/AppManager/ClassicyAppManagerContext.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/ControlPanels/AppManager/ClassicyAppManagerUtils.d.ts +0 -7
- package/dist/types/src/SystemFolder/ControlPanels/AppManager/ClassicyAppManagerUtils.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/ControlPanels/AppearanceManager/ClassicyAppearance.d.ts +0 -120
- package/dist/types/src/SystemFolder/ControlPanels/AppearanceManager/ClassicyAppearance.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/ControlPanels/AppearanceManager/ClassicyAppearanceManager.d.ts +0 -3
- package/dist/types/src/SystemFolder/ControlPanels/AppearanceManager/ClassicyAppearanceManager.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/ControlPanels/AppearanceManager/ClassicyColors.d.ts +0 -3
- package/dist/types/src/SystemFolder/ControlPanels/AppearanceManager/ClassicyColors.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/ControlPanels/AppearanceManager/ClassicySize.d.ts +0 -5
- package/dist/types/src/SystemFolder/ControlPanels/AppearanceManager/ClassicySize.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/ControlPanels/AppearanceManager/styles/themes.json.d.ts +0 -1433
- package/dist/types/src/SystemFolder/ControlPanels/ClassicyControlPanels.d.ts +0 -2
- package/dist/types/src/SystemFolder/ControlPanels/ClassicyControlPanels.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/ControlPanels/DateAndTimeManager/ClassicyDateAndTimeManager.d.ts +0 -3
- package/dist/types/src/SystemFolder/ControlPanels/DateAndTimeManager/ClassicyDateAndTimeManager.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/ControlPanels/DateAndTimeManager/ClassicyDateAndTimeManagerUtils.d.ts +0 -3
- package/dist/types/src/SystemFolder/ControlPanels/DateAndTimeManager/ClassicyDateAndTimeManagerUtils.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/ControlPanels/SoundManager/ClassicySoundManager.d.ts +0 -3
- package/dist/types/src/SystemFolder/ControlPanels/SoundManager/ClassicySoundManager.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/ControlPanels/SoundManager/ClassicySoundManagerContext.d.ts +0 -79
- package/dist/types/src/SystemFolder/ControlPanels/SoundManager/ClassicySoundManagerContext.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/ControlPanels/SoundManager/ClassicySoundManagerLabels.json.d.ts +0 -185
- package/dist/types/src/SystemFolder/Finder/Finder.d.ts +0 -2
- package/dist/types/src/SystemFolder/Finder/Finder.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/Finder/FinderContext.d.ts +0 -3
- package/dist/types/src/SystemFolder/Finder/FinderContext.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/QuickTime/MoviePlayer/MoviePlayer.d.ts +0 -3
- package/dist/types/src/SystemFolder/QuickTime/MoviePlayer/MoviePlayer.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/QuickTime/MoviePlayer/MoviePlayerContext.d.ts +0 -16
- package/dist/types/src/SystemFolder/QuickTime/MoviePlayer/MoviePlayerContext.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/QuickTime/MoviePlayer/MoviePlayerUtils.d.ts +0 -14
- package/dist/types/src/SystemFolder/QuickTime/MoviePlayer/MoviePlayerUtils.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/QuickTime/PictureViewer/PictureViewer.d.ts +0 -13
- package/dist/types/src/SystemFolder/QuickTime/PictureViewer/PictureViewer.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/QuickTime/PictureViewer/PictureViewerContext.d.ts +0 -10
- package/dist/types/src/SystemFolder/QuickTime/PictureViewer/PictureViewerContext.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/AboutWindow/ClassicyAboutWindow.d.ts +0 -11
- package/dist/types/src/SystemFolder/SystemResources/AboutWindow/ClassicyAboutWindow.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/AboutWindow/ClassicyAboutWindowUtils.d.ts +0 -3
- package/dist/types/src/SystemFolder/SystemResources/AboutWindow/ClassicyAboutWindowUtils.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/Analytics/useClassicyAnalytics.d.ts +0 -27
- package/dist/types/src/SystemFolder/SystemResources/Analytics/useClassicyAnalytics.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/App/ClassicyApp.d.ts +0 -13
- package/dist/types/src/SystemFolder/SystemResources/App/ClassicyApp.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/App/ClassicyAppUtils.d.ts +0 -21
- package/dist/types/src/SystemFolder/SystemResources/App/ClassicyAppUtils.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/Boot/ClassicyBoot.d.ts +0 -3
- package/dist/types/src/SystemFolder/SystemResources/Boot/ClassicyBoot.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/Button/ClassicyButton.d.ts +0 -12
- package/dist/types/src/SystemFolder/SystemResources/Button/ClassicyButton.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/Checkbox/ClassicyCheckbox.d.ts +0 -12
- package/dist/types/src/SystemFolder/SystemResources/Checkbox/ClassicyCheckbox.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/ContextualMenu/ClassicyContextualMenu.d.ts +0 -10
- package/dist/types/src/SystemFolder/SystemResources/ContextualMenu/ClassicyContextualMenu.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/ControlGroup/ClassicyControlGroup.d.ts +0 -9
- package/dist/types/src/SystemFolder/SystemResources/ControlGroup/ClassicyControlGroup.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/ControlLabel/ClassicyControlLabel.d.ts +0 -17
- package/dist/types/src/SystemFolder/SystemResources/ControlLabel/ClassicyControlLabel.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/DatePicker/ClassicyDatePicker.d.ts +0 -14
- package/dist/types/src/SystemFolder/SystemResources/DatePicker/ClassicyDatePicker.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/DatePicker/ClassicyDatePickerUtils.d.ts +0 -3
- package/dist/types/src/SystemFolder/SystemResources/DatePicker/ClassicyDatePickerUtils.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/Desktop/ClassicyDesktop.d.ts +0 -7
- package/dist/types/src/SystemFolder/SystemResources/Desktop/ClassicyDesktop.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/Desktop/ClassicyDesktopIcon.d.ts +0 -14
- package/dist/types/src/SystemFolder/SystemResources/Desktop/ClassicyDesktopIcon.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/Desktop/ClassicyDesktopIconContext.d.ts +0 -5
- package/dist/types/src/SystemFolder/SystemResources/Desktop/ClassicyDesktopIconContext.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/Desktop/ClassicyDesktopManager.d.ts +0 -30
- package/dist/types/src/SystemFolder/SystemResources/Desktop/ClassicyDesktopManager.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/Desktop/ClassicyDesktopWindowManagerContext.d.ts +0 -108
- package/dist/types/src/SystemFolder/SystemResources/Desktop/ClassicyDesktopWindowManagerContext.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/Desktop/MenuBar/ClassicyDesktopMenuBar.d.ts +0 -3
- package/dist/types/src/SystemFolder/SystemResources/Desktop/MenuBar/ClassicyDesktopMenuBar.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/Desktop/MenuBar/Widgets/Sound/ClassicyDesktopMenuWidgetSound.d.ts +0 -7
- package/dist/types/src/SystemFolder/SystemResources/Desktop/MenuBar/Widgets/Sound/ClassicyDesktopMenuWidgetSound.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/Desktop/MenuBar/Widgets/Time/ClassicyDesktopMenuWidgetTime.d.ts +0 -3
- package/dist/types/src/SystemFolder/SystemResources/Desktop/MenuBar/Widgets/Time/ClassicyDesktopMenuWidgetTime.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/Disclosure/ClassicyDisclosure.d.ts +0 -10
- package/dist/types/src/SystemFolder/SystemResources/Disclosure/ClassicyDisclosure.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/File/ClassicyFileBrowser.d.ts +0 -13
- package/dist/types/src/SystemFolder/SystemResources/File/ClassicyFileBrowser.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/File/ClassicyFileBrowserUtils.d.ts +0 -7
- package/dist/types/src/SystemFolder/SystemResources/File/ClassicyFileBrowserUtils.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/File/ClassicyFileBrowserViewIcons.d.ts +0 -12
- package/dist/types/src/SystemFolder/SystemResources/File/ClassicyFileBrowserViewIcons.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/File/ClassicyFileBrowserViewTable.d.ts +0 -14
- package/dist/types/src/SystemFolder/SystemResources/File/ClassicyFileBrowserViewTable.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/File/ClassicyFileSystem.d.ts +0 -29
- package/dist/types/src/SystemFolder/SystemResources/File/ClassicyFileSystem.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/File/ClassicyFileSystemModel.d.ts +0 -37
- package/dist/types/src/SystemFolder/SystemResources/File/ClassicyFileSystemModel.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/File/DefaultClassicyFileSystem.d.ts +0 -94
- package/dist/types/src/SystemFolder/SystemResources/File/DefaultClassicyFileSystem.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/Icon/ClassicyIcon.d.ts +0 -14
- package/dist/types/src/SystemFolder/SystemResources/Icon/ClassicyIcon.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/Input/ClassicyInput.d.ts +0 -15
- package/dist/types/src/SystemFolder/SystemResources/Input/ClassicyInput.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/Menu/ClassicyMenu.d.ts +0 -29
- package/dist/types/src/SystemFolder/SystemResources/Menu/ClassicyMenu.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/PopUpMenu/ClassicyPopUpMenu.d.ts +0 -18
- package/dist/types/src/SystemFolder/SystemResources/PopUpMenu/ClassicyPopUpMenu.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/ProgressBar/ClassicyProgressBar.d.ts +0 -1
- package/dist/types/src/SystemFolder/SystemResources/ProgressBar/ClassicyProgressBar.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/QuickTime/QuickTimeMovieEmbed.d.ts +0 -16
- package/dist/types/src/SystemFolder/SystemResources/QuickTime/QuickTimeMovieEmbed.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/QuickTime/QuickTimeUtils.d.ts +0 -3
- package/dist/types/src/SystemFolder/SystemResources/QuickTime/QuickTimeUtils.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/RadioInput/ClassicyRadioInput.d.ts +0 -20
- package/dist/types/src/SystemFolder/SystemResources/RadioInput/ClassicyRadioInput.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/RichTextEditor/ClassicyRichTextEditor.d.ts +0 -9
- package/dist/types/src/SystemFolder/SystemResources/RichTextEditor/ClassicyRichTextEditor.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/Tabs/ClassicyTabs.d.ts +0 -11
- package/dist/types/src/SystemFolder/SystemResources/Tabs/ClassicyTabs.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/TextEditor/ClassicyTextEditor.d.ts +0 -1
- package/dist/types/src/SystemFolder/SystemResources/TextEditor/ClassicyTextEditor.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/TimePicker/ClassicyTimePicker.d.ts +0 -15
- package/dist/types/src/SystemFolder/SystemResources/TimePicker/ClassicyTimePicker.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/Window/ClassicyWindow.d.ts +0 -29
- package/dist/types/src/SystemFolder/SystemResources/Window/ClassicyWindow.d.ts.map +0 -1
- package/dist/types/src/SystemFolder/SystemResources/Window/ClassicyWindowContext.d.ts +0 -19
- package/dist/types/src/SystemFolder/SystemResources/Window/ClassicyWindowContext.d.ts.map +0 -1
- package/dist/types/src/index.d.ts +0 -58
- package/dist/types/src/index.d.ts.map +0 -1
- package/dist/types/vite.config.d.ts +0 -3
- package/dist/types/vite.config.d.ts.map +0 -1
package/dist/react-BzHiAeII.js
DELETED
|
@@ -1,402 +0,0 @@
|
|
|
1
|
-
import W from "react";
|
|
2
|
-
const L = "https://player.twitch.tv", x = /(?:www\.|go\.)?twitch\.tv\/(?:videos?\/|\?video=)(\d+)($|\?)/, U = /(?:www\.|go\.)?twitch\.tv\/([a-zA-Z0-9_]+)($|\?)/, $ = {
|
|
3
|
-
IDLE: "Idle",
|
|
4
|
-
ENDED: "Ended"
|
|
5
|
-
}, v = {
|
|
6
|
-
PAUSE: 2,
|
|
7
|
-
PLAY: 3,
|
|
8
|
-
SEEK: 4,
|
|
9
|
-
SET_MUTED: 10,
|
|
10
|
-
SET_VOLUME: 11
|
|
11
|
-
};
|
|
12
|
-
function N(e, t = {}) {
|
|
13
|
-
const i = {
|
|
14
|
-
src: O(e, t),
|
|
15
|
-
frameborder: "0",
|
|
16
|
-
width: "100%",
|
|
17
|
-
height: "100%",
|
|
18
|
-
allow: "accelerometer; fullscreen; autoplay; encrypted-media; picture-in-picture;",
|
|
19
|
-
sandbox: "allow-modals allow-scripts allow-same-origin allow-popups allow-popups-to-escape-sandbox",
|
|
20
|
-
scrolling: "no"
|
|
21
|
-
};
|
|
22
|
-
return t.config && (i["data-config"] = JSON.stringify(t.config)), /*html*/
|
|
23
|
-
`
|
|
24
|
-
<style>
|
|
25
|
-
:host {
|
|
26
|
-
display: inline-block;
|
|
27
|
-
min-width: 300px;
|
|
28
|
-
min-height: 150px;
|
|
29
|
-
position: relative;
|
|
30
|
-
}
|
|
31
|
-
iframe {
|
|
32
|
-
position: absolute;
|
|
33
|
-
top: 0;
|
|
34
|
-
left: 0;
|
|
35
|
-
width: 100%;
|
|
36
|
-
height: 100%;
|
|
37
|
-
}
|
|
38
|
-
:host(:not([controls])) {
|
|
39
|
-
pointer-events: none;
|
|
40
|
-
}
|
|
41
|
-
</style>
|
|
42
|
-
<iframe${B(i)}></iframe>
|
|
43
|
-
`;
|
|
44
|
-
}
|
|
45
|
-
function O(e, t) {
|
|
46
|
-
var i;
|
|
47
|
-
if (!e.src) return;
|
|
48
|
-
const s = e.src.match(x), l = e.src.match(U), u = {
|
|
49
|
-
parent: (i = globalThis.location) == null ? void 0 : i.hostname,
|
|
50
|
-
// ?controls=true is enabled by default in the iframe
|
|
51
|
-
controls: e.controls === "" ? null : !1,
|
|
52
|
-
autoplay: e.autoplay === "" ? null : !1,
|
|
53
|
-
muted: e.muted,
|
|
54
|
-
preload: e.preload,
|
|
55
|
-
...t.config
|
|
56
|
-
};
|
|
57
|
-
if (s) {
|
|
58
|
-
const r = s[1];
|
|
59
|
-
return `${L}/?video=v${r}&${k(u)}`;
|
|
60
|
-
} else if (l) {
|
|
61
|
-
const r = l[1];
|
|
62
|
-
return `${L}/?channel=${r}&${k(u)}`;
|
|
63
|
-
}
|
|
64
|
-
return "";
|
|
65
|
-
}
|
|
66
|
-
class D extends (globalThis.HTMLElement ?? class {
|
|
67
|
-
}) {
|
|
68
|
-
static getTemplateHTML = N;
|
|
69
|
-
static shadowRootOptions = { mode: "open" };
|
|
70
|
-
static observedAttributes = ["autoplay", "controls", "loop", "muted", "playsinline", "preload", "src"];
|
|
71
|
-
loadComplete = new H();
|
|
72
|
-
#o;
|
|
73
|
-
#r;
|
|
74
|
-
#e;
|
|
75
|
-
#t = {};
|
|
76
|
-
#h = 0;
|
|
77
|
-
#a = !1;
|
|
78
|
-
#l = 1;
|
|
79
|
-
#u = !this.autoplay;
|
|
80
|
-
#s = !1;
|
|
81
|
-
#n = 0;
|
|
82
|
-
#c = null;
|
|
83
|
-
constructor() {
|
|
84
|
-
super(), this.#f("config");
|
|
85
|
-
}
|
|
86
|
-
get config() {
|
|
87
|
-
return this.#c;
|
|
88
|
-
}
|
|
89
|
-
set config(t) {
|
|
90
|
-
this.#c = t;
|
|
91
|
-
}
|
|
92
|
-
async load() {
|
|
93
|
-
if (this.#o) return;
|
|
94
|
-
this.shadowRoot || this.attachShadow({ mode: "open" });
|
|
95
|
-
const t = !this.#r;
|
|
96
|
-
if (this.#r && (this.loadComplete = new H()), this.#r = !0, await (this.#o = Promise.resolve()), this.#o = null, this.#n = 0, this.dispatchEvent(new Event("emptied")), !this.src) {
|
|
97
|
-
this.shadowRoot.innerHTML = "", globalThis.removeEventListener("message", this.#d);
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
this.dispatchEvent(new Event("loadstart"));
|
|
101
|
-
let i = this.shadowRoot.querySelector("iframe");
|
|
102
|
-
const s = j(this.attributes);
|
|
103
|
-
t && i && (this.#c = JSON.parse(i.getAttribute("data-config") || "{}")), (!i?.src || i.src !== O(s, this)) && (this.shadowRoot.innerHTML = N(s, this), i = this.shadowRoot.querySelector("iframe")), this.#e = i, globalThis.addEventListener("message", this.#d);
|
|
104
|
-
}
|
|
105
|
-
attributeChangedCallback(t, i, s) {
|
|
106
|
-
if (i !== s)
|
|
107
|
-
switch (t) {
|
|
108
|
-
case "src":
|
|
109
|
-
case "controls": {
|
|
110
|
-
this.load();
|
|
111
|
-
break;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
getVideoPlaybackQuality() {
|
|
116
|
-
return this.#t.stats.videoStats;
|
|
117
|
-
}
|
|
118
|
-
get src() {
|
|
119
|
-
return this.getAttribute("src");
|
|
120
|
-
}
|
|
121
|
-
set src(t) {
|
|
122
|
-
this.setAttribute("src", t);
|
|
123
|
-
}
|
|
124
|
-
get readyState() {
|
|
125
|
-
return this.#n;
|
|
126
|
-
}
|
|
127
|
-
get seeking() {
|
|
128
|
-
return this.#s;
|
|
129
|
-
}
|
|
130
|
-
get buffered() {
|
|
131
|
-
var t, i;
|
|
132
|
-
return F(0, ((i = (t = this.#t.stats) == null ? void 0 : t.videoStats) == null ? void 0 : i.bufferSize) ?? 0);
|
|
133
|
-
}
|
|
134
|
-
get paused() {
|
|
135
|
-
return this.#t.playback ? this.#t.playback === $.IDLE : this.#u;
|
|
136
|
-
}
|
|
137
|
-
get ended() {
|
|
138
|
-
return this.#t.playback ? this.#t.playback === $.ENDED : !1;
|
|
139
|
-
}
|
|
140
|
-
get duration() {
|
|
141
|
-
return this.#t.duration ?? NaN;
|
|
142
|
-
}
|
|
143
|
-
get autoplay() {
|
|
144
|
-
return this.hasAttribute("autoplay");
|
|
145
|
-
}
|
|
146
|
-
set autoplay(t) {
|
|
147
|
-
this.autoplay != t && this.toggleAttribute("autoplay", !!t);
|
|
148
|
-
}
|
|
149
|
-
get controls() {
|
|
150
|
-
return this.hasAttribute("controls");
|
|
151
|
-
}
|
|
152
|
-
set controls(t) {
|
|
153
|
-
this.controls != t && this.toggleAttribute("controls", !!t);
|
|
154
|
-
}
|
|
155
|
-
get currentTime() {
|
|
156
|
-
return this.#t.currentTime ? this.#t.currentTime : this.#h;
|
|
157
|
-
}
|
|
158
|
-
set currentTime(t) {
|
|
159
|
-
this.#h = t, this.loadComplete.then(() => {
|
|
160
|
-
this.#i(v.SEEK, t);
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
get defaultMuted() {
|
|
164
|
-
return this.hasAttribute("muted");
|
|
165
|
-
}
|
|
166
|
-
set defaultMuted(t) {
|
|
167
|
-
this.toggleAttribute("muted", !!t);
|
|
168
|
-
}
|
|
169
|
-
get loop() {
|
|
170
|
-
return this.hasAttribute("loop");
|
|
171
|
-
}
|
|
172
|
-
set loop(t) {
|
|
173
|
-
this.toggleAttribute("loop", !!t);
|
|
174
|
-
}
|
|
175
|
-
get muted() {
|
|
176
|
-
return this.#a;
|
|
177
|
-
}
|
|
178
|
-
set muted(t) {
|
|
179
|
-
this.#a = t, this.loadComplete.then(() => {
|
|
180
|
-
this.#i(v.SET_MUTED, t);
|
|
181
|
-
});
|
|
182
|
-
}
|
|
183
|
-
get volume() {
|
|
184
|
-
return this.#l;
|
|
185
|
-
}
|
|
186
|
-
set volume(t) {
|
|
187
|
-
this.#l = t, this.loadComplete.then(() => {
|
|
188
|
-
this.#i(v.SET_VOLUME, t);
|
|
189
|
-
});
|
|
190
|
-
}
|
|
191
|
-
get playsInline() {
|
|
192
|
-
return this.hasAttribute("playsinline");
|
|
193
|
-
}
|
|
194
|
-
set playsInline(t) {
|
|
195
|
-
this.toggleAttribute("playsinline", !!t);
|
|
196
|
-
}
|
|
197
|
-
play() {
|
|
198
|
-
this.#u = !1, this.#i(v.PLAY);
|
|
199
|
-
}
|
|
200
|
-
pause() {
|
|
201
|
-
this.#u = !0, this.#i(v.PAUSE);
|
|
202
|
-
}
|
|
203
|
-
#d = async (t) => {
|
|
204
|
-
var i, s, l, u;
|
|
205
|
-
if (!this.#e.contentWindow) return;
|
|
206
|
-
const { data: r, source: b } = t;
|
|
207
|
-
if (b === this.#e.contentWindow) {
|
|
208
|
-
if (r.namespace === "twitch-embed")
|
|
209
|
-
await new Promise((p) => setTimeout(p, 10)), r.eventName === "ready" ? (this.dispatchEvent(new Event("loadcomplete")), this.loadComplete.resolve(), this.#n = 1, this.dispatchEvent(new Event("loadedmetadata"))) : r.eventName === "seek" ? (this.#s = !0, this.dispatchEvent(new Event("seeking"))) : r.eventName === "playing" ? (this.#s && (this.#s = !1, this.dispatchEvent(new Event("seeked"))), this.#n = 3, this.dispatchEvent(new Event("playing"))) : this.dispatchEvent(new Event(r.eventName));
|
|
210
|
-
else if (r.namespace === "twitch-embed-player-proxy" && r.eventName === "UPDATE_STATE") {
|
|
211
|
-
const p = this.#t.duration, g = this.#t.currentTime, f = this.#t.volume, w = this.#t.muted, E = (s = (i = this.#t.stats) == null ? void 0 : i.videoStats) == null ? void 0 : s.bufferSize;
|
|
212
|
-
this.#t = { ...this.#t, ...r.params }, p !== this.#t.duration && this.dispatchEvent(new Event("durationchange")), g !== this.#t.currentTime && this.dispatchEvent(new Event("timeupdate")), (f !== this.#t.volume || w !== this.#t.muted) && (this.#t.volume !== void 0 && (this.#l = this.#t.volume), this.#t.muted !== void 0 && (this.#a = this.#t.muted), this.dispatchEvent(new Event("volumechange"))), E !== ((u = (l = this.#t.stats) == null ? void 0 : l.videoStats) == null ? void 0 : u.bufferSize) && this.dispatchEvent(new Event("progress"));
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
};
|
|
216
|
-
#i(t, i) {
|
|
217
|
-
if (!this.#e.contentWindow) return;
|
|
218
|
-
const s = {
|
|
219
|
-
eventName: t,
|
|
220
|
-
params: i,
|
|
221
|
-
namespace: "twitch-embed-player-proxy"
|
|
222
|
-
};
|
|
223
|
-
this.#e.contentWindow.postMessage(s, L);
|
|
224
|
-
}
|
|
225
|
-
// This is a pattern to update property values that are set before
|
|
226
|
-
// the custom element is upgraded.
|
|
227
|
-
// https://web.dev/custom-elements-best-practices/#make-properties-lazy
|
|
228
|
-
#f(t) {
|
|
229
|
-
if (Object.prototype.hasOwnProperty.call(this, t)) {
|
|
230
|
-
const i = this[t];
|
|
231
|
-
delete this[t], this[t] = i;
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
function j(e) {
|
|
236
|
-
let t = {};
|
|
237
|
-
for (let i of e)
|
|
238
|
-
t[i.name] = i.value;
|
|
239
|
-
return t;
|
|
240
|
-
}
|
|
241
|
-
function B(e) {
|
|
242
|
-
let t = "";
|
|
243
|
-
for (const i in e) {
|
|
244
|
-
const s = e[i];
|
|
245
|
-
s === "" ? t += ` ${_(i)}` : t += ` ${_(i)}="${_(`${s}`)}"`;
|
|
246
|
-
}
|
|
247
|
-
return t;
|
|
248
|
-
}
|
|
249
|
-
function _(e) {
|
|
250
|
-
return e.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'").replace(/`/g, "`");
|
|
251
|
-
}
|
|
252
|
-
function k(e) {
|
|
253
|
-
return String(new URLSearchParams(z(e)));
|
|
254
|
-
}
|
|
255
|
-
function z(e) {
|
|
256
|
-
let t = {};
|
|
257
|
-
for (let i in e) {
|
|
258
|
-
let s = e[i];
|
|
259
|
-
s === !0 || s === "" ? t[i] = !0 : s === !1 ? t[i] = !1 : s != null && (t[i] = s);
|
|
260
|
-
}
|
|
261
|
-
return t;
|
|
262
|
-
}
|
|
263
|
-
let H = class extends Promise {
|
|
264
|
-
constructor(t = () => {
|
|
265
|
-
}) {
|
|
266
|
-
let i, s;
|
|
267
|
-
super((l, u) => {
|
|
268
|
-
t(l, u), i = l, s = u;
|
|
269
|
-
}), this.resolve = i, this.reject = s;
|
|
270
|
-
}
|
|
271
|
-
};
|
|
272
|
-
function F(e, t) {
|
|
273
|
-
return Array.isArray(e) ? M(e) : t == null || t === 0 ? M([[0, 0]]) : M([[e, t]]);
|
|
274
|
-
}
|
|
275
|
-
function M(e) {
|
|
276
|
-
return Object.defineProperties(e, {
|
|
277
|
-
start: {
|
|
278
|
-
value: (t) => e[t][0]
|
|
279
|
-
},
|
|
280
|
-
end: {
|
|
281
|
-
value: (t) => e[t][1]
|
|
282
|
-
}
|
|
283
|
-
}), e;
|
|
284
|
-
}
|
|
285
|
-
globalThis.customElements && !globalThis.customElements.get("twitch-video") && globalThis.customElements.define("twitch-video", D);
|
|
286
|
-
var q = D, V = /* @__PURE__ */ new Set([
|
|
287
|
-
"style",
|
|
288
|
-
"children",
|
|
289
|
-
"ref",
|
|
290
|
-
"key",
|
|
291
|
-
"suppressContentEditableWarning",
|
|
292
|
-
"suppressHydrationWarning",
|
|
293
|
-
"dangerouslySetInnerHTML"
|
|
294
|
-
]), J = {
|
|
295
|
-
className: "class",
|
|
296
|
-
htmlFor: "for"
|
|
297
|
-
};
|
|
298
|
-
function I(e) {
|
|
299
|
-
return e.toLowerCase();
|
|
300
|
-
}
|
|
301
|
-
function R(e) {
|
|
302
|
-
if (typeof e == "boolean") return e ? "" : void 0;
|
|
303
|
-
if (typeof e != "function" && !(typeof e == "object" && e !== null))
|
|
304
|
-
return e;
|
|
305
|
-
}
|
|
306
|
-
function K({
|
|
307
|
-
react: e,
|
|
308
|
-
tagName: t,
|
|
309
|
-
elementClass: i,
|
|
310
|
-
events: s,
|
|
311
|
-
displayName: l,
|
|
312
|
-
defaultProps: u,
|
|
313
|
-
toAttributeName: r = I,
|
|
314
|
-
toAttributeValue: b = R
|
|
315
|
-
}) {
|
|
316
|
-
const T = Number.parseInt(e.version) >= 19, p = e.forwardRef((g, f) => {
|
|
317
|
-
var w, E;
|
|
318
|
-
const c = e.useRef(null), A = e.useRef(/* @__PURE__ */ new Map()), S = {}, P = {}, h = {}, y = {};
|
|
319
|
-
for (const [n, o] of Object.entries(g)) {
|
|
320
|
-
if (V.has(n)) {
|
|
321
|
-
h[n] = o;
|
|
322
|
-
continue;
|
|
323
|
-
}
|
|
324
|
-
const a = r(J[n] ?? n);
|
|
325
|
-
if (i.prototype && n in i.prototype && !(n in (((w = globalThis.HTMLElement) == null ? void 0 : w.prototype) ?? {})) && !((E = i.observedAttributes) != null && E.some((m) => m === a))) {
|
|
326
|
-
y[n] = o;
|
|
327
|
-
continue;
|
|
328
|
-
}
|
|
329
|
-
if (n.startsWith("on")) {
|
|
330
|
-
S[n] = o;
|
|
331
|
-
continue;
|
|
332
|
-
}
|
|
333
|
-
const d = b(o);
|
|
334
|
-
if (a && d != null && (P[a] = String(d), T || (h[a] = d)), a && T) {
|
|
335
|
-
const m = R(o);
|
|
336
|
-
d !== m ? h[a] = d : h[a] = o;
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
if (typeof window < "u") {
|
|
340
|
-
for (const n in S) {
|
|
341
|
-
const o = S[n], a = n.endsWith("Capture"), d = (s?.[n] ?? n.slice(2).toLowerCase()).slice(
|
|
342
|
-
0,
|
|
343
|
-
a ? -7 : void 0
|
|
344
|
-
);
|
|
345
|
-
e.useLayoutEffect(() => {
|
|
346
|
-
const m = c?.current;
|
|
347
|
-
if (!(!m || typeof o != "function"))
|
|
348
|
-
return m.addEventListener(d, o, a), () => {
|
|
349
|
-
m.removeEventListener(d, o, a);
|
|
350
|
-
};
|
|
351
|
-
}, [c?.current, o]);
|
|
352
|
-
}
|
|
353
|
-
e.useLayoutEffect(() => {
|
|
354
|
-
if (c.current === null) return;
|
|
355
|
-
const n = /* @__PURE__ */ new Map();
|
|
356
|
-
for (const o in y)
|
|
357
|
-
C(c.current, o, y[o]), A.current.delete(o), n.set(o, y[o]);
|
|
358
|
-
for (const [o, a] of A.current)
|
|
359
|
-
C(c.current, o, void 0);
|
|
360
|
-
A.current = n;
|
|
361
|
-
});
|
|
362
|
-
}
|
|
363
|
-
if (typeof window > "u" && i?.getTemplateHTML && i?.shadowRootOptions) {
|
|
364
|
-
const { mode: n, delegatesFocus: o } = i.shadowRootOptions, a = e.createElement("template", {
|
|
365
|
-
shadowrootmode: n,
|
|
366
|
-
shadowrootdelegatesfocus: o,
|
|
367
|
-
dangerouslySetInnerHTML: {
|
|
368
|
-
__html: i.getTemplateHTML(P, g)
|
|
369
|
-
},
|
|
370
|
-
key: "ce-la-react-ssr-template-shadow-root"
|
|
371
|
-
});
|
|
372
|
-
h.children = [a, h.children];
|
|
373
|
-
}
|
|
374
|
-
return e.createElement(t, {
|
|
375
|
-
...u,
|
|
376
|
-
...h,
|
|
377
|
-
ref: e.useCallback(
|
|
378
|
-
(n) => {
|
|
379
|
-
c.current = n, typeof f == "function" ? f(n) : f !== null && (f.current = n);
|
|
380
|
-
},
|
|
381
|
-
[f]
|
|
382
|
-
)
|
|
383
|
-
}, h.children);
|
|
384
|
-
});
|
|
385
|
-
return p.displayName = l ?? i.name, p;
|
|
386
|
-
}
|
|
387
|
-
function C(e, t, i) {
|
|
388
|
-
var s;
|
|
389
|
-
e[t] = i, i == null && t in (((s = globalThis.HTMLElement) == null ? void 0 : s.prototype) ?? {}) && e.removeAttribute(t);
|
|
390
|
-
}
|
|
391
|
-
var Z = K({
|
|
392
|
-
react: W,
|
|
393
|
-
tagName: "twitch-video",
|
|
394
|
-
elementClass: q,
|
|
395
|
-
toAttributeName(e) {
|
|
396
|
-
return e === "muted" ? "" : e === "defaultMuted" ? "muted" : I(e);
|
|
397
|
-
}
|
|
398
|
-
});
|
|
399
|
-
export {
|
|
400
|
-
Z as default
|
|
401
|
-
};
|
|
402
|
-
//# sourceMappingURL=react-BzHiAeII.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"react-BzHiAeII.js","sources":["../node_modules/twitch-video-element/dist/twitch-video-element.js","../node_modules/twitch-video-element/dist/react.js"],"sourcesContent":["const EMBED_BASE = \"https://player.twitch.tv\";\nconst MATCH_VIDEO = /(?:www\\.|go\\.)?twitch\\.tv\\/(?:videos?\\/|\\?video=)(\\d+)($|\\?)/;\nconst MATCH_CHANNEL = /(?:www\\.|go\\.)?twitch\\.tv\\/([a-zA-Z0-9_]+)($|\\?)/;\nconst PlaybackState = {\n IDLE: \"Idle\",\n READY: \"Ready\",\n BUFFERING: \"Buffering\",\n PLAYING: \"Playing\",\n ENDED: \"Ended\"\n};\nconst PlayerCommands = {\n DISABLE_CAPTIONS: 0,\n ENABLE_CAPTIONS: 1,\n PAUSE: 2,\n PLAY: 3,\n SEEK: 4,\n SET_CHANNEL: 5,\n SET_CHANNEL_ID: 6,\n SET_COLLECTION: 7,\n SET_QUALITY: 8,\n SET_VIDEO: 9,\n SET_MUTED: 10,\n SET_VOLUME: 11\n};\nfunction getTemplateHTML(attrs, props = {}) {\n const iframeAttrs = {\n src: serializeIframeUrl(attrs, props),\n frameborder: \"0\",\n width: \"100%\",\n height: \"100%\",\n allow: \"accelerometer; fullscreen; autoplay; encrypted-media; picture-in-picture;\",\n sandbox: \"allow-modals allow-scripts allow-same-origin allow-popups allow-popups-to-escape-sandbox\",\n scrolling: \"no\"\n };\n if (props.config) {\n iframeAttrs[\"data-config\"] = JSON.stringify(props.config);\n }\n return (\n /*html*/\n `\n <style>\n :host {\n display: inline-block;\n min-width: 300px;\n min-height: 150px;\n position: relative;\n }\n iframe {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n }\n :host(:not([controls])) {\n pointer-events: none;\n }\n </style>\n <iframe${serializeAttributes(iframeAttrs)}></iframe>\n `\n );\n}\nfunction serializeIframeUrl(attrs, props) {\n var _a;\n if (!attrs.src) return;\n const videoMatch = attrs.src.match(MATCH_VIDEO);\n const channelMatch = attrs.src.match(MATCH_CHANNEL);\n const params = {\n parent: (_a = globalThis.location) == null ? void 0 : _a.hostname,\n // ?controls=true is enabled by default in the iframe\n controls: attrs.controls === \"\" ? null : false,\n autoplay: attrs.autoplay === \"\" ? null : false,\n muted: attrs.muted,\n preload: attrs.preload,\n ...props.config\n };\n if (videoMatch) {\n const videoId = videoMatch[1];\n return `${EMBED_BASE}/?video=v${videoId}&${serialize(params)}`;\n } else if (channelMatch) {\n const channel = channelMatch[1];\n return `${EMBED_BASE}/?channel=${channel}&${serialize(params)}`;\n }\n return \"\";\n}\nclass TwitchVideoElement extends (globalThis.HTMLElement ?? class {\n}) {\n static getTemplateHTML = getTemplateHTML;\n static shadowRootOptions = { mode: \"open\" };\n static observedAttributes = [\"autoplay\", \"controls\", \"loop\", \"muted\", \"playsinline\", \"preload\", \"src\"];\n loadComplete = new PublicPromise();\n #loadRequested;\n #hasLoaded;\n #iframe;\n #playerState = {};\n #currentTime = 0;\n #muted = false;\n #volume = 1;\n #paused = !this.autoplay;\n #seeking = false;\n #readyState = 0;\n #config = null;\n constructor() {\n super();\n this.#upgradeProperty(\"config\");\n }\n get config() {\n return this.#config;\n }\n set config(value) {\n this.#config = value;\n }\n async load() {\n if (this.#loadRequested) return;\n if (!this.shadowRoot) {\n this.attachShadow({ mode: \"open\" });\n }\n const isFirstLoad = !this.#hasLoaded;\n if (this.#hasLoaded) {\n this.loadComplete = new PublicPromise();\n }\n this.#hasLoaded = true;\n await (this.#loadRequested = Promise.resolve());\n this.#loadRequested = null;\n this.#readyState = 0;\n this.dispatchEvent(new Event(\"emptied\"));\n if (!this.src) {\n this.shadowRoot.innerHTML = \"\";\n globalThis.removeEventListener(\"message\", this.#onMessage);\n return;\n }\n this.dispatchEvent(new Event(\"loadstart\"));\n let iframe = this.shadowRoot.querySelector(\"iframe\");\n const attrs = namedNodeMapToObject(this.attributes);\n if (isFirstLoad && iframe) {\n this.#config = JSON.parse(iframe.getAttribute(\"data-config\") || \"{}\");\n }\n if (!(iframe == null ? void 0 : iframe.src) || iframe.src !== serializeIframeUrl(attrs, this)) {\n this.shadowRoot.innerHTML = getTemplateHTML(attrs, this);\n iframe = this.shadowRoot.querySelector(\"iframe\");\n }\n this.#iframe = iframe;\n globalThis.addEventListener(\"message\", this.#onMessage);\n }\n attributeChangedCallback(attrName, oldValue, newValue) {\n if (oldValue === newValue) return;\n switch (attrName) {\n case \"src\":\n case \"controls\": {\n this.load();\n break;\n }\n }\n }\n getVideoPlaybackQuality() {\n return this.#playerState.stats.videoStats;\n }\n get src() {\n return this.getAttribute(\"src\");\n }\n set src(value) {\n this.setAttribute(\"src\", value);\n }\n get readyState() {\n return this.#readyState;\n }\n get seeking() {\n return this.#seeking;\n }\n get buffered() {\n var _a, _b;\n return createTimeRanges(0, ((_b = (_a = this.#playerState.stats) == null ? void 0 : _a.videoStats) == null ? void 0 : _b.bufferSize) ?? 0);\n }\n get paused() {\n if (!this.#playerState.playback) return this.#paused;\n return this.#playerState.playback === PlaybackState.IDLE;\n }\n get ended() {\n if (!this.#playerState.playback) return false;\n return this.#playerState.playback === PlaybackState.ENDED;\n }\n get duration() {\n return this.#playerState.duration ?? NaN;\n }\n get autoplay() {\n return this.hasAttribute(\"autoplay\");\n }\n set autoplay(val) {\n if (this.autoplay == val) return;\n this.toggleAttribute(\"autoplay\", Boolean(val));\n }\n get controls() {\n return this.hasAttribute(\"controls\");\n }\n set controls(val) {\n if (this.controls == val) return;\n this.toggleAttribute(\"controls\", Boolean(val));\n }\n get currentTime() {\n if (!this.#playerState.currentTime) return this.#currentTime;\n return this.#playerState.currentTime;\n }\n set currentTime(val) {\n this.#currentTime = val;\n this.loadComplete.then(() => {\n this.#sendCommand(PlayerCommands.SEEK, val);\n });\n }\n get defaultMuted() {\n return this.hasAttribute(\"muted\");\n }\n set defaultMuted(val) {\n this.toggleAttribute(\"muted\", Boolean(val));\n }\n get loop() {\n return this.hasAttribute(\"loop\");\n }\n set loop(val) {\n this.toggleAttribute(\"loop\", Boolean(val));\n }\n get muted() {\n return this.#muted;\n }\n set muted(val) {\n this.#muted = val;\n this.loadComplete.then(() => {\n this.#sendCommand(PlayerCommands.SET_MUTED, val);\n });\n }\n get volume() {\n return this.#volume;\n }\n set volume(val) {\n this.#volume = val;\n this.loadComplete.then(() => {\n this.#sendCommand(PlayerCommands.SET_VOLUME, val);\n });\n }\n get playsInline() {\n return this.hasAttribute(\"playsinline\");\n }\n set playsInline(val) {\n this.toggleAttribute(\"playsinline\", Boolean(val));\n }\n play() {\n this.#paused = false;\n this.#sendCommand(PlayerCommands.PLAY);\n }\n pause() {\n this.#paused = true;\n this.#sendCommand(PlayerCommands.PAUSE);\n }\n #onMessage = async (event) => {\n var _a, _b, _c, _d;\n if (!this.#iframe.contentWindow) return;\n const { data, source } = event;\n const isFromEmbedWindow = source === this.#iframe.contentWindow;\n if (!isFromEmbedWindow) return;\n if (data.namespace === \"twitch-embed\") {\n await new Promise((resolve) => setTimeout(resolve, 10));\n if (data.eventName === \"ready\") {\n this.dispatchEvent(new Event(\"loadcomplete\"));\n this.loadComplete.resolve();\n this.#readyState = 1;\n this.dispatchEvent(new Event(\"loadedmetadata\"));\n } else if (data.eventName === \"seek\") {\n this.#seeking = true;\n this.dispatchEvent(new Event(\"seeking\"));\n } else if (data.eventName === \"playing\") {\n if (this.#seeking) {\n this.#seeking = false;\n this.dispatchEvent(new Event(\"seeked\"));\n }\n this.#readyState = 3;\n this.dispatchEvent(new Event(\"playing\"));\n } else {\n this.dispatchEvent(new Event(data.eventName));\n }\n } else if (data.namespace === \"twitch-embed-player-proxy\" && data.eventName === \"UPDATE_STATE\") {\n const oldDuration = this.#playerState.duration;\n const oldCurrentTime = this.#playerState.currentTime;\n const oldVolume = this.#playerState.volume;\n const oldMuted = this.#playerState.muted;\n const oldBuffered = (_b = (_a = this.#playerState.stats) == null ? void 0 : _a.videoStats) == null ? void 0 : _b.bufferSize;\n this.#playerState = { ...this.#playerState, ...data.params };\n if (oldDuration !== this.#playerState.duration) {\n this.dispatchEvent(new Event(\"durationchange\"));\n }\n if (oldCurrentTime !== this.#playerState.currentTime) {\n this.dispatchEvent(new Event(\"timeupdate\"));\n }\n if (oldVolume !== this.#playerState.volume || oldMuted !== this.#playerState.muted) {\n if (this.#playerState.volume !== void 0) {\n this.#volume = this.#playerState.volume;\n }\n if (this.#playerState.muted !== void 0) {\n this.#muted = this.#playerState.muted;\n }\n this.dispatchEvent(new Event(\"volumechange\"));\n }\n if (oldBuffered !== ((_d = (_c = this.#playerState.stats) == null ? void 0 : _c.videoStats) == null ? void 0 : _d.bufferSize)) {\n this.dispatchEvent(new Event(\"progress\"));\n }\n }\n };\n #sendCommand(command, params) {\n if (!this.#iframe.contentWindow) return;\n const message = {\n eventName: command,\n params,\n namespace: \"twitch-embed-player-proxy\"\n };\n this.#iframe.contentWindow.postMessage(message, EMBED_BASE);\n }\n // This is a pattern to update property values that are set before\n // the custom element is upgraded.\n // https://web.dev/custom-elements-best-practices/#make-properties-lazy\n #upgradeProperty(prop) {\n if (Object.prototype.hasOwnProperty.call(this, prop)) {\n const value = this[prop];\n delete this[prop];\n this[prop] = value;\n }\n }\n}\nfunction namedNodeMapToObject(namedNodeMap) {\n let obj = {};\n for (let attr of namedNodeMap) {\n obj[attr.name] = attr.value;\n }\n return obj;\n}\nfunction serializeAttributes(attrs) {\n let html = \"\";\n for (const key in attrs) {\n const value = attrs[key];\n if (value === \"\") html += ` ${escapeHtml(key)}`;\n else html += ` ${escapeHtml(key)}=\"${escapeHtml(`${value}`)}\"`;\n }\n return html;\n}\nfunction escapeHtml(str) {\n return str.replace(/&/g, \"&\").replace(/</g, \"<\").replace(/>/g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(/`/g, \"`\");\n}\nfunction serialize(props) {\n return String(new URLSearchParams(filterParams(props)));\n}\nfunction filterParams(props) {\n let p = {};\n for (let key in props) {\n let val = props[key];\n if (val === true || val === \"\") p[key] = true;\n else if (val === false) p[key] = false;\n else if (val != null) p[key] = val;\n }\n return p;\n}\nclass PublicPromise extends Promise {\n constructor(executor = () => {\n }) {\n let res, rej;\n super((resolve, reject) => {\n executor(resolve, reject);\n res = resolve;\n rej = reject;\n });\n this.resolve = res;\n this.reject = rej;\n }\n}\nfunction createTimeRanges(start, end) {\n if (Array.isArray(start)) {\n return createTimeRangesObj(start);\n } else if (start == null || end == null || start === 0 && end === 0) {\n return createTimeRangesObj([[0, 0]]);\n }\n return createTimeRangesObj([[start, end]]);\n}\nfunction createTimeRangesObj(ranges) {\n Object.defineProperties(ranges, {\n start: {\n value: (i) => ranges[i][0]\n },\n end: {\n value: (i) => ranges[i][1]\n }\n });\n return ranges;\n}\nif (globalThis.customElements && !globalThis.customElements.get(\"twitch-video\")) {\n globalThis.customElements.define(\"twitch-video\", TwitchVideoElement);\n}\nvar twitch_video_element_default = TwitchVideoElement;\nexport {\n twitch_video_element_default as default\n};\n","\"use client\";\n\n// dist/react.ts\nimport React from \"react\";\nimport CustomMediaElement from \"./twitch-video-element.js\";\n\n// ../../node_modules/ce-la-react/dist/ce-la-react.js\nvar reservedReactProps = /* @__PURE__ */ new Set([\n \"style\",\n \"children\",\n \"ref\",\n \"key\",\n \"suppressContentEditableWarning\",\n \"suppressHydrationWarning\",\n \"dangerouslySetInnerHTML\"\n]);\nvar reactPropToAttrNameMap = {\n className: \"class\",\n htmlFor: \"for\"\n};\nfunction defaultToAttributeName(propName) {\n return propName.toLowerCase();\n}\nfunction defaultToAttributeValue(propValue) {\n if (typeof propValue === \"boolean\") return propValue ? \"\" : void 0;\n if (typeof propValue === \"function\") return void 0;\n if (typeof propValue === \"object\" && propValue !== null) return void 0;\n return propValue;\n}\nfunction createComponent({\n react: React2,\n tagName,\n elementClass,\n events,\n displayName,\n defaultProps,\n toAttributeName = defaultToAttributeName,\n toAttributeValue = defaultToAttributeValue\n}) {\n const IS_REACT_19_OR_NEWER = Number.parseInt(React2.version) >= 19;\n const ReactComponent = React2.forwardRef((props, ref) => {\n var _a, _b;\n const elementRef = React2.useRef(null);\n const prevElemPropsRef = React2.useRef(/* @__PURE__ */ new Map());\n const eventProps = {};\n const attrs = {};\n const reactProps = {};\n const elementProps = {};\n for (const [k, v] of Object.entries(props)) {\n if (reservedReactProps.has(k)) {\n reactProps[k] = v;\n continue;\n }\n const attrName = toAttributeName(reactPropToAttrNameMap[k] ?? k);\n if (elementClass.prototype && k in elementClass.prototype && !(k in (((_a = globalThis.HTMLElement) == null ? void 0 : _a.prototype) ?? {})) && !((_b = elementClass.observedAttributes) == null ? void 0 : _b.some((attr) => attr === attrName))) {\n elementProps[k] = v;\n continue;\n }\n if (k.startsWith(\"on\")) {\n eventProps[k] = v;\n continue;\n }\n const attrValue = toAttributeValue(v);\n if (attrName && attrValue != null) {\n attrs[attrName] = String(attrValue);\n if (!IS_REACT_19_OR_NEWER) {\n reactProps[attrName] = attrValue;\n }\n }\n if (attrName && IS_REACT_19_OR_NEWER) {\n const attrValueFromDefault = defaultToAttributeValue(v);\n if (attrValue !== attrValueFromDefault) {\n reactProps[attrName] = attrValue;\n } else {\n reactProps[attrName] = v;\n }\n }\n }\n if (typeof window !== \"undefined\") {\n for (const propName in eventProps) {\n const callback = eventProps[propName];\n const useCapture = propName.endsWith(\"Capture\");\n const eventName = ((events == null ? void 0 : events[propName]) ?? propName.slice(2).toLowerCase()).slice(\n 0,\n useCapture ? -7 : void 0\n );\n React2.useLayoutEffect(() => {\n const eventTarget = elementRef == null ? void 0 : elementRef.current;\n if (!eventTarget || typeof callback !== \"function\") return;\n eventTarget.addEventListener(eventName, callback, useCapture);\n return () => {\n eventTarget.removeEventListener(eventName, callback, useCapture);\n };\n }, [elementRef == null ? void 0 : elementRef.current, callback]);\n }\n React2.useLayoutEffect(() => {\n if (elementRef.current === null) return;\n const newElemProps = /* @__PURE__ */ new Map();\n for (const key in elementProps) {\n setProperty(elementRef.current, key, elementProps[key]);\n prevElemPropsRef.current.delete(key);\n newElemProps.set(key, elementProps[key]);\n }\n for (const [key, _value] of prevElemPropsRef.current) {\n setProperty(elementRef.current, key, void 0);\n }\n prevElemPropsRef.current = newElemProps;\n });\n }\n if (typeof window === \"undefined\" && (elementClass == null ? void 0 : elementClass.getTemplateHTML) && (elementClass == null ? void 0 : elementClass.shadowRootOptions)) {\n const { mode, delegatesFocus } = elementClass.shadowRootOptions;\n const templateShadowRoot = React2.createElement(\"template\", {\n shadowrootmode: mode,\n shadowrootdelegatesfocus: delegatesFocus,\n dangerouslySetInnerHTML: {\n __html: elementClass.getTemplateHTML(attrs, props)\n },\n key: \"ce-la-react-ssr-template-shadow-root\"\n });\n reactProps.children = [templateShadowRoot, reactProps.children];\n }\n return React2.createElement(tagName, {\n ...defaultProps,\n ...reactProps,\n ref: React2.useCallback(\n (node) => {\n elementRef.current = node;\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref !== null) {\n ref.current = node;\n }\n },\n [ref]\n )\n }, reactProps.children);\n });\n ReactComponent.displayName = displayName ?? elementClass.name;\n return ReactComponent;\n}\nfunction setProperty(node, name, value) {\n var _a;\n node[name] = value;\n if (value == null && name in (((_a = globalThis.HTMLElement) == null ? void 0 : _a.prototype) ?? {})) {\n node.removeAttribute(name);\n }\n}\n\n// dist/react.ts\nvar react_default = createComponent({\n react: React,\n tagName: \"twitch-video\",\n elementClass: CustomMediaElement,\n toAttributeName(propName) {\n if (propName === \"muted\") return \"\";\n if (propName === \"defaultMuted\") return \"muted\";\n return defaultToAttributeName(propName);\n }\n});\nexport {\n react_default as default\n};\n/*! Bundled license information:\n\nce-la-react/dist/ce-la-react.js:\n (**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n *\n * Modified version of `@lit/react` for vanilla custom elements with support for SSR.\n *)\n*/\n"],"names":["EMBED_BASE","MATCH_VIDEO","MATCH_CHANNEL","PlaybackState","PlayerCommands","getTemplateHTML","attrs","props","iframeAttrs","serializeIframeUrl","serializeAttributes","_a","videoMatch","channelMatch","params","videoId","serialize","channel","TwitchVideoElement","PublicPromise","#loadRequested","#hasLoaded","#iframe","#playerState","#currentTime","#muted","#volume","#paused","#seeking","#readyState","#config","#upgradeProperty","value","isFirstLoad","#onMessage","iframe","namedNodeMapToObject","attrName","oldValue","newValue","_b","createTimeRanges","val","#sendCommand","event","_c","_d","data","source","resolve","oldDuration","oldCurrentTime","oldVolume","oldMuted","oldBuffered","command","message","prop","namedNodeMap","obj","attr","html","key","escapeHtml","str","filterParams","p","executor","res","rej","reject","start","end","createTimeRangesObj","ranges","i","twitch_video_element_default","reservedReactProps","reactPropToAttrNameMap","defaultToAttributeName","propName","defaultToAttributeValue","propValue","createComponent","React2","tagName","elementClass","events","displayName","defaultProps","toAttributeName","toAttributeValue","IS_REACT_19_OR_NEWER","ReactComponent","ref","elementRef","prevElemPropsRef","eventProps","reactProps","elementProps","k","v","attrValue","attrValueFromDefault","callback","useCapture","eventName","eventTarget","newElemProps","setProperty","_value","mode","delegatesFocus","templateShadowRoot","node","name","react_default","React","CustomMediaElement"],"mappings":"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","x_google_ignoreList":[0,1]}
|