tmg-media-player 0.0.45 → 0.0.46
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/dist/{chunk-GANVIUO4.js → chunk-2E73S6VU.js} +4 -4
- package/dist/{chunk-GANVIUO4.js.map → chunk-2E73S6VU.js.map} +1 -1
- package/dist/{chunk-JLUX5NZJ.js → chunk-CS262ZPQ.js} +73 -73
- package/dist/{chunk-QKDQO5Q6.js → chunk-G7LPQ2QM.js} +32 -32
- package/dist/{chunk-2XZVZP7M.js → chunk-P6BOUZA5.js} +45 -45
- package/dist/{chunk-VZMLWPQX.js → chunk-R7GPLSBU.js} +9 -9
- package/dist/{chunk-ESIE67WG.js → chunk-RAFGKRDN.js} +21 -21
- package/dist/{chunk-2GLRF3EN.js → chunk-VRDNDLPZ.js} +133 -133
- package/dist/{chunk-I2G5SNJJ.js → chunk-ZT3C7L5J.js} +67 -67
- package/dist/components/icons/z-register.js +33 -33
- package/dist/components/notifiers/z-register.js +8 -8
- package/dist/components/z-register.js +17 -17
- package/dist/index.css +2 -3
- package/dist/index.css.map +1 -1
- package/dist/plugs/menus/z-register.js +5 -5
- package/dist/plugs/settings/panel/index.cjs +3 -3
- package/dist/plugs/settings/panel/index.cjs.map +1 -1
- package/dist/plugs/settings/panel/index.js +1 -1
- package/dist/plugs/settings/sleepTimer/index.js +1 -1
- package/dist/plugs/z-register.cjs +3 -3
- package/dist/plugs/z-register.cjs.map +1 -1
- package/dist/plugs/z-register.js +26 -26
- package/dist/super/components/icons.js +73 -73
- package/dist/super/components/index.js +136 -136
- package/dist/super/components/notifiers.js +21 -21
- package/dist/super/plugs/index.cjs +3 -3
- package/dist/super/plugs/index.cjs.map +1 -1
- package/dist/super/plugs/index.js +74 -74
- package/dist/super/plugs/menus.js +10 -10
- package/dist/super.cjs +3 -3
- package/dist/super.cjs.map +1 -1
- package/dist/super.css +2 -3
- package/dist/super.css.map +1 -1
- package/dist/super.global.js +3 -3
- package/dist/super.global.js.map +1 -1
- package/dist/super.js +93 -93
- package/package.json +1 -1
- /package/dist/{chunk-JLUX5NZJ.js.map → chunk-CS262ZPQ.js.map} +0 -0
- /package/dist/{chunk-QKDQO5Q6.js.map → chunk-G7LPQ2QM.js.map} +0 -0
- /package/dist/{chunk-2XZVZP7M.js.map → chunk-P6BOUZA5.js.map} +0 -0
- /package/dist/{chunk-VZMLWPQX.js.map → chunk-R7GPLSBU.js.map} +0 -0
- /package/dist/{chunk-ESIE67WG.js.map → chunk-RAFGKRDN.js.map} +0 -0
- /package/dist/{chunk-2GLRF3EN.js.map → chunk-VRDNDLPZ.js.map} +0 -0
- /package/dist/{chunk-I2G5SNJJ.js.map → chunk-ZT3C7L5J.js.map} +0 -0
|
@@ -127,7 +127,7 @@ var PanelPlug = class extends BasePlug {
|
|
|
127
127
|
</ul>
|
|
128
128
|
<h3 style="margin-top: 0; margin-bottom: 10px; border-bottom: 1px solid currentColor; padding-bottom: 5px; opacity: 0.85;">\u{1F3D7}\uFE0F Total UI Control</h3>
|
|
129
129
|
<ul style="padding-left: 20px; line-height: 1.6; margin-bottom: 25px;">
|
|
130
|
-
<li><strong>Build your own player:</strong> Don't like our layout? <strong>Click and drag</strong> almost any button on the
|
|
130
|
+
<li><strong>Build your own player:</strong> Don't like our layout? <strong>Click and drag</strong> almost "any" button on the control bars to physically rearrange the interface exactly how you want it.</li>
|
|
131
131
|
<li><strong>Draggable subtitles:</strong> Subtitles blocking a crucial part of the scene? Just grab the text box and drag it anywhere else on the screen.</li>
|
|
132
132
|
<li><strong>The chameleon engine:</strong> Head to settings and set your Brand/Theme colors to "Video Derived". TVP will actively analyze the video frames and extract dominant colors to paint the UI dynamically.</li>
|
|
133
133
|
<li><strong>Descriptive hints:</strong> Hover over the controls to expose their tooltips and get more information about how to trigger each function.</li>
|
|
@@ -135,7 +135,7 @@ var PanelPlug = class extends BasePlug {
|
|
|
135
135
|
<h3 style="margin-top: 0; margin-bottom: 10px; border-bottom: 1px solid currentColor; padding-bottom: 5px; opacity: 0.85;">\u2328\uFE0F Keyboard Ninja Status</h3>
|
|
136
136
|
<ul style="padding-left: 20px; line-height: 1.6; margin-bottom: 25px;">
|
|
137
137
|
<li><strong>The playback trinity (J, K, L):</strong> Skip backward, Play/Pause, and Skip forward like a pro editor. Do the same with arrow keys, hold <strong>Ctrl</strong>, <strong>Shift</strong> or <strong>Alt</strong> to spice things up.</li>
|
|
138
|
-
<li><strong>Time travel
|
|
138
|
+
<li><strong>Time travel:</strong> Hit any number key to jump to that percentage of the video (e.g., hitting '5' jumps to the exact middle). <em>(Easter Egg: Undo or Redo with <strong>Ctrl + Z</strong> and <strong>Ctrl + Y</strong>)</em></li>
|
|
139
139
|
<li><strong>Frame-by-frame:</strong> Paused the video? Use <strong>,</strong> (comma) and <strong>.</strong> (period) to step backward or forward one single frame at a time.</li>
|
|
140
140
|
<li><strong>Warp speed:</strong> Use <strong>></strong> and <strong><</strong> to crank the playback speed up or down.</li>
|
|
141
141
|
</ul>
|
|
@@ -148,7 +148,7 @@ var PanelPlug = class extends BasePlug {
|
|
|
148
148
|
</ul>
|
|
149
149
|
<div style="text-align: center; margin-top: 30px; padding: 15px; border-radius: 8px; background: rgba(128, 128, 128, 0.1);">
|
|
150
150
|
<p style="margin: 0 0 10px 0;"><strong>Enjoy the player.</strong> We're still in active development, but already miles ahead. Welcome to the bleeding edge.</p>
|
|
151
|
-
<p style="margin: 0; opacity: 0.8;">\u{1F9EA} <strong>beta tester?</strong>
|
|
151
|
+
<p style="margin: 0; opacity: 0.8;">\u{1F9EA} <strong>beta tester?</strong> Find the Settings advanced menu to travel through linear time, or <a href="mailto:tobioketade007@gmail.com" style="color: inherit; text-decoration: underline;">drop me an email</a> to collaborate!</p>
|
|
152
152
|
</div>
|
|
153
153
|
</div>
|
|
154
154
|
`;
|
|
@@ -167,4 +167,4 @@ __publicField(PanelPlug, "BUILD", SETTINGS_BUILD);
|
|
|
167
167
|
export {
|
|
168
168
|
PanelPlug
|
|
169
169
|
};
|
|
170
|
-
//# sourceMappingURL=chunk-
|
|
170
|
+
//# sourceMappingURL=chunk-2E73S6VU.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ts/plugs/settings/panel/index.ts"],"sourcesContent":["import { silence } from \"sia-reactor/modules\";\r\nimport { BasePlug } from \"../../base\";\r\nimport { SETTINGS_BUILD } from \"./build\";\r\nimport type { panelConfig, panelState } from \"./types\";\r\nimport { SettingsMenu } from \"./menu\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { mockAsync } from \"@utils/fn\";\r\nimport { parseCSSTime } from \"@utils/str\";\r\nimport type { Controller } from \"@core/controller\";\r\nimport { isPOJO } from \"@utils/obj\";\r\n\r\nexport class PanelPlug extends BasePlug<panelConfig, panelState> {\r\n public static readonly plugName = \"panel\";\r\n public static readonly BUILD = SETTINGS_BUILD;\r\n public closeBtn!: HTMLButtonElement | null;\r\n public menu!: SettingsMenu;\r\n protected wasPaused = false;\r\n\r\n constructor(ctlr: Controller, config = ctlr.settings.panel) {\r\n super(ctlr, config, { viewOpen: false });\r\n this.menu = new SettingsMenu(this.ctlr, this.config.menu);\r\n }\r\n\r\n public override mount(): void {\r\n this.closeBtn = this.ctlr.queryDOM(\".tmg-media-settings-close-btn\")!;\r\n this.menu.onViewClick = this.toggleView;\r\n }\r\n public override unmount(): void {\r\n this.media.container.classList.remove(\"tmg-media-more-settings\");\r\n this.ctlr.queryDOM(\".tmg-media-settings-tips-btn\")?.remove(), this.ctlr.queryDOM(\".tmg-media-settings-brand-wrapper\")?.remove(), this.ctlr.queryDOM(\".tmg-media-settings-theme-wrapper\")?.remove();\r\n }\r\n\r\n public override wire(): void {\r\n // Event Listeners\r\n this.closeBtn?.addEventListener(\"click\", this.exitMore, { signal: this.signal });\r\n // Ctlr Media Listeners\r\n this.media.on(\"state.paused\", ({ value }) => !value && this.exitMore(), { signal: this.signal });\r\n // Post Wiring\r\n this.ctlr.learn(\"settings\", { fn: () => this.menu.toggle(undefined, true) }, this.signal);\r\n !this.config.menu.disabled && this.menu.wire(), super.wire();\r\n }\r\n\r\n public async enterMore(): Promise<void> {\r\n if (this.ctlr.isUIActive(\"moreSettings\")) return;\r\n if (!this.viewReady) this.initView(), (this.viewReady = true);\r\n (this.wasPaused = this.media.state.paused), this.config.autoPause && silence(() => (this.media.intent.paused = true));\r\n !isPOJO(this.menu.anchor) && this.menu.close(), this.media.container.classList.add(\"tmg-media-more-settings\"), (this.state.viewOpen = true);\r\n await mockAsync(parseCSSTime(this.settings.css.panelTransitionTime));\r\n this.ctlr.plug(\"settings.overlay\")?.show();\r\n this.ctlr.DOM.settings?.removeAttribute(\"inert\"), this.ctlr.DOM.containerContent?.setAttribute(\"inert\", \"\");\r\n !isPOJO(this.menu.anchor) && this.closeBtn?.focus();\r\n } // #STANDALONE: needs scoped behavior\r\n private viewReady = false;\r\n\r\n public async exitMore(): Promise<void> {\r\n if (!this.ctlr.isUIActive(\"moreSettings\")) return;\r\n !isPOJO(this.menu.anchor) && this.menu.close(), this.media.container.classList.remove(\"tmg-media-more-settings\"), (this.state.viewOpen = false);\r\n await mockAsync(parseCSSTime(this.settings.css.panelTransitionTime));\r\n this.config.autoPause && silence(() => (this.media.intent.paused = this.wasPaused));\r\n this.ctlr.DOM.settings?.setAttribute(\"inert\", \"\"), this.ctlr.DOM.containerContent?.removeAttribute(\"inert\");\r\n } // #STANDALONE: needs scoped behavior\r\n\r\n public async toggleView(): Promise<void> {\r\n this.ctlr.isUIActive(\"moreSettings\") ? await this.exitMore() : await this.enterMore();\r\n }\r\n\r\n private initView() {\r\n // Theming\r\n // prettier-ignore\r\n const options = [{ option: \"Light Blue\", value: \"#3198f5\" }, { option: \"Hot Pink\", value: \"#ff69b4\" }, { option: \"Fiery Red\", value: \"#ff0033\" }, { option: \"Dark Turquoise\", value: \"#00ced1\" }, { option: \"Custom Hue\", value: \"custom\" }, { option: \"Video Derived\", value: \"auto\" }],\r\n gcolors = options.slice(0, -2).map((opt) => opt.value),\r\n defs = { brand: this.settings.css.brandColor as string ?? \"#e26e02\", theme: this.settings.css.themeColor as string ?? \"#ffffff\", bcolors: [\"#e26e02\", ...gcolors], tcolors: [\"#ffffff\", ...gcolors] },\r\n bField = t007.field({ type: \"select\", label: \"Brand Color\", helperText: { info: \"Just try changing your brand color for now\" }, options: [{ option: \"Tastey Orange\", value: \"#e26e02\" }, ...options], value: !defs.bcolors.includes(defs.brand as string) ? (!this.settings.css.syncWithMedia.brandColor ? \"custom\" : \"auto\") : defs.brand }),\r\n cBField = t007.field({ type: \"color\" }),\r\n tField = t007.field({ type: \"select\", label: \"Theme Color\", helperText: { info: \"Also try changing your theme color for now\" }, options: [{ option: \"Pure White\", value: \"#ffffff\" }, ...options], value: !defs.tcolors.includes(defs.theme as string) ? (!this.settings.css.syncWithMedia.themeColor ? \"custom\" : \"auto\") : defs.theme }),\r\n cTField = t007.field({ type: \"color\" }),\r\n bWrapper = createEl(\"div\", { className: \"tmg-media-settings-brand-wrapper\" }),\r\n tWrapper = createEl(\"div\", { className: \"tmg-media-settings-theme-wrapper\" });\r\n this.ctlr.config.watch(\"settings.css.brandColor\", (v = defs.brand) => ((v = (v as string).toLowerCase()), (cBField.inputEl.value = v), (bField.inputEl.value = !defs.bcolors.includes(v) ? (!this.settings.css.syncWithMedia.brandColor ? \"custom\" : \"auto\") : v)), { init: true, signal: this.signal });\r\n this.ctlr.config.watch(\"settings.css.themeColor\", (v = defs.theme) => ((v = (v as string).toLowerCase()), (cTField.inputEl.value = v), (tField.inputEl.value = !defs.tcolors.includes(v) ? (!this.settings.css.syncWithMedia.themeColor ? \"custom\" : \"auto\") : v)), { init: true, signal: this.signal });\r\n this.ctlr.DOM.settingsBottomPanel?.append((bWrapper.append(bField, cBField), bWrapper), (tWrapper.append(tField, cTField), tWrapper));\r\n const id = { theme: \"\", brand: \"\" },\r\n sync = (cb: any, req = true, type = \"brand\") => ((this.settings.css.syncWithMedia[`${type}Color`] = req), cb(req)),\r\n assert = (opts: any, type: \"brand\" | \"theme\" = \"brand\") => this.ctlr.toast?.update(id[type], opts),\r\n onBColorChange = ({ target: { value: val } }: any) =>\r\n this.ctlr.throttle(\r\n \"brandColorPicking\",\r\n async () => {\r\n id.brand && t007.toast?.dismiss(id.brand);\r\n let col;\r\n if (val === \"custom\") return cBField.inputEl.click();\r\n if (val !== \"auto\") col = this.settings.css.brandColor = val;\r\n else col = this.settings.css.brandColor = (this.media.status.loadedData ? await this.ctlr.plug(\"settings.frame\")?.getMainColor(this.media.state.currentTime, this.media.features.frameCapture ? \"\" : undefined) : null) ?? this.ctlr.plug(\"settings.css\")?.build.brandColor!; // said 'video' not 'poster' derived\r\n const cb = (s: any) => (bField.inputEl.value = defs.bcolors.includes(col as string) ? (col as string) : s ? \"auto\" : \"custom\"),\r\n No = () => (sync(cb, false), assert({ actions: { Yes } })),\r\n Yes = () => (sync(cb, true), assert({ actions: { No } }));\r\n sync(cb, val === \"auto\");\r\n val === \"auto\" && (id.brand = this.ctlr.toast?.(\"The brand color will change anytime a video loads\", { icon: \"🎨\", autoClose: 15000, hideProgressBar: false, actions: { No }, onClose: () => (id.brand = \"\"), signal: this.signal }) || \"\");\r\n },\r\n 150\r\n ),\r\n onTColorChange = ({ target: { value: val } }: any) =>\r\n this.ctlr.throttle(\r\n \"themeColorPicking\",\r\n async () => {\r\n id.theme && t007.toast?.dismiss(id.theme);\r\n let col;\r\n if (val === \"custom\") return cTField.inputEl.click();\r\n if (val !== \"auto\") col = this.settings.css.themeColor = val;\r\n else col = this.settings.css.themeColor = (this.media.status.loadedData ? await this.ctlr.plug(\"settings.frame\")?.getMainColor(this.media.state.currentTime, this.media.features.frameCapture ? \"\" : undefined) : null) ?? this.ctlr.plug(\"settings.css\")?.build.themeColor!;\r\n const cb = (s: any) => (tField.inputEl.value = defs.tcolors.includes(col as string) ? (col as string) : s ? \"auto\" : \"custom\"),\r\n No = () => (sync(cb, false, \"theme\"), assert({ actions: { Yes } }, \"theme\")),\r\n Yes = () => (sync(cb, true, \"theme\"), assert({ actions: { No } }, \"theme\"));\r\n sync(cb, val === \"auto\", \"theme\");\r\n val === \"auto\" && (id.theme = this.ctlr.toast?.(\"The theme color will change anytime a video loads\", { icon: \"🎨\", autoClose: 15000, hideProgressBar: false, actions: { No }, onClose: () => (id.theme = \"\"), signal: this.signal }) || \"\");\r\n },\r\n 150\r\n );\r\n bField.inputEl.addEventListener(\"input\", onBColorChange, { signal: this.signal }), cBField.inputEl.addEventListener(\"input\", onBColorChange, { signal: this.signal });\r\n tField.inputEl.addEventListener(\"input\", onTColorChange, { signal: this.signal }), cTField.inputEl.addEventListener(\"input\", onTColorChange, { signal: this.signal });\r\n // Helpful Tips\r\n const tipsBtn = createEl(\"button\", { className: \"tmg-media-settings-tips-btn\", innerHTML: `<span>💡 Did You Know?</span>` });\r\n this.closeBtn?.insertAdjacentElement(\"afterend\", tipsBtn);\r\n tipsBtn.addEventListener(\"click\", this.showTipsDialog, { signal: this.signal });\r\n }\r\n\r\n private getTipsHTML() {\r\n return `\r\n <div style=\"font-family: inherit; color: inherit;\">\r\n <div style=\"text-align: center; margin-bottom: 25px;\">\r\n <h2 style=\"margin: 0 0 10px 0; letter-spacing: -0.5px;\">🎬 Welcome to TVP</h2>\r\n <p style=\"margin: 0; opacity: 0.9; line-height: 1.5;\">\r\n You aren't just watching a video; you're sitting in the cockpit of the most advanced, performance-first media engine on the web. We are thrilled to have you here. \r\n <br><strong>Here is your official flight manual to unlock its full power:</strong>\r\n </p>\r\n </div>\r\n <h3 style=\"margin-top: 0; margin-bottom: 10px; border-bottom: 1px solid currentColor; padding-bottom: 5px; opacity: 0.85;\">🎛️ The Smart Canvas (Mouse & Touch)</h3>\r\n <ul style=\"padding-left: 20px; line-height: 1.6; margin-bottom: 25px;\">\r\n <li><strong>Hyper-speed on demand:</strong> Click and hold the right side of the video screen or the play key (<strong>Spacebar</strong>) to fast-forward, left side or <strong>Shift</strong> + play key rewinds.</li>\r\n <li><strong>Smart scrubbing:</strong> Don't hunt for the tiny progress bar. Just scroll horizontally across the middle of the screen to scrub smoothly through time.</li>\r\n <li><strong>Invisible sliders:</strong> Scroll vertically on the <em>right edge</em> for Volume, and the <em>left edge</em> for Brightness.</li>\r\n <li><strong>Precision taps:</strong> Double-tap the edges to skip forward or backward. Double tap the center to toggle Fullscreen (or Play/Pause on mobile).</li>\r\n </ul>\r\n <h3 style=\"margin-top: 0; margin-bottom: 10px; border-bottom: 1px solid currentColor; padding-bottom: 5px; opacity: 0.85;\">🏗️ Total UI Control</h3>\r\n <ul style=\"padding-left: 20px; line-height: 1.6; margin-bottom: 25px;\">\r\n <li><strong>Build your own player:</strong> Don't like our layout? <strong>Click and drag</strong> almost any button on the bottom control bar to physically rearrange the interface exactly how you want it.</li>\r\n <li><strong>Draggable subtitles:</strong> Subtitles blocking a crucial part of the scene? Just grab the text box and drag it anywhere else on the screen.</li>\r\n <li><strong>The chameleon engine:</strong> Head to settings and set your Brand/Theme colors to \"Video Derived\". TVP will actively analyze the video frames and extract dominant colors to paint the UI dynamically.</li>\r\n <li><strong>Descriptive hints:</strong> Hover over the controls to expose their tooltips and get more information about how to trigger each function.</li>\r\n </ul>\r\n <h3 style=\"margin-top: 0; margin-bottom: 10px; border-bottom: 1px solid currentColor; padding-bottom: 5px; opacity: 0.85;\">⌨️ Keyboard Ninja Status</h3>\r\n <ul style=\"padding-left: 20px; line-height: 1.6; margin-bottom: 25px;\">\r\n <li><strong>The playback trinity (J, K, L):</strong> Skip backward, Play/Pause, and Skip forward like a pro editor. Do the same with arrow keys, hold <strong>Ctrl</strong>, <strong>Shift</strong> or <strong>Alt</strong> to spice things up.</li>\r\n <li><strong>Time travel (0 - 9):</strong> Hit any number key to instantly jump to that percentage of the video (e.g., hitting '5' jumps to the exact middle).</li>\r\n <li><strong>Frame-by-frame:</strong> Paused the video? Use <strong>,</strong> (comma) and <strong>.</strong> (period) to step backward or forward one single frame at a time.</li>\r\n <li><strong>Warp speed:</strong> Use <strong>></strong> and <strong><</strong> to crank the playback speed up or down.</li>\r\n </ul>\r\n <h3 style=\"margin-top: 0; margin-bottom: 10px; border-bottom: 1px solid currentColor; padding-bottom: 5px; opacity: 0.85;\">🔬 Advanced Window Tech</h3>\r\n <ul style=\"padding-left: 20px; line-height: 1.6; margin-bottom: 20px;\">\r\n <li><strong>The snapshot engine:</strong> Click the Camera icon or press <strong>s</strong> to screenshot a high-res image of the exact frame. <em>(Easter Egg: Double-Click or press <strong>Alt + s</strong> to capture in pure Black & White!)</em></li>\r\n <li><strong>Ultra-readable time:</strong> Click the time display or press <strong>q</strong> to toggle between elapsed time and remaining time. <em>(Easter Egg: Double-Click or press <strong>z</strong> to display the time in different formats!)</em></li>\r\n <li><strong>Floating miniplayer:</strong> Start playing a video and just scroll down the page. TVP will automatically detach into a draggable miniplayer so you never miss a second.</li>\r\n <li><strong>Custom picture-in-picture:</strong> We bypassed standard browser limits to give you a floating player that actually keeps all your custom UI controls intact.</li>\r\n </ul>\r\n <div style=\"text-align: center; margin-top: 30px; padding: 15px; border-radius: 8px; background: rgba(128, 128, 128, 0.1);\">\r\n <p style=\"margin: 0 0 10px 0;\"><strong>Enjoy the player.</strong> We're still in active development, but already miles ahead. Welcome to the bleeding edge.</p>\r\n <p style=\"margin: 0; opacity: 0.8;\">🧪 <strong>beta tester?</strong> Check the bottom of the page to find the hidden button to travel through linear time, or <a href=\"mailto:tobioketade007@gmail.com\" style=\"color: inherit; text-decoration: underline;\">drop me an email</a> to collaborate!</p>\r\n </div>\r\n </div>\r\n `;\r\n }\r\n\r\n private async showTipsDialog() {\r\n await this.exitMore();\r\n t007.alert(this.getTipsHTML(), { id: `${this.ctlr.config.id}-tips-dialog`, rootElement: this.ctlr.DOM.containerContent, confirmText: \"Got it!\" });\r\n }\r\n\r\n protected override onDestroy(): void {\r\n this.menu.destroy(), super.onDestroy();\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface PlugRegistryMap {\r\n \"settings.panel\": typeof PanelPlug;\r\n }\r\n}\r\n\r\ndeclare module \"@defs/config\" {\r\n interface Settings {\r\n panel: panelConfig;\r\n }\r\n}\r\n\r\nexport type * from \"./types\";\r\nexport * from \"./build\";\r\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/ts/plugs/settings/panel/index.ts"],"sourcesContent":["import { silence } from \"sia-reactor/modules\";\r\nimport { BasePlug } from \"../../base\";\r\nimport { SETTINGS_BUILD } from \"./build\";\r\nimport type { panelConfig, panelState } from \"./types\";\r\nimport { SettingsMenu } from \"./menu\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { mockAsync } from \"@utils/fn\";\r\nimport { parseCSSTime } from \"@utils/str\";\r\nimport type { Controller } from \"@core/controller\";\r\nimport { isPOJO } from \"@utils/obj\";\r\n\r\nexport class PanelPlug extends BasePlug<panelConfig, panelState> {\r\n public static readonly plugName = \"panel\";\r\n public static readonly BUILD = SETTINGS_BUILD;\r\n public closeBtn!: HTMLButtonElement | null;\r\n public menu!: SettingsMenu;\r\n protected wasPaused = false;\r\n\r\n constructor(ctlr: Controller, config = ctlr.settings.panel) {\r\n super(ctlr, config, { viewOpen: false });\r\n this.menu = new SettingsMenu(this.ctlr, this.config.menu);\r\n }\r\n\r\n public override mount(): void {\r\n this.closeBtn = this.ctlr.queryDOM(\".tmg-media-settings-close-btn\")!;\r\n this.menu.onViewClick = this.toggleView;\r\n }\r\n public override unmount(): void {\r\n this.media.container.classList.remove(\"tmg-media-more-settings\");\r\n this.ctlr.queryDOM(\".tmg-media-settings-tips-btn\")?.remove(), this.ctlr.queryDOM(\".tmg-media-settings-brand-wrapper\")?.remove(), this.ctlr.queryDOM(\".tmg-media-settings-theme-wrapper\")?.remove();\r\n }\r\n\r\n public override wire(): void {\r\n // Event Listeners\r\n this.closeBtn?.addEventListener(\"click\", this.exitMore, { signal: this.signal });\r\n // Ctlr Media Listeners\r\n this.media.on(\"state.paused\", ({ value }) => !value && this.exitMore(), { signal: this.signal });\r\n // Post Wiring\r\n this.ctlr.learn(\"settings\", { fn: () => this.menu.toggle(undefined, true) }, this.signal);\r\n !this.config.menu.disabled && this.menu.wire(), super.wire();\r\n }\r\n\r\n public async enterMore(): Promise<void> {\r\n if (this.ctlr.isUIActive(\"moreSettings\")) return;\r\n if (!this.viewReady) this.initView(), (this.viewReady = true);\r\n (this.wasPaused = this.media.state.paused), this.config.autoPause && silence(() => (this.media.intent.paused = true));\r\n !isPOJO(this.menu.anchor) && this.menu.close(), this.media.container.classList.add(\"tmg-media-more-settings\"), (this.state.viewOpen = true);\r\n await mockAsync(parseCSSTime(this.settings.css.panelTransitionTime));\r\n this.ctlr.plug(\"settings.overlay\")?.show();\r\n this.ctlr.DOM.settings?.removeAttribute(\"inert\"), this.ctlr.DOM.containerContent?.setAttribute(\"inert\", \"\");\r\n !isPOJO(this.menu.anchor) && this.closeBtn?.focus();\r\n } // #STANDALONE: needs scoped behavior\r\n private viewReady = false;\r\n\r\n public async exitMore(): Promise<void> {\r\n if (!this.ctlr.isUIActive(\"moreSettings\")) return;\r\n !isPOJO(this.menu.anchor) && this.menu.close(), this.media.container.classList.remove(\"tmg-media-more-settings\"), (this.state.viewOpen = false);\r\n await mockAsync(parseCSSTime(this.settings.css.panelTransitionTime));\r\n this.config.autoPause && silence(() => (this.media.intent.paused = this.wasPaused));\r\n this.ctlr.DOM.settings?.setAttribute(\"inert\", \"\"), this.ctlr.DOM.containerContent?.removeAttribute(\"inert\");\r\n } // #STANDALONE: needs scoped behavior\r\n\r\n public async toggleView(): Promise<void> {\r\n this.ctlr.isUIActive(\"moreSettings\") ? await this.exitMore() : await this.enterMore();\r\n }\r\n\r\n private initView() {\r\n // Theming\r\n // prettier-ignore\r\n const options = [{ option: \"Light Blue\", value: \"#3198f5\" }, { option: \"Hot Pink\", value: \"#ff69b4\" }, { option: \"Fiery Red\", value: \"#ff0033\" }, { option: \"Dark Turquoise\", value: \"#00ced1\" }, { option: \"Custom Hue\", value: \"custom\" }, { option: \"Video Derived\", value: \"auto\" }],\r\n gcolors = options.slice(0, -2).map((opt) => opt.value),\r\n defs = { brand: this.settings.css.brandColor as string ?? \"#e26e02\", theme: this.settings.css.themeColor as string ?? \"#ffffff\", bcolors: [\"#e26e02\", ...gcolors], tcolors: [\"#ffffff\", ...gcolors] },\r\n bField = t007.field({ type: \"select\", label: \"Brand Color\", helperText: { info: \"Just try changing your brand color for now\" }, options: [{ option: \"Tastey Orange\", value: \"#e26e02\" }, ...options], value: !defs.bcolors.includes(defs.brand as string) ? (!this.settings.css.syncWithMedia.brandColor ? \"custom\" : \"auto\") : defs.brand }),\r\n cBField = t007.field({ type: \"color\" }),\r\n tField = t007.field({ type: \"select\", label: \"Theme Color\", helperText: { info: \"Also try changing your theme color for now\" }, options: [{ option: \"Pure White\", value: \"#ffffff\" }, ...options], value: !defs.tcolors.includes(defs.theme as string) ? (!this.settings.css.syncWithMedia.themeColor ? \"custom\" : \"auto\") : defs.theme }),\r\n cTField = t007.field({ type: \"color\" }),\r\n bWrapper = createEl(\"div\", { className: \"tmg-media-settings-brand-wrapper\" }),\r\n tWrapper = createEl(\"div\", { className: \"tmg-media-settings-theme-wrapper\" });\r\n this.ctlr.config.watch(\"settings.css.brandColor\", (v = defs.brand) => ((v = (v as string).toLowerCase()), (cBField.inputEl.value = v), (bField.inputEl.value = !defs.bcolors.includes(v) ? (!this.settings.css.syncWithMedia.brandColor ? \"custom\" : \"auto\") : v)), { init: true, signal: this.signal });\r\n this.ctlr.config.watch(\"settings.css.themeColor\", (v = defs.theme) => ((v = (v as string).toLowerCase()), (cTField.inputEl.value = v), (tField.inputEl.value = !defs.tcolors.includes(v) ? (!this.settings.css.syncWithMedia.themeColor ? \"custom\" : \"auto\") : v)), { init: true, signal: this.signal });\r\n this.ctlr.DOM.settingsBottomPanel?.append((bWrapper.append(bField, cBField), bWrapper), (tWrapper.append(tField, cTField), tWrapper));\r\n const id = { theme: \"\", brand: \"\" },\r\n sync = (cb: any, req = true, type = \"brand\") => ((this.settings.css.syncWithMedia[`${type}Color`] = req), cb(req)),\r\n assert = (opts: any, type: \"brand\" | \"theme\" = \"brand\") => this.ctlr.toast?.update(id[type], opts),\r\n onBColorChange = ({ target: { value: val } }: any) =>\r\n this.ctlr.throttle(\r\n \"brandColorPicking\",\r\n async () => {\r\n id.brand && t007.toast?.dismiss(id.brand);\r\n let col;\r\n if (val === \"custom\") return cBField.inputEl.click();\r\n if (val !== \"auto\") col = this.settings.css.brandColor = val;\r\n else col = this.settings.css.brandColor = (this.media.status.loadedData ? await this.ctlr.plug(\"settings.frame\")?.getMainColor(this.media.state.currentTime, this.media.features.frameCapture ? \"\" : undefined) : null) ?? this.ctlr.plug(\"settings.css\")?.build.brandColor!; // said 'video' not 'poster' derived\r\n const cb = (s: any) => (bField.inputEl.value = defs.bcolors.includes(col as string) ? (col as string) : s ? \"auto\" : \"custom\"),\r\n No = () => (sync(cb, false), assert({ actions: { Yes } })),\r\n Yes = () => (sync(cb, true), assert({ actions: { No } }));\r\n sync(cb, val === \"auto\");\r\n val === \"auto\" && (id.brand = this.ctlr.toast?.(\"The brand color will change anytime a video loads\", { icon: \"🎨\", autoClose: 15000, hideProgressBar: false, actions: { No }, onClose: () => (id.brand = \"\"), signal: this.signal }) || \"\");\r\n },\r\n 150\r\n ),\r\n onTColorChange = ({ target: { value: val } }: any) =>\r\n this.ctlr.throttle(\r\n \"themeColorPicking\",\r\n async () => {\r\n id.theme && t007.toast?.dismiss(id.theme);\r\n let col;\r\n if (val === \"custom\") return cTField.inputEl.click();\r\n if (val !== \"auto\") col = this.settings.css.themeColor = val;\r\n else col = this.settings.css.themeColor = (this.media.status.loadedData ? await this.ctlr.plug(\"settings.frame\")?.getMainColor(this.media.state.currentTime, this.media.features.frameCapture ? \"\" : undefined) : null) ?? this.ctlr.plug(\"settings.css\")?.build.themeColor!;\r\n const cb = (s: any) => (tField.inputEl.value = defs.tcolors.includes(col as string) ? (col as string) : s ? \"auto\" : \"custom\"),\r\n No = () => (sync(cb, false, \"theme\"), assert({ actions: { Yes } }, \"theme\")),\r\n Yes = () => (sync(cb, true, \"theme\"), assert({ actions: { No } }, \"theme\"));\r\n sync(cb, val === \"auto\", \"theme\");\r\n val === \"auto\" && (id.theme = this.ctlr.toast?.(\"The theme color will change anytime a video loads\", { icon: \"🎨\", autoClose: 15000, hideProgressBar: false, actions: { No }, onClose: () => (id.theme = \"\"), signal: this.signal }) || \"\");\r\n },\r\n 150\r\n );\r\n bField.inputEl.addEventListener(\"input\", onBColorChange, { signal: this.signal }), cBField.inputEl.addEventListener(\"input\", onBColorChange, { signal: this.signal });\r\n tField.inputEl.addEventListener(\"input\", onTColorChange, { signal: this.signal }), cTField.inputEl.addEventListener(\"input\", onTColorChange, { signal: this.signal });\r\n // Helpful Tips\r\n const tipsBtn = createEl(\"button\", { className: \"tmg-media-settings-tips-btn\", innerHTML: `<span>💡 Did You Know?</span>` });\r\n this.closeBtn?.insertAdjacentElement(\"afterend\", tipsBtn);\r\n tipsBtn.addEventListener(\"click\", this.showTipsDialog, { signal: this.signal });\r\n }\r\n\r\n private getTipsHTML() {\r\n return `\r\n <div style=\"font-family: inherit; color: inherit;\">\r\n <div style=\"text-align: center; margin-bottom: 25px;\">\r\n <h2 style=\"margin: 0 0 10px 0; letter-spacing: -0.5px;\">🎬 Welcome to TVP</h2>\r\n <p style=\"margin: 0; opacity: 0.9; line-height: 1.5;\">\r\n You aren't just watching a video; you're sitting in the cockpit of the most advanced, performance-first media engine on the web. We are thrilled to have you here. \r\n <br><strong>Here is your official flight manual to unlock its full power:</strong>\r\n </p>\r\n </div>\r\n <h3 style=\"margin-top: 0; margin-bottom: 10px; border-bottom: 1px solid currentColor; padding-bottom: 5px; opacity: 0.85;\">🎛️ The Smart Canvas (Mouse & Touch)</h3>\r\n <ul style=\"padding-left: 20px; line-height: 1.6; margin-bottom: 25px;\">\r\n <li><strong>Hyper-speed on demand:</strong> Click and hold the right side of the video screen or the play key (<strong>Spacebar</strong>) to fast-forward, left side or <strong>Shift</strong> + play key rewinds.</li>\r\n <li><strong>Smart scrubbing:</strong> Don't hunt for the tiny progress bar. Just scroll horizontally across the middle of the screen to scrub smoothly through time.</li>\r\n <li><strong>Invisible sliders:</strong> Scroll vertically on the <em>right edge</em> for Volume, and the <em>left edge</em> for Brightness.</li>\r\n <li><strong>Precision taps:</strong> Double-tap the edges to skip forward or backward. Double tap the center to toggle Fullscreen (or Play/Pause on mobile).</li>\r\n </ul>\r\n <h3 style=\"margin-top: 0; margin-bottom: 10px; border-bottom: 1px solid currentColor; padding-bottom: 5px; opacity: 0.85;\">🏗️ Total UI Control</h3>\r\n <ul style=\"padding-left: 20px; line-height: 1.6; margin-bottom: 25px;\">\r\n <li><strong>Build your own player:</strong> Don't like our layout? <strong>Click and drag</strong> almost \"any\" button on the control bars to physically rearrange the interface exactly how you want it.</li>\r\n <li><strong>Draggable subtitles:</strong> Subtitles blocking a crucial part of the scene? Just grab the text box and drag it anywhere else on the screen.</li>\r\n <li><strong>The chameleon engine:</strong> Head to settings and set your Brand/Theme colors to \"Video Derived\". TVP will actively analyze the video frames and extract dominant colors to paint the UI dynamically.</li>\r\n <li><strong>Descriptive hints:</strong> Hover over the controls to expose their tooltips and get more information about how to trigger each function.</li>\r\n </ul>\r\n <h3 style=\"margin-top: 0; margin-bottom: 10px; border-bottom: 1px solid currentColor; padding-bottom: 5px; opacity: 0.85;\">⌨️ Keyboard Ninja Status</h3>\r\n <ul style=\"padding-left: 20px; line-height: 1.6; margin-bottom: 25px;\">\r\n <li><strong>The playback trinity (J, K, L):</strong> Skip backward, Play/Pause, and Skip forward like a pro editor. Do the same with arrow keys, hold <strong>Ctrl</strong>, <strong>Shift</strong> or <strong>Alt</strong> to spice things up.</li>\r\n <li><strong>Time travel:</strong> Hit any number key to jump to that percentage of the video (e.g., hitting '5' jumps to the exact middle). <em>(Easter Egg: Undo or Redo with <strong>Ctrl + Z</strong> and <strong>Ctrl + Y</strong>)</em></li>\r\n <li><strong>Frame-by-frame:</strong> Paused the video? Use <strong>,</strong> (comma) and <strong>.</strong> (period) to step backward or forward one single frame at a time.</li>\r\n <li><strong>Warp speed:</strong> Use <strong>></strong> and <strong><</strong> to crank the playback speed up or down.</li>\r\n </ul>\r\n <h3 style=\"margin-top: 0; margin-bottom: 10px; border-bottom: 1px solid currentColor; padding-bottom: 5px; opacity: 0.85;\">🔬 Advanced Window Tech</h3>\r\n <ul style=\"padding-left: 20px; line-height: 1.6; margin-bottom: 20px;\">\r\n <li><strong>The snapshot engine:</strong> Click the Camera icon or press <strong>s</strong> to screenshot a high-res image of the exact frame. <em>(Easter Egg: Double-Click or press <strong>Alt + s</strong> to capture in pure Black & White!)</em></li>\r\n <li><strong>Ultra-readable time:</strong> Click the time display or press <strong>q</strong> to toggle between elapsed time and remaining time. <em>(Easter Egg: Double-Click or press <strong>z</strong> to display the time in different formats!)</em></li>\r\n <li><strong>Floating miniplayer:</strong> Start playing a video and just scroll down the page. TVP will automatically detach into a draggable miniplayer so you never miss a second.</li>\r\n <li><strong>Custom picture-in-picture:</strong> We bypassed standard browser limits to give you a floating player that actually keeps all your custom UI controls intact.</li>\r\n </ul>\r\n <div style=\"text-align: center; margin-top: 30px; padding: 15px; border-radius: 8px; background: rgba(128, 128, 128, 0.1);\">\r\n <p style=\"margin: 0 0 10px 0;\"><strong>Enjoy the player.</strong> We're still in active development, but already miles ahead. Welcome to the bleeding edge.</p>\r\n <p style=\"margin: 0; opacity: 0.8;\">🧪 <strong>beta tester?</strong> Find the Settings advanced menu to travel through linear time, or <a href=\"mailto:tobioketade007@gmail.com\" style=\"color: inherit; text-decoration: underline;\">drop me an email</a> to collaborate!</p>\r\n </div>\r\n </div>\r\n `;\r\n }\r\n\r\n private async showTipsDialog() {\r\n await this.exitMore();\r\n t007.alert(this.getTipsHTML(), { id: `${this.ctlr.config.id}-tips-dialog`, rootElement: this.ctlr.DOM.containerContent, confirmText: \"Got it!\" });\r\n }\r\n\r\n protected override onDestroy(): void {\r\n this.menu.destroy(), super.onDestroy();\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface PlugRegistryMap {\r\n \"settings.panel\": typeof PanelPlug;\r\n }\r\n}\r\n\r\ndeclare module \"@defs/config\" {\r\n interface Settings {\r\n panel: panelConfig;\r\n }\r\n}\r\n\r\nexport type * from \"./types\";\r\nexport * from \"./build\";\r\n"],"mappings":"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","names":[]}
|
|
@@ -1,24 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
volumeHigh
|
|
3
|
-
} from "./chunk-W6TNR6NH.js";
|
|
4
|
-
import {
|
|
5
|
-
volumeLow
|
|
6
|
-
} from "./chunk-CRVRDKEG.js";
|
|
7
|
-
import {
|
|
8
|
-
volumeMuted
|
|
9
|
-
} from "./chunk-2WOP45O7.js";
|
|
10
|
-
import {
|
|
11
|
-
sort
|
|
12
|
-
} from "./chunk-QP2X53HC.js";
|
|
13
|
-
import {
|
|
14
|
-
subtitles
|
|
15
|
-
} from "./chunk-D7JQDN74.js";
|
|
16
|
-
import {
|
|
17
|
-
timer
|
|
18
|
-
} from "./chunk-R4HNE7TL.js";
|
|
19
|
-
import {
|
|
20
|
-
triangleLeft
|
|
21
|
-
} from "./chunk-6SMYDK4B.js";
|
|
22
1
|
import {
|
|
23
2
|
tripleTriangleLeft
|
|
24
3
|
} from "./chunk-IIRP4XMQ.js";
|
|
@@ -32,17 +11,14 @@ import {
|
|
|
32
11
|
videoTrack
|
|
33
12
|
} from "./chunk-AIJWNUXU.js";
|
|
34
13
|
import {
|
|
35
|
-
|
|
36
|
-
} from "./chunk-
|
|
37
|
-
import {
|
|
38
|
-
previous
|
|
39
|
-
} from "./chunk-65HPQXXZ.js";
|
|
14
|
+
volumeHigh
|
|
15
|
+
} from "./chunk-W6TNR6NH.js";
|
|
40
16
|
import {
|
|
41
|
-
|
|
42
|
-
} from "./chunk-
|
|
17
|
+
volumeLow
|
|
18
|
+
} from "./chunk-CRVRDKEG.js";
|
|
43
19
|
import {
|
|
44
|
-
|
|
45
|
-
} from "./chunk-
|
|
20
|
+
volumeMuted
|
|
21
|
+
} from "./chunk-2WOP45O7.js";
|
|
46
22
|
import {
|
|
47
23
|
replay
|
|
48
24
|
} from "./chunk-YHTCXXEG.js";
|
|
@@ -56,17 +32,17 @@ import {
|
|
|
56
32
|
shuffle
|
|
57
33
|
} from "./chunk-OEHNS7YX.js";
|
|
58
34
|
import {
|
|
59
|
-
|
|
60
|
-
} from "./chunk-
|
|
35
|
+
sort
|
|
36
|
+
} from "./chunk-QP2X53HC.js";
|
|
61
37
|
import {
|
|
62
|
-
|
|
63
|
-
} from "./chunk-
|
|
38
|
+
subtitles
|
|
39
|
+
} from "./chunk-D7JQDN74.js";
|
|
64
40
|
import {
|
|
65
|
-
|
|
66
|
-
} from "./chunk-
|
|
41
|
+
timer
|
|
42
|
+
} from "./chunk-R4HNE7TL.js";
|
|
67
43
|
import {
|
|
68
|
-
|
|
69
|
-
} from "./chunk-
|
|
44
|
+
triangleLeft
|
|
45
|
+
} from "./chunk-6SMYDK4B.js";
|
|
70
46
|
import {
|
|
71
47
|
pause
|
|
72
48
|
} from "./chunk-OOXUZMZ7.js";
|
|
@@ -80,17 +56,17 @@ import {
|
|
|
80
56
|
playbackRate
|
|
81
57
|
} from "./chunk-C3IEUYR3.js";
|
|
82
58
|
import {
|
|
83
|
-
|
|
84
|
-
} from "./chunk-
|
|
59
|
+
playlist
|
|
60
|
+
} from "./chunk-KLAI7YSD.js";
|
|
85
61
|
import {
|
|
86
|
-
|
|
87
|
-
} from "./chunk-
|
|
62
|
+
previous
|
|
63
|
+
} from "./chunk-65HPQXXZ.js";
|
|
88
64
|
import {
|
|
89
|
-
|
|
90
|
-
} from "./chunk-
|
|
65
|
+
quality
|
|
66
|
+
} from "./chunk-JG7AOGDX.js";
|
|
91
67
|
import {
|
|
92
|
-
|
|
93
|
-
} from "./chunk-
|
|
68
|
+
removeMiniplayer
|
|
69
|
+
} from "./chunk-GCEEKQP5.js";
|
|
94
70
|
import {
|
|
95
71
|
goBack
|
|
96
72
|
} from "./chunk-4XUR7NSC.js";
|
|
@@ -104,17 +80,17 @@ import {
|
|
|
104
80
|
mic
|
|
105
81
|
} from "./chunk-PEKXIISU.js";
|
|
106
82
|
import {
|
|
107
|
-
|
|
108
|
-
} from "./chunk-
|
|
83
|
+
next
|
|
84
|
+
} from "./chunk-MP2GRDUX.js";
|
|
109
85
|
import {
|
|
110
|
-
|
|
111
|
-
} from "./chunk-
|
|
86
|
+
objectFitContain
|
|
87
|
+
} from "./chunk-2DIFFYIR.js";
|
|
112
88
|
import {
|
|
113
|
-
|
|
114
|
-
} from "./chunk-
|
|
89
|
+
objectFitCover
|
|
90
|
+
} from "./chunk-JBAQKWHW.js";
|
|
115
91
|
import {
|
|
116
|
-
|
|
117
|
-
} from "./chunk-
|
|
92
|
+
objectFitFill
|
|
93
|
+
} from "./chunk-JERHONAV.js";
|
|
118
94
|
import {
|
|
119
95
|
errorPlaceholder
|
|
120
96
|
} from "./chunk-2K7QF6AQ.js";
|
|
@@ -128,17 +104,17 @@ import {
|
|
|
128
104
|
exitTheater
|
|
129
105
|
} from "./chunk-CRH6DM5A.js";
|
|
130
106
|
import {
|
|
131
|
-
|
|
132
|
-
} from "./chunk-
|
|
107
|
+
expandMiniplayer
|
|
108
|
+
} from "./chunk-DN4TFOZV.js";
|
|
133
109
|
import {
|
|
134
|
-
|
|
135
|
-
} from "./chunk-
|
|
110
|
+
forward10
|
|
111
|
+
} from "./chunk-PGSBJUJ4.js";
|
|
136
112
|
import {
|
|
137
|
-
|
|
138
|
-
} from "./chunk-
|
|
113
|
+
fullscreenOrientation
|
|
114
|
+
} from "./chunk-SEHWINY7.js";
|
|
139
115
|
import {
|
|
140
|
-
|
|
141
|
-
} from "./chunk-
|
|
116
|
+
fwd
|
|
117
|
+
} from "./chunk-XXYOJDOZ.js";
|
|
142
118
|
import {
|
|
143
119
|
check
|
|
144
120
|
} from "./chunk-O7XYY33O.js";
|
|
@@ -152,17 +128,17 @@ import {
|
|
|
152
128
|
dragIndicator
|
|
153
129
|
} from "./chunk-ZLZCQ3KJ.js";
|
|
154
130
|
import {
|
|
155
|
-
|
|
156
|
-
} from "./chunk-
|
|
131
|
+
edit
|
|
132
|
+
} from "./chunk-NLJQAJZB.js";
|
|
157
133
|
import {
|
|
158
|
-
|
|
159
|
-
} from "./chunk-
|
|
134
|
+
enterFullscreen
|
|
135
|
+
} from "./chunk-27UEI7BB.js";
|
|
160
136
|
import {
|
|
161
|
-
|
|
162
|
-
} from "./chunk-
|
|
137
|
+
enterPip
|
|
138
|
+
} from "./chunk-SRZCJKJZ.js";
|
|
163
139
|
import {
|
|
164
|
-
|
|
165
|
-
} from "./chunk-
|
|
140
|
+
enterTheater
|
|
141
|
+
} from "./chunk-BZYMBDEH.js";
|
|
166
142
|
import {
|
|
167
143
|
brightnessHigh
|
|
168
144
|
} from "./chunk-YEQ7IT4H.js";
|
|
@@ -176,8 +152,17 @@ import {
|
|
|
176
152
|
captions
|
|
177
153
|
} from "./chunk-CTSPKWKN.js";
|
|
178
154
|
import {
|
|
179
|
-
|
|
180
|
-
} from "./chunk-
|
|
155
|
+
capture
|
|
156
|
+
} from "./chunk-HA2GK6KH.js";
|
|
157
|
+
import {
|
|
158
|
+
cast
|
|
159
|
+
} from "./chunk-6S5BMP4A.js";
|
|
160
|
+
import {
|
|
161
|
+
castPlaceholder
|
|
162
|
+
} from "./chunk-HXGWGQL3.js";
|
|
163
|
+
import {
|
|
164
|
+
chapters
|
|
165
|
+
} from "./chunk-2W5XWGGE.js";
|
|
181
166
|
import {
|
|
182
167
|
airplay
|
|
183
168
|
} from "./chunk-JP5X5JDL.js";
|
|
@@ -190,6 +175,21 @@ import {
|
|
|
190
175
|
import {
|
|
191
176
|
audioTrack
|
|
192
177
|
} from "./chunk-AH2VE4UI.js";
|
|
178
|
+
import {
|
|
179
|
+
autoplay
|
|
180
|
+
} from "./chunk-WTHHXWQM.js";
|
|
181
|
+
import {
|
|
182
|
+
backward10
|
|
183
|
+
} from "./chunk-3KD22Z7D.js";
|
|
184
|
+
import {
|
|
185
|
+
bin
|
|
186
|
+
} from "./chunk-XQDJXXGL.js";
|
|
187
|
+
import {
|
|
188
|
+
brightnessDark
|
|
189
|
+
} from "./chunk-XTLPAS7S.js";
|
|
190
|
+
import {
|
|
191
|
+
add
|
|
192
|
+
} from "./chunk-ID72UAJE.js";
|
|
193
193
|
import {
|
|
194
194
|
IconRegistry
|
|
195
195
|
} from "./chunk-3NUEYI6F.js";
|
|
@@ -262,4 +262,4 @@ IconRegistry.registerAll({
|
|
|
262
262
|
goBack,
|
|
263
263
|
mic
|
|
264
264
|
});
|
|
265
|
-
//# sourceMappingURL=chunk-
|
|
265
|
+
//# sourceMappingURL=chunk-CS262ZPQ.js.map
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "./chunk-
|
|
2
|
+
VoicePlug
|
|
3
|
+
} from "./chunk-EDDHWZ2G.js";
|
|
4
4
|
import {
|
|
5
5
|
VolumePlug
|
|
6
6
|
} from "./chunk-YTENMWZC.js";
|
|
7
|
-
import {
|
|
8
|
-
TimePlug
|
|
9
|
-
} from "./chunk-EOF74JXP.js";
|
|
10
7
|
import {
|
|
11
8
|
SleepTimerPlug
|
|
12
9
|
} from "./chunk-FVLZ3OEJ.js";
|
|
13
10
|
import {
|
|
14
|
-
|
|
15
|
-
} from "./chunk-
|
|
11
|
+
TimePlug
|
|
12
|
+
} from "./chunk-EOF74JXP.js";
|
|
13
|
+
import {
|
|
14
|
+
TimeTravelPlug
|
|
15
|
+
} from "./chunk-DVWO4TAJ.js";
|
|
16
16
|
import {
|
|
17
17
|
PlaybackRatePlug
|
|
18
18
|
} from "./chunk-HJTL3RDC.js";
|
|
@@ -20,11 +20,11 @@ import {
|
|
|
20
20
|
PosterPlug
|
|
21
21
|
} from "./chunk-7Z3ELIF5.js";
|
|
22
22
|
import {
|
|
23
|
-
|
|
24
|
-
} from "./chunk-
|
|
23
|
+
LockedPlug
|
|
24
|
+
} from "./chunk-U32SPBGP.js";
|
|
25
25
|
import {
|
|
26
26
|
PanelPlug
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-2E73S6VU.js";
|
|
28
28
|
import {
|
|
29
29
|
PersistPlug
|
|
30
30
|
} from "./chunk-7VQGFCDP.js";
|
|
@@ -35,11 +35,20 @@ import {
|
|
|
35
35
|
ObjectFitPlug
|
|
36
36
|
} from "./chunk-AFFUBWU7.js";
|
|
37
37
|
import {
|
|
38
|
-
|
|
39
|
-
} from "./chunk-
|
|
38
|
+
OverlayPlug
|
|
39
|
+
} from "./chunk-YDEE32IH.js";
|
|
40
40
|
import {
|
|
41
41
|
ModesCastPin
|
|
42
42
|
} from "./chunk-75IZQRFT.js";
|
|
43
|
+
import {
|
|
44
|
+
MetadataPlug
|
|
45
|
+
} from "./chunk-VXVCJNJA.js";
|
|
46
|
+
import {
|
|
47
|
+
KeysPlug
|
|
48
|
+
} from "./chunk-MVECTY6M.js";
|
|
49
|
+
import {
|
|
50
|
+
ModesAirPlayPin
|
|
51
|
+
} from "./chunk-HKC2BLPK.js";
|
|
43
52
|
import {
|
|
44
53
|
ModesFullscreenPin,
|
|
45
54
|
ModesMiniplayerPin,
|
|
@@ -47,15 +56,6 @@ import {
|
|
|
47
56
|
ModesPlug,
|
|
48
57
|
ModesTheaterPin
|
|
49
58
|
} from "./chunk-2PAMF7VB.js";
|
|
50
|
-
import {
|
|
51
|
-
KeysPlug
|
|
52
|
-
} from "./chunk-MVECTY6M.js";
|
|
53
|
-
import {
|
|
54
|
-
LockedPlug
|
|
55
|
-
} from "./chunk-U32SPBGP.js";
|
|
56
|
-
import {
|
|
57
|
-
MetadataPlug
|
|
58
|
-
} from "./chunk-VXVCJNJA.js";
|
|
59
59
|
import {
|
|
60
60
|
FramePlug
|
|
61
61
|
} from "./chunk-6U7TJ55D.js";
|
|
@@ -71,8 +71,8 @@ import {
|
|
|
71
71
|
FastPlayPlug
|
|
72
72
|
} from "./chunk-SSEY3TRB.js";
|
|
73
73
|
import {
|
|
74
|
-
|
|
75
|
-
} from "./chunk-
|
|
74
|
+
CaptionsPlug
|
|
75
|
+
} from "./chunk-DIPJKHL6.js";
|
|
76
76
|
import {
|
|
77
77
|
ControlPanelDraggablePin,
|
|
78
78
|
ControlPanelPlug
|
|
@@ -83,27 +83,27 @@ import {
|
|
|
83
83
|
import {
|
|
84
84
|
CSSPlug
|
|
85
85
|
} from "./chunk-33S55DYW.js";
|
|
86
|
+
import {
|
|
87
|
+
AutoPlug
|
|
88
|
+
} from "./chunk-JSRE6TE6.js";
|
|
86
89
|
import {
|
|
87
90
|
BrightnessPlug
|
|
88
91
|
} from "./chunk-YE35AUGV.js";
|
|
89
92
|
import {
|
|
90
|
-
|
|
91
|
-
} from "./chunk-
|
|
93
|
+
SkeletonPlug
|
|
94
|
+
} from "./chunk-HJSF7FIY.js";
|
|
95
|
+
import {
|
|
96
|
+
PlaylistPlug
|
|
97
|
+
} from "./chunk-FNBLEFZP.js";
|
|
92
98
|
import {
|
|
93
99
|
AmbiencePlug
|
|
94
100
|
} from "./chunk-EJTIHJQW.js";
|
|
95
|
-
import {
|
|
96
|
-
SkeletonPlug
|
|
97
|
-
} from "./chunk-HJSF7FIY.js";
|
|
98
101
|
import {
|
|
99
102
|
AdsPlug
|
|
100
103
|
} from "./chunk-G4CMSCPP.js";
|
|
101
104
|
import {
|
|
102
105
|
LightPlug
|
|
103
106
|
} from "./chunk-2DR4K47N.js";
|
|
104
|
-
import {
|
|
105
|
-
PlaylistPlug
|
|
106
|
-
} from "./chunk-FNBLEFZP.js";
|
|
107
107
|
import {
|
|
108
108
|
DisabledPlug
|
|
109
109
|
} from "./chunk-L7JGVG2M.js";
|
|
@@ -162,4 +162,4 @@ for (const Pin of [
|
|
|
162
162
|
GestureTouchPin
|
|
163
163
|
])
|
|
164
164
|
PinRegistry.register(Pin);
|
|
165
|
-
//# sourceMappingURL=chunk-
|
|
165
|
+
//# sourceMappingURL=chunk-G7LPQ2QM.js.map
|
|
@@ -7,30 +7,9 @@ import {
|
|
|
7
7
|
import {
|
|
8
8
|
BrightnessControl
|
|
9
9
|
} from "./chunk-SW7QOR7V.js";
|
|
10
|
-
import {
|
|
11
|
-
CastPlaceholder
|
|
12
|
-
} from "./chunk-DLN6CCVO.js";
|
|
13
|
-
import {
|
|
14
|
-
ErrorPlaceholder
|
|
15
|
-
} from "./chunk-IU2B6VX5.js";
|
|
16
|
-
import {
|
|
17
|
-
PiPPlaceholder
|
|
18
|
-
} from "./chunk-6XZXEBLR.js";
|
|
19
10
|
import {
|
|
20
11
|
RangeInput
|
|
21
12
|
} from "./chunk-PNUIVHH4.js";
|
|
22
|
-
import {
|
|
23
|
-
PreviousButton
|
|
24
|
-
} from "./chunk-ATLSJJZX.js";
|
|
25
|
-
import {
|
|
26
|
-
RemoveMiniplayerButton
|
|
27
|
-
} from "./chunk-J5ESLAGG.js";
|
|
28
|
-
import {
|
|
29
|
-
SettingsButton
|
|
30
|
-
} from "./chunk-WZINXIIW.js";
|
|
31
|
-
import {
|
|
32
|
-
TheaterButton
|
|
33
|
-
} from "./chunk-CTXFLY7V.js";
|
|
34
13
|
import {
|
|
35
14
|
TimeButton
|
|
36
15
|
} from "./chunk-5D3HDH6Z.js";
|
|
@@ -40,21 +19,6 @@ import {
|
|
|
40
19
|
import {
|
|
41
20
|
VoiceButton
|
|
42
21
|
} from "./chunk-V7NE5HVK.js";
|
|
43
|
-
import {
|
|
44
|
-
AirPlayPlaceholder
|
|
45
|
-
} from "./chunk-6QYP3OA6.js";
|
|
46
|
-
import {
|
|
47
|
-
FullscreenButton
|
|
48
|
-
} from "./chunk-M4MAELFE.js";
|
|
49
|
-
import {
|
|
50
|
-
FullscreenLockButton
|
|
51
|
-
} from "./chunk-4PKSRMKZ.js";
|
|
52
|
-
import {
|
|
53
|
-
FullscreenOrientationButton
|
|
54
|
-
} from "./chunk-ZYZP6OTZ.js";
|
|
55
|
-
import {
|
|
56
|
-
Meta
|
|
57
|
-
} from "./chunk-WMDE4WR7.js";
|
|
58
22
|
import {
|
|
59
23
|
NextButton
|
|
60
24
|
} from "./chunk-ZJTUWRBI.js";
|
|
@@ -68,17 +32,17 @@ import {
|
|
|
68
32
|
PlayPauseButton
|
|
69
33
|
} from "./chunk-NFKJ322S.js";
|
|
70
34
|
import {
|
|
71
|
-
|
|
72
|
-
} from "./chunk-
|
|
35
|
+
PreviousButton
|
|
36
|
+
} from "./chunk-ATLSJJZX.js";
|
|
73
37
|
import {
|
|
74
|
-
|
|
75
|
-
} from "./chunk-
|
|
38
|
+
RemoveMiniplayerButton
|
|
39
|
+
} from "./chunk-J5ESLAGG.js";
|
|
76
40
|
import {
|
|
77
|
-
|
|
78
|
-
} from "./chunk-
|
|
41
|
+
SettingsButton
|
|
42
|
+
} from "./chunk-WZINXIIW.js";
|
|
79
43
|
import {
|
|
80
|
-
|
|
81
|
-
} from "./chunk-
|
|
44
|
+
TheaterButton
|
|
45
|
+
} from "./chunk-CTXFLY7V.js";
|
|
82
46
|
import {
|
|
83
47
|
ChapterButton
|
|
84
48
|
} from "./chunk-TBXDQT5T.js";
|
|
@@ -91,6 +55,18 @@ import {
|
|
|
91
55
|
import {
|
|
92
56
|
Forward10Button
|
|
93
57
|
} from "./chunk-MNYFUWSL.js";
|
|
58
|
+
import {
|
|
59
|
+
FullscreenButton
|
|
60
|
+
} from "./chunk-M4MAELFE.js";
|
|
61
|
+
import {
|
|
62
|
+
FullscreenLockButton
|
|
63
|
+
} from "./chunk-4PKSRMKZ.js";
|
|
64
|
+
import {
|
|
65
|
+
FullscreenOrientationButton
|
|
66
|
+
} from "./chunk-ZYZP6OTZ.js";
|
|
67
|
+
import {
|
|
68
|
+
Meta
|
|
69
|
+
} from "./chunk-WMDE4WR7.js";
|
|
94
70
|
import {
|
|
95
71
|
AirPlayButton
|
|
96
72
|
} from "./chunk-X3RI4YSK.js";
|
|
@@ -103,6 +79,30 @@ import {
|
|
|
103
79
|
import {
|
|
104
80
|
BigPlayPauseButton
|
|
105
81
|
} from "./chunk-TA6WAQBX.js";
|
|
82
|
+
import {
|
|
83
|
+
BigPreviousButton
|
|
84
|
+
} from "./chunk-JOHN3OSE.js";
|
|
85
|
+
import {
|
|
86
|
+
CaptionsButton
|
|
87
|
+
} from "./chunk-GDT3ZMZN.js";
|
|
88
|
+
import {
|
|
89
|
+
CaptureButton
|
|
90
|
+
} from "./chunk-EJV73FIY.js";
|
|
91
|
+
import {
|
|
92
|
+
CastButton
|
|
93
|
+
} from "./chunk-6OT6DHIW.js";
|
|
94
|
+
import {
|
|
95
|
+
AirPlayPlaceholder
|
|
96
|
+
} from "./chunk-6QYP3OA6.js";
|
|
97
|
+
import {
|
|
98
|
+
CastPlaceholder
|
|
99
|
+
} from "./chunk-DLN6CCVO.js";
|
|
100
|
+
import {
|
|
101
|
+
ErrorPlaceholder
|
|
102
|
+
} from "./chunk-IU2B6VX5.js";
|
|
103
|
+
import {
|
|
104
|
+
PiPPlaceholder
|
|
105
|
+
} from "./chunk-6XZXEBLR.js";
|
|
106
106
|
import {
|
|
107
107
|
Buffer
|
|
108
108
|
} from "./chunk-IA77Q36X.js";
|
|
@@ -159,4 +159,4 @@ for (const Comp of [
|
|
|
159
159
|
ErrorPlaceholder
|
|
160
160
|
])
|
|
161
161
|
ComponentRegistry.register(Comp);
|
|
162
|
-
//# sourceMappingURL=chunk-
|
|
162
|
+
//# sourceMappingURL=chunk-P6BOUZA5.js.map
|