tmg-media-player 0.0.73 → 0.0.75

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/dist/{chunk-CBOLIMGO.js → chunk-6EGJSMMW.js} +2 -2
  2. package/dist/chunk-6EGJSMMW.js.map +1 -0
  3. package/dist/{chunk-OOEHHRIC.js → chunk-AS4J74Q2.js} +14 -14
  4. package/dist/chunk-AS4J74Q2.js.map +1 -0
  5. package/dist/{chunk-Y77QBJ7Z.js → chunk-BSAU7MO3.js} +77 -77
  6. package/dist/{chunk-34T2ENWC.js → chunk-BSSN4LOS.js} +40 -40
  7. package/dist/{chunk-WZ6U3VGO.js → chunk-DA3LHGNI.js} +2 -2
  8. package/dist/chunk-DA3LHGNI.js.map +1 -0
  9. package/dist/{chunk-C7WMUGQJ.js → chunk-EEROYMNY.js} +6 -3
  10. package/dist/chunk-EEROYMNY.js.map +1 -0
  11. package/dist/{chunk-BTJYBMCN.js → chunk-EFHF4LFC.js} +8 -7
  12. package/dist/chunk-EFHF4LFC.js.map +1 -0
  13. package/dist/{chunk-U7PNK3U6.js → chunk-EMUVOJ55.js} +2 -2
  14. package/dist/{chunk-47P4B565.js → chunk-EQSAKPG7.js} +2 -2
  15. package/dist/{chunk-VHXT7FSN.js → chunk-F2TV6ZC3.js} +17 -1
  16. package/dist/chunk-F2TV6ZC3.js.map +1 -0
  17. package/dist/{chunk-OKR2ZODT.js → chunk-HXSA7OO6.js} +23 -26
  18. package/dist/chunk-HXSA7OO6.js.map +1 -0
  19. package/dist/{chunk-N2JNMNZK.js → chunk-IBMILXPH.js} +5 -5
  20. package/dist/{chunk-N2JNMNZK.js.map → chunk-IBMILXPH.js.map} +1 -1
  21. package/dist/{chunk-GSQSVUPG.js → chunk-IFGUUWN4.js} +3 -3
  22. package/dist/chunk-IFGUUWN4.js.map +1 -0
  23. package/dist/{chunk-FZKJFCAF.js → chunk-IWWMH4W6.js} +18 -18
  24. package/dist/{chunk-ODFMSW62.js → chunk-IXXUAXNW.js} +2 -2
  25. package/dist/{chunk-ODFMSW62.js.map → chunk-IXXUAXNW.js.map} +1 -1
  26. package/dist/{chunk-PAKGD74O.js → chunk-JJVHFCQL.js} +69 -69
  27. package/dist/{chunk-GNGPNTFF.js → chunk-MBJP3EWJ.js} +15 -15
  28. package/dist/{chunk-AD3XWTDT.js → chunk-MJ5HQ3TZ.js} +5 -5
  29. package/dist/chunk-MJ5HQ3TZ.js.map +1 -0
  30. package/dist/{chunk-RAKMJWS5.js → chunk-MU7HGLK3.js} +2 -2
  31. package/dist/{chunk-H6EMDZLU.js → chunk-O2NZCYXE.js} +2 -2
  32. package/dist/{chunk-H6EMDZLU.js.map → chunk-O2NZCYXE.js.map} +1 -1
  33. package/dist/{chunk-5TW6WOCX.js → chunk-OJFK6WI2.js} +121 -121
  34. package/dist/{chunk-W2KDNL4R.js → chunk-QKUKQSKB.js} +2 -2
  35. package/dist/{chunk-YNGJBJJ7.js → chunk-SH5VJSWI.js} +2 -2
  36. package/dist/chunk-SH5VJSWI.js.map +1 -0
  37. package/dist/{chunk-BN2A73HE.js → chunk-SNBW6EOC.js} +2 -2
  38. package/dist/{chunk-7XP5XO6O.js → chunk-TXPMH27N.js} +2 -2
  39. package/dist/{chunk-PUMQYSCS.js → chunk-UBCA74FA.js} +2 -2
  40. package/dist/{chunk-DB5WSKD2.js → chunk-UX7Z2BJR.js} +1 -1
  41. package/dist/chunk-UX7Z2BJR.js.map +1 -0
  42. package/dist/{chunk-HWLOJIZU.js → chunk-V3HUGHGP.js} +8 -8
  43. package/dist/{chunk-H3KSEMMS.js → chunk-VQGMUREF.js} +6 -6
  44. package/dist/{chunk-7DLOH5JU.js → chunk-WYVWWV7T.js} +2 -2
  45. package/dist/{chunk-ZSTYOOII.js → chunk-XQNF5I2G.js} +2 -2
  46. package/dist/{chunk-6F5LNDT4.js → chunk-Z27YDVC2.js} +7 -7
  47. package/dist/{chunk-FTBGIAD6.js → chunk-ZASB3XR5.js} +2 -2
  48. package/dist/{chunk-QMUA2A3J.js → chunk-ZL6WTDYH.js} +3 -3
  49. package/dist/chunk-ZL6WTDYH.js.map +1 -0
  50. package/dist/components/captionsView.cjs +4 -4
  51. package/dist/components/captionsView.cjs.map +1 -1
  52. package/dist/components/captionsView.js +1 -1
  53. package/dist/components/controls/brightness/index.cjs +13 -13
  54. package/dist/components/controls/brightness/index.cjs.map +1 -1
  55. package/dist/components/controls/brightness/index.js +3 -3
  56. package/dist/components/controls/brightness/slider.cjs +13 -13
  57. package/dist/components/controls/brightness/slider.cjs.map +1 -1
  58. package/dist/components/controls/brightness/slider.js +2 -2
  59. package/dist/components/controls/timeline/index.cjs +17 -14
  60. package/dist/components/controls/timeline/index.cjs.map +1 -1
  61. package/dist/components/controls/timeline/index.js +2 -2
  62. package/dist/components/controls/volume/index.cjs +13 -13
  63. package/dist/components/controls/volume/index.cjs.map +1 -1
  64. package/dist/components/controls/volume/index.js +3 -3
  65. package/dist/components/controls/volume/slider.cjs +13 -13
  66. package/dist/components/controls/volume/slider.cjs.map +1 -1
  67. package/dist/components/controls/volume/slider.js +2 -2
  68. package/dist/components/icons/z-register.js +31 -31
  69. package/dist/components/notifiers/z-register.js +6 -6
  70. package/dist/components/rangeinput/index.cjs +13 -13
  71. package/dist/components/rangeinput/index.cjs.map +1 -1
  72. package/dist/components/rangeinput/index.js +1 -1
  73. package/dist/components/z-register.cjs +21 -18
  74. package/dist/components/z-register.cjs.map +1 -1
  75. package/dist/components/z-register.js +8 -8
  76. package/dist/index.css +12 -8
  77. package/dist/index.css.map +1 -1
  78. package/dist/plugs/main/playlist/index.cjs +1 -1
  79. package/dist/plugs/main/playlist/index.cjs.map +1 -1
  80. package/dist/plugs/main/playlist/index.js +2 -2
  81. package/dist/plugs/menus/main/playlist.cjs.map +1 -1
  82. package/dist/plugs/menus/main/playlist.js +3 -3
  83. package/dist/plugs/menus/settings/metadata.cjs.map +1 -1
  84. package/dist/plugs/menus/settings/metadata.js +2 -2
  85. package/dist/plugs/menus/settings/timeTravel.cjs.map +1 -1
  86. package/dist/plugs/menus/settings/timeTravel.js +1 -1
  87. package/dist/plugs/menus/z-register.cjs.map +1 -1
  88. package/dist/plugs/menus/z-register.js +12 -12
  89. package/dist/plugs/settings/captions/index.cjs +1 -1
  90. package/dist/plugs/settings/captions/index.cjs.map +1 -1
  91. package/dist/plugs/settings/captions/index.js +1 -1
  92. package/dist/plugs/settings/controlPanel/draggable.cjs +2 -2
  93. package/dist/plugs/settings/controlPanel/draggable.cjs.map +1 -1
  94. package/dist/plugs/settings/controlPanel/draggable.js +2 -2
  95. package/dist/plugs/settings/controlPanel/index.cjs +2 -2
  96. package/dist/plugs/settings/controlPanel/index.cjs.map +1 -1
  97. package/dist/plugs/settings/controlPanel/index.js +2 -2
  98. package/dist/plugs/settings/gesture/index.cjs +7 -6
  99. package/dist/plugs/settings/gesture/index.cjs.map +1 -1
  100. package/dist/plugs/settings/gesture/index.js +1 -1
  101. package/dist/plugs/settings/gesture/touch.cjs +7 -6
  102. package/dist/plugs/settings/gesture/touch.cjs.map +1 -1
  103. package/dist/plugs/settings/gesture/touch.js +1 -1
  104. package/dist/plugs/settings/gesture/wheel.cjs +7 -6
  105. package/dist/plugs/settings/gesture/wheel.cjs.map +1 -1
  106. package/dist/plugs/settings/gesture/wheel.js +1 -1
  107. package/dist/plugs/settings/modes/cast.cjs.map +1 -1
  108. package/dist/plugs/settings/modes/cast.js +2 -2
  109. package/dist/plugs/settings/panel/index.cjs +22 -25
  110. package/dist/plugs/settings/panel/index.cjs.map +1 -1
  111. package/dist/plugs/settings/panel/index.js +2 -2
  112. package/dist/plugs/settings/panel/menu/index.cjs +22 -25
  113. package/dist/plugs/settings/panel/menu/index.cjs.map +1 -1
  114. package/dist/plugs/settings/panel/menu/index.js +1 -1
  115. package/dist/plugs/settings/sleepTimer/index.cjs +1 -1
  116. package/dist/plugs/settings/sleepTimer/index.cjs.map +1 -1
  117. package/dist/plugs/settings/sleepTimer/index.js +2 -2
  118. package/dist/plugs/settings/timeTravel/index.cjs +16 -3
  119. package/dist/plugs/settings/timeTravel/index.cjs.map +1 -1
  120. package/dist/plugs/settings/timeTravel/index.js +3 -1
  121. package/dist/plugs/settings/toasts/index.cjs +1 -1
  122. package/dist/plugs/settings/toasts/index.cjs.map +1 -1
  123. package/dist/plugs/settings/toasts/index.js +1 -1
  124. package/dist/plugs/settings/voice/index.cjs +2 -2
  125. package/dist/plugs/settings/voice/index.cjs.map +1 -1
  126. package/dist/plugs/settings/voice/index.js +2 -2
  127. package/dist/plugs/z-register.cjs +99 -102
  128. package/dist/plugs/z-register.cjs.map +1 -1
  129. package/dist/plugs/z-register.js +36 -36
  130. package/dist/super/components/icons.js +69 -69
  131. package/dist/super/components/index.cjs +21 -18
  132. package/dist/super/components/index.cjs.map +1 -1
  133. package/dist/super/components/index.js +126 -126
  134. package/dist/super/components/notifiers.js +15 -15
  135. package/dist/super/plugs/index.cjs +36 -37
  136. package/dist/super/plugs/index.cjs.map +1 -1
  137. package/dist/super/plugs/index.js +92 -92
  138. package/dist/super/plugs/menus.cjs.map +1 -1
  139. package/dist/super/plugs/menus.js +21 -21
  140. package/dist/super/techs.cjs +5 -5
  141. package/dist/super/techs.cjs.map +1 -1
  142. package/dist/super/techs.js +9 -9
  143. package/dist/super/utils.cjs +1 -1
  144. package/dist/super/utils.cjs.map +1 -1
  145. package/dist/super/utils.js +2 -2
  146. package/dist/super.cjs +62 -60
  147. package/dist/super.cjs.map +1 -1
  148. package/dist/super.css +12 -8
  149. package/dist/super.css.map +1 -1
  150. package/dist/super.global.js +69 -67
  151. package/dist/super.global.js.map +1 -1
  152. package/dist/super.js +114 -114
  153. package/dist/techs/vimeo.cjs +4 -4
  154. package/dist/techs/vimeo.cjs.map +1 -1
  155. package/dist/techs/vimeo.js +1 -1
  156. package/dist/techs/youtube.cjs +1 -1
  157. package/dist/techs/youtube.cjs.map +1 -1
  158. package/dist/techs/youtube.js +1 -1
  159. package/dist/techs/z-register.cjs +5 -5
  160. package/dist/techs/z-register.cjs.map +1 -1
  161. package/dist/techs/z-register.js +3 -3
  162. package/dist/utils/file.cjs +1 -1
  163. package/dist/utils/file.cjs.map +1 -1
  164. package/dist/utils/file.js +1 -1
  165. package/package.json +5 -5
  166. package/dist/chunk-AD3XWTDT.js.map +0 -1
  167. package/dist/chunk-BTJYBMCN.js.map +0 -1
  168. package/dist/chunk-C7WMUGQJ.js.map +0 -1
  169. package/dist/chunk-CBOLIMGO.js.map +0 -1
  170. package/dist/chunk-DB5WSKD2.js.map +0 -1
  171. package/dist/chunk-GSQSVUPG.js.map +0 -1
  172. package/dist/chunk-OKR2ZODT.js.map +0 -1
  173. package/dist/chunk-OOEHHRIC.js.map +0 -1
  174. package/dist/chunk-QMUA2A3J.js.map +0 -1
  175. package/dist/chunk-VHXT7FSN.js.map +0 -1
  176. package/dist/chunk-WZ6U3VGO.js.map +0 -1
  177. package/dist/chunk-YNGJBJJ7.js.map +0 -1
  178. /package/dist/{chunk-Y77QBJ7Z.js.map → chunk-BSAU7MO3.js.map} +0 -0
  179. /package/dist/{chunk-34T2ENWC.js.map → chunk-BSSN4LOS.js.map} +0 -0
  180. /package/dist/{chunk-U7PNK3U6.js.map → chunk-EMUVOJ55.js.map} +0 -0
  181. /package/dist/{chunk-47P4B565.js.map → chunk-EQSAKPG7.js.map} +0 -0
  182. /package/dist/{chunk-FZKJFCAF.js.map → chunk-IWWMH4W6.js.map} +0 -0
  183. /package/dist/{chunk-PAKGD74O.js.map → chunk-JJVHFCQL.js.map} +0 -0
  184. /package/dist/{chunk-GNGPNTFF.js.map → chunk-MBJP3EWJ.js.map} +0 -0
  185. /package/dist/{chunk-RAKMJWS5.js.map → chunk-MU7HGLK3.js.map} +0 -0
  186. /package/dist/{chunk-5TW6WOCX.js.map → chunk-OJFK6WI2.js.map} +0 -0
  187. /package/dist/{chunk-W2KDNL4R.js.map → chunk-QKUKQSKB.js.map} +0 -0
  188. /package/dist/{chunk-BN2A73HE.js.map → chunk-SNBW6EOC.js.map} +0 -0
  189. /package/dist/{chunk-7XP5XO6O.js.map → chunk-TXPMH27N.js.map} +0 -0
  190. /package/dist/{chunk-PUMQYSCS.js.map → chunk-UBCA74FA.js.map} +0 -0
  191. /package/dist/{chunk-HWLOJIZU.js.map → chunk-V3HUGHGP.js.map} +0 -0
  192. /package/dist/{chunk-H3KSEMMS.js.map → chunk-VQGMUREF.js.map} +0 -0
  193. /package/dist/{chunk-7DLOH5JU.js.map → chunk-WYVWWV7T.js.map} +0 -0
  194. /package/dist/{chunk-ZSTYOOII.js.map → chunk-XQNF5I2G.js.map} +0 -0
  195. /package/dist/{chunk-6F5LNDT4.js.map → chunk-Z27YDVC2.js.map} +0 -0
  196. /package/dist/{chunk-FTBGIAD6.js.map → chunk-ZASB3XR5.js.map} +0 -0
@@ -52,7 +52,7 @@ var CaptionsPlug = class extends BasePlug {
52
52
  this.settings.css.currentCaptionsX, this.settings.css.currentCaptionsY;
53
53
  this.media.set("state.currentTextTrack", (v) => this.isNative && v !== this.shadowCurrentIndex ? TERMINATOR : v, { signal: this.signal });
54
54
  this.media.watch("tech", (t) => (this.isNative = t.constructor === HTML5Tech, this.syncFeatures()), { init: true, signal: this.signal });
55
- STYLE_PATHS.forEach((p) => this.ctlr.config.watch(`settings.captions.${p}.value`, (v) => (setPath(this.settings.css, camelize(`captions.${p}`, /\./), p.includes("opacity") ? +v / 100 : v), this.views.forEach((v2) => v2.rerender()), this.iView?.rerender()), { init: true, signal: this.signal }));
55
+ STYLE_PATHS.forEach((p) => this.ctlr.config.watch(`settings.captions.${p}.value`, (v) => (setPath(this.settings.css, camelize(`captions.${p}`, /\./), p.includes("opacity") ? +v / 100 : v), !/color|opacity/.test(p) && (this.views.forEach((v2) => v2.rerender(true)), this.sViewsMaps.forEach((map) => map.forEach((v2) => v2.rerender(true))), this.iView?.rerender(true))), { init: true, signal: this.signal }));
56
56
  this.media.on("intent.currentTextTrack", this.handleCurrentTextTrackIntent, { capture: true, init: this.ctlr.flags.wired, initType: "set", signal: this.signal });
57
57
  this.media.on("intent.secondaryTextTracks", this.handleSecondaryTextTracksIntent, { capture: true, init: this.ctlr.flags.wired, initType: "set", signal: this.signal });
58
58
  this.media.on("intent.textVisible", this.handleTextVisibleIntent, { capture: true, init: this.ctlr.flags.wired, initType: "set", signal: this.signal });
@@ -200,4 +200,4 @@ __publicField(CaptionsPlug, "BUILD", CAPTIONS_BUILD);
200
200
  export {
201
201
  CaptionsPlug
202
202
  };
203
- //# sourceMappingURL=chunk-CBOLIMGO.js.map
203
+ //# sourceMappingURL=chunk-6EGJSMMW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ts/plugs/settings/captions/index.ts"],"sourcesContent":["import { BasePlug } from \"../../base\";\r\nimport type { Controller } from \"@core/controller\";\r\nimport type { CueLike, CaptionsConfig, CaptionsState } from \"./types\";\r\nimport { CAPTIONS_BUILD } from \"./build\";\r\nimport { ROTATE_PATHS, STYLE_PATHS } from \"./build\";\r\nimport type { CaptionsView } from \"@components/captionsView\";\r\nimport { ComponentRegistry, MenuRegistry } from \"@core/registries\";\r\nimport { type REvent, type PathValue, TERMINATOR, NOOP, getRaw } from \"sia-reactor\";\r\nimport { getPath, setPath } from \"sia-reactor/utils\";\r\nimport type { CtlrConfig } from \"@defs/config\";\r\nimport type { CtlrMedia } from \"@defs/contract\";\r\nimport { rotateAny } from \"@utils/num\";\r\nimport { getTrackIdx, getTrackKind, getTrackLabel, getTrackLang } from \"@utils/media\";\r\nimport { camelize, uncamelize } from \"@utils/str\";\r\nimport { silence } from \"sia-reactor/modules\";\r\nimport { isArr, parseUIOpt } from \"@utils/obj\";\r\nimport { HTML5Tech } from \"@techs/html5\";\r\nimport { KeyMod } from \"../keys\";\r\n\r\nexport class CaptionsPlug extends BasePlug<CaptionsConfig, CaptionsState> {\r\n public static readonly plugName = \"captions\";\r\n public static readonly BUILD = CAPTIONS_BUILD;\r\n protected views = new Map<string, CaptionsView>();\r\n protected iView: CaptionsView | null = null; // info view\r\n protected sViewsMaps = new Map<number, Map<string, CaptionsView>>();\r\n protected isNative = false;\r\n protected shadowCurrentIndex?: number;\r\n\r\n constructor(ctlr: Controller, config = ctlr.settings.captions) {\r\n super(ctlr, config, { snubbingCurrentTextTrack: false });\r\n }\r\n\r\n public override wire(): void {\r\n this.settings.css.currentCaptionsX, this.settings.css.currentCaptionsY; // Read once so CSSPlug can cache computed values.\r\n // Ctlr Media Setters\r\n this.media.set(\"state.currentTextTrack\", (v) => (this.isNative && v !== this.shadowCurrentIndex ? TERMINATOR : v), { signal: this.signal }); // #DICTATOR: reliable authority\r\n // ----------- Watchers\r\n this.media.watch(\"tech\", (t) => ((this.isNative = t.constructor === HTML5Tech), this.syncFeatures()), { init: true, signal: this.signal });\r\n // ---- Config --------\r\n STYLE_PATHS.forEach((p) => this.ctlr.config.watch(`settings.captions.${p}.value`, (v) => (setPath(this.settings.css, camelize(`captions.${p}`, /\\./), p.includes(\"opacity\") ? +v / 100 : (v as string)), !/color|opacity/.test(p) && (this.views.forEach((v) => v.rerender(true)), this.sViewsMaps.forEach((map) => map.forEach((v) => v.rerender(true))), this.iView?.rerender(true))), { init: true, signal: this.signal }));\r\n this.media.on(\"intent.currentTextTrack\", this.handleCurrentTextTrackIntent, { capture: true, init: this.ctlr.flags.wired, initType: \"set\", signal: this.signal }); // #HIGHER-POWER: power arbitration\r\n this.media.on(\"intent.secondaryTextTracks\", this.handleSecondaryTextTracksIntent, { capture: true, init: this.ctlr.flags.wired, initType: \"set\", signal: this.signal });\r\n this.media.on(\"intent.textVisible\", this.handleTextVisibleIntent, { capture: true, init: this.ctlr.flags.wired, initType: \"set\", signal: this.signal }); // #HIGHER-POWER: power arbitration\r\n this.media.on(\"state.currentTextTrack\", this.syncUI, { init: this.ctlr.flags.wired, signal: this.signal });\r\n this.media.on(\"state.textVisible\", this.handleTextVisibleState, { init: this.ctlr.flags.wired, signal: this.signal });\r\n this.media.on(\"state.currentTime\", () => (this.views.forEach((v) => v.syncKaraoke()), this.sViewsMaps.forEach((map) => map.forEach((v) => v.syncKaraoke()))), { init: this.ctlr.flags.wired, signal: this.signal });\r\n this.media.on(\"status.textTracks\", this.syncUI, { signal: this.signal });\r\n this.media.on(\"status.activeCues\", this.handleActiveCuesStatus, { init: this.ctlr.flags.wired, signal: this.signal });\r\n // ---- Config --------\r\n this.ctlr.config.on(\"settings.captions.multiple\", this.syncTracks, { signal: this.signal });\r\n this.ctlr.config.on(\"settings.captions.font.size.min\", ({ value }) => this.settings.captions.font.size.value < value && (this.settings.captions.font.size.value = value), { init: true, signal: this.signal });\r\n this.ctlr.config.on(\"settings.captions.font.size.max\", ({ value }) => this.settings.captions.font.size.value > value && (this.settings.captions.font.size.value = value), { init: true, signal: this.signal });\r\n for (const k of [\"lockToPanel\", \"lockToVideo\"] as const) this.ctlr.config.on(`settings.captions.window.position.${k}`, ({ value }) => this.media.container.classList.toggle(`tmg-media-captions-${uncamelize(k, \"-\")}`, value), { init: true, signal: this.signal });\r\n // Post Wiring\r\n this.ctlr.learn(\"captions\", { fn: this.toggleVisible }, this.signal);\r\n this.ctlr.learn(\"captionsResetPos\", { fn: this.resetCuesPos }, this.signal);\r\n for (const k of [\"Up\", \"Down\"] as const) this.ctlr.learn(`captionsFontSize${k}`, { fn: (_: KeyboardEvent, mod: KeyMod) => this.changeFontSize((this.ctlr.plug(\"settings.keys\")?.getModded(\"captionsFontSize\", mod, this.config.font.size.skip) ?? this.config.font.size.skip) * (k === \"Up\" ? 1 : -1)), keyboard: { phase: \"keydown\" } }, this.signal);\r\n // prettier-ignore\r\n ROTATE_PATHS.forEach((p) => this.ctlr.learn(camelize(`captions.${p}`, /\\./), { fn: () => this.rotateProp(getPath(this.config, p as any).options.map((opt: any) => parseUIOpt(opt).value), p), keyboard: { phase: \"keydown\" } }, this.signal));\r\n super.wire();\r\n }\r\n\r\n protected handleCurrentTextTrackIntent(e: REvent<CtlrMedia, \"intent.currentTextTrack\">): void {\r\n if ((this.state.snubbingCurrentTextTrack = !!e.resolved || !this.isNative)) return void (!e.resolved && e.reject(this.name));\r\n const handle = () => {\r\n if ((e.value as number) >= this.media.status.textTracks.length) return this.syncTracks(); // re-trigger forwarding for secondaries\r\n this.media.state.currentTextTrack = this.shadowCurrentIndex = e.value as number; // #VALIDATED: mediated for cast conformity; no-opy\r\n this.media.state.textVisible = e.value === -1 ? false : this.media.intent.textVisible; // #UX boost: not a drifter\r\n this.syncTracks();\r\n };\r\n this.ctlr.when(\"loadedMetadata\", e, handle, this.signal);\r\n e.resolve(this.name);\r\n }\r\n protected handleSecondaryTextTracksIntent(e: REvent<CtlrMedia, \"intent.secondaryTextTracks\">): void {\r\n if (e.resolved || !this.isNative) return void (!e.resolved && e.reject(this.name));\r\n this.ctlr.when(\"loadedMetadata\", e, this.syncTracks, this.signal);\r\n e.resolve(this.name);\r\n }\r\n\r\n protected handleTextVisibleIntent(e: REvent<CtlrMedia, \"intent.textVisible\">, idx = this.media[this.ctlr.gospel].currentTextTrack): void {\r\n if (e.resolved || !this.media.features.activeCues) return void (!e.resolved && e.reject(this.name)); // this ain't no mega cue lib\r\n const handle = (iidx = this.media.intent.currentTextTrack) => {\r\n // prettier-ignore\r\n if (e.value && this.media.status.textTracks.length && idx === -1) silence(() => (this.media.intent.currentTextTrack = this.shadowCurrentIndex = iidx !== -1 ? iidx : this.isNative ? Math.max(0, getTrackIdx(this.media.element, \"Text\", this.media.state.tracks.find((t) => t.default), this.media.status.textTracks)) : 0)); // #BULLET-PROOF: should come clutch\r\n this.media.state.textVisible = e.value;\r\n };\r\n this.ctlr.when(\"loadedMetadata\", e, handle, this.signal);\r\n e.resolve(this.name); // hid everytin already but need minors to shutup\r\n }\r\n\r\n protected handleTextVisibleState({ value }: REvent<CtlrMedia, \"state.textVisible\">): void {\r\n this.media.container.classList.toggle(\"tmg-media-captions\", this.canVisible && value);\r\n const track = value && this.media.status.textTracks[this.media.state.currentTextTrack];\r\n track && (this.iView ??= ComponentRegistry.init(\"captionsView\", this.ctlr) || null)?.preview(this.getPreviewTip(track));\r\n if (!this.media.features.activeCues) return;\r\n if (value) this.handleActiveCuesStatus(undefined, this.media.status.activeCues), this.sViewsMaps.forEach((map, i) => this.handleCueChange(undefined, this.media.status.textTracks[i]));\r\n else !this.mainView?.previewing && this.syncCues(null, this.views, this.initView), this.iView?.render(null), this.sViewsMaps.forEach((map) => this.syncCues(null, map));\r\n }\r\n\r\n protected handleActiveCuesStatus(e?: REvent<CtlrMedia, \"status.activeCues\">, value = e?.value): void {\r\n const language = getTrackLang(this.media.status.textTracks[this.media.state.currentTextTrack]);\r\n this.media.state.textVisible && (this.views.forEach((v) => (v.config.language = language)), this.syncCues(value as CueLike[] | null, this.views, (key) => this.initView(key, language)));\r\n }\r\n\r\n protected handleCueChange(e?: globalThis.Event, track = e?.target as TextTrack | null): void {\r\n const idx = this.media.state.textVisible ? Array.prototype.indexOf.call(this.media.status.textTracks, track) : -1;\r\n if (!track || idx === -1 || idx === this.media.state.currentTextTrack) return;\r\n const map = this.sViewsMaps.get(idx),\r\n opts = { secOrder: this.sViewsMaps.size, ofMedia: true, language: getTrackLang(track), trackIdx: idx };\r\n map?.forEach((v) => ((v.config.language = opts.language), (v.config.trackIdx = idx))), this.syncCues(track.activeCues ? [...track.activeCues] : null, map, (key, v = ComponentRegistry.init(\"captionsView\", this.ctlr, opts)) => v && (map.set(key, v), v));\r\n }\r\n\r\n public toggleVisible(): void {\r\n if (!this.canVisible) return this.mainView?.preview(this.media.features.textTracks ? `No captions available for this ${this.media.type}` : `Captions not supported for this ${this.media.type}`);\r\n this.media.intent.textVisible = !this.media.state.textVisible;\r\n }\r\n protected rotateProp(steps: PathValue<CtlrConfig[\"settings\"][\"captions\"], `${(typeof ROTATE_PATHS)[number]}.value`>[], prop: (typeof ROTATE_PATHS)[number], numeric = prop.includes(\"opacity\")): void {\r\n if (!steps.length) return;\r\n const cssVal = this.settings.css[camelize(`captions.${prop}`, /\\./)];\r\n setPath(this.config, `${prop}.value`, rotateAny((numeric ? Number : String)(prop.includes(\"opacity\") ? +cssVal * 100 : cssVal), steps));\r\n this.media.features.activeCues && this.ctlr.config.stall(() => (this.views.size ? this.views.forEach((v) => v.preview()) : this.mainView?.preview())); // rerender && }\r\n }\r\n public changeFontSize(value: number, sign = value >= 0 ? \"+\" : \"-\"): void {\r\n value = Math.abs(value);\r\n const size = Number(this.settings.css.captionsFontSize);\r\n switch (sign) {\r\n case \"-\":\r\n if (size > this.config.font.size.min) this.config.font.size.value = size - (size % value || value);\r\n break;\r\n default:\r\n if (size < this.config.font.size.max) this.config.font.size.value = size + (size % value ? size % value : value);\r\n }\r\n this.media.features.activeCues && this.ctlr.config.stall(() => (this.views.size ? this.views.forEach((v) => v.preview()) : this.mainView?.preview()));\r\n }\r\n\r\n protected initView(key: string, language = \"\"): CaptionsView | undefined {\r\n const view = ComponentRegistry.init(\"captionsView\", this.ctlr, { isMain: key === \"main\", ofMedia: true, language }) || undefined;\r\n return view && this.views.set(key, view), view;\r\n }\r\n public get mainView(): CaptionsView | undefined {\r\n return this.views.get(\"main\") || this.initView(\"main\", getTrackLang(this.media.status.textTracks[this.media.state.currentTextTrack]));\r\n }\r\n\r\n public get canVisible(): boolean {\r\n return (this.media.features.textTracks ? !!this.media.status.textTracks.length : !this.media.features.activeCues) && !!this.media.features.textVisible;\r\n }\r\n public getPreviewTip(track = this.media.status.textTracks[this.media.state.currentTextTrack], idx = this.media.state.currentTextTrack): CueLike {\r\n return { text: `${getTrackLabel(track, idx)} ${getTrackKind(track)}`.trim() + \"\\n Click ⚙ for settings\", region: { viewportAnchorX: 12.5, viewportAnchorY: 20 } };\r\n }\r\n\r\n public syncUI(): void {\r\n this.media.container.classList.toggle(\"tmg-media-captions\", this.canVisible && this.media.state.textVisible);\r\n this.media.container.dataset.textKind = this.media.status.textKind = getTrackKind(this.media.status.textTracks[this.media.state.currentTextTrack]);\r\n }\r\n protected syncTracks(): void {\r\n // prettier-ignore\r\n const { intent: int, state: s, status: { textTracks: list } } = this.media, idx = s.currentTextTrack;\r\n if (!list || this.state.snubbingCurrentTextTrack) return;\r\n s.secondaryTextTracks = this.config.multiple ? int.secondaryTextTracks.filter((i) => i !== idx && list[i]) : [];\r\n for (const [i, map] of this.sViewsMaps) {\r\n if (this.config.multiple && s.secondaryTextTracks.includes(i)) continue;\r\n map.forEach((v) => v.destroy()), this.sViewsMaps.delete(i);\r\n if (this.isNative && i !== idx && list[i]) (list[i].mode = \"disabled\"), list[i].removeEventListener(\"cuechange\", this.handleCueChange);\r\n }\r\n if (!this.isNative) return;\r\n for (let i = 0, len = list.length; i < len; i++) {\r\n const sec = this.config.multiple && s.secondaryTextTracks.includes(i);\r\n list[i].mode = i === idx || sec ? \"hidden\" : \"disabled\";\r\n if (sec) list[i].addEventListener(\"cuechange\", this.handleCueChange, { signal: this.signal }), !this.sViewsMaps.has(i) && (this.sViewsMaps.set(i, new Map()), this.handleCueChange(undefined, list[i]));\r\n }\r\n }\r\n protected syncCues(value: CueLike[] | null, map: Map<string, CaptionsView>, spawn: (key: string) => CaptionsView | undefined | null = NOOP): void {\r\n const groups = new Map<string, CueLike[]>();\r\n for (const cue of value ?? []) {\r\n const key = cue.region ? `region-${cue.region.id || `${cue.region.viewportAnchorX}-${cue.region.viewportAnchorY}`}` : \"main\";\r\n (groups.get(key) ?? (groups.set(key, []), groups.get(key)!)).push(cue);\r\n }\r\n !groups.has(\"main\") && groups.set(\"main\", []);\r\n for (const [key, cues] of groups) (map.get(key) ?? spawn(key))?.render(cues);\r\n for (const [key, view] of map) groups.has(key) || (view.destroy(), map.delete(key));\r\n }\r\n public syncFeatures(): void {\r\n this.media.tech.polyfill(\"textTracks\", this.isNative), this.media.tech.polyfill([\"currentTextTrack\", \"secondaryTextTracks\"], this.isNative && this.media.features.textTracks);\r\n this.media.tech.polyfill(\"textVisible\", this.media.features.activeCues), this.media.tech.polyfill(\"textsVisible\", this.isNative && this.media.features.currentTextTrack); // this.media.features.activeCues -> true\r\n }\r\n public resetCuesPos(): void {\r\n this.iView?.resetPos(), this.views.forEach((v) => v.resetPos()), this.sViewsMaps.forEach((map) => map.forEach((v) => v.resetPos()));\r\n }\r\n\r\n protected override registerMenu(items = MenuRegistry.get(\"settings.captions\")?.(this), menu = this.ctlr.plug(\"settings.panel\")?.menu): void {\r\n if (items && menu) menu.unregister(\"captions\"), isArr(items) ? items.forEach((item) => menu.registerBefore(\"chapters\", item)) : menu.registerBefore(\"chapters\", items);\r\n }\r\n\r\n protected override onDestroy(): void {\r\n this.iView?.destroy(), this.views.forEach((v) => v.destroy()), this.sViewsMaps.forEach((map) => map.forEach((v) => v.destroy()));\r\n super.onDestroy();\r\n }\r\n}\r\n\r\nexport type * from \"./types\";\r\nexport * from \"./build\";\r\ndeclare module \"@defs/registries\" {\r\n interface PlugRegistryMap {\r\n \"settings.captions\": typeof CaptionsPlug;\r\n }\r\n interface ControllerDOMMap {\r\n captionsContainer?: HTMLDivElement | null;\r\n }\r\n}\r\n\r\ndeclare module \"@defs/config\" {\r\n interface Settings {\r\n captions: CaptionsConfig;\r\n }\r\n}\r\n\r\ndeclare module \"@defs/contract\" {\r\n interface MediaStatus {\r\n textKind: \"captions\" | \"subtitles\" | \"\";\r\n }\r\n interface MediaFeaturesExt {\r\n textsVisible: boolean;\r\n }\r\n}\r\n\r\ndeclare module \"@plugs/settings/css/types\" {\r\n interface CSSMap {\r\n captionsCharacterEdgeStyle: \"none\" | \"raised\" | \"depressed\" | \"outline\" | \"drop-shadow\";\r\n }\r\n}\r\n"],"mappings":"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","names":["v"]}
@@ -39,9 +39,9 @@ var RangeInput = class extends BaseComponent {
39
39
  __publicField(this, "rect");
40
40
  __publicField(this, "lastPtrPos", 0);
41
41
  __publicField(this, "lastThumbPos", 0);
42
- __publicField(this, "currentThumbPos", 0);
43
- __publicField(this, "stallCancelScrub", false);
44
- __publicField(this, "cancelScrubTimeoutId", null);
42
+ __publicField(this, "currThumbPos", 0);
43
+ __publicField(this, "stallCancel", false);
44
+ __publicField(this, "cancelTimeoutId", null);
45
45
  __publicField(this, "prevEX");
46
46
  __publicField(this, "prevEY");
47
47
  __publicField(this, "tx", null);
@@ -58,7 +58,7 @@ var RangeInput = class extends BaseComponent {
58
58
  this.rect = this.el.getBoundingClientRect();
59
59
  this.el.addEventListener("pointerdown", this.handlePointerDown, { signal: this.signal });
60
60
  this.el.addEventListener("keydown", this.handleKeyDown, { signal: this.signal });
61
- this.el.addEventListener("keyup", () => this.useTx(), { signal: this.signal });
61
+ this.media.container.addEventListener("keyup", () => this.tx && this.useTx(), { signal: this.signal });
62
62
  this.el.addEventListener("wheel", this.handleWheel, { passive: false, signal: this.signal });
63
63
  this.el.addEventListener("mouseover", () => this.rect = this.el.getBoundingClientRect(), { signal: this.signal });
64
64
  this.el.addEventListener("mousemove", this.handleInput, { signal: this.signal });
@@ -99,16 +99,16 @@ var RangeInput = class extends BaseComponent {
99
99
  this.el.setPointerCapture(e.pointerId);
100
100
  const s = getWindow(this.el).getComputedStyle(this.el);
101
101
  this.isVertical = s.writingMode.includes("vertical"), this.isRTL = s.direction === "rtl";
102
- this.rect = this.el.getBoundingClientRect(), this.lastPtrPos = this.getPos(e), this.lastThumbPos = this.currentThumbPos = this.getValuePos(), this.handleInput(e);
102
+ this.rect = this.el.getBoundingClientRect(), this.lastPtrPos = this.getPos(e), this.lastThumbPos = this.currThumbPos = this.getValuePos(), this.handleInput(e);
103
103
  for (const evt of ["pointermove", "pointerup", "pointercancel"]) getWindow(this.el).addEventListener(evt, evt === "pointermove" ? this.handleInput : this.stopScrubbing, { signal: this.signal });
104
104
  }
105
105
  stopScrubbing() {
106
106
  if (!this.state.scrubbing) return;
107
107
  this.state.scrubbing = this.state.previewing = false;
108
108
  this.ctlr.cancelRAFLoop(`${this.config.label}Inputing`);
109
- this.scrub(this.getPosValue(this.state.cancelScrub ? this.lastThumbPos : this.currentThumbPos), this.state.cancelScrub);
109
+ this.scrub(this.getPosValue(this.state.cancelScrub ? this.lastThumbPos : this.currThumbPos), this.state.cancelScrub);
110
110
  this.allowScrubbing(), this.stopPreviewing();
111
- this.stallCancelScrub = true;
111
+ this.stallCancel = true;
112
112
  for (const evt of ["pointermove", "pointerup", "pointercancel"]) getWindow(this.el).removeEventListener(evt, evt === "pointermove" ? this.handleInput : this.stopScrubbing);
113
113
  }
114
114
  stopPreviewing() {
@@ -117,14 +117,14 @@ var RangeInput = class extends BaseComponent {
117
117
  !this.state.scrubbing && this.ctlr.cancelRAFLoop(`${this.config.label}Inputing`);
118
118
  }
119
119
  cancelScrubbing() {
120
- if (this.stallCancelScrub || this.state.cancelScrub || this.cancelScrubTimeoutId) return;
120
+ if (this.stallCancel || this.state.cancelScrub || this.cancelTimeoutId) return;
121
121
  this.state.cancelScrub = true;
122
- this.cancelScrubTimeoutId = setTimeout(() => this.allowScrubbing(false), this.config.scrub.cancel.timeout, this.signal);
122
+ this.cancelTimeoutId = setTimeout(() => this.allowScrubbing(false), this.config.scrub.cancel.timeout, this.signal);
123
123
  }
124
124
  allowScrubbing(reset = true) {
125
- this.stallCancelScrub = this.state.cancelScrub = false;
126
- clearTimeout(this.cancelScrubTimeoutId);
127
- if (reset) this.cancelScrubTimeoutId = null;
125
+ this.stallCancel = this.state.cancelScrub = false;
126
+ clearTimeout(this.cancelTimeoutId);
127
+ if (reset) this.cancelTimeoutId = null;
128
128
  }
129
129
  handleInput(e) {
130
130
  if (this.config.readonly || this.config.disabled) return;
@@ -133,7 +133,7 @@ var RangeInput = class extends BaseComponent {
133
133
  if (this.prevEX === e.clientX && this.prevEY === e.clientY) return;
134
134
  this.prevEX = e.clientX, this.prevEY = e.clientY;
135
135
  (_a = this.state).previewing || (_a.previewing = true);
136
- const progress = this.getPos(e), pos = this.currentThumbPos = clamp(0, !this.state.scrubbing || this.config.scrub.relative ? progress : this.lastThumbPos + progress - this.lastPtrPos, 1);
136
+ const progress = this.getPos(e), pos = this.currThumbPos = clamp(0, !this.state.scrubbing || this.config.scrub.relative ? progress : this.lastThumbPos + progress - this.lastPtrPos, 1);
137
137
  this.config.previewValue = this.getPosValue(pos);
138
138
  if (this.state.scrubbing) {
139
139
  !this.config.scrub.sync ? this.syncElPos(this.thumbEl, pos, false, "auto") : this.scrub(this.config.previewValue);
@@ -231,4 +231,4 @@ __publicField(RangeInput, "componentName", "rangeInput");
231
231
  export {
232
232
  RangeInput
233
233
  };
234
- //# sourceMappingURL=chunk-OOEHHRIC.js.map
234
+ //# sourceMappingURL=chunk-AS4J74Q2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ts/components/rangeInput/index.ts"],"sourcesContent":["import { BaseComponent } from \"../base\";\r\nimport { RangeInputChunk, RangeInputConfig, RangeState } from \"./types\";\r\nimport { RANGE_INPUT_BUILD } from \"./build\";\r\nimport type { Controller } from \"@core/controller\";\r\nimport { reactive, type Reactive } from \"sia-reactor\";\r\nimport { deepClone, mergeObjs } from \"sia-reactor/utils\";\r\nimport { createEl, getWindow, observeResize } from \"@utils/dom\";\r\nimport { clamp, stepNum } from \"@utils/num\";\r\nimport { setTimeout } from \"@utils/fn\";\r\nimport { startTx, endTx, Transaction } from \"sia-reactor/modules\";\r\n\r\nexport class RangeInput<Config extends RangeInputConfig = RangeInputConfig, State extends RangeState = RangeState> extends BaseComponent<Reactive<Config>, State, HTMLDivElement> {\r\n public declare config: Reactive<Config> & Reactive<RangeInputConfig>;\r\n public static readonly componentName: string = \"rangeInput\";\r\n public barsWrapper!: HTMLElement;\r\n public marksWrapper!: HTMLElement;\r\n public chunks: RangeInputChunk[] = [];\r\n public thumbEl!: HTMLElement;\r\n public tooltipEl!: HTMLElement;\r\n public marksActive = false; // override in child if needed\r\n public isVertical = false;\r\n public isRTL = false;\r\n protected rect!: DOMRect;\r\n protected lastPtrPos = 0;\r\n protected lastThumbPos = 0;\r\n protected currThumbPos = 0;\r\n protected stallCancel = false;\r\n protected cancelTimeoutId: number | null = null;\r\n\r\n constructor(ctlr: Controller, config?: Partial<Config>, state?: Partial<State>) {\r\n super(ctlr, reactive(mergeObjs(deepClone(RANGE_INPUT_BUILD), config) as unknown as Reactive<Config>, { scrubbing: false, previewing: false, cancelScrub: false, ...state } as any));\r\n }\r\n\r\n public override create() {\r\n // Variables Assignments\r\n this.element = createEl(\"div\", { className: \"tmg-media-range-container\", tabIndex: 0, role: \"slider\" });\r\n this.barsWrapper = createEl(\"div\", { className: \"tmg-media-range-bars-wrapper tmg-media-no-pointer\" });\r\n this.marksWrapper = createEl(\"div\", { className: \"tmg-media-range-marks-wrapper tmg-media-no-pointer\" });\r\n this.thumbEl = createEl(\"div\", { className: \"tmg-media-range-thumb\" });\r\n this.tooltipEl = createEl(\"div\", { className: \"tmg-media-range-tooltip\" });\r\n // DOM Injection\r\n return this.el.append(this.barsWrapper, this.marksWrapper, this.thumbEl, this.tooltipEl), this.el;\r\n }\r\n\r\n public override wire(): void {\r\n // Variables Asignments\r\n this.rect = this.el.getBoundingClientRect();\r\n // Event Listeners\r\n this.el.addEventListener(\"pointerdown\", this.handlePointerDown, { signal: this.signal });\r\n this.el.addEventListener(\"keydown\", this.handleKeyDown, { signal: this.signal });\r\n this.media.container.addEventListener(\"keyup\", () => this.tx && this.useTx(), { signal: this.signal });\r\n this.el.addEventListener(\"wheel\", this.handleWheel, { passive: false, signal: this.signal });\r\n this.el.addEventListener(\"mouseover\", () => (this.rect = this.el.getBoundingClientRect()), { signal: this.signal });\r\n this.el.addEventListener(\"mousemove\", this.handleInput, { signal: this.signal });\r\n for (const evt of [\"mouseleave\", \"touchend\", \"touchcancel\"] as const) this.el.addEventListener(evt, () => setTimeout(this.stopPreviewing, 0, this.signal), { signal: this.signal }); // (mouse|pointer)move can fire after touchend\r\n // State Watchers\r\n this.state.watch(\"scrubbing\", this.useTx, { signal: this.signal });\r\n // ----- Listeners\r\n this.state.on(\"previewing\", ({ value }) => this.el.classList.toggle(\"tmg-media-control-previewing\", !!value), { signal: this.signal });\r\n this.state.on(\"scrubbing\", ({ value }) => this.el.classList.toggle(\"tmg-media-control-scrubbing\", !!value), { signal: this.signal });\r\n this.state.on(\"cancelScrub\", ({ value }) => this.el.classList.toggle(\"tmg-media-control-cancel-scrub\", !!value), { signal: this.signal });\r\n // Config Setters\r\n this.config.set(\"value\", (value) => stepNum(value, this.config), { signal: this.signal });\r\n // ------ Watchers\r\n this.config.watch(\"value\", this.onValue, { init: true, signal: this.signal }); // #SYNC: near native speed\r\n this.config.watch(\"previewValue\", this.onPreviewValue, { init: true, signal: this.signal }); // #SYNC: near native speed\r\n // ------ Listeners\r\n this.config.on(\"label\", ({ value }) => (this.el.ariaLabel = value!), { init: true, signal: this.signal });\r\n this.config.on(\"min\", ({ value }) => (this.el.ariaValueMin = String(value!)), { init: true, signal: this.signal });\r\n this.config.on(\"max\", ({ value }) => (this.el.ariaValueMax = String(value!)), { init: true, signal: this.signal });\r\n this.config.on(\"tooltip\", ({ value }) => this.el.toggleAttribute(\"tooltip\", !!value), { init: true, signal: this.signal });\r\n this.config.on(\"readonly\", ({ value }) => this.el.toggleAttribute(\"readonly\", !!value), { init: true, signal: this.signal });\r\n this.config.on(\"disabled\", ({ value }) => this.el.toggleAttribute(\"disabled\", !!value), { init: true, signal: this.signal });\r\n this.config.on(\"divs\", ({ currentTarget: { value } }) => this.syncDivs(value), { init: true, signal: this.signal });\r\n this.config.on(\"marks\", ({ currentTarget: { value } }) => this.syncMarks(value), { init: true, signal: this.signal });\r\n // Post Wiring\r\n observeResize(this.el, () => this.ctlr.throttle(`${this.config.label}Resizing`, this.handleResize, 30, false, this.signal), this.signal);\r\n }\r\n public get canScrub(): boolean {\r\n return !this.config.readonly && !this.config.disabled;\r\n }\r\n protected scrub(value: number, bypass = false): boolean {\r\n return this.canScrub ? (!bypass ? (this.config.value = value) : this.onValue(value), true) : false;\r\n }\r\n\r\n protected onValue(value: number): void {\r\n this.syncElPos(this.thumbEl, this.getValuePos(value), false, \"auto\"), this.syncChunks(\"value\", value);\r\n if (!this.state.scrubbing) this.el.ariaValueNow = String(value);\r\n }\r\n protected onPreviewValue(value: number): void {\r\n this.syncChunks(\"preview\", value), this.config.tooltip && (this.syncElPos(this.tooltipEl, this.getValuePos(value), false, !(this.state.previewing && !this.state.scrubbing) ? \"auto\" : false, this.thumbEl), (this.tooltipEl.innerHTML = `${this.config.formatTooltip ? this.config.formatTooltip(value) : Math.round(value)} ${this.getValueChunk(value)?.label || \"\"}`.trim()));\r\n }\r\n\r\n protected handlePointerDown(e: PointerEvent, t = e.target as HTMLElement): void {\r\n if (this.state.scrubbing || this.config.readonly || this.config.disabled || (this.marksActive && t?.matches?.(\".tmg-media-range-mark\"))) return;\r\n this.state.scrubbing = true;\r\n this.el.setPointerCapture(e.pointerId);\r\n const s = getWindow(this.el).getComputedStyle(this.el);\r\n (this.isVertical = s.writingMode.includes(\"vertical\")), (this.isRTL = s.direction === \"rtl\");\r\n (this.rect = this.el.getBoundingClientRect()), (this.lastPtrPos = this.getPos(e)), (this.lastThumbPos = this.currThumbPos = this.getValuePos()), this.handleInput(e);\r\n for (const evt of [\"pointermove\", \"pointerup\", \"pointercancel\"] as const) getWindow(this.el).addEventListener(evt, evt === \"pointermove\" ? this.handleInput : this.stopScrubbing, { signal: this.signal });\r\n }\r\n\r\n protected stopScrubbing(): void {\r\n if (!this.state.scrubbing) return;\r\n this.state.scrubbing = this.state.previewing = false;\r\n this.ctlr.cancelRAFLoop(`${this.config.label}Inputing`);\r\n this.scrub(this.getPosValue(this.state.cancelScrub ? this.lastThumbPos : this.currThumbPos), this.state.cancelScrub);\r\n this.allowScrubbing(), this.stopPreviewing();\r\n this.stallCancel = true;\r\n for (const evt of [\"pointermove\", \"pointerup\", \"pointercancel\"] as const) getWindow(this.el).removeEventListener(evt, evt === \"pointermove\" ? this.handleInput : this.stopScrubbing);\r\n }\r\n protected stopPreviewing(): void {\r\n if (!this.state.previewing) return;\r\n this.state.previewing = false;\r\n !this.state.scrubbing && this.ctlr.cancelRAFLoop(`${this.config.label}Inputing`);\r\n }\r\n\r\n protected cancelScrubbing(): void {\r\n if (this.stallCancel || this.state.cancelScrub || this.cancelTimeoutId) return;\r\n this.state.cancelScrub = true;\r\n this.cancelTimeoutId = setTimeout(() => this.allowScrubbing(false), this.config.scrub.cancel.timeout, this.signal);\r\n }\r\n protected allowScrubbing(reset = true): void {\r\n this.stallCancel = this.state.cancelScrub = false;\r\n clearTimeout(this.cancelTimeoutId!);\r\n if (reset) this.cancelTimeoutId = null;\r\n }\r\n\r\n protected handleInput(e: MouseEvent | PointerEvent): void {\r\n if (this.config.readonly || this.config.disabled) return;\r\n this.ctlr.RAFLoop(`${this.config.label}Inputing`, () => {\r\n if (this.prevEX === e.clientX && this.prevEY === e.clientY) return; // #CONSERVATION: peak stays peak\r\n (this.prevEX = e.clientX), (this.prevEY = e.clientY);\r\n this.state.previewing ||= true;\r\n const progress = this.getPos(e),\r\n pos = (this.currThumbPos = clamp(0, !this.state.scrubbing || this.config.scrub.relative ? progress : this.lastThumbPos + progress - this.lastPtrPos, 1));\r\n this.config.previewValue = this.getPosValue(pos);\r\n if (this.state.scrubbing) {\r\n !this.config.scrub.sync ? this.syncElPos(this.thumbEl, pos, false, \"auto\") : this.scrub(this.config.previewValue);\r\n Math.abs(pos - this.lastThumbPos) < this.config.scrub.cancel.delta / this.currDim ? this.cancelScrubbing() : this.allowScrubbing();\r\n }\r\n this.onInput(e, pos);\r\n }); // #PERK: no accidental scrub\r\n }\r\n private prevEX?: number;\r\n private prevEY?: number;\r\n protected onInput(_e: MouseEvent | PointerEvent, _pos: number): void {} // override to safely add preview logic (timeline preview image, etc.)\r\n\r\n protected handleWheel(e: WheelEvent): void {\r\n if (this.config.wheel.disabled) return;\r\n e.preventDefault(), e.stopPropagation();\r\n !this.tx ? this.useTx(true) : this.ctlr.debounce(`${this.config.label}WheelTx`, this.useTx, 350);\r\n const dimension = this.isVertical ? getWindow(this.el).innerHeight : getWindow(this.el).innerWidth,\r\n pos = clamp(0, Math.abs(-e.deltaY), dimension * this.config.wheel.axisRatio) / (dimension * this.config.wheel.axisRatio);\r\n this.scrub(this.config.value + (-e.deltaY >= 0 ? pos : -pos) * (this.config.max - this.config.min));\r\n }\r\n protected handleKeyDown(e: KeyboardEvent, key = e.key?.toLowerCase()): void {\r\n if (!/^(arrowleft|arrowdown|arrowright|arrowup)$/.test(key)) return;\r\n e.preventDefault(), e.stopPropagation(), !this.tx && this.useTx(true);\r\n this.scrub(this.config.value + (/^(arrowleft|arrowdown)$/.test(key) ? -1 : 1) * (e.shiftKey ? 2 : 1) * (this.config.step === \"any\" ? 1 : this.config.step));\r\n }\r\n\r\n protected handleResize(): void {\r\n this.rect = this.el.getBoundingClientRect();\r\n const pos = this.getValuePos();\r\n this.syncElPos(this.thumbEl, pos, false, \"auto\"), this.syncChunks(\"value\", this.config.value), this.config.tooltip && this.syncElPos(this.tooltipEl, pos, false, \"auto\", this.thumbEl);\r\n }\r\n\r\n protected getValuePos(value = this.config.value, range = this.config.max - this.config.min): number {\r\n return range ? (value - this.config.min) / range : 0;\r\n }\r\n protected getPosValue(pos: number): number {\r\n return pos * (this.config.max - this.config.min) + this.config.min;\r\n }\r\n protected getValueChunk(value = this.config.value): RangeInputChunk | undefined {\r\n for (let i = 0, len = this.chunks.length; i < len; i++) {\r\n const c = this.chunks[i];\r\n if (value >= c.start && value <= c.end) return c;\r\n }\r\n }\r\n protected getPos(e: MouseEvent | PointerEvent): number {\r\n const p = this.isVertical ? (e.clientY - this.rect.top) / this.rect.height : (e.clientX - this.rect.left) / this.rect.width;\r\n return clamp(0, this.isRTL ? 1 - p : p, 1);\r\n }\r\n public get currDim(): number {\r\n return this.isVertical ? this.rect.height : this.rect.width;\r\n }\r\n\r\n public syncElPos(el: HTMLElement, pos: number, isSize = false, inBounds: boolean | \"auto\" = false, bounds = el): void {\r\n const min = inBounds ? (this.isVertical ? bounds.offsetHeight : bounds.offsetWidth) / 2 / this.currDim : 0;\r\n pos = inBounds === \"auto\" ? min + pos * (1 - min * 2) : pos;\r\n const value = pos || (!isSize && pos === 0) ? `${clamp(min, pos, 1 - min) * 100}%` : \"\"; // onresize still for pixel accuracy, throttle won't stutter due to '%'\r\n if (isSize) this.isVertical ? ((el.style.blockSize = value), (el.style.inlineSize = \"\")) : ((el.style.inlineSize = value), (el.style.blockSize = \"\"));\r\n else this.isVertical ? ((el.style.insetBlockEnd = value), (el.style.insetInlineStart = \"\")) : ((el.style.insetInlineStart = value), (el.style.insetBlockEnd = \"\"));\r\n // el.style.transform = this.isVertical ? (isSize ? `scaleY(${pos})` : `translateY(-${pos * 100}%)`) : (isSize ? `scaleX(${pos})` : `translateX(${pos * 100}%)`);\r\n }\r\n protected syncChunks(key: keyof Omit<RangeInputChunk, \"start\" | \"end\" | \"size\" | \"el\" | \"label\">, value: number): void {\r\n const pos = this.getValuePos(value),\r\n minOff = !(this.state.previewing && !this.state.scrubbing) ? (this.isVertical ? this.thumbEl.offsetHeight : this.thumbEl.offsetWidth) / 2 / this.currDim : 0,\r\n offVal = this.getPosValue(minOff + pos * (1 - minOff * 2));\r\n for (let i = 0, len = this.chunks.length; i < len; i++) {\r\n const c = this.chunks[i];\r\n this.syncElPos(c[key]!, clamp(0, (offVal - c.start) / c.size, 1) || 0, true);\r\n c[key]!.style.setProperty(\"--tmg-media-current-range-pos\", String(this.getValuePos(offVal)));\r\n c.el.classList.toggle(`tmg-media-chunk-${key}-active`, value >= c.start && value <= c.end);\r\n }\r\n }\r\n protected syncDivs(divs = this.config.divs): void {\r\n (this.barsWrapper.innerHTML = \"\"), (this.chunks = []);\r\n const range = this.config.max - this.config.min,\r\n stops = divs.toSorted((a, b) => a.value - b.value); // Sort divs chronologically\r\n if (stops.length && stops[0].value > this.config.min && stops[0].value <= this.config.min + Math.min(0.02 * range, range * 0.25)) stops[0].value = this.config.min;\r\n else if (!stops.length || stops[0].value > this.config.min) stops.unshift({ value: this.config.min, label: \"\" });\r\n if (stops[stops.length - 1].value < this.config.max) stops.push({ value: this.config.max, label: \"\" });\r\n const fragment = document.createDocumentFragment();\r\n for (let i = 0, len = stops.length; i < len - 1; i++) {\r\n // prettier-ignore\r\n const start = stops[i], end = stops[i + 1], size = end.value - start.value;\r\n if (size <= 0) continue;\r\n const el = createEl(\"div\", { className: \"tmg-media-range-chunk\" }, undefined, { cssText: `--tmg-media-current-chunk-st: ${(start.value - this.config.min) / range};` }),\r\n chunk = { base: createEl(\"div\", { className: \"tmg-media-range-bar tmg-media-no-pointer tmg-media-range-base-bar\" }), preview: createEl(\"div\", { className: \"tmg-media-range-bar tmg-media-no-pointer tmg-media-range-preview-bar\" }), value: createEl(\"div\", { className: \"tmg-media-range-bar tmg-media-no-pointer tmg-media-range-value-bar\" }) };\r\n this.syncElPos(el, size / range, true), fragment.append((el.append(chunk.base, chunk.preview, chunk.value), el)), this.chunks.push({ start: start.value, end: end.value, label: start.label, size, el, ...chunk });\r\n }\r\n this.barsWrapper.append(fragment), this.onValue(this.config.value), this.onPreviewValue(this.config.previewValue);\r\n }\r\n protected syncMarks(marks = this.config.marks): void {\r\n this.marksWrapper.innerHTML = \"\";\r\n const els: HTMLElement[] = [],\r\n range = this.config.max - this.config.min;\r\n if (range <= 0) return;\r\n for (let i = 0, len = marks.length; i < len; i++) {\r\n const m = marks[i],\r\n el = createEl(\"div\", { className: `tmg-media-range-mark tmg-media-range-${m.type || \"base\"}-mark`, title: m.label || `${Math.round(m.start)}%${m.end && m.end > m.start + 1 ? ` - ${Math.round(m.end)}%` : \"\"} Marked`, tabIndex: this.marksActive ? 0 : -1, onclick: this.marksActive ? () => this.scrub(m.start) : undefined, onkeydown: this.marksActive ? (e) => (/^(Enter| )$/.test(e.key) ? this.scrub(m.start) : null) : undefined }, undefined);\r\n this.syncElPos(el, (m.start - this.config.min) / range, false), this.syncElPos(el, m.end ? (m.end - m.start) / range : 0, true), els.push(el);\r\n }\r\n this.marksWrapper.append(...els);\r\n }\r\n\r\n protected tx: Transaction | null = null;\r\n protected useTx(bool = false): void {\r\n bool ? (this.tx = startTx(`${this.config.label} ${this.marksActive ? \"seek\" : \"scrub\"}`)) : this.tx && this.config.stall(() => (endTx(this.tx!), (this.tx = null)));\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface ComponentRegistryMap {\r\n rangeInput: typeof RangeInput;\r\n }\r\n}\r\n\r\nexport type * from \"./types\";\r\n"],"mappings":"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","names":[]}
@@ -1,28 +1,22 @@
1
1
  import {
2
2
  VoicePlug
3
- } from "./chunk-GSQSVUPG.js";
3
+ } from "./chunk-IFGUUWN4.js";
4
4
  import {
5
5
  VOICE_BUILD,
6
6
  VOICE_COMMANDS
7
7
  } from "./chunk-CX6WCT3C.js";
8
+ import {
9
+ TimePlug
10
+ } from "./chunk-7DNRDHOS.js";
11
+ import {
12
+ TimeTravelPlug
13
+ } from "./chunk-F2TV6ZC3.js";
8
14
  import {
9
15
  VolumePlug
10
16
  } from "./chunk-XCSWJWK4.js";
11
17
  import {
12
18
  VOLUME_BUILD
13
19
  } from "./chunk-XTP4ACWF.js";
14
- import {
15
- TimeTravelPlug
16
- } from "./chunk-VHXT7FSN.js";
17
- import {
18
- TimePlug
19
- } from "./chunk-7DNRDHOS.js";
20
- import {
21
- PersistPlug
22
- } from "./chunk-2U47ZFEO.js";
23
- import {
24
- PERSIST_BUILD
25
- } from "./chunk-NAUZH3E6.js";
26
20
  import {
27
21
  PosterPlug
28
22
  } from "./chunk-3AMC24XP.js";
@@ -31,13 +25,17 @@ import {
31
25
  } from "./chunk-MBRGHAFE.js";
32
26
  import {
33
27
  SleepTimerPlug
34
- } from "./chunk-WZ6U3VGO.js";
28
+ } from "./chunk-DA3LHGNI.js";
35
29
  import {
36
30
  SLEEP_TIMER_BUILD
37
31
  } from "./chunk-XLFHANYG.js";
38
32
  import {
39
33
  PanelPlug
40
- } from "./chunk-U7PNK3U6.js";
34
+ } from "./chunk-EMUVOJ55.js";
35
+ import {
36
+ MENU_FOCUS_SELECTOR,
37
+ SETTINGS_BUILD
38
+ } from "./chunk-LOTHBU2Q.js";
41
39
  import {
42
40
  PlaybackRatePlug
43
41
  } from "./chunk-FX4HMCEZ.js";
@@ -45,15 +43,17 @@ import {
45
43
  PLAYBACK_RATE_BUILD
46
44
  } from "./chunk-K7AAKFQF.js";
47
45
  import {
48
- OverlayPlug
49
- } from "./chunk-PNR3AET6.js";
46
+ PersistPlug
47
+ } from "./chunk-2U47ZFEO.js";
48
+ import {
49
+ PERSIST_BUILD
50
+ } from "./chunk-NAUZH3E6.js";
50
51
  import {
51
52
  NotifiersPlug
52
53
  } from "./chunk-SUXV5CFZ.js";
53
54
  import {
54
- NOTIFIERS_BUILD,
55
- NOTIFIERS_WHITELIST
56
- } from "./chunk-LMIR5ZBR.js";
55
+ OverlayPlug
56
+ } from "./chunk-PNR3AET6.js";
57
57
  import {
58
58
  ObjectFitPlug
59
59
  } from "./chunk-GB45HRU2.js";
@@ -62,9 +62,21 @@ import {
62
62
  objectFits
63
63
  } from "./chunk-KD3OBG25.js";
64
64
  import {
65
- MENU_FOCUS_SELECTOR,
66
- SETTINGS_BUILD
67
- } from "./chunk-LOTHBU2Q.js";
65
+ MetadataPlug
66
+ } from "./chunk-TPGB25DQ.js";
67
+ import {
68
+ METADATA_BUILD
69
+ } from "./chunk-VZG6IJLU.js";
70
+ import {
71
+ NOTIFIERS_BUILD,
72
+ NOTIFIERS_WHITELIST
73
+ } from "./chunk-LMIR5ZBR.js";
74
+ import {
75
+ FramePlug
76
+ } from "./chunk-S43DCRAU.js";
77
+ import {
78
+ FRAME_BUILD
79
+ } from "./chunk-CMX2DCC5.js";
68
80
  import {
69
81
  ModesFullscreenPin,
70
82
  ModesMiniplayerPin,
@@ -87,82 +99,70 @@ import {
87
99
  import {
88
100
  KeysPlug
89
101
  } from "./chunk-EBOWHJHL.js";
90
- import {
91
- MetadataPlug
92
- } from "./chunk-TPGB25DQ.js";
93
- import {
94
- METADATA_BUILD
95
- } from "./chunk-VZG6IJLU.js";
96
102
  import {
97
103
  LockedPlug
98
104
  } from "./chunk-TOMBBJRF.js";
99
105
  import {
100
106
  LOCKED_BUILD
101
107
  } from "./chunk-IQS7GQSK.js";
108
+ import {
109
+ FastPlayPlug
110
+ } from "./chunk-OCXP56SS.js";
111
+ import {
112
+ FAST_PLAY_BUILD
113
+ } from "./chunk-VUIEIQLA.js";
102
114
  import {
103
115
  GesturePlug,
104
116
  GestureTouchPin,
105
117
  GestureWheelPin
106
- } from "./chunk-BTJYBMCN.js";
118
+ } from "./chunk-EFHF4LFC.js";
107
119
  import {
108
120
  GESTURE_BUILD,
109
121
  GESTURE_TOUCH_BUILD,
110
122
  GESTURE_WHEEL_BUILD
111
123
  } from "./chunk-CR4RWWTO.js";
124
+ import {
125
+ CaptionsPlug
126
+ } from "./chunk-6EGJSMMW.js";
112
127
  import {
113
128
  CSSPlug
114
129
  } from "./chunk-VC2IENHI.js";
115
130
  import {
116
- FastPlayPlug
117
- } from "./chunk-OCXP56SS.js";
131
+ ErrorsPlug
132
+ } from "./chunk-VSX4NO2D.js";
118
133
  import {
119
- FAST_PLAY_BUILD
120
- } from "./chunk-VUIEIQLA.js";
134
+ ERRORS_BUILD,
135
+ ERROR_CODES
136
+ } from "./chunk-LE6AZA74.js";
121
137
  import {
122
- FramePlug
123
- } from "./chunk-S43DCRAU.js";
138
+ BrightnessPlug
139
+ } from "./chunk-ZO5GDFFH.js";
124
140
  import {
125
- FRAME_BUILD
126
- } from "./chunk-CMX2DCC5.js";
141
+ BRIGHTNESS_BUILD
142
+ } from "./chunk-JPWNE7JO.js";
127
143
  import {
128
144
  ControlPanelDraggablePin,
129
145
  ControlPanelPlug
130
- } from "./chunk-QMUA2A3J.js";
146
+ } from "./chunk-ZL6WTDYH.js";
131
147
  import {
132
148
  ToastsPlug,
133
149
  tutorialOpts
134
- } from "./chunk-H6EMDZLU.js";
150
+ } from "./chunk-O2NZCYXE.js";
135
151
  import {
136
152
  TOASTS_BUILD
137
153
  } from "./chunk-3GIJOELI.js";
138
154
  import {
139
- ErrorsPlug
140
- } from "./chunk-VSX4NO2D.js";
155
+ LightPlug
156
+ } from "./chunk-IVPRGQ6Q.js";
141
157
  import {
142
- ERRORS_BUILD,
143
- ERROR_CODES
144
- } from "./chunk-LE6AZA74.js";
158
+ LIGHT_BUILD
159
+ } from "./chunk-XS757VKV.js";
145
160
  import {
146
161
  AmbiencePlug
147
162
  } from "./chunk-6OXVQT2M.js";
148
163
  import {
149
164
  AMBIENT_BUILD
150
165
  } from "./chunk-PPWMZTPS.js";
151
- import {
152
- BrightnessPlug
153
- } from "./chunk-ZO5GDFFH.js";
154
- import {
155
- BRIGHTNESS_BUILD
156
- } from "./chunk-JPWNE7JO.js";
157
- import {
158
- CaptionsPlug
159
- } from "./chunk-CBOLIMGO.js";
160
- import {
161
- SkeletonPlug
162
- } from "./chunk-MNZ4NBV3.js";
163
- import {
164
- SKELETON_BUILD
165
- } from "./chunk-MKBKL3BT.js";
166
166
  import {
167
167
  AutoPlug
168
168
  } from "./chunk-XP7RRUBS.js";
@@ -170,12 +170,6 @@ import {
170
170
  APT_AUTOPLAY_OPTIONS,
171
171
  AUTO_BUILD
172
172
  } from "./chunk-A5JTV3NH.js";
173
- import {
174
- LightPlug
175
- } from "./chunk-IVPRGQ6Q.js";
176
- import {
177
- LIGHT_BUILD
178
- } from "./chunk-XS757VKV.js";
179
173
  import {
180
174
  TIME_BUILD
181
175
  } from "./chunk-5SYYIHTK.js";
@@ -183,8 +177,11 @@ import {
183
177
  DisabledPlug
184
178
  } from "./chunk-FQSQ7C4X.js";
185
179
  import {
186
- DISABLED_BUILD
187
- } from "./chunk-WW56NFQS.js";
180
+ SkeletonPlug
181
+ } from "./chunk-MNZ4NBV3.js";
182
+ import {
183
+ SKELETON_BUILD
184
+ } from "./chunk-MKBKL3BT.js";
188
185
  import {
189
186
  AdsPlug
190
187
  } from "./chunk-IFK6WEZ3.js";
@@ -193,6 +190,16 @@ import {
193
190
  AD_ROLL_BUILD,
194
191
  AD_ROLL_FORMATTED
195
192
  } from "./chunk-O2TL4SQ4.js";
193
+ import {
194
+ DISABLED_BUILD
195
+ } from "./chunk-WW56NFQS.js";
196
+ import {
197
+ KEYS_BUILD,
198
+ KEYS_MODS_ACTIONS,
199
+ KEYS_OVERIDES,
200
+ KEYS_SHORTCUTS,
201
+ KEYS_WHITELIST
202
+ } from "./chunk-XHF7AOPZ.js";
196
203
  import {
197
204
  CAPTIONS_BUILD,
198
205
  ROTATE_PATHS,
@@ -212,17 +219,10 @@ import {
212
219
  OVERLAY_BUILD,
213
220
  OVERLAY_WHITELIST
214
221
  } from "./chunk-FA4HZCJ7.js";
215
- import {
216
- KEYS_BUILD,
217
- KEYS_MODS_ACTIONS,
218
- KEYS_OVERIDES,
219
- KEYS_SHORTCUTS,
220
- KEYS_WHITELIST
221
- } from "./chunk-XHF7AOPZ.js";
222
222
  import {
223
223
  PlaylistPlug,
224
224
  canOverride
225
- } from "./chunk-7XP5XO6O.js";
225
+ } from "./chunk-TXPMH27N.js";
226
226
  import {
227
227
  PLAYLIST_BUILD,
228
228
  PLAYLIST_ITEM_BUILD,
@@ -356,4 +356,4 @@ __export(plugs_exports, {
356
356
  export {
357
357
  plugs_exports
358
358
  };
359
- //# sourceMappingURL=chunk-Y77QBJ7Z.js.map
359
+ //# sourceMappingURL=chunk-BSAU7MO3.js.map
@@ -1,45 +1,51 @@
1
1
  import {
2
2
  VoicePlug
3
- } from "./chunk-GSQSVUPG.js";
4
- import {
5
- VolumePlug
6
- } from "./chunk-XCSWJWK4.js";
7
- import {
8
- TimeTravelPlug
9
- } from "./chunk-VHXT7FSN.js";
3
+ } from "./chunk-IFGUUWN4.js";
10
4
  import {
11
5
  TimePlug
12
6
  } from "./chunk-7DNRDHOS.js";
13
7
  import {
14
- PersistPlug
15
- } from "./chunk-2U47ZFEO.js";
8
+ TimeTravelPlug
9
+ } from "./chunk-F2TV6ZC3.js";
10
+ import {
11
+ VolumePlug
12
+ } from "./chunk-XCSWJWK4.js";
16
13
  import {
17
14
  PosterPlug
18
15
  } from "./chunk-3AMC24XP.js";
19
16
  import {
20
17
  SleepTimerPlug
21
- } from "./chunk-WZ6U3VGO.js";
18
+ } from "./chunk-DA3LHGNI.js";
22
19
  import {
23
20
  PanelPlug
24
- } from "./chunk-U7PNK3U6.js";
21
+ } from "./chunk-EMUVOJ55.js";
25
22
  import {
26
23
  PlaybackRatePlug
27
24
  } from "./chunk-FX4HMCEZ.js";
28
25
  import {
29
- OverlayPlug
30
- } from "./chunk-PNR3AET6.js";
26
+ PersistPlug
27
+ } from "./chunk-2U47ZFEO.js";
31
28
  import {
32
29
  NotifiersPlug
33
30
  } from "./chunk-SUXV5CFZ.js";
31
+ import {
32
+ OverlayPlug
33
+ } from "./chunk-PNR3AET6.js";
34
34
  import {
35
35
  ObjectFitPlug
36
36
  } from "./chunk-GB45HRU2.js";
37
+ import {
38
+ MetadataPlug
39
+ } from "./chunk-TPGB25DQ.js";
40
+ import {
41
+ FramePlug
42
+ } from "./chunk-S43DCRAU.js";
37
43
  import {
38
44
  ModesAirPlayPin
39
45
  } from "./chunk-DQFPQV46.js";
40
46
  import {
41
47
  ModesCastPin
42
- } from "./chunk-RAKMJWS5.js";
48
+ } from "./chunk-MU7HGLK3.js";
43
49
  import {
44
50
  ModesFullscreenPin,
45
51
  ModesMiniplayerPin,
@@ -50,63 +56,57 @@ import {
50
56
  import {
51
57
  KeysPlug
52
58
  } from "./chunk-EBOWHJHL.js";
53
- import {
54
- MetadataPlug
55
- } from "./chunk-TPGB25DQ.js";
56
59
  import {
57
60
  LockedPlug
58
61
  } from "./chunk-TOMBBJRF.js";
62
+ import {
63
+ FastPlayPlug
64
+ } from "./chunk-OCXP56SS.js";
59
65
  import {
60
66
  GesturePlug,
61
67
  GestureTouchPin,
62
68
  GestureWheelPin
63
- } from "./chunk-BTJYBMCN.js";
69
+ } from "./chunk-EFHF4LFC.js";
70
+ import {
71
+ CaptionsPlug
72
+ } from "./chunk-6EGJSMMW.js";
64
73
  import {
65
74
  CSSPlug
66
75
  } from "./chunk-VC2IENHI.js";
67
76
  import {
68
- FastPlayPlug
69
- } from "./chunk-OCXP56SS.js";
77
+ ErrorsPlug
78
+ } from "./chunk-VSX4NO2D.js";
70
79
  import {
71
- FramePlug
72
- } from "./chunk-S43DCRAU.js";
80
+ BrightnessPlug
81
+ } from "./chunk-ZO5GDFFH.js";
73
82
  import {
74
83
  ControlPanelDraggablePin,
75
84
  ControlPanelPlug
76
- } from "./chunk-QMUA2A3J.js";
85
+ } from "./chunk-ZL6WTDYH.js";
77
86
  import {
78
87
  ToastsPlug
79
- } from "./chunk-H6EMDZLU.js";
88
+ } from "./chunk-O2NZCYXE.js";
80
89
  import {
81
- ErrorsPlug
82
- } from "./chunk-VSX4NO2D.js";
90
+ LightPlug
91
+ } from "./chunk-IVPRGQ6Q.js";
83
92
  import {
84
93
  AmbiencePlug
85
94
  } from "./chunk-6OXVQT2M.js";
86
- import {
87
- BrightnessPlug
88
- } from "./chunk-ZO5GDFFH.js";
89
- import {
90
- CaptionsPlug
91
- } from "./chunk-CBOLIMGO.js";
92
- import {
93
- SkeletonPlug
94
- } from "./chunk-MNZ4NBV3.js";
95
95
  import {
96
96
  AutoPlug
97
97
  } from "./chunk-XP7RRUBS.js";
98
- import {
99
- LightPlug
100
- } from "./chunk-IVPRGQ6Q.js";
101
98
  import {
102
99
  DisabledPlug
103
100
  } from "./chunk-FQSQ7C4X.js";
101
+ import {
102
+ SkeletonPlug
103
+ } from "./chunk-MNZ4NBV3.js";
104
104
  import {
105
105
  AdsPlug
106
106
  } from "./chunk-IFK6WEZ3.js";
107
107
  import {
108
108
  PlaylistPlug
109
- } from "./chunk-7XP5XO6O.js";
109
+ } from "./chunk-TXPMH27N.js";
110
110
  import {
111
111
  PinRegistry,
112
112
  PlugRegistry
@@ -162,4 +162,4 @@ for (const Pin of [
162
162
  GestureTouchPin
163
163
  ])
164
164
  PinRegistry.register(Pin);
165
- //# sourceMappingURL=chunk-34T2ENWC.js.map
165
+ //# sourceMappingURL=chunk-BSSN4LOS.js.map