tmg-media-player 0.0.39 → 0.0.40
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-Z6FOLLSW.js → chunk-5QPPF5CW.js} +2 -2
- package/dist/{chunk-IATRVQEV.js → chunk-5V7L4U3B.js} +5 -5
- package/dist/{chunk-GTJAZRD3.js → chunk-7XTGBBTZ.js} +5 -5
- package/dist/chunk-7XTGBBTZ.js.map +1 -0
- package/dist/{chunk-SIOCMDUM.js → chunk-D7Y72JWH.js} +5 -2
- package/dist/chunk-D7Y72JWH.js.map +1 -0
- package/dist/{chunk-OE7J6SUZ.js → chunk-DNS6EFXH.js} +2 -2
- package/dist/{chunk-JLUX5NZJ.js → chunk-E5PBQLV3.js} +55 -55
- package/dist/{chunk-3VIUZIM7.js → chunk-I6Q53IPI.js} +2 -2
- package/dist/{chunk-YTJWGNAJ.js → chunk-LNING7Z4.js} +5 -5
- package/dist/{chunk-5MZHRJNP.js → chunk-OSSQUF2N.js} +96 -96
- package/dist/{chunk-WEY7BZMN.js → chunk-PD72HDH4.js} +106 -106
- package/dist/{chunk-HWCO6STB.js → chunk-PK4FFZZ4.js} +5 -5
- package/dist/{chunk-MMQ77CAP.js → chunk-PUPJFC6P.js} +26 -26
- package/dist/{chunk-LRZ73HA5.js → chunk-QT5XXSG7.js} +4 -4
- package/dist/{chunk-K4MQGUJD.js → chunk-R4CYVZ7J.js} +19 -19
- package/dist/{chunk-VCVEE35I.js → chunk-RIJ2SNV3.js} +2 -2
- package/dist/{chunk-5YH4S4N3.js → chunk-SFNWCR4G.js} +18 -18
- package/dist/{chunk-GVIT6AJ7.js → chunk-SJOESZ5R.js} +2 -2
- package/dist/{chunk-HO5PXZBF.js → chunk-SUEKTA5D.js} +2 -2
- package/dist/{chunk-N5XYU7BI.js → chunk-TJMGAIJ2.js} +50 -50
- package/dist/{chunk-JB5NAVCL.js → chunk-VIJEMQ77.js} +7 -7
- package/dist/{chunk-CXTBQYIV.js → chunk-VOHWWQMQ.js} +2 -2
- package/dist/{chunk-KB5LDVAF.js → chunk-VUX4UMWS.js} +2 -2
- package/dist/{chunk-J2GA63AT.js → chunk-XV33TV7K.js} +29 -29
- package/dist/{chunk-PZZGTM3A.js → chunk-ZRJ47BPK.js} +7 -7
- package/dist/components/controls/fullscreenOrientation.js +2 -2
- package/dist/components/controls/timeline/index.js +3 -3
- package/dist/components/holders/pipPlaceholder.js +3 -3
- package/dist/components/icons/z-register.js +25 -25
- package/dist/components/notifiers/z-register.js +7 -7
- package/dist/components/z-register.js +12 -12
- package/dist/core/controller.js +2 -2
- package/dist/index.js +3 -3
- package/dist/init.js +3 -3
- package/dist/plugs/menus/main/actions.js +2 -2
- package/dist/plugs/menus/settings/auto.js +2 -2
- package/dist/plugs/menus/settings/frame.js +2 -2
- package/dist/plugs/menus/settings/modes.js +2 -2
- package/dist/plugs/menus/settings/sleepTimer.js +2 -2
- package/dist/plugs/menus/settings/toasts.js +2 -2
- package/dist/plugs/menus/settings/voice.js +2 -2
- package/dist/plugs/menus/z-register.js +15 -15
- package/dist/plugs/settings/auto/index.js +2 -2
- package/dist/plugs/settings/captions/index.js +3 -3
- package/dist/plugs/settings/frame/index.cjs +1 -1
- package/dist/plugs/settings/frame/index.cjs.map +1 -1
- package/dist/plugs/settings/frame/index.js +1 -1
- package/dist/plugs/settings/gesture/index.cjs +1 -1
- package/dist/plugs/settings/gesture/index.cjs.map +1 -1
- package/dist/plugs/settings/gesture/index.js +2 -2
- package/dist/plugs/settings/gesture/touch.cjs +1 -1
- package/dist/plugs/settings/gesture/touch.cjs.map +1 -1
- package/dist/plugs/settings/gesture/touch.js +2 -2
- package/dist/plugs/settings/gesture/wheel.cjs +1 -1
- package/dist/plugs/settings/gesture/wheel.cjs.map +1 -1
- package/dist/plugs/settings/gesture/wheel.js +2 -2
- package/dist/plugs/settings/modes/airplay.js +4 -4
- package/dist/plugs/settings/modes/cast.js +4 -4
- package/dist/plugs/settings/modes/fullscreen.js +3 -3
- package/dist/plugs/settings/modes/index.js +3 -3
- package/dist/plugs/settings/modes/miniplayer.js +3 -3
- package/dist/plugs/settings/modes/pictureInPicture.js +3 -3
- package/dist/plugs/settings/modes/theater.js +3 -3
- package/dist/plugs/settings/sleepTimer/index.js +1 -1
- package/dist/plugs/settings/timeTravel/index.js +3 -3
- package/dist/plugs/settings/voice/index.js +2 -2
- package/dist/plugs/settings/volume/index.js +3 -3
- package/dist/plugs/z-register.cjs +2 -2
- package/dist/plugs/z-register.cjs.map +1 -1
- package/dist/plugs/z-register.js +43 -43
- package/dist/super/components/icons.js +55 -55
- package/dist/super/components/index.js +104 -104
- package/dist/super/components/notifiers.js +19 -19
- package/dist/super/plugs/index.cjs +2 -2
- package/dist/super/plugs/index.cjs.map +1 -1
- package/dist/super/plugs/index.js +125 -125
- package/dist/super/plugs/menus.js +33 -33
- package/dist/super/techs.js +9 -9
- package/dist/super/utils.js +26 -26
- package/dist/super.cjs +2 -2
- package/dist/super.cjs.map +1 -1
- package/dist/super.global.js +2 -2
- package/dist/super.global.js.map +1 -1
- package/dist/super.js +109 -109
- package/dist/techs/dash.js +3 -3
- package/dist/techs/hls.js +3 -3
- package/dist/techs/html5.js +2 -2
- package/dist/techs/shaka.js +3 -3
- package/dist/techs/youtube.js +2 -2
- package/dist/techs/z-register.js +6 -6
- package/dist/tools/player.js +2 -2
- package/dist/tools/runtime/index.js +2 -2
- package/package.json +1 -1
- package/dist/chunk-GTJAZRD3.js.map +0 -1
- package/dist/chunk-SIOCMDUM.js.map +0 -1
- /package/dist/{chunk-Z6FOLLSW.js.map → chunk-5QPPF5CW.js.map} +0 -0
- /package/dist/{chunk-IATRVQEV.js.map → chunk-5V7L4U3B.js.map} +0 -0
- /package/dist/{chunk-OE7J6SUZ.js.map → chunk-DNS6EFXH.js.map} +0 -0
- /package/dist/{chunk-JLUX5NZJ.js.map → chunk-E5PBQLV3.js.map} +0 -0
- /package/dist/{chunk-3VIUZIM7.js.map → chunk-I6Q53IPI.js.map} +0 -0
- /package/dist/{chunk-YTJWGNAJ.js.map → chunk-LNING7Z4.js.map} +0 -0
- /package/dist/{chunk-5MZHRJNP.js.map → chunk-OSSQUF2N.js.map} +0 -0
- /package/dist/{chunk-WEY7BZMN.js.map → chunk-PD72HDH4.js.map} +0 -0
- /package/dist/{chunk-HWCO6STB.js.map → chunk-PK4FFZZ4.js.map} +0 -0
- /package/dist/{chunk-MMQ77CAP.js.map → chunk-PUPJFC6P.js.map} +0 -0
- /package/dist/{chunk-LRZ73HA5.js.map → chunk-QT5XXSG7.js.map} +0 -0
- /package/dist/{chunk-K4MQGUJD.js.map → chunk-R4CYVZ7J.js.map} +0 -0
- /package/dist/{chunk-VCVEE35I.js.map → chunk-RIJ2SNV3.js.map} +0 -0
- /package/dist/{chunk-5YH4S4N3.js.map → chunk-SFNWCR4G.js.map} +0 -0
- /package/dist/{chunk-GVIT6AJ7.js.map → chunk-SJOESZ5R.js.map} +0 -0
- /package/dist/{chunk-HO5PXZBF.js.map → chunk-SUEKTA5D.js.map} +0 -0
- /package/dist/{chunk-N5XYU7BI.js.map → chunk-TJMGAIJ2.js.map} +0 -0
- /package/dist/{chunk-JB5NAVCL.js.map → chunk-VIJEMQ77.js.map} +0 -0
- /package/dist/{chunk-CXTBQYIV.js.map → chunk-VOHWWQMQ.js.map} +0 -0
- /package/dist/{chunk-KB5LDVAF.js.map → chunk-VUX4UMWS.js.map} +0 -0
- /package/dist/{chunk-J2GA63AT.js.map → chunk-XV33TV7K.js.map} +0 -0
- /package/dist/{chunk-PZZGTM3A.js.map → chunk-ZRJ47BPK.js.map} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ModesPlug
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-VOHWWQMQ.js";
|
|
4
4
|
import {
|
|
5
5
|
MODES_AIRPLAY_BUILD
|
|
6
6
|
} from "./chunk-OBT4ZZUV.js";
|
|
@@ -65,4 +65,4 @@ __publicField(ModesAirPlayPin, "BUILD", MODES_AIRPLAY_BUILD);
|
|
|
65
65
|
export {
|
|
66
66
|
ModesAirPlayPin
|
|
67
67
|
};
|
|
68
|
-
//# sourceMappingURL=chunk-
|
|
68
|
+
//# sourceMappingURL=chunk-5QPPF5CW.js.map
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
HTML5Tech
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-QT5XXSG7.js";
|
|
4
|
+
import {
|
|
5
|
+
MSE_ENABLED
|
|
6
|
+
} from "./chunk-RNETXJ63.js";
|
|
4
7
|
import {
|
|
5
8
|
DASH_EXTENSIONS,
|
|
6
9
|
HLS_EXTENSIONS
|
|
7
10
|
} from "./chunk-2XJFCVED.js";
|
|
8
|
-
import {
|
|
9
|
-
MSE_ENABLED
|
|
10
|
-
} from "./chunk-RNETXJ63.js";
|
|
11
11
|
import {
|
|
12
12
|
loadResource
|
|
13
13
|
} from "./chunk-RCQPJKYI.js";
|
|
@@ -177,4 +177,4 @@ __publicField(ShakaTech, "techName", "shaka");
|
|
|
177
177
|
export {
|
|
178
178
|
ShakaTech
|
|
179
179
|
};
|
|
180
|
-
//# sourceMappingURL=chunk-
|
|
180
|
+
//# sourceMappingURL=chunk-5V7L4U3B.js.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
+
import {
|
|
2
|
+
GestureBasePin
|
|
3
|
+
} from "./chunk-DWGQW5JP.js";
|
|
1
4
|
import {
|
|
2
5
|
GESTURE_BUILD,
|
|
3
6
|
GESTURE_TOUCH_BUILD,
|
|
4
7
|
GESTURE_WHEEL_BUILD
|
|
5
8
|
} from "./chunk-NHQA3G5Z.js";
|
|
6
|
-
import {
|
|
7
|
-
GestureBasePin
|
|
8
|
-
} from "./chunk-DWGQW5JP.js";
|
|
9
9
|
import {
|
|
10
10
|
BasePlug
|
|
11
11
|
} from "./chunk-5EKOUIF3.js";
|
|
@@ -140,7 +140,7 @@ var GesturePlug = class extends BasePlug {
|
|
|
140
140
|
this.ctlr.plug("settings.overlay")?.delay();
|
|
141
141
|
}
|
|
142
142
|
handleRightClick(e) {
|
|
143
|
-
e.preventDefault(), e.stopImmediatePropagation(), this.ctlr.plug("settings.panel")?.menu.open({ x: e.clientX, y: e.clientY });
|
|
143
|
+
e.preventDefault(), e.stopImmediatePropagation(), !IS_MOBILE && this.ctlr.plug("settings.panel")?.menu.open({ x: e.clientX, y: e.clientY });
|
|
144
144
|
}
|
|
145
145
|
handleClick(e) {
|
|
146
146
|
if (e.target !== this.ctlr.DOM.controlsContainer) return;
|
|
@@ -295,4 +295,4 @@ export {
|
|
|
295
295
|
GestureWheelPin,
|
|
296
296
|
GesturePlug
|
|
297
297
|
};
|
|
298
|
-
//# sourceMappingURL=chunk-
|
|
298
|
+
//# sourceMappingURL=chunk-7XTGBBTZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/ts/plugs/settings/gesture/index.ts","../src/ts/plugs/settings/gesture/wheel.ts","../src/ts/plugs/settings/gesture/touch.ts"],"sourcesContent":["import { BasePlug } from \"../../base\";\r\nimport type { GestureConfig, GestureState } from \"./types\";\r\nimport type { GestureWheelPin } from \"./wheel\";\r\nimport type { GestureTouchPin } from \"./touch\";\r\nimport { GESTURE_BUILD } from \"./build\";\r\nimport { PinRegistry } from \"@core/registries\";\r\nimport { Controller } from \"@core/controller\";\r\nimport { addSafeClicks } from \"@utils/dom\";\r\nimport { setTimeout } from \"@utils/fn\";\r\nimport { IS_MOBILE } from \"@utils/env\";\r\nimport { rippleHandler } from \"@t007/utils/hooks/vanilla\";\r\n\r\nexport class GesturePlug extends BasePlug<GestureConfig, GestureState> {\r\n public static readonly plugName = \"gesture\";\r\n public static readonly BUILD = GESTURE_BUILD;\r\n public wheel?: GestureWheelPin;\r\n public touch?: GestureTouchPin;\r\n public skipPos: \"left\" | \"right\" | null = null;\r\n protected focusSubjectId = \"\";\r\n\r\n constructor(ctlr: Controller, config = ctlr.settings.gesture) {\r\n super(ctlr, config, { skipping: false });\r\n const WheelPin = PinRegistry.get(\"gesture.wheel\"),\r\n TouchPin = PinRegistry.get(\"gesture.touch\");\r\n WheelPin && (this.wheel = new WheelPin(this.ctlr, this.config.wheel)), TouchPin && (this.touch = new TouchPin(this.ctlr, this.config.touch));\r\n }\r\n\r\n public override wire(): void {\r\n const run = () => {\r\n // Event Listeners\r\n this.media.container.addEventListener(\"contextmenu\", this.handleRightClick, { signal: this.signal });\r\n addSafeClicks(this.ctlr.DOM.controlsContainer, this.handleClick, this.handleDblClick, { capture: true, signal: this.signal });\r\n for (const el of [this.ctlr.DOM.controlsContainer, this.ctlr.DOM.bottomControlsWrapper]) {\r\n el?.addEventListener(\"click\", this.handleAnyClick, { capture: true, signal: this.signal });\r\n el?.addEventListener(\"focusin\", this.handleFocusIn, { capture: true, signal: this.signal });\r\n el?.addEventListener(\"keydown\", this.handleKeyFocusIn, { capture: true, signal: this.signal });\r\n for (const evt of [\"pointermove\", \"dragenter\", \"scroll\"]) el?.addEventListener(evt, this.handleHoverPointerActive, { capture: true, signal: this.signal });\r\n el?.addEventListener(\"mouseleave\", this.handleHoverPointerOut, { capture: true, signal: this.signal });\r\n }\r\n // Utility Injection\r\n this.wheel?.wire(), this.touch?.wire();\r\n };\r\n this.ctlr.flags.wired ? run() : this.ctlr.state.wonce(\"readyState\", run, { signal: this.signal }); // #HEAVY: waits for !light\r\n // Post Wiring\r\n super.wire();\r\n }\r\n\r\n public override mount(): void {\r\n this.wheel?.mount?.(), this.touch?.mount?.();\r\n }\r\n\r\n protected handleAnyClick(): void {\r\n this.ctlr.plug(\"settings.overlay\")?.delay();\r\n }\r\n protected handleRightClick(e: MouseEvent): void {\r\n e.preventDefault(), e.stopImmediatePropagation(), !IS_MOBILE && this.ctlr.plug(\"settings.panel\")?.menu.open({ x: e.clientX, y: e.clientY });\r\n }\r\n protected handleClick(e: MouseEvent): void {\r\n if (e.target !== this.ctlr.DOM.controlsContainer) return;\r\n if (this.ctlr.plug(\"settings.fastPlay\")?.state.active && (this.ctlr.plug(\"settings.keys\")?.playKeySeq ?? 1) < 1) return;\r\n if (IS_MOBILE && !this.media.state.pictureInPicture && !this.media.status.waiting && !this.media.status.ended && (!this.ctlr.plug(\"settings.time\")?.skipNotifier || !this.ctlr.isUIActive(\"overlay\"))) !/hidden|persistent/.test(this.settings.overlay.behavior.value) && this.media.container.classList.toggle(\"tmg-media-overlay\");\r\n if (!this.media.state.miniplayer && this.config.click) (this.media.intent[this.config.click] = !this.media.state[this.config.click] as never), this.config.click === \"paused\" && this.ctlr.notify?.(this.media.intent.paused ? \"mediaPause\" : \"mediaPlay\");\r\n }\r\n protected handleDblClick(e: MouseEvent): void {\r\n const { clientX: x, target, detail } = e;\r\n if (target !== this.ctlr.DOM.controlsContainer) return;\r\n const { width, left } = this.media.container.getBoundingClientRect(),\r\n pos = x - left > width * 0.65 ? \"right\" : x - left < width * 0.35 ? \"left\" : \"center\";\r\n if (this.state.skipping && pos !== this.skipPos) {\r\n this.ceaseSkip();\r\n if (detail === 1) return;\r\n }\r\n if (pos === \"center\" && this.config.dblClick) return void ((this.media.intent[this.config.dblClick] = !this.media.state[this.config.dblClick] as never), this.config.dblClick === \"paused\" && this.ctlr.notify?.(this.media.intent.paused ? \"mediaPause\" : \"mediaPlay\"));\r\n if (this.state.skipping && detail === 2) return;\r\n if (!this.state.skipping) this.persistSkip(pos as \"left\" | \"right\");\r\n this.ctlr.plug(\"settings.time\")?.skip(pos === \"right\" ? this.settings.time.skip : -this.settings.time.skip);\r\n rippleHandler(e, { target: this.ctlr.plug(\"settings.time\")?.skipNotifier });\r\n }\r\n\r\n protected handleFocusIn({ target }: FocusEvent, t = target as HTMLElement): void {\r\n this.focusSubjectId = String(!t?.matches?.(\":focus-visible\") && (t?.dataset?.controlId ?? t?.parentElement?.dataset?.controlId));\r\n }\r\n protected handleKeyFocusIn({ target }: KeyboardEvent, t = target as HTMLElement): void {\r\n (t?.dataset?.controlId ?? t?.parentElement?.dataset?.controlId) === this.focusSubjectId && t.blur();\r\n }\r\n\r\n protected handleHoverPointerActive(e: Event, { target, pointerType } = e as PointerEvent): void {\r\n (!pointerType || !IS_MOBILE) && this.ctlr.plug(\"settings.overlay\")?.show();\r\n pointerType && (target as HTMLElement).closest(\".tmg-media-side-controls-wrapper\") && clearTimeout(this.ctlr.plug(\"settings.overlay\")?.overlayDelayId ?? -1);\r\n }\r\n protected handleHoverPointerOut(): void {\r\n setTimeout(() => !IS_MOBILE && !this.media.container.matches(\":hover\") && this.ctlr.plug(\"settings.overlay\")?.hide(), 0, this.signal);\r\n }\r\n\r\n public persistSkip(pos: \"left\" | \"right\"): void {\r\n if (this.state.skipping) return;\r\n this.media.container.addEventListener(\"click\", this.handleDblClick, { signal: this.signal });\r\n (this.state.skipping = true), (this.skipPos = pos);\r\n }\r\n public ceaseSkip(): void {\r\n if (!this.state.skipping) return;\r\n this.media.container.removeEventListener(\"click\", this.handleDblClick);\r\n (this.state.skipping = false), (this.skipPos = null);\r\n }\r\n\r\n protected override onDestroy(): void {\r\n this.wheel?.destroy(), this.touch?.destroy(), super.onDestroy();\r\n }\r\n}\r\n\r\nexport type * from \"./types\";\r\nexport * from \"./build\";\r\nexport * from \"./touch\";\r\nexport * from \"./wheel\";\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface PlugRegistryMap {\r\n \"settings.gesture\": typeof GesturePlug;\r\n }\r\n}\r\n\r\ndeclare module \"@defs/config\" {\r\n interface Settings {\r\n gesture: GestureConfig;\r\n }\r\n}\r\n","import { GESTURE_WHEEL_BUILD } from \"./build\";\r\nimport { GesturePlug } from \"./index\";\r\nimport { clamp } from \"@utils/num\";\r\nimport { setTimeout } from \"@utils/fn\";\r\nimport { GestureBasePin } from \"./base\";\r\nimport { GestureWheelConfig } from \"./types\";\r\n\r\nexport class GestureWheelPin extends GestureBasePin<GestureWheelConfig> {\r\n public static readonly pinName = \"wheel\";\r\n public static get Plug() {\r\n return GesturePlug;\r\n }\r\n public static readonly BUILD = GESTURE_WHEEL_BUILD;\r\n protected timeoutId: number | null = null;\r\n protected zone: { x: \"left\" | \"right\"; y: \"top\" | \"bottom\" } | null = null;\r\n protected xCheck = false;\r\n protected yCheck = false;\r\n protected timePercent = 0;\r\n protected timeMultiplier = 1;\r\n protected deltaY = 0;\r\n protected nextTime = 0;\r\n\r\n public override wire(): void {\r\n // Event Listeners\r\n this.media.container.addEventListener(\"wheel\", this.handleWheel, { passive: false, signal: this.signal });\r\n }\r\n\r\n protected canHandle(e: WheelEvent): boolean {\r\n return !this.media.state.locked && !this.ctlr.config.disabled && e.target === this.ctlr.DOM.controlsContainer && !this.plug?.touch?.xCheck && !this.plug?.touch?.yCheck && !this.ctlr.plug(\"settings.fastPlay\")?.state.active && (this.media.state.fullscreen || !!this.media.status.floatingPlayer);\r\n }\r\n\r\n protected handleWheel(e: WheelEvent): void {\r\n if (!this.canHandle(e)) return;\r\n e.preventDefault();\r\n this.timeoutId ? clearTimeout(this.timeoutId) : this.handleInit(e);\r\n this.timeoutId = setTimeout(this.handleStop, this.config.timeout, this.signal);\r\n this.handleMove(e);\r\n }\r\n\r\n protected handleInit({ clientX: x, clientY: y }: WheelEvent): void {\r\n const { left, top, right, bottom } = this.media.container.getBoundingClientRect();\r\n this.zone = { x: x - left > (right - left) / 2 ? \"right\" : \"left\", y: y - top > (bottom - top) / 2 ? \"bottom\" : \"top\" };\r\n this.deltaY = this.timePercent = 0;\r\n this.timeMultiplier = 1;\r\n }\r\n\r\n protected handleMove({ clientX: x, deltaX, deltaY, shiftKey: alt }: WheelEvent): void {\r\n deltaX = alt ? deltaY : deltaX;\r\n const { width: aWidth, height: aHeight, left } = this.media.container.getBoundingClientRect(),\r\n width = alt ? aHeight : aWidth,\r\n rHeight = ((alt ? aWidth : aHeight) * this.config.yRatio) / 2;\r\n let xPercent = -deltaX / (width * this.config.xRatio);\r\n xPercent = this.timePercent += xPercent;\r\n const xSign = xPercent >= 0 ? \"+\" : \"-\";\r\n xPercent = Math.abs(xPercent);\r\n if (deltaX || alt) {\r\n if (!this.config.timeline || this.yCheck) return this.handleStop();\r\n this.xCheck = true;\r\n this.ctlr.plug(\"settings.notifiers\")?.comp(\"touchTimelineNotifier\")?.active();\r\n this.applyTimeline({ percent: xPercent, sign: xSign, multiplier: this.timeMultiplier });\r\n if (alt) return;\r\n }\r\n if (deltaY) {\r\n if (this.xCheck) return this.applyTimeline({ percent: xPercent, sign: xSign, multiplier: (this.timeMultiplier = 1 - clamp(0, Math.abs((this.deltaY += deltaY)), rHeight) / rHeight) });\r\n const cancel = (this.zone?.x === \"right\" && !this.config.volume) || (this.zone?.x === \"left\" && !this.config.brightness);\r\n if (cancel || (x - left > width / 2 ? \"right\" : \"left\") !== this.zone?.x) return this.handleStop();\r\n this.yCheck = true;\r\n // prettier-ignore\r\n this.ctlr.plug(\"settings.notifiers\")?.comp(this.zone?.x === \"right\" ? \"touchVolumeNotifier\" : \"touchBrightnessNotifier\")?.active();\r\n this.applyRange(this.zone?.x === \"right\" ? \"volume\" : \"brightness\", clamp(0, Math.abs(deltaY), rHeight * 2) / (rHeight * 2), -deltaY >= 0 ? \"+\" : \"-\");\r\n }\r\n }\r\n\r\n protected handleStop(): void {\r\n this.timeoutId = null;\r\n if (this.yCheck) {\r\n this.yCheck = false;\r\n this.ctlr.plug(\"settings.overlay\")?.hide();\r\n this.ctlr.plug(\"settings.notifiers\")?.comp(\"touchVolumeNotifier\")?.inactive(), this.ctlr.plug(\"settings.notifiers\")?.comp(\"touchBrightnessNotifier\")?.inactive();\r\n }\r\n if (this.xCheck) {\r\n this.xCheck = false;\r\n this.ctlr.plug(\"settings.notifiers\")?.comp(\"touchTimelineNotifier\")?.inactive();\r\n this.media.intent.currentTime = this.nextTime;\r\n }\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface PinRegistryMap {\r\n \"gesture.wheel\": typeof GestureWheelPin;\r\n }\r\n}\r\n","import { GESTURE_TOUCH_BUILD } from \"./build\";\r\nimport { GesturePlug } from \"./index\";\r\nimport { clamp } from \"@utils/num\";\r\nimport { setTimeout } from \"@utils/fn\";\r\nimport { GestureBasePin } from \"./base\";\r\nimport { GestureTouchConfig } from \"./types\";\r\n\r\nexport class GestureTouchPin extends GestureBasePin<GestureTouchConfig> {\r\n public static readonly pinName = \"touch\";\r\n public static get Plug() {\r\n return GesturePlug;\r\n }\r\n public static readonly BUILD = GESTURE_TOUCH_BUILD;\r\n protected lastX = 0;\r\n protected lastY = 0;\r\n protected zone: { x: \"left\" | \"right\"; y: \"top\" | \"bottom\" } | null = null;\r\n public xCheck = false;\r\n public yCheck = false;\r\n protected canCancel = true;\r\n protected cancelTimeoutId = -1;\r\n protected sliderTimeoutId = -1;\r\n\r\n public override wire(): void {\r\n // Event Listeners\r\n this.ctlr.DOM.controlsContainer?.addEventListener(\"touchstart\", this.handleStart, { capture: true, signal: this.signal });\r\n }\r\n\r\n protected canHandle(e: TouchEvent): boolean {\r\n return !this.ctlr.config.disabled && e.touches?.length === 1 && e.target === this.ctlr.DOM.controlsContainer && !this.ctlr.plug(\"settings.fastPlay\")?.state.active && !this.media.state.miniplayer;\r\n }\r\n\r\n protected handleStart(e: TouchEvent): void {\r\n if (!this.canHandle(e)) return;\r\n this.handleEnd();\r\n (this.lastX = e.touches[0].clientX), (this.lastY = e.touches[0].clientY);\r\n this.media.container.addEventListener(\"touchmove\", this.handleInit, { once: true, signal: this.signal });\r\n this.cancelTimeoutId = setTimeout(() => (this.canCancel = false), this.config.threshold, this.signal);\r\n for (const evt of [\"touchend\", \"touchcancel\"]) this.media.container.addEventListener(evt, this.handleEnd, { signal: this.signal });\r\n }\r\n\r\n protected handleInit(e: Event, te = e as TouchEvent): void {\r\n if (te.touches?.length > 1 || this.ctlr.plug(\"settings.fastPlay\")?.state.active) return;\r\n te.preventDefault();\r\n const { width, height, left, top } = this.media.container.getBoundingClientRect(),\r\n x = te.touches[0].clientX,\r\n y = te.touches[0].clientY,\r\n deltaX = Math.abs(this.lastX - x),\r\n deltaY = Math.abs(this.lastY - y);\r\n this.zone = { x: x - left > width / 2 ? \"right\" : \"left\", y: y - top > height / 2 ? \"bottom\" : \"top\" };\r\n const rLeft = this.lastX - left,\r\n rTop = this.lastY - top;\r\n if (deltaX > deltaY * this.config.axesRatio && rLeft > this.config.inset && rLeft < width - this.config.inset) {\r\n if (this.config.timeline) {\r\n this.xCheck = true;\r\n this.media.container.addEventListener(\"touchmove\", this.handleXMove, { passive: false, signal: this.signal });\r\n }\r\n } else if (deltaY > deltaX * this.config.axesRatio && rTop > this.config.inset && rTop < height - this.config.inset) {\r\n if ((this.config.volume && this.zone?.x === \"right\") || (this.config.brightness && this.zone?.x === \"left\")) {\r\n this.yCheck = true;\r\n this.media.container.addEventListener(\"touchmove\", this.handleYMove, { passive: false, signal: this.signal });\r\n }\r\n }\r\n }\r\n\r\n protected handleXMove(e: Event, te = e as TouchEvent): void {\r\n if (this.canCancel) return this.handleEnd();\r\n te.preventDefault();\r\n this.ctlr.plug(\"settings.notifiers\")?.comp(\"touchTimelineNotifier\")?.active();\r\n this.ctlr.throttle(\r\n \"gestureTouchMove\",\r\n () => {\r\n const { width, height } = this.ctlr.state.dimensions.container,\r\n rHeight = (height * this.config.yRatio) / 2,\r\n deltaX = te.touches[0].clientX - this.lastX,\r\n deltaY = te.touches[0].clientY - this.lastY,\r\n percent = clamp(0, Math.abs(deltaX), width * this.config.xRatio) / (width * this.config.xRatio);\r\n this.applyTimeline({ percent, sign: deltaX >= 0 ? \"+\" : \"-\", multiplier: 1 - clamp(0, Math.abs(deltaY), rHeight) / rHeight });\r\n },\r\n 30\r\n );\r\n }\r\n\r\n protected handleYMove(e: Event, te = e as TouchEvent): void {\r\n if (this.canCancel && !this.media.state.fullscreen) return this.handleEnd();\r\n te.preventDefault();\r\n // prettier-ignore\r\n this.ctlr.plug(\"settings.notifiers\")?.comp(this.zone?.x === \"right\" ? \"touchVolumeNotifier\" : \"touchBrightnessNotifier\")?.active();\r\n this.ctlr.throttle(\r\n \"gestureTouchMove\",\r\n () => {\r\n const rHeight = this.ctlr.state.dimensions.container.height * this.config.yRatio,\r\n y = te.touches[0].clientY,\r\n deltaY = y - this.lastY;\r\n this.lastY = y;\r\n this.applyRange(this.zone?.x === \"right\" ? \"volume\" : \"brightness\", clamp(0, Math.abs(deltaY), rHeight) / rHeight, deltaY >= 0 ? \"-\" : \"+\");\r\n },\r\n 30\r\n );\r\n }\r\n\r\n protected handleEnd(): void {\r\n if (this.xCheck) {\r\n this.xCheck = false;\r\n this.media.container.removeEventListener(\"touchmove\", this.handleXMove);\r\n this.ctlr.plug(\"settings.notifiers\")?.comp(\"touchTimelineNotifier\")?.inactive();\r\n if (!this.canCancel) this.media.intent.currentTime = this.nextTime;\r\n }\r\n if (this.yCheck) {\r\n this.yCheck = false;\r\n this.media.container.removeEventListener(\"touchmove\", this.handleYMove);\r\n clearTimeout(this.sliderTimeoutId);\r\n this.sliderTimeoutId = setTimeout(() => (this.ctlr.plug(\"settings.notifiers\")?.comp(\"touchVolumeNotifier\")?.inactive(), this.ctlr.plug(\"settings.notifiers\")?.comp(\"touchBrightnessNotifier\")?.inactive()), this.config.sliderTimeout, this.signal);\r\n if (!this.canCancel) this.ctlr.plug(\"settings.overlay\")?.hide();\r\n }\r\n clearTimeout(this.cancelTimeoutId);\r\n this.canCancel = true;\r\n this.media.container.removeEventListener(\"touchmove\", this.handleInit);\r\n for (const evt of [\"touchend\", \"touchcancel\"]) this.media.container.removeEventListener(evt, this.handleEnd);\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface PinRegistryMap {\r\n \"gesture.touch\": typeof GestureTouchPin;\r\n }\r\n}\r\n"],"mappings":"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","names":[]}
|
|
@@ -21,6 +21,9 @@ import {
|
|
|
21
21
|
import {
|
|
22
22
|
createEl
|
|
23
23
|
} from "./chunk-RCQPJKYI.js";
|
|
24
|
+
import {
|
|
25
|
+
setTimeout
|
|
26
|
+
} from "./chunk-XVQRHJYY.js";
|
|
24
27
|
import {
|
|
25
28
|
parseCSSTime
|
|
26
29
|
} from "./chunk-FKVPSXPX.js";
|
|
@@ -51,7 +54,7 @@ var FramePlug = class extends BasePlug {
|
|
|
51
54
|
if (video !== this.media.element) {
|
|
52
55
|
if (this.ctlr.state.frameReadyPromise) await this.ctlr.state.frameReadyPromise;
|
|
53
56
|
if (Math.abs(video.currentTime - time) > 0.01 || !video.readyState) {
|
|
54
|
-
(_a = this.ctlr.state).frameReadyPromise ?? (_a.frameReadyPromise = new Promise((res) =>
|
|
57
|
+
(_a = this.ctlr.state).frameReadyPromise ?? (_a.frameReadyPromise = new Promise((res, _, cb = () => (clearTimeout(t), res(null)), t) => ([video.readyState ? "timeupdate" : "loadeddata", "error", "abort", "emptied"].forEach((ev) => video.addEventListener(ev, cb, { once: true, signal: this.signal })), t = setTimeout(cb, 15e3, this.signal))));
|
|
55
58
|
video.currentTime = time;
|
|
56
59
|
}
|
|
57
60
|
this.ctlr.state.frameReadyPromise = await this.ctlr.state.frameReadyPromise;
|
|
@@ -112,4 +115,4 @@ __publicField(FramePlug, "BUILD", FRAME_BUILD);
|
|
|
112
115
|
export {
|
|
113
116
|
FramePlug
|
|
114
117
|
};
|
|
115
|
-
//# sourceMappingURL=chunk-
|
|
118
|
+
//# sourceMappingURL=chunk-D7Y72JWH.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/ts/plugs/settings/frame/index.ts"],"sourcesContent":["import { BasePlug } from \"../../base\";\r\nimport type { FrameConfig } from \"./types\";\r\nimport { FRAME_BUILD } from \"./build\";\r\nimport { getDominantColor, getRGBBri, getRGBSat } from \"@utils/color\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { clamp, safeNum } from \"@utils/num\";\r\nimport { parseCSSTime } from \"@utils/str\";\r\nimport { formatMediaTime } from \"@utils/time\";\r\nimport { silence } from \"sia-reactor/modules\";\r\nimport { setTimeout } from \"@utils/fn\";\r\nimport { getMediaMin, getMediaMax } from \"@utils/time\";\r\n\r\nexport class FramePlug extends BasePlug<FrameConfig> {\r\n public static readonly plugName = \"frame\";\r\n public static readonly BUILD = FRAME_BUILD;\r\n public exportCanvas: HTMLCanvasElement = createEl(\"canvas\");\r\n public exportCtx: CanvasRenderingContext2D = this.exportCanvas.getContext(\"2d\", { alpha: false })!;\r\n\r\n public override wire(): void {\r\n // Ctlr Media Watchers\r\n this.media.watch(\"tech\", this.syncFeatures, { init: true, signal: this.signal });\r\n // ---- Config --------\r\n this.ctlr.config.watch(\"settings.frame.disabled\", this.syncFeatures, { signal: this.signal });\r\n // Post Wiring\r\n this.ctlr.learn(\"capture\", { fn: () => this.capture(\"\") }, this.signal);\r\n this.ctlr.learn(\"timeStepFwd\", { fn: () => this.moveFrame(\"forwards\"), keyboard: { phase: \"keydown\" } }, this.signal);\r\n this.ctlr.learn(\"timeStepBwd\", { fn: () => this.moveFrame(\"backwards\"), keyboard: { phase: \"keydown\" } }, this.signal);\r\n super.wire();\r\n }\r\n\r\n public async extract(display: \"\" | \"monochrome\", time?: number, raw?: false, min?: number, video?: HTMLVideoElement): Promise<{ blob: Blob | null; url: string }>;\r\n public async extract(display: \"\" | \"monochrome\", time?: number, raw?: true, min?: number, video?: HTMLVideoElement): Promise<{ canvas: HTMLCanvasElement; context: CanvasRenderingContext2D }>;\r\n public async extract(display: string = \"\", time = safeNum(this.media.state.currentTime), raw = false, min = 0, video = this.media.pseudoElement as HTMLVideoElement): Promise<any> {\r\n if (!this.media.features.frameCapture) return raw ? { canvas: this.exportCanvas, context: (this.exportCtx.clearRect(0, 0, this.exportCanvas.width, this.exportCanvas.height), this.exportCtx) } : { blob: null, url: \"\" };\r\n if (video !== this.media.element) {\r\n if (this.ctlr.state.frameReadyPromise) await this.ctlr.state.frameReadyPromise; // wait for it to get set by last getter 5 lines below\r\n if (Math.abs(video.currentTime - time) > 0.01 || !video.readyState) {\r\n this.ctlr.state.frameReadyPromise ??= new Promise<null>((res, _, cb = () => (clearTimeout(t), res(null)), t?: any) => ([video.readyState ? \"timeupdate\" : \"loadeddata\", \"error\", \"abort\", \"emptied\"].forEach((ev) => video.addEventListener(ev, cb, { once: true, signal: this.signal })), (t = setTimeout(cb, 15000, this.signal)))); // me sef no small, been burned before this\r\n video.currentTime = time; // small epsilon tolerance for video time comparison - 0.01(10ms)\r\n }\r\n this.ctlr.state.frameReadyPromise = await this.ctlr.state.frameReadyPromise;\r\n }\r\n (this.exportCanvas.width = video.videoWidth || min), (this.exportCanvas.height = video.videoHeight || min);\r\n this.exportCtx.filter = `${this.settings.css.filter as string}${display === \"monochrome\" ? \" grayscale(100%)\" : \"\"}`;\r\n this.exportCtx.drawImage(video, 0, 0, this.exportCanvas.width, this.exportCanvas.height);\r\n this.exportCtx.filter = \"none\";\r\n if (raw === true) return { canvas: this.exportCanvas, context: this.exportCtx };\r\n let blob: Blob | null | false | 0 = null;\r\n try {\r\n blob = (this.exportCanvas.width || this.exportCanvas.height) && (await new Promise<Blob | null>((res) => this.exportCanvas.toBlob(res)));\r\n } catch (err) {\r\n this.ctlr.log(err, \"error\", true); // #LESS: error not worth notifying\r\n }\r\n return { blob: blob || null, url: blob ? URL.createObjectURL(blob) : \"\" };\r\n }\r\n\r\n public async capture(display: \"\" | \"monochrome\" = \"\", time = safeNum(this.media.state.currentTime)): Promise<void> {\r\n if (!this.media.features.frameCapture) return;\r\n this.ctlr.notify?.(\"capture\"); // #STALLING: necessary optimistic distraction\r\n const toast = this.ctlr.toast,\r\n tTxt = formatMediaTime({ time, format: \"human\", showMs: true }),\r\n fTxt = `video frame ${display === \"monochrome\" ? \"in b&w \" : \"\"}at ${tTxt}`,\r\n tId = toast?.loading(`Capturing ${fTxt}...`, { delay: parseCSSTime(this.settings.css.notifiersAnimationTime), image: window.TMG_MEDIA_ALT_IMG_SRC, tag: `tmg-${this.media.settings.metadata.title ?? \"Video\"}fcpa${tTxt}${display}`, signal: this.signal, ...this.config.toast }) as string,\r\n frame = await this.extract(display, time, false, 0, this.media.element as HTMLVideoElement),\r\n filename = `${this.media.settings.metadata.title ?? \"Video\"}_${display === \"monochrome\" ? `black&white_` : \"\"}at_${tTxt}.png`.replace(/[\\/:*?\"<>|\\s]+/g, \"_\"); // system filename safe\r\n const Save = () => {\r\n toast?.loading(tId, { render: `Saving ${fTxt}`, actions: false });\r\n createEl(\"a\", { href: frame.url as string, download: filename })?.click?.();\r\n toast?.success(tId, { delay: 1000, render: `Saved ${fTxt}`, actions: false });\r\n };\r\n const Share = () => {\r\n toast?.loading(tId, { render: `Sharing ${fTxt}`, actions: false });\r\n navigator.share?.({ title: this.media.settings.metadata.title ?? \"Video\", text: `Captured ${fTxt}`, files: [new File([frame.blob!], filename, { type: frame.blob!.type })] }).then(\r\n () => toast?.success(tId, { render: `Shared ${fTxt}`, actions: false }),\r\n () => toast?.error(tId, { render: `Failed sharing ${fTxt}`, autoClose: this.config.toast.autoClose, actions: { Save } })\r\n ) || toast?.warn(tId, { delay: 1000, render: `Couldn't share ${fTxt}`, autoClose: this.config.toast.autoClose, actions: { Save } });\r\n };\r\n frame?.url ? toast?.success(tId, { render: `Captured ${fTxt}`, image: frame.url, actions: { Save, Share }, onClose: () => URL.revokeObjectURL(frame.url), autoClose: this.config.toast.autoClose }) : toast?.error(tId, { render: `Failed capturing ${fTxt}` });\r\n }\r\n\r\n public async getGoodTime({ time: t = safeNum(this.media.state.currentTime), secondsLimit: s = 25, saturation: sat = 12, brightness: bri = 40 } = {}): Promise<number | undefined> {\r\n const end = clamp(getMediaMin(this.media), t + s, getMediaMax(this.media)),\r\n seq = ++this.findSeq;\r\n for (; t <= end; t += 0.333) {\r\n if (seq !== this.findSeq) return;\r\n const rgb = await getDominantColor((await this.extract(\"\", t, true, 1)).canvas, \"rgb\", true);\r\n if (rgb && getRGBBri(rgb) > bri && getRGBSat(rgb) > sat) return t; // <= FIRST legit content frame\r\n }\r\n return;\r\n }\r\n private findSeq = 0;\r\n\r\n public async getMainColor(time?: number, poster = (this.media.element as HTMLVideoElement).poster, config?: Parameters<typeof this.getGoodTime>[0]): Promise<string | null> {\r\n return getDominantColor(poster ? poster : (await this.extract(\"\", time ?? (await this.getGoodTime(config)), true, 1)).canvas);\r\n }\r\n\r\n public moveFrame(dir: \"forwards\" | \"backwards\" = \"forwards\"): void {\r\n this.media.state.paused && this.ctlr.throttle(\"frameStepping\", () => silence(() => (this.media.intent.currentTime = clamp(getMediaMin(this.media), Math.round(this.media.state.currentTime * this.config.fps) + (dir === \"backwards\" ? -1 : 1), Math.floor(getMediaMax(this.media) * this.config.fps)) / this.config.fps)), Math.round(1000 / this.config.fps));\r\n }\r\n\r\n public syncFeatures(): void {\r\n this.media.tech.polyfill(\"frameCapture\", this.ctlr.isNativeEl && this.media.type === \"video\", this.config.disabled);\r\n }\r\n} // Video only\r\n\r\nexport type * from \"./types\";\r\nexport * from \"./build\";\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface PlugRegistryMap {\r\n \"settings.frame\": typeof FramePlug;\r\n }\r\n}\r\n\r\ndeclare module \"@defs/config\" {\r\n interface Settings {\r\n frame: FrameConfig;\r\n }\r\n}\r\n\r\ndeclare module \"@defs/contract\" {\r\n interface MediaFeaturesExt {\r\n frameCapture: boolean;\r\n }\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,SAAS,eAAe;AAIjB,IAAM,YAAN,cAAwB,SAAsB;AAAA,EAA9C;AAAA;AAGL,wBAAO,gBAAkC,SAAS,QAAQ;AAC1D,wBAAO,aAAsC,KAAK,aAAa,WAAW,MAAM,EAAE,OAAO,MAAM,CAAC;AA0EhG,wBAAQ,WAAU;AAAA;AAAA,EAxEF,OAAa;AAE3B,SAAK,MAAM,MAAM,QAAQ,KAAK,cAAc,EAAE,MAAM,MAAM,QAAQ,KAAK,OAAO,CAAC;AAE/E,SAAK,KAAK,OAAO,MAAM,2BAA2B,KAAK,cAAc,EAAE,QAAQ,KAAK,OAAO,CAAC;AAE5F,SAAK,KAAK,MAAM,WAAW,EAAE,IAAI,MAAM,KAAK,QAAQ,EAAE,EAAE,GAAG,KAAK,MAAM;AACtE,SAAK,KAAK,MAAM,eAAe,EAAE,IAAI,MAAM,KAAK,UAAU,UAAU,GAAG,UAAU,EAAE,OAAO,UAAU,EAAE,GAAG,KAAK,MAAM;AACpH,SAAK,KAAK,MAAM,eAAe,EAAE,IAAI,MAAM,KAAK,UAAU,WAAW,GAAG,UAAU,EAAE,OAAO,UAAU,EAAE,GAAG,KAAK,MAAM;AACrH,UAAM,KAAK;AAAA,EACb;AAAA,EAIA,MAAa,QAAQ,UAAkB,IAAI,OAAO,QAAQ,KAAK,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,MAAM,GAAG,QAAQ,KAAK,MAAM,eAAiD;AAhCrL;AAiCI,QAAI,CAAC,KAAK,MAAM,SAAS,aAAc,QAAO,MAAM,EAAE,QAAQ,KAAK,cAAc,UAAU,KAAK,UAAU,UAAU,GAAG,GAAG,KAAK,aAAa,OAAO,KAAK,aAAa,MAAM,GAAG,KAAK,WAAW,IAAI,EAAE,MAAM,MAAM,KAAK,GAAG;AACxN,QAAI,UAAU,KAAK,MAAM,SAAS;AAChC,UAAI,KAAK,KAAK,MAAM,kBAAmB,OAAM,KAAK,KAAK,MAAM;AAC7D,UAAI,KAAK,IAAI,MAAM,cAAc,IAAI,IAAI,QAAQ,CAAC,MAAM,YAAY;AAClE,mBAAK,KAAK,OAAM,sBAAhB,GAAgB,oBAAsB,IAAI,QAAc,CAAC,KAAK,GAAG,KAAK,OAAO,aAAa,CAAC,GAAG,IAAI,IAAI,IAAI,OAAa,CAAC,MAAM,aAAa,eAAe,cAAc,SAAS,SAAS,SAAS,EAAE,QAAQ,CAAC,OAAO,MAAM,iBAAiB,IAAI,IAAI,EAAE,MAAM,MAAM,QAAQ,KAAK,OAAO,CAAC,CAAC,GAAI,IAAI,WAAW,IAAI,MAAO,KAAK,MAAM,EAAG;AACpU,cAAM,cAAc;AAAA,MACtB;AACA,WAAK,KAAK,MAAM,oBAAoB,MAAM,KAAK,KAAK,MAAM;AAAA,IAC5D;AACA,IAAC,KAAK,aAAa,QAAQ,MAAM,cAAc,KAAO,KAAK,aAAa,SAAS,MAAM,eAAe;AACtG,SAAK,UAAU,SAAS,GAAG,KAAK,SAAS,IAAI,MAAgB,GAAG,YAAY,eAAe,qBAAqB,EAAE;AAClH,SAAK,UAAU,UAAU,OAAO,GAAG,GAAG,KAAK,aAAa,OAAO,KAAK,aAAa,MAAM;AACvF,SAAK,UAAU,SAAS;AACxB,QAAI,QAAQ,KAAM,QAAO,EAAE,QAAQ,KAAK,cAAc,SAAS,KAAK,UAAU;AAC9E,QAAI,OAAgC;AACpC,QAAI;AACF,cAAQ,KAAK,aAAa,SAAS,KAAK,aAAa,WAAY,MAAM,IAAI,QAAqB,CAAC,QAAQ,KAAK,aAAa,OAAO,GAAG,CAAC;AAAA,IACxI,SAAS,KAAK;AACZ,WAAK,KAAK,IAAI,KAAK,SAAS,IAAI;AAAA,IAClC;AACA,WAAO,EAAE,MAAM,QAAQ,MAAM,KAAK,OAAO,IAAI,gBAAgB,IAAI,IAAI,GAAG;AAAA,EAC1E;AAAA,EAEA,MAAa,QAAQ,UAA6B,IAAI,OAAO,QAAQ,KAAK,MAAM,MAAM,WAAW,GAAkB;AACjH,QAAI,CAAC,KAAK,MAAM,SAAS,aAAc;AACvC,SAAK,KAAK,SAAS,SAAS;AAC5B,UAAM,QAAQ,KAAK,KAAK,OACtB,OAAO,gBAAgB,EAAE,MAAM,QAAQ,SAAS,QAAQ,KAAK,CAAC,GAC9D,OAAO,eAAe,YAAY,eAAe,YAAY,EAAE,MAAM,IAAI,IACzE,MAAM,OAAO,QAAQ,aAAa,IAAI,OAAO,EAAE,OAAO,aAAa,KAAK,SAAS,IAAI,sBAAsB,GAAG,OAAO,OAAO,uBAAuB,KAAK,OAAO,KAAK,MAAM,SAAS,SAAS,SAAS,OAAO,OAAO,IAAI,GAAG,OAAO,IAAI,QAAQ,KAAK,QAAQ,GAAG,KAAK,OAAO,MAAM,CAAC,GAChR,QAAQ,MAAM,KAAK,QAAQ,SAAS,MAAM,OAAO,GAAG,KAAK,MAAM,OAA2B,GAC1F,WAAW,GAAG,KAAK,MAAM,SAAS,SAAS,SAAS,OAAO,IAAI,YAAY,eAAe,iBAAiB,EAAE,MAAM,IAAI,OAAO,QAAQ,mBAAmB,GAAG;AAC9J,UAAM,OAAO,MAAM;AACjB,aAAO,QAAQ,KAAK,EAAE,QAAQ,UAAU,IAAI,IAAI,SAAS,MAAM,CAAC;AAChE,eAAS,KAAK,EAAE,MAAM,MAAM,KAAe,UAAU,SAAS,CAAC,GAAG,QAAQ;AAC1E,aAAO,QAAQ,KAAK,EAAE,OAAO,KAAM,QAAQ,SAAS,IAAI,IAAI,SAAS,MAAM,CAAC;AAAA,IAC9E;AACA,UAAM,QAAQ,MAAM;AAClB,aAAO,QAAQ,KAAK,EAAE,QAAQ,WAAW,IAAI,IAAI,SAAS,MAAM,CAAC;AACjE,gBAAU,QAAQ,EAAE,OAAO,KAAK,MAAM,SAAS,SAAS,SAAS,SAAS,MAAM,YAAY,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,MAAM,IAAK,GAAG,UAAU,EAAE,MAAM,MAAM,KAAM,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE;AAAA,QAC5K,MAAM,OAAO,QAAQ,KAAK,EAAE,QAAQ,UAAU,IAAI,IAAI,SAAS,MAAM,CAAC;AAAA,QACtE,MAAM,OAAO,MAAM,KAAK,EAAE,QAAQ,kBAAkB,IAAI,IAAI,WAAW,KAAK,OAAO,MAAM,WAAW,SAAS,EAAE,KAAK,EAAE,CAAC;AAAA,MACzH,KAAK,OAAO,KAAK,KAAK,EAAE,OAAO,KAAM,QAAQ,kBAAkB,IAAI,IAAI,WAAW,KAAK,OAAO,MAAM,WAAW,SAAS,EAAE,KAAK,EAAE,CAAC;AAAA,IACpI;AACA,WAAO,MAAM,OAAO,QAAQ,KAAK,EAAE,QAAQ,YAAY,IAAI,IAAI,OAAO,MAAM,KAAK,SAAS,EAAE,MAAM,MAAM,GAAG,SAAS,MAAM,IAAI,gBAAgB,MAAM,GAAG,GAAG,WAAW,KAAK,OAAO,MAAM,UAAU,CAAC,IAAI,OAAO,MAAM,KAAK,EAAE,QAAQ,oBAAoB,IAAI,GAAG,CAAC;AAAA,EAChQ;AAAA,EAEA,MAAa,YAAY,EAAE,MAAM,IAAI,QAAQ,KAAK,MAAM,MAAM,WAAW,GAAG,cAAc,IAAI,IAAI,YAAY,MAAM,IAAI,YAAY,MAAM,GAAG,IAAI,CAAC,GAAgC;AAChL,UAAM,MAAM,MAAM,YAAY,KAAK,KAAK,GAAG,IAAI,GAAG,YAAY,KAAK,KAAK,CAAC,GACvE,MAAM,EAAE,KAAK;AACf,WAAO,KAAK,KAAK,KAAK,OAAO;AAC3B,UAAI,QAAQ,KAAK,QAAS;AAC1B,YAAM,MAAM,MAAM,kBAAkB,MAAM,KAAK,QAAQ,IAAI,GAAG,MAAM,CAAC,GAAG,QAAQ,OAAO,IAAI;AAC3F,UAAI,OAAO,UAAU,GAAG,IAAI,OAAO,UAAU,GAAG,IAAI,IAAK,QAAO;AAAA,IAClE;AACA;AAAA,EACF;AAAA,EAGA,MAAa,aAAa,MAAe,SAAU,KAAK,MAAM,QAA6B,QAAQ,QAAyE;AAC1K,WAAO,iBAAiB,SAAS,UAAU,MAAM,KAAK,QAAQ,IAAI,QAAS,MAAM,KAAK,YAAY,MAAM,GAAI,MAAM,CAAC,GAAG,MAAM;AAAA,EAC9H;AAAA,EAEO,UAAU,MAAgC,YAAkB;AACjE,SAAK,MAAM,MAAM,UAAU,KAAK,KAAK,SAAS,iBAAiB,MAAM,QAAQ,MAAO,KAAK,MAAM,OAAO,cAAc,MAAM,YAAY,KAAK,KAAK,GAAG,KAAK,MAAM,KAAK,MAAM,MAAM,cAAc,KAAK,OAAO,GAAG,KAAK,QAAQ,cAAc,KAAK,IAAI,KAAK,MAAM,YAAY,KAAK,KAAK,IAAI,KAAK,OAAO,GAAG,CAAC,IAAI,KAAK,OAAO,GAAI,GAAG,KAAK,MAAM,MAAO,KAAK,OAAO,GAAG,CAAC;AAAA,EAChW;AAAA,EAEO,eAAqB;AAC1B,SAAK,MAAM,KAAK,SAAS,gBAAgB,KAAK,KAAK,cAAc,KAAK,MAAM,SAAS,SAAS,KAAK,OAAO,QAAQ;AAAA,EACpH;AACF;AA1FE,cADW,WACY,YAAW;AAClC,cAFW,WAEY,SAAQ;","names":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
init
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-QT5XXSG7.js";
|
|
4
4
|
import {
|
|
5
5
|
globalState
|
|
6
6
|
} from "./chunk-CFTZJH7J.js";
|
|
@@ -27,4 +27,4 @@ if ("undefined" !== typeof window) {
|
|
|
27
27
|
console.log("\x1B[38;2;139;69;19mTMG Media Player Unavailable\x1B[0m");
|
|
28
28
|
console.error("TMG Media Player cannot run in a terminal!"), console.warn("Consider moving to a browser environment to use the TMG Media Player");
|
|
29
29
|
}
|
|
30
|
-
//# sourceMappingURL=chunk-
|
|
30
|
+
//# sourceMappingURL=chunk-DNS6EFXH.js.map
|
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
import {
|
|
2
|
+
tripleTriangleRight
|
|
3
|
+
} from "./chunk-ZTOANBNR.js";
|
|
4
|
+
import {
|
|
5
|
+
unlock
|
|
6
|
+
} from "./chunk-TMTWPBFD.js";
|
|
7
|
+
import {
|
|
8
|
+
videoTrack
|
|
9
|
+
} from "./chunk-AIJWNUXU.js";
|
|
1
10
|
import {
|
|
2
11
|
volumeHigh
|
|
3
12
|
} from "./chunk-W6TNR6NH.js";
|
|
@@ -7,6 +16,15 @@ import {
|
|
|
7
16
|
import {
|
|
8
17
|
volumeMuted
|
|
9
18
|
} from "./chunk-2WOP45O7.js";
|
|
19
|
+
import {
|
|
20
|
+
returnBack
|
|
21
|
+
} from "./chunk-BHHFZM5D.js";
|
|
22
|
+
import {
|
|
23
|
+
settings
|
|
24
|
+
} from "./chunk-2J3FJY73.js";
|
|
25
|
+
import {
|
|
26
|
+
shuffle
|
|
27
|
+
} from "./chunk-OEHNS7YX.js";
|
|
10
28
|
import {
|
|
11
29
|
sort
|
|
12
30
|
} from "./chunk-QP2X53HC.js";
|
|
@@ -23,14 +41,14 @@ import {
|
|
|
23
41
|
tripleTriangleLeft
|
|
24
42
|
} from "./chunk-IIRP4XMQ.js";
|
|
25
43
|
import {
|
|
26
|
-
|
|
27
|
-
} from "./chunk-
|
|
44
|
+
pipPlaceholder
|
|
45
|
+
} from "./chunk-7CRW7VGS.js";
|
|
28
46
|
import {
|
|
29
|
-
|
|
30
|
-
} from "./chunk-
|
|
47
|
+
play
|
|
48
|
+
} from "./chunk-K4UHBEDT.js";
|
|
31
49
|
import {
|
|
32
|
-
|
|
33
|
-
} from "./chunk-
|
|
50
|
+
playbackRate
|
|
51
|
+
} from "./chunk-C3IEUYR3.js";
|
|
34
52
|
import {
|
|
35
53
|
playlist
|
|
36
54
|
} from "./chunk-KLAI7YSD.js";
|
|
@@ -47,14 +65,14 @@ import {
|
|
|
47
65
|
replay
|
|
48
66
|
} from "./chunk-YHTCXXEG.js";
|
|
49
67
|
import {
|
|
50
|
-
|
|
51
|
-
} from "./chunk-
|
|
68
|
+
lock
|
|
69
|
+
} from "./chunk-T4LAQEBY.js";
|
|
52
70
|
import {
|
|
53
|
-
|
|
54
|
-
} from "./chunk-
|
|
71
|
+
loop
|
|
72
|
+
} from "./chunk-OSDM6ZVT.js";
|
|
55
73
|
import {
|
|
56
|
-
|
|
57
|
-
} from "./chunk-
|
|
74
|
+
mic
|
|
75
|
+
} from "./chunk-PEKXIISU.js";
|
|
58
76
|
import {
|
|
59
77
|
next
|
|
60
78
|
} from "./chunk-MP2GRDUX.js";
|
|
@@ -71,14 +89,14 @@ import {
|
|
|
71
89
|
pause
|
|
72
90
|
} from "./chunk-OOXUZMZ7.js";
|
|
73
91
|
import {
|
|
74
|
-
|
|
75
|
-
} from "./chunk-
|
|
92
|
+
exitFullscreen
|
|
93
|
+
} from "./chunk-DR2VKENG.js";
|
|
76
94
|
import {
|
|
77
|
-
|
|
78
|
-
} from "./chunk-
|
|
95
|
+
exitPip
|
|
96
|
+
} from "./chunk-OCWLEK2W.js";
|
|
79
97
|
import {
|
|
80
|
-
|
|
81
|
-
} from "./chunk-
|
|
98
|
+
exitTheater
|
|
99
|
+
} from "./chunk-CRH6DM5A.js";
|
|
82
100
|
import {
|
|
83
101
|
expandMiniplayer
|
|
84
102
|
} from "./chunk-DN4TFOZV.js";
|
|
@@ -95,14 +113,14 @@ import {
|
|
|
95
113
|
goBack
|
|
96
114
|
} from "./chunk-4XUR7NSC.js";
|
|
97
115
|
import {
|
|
98
|
-
|
|
99
|
-
} from "./chunk-
|
|
116
|
+
doubleTriangleLeft
|
|
117
|
+
} from "./chunk-VGWGAAZA.js";
|
|
100
118
|
import {
|
|
101
|
-
|
|
102
|
-
} from "./chunk-
|
|
119
|
+
doubleTriangleRight
|
|
120
|
+
} from "./chunk-Q5TE3ZDK.js";
|
|
103
121
|
import {
|
|
104
|
-
|
|
105
|
-
} from "./chunk-
|
|
122
|
+
dragIndicator
|
|
123
|
+
} from "./chunk-ZLZCQ3KJ.js";
|
|
106
124
|
import {
|
|
107
125
|
edit
|
|
108
126
|
} from "./chunk-NLJQAJZB.js";
|
|
@@ -119,14 +137,14 @@ import {
|
|
|
119
137
|
errorPlaceholder
|
|
120
138
|
} from "./chunk-2K7QF6AQ.js";
|
|
121
139
|
import {
|
|
122
|
-
|
|
123
|
-
} from "./chunk-
|
|
140
|
+
brightnessLow
|
|
141
|
+
} from "./chunk-63CB7WUR.js";
|
|
124
142
|
import {
|
|
125
|
-
|
|
126
|
-
} from "./chunk-
|
|
143
|
+
bwd
|
|
144
|
+
} from "./chunk-PV24XKW2.js";
|
|
127
145
|
import {
|
|
128
|
-
|
|
129
|
-
} from "./chunk-
|
|
146
|
+
captions
|
|
147
|
+
} from "./chunk-CTSPKWKN.js";
|
|
130
148
|
import {
|
|
131
149
|
capture
|
|
132
150
|
} from "./chunk-HA2GK6KH.js";
|
|
@@ -143,14 +161,14 @@ import {
|
|
|
143
161
|
check
|
|
144
162
|
} from "./chunk-O7XYY33O.js";
|
|
145
163
|
import {
|
|
146
|
-
|
|
147
|
-
} from "./chunk-
|
|
164
|
+
airplayPlaceholder
|
|
165
|
+
} from "./chunk-URDNEQFP.js";
|
|
148
166
|
import {
|
|
149
|
-
|
|
150
|
-
} from "./chunk-
|
|
167
|
+
ambience
|
|
168
|
+
} from "./chunk-XHXIXEGS.js";
|
|
151
169
|
import {
|
|
152
|
-
|
|
153
|
-
} from "./chunk-
|
|
170
|
+
audioTrack
|
|
171
|
+
} from "./chunk-AH2VE4UI.js";
|
|
154
172
|
import {
|
|
155
173
|
autoplay
|
|
156
174
|
} from "./chunk-WTHHXWQM.js";
|
|
@@ -166,30 +184,12 @@ import {
|
|
|
166
184
|
import {
|
|
167
185
|
brightnessHigh
|
|
168
186
|
} from "./chunk-YEQ7IT4H.js";
|
|
169
|
-
import {
|
|
170
|
-
brightnessLow
|
|
171
|
-
} from "./chunk-63CB7WUR.js";
|
|
172
|
-
import {
|
|
173
|
-
bwd
|
|
174
|
-
} from "./chunk-PV24XKW2.js";
|
|
175
|
-
import {
|
|
176
|
-
captions
|
|
177
|
-
} from "./chunk-CTSPKWKN.js";
|
|
178
187
|
import {
|
|
179
188
|
add
|
|
180
189
|
} from "./chunk-ID72UAJE.js";
|
|
181
190
|
import {
|
|
182
191
|
airplay
|
|
183
192
|
} from "./chunk-JP5X5JDL.js";
|
|
184
|
-
import {
|
|
185
|
-
airplayPlaceholder
|
|
186
|
-
} from "./chunk-URDNEQFP.js";
|
|
187
|
-
import {
|
|
188
|
-
ambience
|
|
189
|
-
} from "./chunk-XHXIXEGS.js";
|
|
190
|
-
import {
|
|
191
|
-
audioTrack
|
|
192
|
-
} from "./chunk-AH2VE4UI.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-E5PBQLV3.js.map
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
AUDIO_CONTEXT,
|
|
9
9
|
connectToAudioManager,
|
|
10
10
|
disconnectFromAudioManager
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-QT5XXSG7.js";
|
|
12
12
|
import {
|
|
13
13
|
globalState
|
|
14
14
|
} from "./chunk-CFTZJH7J.js";
|
|
@@ -108,4 +108,4 @@ __publicField(VolumePlug, "BUILD", VOLUME_BUILD);
|
|
|
108
108
|
export {
|
|
109
109
|
VolumePlug
|
|
110
110
|
};
|
|
111
|
-
//# sourceMappingURL=chunk-
|
|
111
|
+
//# sourceMappingURL=chunk-I6Q53IPI.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
HTML5Tech
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import {
|
|
5
|
-
HLS_EXTENSIONS
|
|
6
|
-
} from "./chunk-2XJFCVED.js";
|
|
3
|
+
} from "./chunk-QT5XXSG7.js";
|
|
7
4
|
import {
|
|
8
5
|
MSE_ENABLED
|
|
9
6
|
} from "./chunk-RNETXJ63.js";
|
|
7
|
+
import {
|
|
8
|
+
HLS_EXTENSIONS
|
|
9
|
+
} from "./chunk-2XJFCVED.js";
|
|
10
10
|
import {
|
|
11
11
|
loadResource
|
|
12
12
|
} from "./chunk-RCQPJKYI.js";
|
|
@@ -157,4 +157,4 @@ __publicField(HLSTech, "techName", "hls");
|
|
|
157
157
|
export {
|
|
158
158
|
HLSTech
|
|
159
159
|
};
|
|
160
|
-
//# sourceMappingURL=chunk-
|
|
160
|
+
//# sourceMappingURL=chunk-LNING7Z4.js.map
|