tmg-media-player 0.0.61 → 0.0.62

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 (336) hide show
  1. package/dist/{chunk-H6LUSY4C.js → chunk-2BDB5RKS.js} +2 -2
  2. package/dist/{chunk-KREAGI4M.js → chunk-3ZXWSGZQ.js} +2 -2
  3. package/dist/{chunk-FZNKMHU6.js → chunk-5ZXIPTVQ.js} +2 -2
  4. package/dist/{chunk-DMHABZ4I.js → chunk-6CZC4EC3.js} +2 -2
  5. package/dist/{chunk-6Z5GA35Y.js → chunk-6E7WCRN5.js} +2 -2
  6. package/dist/{chunk-Y26P5KWP.js → chunk-AMIMOMSM.js} +2 -2
  7. package/dist/{chunk-XAEJ4VKP.js → chunk-BAGDFZVR.js} +2 -2
  8. package/dist/{chunk-YOTZRODS.js → chunk-BGC6U2VR.js} +2 -2
  9. package/dist/{chunk-KN62MKRR.js → chunk-BIAKMBLJ.js} +2 -2
  10. package/dist/{chunk-MOHKV2SI.js → chunk-E47SFXWN.js} +29 -29
  11. package/dist/{chunk-4EO7OU7U.js → chunk-EAM7QVWC.js} +3 -3
  12. package/dist/{chunk-XBKUOFMU.js → chunk-FI44MLF6.js} +2 -2
  13. package/dist/{chunk-6WMPIV4Z.js → chunk-GB5G3BDB.js} +2 -2
  14. package/dist/{chunk-RLNKPMPY.js → chunk-H3LRGDOG.js} +45 -45
  15. package/dist/{chunk-3JLLR6EP.js → chunk-JE5GTBPS.js} +2 -2
  16. package/dist/{chunk-XOBXBS24.js → chunk-JSXS3DNU.js} +2 -2
  17. package/dist/{chunk-2LAXELOT.js → chunk-JZZNDOWL.js} +9 -9
  18. package/dist/chunk-JZZNDOWL.js.map +1 -0
  19. package/dist/{chunk-3O5YWKN2.js → chunk-KRXAYNNN.js} +2 -2
  20. package/dist/{chunk-MHHKTW7S.js → chunk-L5WT3SVA.js} +2 -2
  21. package/dist/{chunk-ZK4CRWSL.js → chunk-LNAOARU6.js} +6 -6
  22. package/dist/{chunk-HNIZJ732.js → chunk-MBC43WUS.js} +59 -59
  23. package/dist/{chunk-ULCW7DXV.js → chunk-MS7BTXKP.js} +2 -2
  24. package/dist/{chunk-V6XG3TU2.js → chunk-NFYLUVJB.js} +7 -7
  25. package/dist/{chunk-E5U2ICRI.js → chunk-NNRJBBPH.js} +2 -2
  26. package/dist/{chunk-RAQTPHZI.js → chunk-NWNM7VFR.js} +13 -13
  27. package/dist/{chunk-IAT2U5LP.js → chunk-OFYUJ7VU.js} +2 -2
  28. package/dist/{chunk-PA3AMDU7.js → chunk-OKSL6V2G.js} +2 -2
  29. package/dist/{chunk-QO2TROTC.js → chunk-PILA22ZY.js} +2 -2
  30. package/dist/{chunk-TRQQIKQI.js → chunk-RG5EFXDF.js} +3 -3
  31. package/dist/{chunk-47W6YHAM.js → chunk-RYA2LLOF.js} +5 -3
  32. package/dist/{chunk-47W6YHAM.js.map → chunk-RYA2LLOF.js.map} +1 -1
  33. package/dist/{chunk-5ZOHXLVH.js → chunk-SMYY6RCM.js} +2 -2
  34. package/dist/{chunk-KNGBLT2V.js → chunk-SQRPFMDO.js} +2 -2
  35. package/dist/{chunk-CMZQV7CA.js → chunk-TJIXY45I.js} +3 -3
  36. package/dist/{chunk-JHSI6QAF.js → chunk-VHXMKLXA.js} +27 -27
  37. package/dist/{chunk-FWCO3N4N.js → chunk-VRLKALWA.js} +3 -3
  38. package/dist/{chunk-HRROJ2SS.js → chunk-WWYSNBSJ.js} +56 -56
  39. package/dist/{chunk-Y3U5DUK5.js → chunk-ZC3NH7AA.js} +11 -11
  40. package/dist/{chunk-3JLU4Q7F.js → chunk-ZVHCY2ND.js} +2 -2
  41. package/dist/components/controls/airplay.js +1 -1
  42. package/dist/components/controls/backward10.js +1 -1
  43. package/dist/components/controls/bigNext.js +1 -1
  44. package/dist/components/controls/bigPlayPause.js +1 -1
  45. package/dist/components/controls/bigPrevious.js +1 -1
  46. package/dist/components/controls/brightness/index.js +1 -1
  47. package/dist/components/controls/captions.cjs +4 -2
  48. package/dist/components/controls/captions.cjs.map +1 -1
  49. package/dist/components/controls/captions.js +4 -4
  50. package/dist/components/controls/capture.js +1 -1
  51. package/dist/components/controls/cast.js +1 -1
  52. package/dist/components/controls/expandMiniplayer.js +1 -1
  53. package/dist/components/controls/forward10.js +1 -1
  54. package/dist/components/controls/fullscreen.js +1 -1
  55. package/dist/components/controls/fullscreenLock.js +1 -1
  56. package/dist/components/controls/fullscreenOrientation.cjs +4 -2
  57. package/dist/components/controls/fullscreenOrientation.cjs.map +1 -1
  58. package/dist/components/controls/fullscreenOrientation.js +5 -5
  59. package/dist/components/controls/next.js +1 -1
  60. package/dist/components/controls/objectFit.js +1 -1
  61. package/dist/components/controls/pictureInPicture.js +1 -1
  62. package/dist/components/controls/playPause.js +1 -1
  63. package/dist/components/controls/previous.js +1 -1
  64. package/dist/components/controls/removeMiniplayer.js +1 -1
  65. package/dist/components/controls/settings.js +1 -1
  66. package/dist/components/controls/theater.js +1 -1
  67. package/dist/components/controls/timeline/index.cjs +4 -2
  68. package/dist/components/controls/timeline/index.cjs.map +1 -1
  69. package/dist/components/controls/timeline/index.js +6 -6
  70. package/dist/components/controls/voice.js +1 -1
  71. package/dist/components/controls/volume/index.js +1 -1
  72. package/dist/components/holders/airplayPlaceholder.js +1 -1
  73. package/dist/components/holders/castPlaceholder.js +1 -1
  74. package/dist/components/holders/errorPlaceholder.js +1 -1
  75. package/dist/components/holders/pipPlaceholder.cjs +4 -2
  76. package/dist/components/holders/pipPlaceholder.cjs.map +1 -1
  77. package/dist/components/holders/pipPlaceholder.js +4 -4
  78. package/dist/components/notifiers/airplay.js +1 -1
  79. package/dist/components/notifiers/brightness.js +1 -1
  80. package/dist/components/notifiers/captions.js +1 -1
  81. package/dist/components/notifiers/capture.js +1 -1
  82. package/dist/components/notifiers/cast.js +1 -1
  83. package/dist/components/notifiers/fastPlay.js +1 -1
  84. package/dist/components/notifiers/fwdBwd.js +1 -1
  85. package/dist/components/notifiers/objectFit.js +1 -1
  86. package/dist/components/notifiers/playPause.js +1 -1
  87. package/dist/components/notifiers/playbackRate.js +1 -1
  88. package/dist/components/notifiers/prevNext.js +1 -1
  89. package/dist/components/notifiers/scrub.js +1 -1
  90. package/dist/components/notifiers/touchBrightness.js +1 -1
  91. package/dist/components/notifiers/touchVolume.js +1 -1
  92. package/dist/components/notifiers/volume.js +1 -1
  93. package/dist/components/notifiers/z-register.js +6 -6
  94. package/dist/components/screenLock.js +1 -1
  95. package/dist/components/z-register.cjs +4 -2
  96. package/dist/components/z-register.cjs.map +1 -1
  97. package/dist/components/z-register.js +24 -24
  98. package/dist/consts/media.cjs +4 -2
  99. package/dist/consts/media.cjs.map +1 -1
  100. package/dist/consts/media.js +1 -1
  101. package/dist/core/controller.cjs +4 -2
  102. package/dist/core/controller.cjs.map +1 -1
  103. package/dist/core/controller.js +5 -5
  104. package/dist/index.cjs +4 -2
  105. package/dist/index.cjs.map +1 -1
  106. package/dist/index.js +6 -6
  107. package/dist/init.cjs +4 -2
  108. package/dist/init.cjs.map +1 -1
  109. package/dist/init.js +6 -6
  110. package/dist/plugs/base/index.js +1 -1
  111. package/dist/plugs/base/slider.js +1 -1
  112. package/dist/plugs/main/ads/build.cjs +4 -2
  113. package/dist/plugs/main/ads/build.cjs.map +1 -1
  114. package/dist/plugs/main/ads/build.js +2 -2
  115. package/dist/plugs/main/ads/index.cjs +4 -2
  116. package/dist/plugs/main/ads/index.cjs.map +1 -1
  117. package/dist/plugs/main/ads/index.js +7 -7
  118. package/dist/plugs/main/disabled/index.js +1 -1
  119. package/dist/plugs/main/light/index.js +1 -1
  120. package/dist/plugs/main/playlist/build.cjs +4 -2
  121. package/dist/plugs/main/playlist/build.cjs.map +1 -1
  122. package/dist/plugs/main/playlist/build.js +2 -2
  123. package/dist/plugs/main/playlist/index.cjs +4 -2
  124. package/dist/plugs/main/playlist/index.cjs.map +1 -1
  125. package/dist/plugs/main/playlist/index.js +4 -4
  126. package/dist/plugs/main/skeleton/index.js +1 -1
  127. package/dist/plugs/menus/main/actions.cjs +4 -2
  128. package/dist/plugs/menus/main/actions.cjs.map +1 -1
  129. package/dist/plugs/menus/main/actions.js +5 -5
  130. package/dist/plugs/menus/main/playlist.cjs +4 -2
  131. package/dist/plugs/menus/main/playlist.cjs.map +1 -1
  132. package/dist/plugs/menus/main/playlist.js +3 -3
  133. package/dist/plugs/menus/settings/auto.cjs +4 -2
  134. package/dist/plugs/menus/settings/auto.cjs.map +1 -1
  135. package/dist/plugs/menus/settings/auto.js +5 -5
  136. package/dist/plugs/menus/settings/captions.cjs +4 -2
  137. package/dist/plugs/menus/settings/captions.cjs.map +1 -1
  138. package/dist/plugs/menus/settings/captions.js +3 -3
  139. package/dist/plugs/menus/settings/frame.cjs +4 -2
  140. package/dist/plugs/menus/settings/frame.cjs.map +1 -1
  141. package/dist/plugs/menus/settings/frame.js +5 -5
  142. package/dist/plugs/menus/settings/keys.js +1 -1
  143. package/dist/plugs/menus/settings/metadata.cjs +4 -2
  144. package/dist/plugs/menus/settings/metadata.cjs.map +1 -1
  145. package/dist/plugs/menus/settings/metadata.js +3 -3
  146. package/dist/plugs/menus/settings/modes.cjs +4 -2
  147. package/dist/plugs/menus/settings/modes.cjs.map +1 -1
  148. package/dist/plugs/menus/settings/modes.js +5 -5
  149. package/dist/plugs/menus/settings/sleepTimer.cjs +4 -2
  150. package/dist/plugs/menus/settings/sleepTimer.cjs.map +1 -1
  151. package/dist/plugs/menus/settings/sleepTimer.js +5 -5
  152. package/dist/plugs/menus/settings/toasts.cjs +4 -2
  153. package/dist/plugs/menus/settings/toasts.cjs.map +1 -1
  154. package/dist/plugs/menus/settings/toasts.js +5 -5
  155. package/dist/plugs/menus/settings/voice.cjs +4 -2
  156. package/dist/plugs/menus/settings/voice.cjs.map +1 -1
  157. package/dist/plugs/menus/settings/voice.js +5 -5
  158. package/dist/plugs/menus/z-register.cjs +4 -2
  159. package/dist/plugs/menus/z-register.cjs.map +1 -1
  160. package/dist/plugs/menus/z-register.js +20 -20
  161. package/dist/plugs/settings/ambience/index.js +1 -1
  162. package/dist/plugs/settings/auto/index.cjs +4 -2
  163. package/dist/plugs/settings/auto/index.cjs.map +1 -1
  164. package/dist/plugs/settings/auto/index.js +6 -6
  165. package/dist/plugs/settings/brightness/index.js +1 -1
  166. package/dist/plugs/settings/captions/index.cjs +4 -2
  167. package/dist/plugs/settings/captions/index.cjs.map +1 -1
  168. package/dist/plugs/settings/captions/index.js +6 -6
  169. package/dist/plugs/settings/controlPanel/draggable.js +1 -1
  170. package/dist/plugs/settings/controlPanel/index.js +1 -1
  171. package/dist/plugs/settings/css/index.js +1 -1
  172. package/dist/plugs/settings/errors/index.js +1 -1
  173. package/dist/plugs/settings/fastPlay/index.js +1 -1
  174. package/dist/plugs/settings/frame/index.js +1 -1
  175. package/dist/plugs/settings/gesture/base.js +1 -1
  176. package/dist/plugs/settings/gesture/index.js +1 -1
  177. package/dist/plugs/settings/gesture/touch.js +1 -1
  178. package/dist/plugs/settings/gesture/wheel.js +1 -1
  179. package/dist/plugs/settings/keys/index.js +1 -1
  180. package/dist/plugs/settings/locked/index.js +1 -1
  181. package/dist/plugs/settings/metadata/index.js +1 -1
  182. package/dist/plugs/settings/modes/airplay.cjs +4 -2
  183. package/dist/plugs/settings/modes/airplay.cjs.map +1 -1
  184. package/dist/plugs/settings/modes/airplay.js +7 -7
  185. package/dist/plugs/settings/modes/cast.cjs +4 -2
  186. package/dist/plugs/settings/modes/cast.cjs.map +1 -1
  187. package/dist/plugs/settings/modes/cast.js +7 -7
  188. package/dist/plugs/settings/modes/fullscreen.cjs +4 -2
  189. package/dist/plugs/settings/modes/fullscreen.cjs.map +1 -1
  190. package/dist/plugs/settings/modes/fullscreen.js +6 -6
  191. package/dist/plugs/settings/modes/index.cjs +4 -2
  192. package/dist/plugs/settings/modes/index.cjs.map +1 -1
  193. package/dist/plugs/settings/modes/index.js +6 -6
  194. package/dist/plugs/settings/modes/miniplayer.cjs +4 -2
  195. package/dist/plugs/settings/modes/miniplayer.cjs.map +1 -1
  196. package/dist/plugs/settings/modes/miniplayer.js +6 -6
  197. package/dist/plugs/settings/modes/pictureInPicture.cjs +4 -2
  198. package/dist/plugs/settings/modes/pictureInPicture.cjs.map +1 -1
  199. package/dist/plugs/settings/modes/pictureInPicture.js +6 -6
  200. package/dist/plugs/settings/modes/theater.cjs +4 -2
  201. package/dist/plugs/settings/modes/theater.cjs.map +1 -1
  202. package/dist/plugs/settings/modes/theater.js +6 -6
  203. package/dist/plugs/settings/notifiers/index.js +1 -1
  204. package/dist/plugs/settings/objectFit/index.js +1 -1
  205. package/dist/plugs/settings/overlay/index.js +1 -1
  206. package/dist/plugs/settings/panel/index.js +1 -1
  207. package/dist/plugs/settings/panel/menu/index.js +1 -1
  208. package/dist/plugs/settings/panel/menu/panel/main.js +1 -1
  209. package/dist/plugs/settings/panel/menu/panel/sub.js +1 -1
  210. package/dist/plugs/settings/panel/menu/widgets/base.js +1 -1
  211. package/dist/plugs/settings/panel/menu/widgets/button.js +1 -1
  212. package/dist/plugs/settings/panel/menu/widgets/color.js +1 -1
  213. package/dist/plugs/settings/panel/menu/widgets/dragselect.js +1 -1
  214. package/dist/plugs/settings/panel/menu/widgets/group.js +1 -1
  215. package/dist/plugs/settings/panel/menu/widgets/index.js +1 -1
  216. package/dist/plugs/settings/panel/menu/widgets/input.js +1 -1
  217. package/dist/plugs/settings/panel/menu/widgets/limits.js +1 -1
  218. package/dist/plugs/settings/panel/menu/widgets/range.js +1 -1
  219. package/dist/plugs/settings/panel/menu/widgets/select.js +1 -1
  220. package/dist/plugs/settings/panel/menu/widgets/toggle.js +1 -1
  221. package/dist/plugs/settings/persist/index.js +1 -1
  222. package/dist/plugs/settings/playbackRate/index.js +1 -1
  223. package/dist/plugs/settings/poster/index.js +1 -1
  224. package/dist/plugs/settings/sleepTimer/index.js +1 -1
  225. package/dist/plugs/settings/time/index.js +1 -1
  226. package/dist/plugs/settings/timeTravel/index.cjs +4 -2
  227. package/dist/plugs/settings/timeTravel/index.cjs.map +1 -1
  228. package/dist/plugs/settings/timeTravel/index.js +6 -6
  229. package/dist/plugs/settings/toasts/index.js +1 -1
  230. package/dist/plugs/settings/voice/index.cjs +12 -10
  231. package/dist/plugs/settings/voice/index.cjs.map +1 -1
  232. package/dist/plugs/settings/voice/index.js +6 -6
  233. package/dist/plugs/settings/volume/index.cjs +4 -2
  234. package/dist/plugs/settings/volume/index.cjs.map +1 -1
  235. package/dist/plugs/settings/volume/index.js +6 -6
  236. package/dist/plugs/z-register.cjs +12 -10
  237. package/dist/plugs/z-register.cjs.map +1 -1
  238. package/dist/plugs/z-register.js +34 -34
  239. package/dist/super/components/index.cjs +4 -2
  240. package/dist/super/components/index.cjs.map +1 -1
  241. package/dist/super/components/index.js +69 -69
  242. package/dist/super/components/notifiers.js +14 -14
  243. package/dist/super/consts.cjs +4 -2
  244. package/dist/super/consts.cjs.map +1 -1
  245. package/dist/super/consts.js +6 -6
  246. package/dist/super/plugs/index.cjs +12 -10
  247. package/dist/super/plugs/index.cjs.map +1 -1
  248. package/dist/super/plugs/index.js +79 -79
  249. package/dist/super/plugs/menus.cjs +4 -2
  250. package/dist/super/plugs/menus.cjs.map +1 -1
  251. package/dist/super/plugs/menus.js +34 -34
  252. package/dist/super/techs.cjs +4 -2
  253. package/dist/super/techs.cjs.map +1 -1
  254. package/dist/super/techs.js +15 -15
  255. package/dist/super/utils.cjs +4 -2
  256. package/dist/super/utils.cjs.map +1 -1
  257. package/dist/super/utils.js +3 -3
  258. package/dist/super.cjs +12 -10
  259. package/dist/super.cjs.map +1 -1
  260. package/dist/super.global.js +12 -10
  261. package/dist/super.global.js.map +1 -1
  262. package/dist/super.js +93 -93
  263. package/dist/techs/base.cjs +4 -2
  264. package/dist/techs/base.cjs.map +1 -1
  265. package/dist/techs/base.js +3 -3
  266. package/dist/techs/dash.cjs +4 -2
  267. package/dist/techs/dash.cjs.map +1 -1
  268. package/dist/techs/dash.js +6 -6
  269. package/dist/techs/hls.cjs +4 -2
  270. package/dist/techs/hls.cjs.map +1 -1
  271. package/dist/techs/hls.js +6 -6
  272. package/dist/techs/html5.cjs +4 -2
  273. package/dist/techs/html5.cjs.map +1 -1
  274. package/dist/techs/html5.js +5 -5
  275. package/dist/techs/ima.cjs +4 -2
  276. package/dist/techs/ima.cjs.map +1 -1
  277. package/dist/techs/ima.js +5 -5
  278. package/dist/techs/shaka.cjs +4 -2
  279. package/dist/techs/shaka.cjs.map +1 -1
  280. package/dist/techs/shaka.js +6 -6
  281. package/dist/techs/vimeo.cjs +4 -2
  282. package/dist/techs/vimeo.cjs.map +1 -1
  283. package/dist/techs/vimeo.js +4 -4
  284. package/dist/techs/youtube.cjs +4 -2
  285. package/dist/techs/youtube.cjs.map +1 -1
  286. package/dist/techs/youtube.js +6 -6
  287. package/dist/techs/z-register.cjs +4 -2
  288. package/dist/techs/z-register.cjs.map +1 -1
  289. package/dist/techs/z-register.js +11 -11
  290. package/dist/tools/player.cjs +4 -2
  291. package/dist/tools/player.cjs.map +1 -1
  292. package/dist/tools/player.js +5 -5
  293. package/dist/tools/runtime/index.cjs +4 -2
  294. package/dist/tools/runtime/index.cjs.map +1 -1
  295. package/dist/tools/runtime/index.js +5 -5
  296. package/dist/utils/media.cjs +4 -2
  297. package/dist/utils/media.cjs.map +1 -1
  298. package/dist/utils/media.js +2 -2
  299. package/package.json +1 -1
  300. package/dist/chunk-2LAXELOT.js.map +0 -1
  301. /package/dist/{chunk-H6LUSY4C.js.map → chunk-2BDB5RKS.js.map} +0 -0
  302. /package/dist/{chunk-KREAGI4M.js.map → chunk-3ZXWSGZQ.js.map} +0 -0
  303. /package/dist/{chunk-FZNKMHU6.js.map → chunk-5ZXIPTVQ.js.map} +0 -0
  304. /package/dist/{chunk-DMHABZ4I.js.map → chunk-6CZC4EC3.js.map} +0 -0
  305. /package/dist/{chunk-6Z5GA35Y.js.map → chunk-6E7WCRN5.js.map} +0 -0
  306. /package/dist/{chunk-Y26P5KWP.js.map → chunk-AMIMOMSM.js.map} +0 -0
  307. /package/dist/{chunk-XAEJ4VKP.js.map → chunk-BAGDFZVR.js.map} +0 -0
  308. /package/dist/{chunk-YOTZRODS.js.map → chunk-BGC6U2VR.js.map} +0 -0
  309. /package/dist/{chunk-KN62MKRR.js.map → chunk-BIAKMBLJ.js.map} +0 -0
  310. /package/dist/{chunk-MOHKV2SI.js.map → chunk-E47SFXWN.js.map} +0 -0
  311. /package/dist/{chunk-4EO7OU7U.js.map → chunk-EAM7QVWC.js.map} +0 -0
  312. /package/dist/{chunk-XBKUOFMU.js.map → chunk-FI44MLF6.js.map} +0 -0
  313. /package/dist/{chunk-6WMPIV4Z.js.map → chunk-GB5G3BDB.js.map} +0 -0
  314. /package/dist/{chunk-RLNKPMPY.js.map → chunk-H3LRGDOG.js.map} +0 -0
  315. /package/dist/{chunk-3JLLR6EP.js.map → chunk-JE5GTBPS.js.map} +0 -0
  316. /package/dist/{chunk-XOBXBS24.js.map → chunk-JSXS3DNU.js.map} +0 -0
  317. /package/dist/{chunk-3O5YWKN2.js.map → chunk-KRXAYNNN.js.map} +0 -0
  318. /package/dist/{chunk-MHHKTW7S.js.map → chunk-L5WT3SVA.js.map} +0 -0
  319. /package/dist/{chunk-ZK4CRWSL.js.map → chunk-LNAOARU6.js.map} +0 -0
  320. /package/dist/{chunk-HNIZJ732.js.map → chunk-MBC43WUS.js.map} +0 -0
  321. /package/dist/{chunk-ULCW7DXV.js.map → chunk-MS7BTXKP.js.map} +0 -0
  322. /package/dist/{chunk-V6XG3TU2.js.map → chunk-NFYLUVJB.js.map} +0 -0
  323. /package/dist/{chunk-E5U2ICRI.js.map → chunk-NNRJBBPH.js.map} +0 -0
  324. /package/dist/{chunk-RAQTPHZI.js.map → chunk-NWNM7VFR.js.map} +0 -0
  325. /package/dist/{chunk-IAT2U5LP.js.map → chunk-OFYUJ7VU.js.map} +0 -0
  326. /package/dist/{chunk-PA3AMDU7.js.map → chunk-OKSL6V2G.js.map} +0 -0
  327. /package/dist/{chunk-QO2TROTC.js.map → chunk-PILA22ZY.js.map} +0 -0
  328. /package/dist/{chunk-TRQQIKQI.js.map → chunk-RG5EFXDF.js.map} +0 -0
  329. /package/dist/{chunk-5ZOHXLVH.js.map → chunk-SMYY6RCM.js.map} +0 -0
  330. /package/dist/{chunk-KNGBLT2V.js.map → chunk-SQRPFMDO.js.map} +0 -0
  331. /package/dist/{chunk-CMZQV7CA.js.map → chunk-TJIXY45I.js.map} +0 -0
  332. /package/dist/{chunk-JHSI6QAF.js.map → chunk-VHXMKLXA.js.map} +0 -0
  333. /package/dist/{chunk-FWCO3N4N.js.map → chunk-VRLKALWA.js.map} +0 -0
  334. /package/dist/{chunk-HRROJ2SS.js.map → chunk-WWYSNBSJ.js.map} +0 -0
  335. /package/dist/{chunk-Y3U5DUK5.js.map → chunk-ZC3NH7AA.js.map} +0 -0
  336. /package/dist/{chunk-3JLU4Q7F.js.map → chunk-ZVHCY2ND.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  init
3
- } from "./chunk-FWCO3N4N.js";
3
+ } from "./chunk-VRLKALWA.js";
4
4
  import {
5
5
  globalState
6
6
  } from "./chunk-FD6VCHH5.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-H6LUSY4C.js.map
30
+ //# sourceMappingURL=chunk-2BDB5RKS.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  PLAY_ITEM_BUILD
3
- } from "./chunk-KNGBLT2V.js";
3
+ } from "./chunk-SQRPFMDO.js";
4
4
  import {
5
5
  AUDIO_EXTENSIONS,
6
6
  MATCH_URL_VIMEO,
@@ -72,4 +72,4 @@ var getMainPlaylistMenu = (plug, ctx = { editIdx: -1 }) => ({
72
72
  export {
73
73
  getMainPlaylistMenu
74
74
  };
75
- //# sourceMappingURL=chunk-KREAGI4M.js.map
75
+ //# sourceMappingURL=chunk-3ZXWSGZQ.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  HTML5Tech
3
- } from "./chunk-FWCO3N4N.js";
3
+ } from "./chunk-VRLKALWA.js";
4
4
  import {
5
5
  MSE_ENABLED
6
6
  } from "./chunk-RNETXJ63.js";
@@ -157,4 +157,4 @@ __publicField(HLSTech, "techName", "hls");
157
157
  export {
158
158
  HLSTech
159
159
  };
160
- //# sourceMappingURL=chunk-FZNKMHU6.js.map
160
+ //# sourceMappingURL=chunk-5ZXIPTVQ.js.map
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-2XJFCVED.js";
8
8
  import {
9
9
  BaseTech
10
- } from "./chunk-4EO7OU7U.js";
10
+ } from "./chunk-EAM7QVWC.js";
11
11
  import {
12
12
  createTimeRanges,
13
13
  getMediaMax,
@@ -390,4 +390,4 @@ __publicField(YouTubeTech, "techName", "youtube");
390
390
  export {
391
391
  YouTubeTech
392
392
  };
393
- //# sourceMappingURL=chunk-DMHABZ4I.js.map
393
+ //# sourceMappingURL=chunk-6CZC4EC3.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ModesPlug
3
- } from "./chunk-3JLU4Q7F.js";
3
+ } from "./chunk-ZVHCY2ND.js";
4
4
  import {
5
5
  MODES_CAST_BUILD
6
6
  } from "./chunk-TN7WYBLE.js";
@@ -145,4 +145,4 @@ __publicField(ModesCastPin, "BUILD", MODES_CAST_BUILD);
145
145
  export {
146
146
  ModesCastPin
147
147
  };
148
- //# sourceMappingURL=chunk-6Z5GA35Y.js.map
148
+ //# sourceMappingURL=chunk-6E7WCRN5.js.map
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-W5JTSVSF.js";
7
7
  import {
8
8
  getCtlrIdx
9
- } from "./chunk-FWCO3N4N.js";
9
+ } from "./chunk-VRLKALWA.js";
10
10
  import {
11
11
  isArr
12
12
  } from "./chunk-ZNFV73SP.js";
@@ -63,4 +63,4 @@ __publicField(TimeTravelPlug, "BUILD", TIME_TRAVEL_BUILD);
63
63
  export {
64
64
  TimeTravelPlug
65
65
  };
66
- //# sourceMappingURL=chunk-Y26P5KWP.js.map
66
+ //# sourceMappingURL=chunk-AMIMOMSM.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  BaseTech
3
- } from "./chunk-4EO7OU7U.js";
3
+ } from "./chunk-EAM7QVWC.js";
4
4
  import {
5
5
  IconRegistry
6
6
  } from "./chunk-QMG3O3CD.js";
@@ -149,4 +149,4 @@ __publicField(IMATech, "techName", "ima");
149
149
  export {
150
150
  IMATech
151
151
  };
152
- //# sourceMappingURL=chunk-XAEJ4VKP.js.map
152
+ //# sourceMappingURL=chunk-BAGDFZVR.js.map
@@ -3,7 +3,7 @@ import {
3
3
  MEDIA_SETTINGS_BUILD,
4
4
  MEDIA_STATE_BUILD,
5
5
  MEDIA_STATUS_BUILD
6
- } from "./chunk-47W6YHAM.js";
6
+ } from "./chunk-RYA2LLOF.js";
7
7
  import {
8
8
  createEl,
9
9
  queryFullscreenEl,
@@ -219,4 +219,4 @@ export {
219
219
  setCurrentTrack,
220
220
  cloneMedia
221
221
  };
222
- //# sourceMappingURL=chunk-YOTZRODS.js.map
222
+ //# sourceMappingURL=chunk-BGC6U2VR.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-PDOR3OEQ.js";
4
4
  import {
5
5
  getTrackLabel
6
- } from "./chunk-YOTZRODS.js";
6
+ } from "./chunk-BGC6U2VR.js";
7
7
  import {
8
8
  formatMediaTime
9
9
  } from "./chunk-XSCX6DYR.js";
@@ -129,4 +129,4 @@ var getSettingsMetadataMenu = (plug) => [
129
129
  export {
130
130
  getSettingsMetadataMenu
131
131
  };
132
- //# sourceMappingURL=chunk-KN62MKRR.js.map
132
+ //# sourceMappingURL=chunk-BIAKMBLJ.js.map
@@ -1,24 +1,24 @@
1
1
  import {
2
2
  VoicePlug
3
- } from "./chunk-2LAXELOT.js";
3
+ } from "./chunk-JZZNDOWL.js";
4
4
  import {
5
- VolumePlug
6
- } from "./chunk-PA3AMDU7.js";
7
- import {
8
- TimePlug
9
- } from "./chunk-ELB6IJBL.js";
5
+ PosterPlug
6
+ } from "./chunk-FOHBPGFM.js";
10
7
  import {
11
8
  TimeTravelPlug
12
- } from "./chunk-Y26P5KWP.js";
9
+ } from "./chunk-AMIMOMSM.js";
10
+ import {
11
+ VolumePlug
12
+ } from "./chunk-OKSL6V2G.js";
13
13
  import {
14
14
  PlaybackRatePlug
15
15
  } from "./chunk-T7XBFM52.js";
16
- import {
17
- PosterPlug
18
- } from "./chunk-FOHBPGFM.js";
19
16
  import {
20
17
  SleepTimerPlug
21
18
  } from "./chunk-B6RZBMWI.js";
19
+ import {
20
+ TimePlug
21
+ } from "./chunk-ELB6IJBL.js";
22
22
  import {
23
23
  PanelPlug
24
24
  } from "./chunk-3R3YN3PR.js";
@@ -26,8 +26,8 @@ import {
26
26
  PersistPlug
27
27
  } from "./chunk-H5YOH5FV.js";
28
28
  import {
29
- NotifiersPlug
30
- } from "./chunk-IJ4EHQLP.js";
29
+ MetadataPlug
30
+ } from "./chunk-Y6XF4JQS.js";
31
31
  import {
32
32
  ObjectFitPlug
33
33
  } from "./chunk-6Z25E4A4.js";
@@ -36,37 +36,37 @@ import {
36
36
  } from "./chunk-47SZSPR7.js";
37
37
  import {
38
38
  ModesCastPin
39
- } from "./chunk-6Z5GA35Y.js";
39
+ } from "./chunk-6E7WCRN5.js";
40
40
  import {
41
41
  LockedPlug
42
42
  } from "./chunk-MROTHXKK.js";
43
43
  import {
44
- MetadataPlug
45
- } from "./chunk-Y6XF4JQS.js";
44
+ NotifiersPlug
45
+ } from "./chunk-IJ4EHQLP.js";
46
46
  import {
47
47
  ModesAirPlayPin
48
- } from "./chunk-MHHKTW7S.js";
48
+ } from "./chunk-L5WT3SVA.js";
49
49
  import {
50
50
  ModesFullscreenPin,
51
51
  ModesMiniplayerPin,
52
52
  ModesPictureInPicturePin,
53
53
  ModesPlug,
54
54
  ModesTheaterPin
55
- } from "./chunk-3JLU4Q7F.js";
55
+ } from "./chunk-ZVHCY2ND.js";
56
+ import {
57
+ KeysPlug
58
+ } from "./chunk-GTK5KLUZ.js";
56
59
  import {
57
60
  GesturePlug,
58
61
  GestureTouchPin,
59
62
  GestureWheelPin
60
63
  } from "./chunk-CM63KUHW.js";
61
64
  import {
62
- KeysPlug
63
- } from "./chunk-GTK5KLUZ.js";
65
+ ErrorsPlug
66
+ } from "./chunk-GQUDHB5V.js";
64
67
  import {
65
68
  FastPlayPlug
66
69
  } from "./chunk-UI5D4OIZ.js";
67
- import {
68
- ErrorsPlug
69
- } from "./chunk-GQUDHB5V.js";
70
70
  import {
71
71
  FramePlug
72
72
  } from "./chunk-CU5V4T7W.js";
@@ -82,13 +82,13 @@ import {
82
82
  } from "./chunk-AGIGOLZO.js";
83
83
  import {
84
84
  AutoPlug
85
- } from "./chunk-E5U2ICRI.js";
85
+ } from "./chunk-NNRJBBPH.js";
86
86
  import {
87
87
  BrightnessPlug
88
88
  } from "./chunk-TZH3LLVR.js";
89
89
  import {
90
90
  CaptionsPlug
91
- } from "./chunk-CMZQV7CA.js";
91
+ } from "./chunk-TJIXY45I.js";
92
92
  import {
93
93
  AmbiencePlug
94
94
  } from "./chunk-U6IVWUYP.js";
@@ -100,13 +100,13 @@ import {
100
100
  } from "./chunk-RAJPAOA6.js";
101
101
  import {
102
102
  PlaylistPlug
103
- } from "./chunk-XBKUOFMU.js";
103
+ } from "./chunk-FI44MLF6.js";
104
+ import {
105
+ AdsPlug
106
+ } from "./chunk-RG5EFXDF.js";
104
107
  import {
105
108
  DisabledPlug
106
109
  } from "./chunk-RV4ONNRN.js";
107
- import {
108
- AdsPlug
109
- } from "./chunk-TRQQIKQI.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-MOHKV2SI.js.map
165
+ //# sourceMappingURL=chunk-E47SFXWN.js.map
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  getMediaStatus,
3
3
  isFeatured
4
- } from "./chunk-YOTZRODS.js";
4
+ } from "./chunk-BGC6U2VR.js";
5
5
  import {
6
6
  MEDIA_STATE_BUILD,
7
7
  MEDIA_STATUS_BUILD
8
- } from "./chunk-47W6YHAM.js";
8
+ } from "./chunk-RYA2LLOF.js";
9
9
  import {
10
10
  getMediaChapter
11
11
  } from "./chunk-XSCX6DYR.js";
@@ -171,4 +171,4 @@ export {
171
171
  BaseTech,
172
172
  cacheKeys
173
173
  };
174
- //# sourceMappingURL=chunk-4EO7OU7U.js.map
174
+ //# sourceMappingURL=chunk-EAM7QVWC.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  PLAYLIST_BUILD,
3
3
  PLAY_ITEM_BUILD
4
- } from "./chunk-KNGBLT2V.js";
4
+ } from "./chunk-SQRPFMDO.js";
5
5
  import {
6
6
  BasePlug
7
7
  } from "./chunk-W5JTSVSF.js";
@@ -106,4 +106,4 @@ __publicField(PlaylistPlug, "BUILD", PLAYLIST_BUILD);
106
106
  export {
107
107
  PlaylistPlug
108
108
  };
109
- //# sourceMappingURL=chunk-XBKUOFMU.js.map
109
+ //# sourceMappingURL=chunk-FI44MLF6.js.map
@@ -94,7 +94,7 @@ import {
94
94
  removeSources,
95
95
  removeTracks,
96
96
  setCurrentTrack
97
- } from "./chunk-YOTZRODS.js";
97
+ } from "./chunk-BGC6U2VR.js";
98
98
  import {
99
99
  createTimeRanges,
100
100
  formatMediaTime,
@@ -438,4 +438,4 @@ __export(utils_exports, {
438
438
  export {
439
439
  utils_exports
440
440
  };
441
- //# sourceMappingURL=chunk-6WMPIV4Z.js.map
441
+ //# sourceMappingURL=chunk-GB5G3BDB.js.map
@@ -6,31 +6,19 @@ import {
6
6
  } from "./chunk-CPHEU42C.js";
7
7
  import {
8
8
  Timeline
9
- } from "./chunk-3O5YWKN2.js";
9
+ } from "./chunk-KRXAYNNN.js";
10
10
  import {
11
11
  RangeInput
12
12
  } from "./chunk-Q2FTCDJV.js";
13
13
  import {
14
- TimeButton
15
- } from "./chunk-IGFWJM6J.js";
16
- import {
17
- TimeAndDurationButton
18
- } from "./chunk-4ZMTEOTZ.js";
19
- import {
20
- VoiceButton
21
- } from "./chunk-BUMF7O6G.js";
22
- import {
23
- NextButton
24
- } from "./chunk-XAMTFVQD.js";
25
- import {
26
- ObjectFitButton
27
- } from "./chunk-EZFGCPYW.js";
14
+ CastPlaceholder
15
+ } from "./chunk-3HFZA4ZX.js";
28
16
  import {
29
- PictureInPictureButton
30
- } from "./chunk-74JOJRPK.js";
17
+ ErrorPlaceholder
18
+ } from "./chunk-NAR4YQRM.js";
31
19
  import {
32
- PlayPauseButton
33
- } from "./chunk-XFCIDKA5.js";
20
+ PiPPlaceholder
21
+ } from "./chunk-GFRR7CZM.js";
34
22
  import {
35
23
  PreviousButton
36
24
  } from "./chunk-FVA6MKFB.js";
@@ -44,17 +32,17 @@ import {
44
32
  TheaterButton
45
33
  } from "./chunk-OBFDNXX2.js";
46
34
  import {
47
- ChapterButton
48
- } from "./chunk-CL37OVTO.js";
35
+ TimeButton
36
+ } from "./chunk-IGFWJM6J.js";
49
37
  import {
50
- DurationButton
51
- } from "./chunk-AXJURPVZ.js";
38
+ TimeAndDurationButton
39
+ } from "./chunk-4ZMTEOTZ.js";
52
40
  import {
53
- ExpandMiniplayerButton
54
- } from "./chunk-B45CEO5D.js";
41
+ VoiceButton
42
+ } from "./chunk-BUMF7O6G.js";
55
43
  import {
56
- Forward10Button
57
- } from "./chunk-NBWHJSX6.js";
44
+ AirPlayPlaceholder
45
+ } from "./chunk-QESJUJVR.js";
58
46
  import {
59
47
  FullscreenButton
60
48
  } from "./chunk-BCJ4NIQL.js";
@@ -68,23 +56,23 @@ import {
68
56
  Meta
69
57
  } from "./chunk-2E2VWI3J.js";
70
58
  import {
71
- AirPlayButton
72
- } from "./chunk-WNZNIW5U.js";
59
+ NextButton
60
+ } from "./chunk-XAMTFVQD.js";
73
61
  import {
74
- Backward10Button
75
- } from "./chunk-7V3V2UFT.js";
62
+ ObjectFitButton
63
+ } from "./chunk-EZFGCPYW.js";
76
64
  import {
77
- BigNextButton
78
- } from "./chunk-CMKF52BC.js";
65
+ PictureInPictureButton
66
+ } from "./chunk-74JOJRPK.js";
79
67
  import {
80
- BigPlayPauseButton
81
- } from "./chunk-OAU2EW7G.js";
68
+ PlayPauseButton
69
+ } from "./chunk-XFCIDKA5.js";
82
70
  import {
83
71
  BigPreviousButton
84
72
  } from "./chunk-I5TH36DP.js";
85
73
  import {
86
74
  CaptionsButton
87
- } from "./chunk-3JLLR6EP.js";
75
+ } from "./chunk-JE5GTBPS.js";
88
76
  import {
89
77
  CaptureButton
90
78
  } from "./chunk-EPSUTOOR.js";
@@ -92,17 +80,29 @@ import {
92
80
  CastButton
93
81
  } from "./chunk-BY2CCSJY.js";
94
82
  import {
95
- AirPlayPlaceholder
96
- } from "./chunk-QESJUJVR.js";
83
+ ChapterButton
84
+ } from "./chunk-CL37OVTO.js";
97
85
  import {
98
- CastPlaceholder
99
- } from "./chunk-3HFZA4ZX.js";
86
+ DurationButton
87
+ } from "./chunk-AXJURPVZ.js";
100
88
  import {
101
- ErrorPlaceholder
102
- } from "./chunk-NAR4YQRM.js";
89
+ ExpandMiniplayerButton
90
+ } from "./chunk-B45CEO5D.js";
103
91
  import {
104
- PiPPlaceholder
105
- } from "./chunk-GFRR7CZM.js";
92
+ Forward10Button
93
+ } from "./chunk-NBWHJSX6.js";
94
+ import {
95
+ AirPlayButton
96
+ } from "./chunk-WNZNIW5U.js";
97
+ import {
98
+ Backward10Button
99
+ } from "./chunk-7V3V2UFT.js";
100
+ import {
101
+ BigNextButton
102
+ } from "./chunk-CMKF52BC.js";
103
+ import {
104
+ BigPlayPauseButton
105
+ } from "./chunk-OAU2EW7G.js";
106
106
  import {
107
107
  Buffer
108
108
  } from "./chunk-QTQPICRY.js";
@@ -159,4 +159,4 @@ for (const Comp of [
159
159
  ErrorPlaceholder
160
160
  ])
161
161
  ComponentRegistry.register(Comp);
162
- //# sourceMappingURL=chunk-RLNKPMPY.js.map
162
+ //# sourceMappingURL=chunk-H3LRGDOG.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getTrackKind,
3
3
  getTrackLang
4
- } from "./chunk-YOTZRODS.js";
4
+ } from "./chunk-BGC6U2VR.js";
5
5
  import {
6
6
  IconRegistry
7
7
  } from "./chunk-QMG3O3CD.js";
@@ -60,4 +60,4 @@ __publicField(CaptionsButton, "isControl", true);
60
60
  export {
61
61
  CaptionsButton
62
62
  };
63
- //# sourceMappingURL=chunk-3JLLR6EP.js.map
63
+ //# sourceMappingURL=chunk-JE5GTBPS.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  MEDIA_ITEM_BUILD
3
- } from "./chunk-47W6YHAM.js";
3
+ } from "./chunk-RYA2LLOF.js";
4
4
 
5
5
  // src/ts/plugs/main/ads/build.ts
6
6
  var ADS_BUILD = {
@@ -46,4 +46,4 @@ export {
46
46
  ADS_BUILD,
47
47
  AD_ROLL_BUILD
48
48
  };
49
- //# sourceMappingURL=chunk-XOBXBS24.js.map
49
+ //# sourceMappingURL=chunk-JSXS3DNU.js.map
@@ -49,7 +49,7 @@ var VoicePlug = class extends BasePlug {
49
49
  __publicField(this, "TIDS", { ROUTER: `tmg-media-voice-router-for-${this.ctlr.config.id}`, HELPER: `tmg-media-voice-helper-for-${this.ctlr.config.id}`, TEACHER: `tmg-media-voice-teacher-for-${this.ctlr.config.id}` });
50
50
  __publicField(this, "history", ["*"]);
51
51
  __publicField(this, "historyIdx", 0);
52
- __publicField(this, "prevRes", "");
52
+ __publicField(this, "prevRes", false);
53
53
  __publicField(this, "snoozeCb", () => this.config.active.value = "passive");
54
54
  }
55
55
  mount() {
@@ -89,15 +89,15 @@ var VoicePlug = class extends BasePlug {
89
89
  this.snooze();
90
90
  let transcript = "";
91
91
  if (!this.config.muted) for (let i = e.resultIndex, len = e.results.length; i < len; ++i) transcript += e.results[i][0].transcript;
92
- if (`${e.resultIndex}-${transcript = transcript.trim().toLowerCase()}` === this.prevRes) return;
93
- this.prevRes = `${e.resultIndex}-${transcript}`;
92
+ transcript = transcript.trim().toLowerCase();
94
93
  !this.config.muted && (this.state.routing || this.config.toasts.behavior.value !== "strict") && this.view?.(transcript ? `${transcript}${!this.state.routing ? `... Say ${this.linked(isArr(this.config.commands.voiceWake) ? this.config.commands.voiceWake[0] : this.config.commands.voiceWake)}!` : ""}` : this.getRouterSpeech(this.state.routing && !IS_MOBILE ? "Didn't catch that..." : void 0, this.state.routing ? "" : void 0), this.getRouterOptions());
95
94
  const pathInput = this.container?.querySelector(".tmg-media-voice-path-input");
96
- if (pathInput) pathInput.value = transcript.trim();
97
- transcript && this.ctlr.debounce("voiceProcessing", () => this.process(transcript), 500, false, this.signal);
95
+ if (pathInput) pathInput.value = transcript;
96
+ transcript && this.ctlr.debounce("voiceProcessing", () => `${e.resultIndex}-${transcript}` !== this.prevRes && (this.prevRes = `${e.resultIndex}-${transcript}`, this.process(transcript)), 500, false, this.signal);
98
97
  }
99
98
  onEnd() {
100
- this.config && this.config.active.value && this.shouldListen() && this.start();
99
+ this.prevRes = false;
100
+ this.config?.active.value && this.shouldListen() && this.start();
101
101
  }
102
102
  onError(e) {
103
103
  if (e.error.endsWith("not-allowed")) this.config.muted ? this.start() : this.config.active.value = false, this.view?.error("Microphone access revoked. Please check your settings.", { tag: "tmg-mard" });
@@ -127,7 +127,7 @@ var VoicePlug = class extends BasePlug {
127
127
  }
128
128
  }
129
129
  stop() {
130
- this.state.routing = false, this.recognition?.abort();
130
+ this.state.routing = this.prevRes = false, this.recognition?.abort();
131
131
  for (const k in this.TIDS) t007.toast?.dismiss(this.TIDS[k]);
132
132
  for (const k of ["voiceSleeping", "voiceProcessing"]) this.ctlr.cancelTimeout("debounce", k);
133
133
  }
@@ -139,7 +139,7 @@ var VoicePlug = class extends BasePlug {
139
139
  // #STANDALONE: needs scoped behavior
140
140
  sleep() {
141
141
  if (!this.state.routing) return;
142
- this.state.routing = false;
142
+ this.state.routing = this.prevRes = false;
143
143
  this.clearCtx(), t007.toast?.dismiss(this.TIDS.HELPER), !this.config.active.value || this.config.toasts.behavior.value !== "persistent" ? t007.toast?.dismiss(this.TIDS.ROUTER) : this.view?.(this.getRouterSpeech(), this.getRouterOptions());
144
144
  }
145
145
  // #STANDALONE: needs scoped behavior
@@ -287,4 +287,4 @@ var clame = (sfx) => `.tmg-media-voice-${sfx}`;
287
287
  export {
288
288
  VoicePlug
289
289
  };
290
- //# sourceMappingURL=chunk-2LAXELOT.js.map
290
+ //# sourceMappingURL=chunk-JZZNDOWL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ts/plugs/settings/voice/index.ts"],"sourcesContent":["import { BasePlug } from \"@plugs/base\";\r\nimport type { Controller } from \"@core/controller\";\r\nimport { force, getPath, setPath, mirror } from \"sia-reactor/utils\";\r\nimport { limited } from \"@utils/fn\";\r\nimport type { VoiceStage, VoiceConfig, VoiceState } from \"./types\";\r\nimport { VOICE_BUILD } from \"./build\";\r\nimport { capitalize, camelize, uncamelize, fuzzyBlobMatch, fuzzyChunkMatch, getLevenshteinSimilarity, luid } from \"@utils/str\";\r\nimport { formatActionTooltip } from \"@utils/keys\";\r\nimport { type ToastOptions } from \"@t007/toast\";\r\nimport { REvent } from \"sia-reactor\";\r\nimport { CtlrConfig } from \"@defs/config\";\r\nimport { tutorialOpts } from \"../toasts\";\r\nimport { Action } from \"@defs/action\";\r\nimport { IconRegistry } from \"@core/registries\";\r\nimport { isArr } from \"@utils/obj\";\r\nimport { IS_MOBILE } from \"@utils/env\";\r\nimport { globalState } from \"@tools/runtime\";\r\n\r\nexport class VoicePlug extends BasePlug<VoiceConfig, VoiceState> {\r\n public static readonly plugName = \"voice\";\r\n public static readonly BUILD = VOICE_BUILD;\r\n protected recognition?: any;\r\n protected teachBasics = limited(() => this.view?.(`Follow the guides at the ${(this.config.toasts.helper.position || \"bottom-left\").replace(\"-\", \" \")}. Click ⚙ for settings`, { ...tutorialOpts(() => (this.teachBasics.block(), t007.toast?.dismiss(this.TIDS.TEACHER))), id: this.TIDS.TEACHER, signal: this.signal }), { key: `${luid()}_voice_basics`, maxTimes: 6, perSession: 2 });\r\n protected snublist: Array<Action[\"id\"]> = [\"voiceToggleOn\", \"voiceToggleOff\"] as const;\r\n protected readonly TIDS = { ROUTER: `tmg-media-voice-router-for-${this.ctlr.config.id}`, HELPER: `tmg-media-voice-helper-for-${this.ctlr.config.id}`, TEACHER: `tmg-media-voice-teacher-for-${this.ctlr.config.id}` };\r\n protected history: string[] = [\"*\"];\r\n protected historyIdx: number = 0;\r\n\r\n constructor(ctlr: Controller, config = ctlr.settings.voice) {\r\n super(ctlr, config, { ctx: \"*\", routing: false });\r\n }\r\n\r\n public override mount(): void {\r\n // Variables Assignment\r\n const SpeechRecognition = (window as any).SpeechRecognition || (window as any).webkitSpeechRecognition;\r\n if (!SpeechRecognition) return;\r\n this.recognition = new SpeechRecognition();\r\n Object.assign(this.recognition, { continuous: true, interimResults: true, onresult: this.onResult, onend: this.onEnd, onerror: this.onError });\r\n }\r\n\r\n public override wire(): void {\r\n // Event Listeners\r\n [\"click\", \"click\", \"keydown\", \"mousemove\", \"touchmove\", \"scroll\"].forEach((ev, i) => this.container?.addEventListener(ev, !i ? this.handleClick : i < 3 ? this.handleInput : this.stayWoke, { passive: i > 3, signal: this.signal }));\r\n // State Watchers\r\n this.state.watch(\"ctx\", this.onCtx, { signal: this.signal });\r\n // ----- Listeners\r\n this.state.on(\"routing\", ({ value }) => (this.media.container.classList.toggle(\"tmg-media-voice-routing\", value), (this.config.toasts.router.autoClose = value || this.config.toasts.behavior.value === \"persistent\" ? false : true)), { signal: this.signal });\r\n // Ctlr Config Setters\r\n this.ctlr.config.set(\"settings.voice.active.value\", (v) => (v === \"passive\" && !this.config.commands.voiceWake.length ? false : v), { init: true, signal: this.signal });\r\n // ---- Media Watchers\r\n this.media.watch(\"tech\", () => this.media.tech.polyfill(\"voice\", true), { init: true, signal: this.signal }); // falls back to tap routing\r\n // ---- State Listeners\r\n this.ctlr.state.on(\"mediaIntersecting\", () => this.ctlr.debounce(\"syncingListener\", this.syncListener, 500, false, this.signal), { signal: this.signal });\r\n globalState.on(\"isVisible\", () => this.ctlr.debounce(\"syncingListener\", this.syncListener, 500, false, this.signal), { signal: this.signal });\r\n // ---- Config -------\r\n this.ctlr.config.on(\"settings.voice.active.value\", this.handleActive, { signal: this.signal });\r\n this.ctlr.config.on(\"settings.voice.muted\", ({ value }) => this.config.active.value && (value && this.recognition?.abort(), this.start()), { signal: this.signal });\r\n this.ctlr.config.on(\"settings.voice.toasts.behavior.value\", ({ value }) => (this.config.toasts.router.autoClose = this.state.routing || value === \"persistent\" ? false : true), { init: true, signal: this.signal });\r\n this.ctlr.config.on(\"settings.voice.toasts.router\", ({ type, value, target: { key } }) => this.view?.update(this.TIDS.ROUTER, type !== \"update\" ? value : ({ [key]: value } as any)), { signal: this.signal });\r\n this.ctlr.config.on(\"settings.voice.toasts.helper\", ({ type, value, target: { key } }) => this.view?.update(this.TIDS.HELPER, type !== \"update\" ? value : ({ [key]: value } as any)), { signal: this.signal });\r\n this.ctlr.config.on(\"settings.voice.commands.voiceWake\", ({ value }) => !this.state.routing && (value.length ? this.config.active.value && this.start() : (this.config.active.value = false)), { signal: this.signal });\r\n this.ctlr.config.on(\"disabled\", this.syncListener, { signal: this.signal });\r\n this.ctlr.config.on(\"devMode\", () => this.state.routing && this.predict(), { signal: this.signal });\r\n this.ctlr.learn(\"voiceWake\", { voice: { stage: \"anytime\", match: \"chunk\" } }, this.signal);\r\n this.ctlr.learn(\"voiceSleep\", undefined, this.signal);\r\n this.ctlr.learn(\"voiceQuit\", { voice: { stage: \"anytime\" } }, this.signal);\r\n this.ctlr.learn(\"voiceMute\", { voice: { stage: \"anytime\" } }, this.signal);\r\n this.ctlr.learn(\"voiceSubmit\", { fn: () => this.submit(), voice: { stage: \"pre-route\" } }, this.signal);\r\n this.ctlr.learn(\"voiceCtxPrevious\", { fn: this.goBack, keyboard: { phase: \"keydown\" } }, this.signal);\r\n this.ctlr.learn(\"voiceCtxNext\", { fn: this.goForward, keyboard: { phase: \"keydown\" } }, this.signal);\r\n this.ctlr.learn(\"voiceCtxClear\", { fn: () => this.clearCtx(false) }, this.signal);\r\n this.ctlr.flags.wired ? this.syncListener() : this.ctlr.state.wonce(\"readyState\", this.syncListener, { signal: this.signal }); // #HEAVY: waits for !light. If wake word is enabled, start the engine immediately in \"sleep\" mode\r\n super.wire();\r\n }\r\n\r\n protected onResult(e: any): void {\r\n this.snooze();\r\n let transcript = \"\";\r\n if (!this.config.muted) for (let i = e.resultIndex, len = e.results.length; i < len; ++i) transcript += e.results[i][0].transcript;\r\n transcript = transcript.trim().toLowerCase();\r\n !this.config.muted && (this.state.routing || this.config.toasts.behavior.value !== \"strict\") && this.view?.(transcript ? `${transcript}${!this.state.routing ? `... Say ${this.linked(isArr(this.config.commands.voiceWake) ? this.config.commands.voiceWake[0] : this.config.commands.voiceWake)}!` : \"\"}` : this.getRouterSpeech(this.state.routing && !IS_MOBILE ? \"Didn't catch that...\" : undefined, this.state.routing ? \"\" : undefined), this.getRouterOptions());\r\n const pathInput = this.container?.querySelector<HTMLInputElement>(\".tmg-media-voice-path-input\");\r\n if (pathInput) pathInput.value = transcript; // Update the Text UI\r\n transcript && this.ctlr.debounce(\"voiceProcessing\", () => `${e.resultIndex}-${transcript}` !== this.prevRes && ((this.prevRes = `${e.resultIndex}-${transcript}`), this.process(transcript)), 500, false, this.signal); // Process after delay\r\n }\r\n private prevRes: string | false = false;\r\n protected onEnd(): void {\r\n this.prevRes = false;\r\n this.config?.active.value && this.shouldListen() && this.start();\r\n }\r\n protected onError(e: any): void {\r\n if (e.error.endsWith(\"not-allowed\")) this.config.muted ? this.start() : (this.config.active.value = false), this.view?.error(\"Microphone access revoked. Please check your settings.\", { tag: \"tmg-mard\" });\r\n }\r\n\r\n protected handleActive({ value }: REvent<CtlrConfig, \"settings.voice.active.value\">): void {\r\n value === false ? this.stop() : this.shouldListen() && (value === \"passive\" ? this.sleep() : this.wakeUp(), this.start());\r\n }\r\n public syncListener(): void {\r\n !this.shouldListen() ? this.stop() : this.config.active.value && (this.config.active.value === true && this.wakeUp(), this.start());\r\n }\r\n protected shouldListen(): boolean {\r\n return this.ctlr.flags.wired && ((globalState.isVisible && this.ctlr.state.mediaIntersecting) || this.config.muted) && !this.ctlr.config.disabled;\r\n }\r\n\r\n protected async request(): Promise<\"granted\" | \"denied\" | \"cancelled\" | \"nuked\"> {\r\n const state = (await navigator.permissions?.query({ name: \"microphone\" }).catch(() => null))?.state ?? \"prompt\";\r\n if (state === \"granted\" || state === \"denied\") return state;\r\n // prettier-ignore\r\n return t007.toast?.dismiss(this.TIDS.HELPER), new Promise((res, _, req?: () => void, i = 0) => ((req = () => this.view?.info(\"Voice control requires mic access\", { id: this.TIDS.ROUTER, signal: this.signal, ...this.config.toasts.router, autoClose: false, actions: { OK: () => navigator.mediaDevices.getUserMedia({ audio: true }).then((s) => (s.getTracks().forEach((t) => t.stop()), res(\"granted\"))).catch(async (e) => (await navigator.permissions?.query({ name: \"microphone\" as any }).then(p => p?.state === \"denied\", () => e.message === \"Permission denied\")) || ++i > 3 ? res(\"cancelled\") : this.view?.warn(\"Grant permission to use microphone\", { id: this.TIDS.ROUTER, autoClose: false, actions: { Retry: req! } })), ...this.getRouterActions(false) }, onClose: (_, user) => res(user ? \"cancelled\" : \"nuked\") }) || res(\"nuked\"))())); // #EXTRA-MILE: doing the most with the least\r\n }\r\n public async start(): Promise<void> {\r\n let state = this.config.muted ? \"granted\" : await this.request();\r\n if (state === \"nuked\" || !this.config) return; // only death i know hence abort over config check\r\n state === \"granted\" && (this.config.toasts.behavior.value === \"persistent\" || t007.toast.isActive(this.TIDS.ROUTER)) && this.view?.(this.getRouterSpeech(), this.getRouterOptions());\r\n if (this.state.routing) this.goTo(), t007.toast.isActive(this.TIDS.HELPER) && this.teachBasics();\r\n try {\r\n state === \"granted\" ? !this.config.muted && this.recognition?.start() : this.onError({ error: \"not-allowed\" });\r\n } catch (e) {} // Silence the InvalidStateError since we might call when already on due to wake word\r\n }\r\n protected stop(): void {\r\n (this.state.routing = this.prevRes = false), this.recognition?.abort();\r\n for (const k in this.TIDS) t007.toast?.dismiss(this.TIDS[k as keyof typeof this.TIDS]);\r\n for (const k of [\"voiceSleeping\", \"voiceProcessing\"]) this.ctlr.cancelTimeout(\"debounce\", k);\r\n }\r\n\r\n protected wakeUp(): void {\r\n if (this.state.routing) return;\r\n this.state.routing = true;\r\n this.clearCtx(), this.view?.(this.getRouterSpeech(), this.getRouterOptions()), this.snooze();\r\n } // #STANDALONE: needs scoped behavior\r\n protected sleep(): void {\r\n if (!this.state.routing) return;\r\n this.state.routing = this.prevRes = false;\r\n this.clearCtx(), t007.toast?.dismiss(this.TIDS.HELPER), !this.config.active.value || this.config.toasts.behavior.value !== \"persistent\" ? t007.toast?.dismiss(this.TIDS.ROUTER) : this.view?.(this.getRouterSpeech(), this.getRouterOptions());\r\n } // #STANDALONE: needs scoped behavior\r\n\r\n protected trigger(transcript: string, stage: VoiceStage = this.config.process.stage.value): boolean {\r\n for (const act of Object.values(this.ctlr.actions.entries)) {\r\n const cmd = this.config.commands[act.id];\r\n if (!cmd?.length || (act.id !== \"voiceWake\" && !this.config.process.allowCommands) || this.snublist.includes(act.id) || (act.voice?.stage || this.config.process.stage.value) !== stage || (act.id === \"voiceWake\" && this.state.routing)) continue;\r\n if (((act.voice?.match || this.config.process.match.value) === \"chunk\" ? fuzzyChunkMatch : fuzzyBlobMatch)(cmd, transcript, this.config.process.accuracy)) return this.ctlr.perform(act.id) && this.view?.success(`Triggered <b>${act.label ?? capitalize(uncamelize(act.id))}</b>`, { id: this.TIDS.ROUTER, icon: true, autoClose: this.config.toasts.router.autoClose }), true;\r\n }\r\n return false;\r\n }\r\n protected process(transcript: string, cleaned = transcript.replace(/[-\\s]/g, \"\"), isSubmit = false, dormant = !this.state.routing): boolean {\r\n if (this.trigger(transcript, \"anytime\") || dormant) return !dormant;\r\n // --- 1. PRE-ROUTE STAGE ---\r\n if (this.trigger(transcript, \"pre-route\")) return true;\r\n // --- 2. PATH|LEAF EXECUTION (PRIORITY) ---\r\n if (!this.ctlr.isLogical(this.state.ctx, true)) {\r\n const paths = this.ctlr.getLogicPaths(this.state.ctx);\r\n // prettier-ignore\r\n let match: string | null = null, highest = 0, len = paths.length;\r\n if (len)\r\n for (let i = 0; i < len; i++) {\r\n const leaf = paths[i].split(\".\").pop()!.toLowerCase();\r\n // prettier-ignore\r\n if (cleaned === leaf) { match = paths[i]; break; }\r\n const score = getLevenshteinSimilarity(leaf, transcript);\r\n if (score > this.config.process.accuracy && score > highest) (highest = score), (match = paths[i]);\r\n } // Fuzzy Match: Check if the user said the last word of any valid path\r\n if (match) {\r\n if (this.ctlr.isLogical(this.goTo(match), true)) return this.execute(transcript, match, true), true; // If a S.I.A path strongly matches what they said, TAKE IT. Bypasses commands completely.\r\n } else if (isSubmit) {\r\n const path = this.state.ctx === \"*\" ? transcript : `${this.state.ctx}.${camelize(transcript)}`,\r\n val = this.ctlr.isLogical(path) ? getPath(this.ctlr.logicRoot as any, mirror(path)) : undefined;\r\n if (val !== undefined && this.ctlr.isLogical(this.goTo(path), true, val)) return this.execute(transcript, path, true), true; // Hey dev or explorer, here u go!\r\n }\r\n } else if (this.execute(transcript, undefined, false)) return true;\r\n // --- 4. POST-ROUTE STAGE ---\r\n return this.trigger(transcript, \"post-route\");\r\n }\r\n protected parse(transcript: string, path = this.state.ctx, isNav = false, value = getPath(this.ctlr.logicRoot as any, mirror(path)), type = isArr(value) ? \"array\" : typeof value): any {\r\n if (type === \"boolean\") return isNav && this.config.routing.autoToggles ? !value : fuzzyChunkMatch(this.config.commands.voiceToggleOn, transcript, this.config.process.accuracy) ? true : fuzzyChunkMatch(this.config.commands.voiceToggleOff, transcript, this.config.process.accuracy) ? false : null;\r\n if (isNav) return null;\r\n if (type === \"number\") {\r\n const match = transcript.replace(/,/g, \"\").match(/-?\\d+(\\.\\d+)?/);\r\n return match ? Number(match[0]) : null;\r\n } else if (type === \"string\" || type === \"array\") return transcript ? (type === \"string\" ? transcript : transcript.split(/\\s*(?:,|and)\\s*/i).filter(Boolean)) : null;\r\n return null;\r\n }\r\n protected execute(transcript: string, path = this.state.ctx, isNav = false, isSubmit = false, value = this.parse(transcript, path, isNav), type = isArr(value) ? \"array\" : typeof value): boolean {\r\n if (value === null) return false;\r\n if ((this.config.routing.strict.value === true || (this.config.routing.strict.value === \"auto\" && type === \"string\")) && !isSubmit) {\r\n const input = this.container?.querySelector<HTMLInputElement>(clame(\"word-input\"));\r\n if (input) input.value = type === \"array\" ? value.join(\", \") : String(value);\r\n return this.view?.update(this.TIDS.ROUTER, { render: transcript || String(value), ...this.getRouterOptions(false) }), true;\r\n } // Auto-Strict: Blocks execution for strings only (or everything if true)\r\n return setPath(this.ctlr.logicRoot as any, path as any, value), this.view?.success(`${path.split(\".\").map(uncam).join(\" > \")} -> <code>${isArr(value) ? `[${value.join(\", \")}]` : value}</code>`, { id: this.TIDS.ROUTER, icon: true, autoClose: this.config.toasts.router.autoClose }), this.goBack(), true;\r\n }\r\n protected submit(render = this.container?.querySelector<HTMLInputElement>(clame(\"word-input\"))?.value.trim(), process = false): void {\r\n if (render) this.view?.update(this.TIDS.ROUTER, { render, ...this.getRouterOptions(false) }), !process ? this.execute(render, undefined, false, true) : this.process(render, undefined, true); // Execute with isSubmit = true\r\n }\r\n protected predict(): void {\r\n const crumbHtml = this.history.length < 2 ? \"\" : `<div class=\"tmg-media-voice-crumb-wrap\">` + this.history.map((p, idx, _, active = idx === this.historyIdx) => `<small style=\"${active ? \"font-weight: 500;\" : \"opacity: 0.8;\"}\">${this.linked(p === \"*\" ? \"Root\" : uncam(p.split(\".\").pop()!), p, true)}</small>`).join(\" <span style='opacity: 0.4;'><small>></small></span> \") + `</div>`,\r\n actions: ToastOptions[\"actions\"] = {};\r\n if (this.media.features.voiceItems) {\r\n actions[`<span title='Clear context${formatActionTooltip(this.settings.keys.shortcuts.voiceCtxClear, this.config.commands.voiceCtxClear)}'>×</span>`] = () => this.clearCtx(false);\r\n actions[`<span title='Go back${formatActionTooltip(this.settings.keys.shortcuts.voiceCtxPrevious, this.config.commands.voiceCtxPrevious)}' ${this.media.features.previousVoiceItem ? \"\" : \"disabled\"}>‹</span>`] = this.goBack;\r\n actions[`<span title='Go forward${formatActionTooltip(this.settings.keys.shortcuts.voiceCtxNext, this.config.commands.voiceCtxNext)}'${this.media.features.nextVoiceItem ? \"\" : \" disabled\"}>›</span>`] = this.goForward;\r\n }\r\n if (this.ctlr.isLogical(this.state.ctx, true)) {\r\n const value = getPath(this.ctlr.logicRoot as any, mirror(this.state.ctx)),\r\n type = isArr(value) ? \"array\" : typeof value,\r\n showInput = this.config.routing.strict.value === true || (this.config.routing.strict.value === \"auto\" && type !== \"boolean\"),\r\n showSubmit = this.media.tech.polyfill(\"voiceSubmit\", this.config.routing.strict.value === true || (this.config.routing.strict.value === \"auto\" && type === \"string\")),\r\n display = type === \"array\" ? value.join(\", \") : value ?? \"\",\r\n inputHtml = showInput ? `<div class=\"tmg-media-voice-input-wrap\"><input name=\"voice_value\" type=\"${type === \"number\" ? \"number\" : \"text\"}\" class=\"tmg-media-voice-word-input\" placeholder=\"${display || \"Type value...\"}\" value=\"${display}\"/>${showSubmit ? `<button type=\"button\" title='Submit ${formatActionTooltip(this.settings.keys.shortcuts.voiceSubmit, this.config.commands.voiceSubmit)}' class=\"tmg-media-voice-word-submit\">↳</button>` : \"\"}</div>` : \"\",\r\n // prettier-ignore\r\n hints = type === \"boolean\" ? `${(isArr(this.config.commands.voiceToggleOn) ? this.config.commands.voiceToggleOn.slice(0, 2) : [this.config.commands.voiceToggleOn]).map((v) => this.linked(v)).join(\", \")} or ${(isArr(this.config.commands.voiceToggleOff) ? this.config.commands.voiceToggleOff.slice(0, 2) : [this.config.commands.voiceToggleOff]).map((v) => this.linked(v)).join(\", \")} ${inputHtml}` : type === \"number\" ? `a number (like ${this.linked(\"0\")}, ${this.linked(\"50\")}):</small> ${inputHtml}` : type === \"array\" ? `comma-separated values:</small> ${inputHtml}` : `the exact text:</small> ${inputHtml}`;\r\n return void this.view?.(`${crumbHtml}<div class=\"tmg-media-voice-content\">${showInput ? '<small style=\"font-weight: 500;\">' : \"\"}Try ${this.config.muted ? (showInput ? \"typing\" : IS_MOBILE ? \"tapping\" : \"clicking\") : \"saying\"} ${hints}</div>`, this.getHelperOptions(actions));\r\n }\r\n const paths = this.ctlr.getLogicPaths(this.state.ctx);\r\n if (!paths.length) return;\r\n const inputHtml = `<input name=\"voice_path\" type=\"text\" class=\"tmg-media-voice-path-input\" placeholder=\"...text\"/>`;\r\n this.view?.(`${crumbHtml}<div class=\"tmg-media-voice-content\"><small style=\"font-weight: 500;\">Try ${this.config.muted ? (IS_MOBILE ? \"tapping\" : \"clicking\") : \"saying\"} any of these:</small><br>${inputHtml} • ${paths.map((p) => this.linked(uncam(p.split(\".\").pop()!))).join(\" • \")}</div>`, this.getHelperOptions(actions));\r\n }\r\n\r\n protected linked(text: string, value = text.toLowerCase(), isGoto = false, punc = isGoto || this.config.muted ? \"\" : '\"'): string {\r\n return `${punc}<u class=\"tmg-media-voice-link\" ${isGoto ? \"data-goto\" : \"data-cmd\"}=\"${value}\" title=\"${isGoto ? \"Go to\" : \"Say\"} ${value}\" tabindex=\"0\" style=\"cursor:pointer; text-decoration-color: rgb(from var(--tmg-media-brand-${isGoto ? \"accent-\" : \"\"}color) r g b / 0.75);\">${isGoto || this.config.muted ? text : value}</u>${punc}`;\r\n } // `\"\"` is my lil UI Experiment, crafting a standard here :)\r\n protected stayWoke(e: Event): void {\r\n this.state.routing && this.ctlr.throttle(\"voiceWaking\", () => e.composedPath().some((el) => (el as HTMLElement)?.matches?.(`:is([id=\"${this.TIDS.HELPER}\"],[id=\"${this.TIDS.ROUTER}\"])`)) && this.snooze(), 500);\r\n }\r\n protected handleClick(e: MouseEvent, t = e.target as HTMLElement): void {\r\n if (!t?.matches?.(clame(\"link\"))) return;\r\n e.preventDefault(), e.stopPropagation();\r\n if (t.dataset.goto) return void this.goTo(t.dataset.goto);\r\n this.view?.update(this.TIDS.ROUTER, { render: t.dataset.cmd, ...this.getRouterOptions(false) }); // Instantly update the router toast to show they \"clicked/said\" it\r\n this.process(t.dataset.cmd || \"\"); // Pipe it straight into the processor as if they spoke it!\r\n }\r\n protected handleInput(e: Event, t = e.target as HTMLInputElement, isEnter = e.type === \"keydown\" && (e as KeyboardEvent).key === \"Enter\", isClick = e.type === \"click\"): void {\r\n if (!t?.tagName) return;\r\n this.stayWoke(e);\r\n if ((isEnter && t.matches(clame(\"word-input\"))) || (isClick && t.matches(clame(\"word-submit\")))) e.preventDefault(), e.stopPropagation(), this.submit(t.closest(clame(\"input-wrap\"))?.querySelector<HTMLInputElement>(clame(\"word-input\"))?.value);\r\n else if (isEnter && t.matches(clame(\"path-input\"))) e.preventDefault(), e.stopPropagation(), this.submit(t.value, true);\r\n }\r\n public snooze(): void {\r\n this.ctlr.debounce(\"voiceSleeping\", this.snoozeCb, this.config.routing.timeout, false, this.signal);\r\n }\r\n private snoozeCb = () => (this.config.active.value = \"passive\");\r\n\r\n protected onCtx(value: string): void {\r\n if (this.history[this.historyIdx] !== this.state.ctx) {\r\n const idx = this.history.indexOf(this.state.ctx);\r\n idx === -1 && this.history.splice(this.historyIdx + 1, this.history.length, value), (this.historyIdx = idx !== -1 ? idx : this.history.length - 1);\r\n }\r\n this.media.tech.polyfill(\"voiceSubmit\", false), this.media.tech.polyfill(\"voiceItems\", this.history.length > 1);\r\n this.media.tech.polyfill(\"previousVoiceItem\", this.historyIdx > 0), this.media.tech.polyfill(\"nextVoiceItem\", this.historyIdx < this.history.length - 1);\r\n this.state.routing && this.predict(); // The single source of truth for rendering the UI\r\n }\r\n protected goTo(path = this.state.ctx, useForce = path === this.state.ctx): string {\r\n return force(() => (this.state.ctx = path), useForce);\r\n }\r\n protected goBack(): void {\r\n this.media.features.previousVoiceItem && this.goTo(this.history[--this.historyIdx]);\r\n }\r\n protected goForward(): void {\r\n this.media.features.nextVoiceItem && this.goTo(this.history[++this.historyIdx]);\r\n }\r\n protected clearCtx(direct = this.config.routing.direct): void {\r\n (this.history = direct ? [\"*\", \"media\", \"media.intent\"] : [\"*\"]), this.goTo(direct ? \"media.intent\" : \"*\", true);\r\n }\r\n\r\n protected getHelperOptions(actions?: ToastOptions[\"actions\"]): ToastOptions {\r\n return { id: this.TIDS.HELPER, actions, onClose: (_, user) => user && (this.config.active.value = \"passive\"), signal: this.signal, ...this.config.toasts.helper };\r\n }\r\n protected getRouterOptions(full = true): ToastOptions {\r\n return full ? { id: this.TIDS.ROUTER, actions: this.getRouterActions(), onClose: (_, user) => user && (this.config.active.value = false), signal: this.signal, ...this.config.toasts.router, ...this.getRouterOptions(false) } : { icon: this.config.toasts.router.icon, type: this.config.muted ? \"warning\" : this.config.toasts.router.type };\r\n }\r\n protected getRouterActions(full = true): ToastOptions[\"actions\"] {\r\n return { ...(full && this.state.routing && { [`<span title='Open actions'>${IconRegistry.get(\"settings\")}</span>`]: (_, __, menu = this.ctlr.plug(\"settings.panel\")?.menu) => (menu?.open(null), menu?.goTo(\"actions\")) }), [`<span title='${this.config.muted ? \"Unmute\" : \"Mute\"} my voice${formatActionTooltip(this.settings.keys.shortcuts.voiceMute, this.config.commands.voiceMute)}'>${IconRegistry.get(this.config.muted ? \"volumeMuted\" : \"volumeHigh\", true)}</span>`]: () => (this.config.muted = !this.config.muted) };\r\n }\r\n protected getRouterSpeech(firstHalf = this.config.muted ? \"Snubbing...\" : \"Listening...\", secondHalf = `${this.config.muted ? (IS_MOBILE ? \"Tap\" : \"Click\") : \"Say\"} ${!this.state.routing ? `${isArr(this.config.commands.voiceWake) ? this.config.commands.voiceWake.map((c = \"\") => this.linked(c)).join(\" or \") : this.linked(this.config.commands.voiceWake)} to wake me up` : this.config.muted ? \"or type instead\" : \"a path or command!\"}`): string {\r\n return `${firstHalf} ${secondHalf}`;\r\n }\r\n protected get container() {\r\n return this.ctlr.plug(\"settings.toasts\")?.container;\r\n }\r\n protected get view() {\r\n return this.ctlr.toast;\r\n }\r\n\r\n public override onDestroy(): void {\r\n this.stop(), super.onDestroy();\r\n }\r\n}\r\nconst uncam = (str: string) => capitalize(uncamelize(str)),\r\n clame = (sfx: string) => `.tmg-media-voice-${sfx}`;\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.voice\": typeof VoicePlug;\r\n }\r\n}\r\n\r\ndeclare module \"@defs/config\" {\r\n interface Settings {\r\n voice: VoiceConfig;\r\n }\r\n}\r\n\r\ndeclare module \"@defs/contract\" {\r\n interface MediaFeaturesExt {\r\n voice: boolean;\r\n voiceItems: boolean;\r\n voiceSubmit: boolean;\r\n nextVoiceItem: boolean;\r\n previousVoiceItem: boolean;\r\n }\r\n}\r\n"],"mappings":"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","names":["_","inputHtml"]}