tmg-media-player 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +38 -0
- package/dist/chunk-25AZZYCL.js +85 -0
- package/dist/chunk-25AZZYCL.js.map +1 -0
- package/dist/chunk-25IKIKAB.js +60 -0
- package/dist/chunk-25IKIKAB.js.map +1 -0
- package/dist/chunk-25ZZLGZ6.js +45 -0
- package/dist/chunk-25ZZLGZ6.js.map +1 -0
- package/dist/chunk-274C5J22.js +12 -0
- package/dist/chunk-274C5J22.js.map +1 -0
- package/dist/chunk-27FHLV4M.js +12 -0
- package/dist/chunk-27FHLV4M.js.map +1 -0
- package/dist/chunk-27MVVVJ7.js +405 -0
- package/dist/chunk-27MVVVJ7.js.map +1 -0
- package/dist/chunk-27SBY2N7.js +50 -0
- package/dist/chunk-27SBY2N7.js.map +1 -0
- package/dist/chunk-2J3FJY73.js +9 -0
- package/dist/chunk-2J3FJY73.js.map +1 -0
- package/dist/chunk-2JW4RYM4.js +170 -0
- package/dist/chunk-2JW4RYM4.js.map +1 -0
- package/dist/chunk-2PA7FU47.js +185 -0
- package/dist/chunk-2PA7FU47.js.map +1 -0
- package/dist/chunk-2VOAIUTU.js +9 -0
- package/dist/chunk-2VOAIUTU.js.map +1 -0
- package/dist/chunk-2W5XWGGE.js +7 -0
- package/dist/chunk-2W5XWGGE.js.map +1 -0
- package/dist/chunk-3C3GK24X.js +88 -0
- package/dist/chunk-3C3GK24X.js.map +1 -0
- package/dist/chunk-3KD22Z7D.js +9 -0
- package/dist/chunk-3KD22Z7D.js.map +1 -0
- package/dist/chunk-3OLEZVYI.js +196 -0
- package/dist/chunk-3OLEZVYI.js.map +1 -0
- package/dist/chunk-3OZEBWCF.js +12 -0
- package/dist/chunk-3OZEBWCF.js.map +1 -0
- package/dist/chunk-3T5CFCYB.js +45 -0
- package/dist/chunk-3T5CFCYB.js.map +1 -0
- package/dist/chunk-3VCTHGL6.js +86 -0
- package/dist/chunk-3VCTHGL6.js.map +1 -0
- package/dist/chunk-3WHPH6Q5.js +9 -0
- package/dist/chunk-3WHPH6Q5.js.map +1 -0
- package/dist/chunk-43MLKGCT.js +45 -0
- package/dist/chunk-43MLKGCT.js.map +1 -0
- package/dist/chunk-46QVDU2K.js +25 -0
- package/dist/chunk-46QVDU2K.js.map +1 -0
- package/dist/chunk-474PEQ33.js +78 -0
- package/dist/chunk-474PEQ33.js.map +1 -0
- package/dist/chunk-4FCGFO2J.js +9 -0
- package/dist/chunk-4FCGFO2J.js.map +1 -0
- package/dist/chunk-4JOPUUAL.js +185 -0
- package/dist/chunk-4JOPUUAL.js.map +1 -0
- package/dist/chunk-4QQXED6P.js +11 -0
- package/dist/chunk-4QQXED6P.js.map +1 -0
- package/dist/chunk-4VG5KHDO.js +52 -0
- package/dist/chunk-4VG5KHDO.js.map +1 -0
- package/dist/chunk-4W6H5CZF.js +1 -0
- package/dist/chunk-4W6H5CZF.js.map +1 -0
- package/dist/chunk-56CRICX7.js +154 -0
- package/dist/chunk-56CRICX7.js.map +1 -0
- package/dist/chunk-57L2PE3B.js +9 -0
- package/dist/chunk-57L2PE3B.js.map +1 -0
- package/dist/chunk-5CLVIO4N.js +33 -0
- package/dist/chunk-5CLVIO4N.js.map +1 -0
- package/dist/chunk-5GX67WSG.js +7 -0
- package/dist/chunk-5GX67WSG.js.map +1 -0
- package/dist/chunk-5SGNTRPL.js +47 -0
- package/dist/chunk-5SGNTRPL.js.map +1 -0
- package/dist/chunk-5TJURBKV.js +9 -0
- package/dist/chunk-5TJURBKV.js.map +1 -0
- package/dist/chunk-63E6JXTT.js +162 -0
- package/dist/chunk-63E6JXTT.js.map +1 -0
- package/dist/chunk-66HGOYPR.js +180 -0
- package/dist/chunk-66HGOYPR.js.map +1 -0
- package/dist/chunk-6IFGKHVM.js +9 -0
- package/dist/chunk-6IFGKHVM.js.map +1 -0
- package/dist/chunk-6K4HCMUL.js +32 -0
- package/dist/chunk-6K4HCMUL.js.map +1 -0
- package/dist/chunk-6KYXFWBF.js +32 -0
- package/dist/chunk-6KYXFWBF.js.map +1 -0
- package/dist/chunk-6R5BZZM6.js +95 -0
- package/dist/chunk-6R5BZZM6.js.map +1 -0
- package/dist/chunk-6S5BMP4A.js +9 -0
- package/dist/chunk-6S5BMP4A.js.map +1 -0
- package/dist/chunk-6SHHKTGD.js +73 -0
- package/dist/chunk-6SHHKTGD.js.map +1 -0
- package/dist/chunk-6U3M7V32.js +46 -0
- package/dist/chunk-6U3M7V32.js.map +1 -0
- package/dist/chunk-73XT2QVM.js +47 -0
- package/dist/chunk-73XT2QVM.js.map +1 -0
- package/dist/chunk-7FB3XGXR.js +471 -0
- package/dist/chunk-7FB3XGXR.js.map +1 -0
- package/dist/chunk-7HRR4LG4.js +115 -0
- package/dist/chunk-7HRR4LG4.js.map +1 -0
- package/dist/chunk-7I6DRKIN.js +58 -0
- package/dist/chunk-7I6DRKIN.js.map +1 -0
- package/dist/chunk-7MOZI57I.js +59 -0
- package/dist/chunk-7MOZI57I.js.map +1 -0
- package/dist/chunk-7PHLWSKV.js +95 -0
- package/dist/chunk-7PHLWSKV.js.map +1 -0
- package/dist/chunk-7Y4LQ5ED.js +45 -0
- package/dist/chunk-7Y4LQ5ED.js.map +1 -0
- package/dist/chunk-7YDZDHZH.js +19 -0
- package/dist/chunk-7YDZDHZH.js.map +1 -0
- package/dist/chunk-A7EG6K2X.js +54 -0
- package/dist/chunk-A7EG6K2X.js.map +1 -0
- package/dist/chunk-ABRBZ4IH.js +108 -0
- package/dist/chunk-ABRBZ4IH.js.map +1 -0
- package/dist/chunk-ACF6B245.js +17 -0
- package/dist/chunk-ACF6B245.js.map +1 -0
- package/dist/chunk-ACUUGJUG.js +53 -0
- package/dist/chunk-ACUUGJUG.js.map +1 -0
- package/dist/chunk-AIYSHJLG.js +42 -0
- package/dist/chunk-AIYSHJLG.js.map +1 -0
- package/dist/chunk-AKHJD2A3.js +50 -0
- package/dist/chunk-AKHJD2A3.js.map +1 -0
- package/dist/chunk-ATE4NMIF.js +22 -0
- package/dist/chunk-ATE4NMIF.js.map +1 -0
- package/dist/chunk-AZTSMVMN.js +138 -0
- package/dist/chunk-AZTSMVMN.js.map +1 -0
- package/dist/chunk-BFFQZMZX.js +108 -0
- package/dist/chunk-BFFQZMZX.js.map +1 -0
- package/dist/chunk-BKJRLSXA.js +329 -0
- package/dist/chunk-BKJRLSXA.js.map +1 -0
- package/dist/chunk-BLJDDFX2.js +228 -0
- package/dist/chunk-BLJDDFX2.js.map +1 -0
- package/dist/chunk-BROAUWON.js +123 -0
- package/dist/chunk-BROAUWON.js.map +1 -0
- package/dist/chunk-BU4AX4DA.js +49 -0
- package/dist/chunk-BU4AX4DA.js.map +1 -0
- package/dist/chunk-C2TANFKK.js +167 -0
- package/dist/chunk-C2TANFKK.js.map +1 -0
- package/dist/chunk-CAIDFMLB.js +164 -0
- package/dist/chunk-CAIDFMLB.js.map +1 -0
- package/dist/chunk-CCD3ZXIT.js +54 -0
- package/dist/chunk-CCD3ZXIT.js.map +1 -0
- package/dist/chunk-CEEX3HQ2.js +44 -0
- package/dist/chunk-CEEX3HQ2.js.map +1 -0
- package/dist/chunk-CIN7HWLH.js +26 -0
- package/dist/chunk-CIN7HWLH.js.map +1 -0
- package/dist/chunk-CL24QYM6.js +48 -0
- package/dist/chunk-CL24QYM6.js.map +1 -0
- package/dist/chunk-CTSPKWKN.js +9 -0
- package/dist/chunk-CTSPKWKN.js.map +1 -0
- package/dist/chunk-CYUYF57A.js +139 -0
- package/dist/chunk-CYUYF57A.js.map +1 -0
- package/dist/chunk-D5XNDZ4S.js +21 -0
- package/dist/chunk-D5XNDZ4S.js.map +1 -0
- package/dist/chunk-D7JQDN74.js +9 -0
- package/dist/chunk-D7JQDN74.js.map +1 -0
- package/dist/chunk-DKS7SZFN.js +165 -0
- package/dist/chunk-DKS7SZFN.js.map +1 -0
- package/dist/chunk-DM4ZIS4L.js +50 -0
- package/dist/chunk-DM4ZIS4L.js.map +1 -0
- package/dist/chunk-DNY72SCR.js +9 -0
- package/dist/chunk-DNY72SCR.js.map +1 -0
- package/dist/chunk-DQLWWVM3.js +25 -0
- package/dist/chunk-DQLWWVM3.js.map +1 -0
- package/dist/chunk-E56H3EOR.js +1 -0
- package/dist/chunk-E56H3EOR.js.map +1 -0
- package/dist/chunk-E56PSUT2.js +435 -0
- package/dist/chunk-E56PSUT2.js.map +1 -0
- package/dist/chunk-EF7RQIJK.js +9 -0
- package/dist/chunk-EF7RQIJK.js.map +1 -0
- package/dist/chunk-EHQJNRJV.js +449 -0
- package/dist/chunk-EHQJNRJV.js.map +1 -0
- package/dist/chunk-EIT6CZXJ.js +50 -0
- package/dist/chunk-EIT6CZXJ.js.map +1 -0
- package/dist/chunk-ERPQNMED.js +292 -0
- package/dist/chunk-ERPQNMED.js.map +1 -0
- package/dist/chunk-ESAOH6X5.js +15 -0
- package/dist/chunk-ESAOH6X5.js.map +1 -0
- package/dist/chunk-ESNKONBW.js +80 -0
- package/dist/chunk-ESNKONBW.js.map +1 -0
- package/dist/chunk-EUQ7SC5J.js +33 -0
- package/dist/chunk-EUQ7SC5J.js.map +1 -0
- package/dist/chunk-EUX3RZ3L.js +66 -0
- package/dist/chunk-EUX3RZ3L.js.map +1 -0
- package/dist/chunk-EVUTNLHC.js +7 -0
- package/dist/chunk-EVUTNLHC.js.map +1 -0
- package/dist/chunk-EY7PB3LA.js +59 -0
- package/dist/chunk-EY7PB3LA.js.map +1 -0
- package/dist/chunk-FCQDAU2C.js +7 -0
- package/dist/chunk-FCQDAU2C.js.map +1 -0
- package/dist/chunk-FHL5Z6MX.js +13 -0
- package/dist/chunk-FHL5Z6MX.js.map +1 -0
- package/dist/chunk-FIUVWAAQ.js +35 -0
- package/dist/chunk-FIUVWAAQ.js.map +1 -0
- package/dist/chunk-FN32KVQT.js +188 -0
- package/dist/chunk-FN32KVQT.js.map +1 -0
- package/dist/chunk-FX3UTAZK.js +31 -0
- package/dist/chunk-FX3UTAZK.js.map +1 -0
- package/dist/chunk-FXIL7BGP.js +43 -0
- package/dist/chunk-FXIL7BGP.js.map +1 -0
- package/dist/chunk-G7KANQFO.js +131 -0
- package/dist/chunk-G7KANQFO.js.map +1 -0
- package/dist/chunk-GDC7I2CJ.js +66 -0
- package/dist/chunk-GDC7I2CJ.js.map +1 -0
- package/dist/chunk-GM7YMURS.js +14 -0
- package/dist/chunk-GM7YMURS.js.map +1 -0
- package/dist/chunk-GQ7ITX5B.js +7 -0
- package/dist/chunk-GQ7ITX5B.js.map +1 -0
- package/dist/chunk-GSKI4IRL.js +34 -0
- package/dist/chunk-GSKI4IRL.js.map +1 -0
- package/dist/chunk-GUIBL2MZ.js +1 -0
- package/dist/chunk-GUIBL2MZ.js.map +1 -0
- package/dist/chunk-H24E5FRE.js +9 -0
- package/dist/chunk-H24E5FRE.js.map +1 -0
- package/dist/chunk-HA2GK6KH.js +9 -0
- package/dist/chunk-HA2GK6KH.js.map +1 -0
- package/dist/chunk-HCSCY6DU.js +458 -0
- package/dist/chunk-HCSCY6DU.js.map +1 -0
- package/dist/chunk-HGXGXW2U.js +26 -0
- package/dist/chunk-HGXGXW2U.js.map +1 -0
- package/dist/chunk-HH7PMFLU.js +33 -0
- package/dist/chunk-HH7PMFLU.js.map +1 -0
- package/dist/chunk-HJORMYPQ.js +66 -0
- package/dist/chunk-HJORMYPQ.js.map +1 -0
- package/dist/chunk-HN2UT66M.js +9 -0
- package/dist/chunk-HN2UT66M.js.map +1 -0
- package/dist/chunk-HNPBSC2A.js +132 -0
- package/dist/chunk-HNPBSC2A.js.map +1 -0
- package/dist/chunk-HNTARWVL.js +57 -0
- package/dist/chunk-HNTARWVL.js.map +1 -0
- package/dist/chunk-HPPHGUTD.js +1 -0
- package/dist/chunk-HPPHGUTD.js.map +1 -0
- package/dist/chunk-HPWORM77.js +199 -0
- package/dist/chunk-HPWORM77.js.map +1 -0
- package/dist/chunk-HYG6W442.js +66 -0
- package/dist/chunk-HYG6W442.js.map +1 -0
- package/dist/chunk-I3LBJOUW.js +249 -0
- package/dist/chunk-I3LBJOUW.js.map +1 -0
- package/dist/chunk-I47VPMZS.js +40 -0
- package/dist/chunk-I47VPMZS.js.map +1 -0
- package/dist/chunk-ID72UAJE.js +7 -0
- package/dist/chunk-ID72UAJE.js.map +1 -0
- package/dist/chunk-IENUYESB.js +33 -0
- package/dist/chunk-IENUYESB.js.map +1 -0
- package/dist/chunk-IFYBKLFH.js +15 -0
- package/dist/chunk-IFYBKLFH.js.map +1 -0
- package/dist/chunk-IJJ4F6HI.js +105 -0
- package/dist/chunk-IJJ4F6HI.js.map +1 -0
- package/dist/chunk-IKKQYZNA.js +43 -0
- package/dist/chunk-IKKQYZNA.js.map +1 -0
- package/dist/chunk-IUS3FRXS.js +446 -0
- package/dist/chunk-IUS3FRXS.js.map +1 -0
- package/dist/chunk-IVA7LFT2.js +12 -0
- package/dist/chunk-IVA7LFT2.js.map +1 -0
- package/dist/chunk-IXLSSEE7.js +39 -0
- package/dist/chunk-IXLSSEE7.js.map +1 -0
- package/dist/chunk-J2SIL62L.js +142 -0
- package/dist/chunk-J2SIL62L.js.map +1 -0
- package/dist/chunk-J54J2AED.js +117 -0
- package/dist/chunk-J54J2AED.js.map +1 -0
- package/dist/chunk-JFWYJV3J.js +61 -0
- package/dist/chunk-JFWYJV3J.js.map +1 -0
- package/dist/chunk-JP5X5JDL.js +10 -0
- package/dist/chunk-JP5X5JDL.js.map +1 -0
- package/dist/chunk-JPWNE7JO.js +11 -0
- package/dist/chunk-JPWNE7JO.js.map +1 -0
- package/dist/chunk-JRWYWTTT.js +9 -0
- package/dist/chunk-JRWYWTTT.js.map +1 -0
- package/dist/chunk-JZXJAJNW.js +316 -0
- package/dist/chunk-JZXJAJNW.js.map +1 -0
- package/dist/chunk-K4UHBEDT.js +9 -0
- package/dist/chunk-K4UHBEDT.js.map +1 -0
- package/dist/chunk-K7AAKFQF.js +12 -0
- package/dist/chunk-K7AAKFQF.js.map +1 -0
- package/dist/chunk-KD3OBG25.js +15 -0
- package/dist/chunk-KD3OBG25.js.map +1 -0
- package/dist/chunk-KJ74PGBI.js +45 -0
- package/dist/chunk-KJ74PGBI.js.map +1 -0
- package/dist/chunk-KLAI7YSD.js +7 -0
- package/dist/chunk-KLAI7YSD.js.map +1 -0
- package/dist/chunk-KMENKVHP.js +110 -0
- package/dist/chunk-KMENKVHP.js.map +1 -0
- package/dist/chunk-KOAHN3L5.js +9 -0
- package/dist/chunk-KOAHN3L5.js.map +1 -0
- package/dist/chunk-KQXT3GDF.js +16 -0
- package/dist/chunk-KQXT3GDF.js.map +1 -0
- package/dist/chunk-L6J66EOL.js +44 -0
- package/dist/chunk-L6J66EOL.js.map +1 -0
- package/dist/chunk-LNUYM3ZX.js +26 -0
- package/dist/chunk-LNUYM3ZX.js.map +1 -0
- package/dist/chunk-LSKNTXY2.js +57 -0
- package/dist/chunk-LSKNTXY2.js.map +1 -0
- package/dist/chunk-LTEL7NEG.js +219 -0
- package/dist/chunk-LTEL7NEG.js.map +1 -0
- package/dist/chunk-LTVS74EO.js +45 -0
- package/dist/chunk-LTVS74EO.js.map +1 -0
- package/dist/chunk-LVDP2QOX.js +99 -0
- package/dist/chunk-LVDP2QOX.js.map +1 -0
- package/dist/chunk-LWLNQS3O.js +569 -0
- package/dist/chunk-LWLNQS3O.js.map +1 -0
- package/dist/chunk-LYKZAKVN.js +19 -0
- package/dist/chunk-LYKZAKVN.js.map +1 -0
- package/dist/chunk-M2NVOKGL.js +97 -0
- package/dist/chunk-M2NVOKGL.js.map +1 -0
- package/dist/chunk-M3UOD7TX.js +427 -0
- package/dist/chunk-M3UOD7TX.js.map +1 -0
- package/dist/chunk-M5C4XQO2.js +45 -0
- package/dist/chunk-M5C4XQO2.js.map +1 -0
- package/dist/chunk-M5DFGJF7.js +10 -0
- package/dist/chunk-M5DFGJF7.js.map +1 -0
- package/dist/chunk-MAXX5M6N.js +9 -0
- package/dist/chunk-MAXX5M6N.js.map +1 -0
- package/dist/chunk-MEAGFRLE.js +37 -0
- package/dist/chunk-MEAGFRLE.js.map +1 -0
- package/dist/chunk-MFYNCWAO.js +25 -0
- package/dist/chunk-MFYNCWAO.js.map +1 -0
- package/dist/chunk-MJ26PFRF.js +12 -0
- package/dist/chunk-MJ26PFRF.js.map +1 -0
- package/dist/chunk-MP2GRDUX.js +10 -0
- package/dist/chunk-MP2GRDUX.js.map +1 -0
- package/dist/chunk-MTQLUS5O.js +51 -0
- package/dist/chunk-MTQLUS5O.js.map +1 -0
- package/dist/chunk-MUDO3ZPJ.js +10 -0
- package/dist/chunk-MUDO3ZPJ.js.map +1 -0
- package/dist/chunk-N2Q3TZXW.js +9 -0
- package/dist/chunk-N2Q3TZXW.js.map +1 -0
- package/dist/chunk-N52KK6K5.js +48 -0
- package/dist/chunk-N52KK6K5.js.map +1 -0
- package/dist/chunk-N5F2YHLD.js +28 -0
- package/dist/chunk-N5F2YHLD.js.map +1 -0
- package/dist/chunk-NGX5YDCB.js +7 -0
- package/dist/chunk-NGX5YDCB.js.map +1 -0
- package/dist/chunk-NHDRXRXA.js +33 -0
- package/dist/chunk-NHDRXRXA.js.map +1 -0
- package/dist/chunk-NPK5ITEG.js +7 -0
- package/dist/chunk-NPK5ITEG.js.map +1 -0
- package/dist/chunk-NPTM6BGC.js +15 -0
- package/dist/chunk-NPTM6BGC.js.map +1 -0
- package/dist/chunk-NTNVW4BG.js +7 -0
- package/dist/chunk-NTNVW4BG.js.map +1 -0
- package/dist/chunk-OBASYXH2.js +26 -0
- package/dist/chunk-OBASYXH2.js.map +1 -0
- package/dist/chunk-OBQNTU5F.js +7 -0
- package/dist/chunk-OBQNTU5F.js.map +1 -0
- package/dist/chunk-OEHNS7YX.js +7 -0
- package/dist/chunk-OEHNS7YX.js.map +1 -0
- package/dist/chunk-OJAUFHEW.js +107 -0
- package/dist/chunk-OJAUFHEW.js.map +1 -0
- package/dist/chunk-ONW4BD2Z.js +38 -0
- package/dist/chunk-ONW4BD2Z.js.map +1 -0
- package/dist/chunk-OOXUZMZ7.js +9 -0
- package/dist/chunk-OOXUZMZ7.js.map +1 -0
- package/dist/chunk-OP3PIADD.js +45 -0
- package/dist/chunk-OP3PIADD.js.map +1 -0
- package/dist/chunk-OSDM6ZVT.js +7 -0
- package/dist/chunk-OSDM6ZVT.js.map +1 -0
- package/dist/chunk-OZEEIRCS.js +9 -0
- package/dist/chunk-OZEEIRCS.js.map +1 -0
- package/dist/chunk-PGSBJUJ4.js +9 -0
- package/dist/chunk-PGSBJUJ4.js.map +1 -0
- package/dist/chunk-PPIDZONA.js +38 -0
- package/dist/chunk-PPIDZONA.js.map +1 -0
- package/dist/chunk-PTMZQ7E3.js +7 -0
- package/dist/chunk-PTMZQ7E3.js.map +1 -0
- package/dist/chunk-PV24XKW2.js +11 -0
- package/dist/chunk-PV24XKW2.js.map +1 -0
- package/dist/chunk-PXU563OY.js +26 -0
- package/dist/chunk-PXU563OY.js.map +1 -0
- package/dist/chunk-Q2XYS26I.js +11 -0
- package/dist/chunk-Q2XYS26I.js.map +1 -0
- package/dist/chunk-Q5NG3DY7.js +31 -0
- package/dist/chunk-Q5NG3DY7.js.map +1 -0
- package/dist/chunk-QADXAWA6.js +71 -0
- package/dist/chunk-QADXAWA6.js.map +1 -0
- package/dist/chunk-QG2FZCJ6.js +7 -0
- package/dist/chunk-QG2FZCJ6.js.map +1 -0
- package/dist/chunk-QMLGJPHC.js +7 -0
- package/dist/chunk-QMLGJPHC.js.map +1 -0
- package/dist/chunk-QQKXAEXW.js +50 -0
- package/dist/chunk-QQKXAEXW.js.map +1 -0
- package/dist/chunk-QS3C4KCF.js +95 -0
- package/dist/chunk-QS3C4KCF.js.map +1 -0
- package/dist/chunk-R4HNE7TL.js +7 -0
- package/dist/chunk-R4HNE7TL.js.map +1 -0
- package/dist/chunk-R5PBXGKK.js +10 -0
- package/dist/chunk-R5PBXGKK.js.map +1 -0
- package/dist/chunk-RFQXCN62.js +13 -0
- package/dist/chunk-RFQXCN62.js.map +1 -0
- package/dist/chunk-RGPGW4ZJ.js +9 -0
- package/dist/chunk-RGPGW4ZJ.js.map +1 -0
- package/dist/chunk-RKBRRJY6.js +9 -0
- package/dist/chunk-RKBRRJY6.js.map +1 -0
- package/dist/chunk-RM6NFJ7V.js +32 -0
- package/dist/chunk-RM6NFJ7V.js.map +1 -0
- package/dist/chunk-RRYAXULQ.js +48 -0
- package/dist/chunk-RRYAXULQ.js.map +1 -0
- package/dist/chunk-RS4W2FAL.js +89 -0
- package/dist/chunk-RS4W2FAL.js.map +1 -0
- package/dist/chunk-RSUFDTAH.js +110 -0
- package/dist/chunk-RSUFDTAH.js.map +1 -0
- package/dist/chunk-S2XKXJNC.js +30 -0
- package/dist/chunk-S2XKXJNC.js.map +1 -0
- package/dist/chunk-S4NKJDRC.js +79 -0
- package/dist/chunk-S4NKJDRC.js.map +1 -0
- package/dist/chunk-S7QGB2FC.js +27 -0
- package/dist/chunk-S7QGB2FC.js.map +1 -0
- package/dist/chunk-SCL4FW6F.js +425 -0
- package/dist/chunk-SCL4FW6F.js.map +1 -0
- package/dist/chunk-SITF6GNM.js +7 -0
- package/dist/chunk-SITF6GNM.js.map +1 -0
- package/dist/chunk-SPCINICO.js +5 -0
- package/dist/chunk-SPCINICO.js.map +1 -0
- package/dist/chunk-SPOTTHMN.js +24 -0
- package/dist/chunk-SPOTTHMN.js.map +1 -0
- package/dist/chunk-SWYNIQHD.js +77 -0
- package/dist/chunk-SWYNIQHD.js.map +1 -0
- package/dist/chunk-SXXITYPP.js +69 -0
- package/dist/chunk-SXXITYPP.js.map +1 -0
- package/dist/chunk-T4YZKI3Y.js +133 -0
- package/dist/chunk-T4YZKI3Y.js.map +1 -0
- package/dist/chunk-T7AIKZ6A.js +44 -0
- package/dist/chunk-T7AIKZ6A.js.map +1 -0
- package/dist/chunk-T7EX6RI2.js +34 -0
- package/dist/chunk-T7EX6RI2.js.map +1 -0
- package/dist/chunk-TB3GE2MH.js +93 -0
- package/dist/chunk-TB3GE2MH.js.map +1 -0
- package/dist/chunk-TE4JFCHB.js +52 -0
- package/dist/chunk-TE4JFCHB.js.map +1 -0
- package/dist/chunk-TGQYCEFL.js +37 -0
- package/dist/chunk-TGQYCEFL.js.map +1 -0
- package/dist/chunk-TMTWPBFD.js +10 -0
- package/dist/chunk-TMTWPBFD.js.map +1 -0
- package/dist/chunk-TSAEQFDM.js +65 -0
- package/dist/chunk-TSAEQFDM.js.map +1 -0
- package/dist/chunk-U3FX24C6.js +1 -0
- package/dist/chunk-U3FX24C6.js.map +1 -0
- package/dist/chunk-U776U22S.js +45 -0
- package/dist/chunk-U776U22S.js.map +1 -0
- package/dist/chunk-UCBDCGYX.js +9 -0
- package/dist/chunk-UCBDCGYX.js.map +1 -0
- package/dist/chunk-UGNYASFC.js +59 -0
- package/dist/chunk-UGNYASFC.js.map +1 -0
- package/dist/chunk-UJTVBENE.js +7 -0
- package/dist/chunk-UJTVBENE.js.map +1 -0
- package/dist/chunk-UKVFVAOO.js +75 -0
- package/dist/chunk-UKVFVAOO.js.map +1 -0
- package/dist/chunk-URKWHZXA.js +25 -0
- package/dist/chunk-URKWHZXA.js.map +1 -0
- package/dist/chunk-UVKRO5ER.js +13 -0
- package/dist/chunk-UVKRO5ER.js.map +1 -0
- package/dist/chunk-V3D7FBSR.js +14 -0
- package/dist/chunk-V3D7FBSR.js.map +1 -0
- package/dist/chunk-VCVMCKZI.js +10 -0
- package/dist/chunk-VCVMCKZI.js.map +1 -0
- package/dist/chunk-VNGMGQF5.js +1 -0
- package/dist/chunk-VNGMGQF5.js.map +1 -0
- package/dist/chunk-VSK7766S.js +163 -0
- package/dist/chunk-VSK7766S.js.map +1 -0
- package/dist/chunk-VZLDFZC7.js +241 -0
- package/dist/chunk-VZLDFZC7.js.map +1 -0
- package/dist/chunk-W2KUESDN.js +25 -0
- package/dist/chunk-W2KUESDN.js.map +1 -0
- package/dist/chunk-W2SHHRYX.js +420 -0
- package/dist/chunk-W2SHHRYX.js.map +1 -0
- package/dist/chunk-WBLZ5GBM.js +158 -0
- package/dist/chunk-WBLZ5GBM.js.map +1 -0
- package/dist/chunk-WODJ2VQH.js +41 -0
- package/dist/chunk-WODJ2VQH.js.map +1 -0
- package/dist/chunk-WQXLL5IV.js +9 -0
- package/dist/chunk-WQXLL5IV.js.map +1 -0
- package/dist/chunk-WR3327CL.js +89 -0
- package/dist/chunk-WR3327CL.js.map +1 -0
- package/dist/chunk-WSBH5QD6.js +309 -0
- package/dist/chunk-WSBH5QD6.js.map +1 -0
- package/dist/chunk-WTHHXWQM.js +7 -0
- package/dist/chunk-WTHHXWQM.js.map +1 -0
- package/dist/chunk-WW56NFQS.js +7 -0
- package/dist/chunk-WW56NFQS.js.map +1 -0
- package/dist/chunk-WYVXNXZI.js +73 -0
- package/dist/chunk-WYVXNXZI.js.map +1 -0
- package/dist/chunk-X3MYMAS2.js +56 -0
- package/dist/chunk-X3MYMAS2.js.map +1 -0
- package/dist/chunk-X7CDYCQF.js +22 -0
- package/dist/chunk-X7CDYCQF.js.map +1 -0
- package/dist/chunk-XGVDXMS3.js +90 -0
- package/dist/chunk-XGVDXMS3.js.map +1 -0
- package/dist/chunk-XHXIXEGS.js +7 -0
- package/dist/chunk-XHXIXEGS.js.map +1 -0
- package/dist/chunk-XJ6HO3WP.js +46 -0
- package/dist/chunk-XJ6HO3WP.js.map +1 -0
- package/dist/chunk-XMR6HHTA.js +59 -0
- package/dist/chunk-XMR6HHTA.js.map +1 -0
- package/dist/chunk-XR2KBJIP.js +54 -0
- package/dist/chunk-XR2KBJIP.js.map +1 -0
- package/dist/chunk-XVN5W3A7.js +50 -0
- package/dist/chunk-XVN5W3A7.js.map +1 -0
- package/dist/chunk-XXYOJDOZ.js +11 -0
- package/dist/chunk-XXYOJDOZ.js.map +1 -0
- package/dist/chunk-XZROR7RJ.js +25 -0
- package/dist/chunk-XZROR7RJ.js.map +1 -0
- package/dist/chunk-YF3LWJL4.js +7 -0
- package/dist/chunk-YF3LWJL4.js.map +1 -0
- package/dist/chunk-YFM4P3Z3.js +309 -0
- package/dist/chunk-YFM4P3Z3.js.map +1 -0
- package/dist/chunk-YFVOBSKP.js +52 -0
- package/dist/chunk-YFVOBSKP.js.map +1 -0
- package/dist/chunk-YFZW72PC.js +45 -0
- package/dist/chunk-YFZW72PC.js.map +1 -0
- package/dist/chunk-YHTCXXEG.js +9 -0
- package/dist/chunk-YHTCXXEG.js.map +1 -0
- package/dist/chunk-YJVUJ6AA.js +93 -0
- package/dist/chunk-YJVUJ6AA.js.map +1 -0
- package/dist/chunk-YKB67FZ5.js +46 -0
- package/dist/chunk-YKB67FZ5.js.map +1 -0
- package/dist/chunk-YS2PK7QA.js +35 -0
- package/dist/chunk-YS2PK7QA.js.map +1 -0
- package/dist/chunk-YURDFQ6X.js +33 -0
- package/dist/chunk-YURDFQ6X.js.map +1 -0
- package/dist/chunk-YVCKIDL5.js +61 -0
- package/dist/chunk-YVCKIDL5.js.map +1 -0
- package/dist/chunk-YXO6NQ4E.js +49 -0
- package/dist/chunk-YXO6NQ4E.js.map +1 -0
- package/dist/chunk-Z2AEG3J7.js +53 -0
- package/dist/chunk-Z2AEG3J7.js.map +1 -0
- package/dist/chunk-Z4I2MQ7B.js +26 -0
- package/dist/chunk-Z4I2MQ7B.js.map +1 -0
- package/dist/chunk-ZBPKZKIJ.js +25 -0
- package/dist/chunk-ZBPKZKIJ.js.map +1 -0
- package/dist/chunk-ZCMJVQ6P.js +10 -0
- package/dist/chunk-ZCMJVQ6P.js.map +1 -0
- package/dist/chunk-ZCQ5UWVE.js +27 -0
- package/dist/chunk-ZCQ5UWVE.js.map +1 -0
- package/dist/chunk-ZFCTBLWX.js +12 -0
- package/dist/chunk-ZFCTBLWX.js.map +1 -0
- package/dist/chunk-ZJ6KVLUS.js +296 -0
- package/dist/chunk-ZJ6KVLUS.js.map +1 -0
- package/dist/chunk-ZRCFHUS4.js +37 -0
- package/dist/chunk-ZRCFHUS4.js.map +1 -0
- package/dist/chunk-ZSB6HGB5.js +50 -0
- package/dist/chunk-ZSB6HGB5.js.map +1 -0
- package/dist/chunk-ZSG6ROJA.js +45 -0
- package/dist/chunk-ZSG6ROJA.js.map +1 -0
- package/dist/chunk-ZSQIEOQO.js +61 -0
- package/dist/chunk-ZSQIEOQO.js.map +1 -0
- package/dist/chunk-ZTMXXISI.js +158 -0
- package/dist/chunk-ZTMXXISI.js.map +1 -0
- package/dist/chunk-ZUMPSWHW.js +138 -0
- package/dist/chunk-ZUMPSWHW.js.map +1 -0
- package/dist/chunk-ZUYSQ37E.js +88 -0
- package/dist/chunk-ZUYSQ37E.js.map +1 -0
- package/dist/components/base/index.cjs +156 -0
- package/dist/components/base/index.cjs.map +1 -0
- package/dist/components/base/index.js +15 -0
- package/dist/components/base/index.js.map +1 -0
- package/dist/components/base/types.cjs +19 -0
- package/dist/components/base/types.cjs.map +1 -0
- package/dist/components/base/types.js +1 -0
- package/dist/components/base/types.js.map +1 -0
- package/dist/components/buffer.cjs +184 -0
- package/dist/components/buffer.cjs.map +1 -0
- package/dist/components/buffer.js +18 -0
- package/dist/components/buffer.js.map +1 -0
- package/dist/components/captionsview.cjs +378 -0
- package/dist/components/captionsview.cjs.map +1 -0
- package/dist/components/captionsview.js +22 -0
- package/dist/components/captionsview.js.map +1 -0
- package/dist/components/controls/airplay.cjs +441 -0
- package/dist/components/controls/airplay.cjs.map +1 -0
- package/dist/components/controls/airplay.js +21 -0
- package/dist/components/controls/airplay.js.map +1 -0
- package/dist/components/controls/backward10.cjs +427 -0
- package/dist/components/controls/backward10.cjs.map +1 -0
- package/dist/components/controls/backward10.js +21 -0
- package/dist/components/controls/backward10.js.map +1 -0
- package/dist/components/controls/bignext.cjs +448 -0
- package/dist/components/controls/bignext.cjs.map +1 -0
- package/dist/components/controls/bignext.js +21 -0
- package/dist/components/controls/bignext.js.map +1 -0
- package/dist/components/controls/bigplaypause.cjs +440 -0
- package/dist/components/controls/bigplaypause.cjs.map +1 -0
- package/dist/components/controls/bigplaypause.js +21 -0
- package/dist/components/controls/bigplaypause.js.map +1 -0
- package/dist/components/controls/bigprev.cjs +448 -0
- package/dist/components/controls/bigprev.cjs.map +1 -0
- package/dist/components/controls/bigprev.js +21 -0
- package/dist/components/controls/bigprev.js.map +1 -0
- package/dist/components/controls/brightness/index.cjs +767 -0
- package/dist/components/controls/brightness/index.cjs.map +1 -0
- package/dist/components/controls/brightness/index.js +25 -0
- package/dist/components/controls/brightness/index.js.map +1 -0
- package/dist/components/controls/brightness/slider.cjs +460 -0
- package/dist/components/controls/brightness/slider.cjs.map +1 -0
- package/dist/components/controls/brightness/slider.js +21 -0
- package/dist/components/controls/brightness/slider.js.map +1 -0
- package/dist/components/controls/captions.cjs +452 -0
- package/dist/components/controls/captions.cjs.map +1 -0
- package/dist/components/controls/captions.js +21 -0
- package/dist/components/controls/captions.js.map +1 -0
- package/dist/components/controls/capture.cjs +455 -0
- package/dist/components/controls/capture.cjs.map +1 -0
- package/dist/components/controls/capture.js +21 -0
- package/dist/components/controls/capture.js.map +1 -0
- package/dist/components/controls/cast.cjs +441 -0
- package/dist/components/controls/cast.cjs.map +1 -0
- package/dist/components/controls/cast.js +21 -0
- package/dist/components/controls/cast.js.map +1 -0
- package/dist/components/controls/chapter.cjs +213 -0
- package/dist/components/controls/chapter.cjs.map +1 -0
- package/dist/components/controls/chapter.js +18 -0
- package/dist/components/controls/chapter.js.map +1 -0
- package/dist/components/controls/duration.cjs +217 -0
- package/dist/components/controls/duration.cjs.map +1 -0
- package/dist/components/controls/duration.js +18 -0
- package/dist/components/controls/duration.js.map +1 -0
- package/dist/components/controls/expandminiplayer.cjs +430 -0
- package/dist/components/controls/expandminiplayer.cjs.map +1 -0
- package/dist/components/controls/expandminiplayer.js +21 -0
- package/dist/components/controls/expandminiplayer.js.map +1 -0
- package/dist/components/controls/forward10.cjs +427 -0
- package/dist/components/controls/forward10.cjs.map +1 -0
- package/dist/components/controls/forward10.js +21 -0
- package/dist/components/controls/forward10.js.map +1 -0
- package/dist/components/controls/fullscreen.cjs +441 -0
- package/dist/components/controls/fullscreen.cjs.map +1 -0
- package/dist/components/controls/fullscreen.js +21 -0
- package/dist/components/controls/fullscreen.js.map +1 -0
- package/dist/components/controls/fullscreenlock.cjs +433 -0
- package/dist/components/controls/fullscreenlock.cjs.map +1 -0
- package/dist/components/controls/fullscreenlock.js +21 -0
- package/dist/components/controls/fullscreenlock.js.map +1 -0
- package/dist/components/controls/fullscreenorientation.cjs +436 -0
- package/dist/components/controls/fullscreenorientation.cjs.map +1 -0
- package/dist/components/controls/fullscreenorientation.js +21 -0
- package/dist/components/controls/fullscreenorientation.js.map +1 -0
- package/dist/components/controls/meta.cjs +298 -0
- package/dist/components/controls/meta.cjs.map +1 -0
- package/dist/components/controls/meta.js +18 -0
- package/dist/components/controls/meta.js.map +1 -0
- package/dist/components/controls/next.cjs +444 -0
- package/dist/components/controls/next.cjs.map +1 -0
- package/dist/components/controls/next.js +21 -0
- package/dist/components/controls/next.js.map +1 -0
- package/dist/components/controls/objectfit.cjs +444 -0
- package/dist/components/controls/objectfit.cjs.map +1 -0
- package/dist/components/controls/objectfit.js +21 -0
- package/dist/components/controls/objectfit.js.map +1 -0
- package/dist/components/controls/pictureinpicture.cjs +441 -0
- package/dist/components/controls/pictureinpicture.cjs.map +1 -0
- package/dist/components/controls/pictureinpicture.js +21 -0
- package/dist/components/controls/pictureinpicture.js.map +1 -0
- package/dist/components/controls/playpause.cjs +441 -0
- package/dist/components/controls/playpause.cjs.map +1 -0
- package/dist/components/controls/playpause.js +21 -0
- package/dist/components/controls/playpause.js.map +1 -0
- package/dist/components/controls/prev.cjs +444 -0
- package/dist/components/controls/prev.cjs.map +1 -0
- package/dist/components/controls/prev.js +21 -0
- package/dist/components/controls/prev.js.map +1 -0
- package/dist/components/controls/removeminiplayer.cjs +432 -0
- package/dist/components/controls/removeminiplayer.cjs.map +1 -0
- package/dist/components/controls/removeminiplayer.js +21 -0
- package/dist/components/controls/removeminiplayer.js.map +1 -0
- package/dist/components/controls/settings.cjs +443 -0
- package/dist/components/controls/settings.cjs.map +1 -0
- package/dist/components/controls/settings.js +21 -0
- package/dist/components/controls/settings.js.map +1 -0
- package/dist/components/controls/theater.cjs +441 -0
- package/dist/components/controls/theater.cjs.map +1 -0
- package/dist/components/controls/theater.js +21 -0
- package/dist/components/controls/theater.js.map +1 -0
- package/dist/components/controls/time.cjs +230 -0
- package/dist/components/controls/time.cjs.map +1 -0
- package/dist/components/controls/time.js +18 -0
- package/dist/components/controls/time.js.map +1 -0
- package/dist/components/controls/timeandduration.cjs +251 -0
- package/dist/components/controls/timeandduration.cjs.map +1 -0
- package/dist/components/controls/timeandduration.js +18 -0
- package/dist/components/controls/timeandduration.js.map +1 -0
- package/dist/components/controls/timeline/index.cjs +713 -0
- package/dist/components/controls/timeline/index.cjs.map +1 -0
- package/dist/components/controls/timeline/index.js +25 -0
- package/dist/components/controls/timeline/index.js.map +1 -0
- package/dist/components/controls/timeline/types.cjs +19 -0
- package/dist/components/controls/timeline/types.cjs.map +1 -0
- package/dist/components/controls/timeline/types.js +1 -0
- package/dist/components/controls/timeline/types.js.map +1 -0
- package/dist/components/controls/volume/index.cjs +767 -0
- package/dist/components/controls/volume/index.cjs.map +1 -0
- package/dist/components/controls/volume/index.js +25 -0
- package/dist/components/controls/volume/index.js.map +1 -0
- package/dist/components/controls/volume/slider.cjs +460 -0
- package/dist/components/controls/volume/slider.cjs.map +1 -0
- package/dist/components/controls/volume/slider.js +21 -0
- package/dist/components/controls/volume/slider.js.map +1 -0
- package/dist/components/holders/airplayplaceholder.cjs +446 -0
- package/dist/components/holders/airplayplaceholder.cjs.map +1 -0
- package/dist/components/holders/airplayplaceholder.js +21 -0
- package/dist/components/holders/airplayplaceholder.js.map +1 -0
- package/dist/components/holders/castplaceholder.cjs +446 -0
- package/dist/components/holders/castplaceholder.cjs.map +1 -0
- package/dist/components/holders/castplaceholder.js +21 -0
- package/dist/components/holders/castplaceholder.js.map +1 -0
- package/dist/components/holders/pipplaceholder.cjs +446 -0
- package/dist/components/holders/pipplaceholder.cjs.map +1 -0
- package/dist/components/holders/pipplaceholder.js +30 -0
- package/dist/components/holders/pipplaceholder.js.map +1 -0
- package/dist/components/icons/add.cjs +27 -0
- package/dist/components/icons/add.cjs.map +1 -0
- package/dist/components/icons/add.js +8 -0
- package/dist/components/icons/add.js.map +1 -0
- package/dist/components/icons/airplay.cjs +30 -0
- package/dist/components/icons/airplay.cjs.map +1 -0
- package/dist/components/icons/airplay.js +8 -0
- package/dist/components/icons/airplay.js.map +1 -0
- package/dist/components/icons/airplayplaceholder.cjs +39 -0
- package/dist/components/icons/airplayplaceholder.cjs.map +1 -0
- package/dist/components/icons/airplayplaceholder.js +8 -0
- package/dist/components/icons/airplayplaceholder.js.map +1 -0
- package/dist/components/icons/ambience.cjs +27 -0
- package/dist/components/icons/ambience.cjs.map +1 -0
- package/dist/components/icons/ambience.js +8 -0
- package/dist/components/icons/ambience.js.map +1 -0
- package/dist/components/icons/audiotrack.cjs +27 -0
- package/dist/components/icons/audiotrack.cjs.map +1 -0
- package/dist/components/icons/audiotrack.js +8 -0
- package/dist/components/icons/audiotrack.js.map +1 -0
- package/dist/components/icons/autoplay.cjs +27 -0
- package/dist/components/icons/autoplay.cjs.map +1 -0
- package/dist/components/icons/autoplay.js +8 -0
- package/dist/components/icons/autoplay.js.map +1 -0
- package/dist/components/icons/backward10.cjs +29 -0
- package/dist/components/icons/backward10.cjs.map +1 -0
- package/dist/components/icons/backward10.js +8 -0
- package/dist/components/icons/backward10.js.map +1 -0
- package/dist/components/icons/brightnessdark.cjs +29 -0
- package/dist/components/icons/brightnessdark.cjs.map +1 -0
- package/dist/components/icons/brightnessdark.js +8 -0
- package/dist/components/icons/brightnessdark.js.map +1 -0
- package/dist/components/icons/brightnesshigh.cjs +29 -0
- package/dist/components/icons/brightnesshigh.cjs.map +1 -0
- package/dist/components/icons/brightnesshigh.js +8 -0
- package/dist/components/icons/brightnesshigh.js.map +1 -0
- package/dist/components/icons/brightnesslow.cjs +29 -0
- package/dist/components/icons/brightnesslow.cjs.map +1 -0
- package/dist/components/icons/brightnesslow.js +8 -0
- package/dist/components/icons/brightnesslow.js.map +1 -0
- package/dist/components/icons/bwd.cjs +31 -0
- package/dist/components/icons/bwd.cjs.map +1 -0
- package/dist/components/icons/bwd.js +8 -0
- package/dist/components/icons/bwd.js.map +1 -0
- package/dist/components/icons/captions.cjs +29 -0
- package/dist/components/icons/captions.cjs.map +1 -0
- package/dist/components/icons/captions.js +8 -0
- package/dist/components/icons/captions.js.map +1 -0
- package/dist/components/icons/capture.cjs +29 -0
- package/dist/components/icons/capture.cjs.map +1 -0
- package/dist/components/icons/capture.js +8 -0
- package/dist/components/icons/capture.js.map +1 -0
- package/dist/components/icons/cast.cjs +29 -0
- package/dist/components/icons/cast.cjs.map +1 -0
- package/dist/components/icons/cast.js +8 -0
- package/dist/components/icons/cast.js.map +1 -0
- package/dist/components/icons/castplaceholder.cjs +42 -0
- package/dist/components/icons/castplaceholder.cjs.map +1 -0
- package/dist/components/icons/castplaceholder.js +8 -0
- package/dist/components/icons/castplaceholder.js.map +1 -0
- package/dist/components/icons/chapters.cjs +27 -0
- package/dist/components/icons/chapters.cjs.map +1 -0
- package/dist/components/icons/chapters.js +8 -0
- package/dist/components/icons/chapters.js.map +1 -0
- package/dist/components/icons/configure.cjs +27 -0
- package/dist/components/icons/configure.cjs.map +1 -0
- package/dist/components/icons/configure.js +8 -0
- package/dist/components/icons/configure.js.map +1 -0
- package/dist/components/icons/deleteicon.cjs +27 -0
- package/dist/components/icons/deleteicon.cjs.map +1 -0
- package/dist/components/icons/deleteicon.js +8 -0
- package/dist/components/icons/deleteicon.js.map +1 -0
- package/dist/components/icons/doubletriangleleft.cjs +27 -0
- package/dist/components/icons/doubletriangleleft.cjs.map +1 -0
- package/dist/components/icons/doubletriangleleft.js +8 -0
- package/dist/components/icons/doubletriangleleft.js.map +1 -0
- package/dist/components/icons/doubletriangleright.cjs +27 -0
- package/dist/components/icons/doubletriangleright.cjs.map +1 -0
- package/dist/components/icons/doubletriangleright.js +8 -0
- package/dist/components/icons/doubletriangleright.js.map +1 -0
- package/dist/components/icons/dragindicator.cjs +27 -0
- package/dist/components/icons/dragindicator.cjs.map +1 -0
- package/dist/components/icons/dragindicator.js +8 -0
- package/dist/components/icons/dragindicator.js.map +1 -0
- package/dist/components/icons/edit.cjs +27 -0
- package/dist/components/icons/edit.cjs.map +1 -0
- package/dist/components/icons/edit.js +8 -0
- package/dist/components/icons/edit.js.map +1 -0
- package/dist/components/icons/enterfullscreen.cjs +32 -0
- package/dist/components/icons/enterfullscreen.cjs.map +1 -0
- package/dist/components/icons/enterfullscreen.js +8 -0
- package/dist/components/icons/enterfullscreen.js.map +1 -0
- package/dist/components/icons/enterpip.cjs +29 -0
- package/dist/components/icons/enterpip.cjs.map +1 -0
- package/dist/components/icons/enterpip.js +8 -0
- package/dist/components/icons/enterpip.js.map +1 -0
- package/dist/components/icons/entertheater.cjs +29 -0
- package/dist/components/icons/entertheater.cjs.map +1 -0
- package/dist/components/icons/entertheater.js +8 -0
- package/dist/components/icons/entertheater.js.map +1 -0
- package/dist/components/icons/expandminiplayer.cjs +29 -0
- package/dist/components/icons/expandminiplayer.cjs.map +1 -0
- package/dist/components/icons/expandminiplayer.js +8 -0
- package/dist/components/icons/expandminiplayer.js.map +1 -0
- package/dist/components/icons/forward10.cjs +29 -0
- package/dist/components/icons/forward10.cjs.map +1 -0
- package/dist/components/icons/forward10.js +8 -0
- package/dist/components/icons/forward10.js.map +1 -0
- package/dist/components/icons/fullscreenorientation.cjs +30 -0
- package/dist/components/icons/fullscreenorientation.cjs.map +1 -0
- package/dist/components/icons/fullscreenorientation.js +8 -0
- package/dist/components/icons/fullscreenorientation.js.map +1 -0
- package/dist/components/icons/fwd.cjs +31 -0
- package/dist/components/icons/fwd.cjs.map +1 -0
- package/dist/components/icons/fwd.js +8 -0
- package/dist/components/icons/fwd.js.map +1 -0
- package/dist/components/icons/leavefullscreen.cjs +32 -0
- package/dist/components/icons/leavefullscreen.cjs.map +1 -0
- package/dist/components/icons/leavefullscreen.js +8 -0
- package/dist/components/icons/leavefullscreen.js.map +1 -0
- package/dist/components/icons/leavepip.cjs +29 -0
- package/dist/components/icons/leavepip.cjs.map +1 -0
- package/dist/components/icons/leavepip.js +8 -0
- package/dist/components/icons/leavepip.js.map +1 -0
- package/dist/components/icons/leavetheater.cjs +29 -0
- package/dist/components/icons/leavetheater.cjs.map +1 -0
- package/dist/components/icons/leavetheater.js +8 -0
- package/dist/components/icons/leavetheater.js.map +1 -0
- package/dist/components/icons/lock.cjs +30 -0
- package/dist/components/icons/lock.cjs.map +1 -0
- package/dist/components/icons/lock.js +8 -0
- package/dist/components/icons/lock.js.map +1 -0
- package/dist/components/icons/loop.cjs +27 -0
- package/dist/components/icons/loop.cjs.map +1 -0
- package/dist/components/icons/loop.js +8 -0
- package/dist/components/icons/loop.js.map +1 -0
- package/dist/components/icons/next.cjs +30 -0
- package/dist/components/icons/next.cjs.map +1 -0
- package/dist/components/icons/next.js +8 -0
- package/dist/components/icons/next.js.map +1 -0
- package/dist/components/icons/objectfitcontain.cjs +32 -0
- package/dist/components/icons/objectfitcontain.cjs.map +1 -0
- package/dist/components/icons/objectfitcontain.js +8 -0
- package/dist/components/icons/objectfitcontain.js.map +1 -0
- package/dist/components/icons/objectfitcover.cjs +32 -0
- package/dist/components/icons/objectfitcover.cjs.map +1 -0
- package/dist/components/icons/objectfitcover.js +8 -0
- package/dist/components/icons/objectfitcover.js.map +1 -0
- package/dist/components/icons/objectfitfill.cjs +32 -0
- package/dist/components/icons/objectfitfill.cjs.map +1 -0
- package/dist/components/icons/objectfitfill.js +8 -0
- package/dist/components/icons/objectfitfill.js.map +1 -0
- package/dist/components/icons/pause.cjs +29 -0
- package/dist/components/icons/pause.cjs.map +1 -0
- package/dist/components/icons/pause.js +8 -0
- package/dist/components/icons/pause.js.map +1 -0
- package/dist/components/icons/pipplaceholder.cjs +50 -0
- package/dist/components/icons/pipplaceholder.cjs.map +1 -0
- package/dist/components/icons/pipplaceholder.js +8 -0
- package/dist/components/icons/pipplaceholder.js.map +1 -0
- package/dist/components/icons/play.cjs +29 -0
- package/dist/components/icons/play.cjs.map +1 -0
- package/dist/components/icons/play.js +8 -0
- package/dist/components/icons/play.js.map +1 -0
- package/dist/components/icons/playbackrate.cjs +27 -0
- package/dist/components/icons/playbackrate.cjs.map +1 -0
- package/dist/components/icons/playbackrate.js +8 -0
- package/dist/components/icons/playbackrate.js.map +1 -0
- package/dist/components/icons/playlist.cjs +27 -0
- package/dist/components/icons/playlist.cjs.map +1 -0
- package/dist/components/icons/playlist.js +8 -0
- package/dist/components/icons/playlist.js.map +1 -0
- package/dist/components/icons/prev.cjs +30 -0
- package/dist/components/icons/prev.cjs.map +1 -0
- package/dist/components/icons/prev.js +8 -0
- package/dist/components/icons/prev.js.map +1 -0
- package/dist/components/icons/quality.cjs +27 -0
- package/dist/components/icons/quality.cjs.map +1 -0
- package/dist/components/icons/quality.js +8 -0
- package/dist/components/icons/quality.js.map +1 -0
- package/dist/components/icons/removeminiplayer.cjs +29 -0
- package/dist/components/icons/removeminiplayer.cjs.map +1 -0
- package/dist/components/icons/removeminiplayer.js +8 -0
- package/dist/components/icons/removeminiplayer.js.map +1 -0
- package/dist/components/icons/replay.cjs +29 -0
- package/dist/components/icons/replay.cjs.map +1 -0
- package/dist/components/icons/replay.js +8 -0
- package/dist/components/icons/replay.js.map +1 -0
- package/dist/components/icons/returnback.cjs +30 -0
- package/dist/components/icons/returnback.cjs.map +1 -0
- package/dist/components/icons/returnback.js +8 -0
- package/dist/components/icons/returnback.js.map +1 -0
- package/dist/components/icons/settings.cjs +29 -0
- package/dist/components/icons/settings.cjs.map +1 -0
- package/dist/components/icons/settings.js +8 -0
- package/dist/components/icons/settings.js.map +1 -0
- package/dist/components/icons/shuffle.cjs +27 -0
- package/dist/components/icons/shuffle.cjs.map +1 -0
- package/dist/components/icons/shuffle.js +8 -0
- package/dist/components/icons/shuffle.js.map +1 -0
- package/dist/components/icons/subtitles.cjs +29 -0
- package/dist/components/icons/subtitles.cjs.map +1 -0
- package/dist/components/icons/subtitles.js +8 -0
- package/dist/components/icons/subtitles.js.map +1 -0
- package/dist/components/icons/timer.cjs +27 -0
- package/dist/components/icons/timer.cjs.map +1 -0
- package/dist/components/icons/timer.js +8 -0
- package/dist/components/icons/timer.js.map +1 -0
- package/dist/components/icons/triangleleft.cjs +29 -0
- package/dist/components/icons/triangleleft.cjs.map +1 -0
- package/dist/components/icons/triangleleft.js +8 -0
- package/dist/components/icons/triangleleft.js.map +1 -0
- package/dist/components/icons/tripletriangleleft.cjs +27 -0
- package/dist/components/icons/tripletriangleleft.cjs.map +1 -0
- package/dist/components/icons/tripletriangleleft.js +8 -0
- package/dist/components/icons/tripletriangleleft.js.map +1 -0
- package/dist/components/icons/tripletriangleright.cjs +27 -0
- package/dist/components/icons/tripletriangleright.cjs.map +1 -0
- package/dist/components/icons/tripletriangleright.js +8 -0
- package/dist/components/icons/tripletriangleright.js.map +1 -0
- package/dist/components/icons/unlock.cjs +30 -0
- package/dist/components/icons/unlock.cjs.map +1 -0
- package/dist/components/icons/unlock.js +8 -0
- package/dist/components/icons/unlock.js.map +1 -0
- package/dist/components/icons/videotrack.cjs +27 -0
- package/dist/components/icons/videotrack.cjs.map +1 -0
- package/dist/components/icons/videotrack.js +8 -0
- package/dist/components/icons/videotrack.js.map +1 -0
- package/dist/components/icons/volumehigh.cjs +29 -0
- package/dist/components/icons/volumehigh.cjs.map +1 -0
- package/dist/components/icons/volumehigh.js +8 -0
- package/dist/components/icons/volumehigh.js.map +1 -0
- package/dist/components/icons/volumelow.cjs +29 -0
- package/dist/components/icons/volumelow.cjs.map +1 -0
- package/dist/components/icons/volumelow.js +8 -0
- package/dist/components/icons/volumelow.js.map +1 -0
- package/dist/components/icons/volumemuted.cjs +29 -0
- package/dist/components/icons/volumemuted.cjs.map +1 -0
- package/dist/components/icons/volumemuted.js +8 -0
- package/dist/components/icons/volumemuted.js.map +1 -0
- package/dist/components/icons/z-register.cjs +633 -0
- package/dist/components/icons/z-register.cjs.map +1 -0
- package/dist/components/icons/z-register.js +66 -0
- package/dist/components/icons/z-register.js.map +1 -0
- package/dist/components/notifiers/airplay.cjs +450 -0
- package/dist/components/notifiers/airplay.cjs.map +1 -0
- package/dist/components/notifiers/airplay.js +22 -0
- package/dist/components/notifiers/airplay.js.map +1 -0
- package/dist/components/notifiers/base.cjs +191 -0
- package/dist/components/notifiers/base.cjs.map +1 -0
- package/dist/components/notifiers/base.js +16 -0
- package/dist/components/notifiers/base.js.map +1 -0
- package/dist/components/notifiers/brightness.cjs +469 -0
- package/dist/components/notifiers/brightness.cjs.map +1 -0
- package/dist/components/notifiers/brightness.js +22 -0
- package/dist/components/notifiers/brightness.js.map +1 -0
- package/dist/components/notifiers/cancelscrub.cjs +216 -0
- package/dist/components/notifiers/cancelscrub.cjs.map +1 -0
- package/dist/components/notifiers/cancelscrub.js +19 -0
- package/dist/components/notifiers/cancelscrub.js.map +1 -0
- package/dist/components/notifiers/captions.cjs +450 -0
- package/dist/components/notifiers/captions.cjs.map +1 -0
- package/dist/components/notifiers/captions.js +22 -0
- package/dist/components/notifiers/captions.js.map +1 -0
- package/dist/components/notifiers/capture.cjs +450 -0
- package/dist/components/notifiers/capture.cjs.map +1 -0
- package/dist/components/notifiers/capture.js +22 -0
- package/dist/components/notifiers/capture.js.map +1 -0
- package/dist/components/notifiers/cast.cjs +450 -0
- package/dist/components/notifiers/cast.cjs.map +1 -0
- package/dist/components/notifiers/cast.js +22 -0
- package/dist/components/notifiers/cast.js.map +1 -0
- package/dist/components/notifiers/chapter.cjs +225 -0
- package/dist/components/notifiers/chapter.cjs.map +1 -0
- package/dist/components/notifiers/chapter.js +19 -0
- package/dist/components/notifiers/chapter.js.map +1 -0
- package/dist/components/notifiers/fastplay.cjs +467 -0
- package/dist/components/notifiers/fastplay.cjs.map +1 -0
- package/dist/components/notifiers/fastplay.js +22 -0
- package/dist/components/notifiers/fastplay.js.map +1 -0
- package/dist/components/notifiers/fwdbwd.cjs +457 -0
- package/dist/components/notifiers/fwdbwd.cjs.map +1 -0
- package/dist/components/notifiers/fwdbwd.js +22 -0
- package/dist/components/notifiers/fwdbwd.js.map +1 -0
- package/dist/components/notifiers/objectfit.cjs +468 -0
- package/dist/components/notifiers/objectfit.cjs.map +1 -0
- package/dist/components/notifiers/objectfit.js +22 -0
- package/dist/components/notifiers/objectfit.js.map +1 -0
- package/dist/components/notifiers/playbackrate.cjs +466 -0
- package/dist/components/notifiers/playbackrate.cjs.map +1 -0
- package/dist/components/notifiers/playbackrate.js +22 -0
- package/dist/components/notifiers/playbackrate.js.map +1 -0
- package/dist/components/notifiers/playpause.cjs +457 -0
- package/dist/components/notifiers/playpause.cjs.map +1 -0
- package/dist/components/notifiers/playpause.js +22 -0
- package/dist/components/notifiers/playpause.js.map +1 -0
- package/dist/components/notifiers/prevnext.cjs +457 -0
- package/dist/components/notifiers/prevnext.cjs.map +1 -0
- package/dist/components/notifiers/prevnext.js +22 -0
- package/dist/components/notifiers/prevnext.js.map +1 -0
- package/dist/components/notifiers/scrub.cjs +449 -0
- package/dist/components/notifiers/scrub.cjs.map +1 -0
- package/dist/components/notifiers/scrub.js +22 -0
- package/dist/components/notifiers/scrub.js.map +1 -0
- package/dist/components/notifiers/timer.cjs +451 -0
- package/dist/components/notifiers/timer.cjs.map +1 -0
- package/dist/components/notifiers/timer.js +22 -0
- package/dist/components/notifiers/timer.js.map +1 -0
- package/dist/components/notifiers/touchbrightness.cjs +474 -0
- package/dist/components/notifiers/touchbrightness.cjs.map +1 -0
- package/dist/components/notifiers/touchbrightness.js +22 -0
- package/dist/components/notifiers/touchbrightness.js.map +1 -0
- package/dist/components/notifiers/touchtimeline.cjs +218 -0
- package/dist/components/notifiers/touchtimeline.cjs.map +1 -0
- package/dist/components/notifiers/touchtimeline.js +21 -0
- package/dist/components/notifiers/touchtimeline.js.map +1 -0
- package/dist/components/notifiers/touchvolume.cjs +474 -0
- package/dist/components/notifiers/touchvolume.cjs.map +1 -0
- package/dist/components/notifiers/touchvolume.js +22 -0
- package/dist/components/notifiers/touchvolume.js.map +1 -0
- package/dist/components/notifiers/volume.cjs +469 -0
- package/dist/components/notifiers/volume.cjs.map +1 -0
- package/dist/components/notifiers/volume.js +22 -0
- package/dist/components/notifiers/volume.js.map +1 -0
- package/dist/components/notifiers/z-register.cjs +778 -0
- package/dist/components/notifiers/z-register.cjs.map +1 -0
- package/dist/components/notifiers/z-register.js +36 -0
- package/dist/components/notifiers/z-register.js.map +1 -0
- package/dist/components/rangeinput/build.cjs +52 -0
- package/dist/components/rangeinput/build.cjs.map +1 -0
- package/dist/components/rangeinput/build.js +8 -0
- package/dist/components/rangeinput/build.js.map +1 -0
- package/dist/components/rangeinput/index.cjs +433 -0
- package/dist/components/rangeinput/index.cjs.map +1 -0
- package/dist/components/rangeinput/index.js +20 -0
- package/dist/components/rangeinput/index.js.map +1 -0
- package/dist/components/rangeinput/types.cjs +19 -0
- package/dist/components/rangeinput/types.cjs.map +1 -0
- package/dist/components/rangeinput/types.js +1 -0
- package/dist/components/rangeinput/types.js.map +1 -0
- package/dist/components/screenlock.cjs +438 -0
- package/dist/components/screenlock.cjs.map +1 -0
- package/dist/components/screenlock.js +21 -0
- package/dist/components/screenlock.js.map +1 -0
- package/dist/components/z-register.cjs +2345 -0
- package/dist/components/z-register.cjs.map +1 -0
- package/dist/components/z-register.js +64 -0
- package/dist/components/z-register.js.map +1 -0
- package/dist/consts/actions.cjs +79 -0
- package/dist/consts/actions.cjs.map +1 -0
- package/dist/consts/actions.js +8 -0
- package/dist/consts/actions.js.map +1 -0
- package/dist/consts/config.cjs +105 -0
- package/dist/consts/config.cjs.map +1 -0
- package/dist/consts/config.js +9 -0
- package/dist/consts/config.js.map +1 -0
- package/dist/consts/generics.cjs +29 -0
- package/dist/consts/generics.cjs.map +1 -0
- package/dist/consts/generics.js +10 -0
- package/dist/consts/generics.js.map +1 -0
- package/dist/consts/media.cjs +201 -0
- package/dist/consts/media.cjs.map +1 -0
- package/dist/consts/media.js +16 -0
- package/dist/consts/media.js.map +1 -0
- package/dist/core/controllable.cjs +91 -0
- package/dist/core/controllable.cjs.map +1 -0
- package/dist/core/controllable.js +13 -0
- package/dist/core/controllable.js.map +1 -0
- package/dist/core/controller.cjs +1664 -0
- package/dist/core/controller.cjs.map +1 -0
- package/dist/core/controller.js +27 -0
- package/dist/core/controller.js.map +1 -0
- package/dist/core/registries.cjs +268 -0
- package/dist/core/registries.cjs.map +1 -0
- package/dist/core/registries.js +24 -0
- package/dist/core/registries.js.map +1 -0
- package/dist/index.cjs +1934 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.css +3148 -0
- package/dist/index.css.map +1 -0
- package/dist/index.js +75 -0
- package/dist/index.js.map +1 -0
- package/dist/init.cjs +1890 -0
- package/dist/init.cjs.map +1 -0
- package/dist/init.js +24 -0
- package/dist/init.js.map +1 -0
- package/dist/plugs/base/index.cjs +407 -0
- package/dist/plugs/base/index.cjs.map +1 -0
- package/dist/plugs/base/index.js +19 -0
- package/dist/plugs/base/index.js.map +1 -0
- package/dist/plugs/base/slider.cjs +458 -0
- package/dist/plugs/base/slider.cjs.map +1 -0
- package/dist/plugs/base/slider.js +18 -0
- package/dist/plugs/base/slider.js.map +1 -0
- package/dist/plugs/base/types.cjs +19 -0
- package/dist/plugs/base/types.cjs.map +1 -0
- package/dist/plugs/base/types.js +1 -0
- package/dist/plugs/base/types.js.map +1 -0
- package/dist/plugs/main/disabled/build.cjs +27 -0
- package/dist/plugs/main/disabled/build.cjs.map +1 -0
- package/dist/plugs/main/disabled/build.js +8 -0
- package/dist/plugs/main/disabled/build.js.map +1 -0
- package/dist/plugs/main/disabled/index.cjs +421 -0
- package/dist/plugs/main/disabled/index.cjs.map +1 -0
- package/dist/plugs/main/disabled/index.js +22 -0
- package/dist/plugs/main/disabled/index.js.map +1 -0
- package/dist/plugs/main/disabled/types.cjs +19 -0
- package/dist/plugs/main/disabled/types.cjs.map +1 -0
- package/dist/plugs/main/disabled/types.js +1 -0
- package/dist/plugs/main/disabled/types.js.map +1 -0
- package/dist/plugs/main/lightState/build.cjs +34 -0
- package/dist/plugs/main/lightState/build.cjs.map +1 -0
- package/dist/plugs/main/lightState/build.js +8 -0
- package/dist/plugs/main/lightState/build.js.map +1 -0
- package/dist/plugs/main/lightState/index.cjs +458 -0
- package/dist/plugs/main/lightState/index.cjs.map +1 -0
- package/dist/plugs/main/lightState/index.js +22 -0
- package/dist/plugs/main/lightState/index.js.map +1 -0
- package/dist/plugs/main/lightState/types.cjs +19 -0
- package/dist/plugs/main/lightState/types.cjs.map +1 -0
- package/dist/plugs/main/lightState/types.js +1 -0
- package/dist/plugs/main/lightState/types.js.map +1 -0
- package/dist/plugs/main/playlist/build.cjs +59 -0
- package/dist/plugs/main/playlist/build.cjs.map +1 -0
- package/dist/plugs/main/playlist/build.js +10 -0
- package/dist/plugs/main/playlist/build.js.map +1 -0
- package/dist/plugs/main/playlist/index.cjs +511 -0
- package/dist/plugs/main/playlist/index.cjs.map +1 -0
- package/dist/plugs/main/playlist/index.js +25 -0
- package/dist/plugs/main/playlist/index.js.map +1 -0
- package/dist/plugs/main/playlist/types.cjs +19 -0
- package/dist/plugs/main/playlist/types.cjs.map +1 -0
- package/dist/plugs/main/playlist/types.js +1 -0
- package/dist/plugs/main/playlist/types.js.map +1 -0
- package/dist/plugs/main/skeleton/build.cjs +29 -0
- package/dist/plugs/main/skeleton/build.cjs.map +1 -0
- package/dist/plugs/main/skeleton/build.js +8 -0
- package/dist/plugs/main/skeleton/build.js.map +1 -0
- package/dist/plugs/main/skeleton/index.cjs +539 -0
- package/dist/plugs/main/skeleton/index.cjs.map +1 -0
- package/dist/plugs/main/skeleton/index.js +25 -0
- package/dist/plugs/main/skeleton/index.js.map +1 -0
- package/dist/plugs/main/skeleton/types.cjs +19 -0
- package/dist/plugs/main/skeleton/types.cjs.map +1 -0
- package/dist/plugs/main/skeleton/types.js +1 -0
- package/dist/plugs/main/skeleton/types.js.map +1 -0
- package/dist/plugs/menus/main/playlist.cjs +98 -0
- package/dist/plugs/menus/main/playlist.cjs.map +1 -0
- package/dist/plugs/menus/main/playlist.js +9 -0
- package/dist/plugs/menus/main/playlist.js.map +1 -0
- package/dist/plugs/menus/main/skeleton.cjs +34 -0
- package/dist/plugs/menus/main/skeleton.cjs.map +1 -0
- package/dist/plugs/menus/main/skeleton.js +8 -0
- package/dist/plugs/menus/main/skeleton.js.map +1 -0
- package/dist/plugs/menus/settings/actions.cjs +492 -0
- package/dist/plugs/menus/settings/actions.cjs.map +1 -0
- package/dist/plugs/menus/settings/actions.js +15 -0
- package/dist/plugs/menus/settings/actions.js.map +1 -0
- package/dist/plugs/menus/settings/ambience.cjs +35 -0
- package/dist/plugs/menus/settings/ambience.cjs.map +1 -0
- package/dist/plugs/menus/settings/ambience.js +8 -0
- package/dist/plugs/menus/settings/ambience.js.map +1 -0
- package/dist/plugs/menus/settings/auto.cjs +153 -0
- package/dist/plugs/menus/settings/auto.cjs.map +1 -0
- package/dist/plugs/menus/settings/auto.js +12 -0
- package/dist/plugs/menus/settings/auto.js.map +1 -0
- package/dist/plugs/menus/settings/brightness.cjs +45 -0
- package/dist/plugs/menus/settings/brightness.cjs.map +1 -0
- package/dist/plugs/menus/settings/brightness.js +8 -0
- package/dist/plugs/menus/settings/brightness.js.map +1 -0
- package/dist/plugs/menus/settings/captions.cjs +437 -0
- package/dist/plugs/menus/settings/captions.cjs.map +1 -0
- package/dist/plugs/menus/settings/captions.js +13 -0
- package/dist/plugs/menus/settings/captions.js.map +1 -0
- package/dist/plugs/menus/settings/controlPanel.cjs +442 -0
- package/dist/plugs/menus/settings/controlPanel.cjs.map +1 -0
- package/dist/plugs/menus/settings/controlPanel.js +14 -0
- package/dist/plugs/menus/settings/controlPanel.js.map +1 -0
- package/dist/plugs/menus/settings/fastPlay.cjs +166 -0
- package/dist/plugs/menus/settings/fastPlay.cjs.map +1 -0
- package/dist/plugs/menus/settings/fastPlay.js +12 -0
- package/dist/plugs/menus/settings/fastPlay.js.map +1 -0
- package/dist/plugs/menus/settings/frame.cjs +90 -0
- package/dist/plugs/menus/settings/frame.cjs.map +1 -0
- package/dist/plugs/menus/settings/frame.js +12 -0
- package/dist/plugs/menus/settings/frame.js.map +1 -0
- package/dist/plugs/menus/settings/gesture.cjs +255 -0
- package/dist/plugs/menus/settings/gesture.cjs.map +1 -0
- package/dist/plugs/menus/settings/gesture.js +17 -0
- package/dist/plugs/menus/settings/gesture.js.map +1 -0
- package/dist/plugs/menus/settings/keys.cjs +173 -0
- package/dist/plugs/menus/settings/keys.cjs.map +1 -0
- package/dist/plugs/menus/settings/keys.js +12 -0
- package/dist/plugs/menus/settings/keys.js.map +1 -0
- package/dist/plugs/menus/settings/locked.cjs +53 -0
- package/dist/plugs/menus/settings/locked.cjs.map +1 -0
- package/dist/plugs/menus/settings/locked.js +8 -0
- package/dist/plugs/menus/settings/locked.js.map +1 -0
- package/dist/plugs/menus/settings/metadata.cjs +202 -0
- package/dist/plugs/menus/settings/metadata.cjs.map +1 -0
- package/dist/plugs/menus/settings/metadata.js +13 -0
- package/dist/plugs/menus/settings/metadata.js.map +1 -0
- package/dist/plugs/menus/settings/modes.cjs +238 -0
- package/dist/plugs/menus/settings/modes.cjs.map +1 -0
- package/dist/plugs/menus/settings/modes.js +12 -0
- package/dist/plugs/menus/settings/modes.js.map +1 -0
- package/dist/plugs/menus/settings/objectFit.cjs +45 -0
- package/dist/plugs/menus/settings/objectFit.cjs.map +1 -0
- package/dist/plugs/menus/settings/objectFit.js +8 -0
- package/dist/plugs/menus/settings/objectFit.js.map +1 -0
- package/dist/plugs/menus/settings/overlay.cjs +112 -0
- package/dist/plugs/menus/settings/overlay.cjs.map +1 -0
- package/dist/plugs/menus/settings/overlay.js +12 -0
- package/dist/plugs/menus/settings/overlay.js.map +1 -0
- package/dist/plugs/menus/settings/persist.cjs +73 -0
- package/dist/plugs/menus/settings/persist.cjs.map +1 -0
- package/dist/plugs/menus/settings/persist.js +8 -0
- package/dist/plugs/menus/settings/persist.js.map +1 -0
- package/dist/plugs/menus/settings/playbackRate.cjs +119 -0
- package/dist/plugs/menus/settings/playbackRate.cjs.map +1 -0
- package/dist/plugs/menus/settings/playbackRate.js +12 -0
- package/dist/plugs/menus/settings/playbackRate.js.map +1 -0
- package/dist/plugs/menus/settings/poster.cjs +53 -0
- package/dist/plugs/menus/settings/poster.cjs.map +1 -0
- package/dist/plugs/menus/settings/poster.js +8 -0
- package/dist/plugs/menus/settings/poster.js.map +1 -0
- package/dist/plugs/menus/settings/settingsView.cjs +79 -0
- package/dist/plugs/menus/settings/settingsView.cjs.map +1 -0
- package/dist/plugs/menus/settings/settingsView.js +8 -0
- package/dist/plugs/menus/settings/settingsView.js.map +1 -0
- package/dist/plugs/menus/settings/sleepTimer.cjs +89 -0
- package/dist/plugs/menus/settings/sleepTimer.cjs.map +1 -0
- package/dist/plugs/menus/settings/sleepTimer.js +10 -0
- package/dist/plugs/menus/settings/sleepTimer.js.map +1 -0
- package/dist/plugs/menus/settings/time.cjs +48 -0
- package/dist/plugs/menus/settings/time.cjs.map +1 -0
- package/dist/plugs/menus/settings/time.js +8 -0
- package/dist/plugs/menus/settings/time.js.map +1 -0
- package/dist/plugs/menus/settings/timeTravel.cjs +133 -0
- package/dist/plugs/menus/settings/timeTravel.cjs.map +1 -0
- package/dist/plugs/menus/settings/timeTravel.js +11 -0
- package/dist/plugs/menus/settings/timeTravel.js.map +1 -0
- package/dist/plugs/menus/settings/toasts.cjs +232 -0
- package/dist/plugs/menus/settings/toasts.cjs.map +1 -0
- package/dist/plugs/menus/settings/toasts.js +18 -0
- package/dist/plugs/menus/settings/toasts.js.map +1 -0
- package/dist/plugs/menus/settings/voice.cjs +216 -0
- package/dist/plugs/menus/settings/voice.cjs.map +1 -0
- package/dist/plugs/menus/settings/voice.js +12 -0
- package/dist/plugs/menus/settings/voice.js.map +1 -0
- package/dist/plugs/menus/settings/volume.cjs +45 -0
- package/dist/plugs/menus/settings/volume.cjs.map +1 -0
- package/dist/plugs/menus/settings/volume.js +8 -0
- package/dist/plugs/menus/settings/volume.js.map +1 -0
- package/dist/plugs/menus/z-register.cjs +3212 -0
- package/dist/plugs/menus/z-register.cjs.map +1 -0
- package/dist/plugs/menus/z-register.js +48 -0
- package/dist/plugs/menus/z-register.js.map +1 -0
- package/dist/plugs/settings/airplay/build.cjs +27 -0
- package/dist/plugs/settings/airplay/build.cjs.map +1 -0
- package/dist/plugs/settings/airplay/build.js +8 -0
- package/dist/plugs/settings/airplay/build.js.map +1 -0
- package/dist/plugs/settings/airplay/index.cjs +416 -0
- package/dist/plugs/settings/airplay/index.cjs.map +1 -0
- package/dist/plugs/settings/airplay/index.js +19 -0
- package/dist/plugs/settings/airplay/index.js.map +1 -0
- package/dist/plugs/settings/ambience/build.cjs +33 -0
- package/dist/plugs/settings/ambience/build.cjs.map +1 -0
- package/dist/plugs/settings/ambience/build.js +8 -0
- package/dist/plugs/settings/ambience/build.js.map +1 -0
- package/dist/plugs/settings/ambience/index.cjs +464 -0
- package/dist/plugs/settings/ambience/index.cjs.map +1 -0
- package/dist/plugs/settings/ambience/index.js +24 -0
- package/dist/plugs/settings/ambience/index.js.map +1 -0
- package/dist/plugs/settings/ambience/types.cjs +19 -0
- package/dist/plugs/settings/ambience/types.cjs.map +1 -0
- package/dist/plugs/settings/ambience/types.js +1 -0
- package/dist/plugs/settings/ambience/types.js.map +1 -0
- package/dist/plugs/settings/auto/build.cjs +76 -0
- package/dist/plugs/settings/auto/build.cjs.map +1 -0
- package/dist/plugs/settings/auto/build.js +13 -0
- package/dist/plugs/settings/auto/build.js.map +1 -0
- package/dist/plugs/settings/auto/index.cjs +533 -0
- package/dist/plugs/settings/auto/index.cjs.map +1 -0
- package/dist/plugs/settings/auto/index.js +30 -0
- package/dist/plugs/settings/auto/index.js.map +1 -0
- package/dist/plugs/settings/auto/types.cjs +19 -0
- package/dist/plugs/settings/auto/types.cjs.map +1 -0
- package/dist/plugs/settings/auto/types.js +1 -0
- package/dist/plugs/settings/auto/types.js.map +1 -0
- package/dist/plugs/settings/brightness/build.cjs +31 -0
- package/dist/plugs/settings/brightness/build.cjs.map +1 -0
- package/dist/plugs/settings/brightness/build.js +8 -0
- package/dist/plugs/settings/brightness/build.js.map +1 -0
- package/dist/plugs/settings/brightness/index.cjs +522 -0
- package/dist/plugs/settings/brightness/index.cjs.map +1 -0
- package/dist/plugs/settings/brightness/index.js +24 -0
- package/dist/plugs/settings/brightness/index.js.map +1 -0
- package/dist/plugs/settings/brightness/types.cjs +19 -0
- package/dist/plugs/settings/brightness/types.cjs.map +1 -0
- package/dist/plugs/settings/brightness/types.js +1 -0
- package/dist/plugs/settings/brightness/types.js.map +1 -0
- package/dist/plugs/settings/captions/build.cjs +184 -0
- package/dist/plugs/settings/captions/build.cjs.map +1 -0
- package/dist/plugs/settings/captions/build.js +12 -0
- package/dist/plugs/settings/captions/build.js.map +1 -0
- package/dist/plugs/settings/captions/index.cjs +793 -0
- package/dist/plugs/settings/captions/index.cjs.map +1 -0
- package/dist/plugs/settings/captions/index.js +32 -0
- package/dist/plugs/settings/captions/index.js.map +1 -0
- package/dist/plugs/settings/captions/types.cjs +19 -0
- package/dist/plugs/settings/captions/types.cjs.map +1 -0
- package/dist/plugs/settings/captions/types.js +1 -0
- package/dist/plugs/settings/captions/types.js.map +1 -0
- package/dist/plugs/settings/cast/build.cjs +27 -0
- package/dist/plugs/settings/cast/build.cjs.map +1 -0
- package/dist/plugs/settings/cast/build.js +8 -0
- package/dist/plugs/settings/cast/build.js.map +1 -0
- package/dist/plugs/settings/cast/index.cjs +644 -0
- package/dist/plugs/settings/cast/index.cjs.map +1 -0
- package/dist/plugs/settings/cast/index.js +24 -0
- package/dist/plugs/settings/cast/index.js.map +1 -0
- package/dist/plugs/settings/cast/types.cjs +19 -0
- package/dist/plugs/settings/cast/types.cjs.map +1 -0
- package/dist/plugs/settings/cast/types.js +1 -0
- package/dist/plugs/settings/cast/types.js.map +1 -0
- package/dist/plugs/settings/controlPanel/build.cjs +144 -0
- package/dist/plugs/settings/controlPanel/build.cjs.map +1 -0
- package/dist/plugs/settings/controlPanel/build.js +17 -0
- package/dist/plugs/settings/controlPanel/build.js.map +1 -0
- package/dist/plugs/settings/controlPanel/draggable.cjs +1021 -0
- package/dist/plugs/settings/controlPanel/draggable.cjs.map +1 -0
- package/dist/plugs/settings/controlPanel/draggable.js +24 -0
- package/dist/plugs/settings/controlPanel/draggable.js.map +1 -0
- package/dist/plugs/settings/controlPanel/index.cjs +1031 -0
- package/dist/plugs/settings/controlPanel/index.cjs.map +1 -0
- package/dist/plugs/settings/controlPanel/index.js +37 -0
- package/dist/plugs/settings/controlPanel/index.js.map +1 -0
- package/dist/plugs/settings/controlPanel/types.cjs +19 -0
- package/dist/plugs/settings/controlPanel/types.cjs.map +1 -0
- package/dist/plugs/settings/controlPanel/types.js +1 -0
- package/dist/plugs/settings/controlPanel/types.js.map +1 -0
- package/dist/plugs/settings/css/build.cjs +29 -0
- package/dist/plugs/settings/css/build.cjs.map +1 -0
- package/dist/plugs/settings/css/build.js +8 -0
- package/dist/plugs/settings/css/build.js.map +1 -0
- package/dist/plugs/settings/css/index.cjs +444 -0
- package/dist/plugs/settings/css/index.cjs.map +1 -0
- package/dist/plugs/settings/css/index.js +22 -0
- package/dist/plugs/settings/css/index.js.map +1 -0
- package/dist/plugs/settings/css/types.cjs +19 -0
- package/dist/plugs/settings/css/types.cjs.map +1 -0
- package/dist/plugs/settings/css/types.js +1 -0
- package/dist/plugs/settings/css/types.js.map +1 -0
- package/dist/plugs/settings/errors/build.cjs +45 -0
- package/dist/plugs/settings/errors/build.cjs.map +1 -0
- package/dist/plugs/settings/errors/build.js +10 -0
- package/dist/plugs/settings/errors/build.js.map +1 -0
- package/dist/plugs/settings/errors/index.cjs +417 -0
- package/dist/plugs/settings/errors/index.cjs.map +1 -0
- package/dist/plugs/settings/errors/index.js +24 -0
- package/dist/plugs/settings/errors/index.js.map +1 -0
- package/dist/plugs/settings/errors/types.cjs +19 -0
- package/dist/plugs/settings/errors/types.cjs.map +1 -0
- package/dist/plugs/settings/errors/types.js +1 -0
- package/dist/plugs/settings/errors/types.js.map +1 -0
- package/dist/plugs/settings/fastPlay/build.cjs +46 -0
- package/dist/plugs/settings/fastPlay/build.cjs.map +1 -0
- package/dist/plugs/settings/fastPlay/build.js +8 -0
- package/dist/plugs/settings/fastPlay/build.js.map +1 -0
- package/dist/plugs/settings/fastPlay/index.cjs +510 -0
- package/dist/plugs/settings/fastPlay/index.cjs.map +1 -0
- package/dist/plugs/settings/fastPlay/index.js +23 -0
- package/dist/plugs/settings/fastPlay/index.js.map +1 -0
- package/dist/plugs/settings/fastPlay/types.cjs +19 -0
- package/dist/plugs/settings/fastPlay/types.cjs.map +1 -0
- package/dist/plugs/settings/fastPlay/types.js +1 -0
- package/dist/plugs/settings/fastPlay/types.js.map +1 -0
- package/dist/plugs/settings/frame/build.cjs +31 -0
- package/dist/plugs/settings/frame/build.cjs.map +1 -0
- package/dist/plugs/settings/frame/build.js +8 -0
- package/dist/plugs/settings/frame/build.js.map +1 -0
- package/dist/plugs/settings/frame/index.cjs +542 -0
- package/dist/plugs/settings/frame/index.cjs.map +1 -0
- package/dist/plugs/settings/frame/index.js +29 -0
- package/dist/plugs/settings/frame/index.js.map +1 -0
- package/dist/plugs/settings/frame/types.cjs +19 -0
- package/dist/plugs/settings/frame/types.cjs.map +1 -0
- package/dist/plugs/settings/frame/types.js +1 -0
- package/dist/plugs/settings/frame/types.js.map +1 -0
- package/dist/plugs/settings/gesture/base.cjs +187 -0
- package/dist/plugs/settings/gesture/base.cjs.map +1 -0
- package/dist/plugs/settings/gesture/base.js +24 -0
- package/dist/plugs/settings/gesture/base.js.map +1 -0
- package/dist/plugs/settings/gesture/build.cjs +116 -0
- package/dist/plugs/settings/gesture/build.cjs.map +1 -0
- package/dist/plugs/settings/gesture/build.js +13 -0
- package/dist/plugs/settings/gesture/build.js.map +1 -0
- package/dist/plugs/settings/gesture/index.cjs +877 -0
- package/dist/plugs/settings/gesture/index.cjs.map +1 -0
- package/dist/plugs/settings/gesture/index.js +38 -0
- package/dist/plugs/settings/gesture/index.js.map +1 -0
- package/dist/plugs/settings/gesture/touch.cjs +784 -0
- package/dist/plugs/settings/gesture/touch.cjs.map +1 -0
- package/dist/plugs/settings/gesture/touch.js +27 -0
- package/dist/plugs/settings/gesture/touch.js.map +1 -0
- package/dist/plugs/settings/gesture/types.cjs +19 -0
- package/dist/plugs/settings/gesture/types.cjs.map +1 -0
- package/dist/plugs/settings/gesture/types.js +1 -0
- package/dist/plugs/settings/gesture/types.js.map +1 -0
- package/dist/plugs/settings/gesture/wheel.cjs +757 -0
- package/dist/plugs/settings/gesture/wheel.cjs.map +1 -0
- package/dist/plugs/settings/gesture/wheel.js +27 -0
- package/dist/plugs/settings/gesture/wheel.js.map +1 -0
- package/dist/plugs/settings/keys/build.cjs +117 -0
- package/dist/plugs/settings/keys/build.cjs.map +1 -0
- package/dist/plugs/settings/keys/build.js +13 -0
- package/dist/plugs/settings/keys/build.js.map +1 -0
- package/dist/plugs/settings/keys/index.cjs +612 -0
- package/dist/plugs/settings/keys/index.cjs.map +1 -0
- package/dist/plugs/settings/keys/index.js +34 -0
- package/dist/plugs/settings/keys/index.js.map +1 -0
- package/dist/plugs/settings/keys/types.cjs +19 -0
- package/dist/plugs/settings/keys/types.cjs.map +1 -0
- package/dist/plugs/settings/keys/types.js +1 -0
- package/dist/plugs/settings/keys/types.js.map +1 -0
- package/dist/plugs/settings/locked/build.cjs +92 -0
- package/dist/plugs/settings/locked/build.cjs.map +1 -0
- package/dist/plugs/settings/locked/build.js +9 -0
- package/dist/plugs/settings/locked/build.js.map +1 -0
- package/dist/plugs/settings/locked/index.cjs +532 -0
- package/dist/plugs/settings/locked/index.cjs.map +1 -0
- package/dist/plugs/settings/locked/index.js +25 -0
- package/dist/plugs/settings/locked/index.js.map +1 -0
- package/dist/plugs/settings/locked/types.cjs +19 -0
- package/dist/plugs/settings/locked/types.cjs.map +1 -0
- package/dist/plugs/settings/locked/types.js +1 -0
- package/dist/plugs/settings/locked/types.js.map +1 -0
- package/dist/plugs/settings/metadata/build.cjs +29 -0
- package/dist/plugs/settings/metadata/build.cjs.map +1 -0
- package/dist/plugs/settings/metadata/build.js +8 -0
- package/dist/plugs/settings/metadata/build.js.map +1 -0
- package/dist/plugs/settings/metadata/index.cjs +455 -0
- package/dist/plugs/settings/metadata/index.cjs.map +1 -0
- package/dist/plugs/settings/metadata/index.js +24 -0
- package/dist/plugs/settings/metadata/index.js.map +1 -0
- package/dist/plugs/settings/metadata/types.cjs +19 -0
- package/dist/plugs/settings/metadata/types.cjs.map +1 -0
- package/dist/plugs/settings/metadata/types.js +1 -0
- package/dist/plugs/settings/metadata/types.js.map +1 -0
- package/dist/plugs/settings/modes/build.cjs +162 -0
- package/dist/plugs/settings/modes/build.cjs.map +1 -0
- package/dist/plugs/settings/modes/build.js +22 -0
- package/dist/plugs/settings/modes/build.js.map +1 -0
- package/dist/plugs/settings/modes/fullscreen.cjs +625 -0
- package/dist/plugs/settings/modes/fullscreen.cjs.map +1 -0
- package/dist/plugs/settings/modes/fullscreen.js +30 -0
- package/dist/plugs/settings/modes/fullscreen.js.map +1 -0
- package/dist/plugs/settings/modes/index.cjs +1031 -0
- package/dist/plugs/settings/modes/index.cjs.map +1 -0
- package/dist/plugs/settings/modes/index.js +51 -0
- package/dist/plugs/settings/modes/index.js.map +1 -0
- package/dist/plugs/settings/modes/miniplayer.cjs +618 -0
- package/dist/plugs/settings/modes/miniplayer.cjs.map +1 -0
- package/dist/plugs/settings/modes/miniplayer.js +30 -0
- package/dist/plugs/settings/modes/miniplayer.js.map +1 -0
- package/dist/plugs/settings/modes/pictureInPicture.cjs +704 -0
- package/dist/plugs/settings/modes/pictureInPicture.cjs.map +1 -0
- package/dist/plugs/settings/modes/pictureInPicture.js +30 -0
- package/dist/plugs/settings/modes/pictureInPicture.js.map +1 -0
- package/dist/plugs/settings/modes/theater.cjs +557 -0
- package/dist/plugs/settings/modes/theater.cjs.map +1 -0
- package/dist/plugs/settings/modes/theater.js +30 -0
- package/dist/plugs/settings/modes/theater.js.map +1 -0
- package/dist/plugs/settings/modes/types.cjs +19 -0
- package/dist/plugs/settings/modes/types.cjs.map +1 -0
- package/dist/plugs/settings/modes/types.js +1 -0
- package/dist/plugs/settings/modes/types.js.map +1 -0
- package/dist/plugs/settings/notifiers/build.cjs +30 -0
- package/dist/plugs/settings/notifiers/build.cjs.map +1 -0
- package/dist/plugs/settings/notifiers/build.js +8 -0
- package/dist/plugs/settings/notifiers/build.js.map +1 -0
- package/dist/plugs/settings/notifiers/index.cjs +451 -0
- package/dist/plugs/settings/notifiers/index.cjs.map +1 -0
- package/dist/plugs/settings/notifiers/index.js +24 -0
- package/dist/plugs/settings/notifiers/index.js.map +1 -0
- package/dist/plugs/settings/notifiers/types.cjs +19 -0
- package/dist/plugs/settings/notifiers/types.cjs.map +1 -0
- package/dist/plugs/settings/notifiers/types.js +1 -0
- package/dist/plugs/settings/notifiers/types.js.map +1 -0
- package/dist/plugs/settings/objectFit/build.cjs +35 -0
- package/dist/plugs/settings/objectFit/build.cjs.map +1 -0
- package/dist/plugs/settings/objectFit/build.js +10 -0
- package/dist/plugs/settings/objectFit/build.js.map +1 -0
- package/dist/plugs/settings/objectFit/index.cjs +514 -0
- package/dist/plugs/settings/objectFit/index.cjs.map +1 -0
- package/dist/plugs/settings/objectFit/index.js +30 -0
- package/dist/plugs/settings/objectFit/index.js.map +1 -0
- package/dist/plugs/settings/objectFit/types.cjs +19 -0
- package/dist/plugs/settings/objectFit/types.cjs.map +1 -0
- package/dist/plugs/settings/objectFit/types.js +1 -0
- package/dist/plugs/settings/objectFit/types.js.map +1 -0
- package/dist/plugs/settings/overlay/build.cjs +46 -0
- package/dist/plugs/settings/overlay/build.cjs.map +1 -0
- package/dist/plugs/settings/overlay/build.js +8 -0
- package/dist/plugs/settings/overlay/build.js.map +1 -0
- package/dist/plugs/settings/overlay/index.cjs +502 -0
- package/dist/plugs/settings/overlay/index.cjs.map +1 -0
- package/dist/plugs/settings/overlay/index.js +24 -0
- package/dist/plugs/settings/overlay/index.js.map +1 -0
- package/dist/plugs/settings/overlay/types.cjs +19 -0
- package/dist/plugs/settings/overlay/types.cjs.map +1 -0
- package/dist/plugs/settings/overlay/types.js +1 -0
- package/dist/plugs/settings/overlay/types.js.map +1 -0
- package/dist/plugs/settings/persist/build.cjs +41 -0
- package/dist/plugs/settings/persist/build.cjs.map +1 -0
- package/dist/plugs/settings/persist/build.js +8 -0
- package/dist/plugs/settings/persist/build.js.map +1 -0
- package/dist/plugs/settings/persist/index.cjs +413 -0
- package/dist/plugs/settings/persist/index.cjs.map +1 -0
- package/dist/plugs/settings/persist/index.js +22 -0
- package/dist/plugs/settings/persist/index.js.map +1 -0
- package/dist/plugs/settings/persist/types.cjs +19 -0
- package/dist/plugs/settings/persist/types.cjs.map +1 -0
- package/dist/plugs/settings/persist/types.js +1 -0
- package/dist/plugs/settings/persist/types.js.map +1 -0
- package/dist/plugs/settings/playbackRate/build.cjs +32 -0
- package/dist/plugs/settings/playbackRate/build.cjs.map +1 -0
- package/dist/plugs/settings/playbackRate/build.js +8 -0
- package/dist/plugs/settings/playbackRate/build.js.map +1 -0
- package/dist/plugs/settings/playbackRate/index.cjs +448 -0
- package/dist/plugs/settings/playbackRate/index.cjs.map +1 -0
- package/dist/plugs/settings/playbackRate/index.js +23 -0
- package/dist/plugs/settings/playbackRate/index.js.map +1 -0
- package/dist/plugs/settings/playbackRate/types.cjs +19 -0
- package/dist/plugs/settings/playbackRate/types.cjs.map +1 -0
- package/dist/plugs/settings/playbackRate/types.js +1 -0
- package/dist/plugs/settings/playbackRate/types.js.map +1 -0
- package/dist/plugs/settings/poster/build.cjs +29 -0
- package/dist/plugs/settings/poster/build.cjs.map +1 -0
- package/dist/plugs/settings/poster/build.js +8 -0
- package/dist/plugs/settings/poster/build.js.map +1 -0
- package/dist/plugs/settings/poster/index.cjs +435 -0
- package/dist/plugs/settings/poster/index.cjs.map +1 -0
- package/dist/plugs/settings/poster/index.js +24 -0
- package/dist/plugs/settings/poster/index.js.map +1 -0
- package/dist/plugs/settings/poster/types.cjs +19 -0
- package/dist/plugs/settings/poster/types.cjs.map +1 -0
- package/dist/plugs/settings/poster/types.js +1 -0
- package/dist/plugs/settings/poster/types.js.map +1 -0
- package/dist/plugs/settings/settingsView/build.cjs +35 -0
- package/dist/plugs/settings/settingsView/build.cjs.map +1 -0
- package/dist/plugs/settings/settingsView/build.js +8 -0
- package/dist/plugs/settings/settingsView/build.js.map +1 -0
- package/dist/plugs/settings/settingsView/index.cjs +1369 -0
- package/dist/plugs/settings/settingsView/index.cjs.map +1 -0
- package/dist/plugs/settings/settingsView/index.js +42 -0
- package/dist/plugs/settings/settingsView/index.js.map +1 -0
- package/dist/plugs/settings/settingsView/menu/index.cjs +1164 -0
- package/dist/plugs/settings/settingsView/menu/index.cjs.map +1 -0
- package/dist/plugs/settings/settingsView/menu/index.js +36 -0
- package/dist/plugs/settings/settingsView/menu/index.js.map +1 -0
- package/dist/plugs/settings/settingsView/menu/panel/index.cjs +144 -0
- package/dist/plugs/settings/settingsView/menu/panel/index.cjs.map +1 -0
- package/dist/plugs/settings/settingsView/menu/panel/index.js +16 -0
- package/dist/plugs/settings/settingsView/menu/panel/index.js.map +1 -0
- package/dist/plugs/settings/settingsView/menu/panel/main.cjs +524 -0
- package/dist/plugs/settings/settingsView/menu/panel/main.cjs.map +1 -0
- package/dist/plugs/settings/settingsView/menu/panel/main.js +33 -0
- package/dist/plugs/settings/settingsView/menu/panel/main.js.map +1 -0
- package/dist/plugs/settings/settingsView/menu/panel/sub.cjs +617 -0
- package/dist/plugs/settings/settingsView/menu/panel/sub.cjs.map +1 -0
- package/dist/plugs/settings/settingsView/menu/panel/sub.js +33 -0
- package/dist/plugs/settings/settingsView/menu/panel/sub.js.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/base.cjs +357 -0
- package/dist/plugs/settings/settingsView/menu/widgets/base.cjs.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/base.js +19 -0
- package/dist/plugs/settings/settingsView/menu/widgets/base.js.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/button.cjs +392 -0
- package/dist/plugs/settings/settingsView/menu/widgets/button.cjs.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/button.js +20 -0
- package/dist/plugs/settings/settingsView/menu/widgets/button.js.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/color.cjs +498 -0
- package/dist/plugs/settings/settingsView/menu/widgets/color.cjs.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/color.js +31 -0
- package/dist/plugs/settings/settingsView/menu/widgets/color.js.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/dragselect.cjs +563 -0
- package/dist/plugs/settings/settingsView/menu/widgets/dragselect.cjs.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/dragselect.js +31 -0
- package/dist/plugs/settings/settingsView/menu/widgets/dragselect.js.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/group.cjs +500 -0
- package/dist/plugs/settings/settingsView/menu/widgets/group.cjs.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/group.js +31 -0
- package/dist/plugs/settings/settingsView/menu/widgets/group.js.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/index.cjs +912 -0
- package/dist/plugs/settings/settingsView/menu/widgets/index.cjs.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/index.js +53 -0
- package/dist/plugs/settings/settingsView/menu/widgets/index.js.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/input.cjs +409 -0
- package/dist/plugs/settings/settingsView/menu/widgets/input.cjs.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/input.js +31 -0
- package/dist/plugs/settings/settingsView/menu/widgets/input.js.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/limits.cjs +411 -0
- package/dist/plugs/settings/settingsView/menu/widgets/limits.cjs.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/limits.js +31 -0
- package/dist/plugs/settings/settingsView/menu/widgets/limits.js.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/range.cjs +420 -0
- package/dist/plugs/settings/settingsView/menu/widgets/range.cjs.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/range.js +31 -0
- package/dist/plugs/settings/settingsView/menu/widgets/range.js.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/select.cjs +490 -0
- package/dist/plugs/settings/settingsView/menu/widgets/select.cjs.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/select.js +31 -0
- package/dist/plugs/settings/settingsView/menu/widgets/select.js.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/toggle.cjs +401 -0
- package/dist/plugs/settings/settingsView/menu/widgets/toggle.cjs.map +1 -0
- package/dist/plugs/settings/settingsView/menu/widgets/toggle.js +31 -0
- package/dist/plugs/settings/settingsView/menu/widgets/toggle.js.map +1 -0
- package/dist/plugs/settings/settingsView/types.cjs +19 -0
- package/dist/plugs/settings/settingsView/types.cjs.map +1 -0
- package/dist/plugs/settings/settingsView/types.js +1 -0
- package/dist/plugs/settings/settingsView/types.js.map +1 -0
- package/dist/plugs/settings/sleepTimer/build.cjs +29 -0
- package/dist/plugs/settings/sleepTimer/build.cjs.map +1 -0
- package/dist/plugs/settings/sleepTimer/build.js +8 -0
- package/dist/plugs/settings/sleepTimer/build.js.map +1 -0
- package/dist/plugs/settings/sleepTimer/index.cjs +431 -0
- package/dist/plugs/settings/sleepTimer/index.cjs.map +1 -0
- package/dist/plugs/settings/sleepTimer/index.js +24 -0
- package/dist/plugs/settings/sleepTimer/index.js.map +1 -0
- package/dist/plugs/settings/sleepTimer/types.cjs +19 -0
- package/dist/plugs/settings/sleepTimer/types.cjs.map +1 -0
- package/dist/plugs/settings/sleepTimer/types.js +2 -0
- package/dist/plugs/settings/sleepTimer/types.js.map +1 -0
- package/dist/plugs/settings/time/build.cjs +32 -0
- package/dist/plugs/settings/time/build.cjs.map +1 -0
- package/dist/plugs/settings/time/build.js +8 -0
- package/dist/plugs/settings/time/build.js.map +1 -0
- package/dist/plugs/settings/time/index.cjs +604 -0
- package/dist/plugs/settings/time/index.cjs.map +1 -0
- package/dist/plugs/settings/time/index.js +29 -0
- package/dist/plugs/settings/time/index.js.map +1 -0
- package/dist/plugs/settings/time/types.cjs +19 -0
- package/dist/plugs/settings/time/types.cjs.map +1 -0
- package/dist/plugs/settings/time/types.js +1 -0
- package/dist/plugs/settings/time/types.js.map +1 -0
- package/dist/plugs/settings/timeTravel/build.cjs +36 -0
- package/dist/plugs/settings/timeTravel/build.cjs.map +1 -0
- package/dist/plugs/settings/timeTravel/build.js +8 -0
- package/dist/plugs/settings/timeTravel/build.js.map +1 -0
- package/dist/plugs/settings/timeTravel/index.cjs +461 -0
- package/dist/plugs/settings/timeTravel/index.cjs.map +1 -0
- package/dist/plugs/settings/timeTravel/index.js +33 -0
- package/dist/plugs/settings/timeTravel/index.js.map +1 -0
- package/dist/plugs/settings/timeTravel/types.cjs +19 -0
- package/dist/plugs/settings/timeTravel/types.cjs.map +1 -0
- package/dist/plugs/settings/timeTravel/types.js +1 -0
- package/dist/plugs/settings/timeTravel/types.js.map +1 -0
- package/dist/plugs/settings/toasts/build.cjs +35 -0
- package/dist/plugs/settings/toasts/build.cjs.map +1 -0
- package/dist/plugs/settings/toasts/build.js +8 -0
- package/dist/plugs/settings/toasts/build.js.map +1 -0
- package/dist/plugs/settings/toasts/index.cjs +450 -0
- package/dist/plugs/settings/toasts/index.cjs.map +1 -0
- package/dist/plugs/settings/toasts/index.js +26 -0
- package/dist/plugs/settings/toasts/index.js.map +1 -0
- package/dist/plugs/settings/toasts/types.cjs +19 -0
- package/dist/plugs/settings/toasts/types.cjs.map +1 -0
- package/dist/plugs/settings/toasts/types.js +1 -0
- package/dist/plugs/settings/toasts/types.js.map +1 -0
- package/dist/plugs/settings/voice/build.cjs +81 -0
- package/dist/plugs/settings/voice/build.cjs.map +1 -0
- package/dist/plugs/settings/voice/build.js +8 -0
- package/dist/plugs/settings/voice/build.js.map +1 -0
- package/dist/plugs/settings/voice/index.cjs +757 -0
- package/dist/plugs/settings/voice/index.cjs.map +1 -0
- package/dist/plugs/settings/voice/index.js +26 -0
- package/dist/plugs/settings/voice/index.js.map +1 -0
- package/dist/plugs/settings/voice/types.cjs +19 -0
- package/dist/plugs/settings/voice/types.cjs.map +1 -0
- package/dist/plugs/settings/voice/types.js +1 -0
- package/dist/plugs/settings/voice/types.js.map +1 -0
- package/dist/plugs/settings/volume/build.cjs +31 -0
- package/dist/plugs/settings/volume/build.cjs.map +1 -0
- package/dist/plugs/settings/volume/build.js +8 -0
- package/dist/plugs/settings/volume/build.js.map +1 -0
- package/dist/plugs/settings/volume/index.cjs +592 -0
- package/dist/plugs/settings/volume/index.cjs.map +1 -0
- package/dist/plugs/settings/volume/index.js +34 -0
- package/dist/plugs/settings/volume/index.js.map +1 -0
- package/dist/plugs/settings/volume/types.cjs +19 -0
- package/dist/plugs/settings/volume/types.cjs.map +1 -0
- package/dist/plugs/settings/volume/types.js +1 -0
- package/dist/plugs/settings/volume/types.js.map +1 -0
- package/dist/plugs/z-register.cjs +5901 -0
- package/dist/plugs/z-register.cjs.map +1 -0
- package/dist/plugs/z-register.js +105 -0
- package/dist/plugs/z-register.js.map +1 -0
- package/dist/super/components/icons.cjs +630 -0
- package/dist/super/components/icons.cjs.map +1 -0
- package/dist/super/components/icons.js +248 -0
- package/dist/super/components/icons.js.map +1 -0
- package/dist/super/components/index.cjs +3111 -0
- package/dist/super/components/index.cjs.map +1 -0
- package/dist/super/components/index.js +498 -0
- package/dist/super/components/index.js.map +1 -0
- package/dist/super/components/notifiers.cjs +784 -0
- package/dist/super/components/notifiers.cjs.map +1 -0
- package/dist/super/components/notifiers.js +96 -0
- package/dist/super/components/notifiers.js.map +1 -0
- package/dist/super/consts.cjs +289 -0
- package/dist/super/consts.cjs.map +1 -0
- package/dist/super/consts.js +28 -0
- package/dist/super/consts.js.map +1 -0
- package/dist/super/plugs/index.cjs +5988 -0
- package/dist/super/plugs/index.cjs.map +1 -0
- package/dist/super/plugs/index.js +388 -0
- package/dist/super/plugs/index.js.map +1 -0
- package/dist/super/plugs/menus.cjs +2572 -0
- package/dist/super/plugs/menus.cjs.map +1 -0
- package/dist/super/plugs/menus.js +132 -0
- package/dist/super/plugs/menus.js.map +1 -0
- package/dist/super/techs.cjs +256 -0
- package/dist/super/techs.cjs.map +1 -0
- package/dist/super/techs.js +32 -0
- package/dist/super/techs.js.map +1 -0
- package/dist/super/utils.cjs +1379 -0
- package/dist/super/utils.cjs.map +1 -0
- package/dist/super/utils.js +400 -0
- package/dist/super/utils.js.map +1 -0
- package/dist/super.cjs +10191 -0
- package/dist/super.cjs.map +1 -0
- package/dist/super.css +3148 -0
- package/dist/super.css.map +1 -0
- package/dist/super.global.js +12460 -0
- package/dist/super.global.js.map +1 -0
- package/dist/super.js +380 -0
- package/dist/super.js.map +1 -0
- package/dist/techs/base.cjs +256 -0
- package/dist/techs/base.cjs.map +1 -0
- package/dist/techs/base.js +19 -0
- package/dist/techs/base.js.map +1 -0
- package/dist/techs/dash.cjs +1160 -0
- package/dist/techs/dash.cjs.map +1 -0
- package/dist/techs/dash.js +24 -0
- package/dist/techs/dash.js.map +1 -0
- package/dist/techs/hls.cjs +1164 -0
- package/dist/techs/hls.cjs.map +1 -0
- package/dist/techs/hls.js +24 -0
- package/dist/techs/hls.js.map +1 -0
- package/dist/techs/html5.cjs +988 -0
- package/dist/techs/html5.cjs.map +1 -0
- package/dist/techs/html5.js +23 -0
- package/dist/techs/html5.js.map +1 -0
- package/dist/techs/shaka.cjs +1183 -0
- package/dist/techs/shaka.cjs.map +1 -0
- package/dist/techs/shaka.js +197 -0
- package/dist/techs/shaka.js.map +1 -0
- package/dist/techs/vimeo.cjs +731 -0
- package/dist/techs/vimeo.cjs.map +1 -0
- package/dist/techs/vimeo.js +24 -0
- package/dist/techs/vimeo.js.map +1 -0
- package/dist/techs/youtube.cjs +730 -0
- package/dist/techs/youtube.cjs.map +1 -0
- package/dist/techs/youtube.js +22 -0
- package/dist/techs/youtube.js.map +1 -0
- package/dist/techs/z-register.cjs +2354 -0
- package/dist/techs/z-register.cjs.map +1 -0
- package/dist/techs/z-register.js +26 -0
- package/dist/techs/z-register.js.map +1 -0
- package/dist/tools/player.cjs +1804 -0
- package/dist/tools/player.cjs.map +1 -0
- package/dist/tools/player.js +29 -0
- package/dist/tools/player.js.map +1 -0
- package/dist/tools/queue.cjs +63 -0
- package/dist/tools/queue.cjs.map +1 -0
- package/dist/tools/queue.js +8 -0
- package/dist/tools/queue.js.map +1 -0
- package/dist/tools/runtime.cjs +1919 -0
- package/dist/tools/runtime.cjs.map +1 -0
- package/dist/tools/runtime.js +49 -0
- package/dist/tools/runtime.js.map +1 -0
- package/dist/types/UIOptions.d.cjs +19 -0
- package/dist/types/UIOptions.d.cjs.map +1 -0
- package/dist/types/UIOptions.d.js +1 -0
- package/dist/types/UIOptions.d.js.map +1 -0
- package/dist/types/actions.d.cjs +19 -0
- package/dist/types/actions.d.cjs.map +1 -0
- package/dist/types/actions.d.js +1 -0
- package/dist/types/actions.d.js.map +1 -0
- package/dist/types/config.d.cjs +19 -0
- package/dist/types/config.d.cjs.map +1 -0
- package/dist/types/config.d.js +1 -0
- package/dist/types/config.d.js.map +1 -0
- package/dist/types/contract.d.cjs +19 -0
- package/dist/types/contract.d.cjs.map +1 -0
- package/dist/types/contract.d.js +1 -0
- package/dist/types/contract.d.js.map +1 -0
- package/dist/types/generics.d.cjs +19 -0
- package/dist/types/generics.d.cjs.map +1 -0
- package/dist/types/generics.d.js +1 -0
- package/dist/types/generics.d.js.map +1 -0
- package/dist/types/global.d.cjs +22 -0
- package/dist/types/global.d.cjs.map +1 -0
- package/dist/types/global.d.js +2 -0
- package/dist/types/global.d.js.map +1 -0
- package/dist/types/registries.d.cjs +19 -0
- package/dist/types/registries.d.cjs.map +1 -0
- package/dist/types/registries.d.js +1 -0
- package/dist/types/registries.d.js.map +1 -0
- package/dist/utils/color.cjs +111 -0
- package/dist/utils/color.cjs.map +1 -0
- package/dist/utils/color.js +21 -0
- package/dist/utils/color.js.map +1 -0
- package/dist/utils/dom.cjs +269 -0
- package/dist/utils/dom.cjs.map +1 -0
- package/dist/utils/dom.js +58 -0
- package/dist/utils/dom.js.map +1 -0
- package/dist/utils/env.cjs +110 -0
- package/dist/utils/env.cjs.map +1 -0
- package/dist/utils/env.js +56 -0
- package/dist/utils/env.js.map +1 -0
- package/dist/utils/file.cjs +176 -0
- package/dist/utils/file.cjs.map +1 -0
- package/dist/utils/file.js +20 -0
- package/dist/utils/file.js.map +1 -0
- package/dist/utils/fn.cjs +133 -0
- package/dist/utils/fn.cjs.map +1 -0
- package/dist/utils/fn.js +41 -0
- package/dist/utils/fn.js.map +1 -0
- package/dist/utils/keys.cjs +66 -0
- package/dist/utils/keys.cjs.map +1 -0
- package/dist/utils/keys.js +28 -0
- package/dist/utils/keys.js.map +1 -0
- package/dist/utils/match.cjs +119 -0
- package/dist/utils/match.cjs.map +1 -0
- package/dist/utils/match.js +30 -0
- package/dist/utils/match.js.map +1 -0
- package/dist/utils/media.cjs +546 -0
- package/dist/utils/media.cjs.map +1 -0
- package/dist/utils/media.js +84 -0
- package/dist/utils/media.js.map +1 -0
- package/dist/utils/methd.cjs +50 -0
- package/dist/utils/methd.cjs.map +1 -0
- package/dist/utils/methd.js +15 -0
- package/dist/utils/methd.js.map +1 -0
- package/dist/utils/num.cjs +92 -0
- package/dist/utils/num.cjs.map +1 -0
- package/dist/utils/num.js +22 -0
- package/dist/utils/num.js.map +1 -0
- package/dist/utils/obj.cjs +204 -0
- package/dist/utils/obj.cjs.map +1 -0
- package/dist/utils/obj.js +58 -0
- package/dist/utils/obj.js.map +1 -0
- package/dist/utils/str.cjs +134 -0
- package/dist/utils/str.cjs.map +1 -0
- package/dist/utils/str.js +35 -0
- package/dist/utils/str.js.map +1 -0
- package/dist/utils/time.cjs +103 -0
- package/dist/utils/time.cjs.map +1 -0
- package/dist/utils/time.js +11 -0
- package/dist/utils/time.js.map +1 -0
- package/package.json +124 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/ts/tools/runtime.ts","../../src/ts/consts/config.ts","../../src/ts/consts/actions.ts","../../src/ts/core/registries.ts","../../src/ts/core/controllable.ts","../../../t007-tools/packages/utils/dist/chunk-ZALPHCSJ.js","../../src/ts/consts/generics.ts","../../src/ts/utils/str.ts","../../src/ts/utils/obj.ts","../../src/ts/techs/base.ts","../../src/ts/utils/time.ts","../../src/ts/consts/media.ts","../../src/ts/utils/dom.ts","../../src/ts/utils/media.ts","../../src/ts/techs/html5.ts","../../src/ts/utils/match.ts","../../src/ts/utils/env.ts","../../src/ts/core/controller.ts","../../src/ts/tools/player.ts"],"sourcesContent":["import { Player } from \"./player\";\r\nimport { type Controller } from \"@core/controller\";\r\nimport { type Dimensions } from \"@defs/generics\";\r\nimport { setTimeout } from \"@utils/fn\";\r\nimport { queryFullscreen, observeMutation } from \"@utils/dom\";\r\nconst win = \"undefined\" !== typeof window ? window : undefined;\r\n\r\n// Defines states explicitly managed by the TMG Environment Observers\r\nexport interface CtlrState {\r\n readyState: number;\r\n audioContextReady: boolean;\r\n mediaIntersecting: boolean;\r\n mediaParentIntersecting: boolean;\r\n dimensions: { container: Dimensions & { tier: string }; pseudoContainer: Dimensions & { tier: string }; window: Dimensions };\r\n screenOrientation: { type: string; angle: number };\r\n docVisibilityState: DocumentVisibilityState;\r\n docInFullscreen: boolean;\r\n frameReadyPromise?: Promise<null> | null;\r\n}\r\n\r\n// --- GLOBAL STATE ---\r\nconst flagMutationSet = new WeakSet<HTMLElement>(); // weak set for true magic\r\nlet flagMutationId: number | undefined;\r\n// --- EXPORTS ---\r\nexport let AUDIO_CONTEXT: AudioContext | null = null;\r\nexport let AUDIO_LIMITER: DynamicsCompressorNode | null = null;\r\nexport let IS_DOC_TRANSIENT = false;\r\nexport const STATE_BUILD: CtlrState = { readyState: 0, audioContextReady: !!AUDIO_CONTEXT, mediaIntersecting: true, mediaParentIntersecting: true, dimensions: { container: { width: 0, height: 0, tier: \"x\" }, pseudoContainer: { width: 0, height: 0, tier: \"x\" }, window: { width: win?.innerWidth!, height: win?.innerHeight! } }, screenOrientation: { type: win?.screen?.orientation?.type ?? \"\", angle: win?.screen?.orientation?.angle ?? (win as any)?.orientation ?? 0 }, docVisibilityState: win?.document.visibilityState!, docInFullscreen: queryFullscreen() };\r\nexport const Controllers: Controller[] = [];\r\n\r\nexport function handleVidMutation(mutations: MutationRecord[]): void {\r\n for (const mutation of mutations) {\r\n if (mutation.type !== \"attributes\") continue;\r\n const target = mutation.target as HTMLMediaElement;\r\n if (mutation.attributeName === \"tmgcontrols\") !flagMutationSet.has(target) && (target.tmgcontrols = target.hasAttribute(\"tmgcontrols\"));\r\n else if (mutation.attributeName?.startsWith(\"tmg\")) target.hasAttribute(mutation.attributeName) && target.tmgPlayer?.fetchOptions();\r\n else if (mutation.attributeName === \"controls\") target.hasAttribute(\"tmgcontrols\") && target.removeAttribute(\"controls\");\r\n }\r\n}\r\n\r\nexport function handleDOMMutation(mutations: MutationRecord[]): void {\r\n for (const mutation of mutations) {\r\n for (const node of Array.from(mutation.addedNodes)) {\r\n if (!(node instanceof HTMLElement)) continue;\r\n const els = node.matches(\":is(video,audio):not(.tmg-host)\") ? [node] : node.querySelectorAll(\":is(video,audio):not(.tmg-host)\");\r\n for (const el of els) {\r\n observeMutation(el, handleVidMutation, { attributes: true });\r\n (el as HTMLMediaElement).tmgcontrols = el.hasAttribute(\"tmgcontrols\");\r\n }\r\n }\r\n for (const node of Array.from(mutation.removedNodes)) {\r\n if (!(node instanceof HTMLElement)) continue;\r\n const els = node.matches(\".tmg-host\") ? [node] : node.querySelectorAll(\".tmg-host\");\r\n for (const el of els) !(el as HTMLMediaElement).tmgPlayer?.Controller?.mutatingDOMM && (el as HTMLMediaElement).tmgPlayer?.detach();\r\n }\r\n }\r\n}\r\n\r\nfunction flagMutation(m: HTMLElement, check = true): void {\r\n !flagMutationSet.has(m) && check && flagMutationSet.add(m);\r\n}\r\n\r\nfunction freeMutation(m: HTMLElement): void {\r\n clearTimeout(flagMutationId);\r\n flagMutationId = setTimeout(() => !(flagMutationId = undefined) && flagMutationSet.delete(m));\r\n}\r\n\r\nexport function mountMedia() {\r\n if (\"undefined\" === typeof HTMLMediaElement) return;\r\n for (const el of [HTMLVideoElement, HTMLAudioElement])\r\n Object.defineProperty(el.prototype, \"tmgcontrols\", {\r\n get: function () {\r\n return this.hasAttribute(\"tmgcontrols\");\r\n },\r\n set: async function (value) {\r\n if (value) {\r\n flagMutation(this);\r\n await ((this as HTMLMediaElement).tmgPlayer || new Player()).attach(this);\r\n this.setAttribute(\"tmgcontrols\", \"\");\r\n freeMutation(this);\r\n } else {\r\n flagMutation(this, this.hasAttribute(\"tmgcontrols\"));\r\n this.removeAttribute(\"tmgcontrols\");\r\n (this as HTMLMediaElement).tmgPlayer?.detach();\r\n freeMutation(this);\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true,\r\n });\r\n}\r\n\r\nexport function unmountMedia(): void {\r\n for (const el of [HTMLVideoElement, HTMLAudioElement]) delete (el.prototype as any).tmgcontrols;\r\n}\r\n\r\nexport function startAudioManager(): void {\r\n if (!AUDIO_CONTEXT && IS_DOC_TRANSIENT) {\r\n AUDIO_CONTEXT = new (win!.AudioContext || (win as any).webkitAudioContext)() as AudioContext;\r\n const L = (AUDIO_LIMITER = AUDIO_CONTEXT!.createDynamicsCompressor());\r\n (L.threshold.value = -1.0), (L.knee.value = 0.0), (L.ratio.value = 20), (L.attack.value = 0.001), (L.release.value = 0.05);\r\n for (const c of Controllers) if (c.state) c.state.audioContextReady = true;\r\n } else if (AUDIO_CONTEXT?.state === \"suspended\") AUDIO_CONTEXT.resume();\r\n}\r\n\r\nexport function connectMediaToAudioManager(medium: HTMLMediaElement) {\r\n if (!AUDIO_CONTEXT) return \"unavailable\";\r\n medium.mediaElementSourceNode ??= AUDIO_CONTEXT.createMediaElementSource(medium);\r\n medium._tmgGainNode ??= AUDIO_CONTEXT.createGain();\r\n medium._tmgDynamicsCompressorNode ??= AUDIO_CONTEXT.createDynamicsCompressor();\r\n medium.mediaElementSourceNode.connect(medium._tmgDynamicsCompressorNode);\r\n medium._tmgDynamicsCompressorNode.connect(medium._tmgGainNode);\r\n medium._tmgGainNode.connect(AUDIO_LIMITER!);\r\n AUDIO_LIMITER!.connect(AUDIO_CONTEXT!.destination);\r\n}\r\n\r\nexport function init(): void {\r\n mountMedia();\r\n for (const e of [\"click\", \"pointerdown\", \"keydown\"]) document.addEventListener(e, () => ((IS_DOC_TRANSIENT = true), startAudioManager()), true);\r\n for (const medium of document.querySelectorAll<HTMLMediaElement>(\"video,audio\")) {\r\n observeMutation(medium, handleVidMutation, { attributes: true });\r\n medium.tmgcontrols = medium.hasAttribute(\"tmgcontrols\");\r\n }\r\n observeMutation(document.documentElement, handleDOMMutation, { childList: true, subtree: true });\r\n win!.addEventListener(\"resize\", () => {\r\n for (const c of Controllers) if (c.state) (c.state.dimensions.window.width = win!.innerWidth), (c.state.dimensions.window.height = win!.innerHeight);\r\n });\r\n if (win?.screen?.orientation)\r\n win.screen.orientation.addEventListener(\"change\", ({ target }, t = target as ScreenOrientation) => {\r\n for (const c of Controllers) if (c.state) (c.state.screenOrientation.type = t.type), (c.state.screenOrientation.angle = t.angle);\r\n });\r\n else\r\n win?.addEventListener(\"orientationchange\", () => {\r\n for (const c of Controllers) if (c.state) c.state.screenOrientation.angle = (win as any).orientation || 0;\r\n });\r\n document.addEventListener(\"visibilitychange\", () => {\r\n for (const c of Controllers) if (c.state) c.state.docVisibilityState = document.visibilityState;\r\n });\r\n for (const e of [\"fullscreenchange\", \"webkitfullscreenchange\", \"mozfullscreenchange\", \"msfullscreenchange\"])\r\n document.addEventListener(e, (_, inFs = queryFullscreen()) => {\r\n for (const c of Controllers) if (c.state) c.state.docInFullscreen = inFs;\r\n });\r\n}\r\n","import type { CtlrConfig } from \"@defs/config\";\r\nimport { CTX, type DeepPartial } from \"sia-reactor\";\r\nimport { ACTIONS_BUILD } from \"./actions\";\r\n\r\nexport const CONFIG_BUILD: DeepPartial<CtlrConfig> = {\r\n mediaType: \"video\",\r\n mediaPlayer: \"TMG\",\r\n media: { intent: { playsInline: true, textVisible: true, brightness: 100 } },\r\n actions: Object.fromEntries(Object.entries(ACTIONS_BUILD).map(([k, v]) => [k, { id: k, ...v }])) as any,\r\n logicPathBlacklist: [\"media.state\", \"media.status\", \"media.tech\", \"media.features\", \"media.type\", \"media.element\", \"media.pseudoElement\", \"media.container\", \"media.pseudoContainer\"],\r\n settings: {\r\n // techOrder: [\r\n // \"youtube\", // 1. Black-box (Regex must catch these URLs instantly)\r\n // \"vimeo\", // 2. Black-box (Regex must catch these URLs instantly)\r\n // \"shaka\", // 3. THE APEX PREDATOR (Catches .mpd and .m3u8 first)\r\n // \"hls\", // 4. Fallback (Catches .m3u8 ONLY if Shaka is disabled/fails)\r\n // \"dash\", // 5. Fallback (Catches .mpd ONLY if Shaka is disabled/fails)\r\n // \"html5\", // 6. The Native Floor (Catches raw .mp4, .webm, .mp3, etc.)\r\n // ],\r\n },\r\n debug: true,\r\n devMode: CTX.isDevEnv,\r\n noPlugList: [], // dev: \"settings.persist\"\r\n};\r\n","export const ACTIONS_BUILD = {\n // --- Keyboard-only actions (no default voice triggers; path router covers voice) ---\n playPause: { label: \"Play / Pause\" },\n skipFwd: { label: \"Skip Forward\", notify: \"fwd\" },\n skipBwd: { label: \"Skip Back\", notify: \"bwd\" },\n volumeUp: { label: \"Volume Up\", notify: \"volumeup\" },\n volumeDown: { label: \"Volume Down\", notify: \"volumedown\" },\n brightnessUp: { label: \"Brightness Up\", notify: \"brightnessup\" },\n brightnessDown: { label: \"Brightness Down\", notify: \"brightnessdown\" },\n playbackRateUp: { label: \"Playback Rate Up\", notify: \"playbackrateup\" },\n playbackRateDown: { label: \"Playback Rate Down\", notify: \"playbackratedown\" },\n stepFwd: { label: \"Step Forward\", notify: \"fwd\" },\n stepBwd: { label: \"Step Back\", notify: \"bwd\" },\n prev: { label: \"Previous\", notify: \"mediaprev\" },\n next: { label: \"Next\", notify: \"medianext\" },\n captions: { label: \"Captions\", notify: \"captions\" },\n captionsFontSizeUp: { label: \"Captions: Font Size Up\" },\n captionsFontSizeDown: { label: \"Captions: Font Size Down\" },\n captionsFontFamily: { label: \"Captions: Font Family\" },\n captionsFontWeight: { label: \"Captions: Font Weight\" },\n captionsFontVariant: { label: \"Captions: Font Variant\" },\n captionsFontOpacity: { label: \"Captions: Font Opacity\" },\n captionsBackgroundOpacity: { label: \"Captions: Background Opacity\" },\n captionsWindowOpacity: { label: \"Captions: Window Opacity\" },\n captionsCharacterEdgeStyle: { label: \"Captions: Character Edge\" },\n captionsTextAlignment: { label: \"Captions: Text Alignment\" },\n objectFit: { label: \"Object Fit\" },\n capture: { label: \"Capture Frame\", notify: \"capture\" },\n cast: { label: \"Cast\", notify: \"cast\" },\n airplay: { label: \"AirPlay\", notify: \"airplay\" },\n dark: { label: \"Dark Mode\" },\n settings: { label: \"Settings\", zen: true },\n // --- Logic-expressible actions (logic[] + keyboard, no default voice triggers) ---\n mute: { label: \"Mute\", notify: \"volumemuted\" },\n fullscreen: { label: \"Fullscreen\", notify: \"fullscreen\", logic: [{ path: \"media.intent.fullscreen\", op: \"toggle\" }] },\n theater: { label: \"Theater\", notify: \"theater\", logic: [{ path: \"media.intent.theater\", op: \"toggle\" }] },\n pictureInPicture: { label: \"Picture in Picture\", notify: \"pictureinpicture\", logic: [{ path: \"media.intent.pictureInPicture\", op: \"toggle\" }] },\n timeFormat: { label: \"Time Format\" },\n timeMode: { label: \"Time Mode\" },\n // --- Compound (voice|time)-only actions (voice engine meta, path router can't reach these) ---\n timeTravelUndo: { label: \"Time Travel: Undo\", zen: true },\n timeTravelRedo: { label: \"Time Travel: Redo\", zen: true },\n voiceQuit: { label: \"Voice: Quit\", zen: true },\n voiceSleep: { label: \"Voice: Sleep\", zen: true },\n voiceSubmit: { label: \"Voice: Submit\", zen: true },\n voiceHistoryFirst: { label: \"Voice: Go to Root\", zen: true },\n voiceHistoryPrev: { label: \"Voice: Go Back\", zen: true },\n voiceHistoryNext: { label: \"Voice: Go Forward\", zen: true },\n voiceHistoryLast: { label: \"Voice: Go to Leaf\", zen: true },\n voiceHistoryClear: { label: \"Voice: Clear History\", zen: true },\n voiceToggleOn: { label: \"Voice: Toggle On\", zen: true },\n voiceToggleOff: { label: \"Voice: Toggle Off\", zen: true },\n} as const;\n","import type { BaseTech, TechConstructor } from \"@techs/base\";\r\nimport type { BasePin, BasePlug, PinConstructor, PlugConstructor } from \"@plugs/base\";\r\nimport type { BaseComponent, ComponentConstructor } from \"@components/base\";\r\nimport { CONFIG_BUILD as CB } from \"@consts/config\";\r\nimport type { ComponentRegistryMap, IconRegistryMap, PinRegistryMap, PlugRegistryMap, TechRegistryMap, MenuRegistryMap } from \"@defs/registries\";\r\nimport { deletePath, setPath } from \"sia-reactor/utils\";\r\nimport { Controller } from \"./controller\";\r\n\r\nexport interface RegistryItem<T> {\r\n name: string;\r\n value: T;\r\n config?: any; // no closed doors\r\n}\r\n\r\nexport class BaseRegistry<T> {\r\n protected items: RegistryItem<T>[] = [];\r\n\r\n public register(name: string, value: T, config?: any): this {\r\n return this.unregister(name), this.items.push({ name, value, config }), this;\r\n }\r\n public unregister(name: string, idx = this.items.findIndex((i) => i.name === name)): this {\r\n return idx !== -1 && this.items.splice(idx, 1), this;\r\n }\r\n public get(name: string): T | undefined {\r\n return this.items.find((i) => i.name === name)?.value;\r\n }\r\n public getAll(order?: string[]): T[] {\r\n if (!order) return this.items.map((i) => i.value);\r\n return this.items.sort((a, b, ai = order.indexOf(a.name), bi = order.indexOf(b.name)) => (ai === -1 && bi === -1 ? 0 : ai === -1 ? 1 : bi === -1 ? -1 : ai - bi)).map((i) => i.value);\r\n }\r\n public clear() {\r\n return (this.items = []), this;\r\n }\r\n}\r\n\r\nexport class OrderedRegistry<T> extends BaseRegistry<T> {\r\n public registerFirst(name: string, value: T, config?: any) {\r\n return this.unregister(name), this.items.unshift({ name, value, config }), this;\r\n }\r\n public registerBefore(key: string, name: string, value: T, config?: any) {\r\n this.unregister(name);\r\n const idx = this.items.findIndex((i) => i.name === key);\r\n return idx !== -1 ? (this.items.splice(idx, 0, { name, value, config }), this) : this.register(name, value, config);\r\n }\r\n public registerAfter(key: string, name: string, value: T, config?: any) {\r\n this.unregister(name);\r\n const idx = this.items.findIndex((i) => i.name === key);\r\n return idx !== -1 ? (this.items.splice(idx + 1, 0, { name, value, config }), this) : this.register(name, value, config);\r\n }\r\n}\r\n\r\nexport class TechRegistry extends OrderedRegistry<TechConstructor> {\r\n private static instance = new TechRegistry();\r\n\r\n public static get<K extends keyof TechRegistryMap>(name: K): TechRegistryMap[K] | undefined;\r\n public static get<T extends BaseTech = BaseTech>(name: string): TechConstructor<T> | undefined;\r\n public static get(name: string): any {\r\n return this.instance.get(name);\r\n }\r\n public static register(Tech: TechConstructor): void {\r\n this.instance.register(Tech.techName, Tech);\r\n }\r\n public static unregister(name: string): void {\r\n this.instance.unregister(name);\r\n }\r\n public static registerBefore(key: string, Tech: TechConstructor): void {\r\n this.instance.registerBefore(key, Tech.techName, Tech);\r\n }\r\n public static registerAfter(key: string, Tech: TechConstructor): void {\r\n this.instance.registerAfter(key, Tech.techName, Tech);\r\n }\r\n public static pick(src: string, techOrder?: string[]): TechConstructor | null {\r\n return this.instance.getAll(techOrder).find((Tech) => Tech.canPlaySource(src)) || null;\r\n }\r\n}\r\n\r\nexport class PlugRegistry extends OrderedRegistry<PlugConstructor> {\r\n private static instance = new PlugRegistry();\r\n\r\n public static get<K extends keyof PlugRegistryMap>(name: K): PlugRegistryMap[K] | undefined;\r\n public static get<T extends BasePlug = BasePlug>(name: string): PlugConstructor<T> | undefined;\r\n public static get(name: string): any {\r\n return this.instance.get(name);\r\n }\r\n public static register(Plug: PlugConstructor, editBuild = Plug.BUILD !== undefined): void {\r\n this.instance.register(Plug.fullName, Plug);\r\n editBuild && setPath(CB as any, Plug.fullName, Plug.BUILD);\r\n }\r\n public static unregister(fullName: string, editBuild = true): void {\r\n this.instance.unregister(fullName);\r\n editBuild && deletePath(CB as any, fullName);\r\n }\r\n public static registerBefore(key: string, Plug: PlugConstructor): void {\r\n this.instance.registerBefore(key, Plug.fullName, Plug);\r\n }\r\n public static registerAfter(key: string, Plug: PlugConstructor): void {\r\n this.instance.registerAfter(key, Plug.fullName, Plug);\r\n }\r\n public static getOrdered(): PlugConstructor[] {\r\n return this.instance.getAll();\r\n }\r\n}\r\n\r\nexport class PinRegistry extends BaseRegistry<PinConstructor> {\r\n private static instance = new PinRegistry();\r\n\r\n public static get<K extends keyof PinRegistryMap>(name: K): PinRegistryMap[K] | undefined;\r\n public static get<T extends BasePin = BasePin>(name: string): PinConstructor<T> | undefined;\r\n public static get(name: string): any {\r\n return this.instance.get(name);\r\n }\r\n public static register(Pin: PinConstructor, editBuild = Pin.BUILD !== undefined): void {\r\n this.instance.register(Pin.fullName, Pin);\r\n editBuild && setPath(CB as any, Pin.Plug.fullName + \".\" + Pin.pinName, Pin.BUILD);\r\n }\r\n public static unregister(fullName: string, editBuild = true): void {\r\n this.instance.unregister(fullName);\r\n editBuild && deletePath((fullName.slice(0, fullName.indexOf(\".\")) in CB ? CB : CB.settings) as any, fullName);\r\n }\r\n}\r\n\r\nexport class MenuRegistry extends BaseRegistry<any> {\r\n private static instance = new MenuRegistry();\r\n\r\n public static get<K extends keyof MenuRegistryMap>(name: K): MenuRegistryMap[K] | undefined;\r\n public static get(name: string): any {\r\n return this.instance.get(name);\r\n }\r\n public static register<K extends keyof MenuRegistryMap>(name: K, factory: MenuRegistryMap[K]): void;\r\n public static register(name: string, factory: any): void {\r\n this.instance.register(name, factory);\r\n }\r\n public static unregister(name: keyof MenuRegistryMap): void {\r\n this.instance.unregister(name);\r\n }\r\n}\r\n\r\nexport class ComponentRegistry extends BaseRegistry<ComponentConstructor> {\r\n private static instance = new ComponentRegistry();\r\n\r\n public static get<K extends keyof ComponentRegistryMap>(name: K): ComponentRegistryMap[K] | undefined;\r\n public static get<T extends BaseComponent = BaseComponent>(name: string): ComponentConstructor<T> | undefined;\r\n public static get(name: string): any {\r\n return this.instance.get(name);\r\n }\r\n public static register(Comp: ComponentConstructor): void {\r\n this.instance.register(Comp.componentName, Comp);\r\n }\r\n public static unregister(name: keyof ComponentRegistryMap): void {\r\n this.instance.unregister(name);\r\n }\r\n public static init<K extends keyof ComponentRegistryMap>(name: K, ctlr: Controller, config?: any): InstanceType<ComponentRegistryMap[K]> | null;\r\n public static init<T extends BaseComponent = BaseComponent>(name: string, ctlr: any, config?: any): T | null;\r\n public static init(name: string, ctlr: any, config = {}): any {\r\n const Comp = this.instance.get(name);\r\n if (!Comp) return null;\r\n const instance = new Comp(ctlr, config);\r\n return instance.create(), instance.setup();\r\n }\r\n public static getAll(): ComponentConstructor[] {\r\n return this.instance.getAll();\r\n }\r\n}\r\n\r\nexport class IconRegistry extends BaseRegistry<string> {\r\n private static instance = new IconRegistry();\r\n\r\n public static get<K extends keyof IconRegistryMap>(name: K, raw?: boolean, token?: RegExp | string): IconRegistryMap[K] | string;\r\n public static get(name: string, raw = false, token = /\\btmg-media-[^\\s\"']+\\s*/g) {\r\n return (raw ? this.instance.get(name)?.replace(token, \"\") : this.instance.get(name)) || `<svg></svg>`;\r\n }\r\n public static register<K extends keyof IconRegistryMap>(name: K, svg: IconRegistryMap[K]): void;\r\n public static register(name: string, svg: string): void {\r\n this.instance.register(name, svg);\r\n }\r\n public static unregister(name: keyof IconRegistryMap): void {\r\n this.instance.unregister(name);\r\n }\r\n // Bulk register a map of icons { play: \"<svg...>\", pause: \"<svg...>\" }\r\n public static registerAll(icons: Record<keyof IconRegistryMap, IconRegistryMap[keyof IconRegistryMap]>): void {\r\n for (const k of Object.keys(icons)) this.instance.register(k as keyof IconRegistryMap, icons[k as keyof IconRegistryMap]);\r\n }\r\n}\r\n","import { Controller } from \"./controller\";\r\nimport { type Reactive, reactive } from \"sia-reactor\";\r\nimport { nuke } from \"sia-reactor/utils\";\r\nimport { guardAllMethods } from \"@utils/methd\";\r\nimport { isObj } from \"@utils/obj\";\r\nimport { isFunc } from \"@t007/utils\";\r\n\r\n// A lifecylce controlled by it's Controller\r\n// Try to use methods for most things so they can be customized when extended and also auto guarded\r\nexport abstract class Controllable<Config = any, State = any> {\r\n protected readonly ac = new AbortController();\r\n protected readonly signal = this.ac.signal;\r\n public readonly ctlr: Controller;\r\n public readonly media: Controller[\"media\"];\r\n public readonly state!: State extends object ? Reactive<State> : State; // for reactivity needs of those who pass it up\r\n public config: Config; // may be a reactive obj node or the obj itself\r\n public get settings() {\r\n return this.ctlr.settings; // can change ref\r\n } // for easy reach, better devx\r\n\r\n constructor(ctlr: Controller, config: Config, state?: State) {\r\n guardAllMethods(this, ctlr.guard);\r\n this.signal = AbortSignal.any([this.signal, ctlr.signal]);\r\n this.ctlr = ctlr;\r\n this.media = ctlr.media; // can't change ref\r\n this.state = (isObj(state) ? reactive(state) : state) as Controllable[\"state\"];\r\n this.config = config;\r\n }\r\n\r\n public setup(): this {\r\n return this.onSetup(), this; // We let the subclass do its work\r\n }\r\n protected abstract onSetup(): void;\r\n\r\n public destroy(): void {\r\n !this.signal.aborted && this.ac.abort(`[TMG Controllable] Instance is being destroyed`); // incase controller already aborted, kills all listeners and timers before proper destruction below\r\n this.onDestroy(), (this.state as any)?.destroy?.(), this.config !== this.media && isFunc((this.config as any)?.destroy) && (this.config as any)?.destroy?.(); // Can I clean here?... Anatoly :)\r\n nuke(this);\r\n }\r\n protected onDestroy(): void {}\r\n}\r\n","// src/ts/core/dom.ts\nimport { createEl, assignEl } from \"sia-reactor/utils\";\nimport { getActiveEl } from \"sia-reactor/utils\";\nimport { NOOP } from \"sia-reactor\";\nvar INTERACTIVE_SELECTOR = \":is(button,[href],input:not([type='hidden']),select,textarea,details>summary,[contenteditable],iframe,audio[controls],video[controls],[tabindex]):not([disabled],[tabindex='-1'],[data-focus-guard],[inert],[inert] *)\";\nvar isInteractive = (target) => target instanceof HTMLElement && target.matches(INTERACTIVE_SELECTOR);\nvar VIRTUAL_RESOURCE = /* @__PURE__ */ Symbol.for(\"T007_VIRTUAL_RESOURCE\");\nfunction loadResource(req, type = \"style\", { module, media, crossOrigin, integrity, referrerPolicy, nonce, fetchPriority, attempts = 3, retryKey = false } = {}, win = window) {\n win.t007 ??= {}, win.t007._resourceCache ??= {};\n if (req === VIRTUAL_RESOURCE || isSym(req)) return Promise.resolve();\n const src = req;\n if (win.t007._resourceCache[src]) return win.t007._resourceCache[src];\n const existing = type === \"script\" ? Array.prototype.find.call(win.document.scripts, (s) => isSameURL(s.src, src)) : type === \"style\" ? Array.prototype.find.call(win.document.styleSheets, (s) => isSameURL(s.href, src)) : null;\n if (existing) return win.t007._resourceCache[src] = Promise.resolve(existing);\n win.t007._resourceCache[src] = new Promise((resolve, reject) => {\n (function tryLoad(remaining, el) {\n const onerror = () => {\n el?.remove?.();\n if (remaining > 1) {\n setTimeout(tryLoad, 1e3, remaining - 1);\n console.warn(`Retrying ${type} load for \"${src}\" (${attempts - remaining + 1})...`);\n } else {\n delete win.t007._resourceCache[src];\n reject(new Error(`${capitalize(type)} load failed for \"${src}\" after ${attempts - 1} attempts`));\n }\n };\n const url = retryKey && remaining < attempts ? `${src}${src.includes(\"?\") ? \"&\" : \"?\"}_${retryKey}=${Date.now()}` : src;\n if (type === \"script\") win.document.body.append(el = createEl(\"script\", { src: url, type: module ? \"module\" : \"text/javascript\", crossOrigin, integrity, referrerPolicy, nonce, fetchPriority, onload: () => resolve(el), onerror }) || \"\");\n else if (type === \"style\") win.document.head.append(el = createEl(\"link\", { rel: \"stylesheet\", href: url, media, crossOrigin, integrity, referrerPolicy, nonce, fetchPriority, onload: () => resolve(el), onerror }) || \"\");\n else reject(new Error(`Unsupported resource type: ${type}`));\n })(attempts);\n });\n return win.t007._resourceCache[src];\n}\nfunction getWindow(el = window) {\n return el?.ownerDocument?.defaultView ?? el?.defaultView ?? window;\n}\nfunction createListRenderer({ container, getKey, createNode, updateNode = NOOP, destroyNode = NOOP, initNode }) {\n let nodeRegistry = /* @__PURE__ */ new Map();\n if (initNode) {\n const children = Array.from(container.children);\n for (let i = 0, len = children.length; i < len; i++) initNode(children[i], (key) => nodeRegistry.set(key, children[i]));\n }\n return function syncDOM(array, strict = true) {\n const newRegistry = /* @__PURE__ */ new Map(), seenKeys = /* @__PURE__ */ new Set(), oldPositions = /* @__PURE__ */ new WeakMap(), children = Array.from(container.children);\n for (let i = 0, len = children.length; i < len; i++) oldPositions.set(children[i], i);\n const futureNodes = [], oldIndices = [];\n for (let i = 0, len = array.length; i < len; i++) {\n const item = array[i], key = getKey(item);\n if (seenKeys.has(key)) throw new Error(`[List Renderer] Duplicate key \"${key}\" detected`);\n let node = nodeRegistry.get(key);\n if (!node) {\n node = createNode(item);\n if (!node) {\n if (strict) throw new Error(`[List Renderer] No HTMLElement for key \"${key}\"`);\n continue;\n }\n oldIndices.push(-1);\n } else updateNode(node, item), oldIndices.push(oldPositions.get(node) ?? -1);\n seenKeys.add(key), futureNodes.push(node), newRegistry.set(key, node);\n }\n for (const [key, node] of nodeRegistry.entries()) !seenKeys.has(key) && node.parentElement === container && (destroyNode(node, key), node.remove());\n const sequence = longestIncreasingSubsequence(oldIndices), stable = new Set(sequence);\n let anchor = null;\n for (let i = futureNodes.length - 1; i >= 0; i--) {\n const node = futureNodes[i];\n if (oldIndices[i] !== -1 && stable.has(i)) {\n anchor = node;\n continue;\n }\n container.insertBefore(node, anchor), anchor = node;\n }\n nodeRegistry = newRegistry;\n };\n}\n\n// src/ts/index.ts\nimport { NIL, NOOP as NOOP2 } from \"sia-reactor\";\n\n// src/ts/core/obj.ts\nimport { isObj } from \"sia-reactor/utils\";\nfunction isDef(val) {\n return \"undefined\" !== typeof val;\n}\nfunction isSym(val) {\n return \"symbol\" === typeof val;\n}\nfunction isBool(val) {\n return \"boolean\" === typeof val;\n}\nfunction isNum(val) {\n return \"number\" === typeof val;\n}\nfunction isStr(val) {\n return \"string\" === typeof val;\n}\nfunction isArr(obj) {\n return Array.isArray(obj);\n}\nfunction isPOJO(obj, crossRealms = false, typecheck = true) {\n return (typecheck ? isObj(obj, false) : true) && (crossRealms ? Object.prototype.toString.call(obj) === \"[object Object]\" : obj.constructor === Object);\n}\nfunction isIter(obj) {\n return obj != null && \"function\" === typeof obj[Symbol.iterator];\n}\nfunction isFunc(val) {\n return \"function\" === typeof val;\n}\nfunction inBoolArrOpt(opt, str) {\n return opt?.includes?.(str) ?? opt;\n}\n\n// src/ts/core/num.ts\nimport { clamp } from \"sia-reactor/utils\";\nfunction longestIncreasingSubsequence(array) {\n const n = array.length, parent = new Array(n), tails = [];\n for (let i = 0; i < n; i++) {\n const value = array[i];\n if (value === -1) continue;\n let left = 0;\n let right = tails.length;\n while (left < right) {\n const mid = left + right >> 1;\n if (array[tails[mid]] < value) left = mid + 1;\n else right = mid;\n }\n if (left > 0) parent[i] = tails[left - 1];\n else parent[i] = -1;\n tails[left] = i;\n }\n if (!tails.length) return [];\n const result = [];\n let k = tails[tails.length - 1];\n while (k >= 0) result.push(k), k = parent[k];\n return result.reverse(), result;\n}\n\n// src/ts/core/str.ts\nfunction uid(prefix = \"\") {\n return prefix + Date.now().toString(36) + \"_\" + performance.now().toString(36).replace(\".\", \"\") + \"_\" + Math.random().toString(36).slice(2);\n}\nfunction capitalize(word = \"\") {\n return word.replace(/^(\\s*)([a-z])/i, (_, s, l) => s + l.toUpperCase());\n}\nfunction camelize(str = \"\", { source } = /[\\s_-]+/, { preserveInnerCase: pIC = true, upperFirst: uF = false } = {}) {\n return (pIC ? str : str.toLowerCase()).replace(new RegExp(source + \"(\\\\w)\", \"g\"), (_, c) => c.toUpperCase()).replace(/^\\w/, (c) => c[uF ? \"toUpperCase\" : \"toLowerCase\"]());\n}\nfunction uncamelize(str, separator = \" \") {\n return str.replace(/([a-z])([A-Z])/g, `$1${separator}$2`).toLowerCase();\n}\nfunction remToPx(rem, el = document.documentElement) {\n return rem * parseFloat(getComputedStyle(el).fontSize);\n}\nfunction pxToRem(px, el = document.documentElement) {\n return px / parseFloat(getComputedStyle(el).fontSize);\n}\nfunction parseCSSTime(time) {\n return time?.endsWith?.(\"ms\") ? parseFloat(time) : parseFloat(time) * 1e3;\n}\nfunction parseCSSSize(size, el) {\n return size?.endsWith?.(\"px\") ? parseFloat(size) : remToPx(parseFloat(size), el);\n}\nfunction cleanURL(url) {\n try {\n const u = new URL(url, window.location.href);\n return decodeURIComponent(u.origin + u.pathname);\n } catch {\n return url.replace(/\\\\/g, \"/\").split(\"?\")[0].trim();\n }\n}\nfunction isSameURL(url1, url2) {\n if (url1 === url2) return true;\n if (!isStr(url1) || !isStr(url2) || !url1 || !url2) return false;\n return cleanURL(url1) === cleanURL(url2);\n}\n\n// src/ts/core/fn.ts\nimport { setTimeout as setTimeout2, setInterval, requestAnimationFrame } from \"sia-reactor/utils\";\nfunction throttle(key, fn, delay = 30, strict = true, signal, win) {\n const throttleMap = t007._throttlers ??= /* @__PURE__ */ new Map();\n if (strict === true) {\n const now = performance.now();\n return now - (throttleMap.get(key) ?? 0) < delay ? void 0 : (throttleMap.set(key, now), fn());\n }\n if (throttleMap.has(key)) return;\n const id = strict === false ? setTimeout2(() => throttleMap.delete(key), delay, signal, win) : strict(() => throttleMap.delete(key));\n return throttleMap.set(key, id), fn();\n}\nfunction debounce(key, fn, delay = 30, strict = true, signal, win) {\n const debounceMap = t007._debouncers ??= /* @__PURE__ */ new Map();\n if (strict) {\n const now = performance.now(), prev = debounceMap.get(key) ?? 0;\n return debounceMap.set(key, now), now - prev < delay ? void 0 : fn();\n }\n const prevId = debounceMap.get(key);\n prevId !== void 0 && (win ?? window).clearTimeout(prevId);\n const id = setTimeout2(() => (debounceMap.delete(key), fn()), delay, signal, win);\n return void debounceMap.set(key, id);\n}\nfunction RAFLoop(key, fn, signal, win) {\n const rafLoopMap = t007._RAFLoopers ??= /* @__PURE__ */ new Map();\n if (rafLoopMap.has(key)) return void rafLoopMap.set(key, fn);\n rafLoopMap.set(key, fn);\n const loop = (_ = 0, fn2 = rafLoopMap.get(key)) => fn2 && (fn2(), requestAnimationFrame(loop, signal, win));\n loop();\n}\nvar cancelRAFLoop = (key) => t007._RAFLoopers ? t007._RAFLoopers.delete(key) : false;\nfunction limited(FN_KEY, fn, opts = {}) {\n let count = 0, { key, maxTimes: max = 1, oncePerSession = true } = isStr(opts) ? { key: opts } : opts;\n const getReg = () => JSON.parse(localStorage.getItem(FN_KEY) || \"{}\"), setReg = (r) => localStorage.setItem(FN_KEY, JSON.stringify(r));\n const handle = (...args) => {\n if (oncePerSession && count > 0) return void 0;\n if (!key) return count++ < max ? fn(...args) : void 0;\n const r = getReg(), c = r[key] || 0;\n return c < max ? (count++, r[key] = c + 1, setReg(r), fn(...args)) : void 0;\n };\n handle.left = max - (handle.count = count);\n handle.reset = () => (count = 0, key && ((r) => (delete r[key], setReg(r)))(getReg()));\n handle.block = () => (count = max, key && ((r) => (r[key] = max, setReg(r)))(getReg()));\n return handle;\n}\nvar mockAsync = (timeout = 250) => new Promise((resolve) => setTimeout2(resolve, timeout));\nvar breath = (w = window) => new Promise((res) => w.requestAnimationFrame(res));\nvar deepBreath = (w = window) => new Promise((res) => w.requestAnimationFrame(() => w.requestAnimationFrame(res)));\nfunction bindCleanupToSignal(cleanup, signal) {\n signal?.aborted ? cleanup() : signal?.addEventListener(\"abort\", cleanup, { once: true });\n if (signal && !signal.aborted) cleanup = (() => (signal.removeEventListener(\"abort\", cleanup), cleanup()));\n return cleanup;\n}\n\n// src/ts/core/keys.ts\nimport { KEYS_BLOCKS, parseKeyCombo, stringifyKeyEvent, cleanKeyCombo, matchKeys, getTermsForKey, keyEventAllowed, formatKeyForDisplay, formatKeyShortcutsForDisplay, parseForARIAKS } from \"sia-reactor/utils\";\n\n// src/ts/core/file.ts\nfunction formatSize(bytes, decimals = 3, base = 1e3) {\n if (bytes < base) return `${bytes} byte${bytes == 1 ? \"\" : \"s\"}`;\n const units = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"], exponent = Math.min(Math.floor(Math.log(bytes) / Math.log(base)), units.length - 1);\n return `${(bytes / Math.pow(base, exponent)).toFixed(decimals).replace(/\\.0+$/, \"\")} ${units[exponent]}`;\n}\n\n// src/ts/mixins/methd.ts\nimport { onAllMethods, bindAllMethods, guardAllMethods, guardMethod } from \"sia-reactor/utils\";\n\n// src/ts/index.ts\nif (\"undefined\" !== typeof window) {\n (window.t007 ??= {}).VIRTUAL_RESOURCE = VIRTUAL_RESOURCE;\n window.T007_TOAST_JS_SRC ??= `https://cdn.jsdelivr.net/npm/@t007/toast@latest`;\n window.T007_INPUT_JS_SRC ??= `https://cdn.jsdelivr.net/npm/@t007/input@latest`;\n window.T007_DIALOG_JS_SRC ??= `https://cdn.jsdelivr.net/npm/@t007/dialog@latest`;\n window.T007_TOAST_CSS_SRC ??= `https://cdn.jsdelivr.net/npm/@t007/toast@latest/dist/index.min.css`;\n window.T007_INPUT_CSS_SRC ??= `https://cdn.jsdelivr.net/npm/@t007/input@latest/dist/index.min.css`;\n window.T007_DIALOG_CSS_SRC ??= `https://cdn.jsdelivr.net/npm/@t007/dialog@latest/dist/index.min.css`;\n}\n\nexport {\n createEl,\n assignEl,\n INTERACTIVE_SELECTOR,\n isInteractive,\n VIRTUAL_RESOURCE,\n loadResource,\n getWindow,\n createListRenderer,\n getActiveEl,\n isObj,\n isDef,\n isSym,\n isBool,\n isNum,\n isStr,\n isArr,\n isPOJO,\n isIter,\n isFunc,\n inBoolArrOpt,\n longestIncreasingSubsequence,\n clamp,\n uid,\n capitalize,\n camelize,\n uncamelize,\n remToPx,\n pxToRem,\n parseCSSTime,\n parseCSSSize,\n cleanURL,\n isSameURL,\n setTimeout2 as setTimeout,\n setInterval,\n requestAnimationFrame,\n throttle,\n debounce,\n RAFLoop,\n cancelRAFLoop,\n limited,\n mockAsync,\n breath,\n deepBreath,\n bindCleanupToSignal,\n KEYS_BLOCKS,\n parseKeyCombo,\n stringifyKeyEvent,\n cleanKeyCombo,\n matchKeys,\n getTermsForKey,\n keyEventAllowed,\n formatKeyForDisplay,\n formatKeyShortcutsForDisplay,\n parseForARIAKS,\n formatSize,\n onAllMethods,\n bindAllMethods,\n guardAllMethods,\n guardMethod,\n NIL,\n NOOP2 as NOOP\n};\n","// ============ Constants ============\r\n\r\nexport const FN_KEY = \"tmg_fn_registry\";\r\n\r\nexport const LUID_KEY = \"tmg_local_uid\";\r\n","import { uid as _uid } from \"@t007/utils\";\r\nimport { LUID_KEY } from \"@consts/generics\";\r\n\r\n// Case Conversion\r\nexport { capitalize, camelize, uncamelize } from \"@t007/utils\";\r\n\r\n// Generation\r\nexport const uid = (prefix = \"tmg_\") => _uid(prefix);\r\n\r\nexport function luid(key = LUID_KEY, prefix = \"tmg_local_\"): string {\r\n let id = localStorage.getItem(key);\r\n return !id && localStorage.setItem(key, (id = uid(prefix))), id || \"\";\r\n}\r\n\r\n// Parsers\r\nexport { remToPx, pxToRem, parseCSSTime, parseCSSSize } from \"@t007/utils\";\r\n\r\n// Checkers\r\nexport { cleanURL, isSameURL } from \"@t007/utils\";\r\n\r\n// Fuzzy String Matching\r\nexport function getSimilarity(target: string, spoken: string): number {\r\n if (target === spoken) return 1;\r\n if (target.length < 2 || spoken.length < 2) return 0;\r\n let matches = 0;\r\n for (let i = 0; i < target.length - 1; i++) {\r\n const bigram = target.substring(i, i + 2);\r\n if (spoken.includes(bigram)) matches++;\r\n }\r\n // console.log(`Fuzzy Match: ${target} vs ${spoken} = ${matches} / ${target.length - 1} = ${matches / (target.length - 1)}`);\r\n return matches / (target.length - 1); // Returns a score from 0.0 to 1.0 (e.g., 0.85 = 85% match)\r\n}\r\n\r\nexport function fuzzyMatch(targets: string[], transcript: string, threshold: number): string | null {\r\n const tokens = transcript.split(/\\s+/);\r\n for (const target of targets) {\r\n const targetBlob = target.replace(/[-\\s]/g, \"\");\r\n for (let i = 0; i < tokens.length; i++) {\r\n let rawChunk = \"\",\r\n chunkBlob = \"\";\r\n // Group words together to check multi-word phrases\r\n for (let j = i; j < tokens.length; j++) {\r\n rawChunk += (j === i ? \"\" : \" \") + tokens[j]; // The exact string with spaces\r\n chunkBlob += tokens[j]; // The squashed string for math\r\n if (chunkBlob === targetBlob || getSimilarity(targetBlob, chunkBlob) >= threshold) return rawChunk; // Returns exactly what was spoken (e.g., \"six seven\")\r\n }\r\n }\r\n }\r\n return null;\r\n}\r\n","import { camelize } from \"./str\";\r\nimport type { Control, ControlPanelBottomTuple } from \"@plugs/settings/controlPanel/types\";\r\nimport { type Paths, type PathValue } from \"sia-reactor\";\r\nimport { setPath } from \"sia-reactor/utils\";\r\nimport type { UIObject, UISettings, UIOption, UITuple } from \"@defs/UIOptions\";\r\nimport { isObj, isArr } from \"@t007/utils\";\r\n\r\nexport { isArr, isObj };\r\nexport { isDef, isSym, isBool, isNum, isStr, isPOJO, isIter, isFunc, inBoolArrOpt } from \"@t007/utils\";\r\n\r\n// Type Guards\r\nexport function isUISetting<T = unknown>(obj: unknown): obj is UISettings<T> {\r\n return isObj(obj) && \"options\" in obj && isArr((obj as UISettings<T>).options);\r\n}\r\nexport function isUIOption<T>(opt: UIOption<T>): opt is UITuple<T> {\r\n return isObj(opt) && \"value\" in (opt as object);\r\n}\r\n\r\n// Assignment & Derivation\r\nexport function setHTMLConfig<T extends object>(target: T, attr: `tmg--${Paths<T, \"--\">}`, value: string): void {\r\n value = value.trim();\r\n const path = attr.replace(\"tmg--\", \"\") as Paths<T, \"--\">;\r\n const parsedValue = (() => {\r\n if (value.includes(\",\")) return value.split(\",\")?.map((v: string) => v.trim());\r\n if (value === \"true\") return true;\r\n if (value === \"false\") return false;\r\n if (value === \"null\") return null;\r\n if (/^\\d+$/.test(value)) return Number(value);\r\n return value;\r\n })() as PathValue<T, typeof path, \"--\">;\r\n setPath<T, \"--\">(target, path, parsedValue, \"--\", (p) => camelize(p));\r\n}\r\n\r\nexport function getBoolOrStr(value: string | boolean): string | boolean {\r\n return value === \"true\" ? true : value === \"false\" ? false : value;\r\n}\r\n\r\nexport function getUIOpt<T = unknown>(opts: UIOption<T>[] | undefined, value: T, key: \"display\" | \"value\" = \"display\"): string {\r\n if (opts)\r\n for (const opt of opts) {\r\n const p = parseUIOpt<T>(opt);\r\n if (p.value == value) return p[key] as string;\r\n }\r\n return String(value);\r\n}\r\n\r\nexport function getUniqueOpts<T>(options: UITuple<T>[]) {\r\n const counts: Record<string, number> = {};\r\n options.forEach((opt) => (counts[opt.display] = (counts[opt.display] || 0) + 1)); // First pass: Count occurrences of each display name\r\n const seen: Record<string, number> = {};\r\n for (let i = options.length - 1; i >= 0; i--) {\r\n const opt = options[i];\r\n if (counts[opt.display] > 1) {\r\n seen[opt.display] = (seen[opt.display] || 0) + 1;\r\n const num = counts[opt.display] - seen[opt.display] + 1;\r\n opt.display = `${opt.display} (${num})`;\r\n }\r\n } // Second pass: Add numbers to duplicates, tracking our current index from the back\r\n return options;\r\n}\r\n\r\nexport function parseUIOpt<T = unknown>(opt: UIOption<T>): UITuple<T> {\r\n return isUIOption<T>(opt) ? { value: opt.value, display: String(opt.display ?? opt.value), infoText: opt.infoText } : { value: opt as T, display: String(opt) };\r\n}\r\nexport function parseUIOpts<T = unknown>(opts: UIOption<T>[]): T[] {\r\n return opts.map((opt) => parseUIOpt(opt).value);\r\n}\r\n\r\nexport function parseUIObj<T extends Record<string, any>>(obj: T): UIObject<T> {\r\n const result: any = {} as UIObject<T>,\r\n keys = Object.keys(obj);\r\n for (let i = 0; i < keys.length; i++) {\r\n const entry = obj[keys[i]];\r\n if (!isObj(entry)) continue;\r\n if (isUISetting(entry))\r\n result[keys[i]] = {\r\n values: entry.options.map((opt: UIOption<unknown>) => parseUIOpt(opt).value),\r\n displays: entry.options.map((opt: UIOption<unknown>) => parseUIOpt(opt).display),\r\n };\r\n else result[keys[i]] = parseUIObj(entry); // recurse on sub-branch\r\n }\r\n return result;\r\n}\r\n\r\n// Control Panel Utilities\r\nexport function parsePanelBottomObj(obj: Partial<ControlPanelBottomTuple> | Control[][] | Control[] | unknown, arr?: false): ControlPanelBottomTuple | false;\r\nexport function parsePanelBottomObj(obj: Partial<ControlPanelBottomTuple> | Control[][] | Control[] | unknown, arr: true): Control[] | false;\r\nexport function parsePanelBottomObj(obj: Partial<ControlPanelBottomTuple> | Control[][] | Control[] | unknown = [], arr = false): ControlPanelBottomTuple | Control[] | false {\r\n if (!isObj(obj) && !isArr(obj)) return false;\r\n const [third = [], second = [], first = []] = isObj<Partial<ControlPanelBottomTuple>>(obj) ? (Object.values(obj).reverse() as Control[][]) : isArr((obj as Control[][])[0]) ? [...(obj as Control[][])].reverse() : [obj as Control[]];\r\n return arr ? ([...third, ...second, ...first] as Control[]) : ({ 1: first, 2: second, 3: third } as ControlPanelBottomTuple);\r\n}\r\n\r\nexport function getPanelSplitCtrls<T = any>(row: T[]): { left: T[]; center: T[]; right: T[] } {\r\n if (!row?.length) return { left: [], center: [], right: [] };\r\n const s1 = row.indexOf(\"spacer\" as any),\r\n s2 = row.indexOf(\"spacer\" as any, s1 + 1);\r\n return s1 === -1 ? { left: row, center: [], right: [] } : s2 === -1 ? { left: row.slice(0, s1), center: [], right: row.slice(s1 + 1) } : { left: row.slice(0, s1), center: row.slice(s1 + 1, s2), right: row.slice(s2 + 1) };\r\n}\r\n\r\nexport function getPanelLocation(b: any, id: string) {\r\n if (isArr(b.top) && b.top.includes(id)) return { path: \"top\", row: b.top, zone: getPanelSplitCtrls(b.top).left.includes(id) ? \"left\" : getPanelSplitCtrls(b.top).center.includes(id) ? \"center\" : \"right\" };\r\n if (isArr(b.center) && b.center.includes(id)) return { path: \"center\", row: b.center, zone: \"zone\" };\r\n if (b.bottom) {\r\n const dB = parsePanelBottomObj(b.bottom);\r\n if (dB) for (const k in dB) if ((dB as any)[k]?.includes(id)) return { path: `bottom.${k}`, row: (dB as any)[k], zone: getPanelSplitCtrls((dB as any)[k]).left.includes(id) ? \"left\" : getPanelSplitCtrls((dB as any)[k]).center.includes(id) ? \"center\" : \"right\" };\r\n }\r\n return { path: \"bottom.1\", row: [], zone: \"left\" };\r\n}\r\n\r\nexport function insertPanelCtrl(current: any[], defaults: readonly any[], id: string): void {\r\n let s = 0;\r\n for (let i = 0; i < defaults.indexOf(id); i++) if (defaults[i] === \"spacer\") s++;\r\n for (let i = defaults.indexOf(id) + 1; i < defaults.length; i++)\r\n if (defaults[i] === \"spacer\") {\r\n let c = 0;\r\n for (let j = 0; j < current.length; j++) if (current[j] === \"spacer\" && ++c === s + 1) return void current.splice(j, 0, id);\r\n } else {\r\n const idx = current.indexOf(defaults[i]);\r\n if (idx !== -1) return void current.splice(idx, 0, id);\r\n }\r\n current.push(id);\r\n}\r\n","import { Controllable } from \"@core/controllable\";\r\nimport type { Controller } from \"@core/controller\";\r\nimport type { CtlrMedia, MediaFeatures, MediaStatus } from \"@defs/contract\";\r\nimport { type REvent, type Reactive, ListenerOptions } from \"sia-reactor\";\r\nimport { fanout, force } from \"sia-reactor/utils\";\r\nimport { silence } from \"sia-reactor/modules\";\r\nimport { getMediaStatus } from \"@utils/media\";\r\nimport { capitalize } from \"@utils/str\";\r\nimport { isNum } from \"@utils/obj\";\r\n\r\nexport interface TechConstructor<T extends BaseTech = BaseTech> {\r\n new (ctlr: Controller, features?: MediaFeatures): T;\r\n techName: string;\r\n canPlaySource(src: string): boolean;\r\n}\r\n\r\nexport abstract class BaseTech<El extends HTMLElement = HTMLElement> extends Controllable<Reactive<CtlrMedia>> {\r\n public static readonly techName: string;\r\n public static canPlaySource(_src: string): boolean {\r\n return false;\r\n }\r\n public get name() {\r\n return (this.constructor as TechConstructor).techName;\r\n }\r\n public element!: El;\r\n public get el() {\r\n return this.element;\r\n }\r\n public readonly evtOpts: { EL: AddEventListenerOptions; CONFIG: ListenerOptions } = { EL: { capture: true, signal: this.signal }, CONFIG: { capture: true, signal: this.signal } }; // \"set\" -> Avengers(Resolution lineup) assemble!;\r\n public readonly wiredFeatures: Set<keyof MediaFeatures> = new Set(); // Tracking to avoid rewiring\r\n public wired = false; // for light status checks where needed\r\n protected readonly pending = new Map<string, () => void>();\r\n protected autoChapters: boolean = false;\r\n\r\n constructor(ctlr: Controller, features: MediaFeatures = {}) {\r\n ctlr.media.tech.destroy?.(), ctlr.log(`Using ${new.target.techName} media technology.`);\r\n super(ctlr, ctlr.media);\r\n ctlr.config.mediaPlayer = \"TMG\"; // tell them! tell them!! tell them!!! ~ Kendrick Lamar\r\n this.element = ctlr.media.element as any; // must reassign if not using original\r\n for (const key of Object.keys(ctlr.media.features)) ctlr.media.features[key as keyof MediaFeatures] = false;\r\n fanout(ctlr.media.features, features); // dynamics baby!\r\n }\r\n protected override onSetup(): void {\r\n this.mount();\r\n this.ctlr.state.readyState ? this.wire() : this.ctlr.state.wonce(\"readyState\", this.wire, { signal: this.signal }); // wire after all plugs setup\r\n }\r\n protected override onDestroy(): void {\r\n this.unmount(), (this.config.status.hostReady = false);\r\n }\r\n\r\n public mount(): void {\r\n (this.el as any) !== this.config.element && this.config.element.replaceWith(this.el);\r\n }\r\n public unmount(): void {\r\n (this.el as any) !== this.config.element && this.el.replaceWith(this.config.element);\r\n }\r\n\r\n public wire(): void {\r\n // Variables Assignments\r\n (this.el as any).tmgPlayer = this.config.element.tmgPlayer; // ref is maintained if element was replaced in mount\r\n // Ctlr Media Watchers\r\n this.config.watch(\"state.currentTime\", this.onCurrentTime, this.evtOpts.CONFIG);\r\n // --------- Listeners\r\n this.config.on(\"intent\", this.handleWrite, this.evtOpts.CONFIG); // protecting everybody\r\n this.config.on(\"settings\", this.handleWrite, this.evtOpts.CONFIG);\r\n // Bulk Wiring\r\n this.wireSrc(), this.wireCurrentTime(), this.wireDuration(), this.wirePaused(), this.wireEnded(), this.wireFeatures();\r\n // Post Wiring\r\n !this.ctlr.payload.wired && this.ctlr.isNativeEl && fanout(this.config.status, getMediaStatus(this.el as any, undefined, undefined, true), { skipUndefined: true }); // incase of async init\r\n silence(() => (fanout(this.config.intent, this.config[this.ctlr.techTruth]), fanout(this.config.settings, this.config.settings))); // // over to you, child. it go touch everybodyyyyy, no fear!\r\n !this.ctlr.payload.wired && force(() => this.config.tick()); // state isn't volatile but it must touch\r\n this.wired = true;\r\n }\r\n // --- THE MANDATORY CORE 5 (Media \"Must Haves\") ---\r\n protected abstract wireSrc(): void;\r\n protected abstract wireCurrentTime(): void;\r\n protected abstract wireDuration(): void;\r\n protected abstract wirePaused(): void;\r\n protected abstract wireEnded(): void;\r\n // --- THE EXTENSIONS & WIRING ---\r\n protected wireFeatures(): void {\r\n this.media.on(\"features\", this.handleFeatures, { init: true, signal: this.signal });\r\n }\r\n protected wireFeature(feature: keyof MediaFeatures): void {\r\n !this.wiredFeatures.has(feature) && (this.wiredFeatures.add(feature), (this as any)[`wire${capitalize(feature)}`]?.());\r\n }\r\n // Track Switching Wiring\r\n protected wireCurrentChapter(): void {\r\n this.config.set(\"intent.currentChapter\", (term) => (isNum(term) ? term : this.config.settings.metadata.chapterInfo.findIndex((c) => c.title === term || c.startTime === term || c.artwork === term)), { signal: this.signal }); // #VALIDATOR: intent type conformation\r\n this.config.on(\"intent.currentChapter\", this.handleCurrentChapterIntent, this.evtOpts.CONFIG);\r\n }\r\n // --- THE HANDLERS ---\r\n protected handleFeatures({ type, target }: REvent<CtlrMedia, \"features\">): void {\r\n if (type === \"update\") this.wireFeature(target.key);\r\n else if (type === \"init\") for (const feature of Object.keys(target.value)) this.wireFeature(feature as keyof MediaFeatures);\r\n }\r\n protected handleWrite(e: REvent<CtlrMedia, \"intent\" | \"settings\">): void {\r\n if (e.type === \"update\" && this.config.features[e.target.key as keyof MediaFeatures] === false && e.value) return e.reject(this.name), e.stopImmediatePropagation(); // falsy values pass so that they can turn off but not on\r\n }\r\n protected handleCurrentChapterIntent(e: REvent<CtlrMedia, \"intent.currentChapter\">): void {\r\n if (e.resolved) return;\r\n this.when(\"loadedMetadata\", e, (chapter = this.config.settings.metadata.chapterInfo[e.value as number]) => chapter && (this.media.intent.currentTime = chapter.startTime)); // #VALIDATED: mediated for cast conformity; no-opy // #FACADED: silenced intent actual op\r\n e.resolve(this.name);\r\n }\r\n // Dog Feeders\r\n protected onCurrentTime(v: number): void {\r\n if (!this.autoChapters) return;\r\n const chapters = this.config.settings.metadata.chapterInfo;\r\n if (chapters?.length) for (let len = chapters.length, i = len - 1; i >= 0; i--) if (v >= chapters[i].startTime) return void (this.config.state.currentChapter = i);\r\n this.media.state.currentChapter = -1;\r\n }\r\n // --- THE HELPERS ---\r\n public when<Evt extends REvent<CtlrMedia>>(status: keyof MediaStatus, e: Evt, task: () => void, always = true, _key = status + e.path, _value = !always && !(this.ctlr.state.readyState < 3) ? true : this.config.status[status], _log = !this.config.status[status]): void {\r\n const callback = this.ctlr.guard((v: any, __: any, late = true) => v && (late && this.pending.get(_key)?.(), this.pending.delete(_key), task(), _log && console.log(`Pending task for ${status} ${e.path} executed with ${e.value}.`, this.config.status[status], this.ctlr.payload.readyState)));\r\n this.pending.get(_key)?.(), _value ? callback(_value, null, false) : this.pending.set(_key, this.config.watch(`status.${status}`, callback, { signal: this.signal }));\r\n } // #PATIENT: only after first play (`always`)\r\n}\r\n\r\ndeclare module \"@defs/contract\" {\r\n interface MediaStatus {\r\n hostReady: boolean;\r\n }\r\n}\r\n","import { isNum } from \"@t007/utils\";\r\n\r\n// Media Time Formatting\r\nexport function formatMediaTime({ time, format = \"digital\", elapsed = true, showMs = false, casing = \"normal\" }: { time?: number; format?: string; elapsed?: boolean; showMs?: boolean; casing?: \"normal\" | \"upper\" | \"title\" } = { time: 0 }): string {\r\n const long = format.endsWith(\"long\"),\r\n sx = (n = 0) => (n == 1 ? \"\" : \"s\"),\r\n cs = (str: string) => (casing === \"upper\" ? str.toUpperCase() : casing === \"title\" ? str.replace(/^([a-z])/i, (m) => m.toUpperCase()) : str.toLowerCase()),\r\n wrd = (n = 0) => ({ d: cs(long ? \" day\" + sx(n) + \" \" : \"d\"), h: cs(long ? \" hour\" + sx(n) + \" \" : \"h\"), m: cs(long ? \" minute\" + sx(n) + \" \" : \"m\"), s: cs(long ? \" second\" + sx(n) + \" \" : \"s\"), ms: cs(long ? \" millisecond\" + sx(n) + \" \" : \"ms\") }),\r\n pad = (v: string | number, n = 2, f?: boolean) => (long && !f ? v : String(v).padStart(n, isNum(+n) ? \"0\" : \"-\"));\r\n if (isNaN(time ?? NaN) || time === Infinity) return format !== \"digital\" ? (\"-\" + wrd().h + pad(\"-\") + wrd().m + (!elapsed ? \"left\" : \"\")).trim() : !elapsed ? \"-:--\" : \"-:--\";\r\n const s = Math.floor(Math.abs(time!) % 60),\r\n m = Math.floor(Math.abs(time!) / 60) % 60,\r\n h = Math.floor(Math.abs(time!) / 3600) % 24,\r\n d = Math.floor(Math.abs(time!) / 86400),\r\n ms = Math.floor((Math.abs(time!) % 1) * 1000); // returns early so \"!\"\r\n if (format === \"digital\") {\r\n const base = d ? d + \":\" + pad(h, 2, true) + \":\" + pad(m, 2, true) + \":\" + pad(s, 2, true) : h ? h + \":\" + pad(m, 2, true) + \":\" + pad(s, 2, true) : m + \":\" + pad(s, 2, true);\r\n return !elapsed ? \"-\" + base : base;\r\n }\r\n const base = d ? d + wrd(d).d + pad(h) + wrd(h).h + pad(m) + wrd(m).m + pad(s) + wrd(s).s : h ? h + wrd(h).h + pad(m) + wrd(m).m + pad(s) + wrd(s).s : m + wrd(m).m + pad(s) + wrd(s).s,\r\n msPart = showMs && ms ? pad(ms, 3) + wrd(ms).ms : \"\";\r\n return (base + msPart + (!long ? \" \" : \"\") + (!elapsed ? \"left\" : \"\")).trim();\r\n}\r\n\r\n// Time Ranges\r\n\r\nexport function createTimeRanges(ranges?: [number, number][] | TimeRanges | ArrayLike<any>): TimeRanges {\r\n if (ranges instanceof TimeRanges) return ranges;\r\n if (!ranges)\r\n return Object.create(TimeRanges.prototype, {\r\n length: { value: 0 },\r\n start: {\r\n value: () => {\r\n throw new DOMException(\"Index out of bounds\", \"IndexSizeError\");\r\n },\r\n },\r\n end: {\r\n value: () => {\r\n throw new DOMException(\"Index out of bounds\", \"IndexSizeError\");\r\n },\r\n },\r\n });\r\n // 1. Sort incoming intervals chronologically by start time\r\n const rawPairs = (Array.isArray(ranges) ? ranges : Array.from(ranges as ArrayLike<any>)).sort((a, b) => a[0] - b[0]);\r\n // 2. Spec Normalization Loop: Merge overlapping or touching timelines\r\n const pairs: [number, number][] = [];\r\n for (const current of rawPairs) {\r\n const last = pairs[pairs.length - 1];\r\n if (!last || current[0] > last[1]) pairs.push([current[0], current[1]]); // Clean discontinuity gap\r\n else last[1] = Math.max(last[1], current[1]); // Normalization: merge overlaps!\r\n }\r\n // 3. Return a fully normalized interface literal\r\n return Object.create(TimeRanges.prototype, {\r\n length: { value: pairs.length },\r\n start: {\r\n value: (i: number) => {\r\n if (i < 0 || i >= pairs.length) throw new DOMException(\"Index out of bounds\", \"IndexSizeError\");\r\n return pairs[i][0];\r\n },\r\n },\r\n end: {\r\n value: (i: number) => {\r\n if (i < 0 || i >= pairs.length) throw new DOMException(\"Index out of bounds\", \"IndexSizeError\");\r\n return pairs[i][1];\r\n },\r\n },\r\n });\r\n}\r\n","import { createTimeRanges } from \"@utils/time\";\r\nimport type { MediaIntent, MediaState, MediaStatus, MediaSettings } from \"@defs/contract\";\r\nimport { DeepPartial } from \"sia-reactor\";\r\n\r\n// DEFAULT STATE (The Reality)\r\nexport const MEDIA_STATE_BUILD: Partial<MediaState> = {\r\n // Core\r\n src: \"\", // 1st for correct fanout sequence\r\n currentTime: 0,\r\n paused: true,\r\n // Engine\r\n volume: 100,\r\n muted: false,\r\n brightness: 100,\r\n dark: false,\r\n playbackRate: 1,\r\n // Modes\r\n pictureInPicture: false,\r\n fullscreen: false,\r\n theater: false,\r\n miniplayer: false,\r\n locked: false,\r\n // Casting\r\n airplay: false,\r\n cast: false,\r\n // VR / XR\r\n xrSession: false,\r\n xrMode: \"inline\",\r\n xrReferenceSpace: \"local\",\r\n projection: \"flat\",\r\n stereoMode: \"none\",\r\n fieldOfView: 90, // Standard FOV\r\n viewRatio: 16 / 9, // Standard Aspect Ratio\r\n panningX: 0,\r\n panningY: 0,\r\n panningZ: 0,\r\n xrInputSource: [],\r\n // Tracks & Streaming\r\n currentChapter: -1,\r\n currentTextTrack: -1,\r\n currentAudioTrack: -1,\r\n currentVideoTrack: -1,\r\n currentLevel: -1,\r\n textVisible: true,\r\n autoLevel: true, // Adaptive Streaming on by default\r\n // HTML Attributes\r\n poster: \"\",\r\n autoplay: false,\r\n loop: false,\r\n preload: \"auto\",\r\n playsInline: true,\r\n crossOrigin: null,\r\n controls: false, // We disable native controls\r\n controlsList: \"\",\r\n disablePictureInPicture: false,\r\n // HTML Lists\r\n sources: [],\r\n tracks: [],\r\n // Live Content\r\n live: true,\r\n // Misc\r\n objectFit: \"contain\",\r\n};\r\n\r\n// DEFAULT INTENT (The Wishes)\r\nexport const MEDIA_INTENT_BUILD: Partial<MediaIntent> = MEDIA_STATE_BUILD as MediaIntent; // Intent starts as State but can diverge\r\n\r\n// DEFAULT INFO (The Facts)\r\nexport const MEDIA_STATUS_BUILD: Partial<MediaStatus> = {\r\n // Network\r\n readyState: 0, // HAVE_NOTHING\r\n networkState: 0, // EMPTY\r\n error: null,\r\n bandwidth: null,\r\n // Buffering\r\n waiting: false,\r\n stalled: false,\r\n seeking: false,\r\n buffered: createTimeRanges(),\r\n played: createTimeRanges(),\r\n seekable: createTimeRanges(),\r\n duration: NaN, // HTML5 Standard for \"Unknown\"\r\n ended: false,\r\n // Dimensions\r\n videoWidth: 0,\r\n videoHeight: 0,\r\n // Gates\r\n loadedMetadata: false,\r\n loadedData: false,\r\n canPlay: false,\r\n canPlayThrough: false,\r\n // Lists (We start with empty lists or nulls)\r\n textTracks: [],\r\n audioTracks: [],\r\n videoTracks: [],\r\n levels: [],\r\n // Active\r\n activeCue: null,\r\n // VR\r\n xrCapabilities: null,\r\n // Live Content\r\n isLive: false,\r\n canSeekLive: false,\r\n};\r\n\r\n// DEFAULT SETTINGS (The Config)\r\nexport const MEDIA_SETTINGS_BUILD: DeepPartial<MediaSettings> = {\r\n // Defaults\r\n defaultMuted: false,\r\n defaultPlaybackRate: 1,\r\n // Streams\r\n srcObject: null,\r\n // Metadata\r\n metadata: {\r\n title: \"\",\r\n artist: \"\",\r\n profile: \"\",\r\n album: \"\",\r\n artwork: [],\r\n chapterInfo: [],\r\n links: {\r\n title: \"\",\r\n artist: \"\",\r\n profile: \"\",\r\n },\r\n allowOverride: true,\r\n },\r\n protection: null,\r\n // Live Content\r\n liveTolerance: 6,\r\n minDVRWindow: 60,\r\n};\r\n","import { NOOP } from \"sia-reactor\";\r\nimport { bindCleanupToSignal as bindSig } from \"./fn\";\r\nconst win = \"undefined\" !== typeof window ? window : undefined;\r\n\r\n// Element Factory\r\nexport { createEl, assignEl, getWindow, createListRenderer } from \"@t007/utils\";\r\nexport { initVScrollerator } from \"@t007/utils/hooks/vanilla\";\r\n\r\n// Resource Loading\r\nexport { loadResource } from \"@t007/utils\";\r\n\r\n// Viewport Checks\r\nexport function inDocView(el: Element, axis: \"x\" | \"y\" = \"y\"): boolean {\r\n const rect = el.getBoundingClientRect(),\r\n inX = rect.left + win!.scrollX >= 0 && rect.right + win!.scrollX <= win!.scrollX + (win!.innerWidth || win!.document.documentElement.clientWidth),\r\n inY = rect.top + win!.scrollY >= 0 && rect.bottom + win!.scrollY <= win!.scrollY + (win!.innerHeight || win!.document.documentElement.clientHeight);\r\n return axis === \"x\" ? inY : axis === \"y\" ? inX : inY && inX;\r\n}\r\n\r\nexport function getElSiblingAt(p: number, dir: \"x\" | \"y\", els: HTMLElement[] | NodeListOf<HTMLElement>, pos: \"before\" | \"after\" | \"at\" = \"after\"): HTMLElement | undefined {\r\n return (\r\n els.length &&\r\n (\r\n Array.prototype.reduce.call(\r\n els,\r\n ((closest: { offset: number; element: Element | undefined }, child: Element) => {\r\n const { top: cT, left: cL, width: cW, height: cH } = child.getBoundingClientRect(),\r\n offset = p - (dir === \"y\" ? cT : cL) - (dir === \"y\" ? cH : cW) / 2,\r\n condition = pos === \"after\" ? offset < 0 && offset > closest.offset : pos === \"before\" ? offset > 0 && offset < closest.offset : pos === \"at\" ? Math.abs(offset) <= (dir === \"y\" ? cH : cW) / 2 && Math.abs(offset) < Math.abs(closest.offset) : false;\r\n return condition ? { offset, element: child } : closest;\r\n }) as any,\r\n { offset: pos === \"after\" ? -Infinity : Infinity, element: undefined }\r\n ) as any\r\n ).element\r\n );\r\n}\r\n\r\n// Fullscreen & Picture-in-Picture\r\nexport const queryFullscreen = (): boolean => Boolean(queryFullscreenEl());\r\nexport const queryFullscreenEl = (d = document as any): Element | null => d.fullscreenElement || d.webkitFullscreenElement || d.mozFullScreenElement || d.msFullscreenElement || null;\r\n\r\nexport const queryPictureInPicture = (): boolean => Boolean(queryPictureInPictureEl());\r\nexport const queryPictureInPictureEl = () => document.pictureInPictureElement;\r\n\r\nexport const supportsFullscreen = (vp = HTMLVideoElement.prototype as any, d = document as any) => Boolean(d.fullscreenEnabled || d.mozFullscreenEnabled || d.msFullscreenEnabled || d.webkitFullscreenEnabled || d.webkitSupportsFullscreen || vp.webkitEnterFullscreen);\r\nexport const supportsPictureInPicture = (vp = HTMLVideoElement.prototype as any, d = document as any, w = window as any) => Boolean(d.pictureInPictureEnabled || vp.requestPictureInPicture || w.documentPictureInPicture);\r\n\r\nexport const enterFullscreen = (el: any): Promise<void> => (el.webkitEnterFullscreen ? el.webkitEnterFullscreen() : el.requestFullscreen ? el.requestFullscreen() : el.mozRequestFullScreen ? el.mozRequestFullScreen() : el.webkitRequestFullscreen ? el.webkitRequestFullscreen() : el.msRequestFullscreen ? el.msRequestFullscreen() : Promise.reject(new Error(\"Fullscreen API is not supported\")));\r\nexport const exitFullscreen = (el: any, d = document as any): Promise<void> => (queryFullscreenEl(d) === el ? (el.webkitExitFullscreen ? el.webkitExitFullscreen() : d.exitFullscreen ? d.exitFullscreen() : d.mozCancelFullScreen ? d.mozCancelFullScreen() : d.webkitExitFullscreen ? d.webkitExitFullscreen() : d.msExitFullscreen ? d.msExitFullscreen() : Promise.reject(new Error(\"Fullscreen API is not supported\"))) : Promise.resolve());\r\n\r\n// Safe Click Handling\r\ntype SafeClickEl = HTMLElement & {\r\n _clickHandler?: (e: MouseEvent) => void;\r\n _dblClickHandler?: (e: MouseEvent) => void;\r\n _clickTimeoutId?: ReturnType<typeof setTimeout>;\r\n};\r\nexport function addSafeClicks(el?: SafeClickEl | null, onClick: (e: MouseEvent) => any = NOOP, onDblClick: (e: MouseEvent) => any = NOOP, options?: boolean | AddEventListenerOptions): void {\r\n el && removeSafeClicks(el);\r\n el?.addEventListener(\"click\", (el._clickHandler = (e: MouseEvent) => (clearTimeout(el._clickTimeoutId), (el._clickTimeoutId = setTimeout(() => onClick(e), 300)))), options);\r\n el?.addEventListener(\"dblclick\", (el._dblClickHandler = (e: MouseEvent) => (clearTimeout(el._clickTimeoutId), onDblClick(e))), options);\r\n}\r\nexport function removeSafeClicks(el?: SafeClickEl | null): void {\r\n el?.removeEventListener(\"click\", el._clickHandler as EventListener);\r\n el?.removeEventListener(\"dblclick\", el._dblClickHandler as EventListener);\r\n}\r\n\r\n// DOM Observers\r\ndeclare global {\r\n interface Element {\r\n _resizeCbs?: Set<(entry: ResizeObserverEntry) => void>;\r\n _intersectCbs?: Set<(entry: IntersectionObserverEntry) => void>;\r\n _mutationCbs?: Set<(mutations: MutationRecord[]) => void>;\r\n }\r\n}\r\n\r\nexport const intersectionObserver = win\r\n ? new IntersectionObserver(\r\n (entries) => {\r\n for (const entry of entries) if (entry.target._intersectCbs) for (const cb of entry.target._intersectCbs) cb(entry);\r\n },\r\n { root: null, rootMargin: \"0px\", threshold: 0.3 }\r\n )\r\n : null;\r\n\r\nexport const resizeObserver = win\r\n ? new ResizeObserver((entries) => {\r\n for (const entry of entries) if (entry.target._resizeCbs) for (const cb of entry.target._resizeCbs) cb(entry);\r\n })\r\n : null;\r\n\r\nexport const mutationObserver = win\r\n ? new MutationObserver((mutations) => {\r\n // Dispatch to specific targets if they are being observed directly\r\n // Note: MutationObserver works differently; this handles the 'root' observer callbacks\r\n // We map the *target* of the observation, not the mutation target usually.\r\n // For this util, we assume the observer instance calls the callback associated with the observed node.\r\n // Since we use one global observer, we need to map back.\r\n // Actually, for MutationObserver it's cleaner to keep separate instances if configs differ,\r\n // but for \"utils\" style, we can use a Map logic or just basic callback sets.\r\n // Current implementation assumes the caller handles the mutation list.\r\n const target = mutations[0].target as Element; // Batch usually targets one observer\r\n if (target._mutationCbs) for (const cb of target._mutationCbs) cb(mutations);\r\n })\r\n : null;\r\n\r\n// --- PUBLIC API ---\r\nexport function observeResize(el: Element, cb: (entry: ResizeObserverEntry) => void, sig?: AbortSignal) {\r\n (el._resizeCbs ?? (el._resizeCbs = new Set())).add(cb);\r\n resizeObserver?.observe(el);\r\n return bindSig(() => (el._resizeCbs?.delete(cb), !el._resizeCbs?.size && resizeObserver?.unobserve(el)), sig);\r\n}\r\n\r\nexport function observeIntersection(el: Element, cb: (entry: IntersectionObserverEntry) => void, sig?: AbortSignal) {\r\n (el._intersectCbs ?? (el._intersectCbs = new Set())).add(cb);\r\n intersectionObserver?.observe(el);\r\n return bindSig(() => (el._intersectCbs?.delete(cb), !el._intersectCbs?.size && intersectionObserver?.unobserve(el)), sig);\r\n}\r\n\r\nexport function observeMutation(el: Element, cb: (mutations: MutationRecord[]) => void, options: MutationObserverInit, sig?: AbortSignal) {\r\n (el._mutationCbs ?? (el._mutationCbs = new Set())).add(cb);\r\n mutationObserver?.observe(el, options);\r\n return bindSig(() => el._mutationCbs?.delete(cb), sig);\r\n}\r\n","import { MEDIA_INTENT_BUILD, MEDIA_SETTINGS_BUILD, MEDIA_STATE_BUILD, MEDIA_STATUS_BUILD } from \"@consts/media\";\r\nimport { MediaState, MediaStatus, MediaSettings, MediaReport, CtlrMedia } from \"@defs/contract\";\r\nimport { isStr, isNum, isIter, isSameURL, cleanURL } from \"@t007/utils\";\r\nimport { createEl } from \"@utils/dom\";\r\nimport { queryFullscreenEl, queryPictureInPictureEl } from \"@utils/dom\";\r\nimport { Dimensions, MediaType, Source, Sources, Track, Tracks } from \"@defs/generics\";\r\nimport { mergeObjs as merge } from \"sia-reactor/utils\";\r\nimport { DeepPartial } from \"sia-reactor\";\r\n\r\n// ============ Video Utilities ============\r\n// Types\r\ntype SourceLike = Source | (HTMLSourceElement & Record<string, any>);\r\ntype TrackLike = Track | (HTMLTrackElement & Record<string, any>);\r\n\r\n// Report Generation\r\nexport function getMediaReport(m: HTMLMediaElement, isVid = m instanceof HTMLVideoElement, opts = { skipUndefined: true }): MediaReport {\r\n const txtTrackIdx = getTrackIdx(m, \"Text\"),\r\n report = { state: getMediaState(m, isVid, txtTrackIdx), status: getMediaStatus(m, isVid, txtTrackIdx), settings: getMediaSettings(m) };\r\n return { state: merge(MEDIA_STATE_BUILD, report.state, opts), intent: merge(MEDIA_INTENT_BUILD, report.state, opts), status: merge(MEDIA_STATUS_BUILD, report.status, opts), settings: merge(MEDIA_SETTINGS_BUILD, report.settings, opts) } as MediaReport;\r\n}\r\nexport const getMediaState = (m: HTMLMediaElement, isVid = m instanceof HTMLVideoElement, _txtTrackIdx = getTrackIdx(m, \"Text\")): Partial<MediaState> => ({ src: m.src, currentTime: m.currentTime, paused: m.paused, volume: m.volume * 100, muted: m.muted, playbackRate: m.playbackRate, pictureInPicture: queryPictureInPictureEl() === m, fullscreen: queryFullscreenEl() === m, currentTextTrack: _txtTrackIdx, currentAudioTrack: getTrackIdx(m, \"Audio\"), currentVideoTrack: getTrackIdx(m, \"Video\"), poster: isVid ? (m as HTMLVideoElement).poster : \"\", autoplay: m.autoplay, loop: m.loop, preload: m.preload, playsInline: isVid ? m.playsInline : false, crossOrigin: m.crossOrigin, controls: m.controls, controlsList: m.controlsList ?? m.getAttribute(\"controlsList\"), disablePictureInPicture: isVid ? m.disablePictureInPicture ?? m.hasAttribute(\"disablePictureInPicture\") : false, sources: getSources(m), tracks: getTracks(m) });\r\nexport const getMediaStatus = (m: HTMLMediaElement, isVid = m instanceof HTMLVideoElement, _txtTrackIdx = getTrackIdx(m, \"Text\"), _flagsOnly = false): Partial<MediaStatus> => ({ readyState: m.readyState, networkState: m.networkState, error: m.error, seeking: m.seeking, buffered: m.buffered, played: m.played, seekable: m.seekable, duration: m.duration, ended: m.ended, loadedMetadata: m.readyState >= 1, loadedData: m.readyState >= 2, canPlay: m.readyState >= 3, canPlayThrough: m.readyState >= 4, videoWidth: isVid ? (m as HTMLVideoElement).videoWidth : 0, videoHeight: isVid ? (m as HTMLVideoElement).videoHeight : 0, textTracks: _flagsOnly ? undefined : m.textTracks, audioTracks: _flagsOnly ? undefined : (m as any).audioTracks, videoTracks: _flagsOnly ? undefined : (m as any).videoTracks, activeCue: _flagsOnly ? undefined : m.textTracks[_txtTrackIdx]?.activeCues?.[0] || null });\r\nexport const getMediaSettings = (m: HTMLMediaElement): DeepPartial<MediaSettings> => ({ defaultMuted: m.defaultMuted, defaultPlaybackRate: m.defaultPlaybackRate, srcObject: m.srcObject });\r\n\r\nexport function getMediaProgress({ state: s, status: st }: CtlrMedia, time = s.currentTime): number {\r\n if (st.isLive) {\r\n if (!st.seekable.length || s.live) return 1;\r\n const min = st.seekable.start(0),\r\n dvr = st.seekable.end(st.seekable.length - 1) - min;\r\n return dvr > 0 ? (time - min) / dvr : 1;\r\n } else return time / st.duration;\r\n}\r\nexport const getMediaTime = (media: CtlrMedia, percent: number, _min = getMediaMin(media)): number => (media.status.isLive ? _min! + percent * (getMediaMax(media) - _min!) : percent * media.status.duration);\r\nexport const getMediaMin = ({ status: st, state: s }: Pick<CtlrMedia, \"state\" | \"status\">): number => (st.isLive ? (st.seekable.length ? (st.canSeekLive ? st.seekable.start(0) : st.seekable.end(st.seekable.length - 1)) : s.currentTime) : 0); // live?, can't seek?, jump to edge\r\nexport const getMediaMax = ({ status: st, state: s }: Pick<CtlrMedia, \"state\" | \"status\">): number => (st.isLive ? (st.seekable.length ? st.seekable.end(st.seekable.length - 1) : s.currentTime) : st.duration);\r\n\r\nexport function getBooleanMediaProps(media: CtlrMedia, prop: \"intent\" | \"state\" = \"intent\"): string[] {\r\n return Object.keys(media[prop]).filter((k) => typeof media[prop][k as keyof MediaState] === \"boolean\");\r\n}\r\n\r\n// Geometry\r\nexport function getRenderedBox({ videoHeight, videoWidth }: { videoHeight?: number; videoWidth?: number }, { width: clientWidth = 0, height: clientHeight = 0 }: { width?: number; height?: number }, { objectFit = \"cover\", objectPosition = \"50% 50%\" }: { objectFit?: string; objectPosition?: string }): Partial<Dimensions & { left: number; top: number }> {\r\n const bbox = { width: clientWidth, height: clientHeight } as DOMRect,\r\n obj = (((videoHeight ||= 1080), (videoWidth ||= videoHeight * (16 / 9))), videoWidth && videoHeight ? { width: videoWidth, height: videoHeight } : null);\r\n if (!obj || !objectFit || !objectPosition) return {};\r\n if (objectFit === \"scale-down\") objectFit = bbox.width < obj.width || bbox.height < obj.height ? \"contain\" : \"none\";\r\n if (objectFit === \"none\") return { ...parseObjectPos(objectPosition, bbox, obj), ...obj };\r\n else if (objectFit === \"contain\") {\r\n const objRatio = obj.height / obj.width,\r\n bboxRatio = bbox.height / bbox.width,\r\n width = bboxRatio > objRatio ? bbox.width : bbox.height / objRatio,\r\n height = bboxRatio > objRatio ? bbox.width * objRatio : bbox.height;\r\n return { ...parseObjectPos(objectPosition, bbox, { width, height }), width, height };\r\n } else if (objectFit === \"fill\") {\r\n const { left, top, rawLeft, rawTop } = parseObjectPos(objectPosition, bbox, obj);\r\n return { left: rawLeft.endsWith(\"%\") ? 0 : left, top: rawTop.endsWith(\"%\") ? 0 : top, width: bbox.width, height: bbox.height }; // Relative positioning is discarded with `obj-fit: fill`, so we need to check here if it's relative or not\r\n } else if (objectFit === \"cover\") {\r\n const minRatio = Math.min(bbox.width / obj.width, bbox.height / obj.height);\r\n let width = obj.width * minRatio,\r\n height = obj.height * minRatio,\r\n outRatio = 1;\r\n if (width < bbox.width) outRatio = bbox.width / width;\r\n if (Math.abs(outRatio - 1) < 1e-14 && height < bbox.height) outRatio = bbox.height / height;\r\n (width *= outRatio), (height *= outRatio);\r\n return { ...parseObjectPos(objectPosition, bbox, { width, height }), width, height };\r\n }\r\n return {};\r\n}\r\nconst parsePosAsPx = (str: string, bboxSize: number, objectSize: number): number => {\r\n str === \"center\" ? (str = \"50%\") : str === \"left\" || str === \"top\" ? (str = \"0%\") : (str === \"right\" || str === \"bottom\") && (str = \"100%\");\r\n const num = parseFloat(str);\r\n return !str.endsWith(\"%\") ? num : (bboxSize - objectSize) * (num / 100);\r\n};\r\nconst parseObjectPos = (position: string, bbox: DOMRect, object: Dimensions): { left: number; top: number; rawLeft: string; rawTop: string } => {\r\n if (position === \"center\") position = \"50% 50%\";\r\n const [left, top = \"50%\"] = position.split(\" \");\r\n return { left: parsePosAsPx(left, bbox.width, object.width), top: parsePosAsPx(top, bbox.height, object.height), rawLeft: left, rawTop: top };\r\n};\r\n\r\nexport function getSizeTier(container: HTMLElement, { offsetWidth: w, offsetHeight: h } = container) {\r\n return { width: w, height: h, tier: h <= 130 ? \"xxxxx\" : w <= 280 ? \"xxxx\" : w <= 380 ? \"xxx\" : w <= 480 ? \"xx\" : w <= 630 ? \"x\" : \"\" };\r\n}\r\n\r\n// Media Element Cloning\r\nexport function cloneMedia<M extends HTMLMediaElement>(v: M): M {\r\n const newV = v.cloneNode(true) as M;\r\n newV.tmgPlayer = v.tmgPlayer;\r\n v.parentElement?.replaceChild(newV, v);\r\n if (v.currentTime) newV.currentTime = v.currentTime;\r\n if (v.playbackRate !== 1) newV.playbackRate = v.playbackRate;\r\n if (v.defaultPlaybackRate !== 1) newV.defaultPlaybackRate = v.defaultPlaybackRate;\r\n if (v.volume !== 1) newV.volume = v.volume;\r\n if (v.muted) newV.muted = true;\r\n if (v.defaultMuted) newV.defaultMuted = true;\r\n if (v.srcObject) newV.srcObject = v.srcObject;\r\n if (v.autoplay) newV.autoplay = true;\r\n if (v.loop) newV.loop = true;\r\n if (v.controls) newV.controls = true;\r\n if (v.crossOrigin) newV.crossOrigin = v.crossOrigin;\r\n if (v.playsInline) newV.playsInline = true;\r\n if (v.controlsList?.length) newV.controlsList = v.controlsList;\r\n if (v.disablePictureInPicture) newV.disablePictureInPicture = true;\r\n if (!v.paused && newV.isConnected) newV.play();\r\n return newV;\r\n}\r\n\r\n// Source Management\r\nexport function putSourceDetails(source: any, el: HTMLSourceElement | Record<string, any>): void {\r\n if (source.src) el.src = source.src;\r\n if (source.type) el.type = source.type;\r\n if (source.media) el.media = source.media;\r\n}\r\nexport function addSources(sources: SourceLike | Iterable<SourceLike> = [], medium: HTMLElement): HTMLSourceElement | HTMLSourceElement[] {\r\n const addSource = (source: SourceLike, med: HTMLElement) => {\r\n const sourceEl = createEl(\"source\");\r\n putSourceDetails(source, sourceEl);\r\n return med.appendChild(sourceEl);\r\n };\r\n return isIter(sources) ? Array.from(sources as Iterable<SourceLike>, (source) => addSource(source, medium)) : addSource(sources, medium);\r\n}\r\nexport function getSources(medium: HTMLElement): MediaState[\"sources\"] {\r\n const sources = medium.querySelectorAll<HTMLSourceElement>(\"source\"),\r\n _sources: SourceLike[] = [];\r\n for (const source of sources) {\r\n const obj: Record<string, any> = {};\r\n putSourceDetails(source, obj);\r\n _sources.push(obj as SourceLike);\r\n }\r\n return _sources as MediaState[\"sources\"];\r\n}\r\nexport const removeSources = (medium: HTMLElement, sources = medium?.querySelectorAll(\"source\")): void => {\r\n if (sources) for (const source of sources) source.remove();\r\n};\r\nexport function isSameSources(a?: Sources, b?: Sources): boolean {\r\n if (!a || !b || a.length !== b.length) return false;\r\n const set = new Set(b.map((s) => `${cleanURL(s.src)}|${s.type}|${s.media}`));\r\n return a.every((s) => set.has(`${cleanURL(s.src)}|${s.type}|${s.media}`));\r\n}\r\n\r\n// Track Management\r\nexport type TrackType = \"Audio\" | \"Video\" | \"Text\";\r\nexport function putTrackDetails(track: any, el: HTMLTrackElement | Record<string, any>): void {\r\n if (track.id) el.id = track.id;\r\n if (track.kind) el.kind = track.kind;\r\n if (track.label) el.label = track.label;\r\n if (track.srclang) el.srclang = track.srclang;\r\n if (track.src) el.src = track.src;\r\n if (track.default) el.default = track.default;\r\n}\r\nexport function addTracks(tracks: TrackLike | Iterable<TrackLike> = [], medium: HTMLElement): HTMLTrackElement | HTMLTrackElement[] {\r\n const addTrack = (track: TrackLike, med: HTMLElement) => {\r\n const trackEl = createEl(\"track\");\r\n return putTrackDetails(track, trackEl), med.appendChild(trackEl);\r\n };\r\n return isIter(tracks) ? Array.from(tracks as Iterable<TrackLike>, (track) => addTrack(track, medium)) : addTrack(tracks, medium);\r\n}\r\nexport function getTracks(medium: HTMLElement, cues = false): TrackLike[] {\r\n const tracks = medium.querySelectorAll<HTMLTrackElement>(!cues ? \"track\" : \"track:is([kind='captions'], [kind='subtitles'])\"),\r\n _tracks: TrackLike[] = [];\r\n for (const track of tracks) {\r\n const obj: Record<string, any> = {};\r\n putTrackDetails(track, obj), _tracks.push(obj as TrackLike);\r\n }\r\n return _tracks;\r\n}\r\nexport const removeTracks = (medium: HTMLElement, tracks = medium?.querySelectorAll(\"track\")): void => {\r\n if (tracks) for (const track of tracks) if (track.kind === \"subtitles\" || track.kind === \"captions\") track.remove();\r\n};\r\nexport function isSameTracks(a?: Tracks, b?: Tracks): boolean {\r\n if (!a || !b || a.length !== b.length) return false;\r\n const set = new Set(b.map((t) => `${cleanURL(t.src)}|${t.kind}|${t.label}|${t.srclang}|${t.default}`));\r\n return a.every((t) => set.has(`${cleanURL(t.src)}|${t.kind}|${t.label}|${t.srclang}|${t.default}`));\r\n}\r\nconst isTrack = (type: TrackType, term: any) => `${type}Track` in window && term instanceof (window as any)[`${type}Track`];\r\nexport function getTrackIdx(medium: HTMLMediaElement, type: TrackType = \"Text\", term: any = \"active\", list = (medium as any)[`${type.toLowerCase()}Tracks`]): number {\r\n if (isNum(term)) return term;\r\n if (list && term === \"active\") {\r\n if (type === \"Text\") for (let i = 0; i < +list.length; i++) if (list[i].mode === \"showing\") return i;\r\n if (type === \"Audio\") for (let i = 0; i < +list.length; i++) if (list[i].enabled) return i;\r\n if (type === \"Video\") return list.selectedIndex ?? -1;\r\n }\r\n if (list && isTrack(type, term)) return Array.prototype.indexOf.call(list, term);\r\n if (list && isStr(term)) {\r\n term = term.toLowerCase();\r\n return !isNaN(+term) ? +term : Array.prototype.findIndex.call(list, (t: any) => t.id.toLowerCase() === term || t.label.toLowerCase() === term || t.srclang?.toLowerCase() === term || t.language.toLowerCase() === term || isSameURL(t.src, term));\r\n }\r\n return -1;\r\n}\r\nexport function setCurrentTrack(medium: HTMLMediaElement, type: TrackType = \"Text\", term: any, flush = false, list = (medium as any)[`${type.toLowerCase()}Tracks`]): void {\r\n const idx = getTrackIdx(medium, type, term, list);\r\n if (list && type !== \"Video\") for (let i = 0; i < list.length; i++) type === \"Text\" ? (list[i].mode = i === idx ? \"showing\" : flush ? \"disabled\" : \"hidden\") : (list[i].enabled = i === idx);\r\n else list?.[idx] && (list[idx].selected = true);\r\n}\r\n\r\n// Capbailities\r\nexport const DUMMY_VID = createEl(\"video\");\r\nexport const DUMMY_AUD = createEl(\"audio\");\r\nexport function canUseVolume(type: MediaType = \"video\", dummy = type === \"video\" ? DUMMY_VID : DUMMY_AUD): boolean {\r\n try {\r\n const prev = dummy.volume;\r\n dummy.volume = 0.5;\r\n const works = dummy.volume === 0.5;\r\n return (dummy.volume = prev), works;\r\n } catch {\r\n return false;\r\n }\r\n}\r\nexport const canMuteVolume = (type: MediaType = \"video\", dummy = type === \"video\" ? DUMMY_VID : DUMMY_AUD): boolean => !!dummy && \"muted\" in dummy;\r\nexport function canUseRate(type: MediaType = \"video\", dummy = type === \"video\" ? DUMMY_VID : DUMMY_AUD): boolean {\r\n try {\r\n const prev = dummy.playbackRate;\r\n dummy.playbackRate = 0.5;\r\n const works = dummy.playbackRate === 0.5;\r\n return (dummy.playbackRate = prev), works;\r\n } catch {\r\n return false;\r\n }\r\n}\r\nexport const canTextTracks = (type: MediaType = \"video\", dummy = type === \"video\" ? DUMMY_VID : DUMMY_AUD): boolean => !!dummy && \"textTracks\" in dummy;\r\nexport const canVideoTracks = (type: MediaType = \"video\", dummy = type === \"video\" ? DUMMY_VID : DUMMY_AUD): boolean => !!dummy && \"videoTracks\" in dummy;\r\nexport const canAudioTracks = (type: MediaType = \"video\", dummy = type === \"video\" ? DUMMY_VID : DUMMY_AUD): boolean => !!dummy && \"audioTracks\" in dummy;\r\n\r\n// ============ Caption/Subtitle Utilities ============\r\nexport const stripTags = (text: string): string => text.replace(/<(\\/)?([a-z0-9.:]+)([^>]*)>/gi, \"\");\r\n\r\nexport function srtToVtt(srt: string, vttLines: string[] = [\"WEBVTT\", \"\"]): string {\r\n const input = srt.replace(/\\r\\n?/g, \"\\n\").trim();\r\n for (const block of input.split(/\\n{2,}/)) {\r\n const lines = block.split(\"\\n\");\r\n let idx = /^\\d+$/.test(lines[0].trim()) ? 1 : 0;\r\n const timing = lines[idx]?.trim().replace(/\\s+/g, \" \"),\r\n m = timing?.match(/(\\d{1,2}:\\d{2}:\\d{2})(?:[.,](\\d{1,3}))?\\s*-->\\s*(\\d{1,2}:\\d{2}:\\d{2})(?:[.,](\\d{1,3}))?/);\r\n if (!m) continue;\r\n const [, startHms, startMsRaw = \"0\", endHms, endMsRaw = \"0\"] = m,\r\n to3 = (ms: string) => ms.padEnd(3, \"0\").slice(0, 3);\r\n vttLines.push(startHms + \".\" + to3(startMsRaw) + \" --> \" + endHms + \".\" + to3(endMsRaw));\r\n for (let i = idx + 1; i < lines.length; i++) vttLines.push(lines[i]);\r\n vttLines.push(\"\");\r\n }\r\n return vttLines.join(\"\\n\");\r\n}\r\n\r\nexport function parseVttText(text: string): string {\r\n const state = { tag: /<(\\/)?([a-z0-9.:]+)([^>]*)>/gi, o: \"\", l: 0, p: null as string | null, c: \"\" },\r\n esc = (s: string) => s.replace(/[&<>\"']/g, (c) => ({ \"&\": \"&\", \"<\": \"<\", \">\": \">\", '\"': \""\", \"'\": \"'\" }[c]!));\r\n let m: RegExpExecArray | null;\r\n while ((m = state.tag.exec(text))) {\r\n const chunk = text.slice(state.l, m.index);\r\n if (chunk) state.c += esc(chunk);\r\n const [_, cls, tag_n, rest] = m,\r\n low = tag_n.toLowerCase();\r\n if (/^[0-9]/.test(tag_n)) {\r\n state.o += state.p ? `<span data-part=\"timed\" data-time=\"${state.p}\">${state.c}</span>` : state.c;\r\n state.p = tag_n;\r\n state.c = \"\";\r\n } else if (cls) state.c += [\"c\", \"v\", \"lang\"].includes(low) ? \"</span>\" : `</${low}>`;\r\n else if ([\"b\", \"i\", \"u\", \"ruby\", \"rt\"].includes(low)) state.c += `<${low}>`;\r\n else if (low === \"c\") state.c += `<span class=\"vtt-c ${rest.replace(/\\.([a-z0-9_-]+)/gi, \"$1 \").trim()}\">`;\r\n else if (low === \"v\") state.c += `<span data-part=\"voice\"${rest.trim() ? ` title=\"${esc(rest.trim())}\"` : \"\"}>`;\r\n else if (low === \"lang\") state.c += `<span lang=\"${esc(rest.trim())}\">`;\r\n state.l = state.tag.lastIndex;\r\n }\r\n const lChunk = text.slice(state.l);\r\n if (lChunk) state.c += esc(lChunk);\r\n return state.o + (state.p ? `<span data-part=\"timed\" data-time=\"${state.p}\">${state.c}</span>` : state.c);\r\n}\r\n\r\nexport function formatVttLine(p: string, maxChars: number): string[] {\r\n const state = { tokens: p.match(/<[^>]+>|\\S+/g) || [], stack: [] as string[], parts: [] as string[], line: \"\", len: 0, openStr: \"\", closeStr: \"\", timeTag: \"\", lastWasTag: false },\r\n updateTags = () => ((state.openStr = state.stack.map((n) => `<${n}>`).join(\"\")), (state.closeStr = state.stack.reduceRight((a, n) => a + `</${n}>`, \"\"))),\r\n flush = () => state.line && (state.parts.push(state.line + state.closeStr), (state.line = (state.timeTag || \"\") + state.openStr), (state.len = 0), (state.lastWasTag = true));\r\n for (const tok of state.tokens) {\r\n const tag = tok[0] === \"<\",\r\n closeTag = tag && tok[1] === \"/\";\r\n if (tag) {\r\n if (state.line && !state.lastWasTag && !closeTag) state.line += \" \";\r\n const m = tok.match(/^<\\/?\\s*([a-z0-9._:-]+)/i),\r\n n = m?.[1] || \"\",\r\n timing = /^\\d/.test(n);\r\n if (timing) {\r\n (state.timeTag = tok), (state.line += tok), (state.lastWasTag = true);\r\n continue;\r\n }\r\n if (!closeTag && !tok.endsWith(\"/>\") && n) state.stack.push(n), updateTags();\r\n if (closeTag && state.stack.length) state.stack.pop(), updateTags();\r\n (state.lastWasTag = true), (state.line += tok);\r\n continue;\r\n }\r\n const len = stripTags(tok).length,\r\n needSpace = state.line && !state.lastWasTag;\r\n if (state.len + (needSpace ? 1 : 0) + len > maxChars) flush();\r\n if (needSpace) (state.line += \" \"), (state.len += 1);\r\n (state.line += tok), (state.len += len), (state.lastWasTag = false);\r\n }\r\n return flush(), state.parts;\r\n}\r\n","import { BaseTech } from \"./base\";\r\nimport { type REvent, type Paths, inert } from \"sia-reactor\";\r\nimport type { Controller } from \"@core/controller\";\r\nimport type { CtlrMedia, MediaIntent, MediaFeatures } from \"@defs/contract\";\r\nimport type { Source, Track } from \"@defs/generics\";\r\nimport { AUDIO_EXTENSIONS, HLS_EXTENSIONS, VIDEO_EXTENSIONS } from \"@utils/match\";\r\nimport { MSE_ENABLED } from \"@utils/env\";\r\nimport { isStr } from \"@utils/obj\";\r\nimport type { TrackType } from \"@utils/media\";\r\nimport { enterFullscreen, exitFullscreen, queryFullscreenEl, supportsFullscreen, supportsPictureInPicture } from \"@utils/dom\";\r\nimport { observeMutation, createListRenderer as renderList } from \"@utils/dom\";\r\nimport { getTrackIdx, setCurrentTrack, canUseVolume, canMuteVolume, canUseRate, canTextTracks, canVideoTracks, canAudioTracks, getSources, getTracks, isSameSources, isSameTracks, DUMMY_VID, getMediaMax, getMediaMin } from \"@utils/media\";\r\nimport { isSameURL, cleanURL } from \"@utils/str\";\r\nimport { clamp } from \"@utils/num\";\r\nimport { silence } from \"sia-reactor/modules\";\r\nimport { assignEl, createEl, force } from \"sia-reactor/utils\";\r\n\r\nexport class HTML5Tech extends BaseTech<HTMLMediaElement> {\r\n public static readonly techName: string = \"html5\";\r\n public static override canPlaySource(src: string): boolean {\r\n return VIDEO_EXTENSIONS.test(src) || AUDIO_EXTENSIONS.test(src) || !!(!MSE_ENABLED && DUMMY_VID.canPlayType(\"application/vnd.apple.mpegurl\") && HLS_EXTENSIONS.test(src)); // Safari has native HLS support, but only if MSE is not available (iOS)\r\n }\r\n protected strictTracks: boolean = false;\r\n constructor(ctlr: Controller, features?: MediaFeatures) {\r\n // prettier-ignore\r\n const isAudio = ctlr.media.type === \"audio\", canTxtTrack = canTextTracks(ctlr.media.type), canVidTrack = !isAudio && canVideoTracks(ctlr.media.type), canAudTrack = canAudioTracks(ctlr.media.type);\r\n // prettier-ignore\r\n super(ctlr, {\r\n // Kinda Core\r\n volume: canUseVolume(ctlr.media.type), muted: canMuteVolume(ctlr.media.type), playbackRate: canUseRate(ctlr.media.type),\r\n // Modes\r\n pictureInPicture: !isAudio && supportsPictureInPicture() && !ctlr.media.state.disablePictureInPicture, fullscreen: !isAudio && supportsFullscreen(),\r\n // Markup & States\r\n poster: !isAudio, autoplay: true, loop: true, playsInline: !isAudio, preload: true, crossOrigin: true, \r\n controls: true, controlsList: true, disablePictureInPicture: true, sources: true, tracks: true, live: false,\r\n // Lists\r\n textTracks: canTxtTrack, videoTracks: !isAudio && canVidTrack, audioTracks: canAudTrack,\r\n // Currents\r\n currentChapter: canTxtTrack, currentTextTrack: canTxtTrack, currentVideoTrack: canVidTrack, currentAudioTrack: canAudTrack, textVisible: canTxtTrack, activeCue: canTxtTrack,\r\n // Infos\r\n readyState: true, networkState: true, error: true, waiting: true, stalled: true,\r\n seeking: true, buffered: true, played: true, seekable: true, videoWidth: !isAudio, videoHeight: !isAudio, \r\n loadedMetadata: true, loadedData: true, canPlay: true, canPlayThrough: true, isLive: true, canSeekLive: true,\r\n // Settings\r\n defaultMuted: true, defaultPlaybackRate: true, srcObject: true, metadata: canTxtTrack, liveTolerance: true, minDVRWindow: true, ...features,\r\n });\r\n ctlr.media.status.hostReady = true; // always active!\r\n }\r\n // ===========================================================================\r\n // WIRING (Connections Only)\r\n // ===========================================================================\r\n // --- Core Wiring ---\r\n protected override wireSrc(): void {\r\n this.el.addEventListener(\"loadstart\", this.setLoadStartInfo, this.evtOpts.EL);\r\n this.config.on(\"intent.src\", this.handleSrcIntent, this.evtOpts.CONFIG);\r\n }\r\n protected override wireCurrentTime(): void {\r\n this.el.addEventListener(\"timeupdate\", this.setTimeUpdateState, this.evtOpts.EL);\r\n this.el.addEventListener(\"seeking\", this.setSeekingState, this.evtOpts.EL);\r\n this.el.addEventListener(\"seeked\", this.setSeekedState, this.evtOpts.EL);\r\n this.config.get(\"state.currentTime\", () => this.el.currentTime, { signal: this.signal }); // #VIRTUAL: reliable return value, for those faster than the spec\r\n this.config.on(\"intent.currentTime\", this.handleCurrentTimeIntent, this.evtOpts.CONFIG);\r\n }\r\n protected override wireDuration(): void {\r\n this.el.addEventListener(\"durationchange\", this.setDurationChangeState, this.evtOpts.EL);\r\n }\r\n protected override wirePaused(): void {\r\n this.el.addEventListener(\"play\", this.setPlayState, this.evtOpts.EL);\r\n this.el.addEventListener(\"pause\", this.setPauseState, this.evtOpts.EL);\r\n this.config.on(\"intent.paused\", this.handlePausedIntent, this.evtOpts.CONFIG);\r\n }\r\n protected override wireEnded(): void {\r\n this.el.addEventListener(\"ended\", this.setEndedState, this.evtOpts.EL);\r\n }\r\n // --- Features Wiring ---\r\n protected override wireFeatures(): void {\r\n super.wireFeatures(); // Calls individual feature wires (volume, etc.) above\r\n this.wireHTMLState(); // Attributes Reverse-Sync (Mutation Observer)\r\n // Status (Bulk wiring)\r\n const loadEvents = [\"loadstart\", \"progress\", \"suspend\", \"abort\", \"emptied\", \"stalled\"];\r\n for (const e of loadEvents) this.el.addEventListener(e, this.handleLoadStatus, this.evtOpts.CONFIG);\r\n this.el.addEventListener(\"error\", this.handleErrorStatus, this.evtOpts.CONFIG);\r\n this.el.addEventListener(\"waiting\", this.handleWaitingStatus, this.evtOpts.CONFIG);\r\n this.el.addEventListener(\"playing\", this.handlePlayingStatus, this.evtOpts.CONFIG);\r\n this.el.addEventListener(\"stalled\", this.handleStalledStatus, this.evtOpts.CONFIG);\r\n this.el.addEventListener(\"loadedmetadata\", this.handleLoadedMetadataStatus, this.evtOpts.CONFIG);\r\n this.el.addEventListener(\"loadeddata\", this.handleLoadedDataStatus, this.evtOpts.CONFIG);\r\n this.el.addEventListener(\"canplay\", this.handleCanPlayStatus, this.evtOpts.CONFIG);\r\n this.el.addEventListener(\"canplaythrough\", this.handleCanPlayThroughStatus, this.evtOpts.CONFIG);\r\n }\r\n // --- Engine Inputs Wiring ---\r\n protected wireVolume(): void {\r\n this.el.addEventListener(\"volumechange\", this.setVolumeChangeState, this.evtOpts.EL);\r\n this.config.on(\"intent.volume\", this.handleVolumeIntent, this.evtOpts.CONFIG);\r\n }\r\n protected wireMuted(): void {\r\n // Native 'volumechange' handles state update\r\n this.config.on(\"intent.muted\", this.handleMutedIntent, this.evtOpts.CONFIG);\r\n }\r\n protected wirePlaybackRate(): void {\r\n this.el.addEventListener(\"ratechange\", this.setRateChangeState, this.evtOpts.EL);\r\n this.config.on(\"intent.playbackRate\", this.handlePlaybackRateIntent, this.evtOpts.CONFIG);\r\n }\r\n // --- Presentation Modes Wiring ---\r\n protected wirePictureInPicture(): void {\r\n this.el.addEventListener(\"enterpictureinpicture\", this.setEnterPiPState, this.evtOpts.EL);\r\n this.el.addEventListener(\"leavepictureinpicture\", this.setLeavePiPState, this.evtOpts.EL);\r\n this.config.on(\"intent.pictureInPicture\", this.handlePictureInPictureIntent, this.evtOpts.CONFIG);\r\n }\r\n protected wireFullscreen(): void {\r\n this.el.addEventListener(\"webkitbeginfullscreen\", this.setWebkitBeginFullscreenState, this.evtOpts.CONFIG);\r\n this.el.addEventListener(\"webkitendfullscreen\", this.setWebkitEndFullscreenState, this.evtOpts.CONFIG);\r\n this.ctlr.state.watch(\"docInFullscreen\", this.setFullscreenChangeState, this.evtOpts.CONFIG);\r\n this.config.on(\"intent.fullscreen\", this.handleFullscreenIntent, this.evtOpts.CONFIG);\r\n }\r\n // --- Track Switching Wiring ---\r\n protected wireCurrentTrack(type: TrackType): void {\r\n this.config.set(`intent.current${type}Track`, (term) => getTrackIdx(this.el, type, term, this.config.status[`${type.toLowerCase() as Lowercase<TrackType>}Tracks`]), { signal: this.signal }); // #VALIDATOR: intent type conformation\r\n (this.el as any)[`${type.toLowerCase()}Tracks`]?.addEventListener(\"change\", () => this.setCurrentTrackState(type), this.evtOpts.CONFIG);\r\n this.config.on(`intent.current${type}Track`, (e) => this.handleCurrentTrackIntent(e, type), this.evtOpts.CONFIG);\r\n }\r\n protected wireCurrentTextTrack(): void {\r\n this.wireCurrentTrack(\"Text\");\r\n }\r\n protected wireCurrentAudioTrack(): void {\r\n this.wireCurrentTrack(\"Audio\");\r\n }\r\n protected wireCurrentVideoTrack(): void {\r\n this.wireCurrentTrack(\"Video\");\r\n }\r\n protected wireTextVisible(): void {\r\n this.config.on(\"intent.textVisible\", this.handleTextVisibleIntent, this.evtOpts.CONFIG);\r\n }\r\n // --- HTML (Bulk Wiring) ---\r\n protected wireHTMLState(): void {\r\n observeMutation(this.el, this.setHTMLStateFromMutation, { attributes: true, childList: true, subtree: false }, this.signal);\r\n }\r\n // --- Attribute Wiring ---\r\n protected bindAttribute<K extends keyof MediaIntent>(key: K, isBool = false): void {\r\n this.config.on(`intent.${key}` as Paths<CtlrMedia>, (e) => this.handleAttributeIntent(e, key, isBool), this.evtOpts.CONFIG); // non-casted union reached peak ts complexity :)\r\n }\r\n protected wirePoster(): void {\r\n this.bindAttribute(\"poster\");\r\n }\r\n protected wireAutoplay(): void {\r\n this.bindAttribute(\"autoplay\", true);\r\n }\r\n protected wireLoop(): void {\r\n this.bindAttribute(\"loop\", true);\r\n }\r\n protected wirePreload(): void {\r\n this.bindAttribute(\"preload\");\r\n }\r\n protected wirePlaysInline(): void {\r\n this.bindAttribute(\"playsInline\", true);\r\n }\r\n protected wireCrossOrigin(): void {\r\n this.bindAttribute(\"crossOrigin\");\r\n }\r\n protected wireControls(): void {\r\n this.bindAttribute(\"controls\", true);\r\n }\r\n protected wireControlsList(): void {\r\n this.bindAttribute(\"controlsList\");\r\n }\r\n protected wireDisablePictureInPicture(): void {\r\n this.bindAttribute(\"disablePictureInPicture\", true);\r\n this.config.watch(\"state.disablePictureInPicture\", this.onDisablePiPState);\r\n }\r\n // --- Lists Wiring ---\r\n protected wireSources(): void {\r\n this.config.on(\"intent.sources\", this.handleSourcesIntent, this.evtOpts.CONFIG);\r\n }\r\n protected wireTracks(): void {\r\n this.config.on(\"intent.tracks\", this.handleTracksIntent, this.evtOpts.CONFIG);\r\n }\r\n // --- Status Tracks Wiring ---\r\n protected wireMediaTracks(type: TrackType, list = (this.el as any)[`${type.toLowerCase()}Tracks`]): void {\r\n if (list) for (const e of [\"addtrack\", \"removetrack\"]) list.addEventListener(e, () => this.handleTracksStatus(type, list), this.evtOpts.CONFIG);\r\n if (list) this.handleTracksStatus(type, list, true);\r\n }\r\n protected wireTextTracks(): void {\r\n this.wireMediaTracks(\"Text\");\r\n }\r\n protected wireAudioTracks(): void {\r\n this.wireMediaTracks(\"Audio\");\r\n }\r\n protected wireVideoTracks(): void {\r\n this.wireMediaTracks(\"Video\");\r\n }\r\n // --- Active Cue Wiring ---\r\n protected textTrack: TextTrack | null = null;\r\n protected wireActiveCue(): void {\r\n const onChange = () => {\r\n const track = this.media.status.textTracks[!this.strictTracks ? this.config.state.currentTextTrack : getTrackIdx(this.el, \"Text\", this.config.status.textTracks[this.config.state.currentTextTrack]?.id, this.config.status.textTracks)];\r\n if (this.textTrack && this.textTrack !== track) this.textTrack.removeEventListener(\"cuechange\", this.handleActiveCueChange, this.evtOpts.EL);\r\n (this.textTrack = track)?.addEventListener(\"cuechange\", this.handleActiveCueChange, this.evtOpts.EL), this.handleActiveCueChange({ target: track });\r\n };\r\n this.config.on(\"state.currentTextTrack\", onChange, this.evtOpts.CONFIG), this.config.on(\"status.textTracks\", onChange, this.evtOpts.CONFIG);\r\n }\r\n protected chapterTrack: TextTrack | null = null;\r\n protected wireChapterCue(track: TextTrack): void {\r\n if (this.chapterTrack && this.chapterTrack !== track) this.chapterTrack.removeEventListener(\"cuechange\", this.handleChapterCueChange, this.evtOpts.EL);\r\n (this.chapterTrack = track).addEventListener(\"cuechange\", this.handleChapterCueChange, this.evtOpts.EL), this.handleChapterCueChange({ target: track });\r\n }\r\n // --- Live Content Wiring ---\r\n protected wireLive(): void {\r\n this.config.on(\"intent.live\", this.handleLiveIntent, this.evtOpts.CONFIG);\r\n this.config.watch(\"status.isLive\", this.onIsLiveStatus, this.evtOpts.CONFIG);\r\n }\r\n // --- Settings Wiring ---\r\n protected wireDefaultMuted(): void {\r\n this.config.on(\"settings.defaultMuted\", this.handleDefaultMutedSetting, this.evtOpts.CONFIG);\r\n }\r\n protected wireDefaultPlaybackRate(): void {\r\n this.config.on(\"settings.defaultPlaybackRate\", this.handleDefaultPlaybackRateSetting, this.evtOpts.CONFIG);\r\n }\r\n protected wireSrcObject(): void {\r\n this.config.on(\"settings.srcObject\", this.handleSrcObjectSetting, this.evtOpts.CONFIG);\r\n }\r\n // ===========================================================================\r\n // HANDLERS (The Logic - Auto-Guarded)\r\n // ===========================================================================\r\n // --- Core States ---\r\n protected setLoadStartInfo(): void {\r\n const { state: s, status: st } = this.config;\r\n st.error = st.activeCue = null;\r\n force(() => ((st.buffered = this.el.buffered), (st.seekable = this.el.seekable)));\r\n st.duration = this.el.duration;\r\n s.paused = this.el.paused;\r\n st.ended = st.stalled = st.loadedData = st.loadedMetadata = st.canPlay = st.canPlayThrough = false;\r\n }\r\n protected setTimeUpdateState(): void {\r\n const { status: st, settings: set, state: s } = this.config;\r\n s.currentTime = this.el.currentTime;\r\n if (st.isLive)\r\n if (st.seekable.length) {\r\n const max = st.seekable.end(st.seekable.length - 1);\r\n st.canSeekLive = max - st.seekable.start(0) >= set.minDVRWindow;\r\n s.live = max - s.currentTime <= set.liveTolerance;\r\n } else s.live = !(st.canSeekLive = false);\r\n else this.config.status.ended = this.el.currentTime === this.el.duration; // UX boost\r\n }\r\n protected setSeekingState(): void {\r\n this.config.status.seeking = true;\r\n force(() => (this.config.status.played = this.el.played));\r\n }\r\n protected setSeekedState(): void {\r\n this.config.status.seeking = false;\r\n }\r\n private durationSeq = 0;\r\n private durationSrc = \"\";\r\n protected setDurationChangeState(): void {\r\n if (this.el.currentSrc !== this.durationSrc) (this.durationSeq = 0), (this.durationSrc = this.el.currentSrc);\r\n const prev = this.config.status.duration;\r\n if ((this.config.status.duration = this.el.duration) === Infinity) return void (this.config.status.isLive = true);\r\n prev === Infinity ? (this.config.status.isLive = false) : prev > 0 && this.el.duration > prev && ++this.durationSeq > 3 && (this.config.status.isLive = true); // UX boost\r\n }\r\n protected setPlayState(): void {\r\n this.config.status.ended = this.config.state.paused = false;\r\n }\r\n protected setPauseState(): void {\r\n this.config.state.paused = true;\r\n force(() => (this.config.status.played = this.el.played));\r\n this.config.status.waiting = false; // UX boost\r\n }\r\n protected setEndedState(): void {\r\n this.config.status.ended = this.config.state.paused = true;\r\n }\r\n // --- Core Intents ---\r\n protected handleSrcIntent(e: REvent<CtlrMedia, \"intent.src\">): void {\r\n if (e.resolved || (this.wired && isSameURL(this.el.currentSrc, e.value))) return;\r\n this.el.src = e.value;\r\n e.resolve(this.name);\r\n }\r\n protected handleCurrentTimeIntent(e: REvent<CtlrMedia, \"intent.currentTime\">): void {\r\n if (e.resolved) return;\r\n this.when(\"loadedData\", e, (min = getMediaMin(this.config), max = getMediaMax(this.config)) => {\r\n if (e.value < min! || e.value > max!) e.reject(this.name); // Out of bounds\r\n this.el.currentTime = clamp(min, e.value, max);\r\n }); // tested nd trusted status due to reactive dynamics\r\n e.resolve(this.name);\r\n }\r\n protected handlePausedIntent(e: REvent<CtlrMedia, \"intent.paused\">): void {\r\n if (e.resolved) return;\r\n this.when(\"loadedMetadata\", e, () => (e.value ? this.el.pause() : this.el.play())?.catch?.((e) => this.ctlr.log(e, \"error\", true)), false); // #EYE-SERVICE: hinged only on init\r\n e.resolve(this.name);\r\n }\r\n // --- Feature States ---\r\n protected setVolumeChangeState(): void {\r\n this.config.state.volume = this.el.volume * 100;\r\n this.config.state.muted = this.el.muted;\r\n }\r\n protected setRateChangeState(): void {\r\n this.config.state.playbackRate = this.el.playbackRate;\r\n }\r\n protected setEnterPiPState(): void {\r\n this.config.state.pictureInPicture = true;\r\n }\r\n protected setLeavePiPState(): void {\r\n this.config.state.pictureInPicture = false;\r\n }\r\n protected setFullscreenChangeState(docInFs?: boolean): void {\r\n this.config.state.fullscreen = docInFs ? queryFullscreenEl() === this.el : false;\r\n }\r\n protected setWebkitBeginFullscreenState(): void {\r\n this.config.state.fullscreen = true;\r\n }\r\n protected setWebkitEndFullscreenState(): void {\r\n this.config.state.fullscreen = false;\r\n }\r\n protected setCurrentTrackState(type: TrackType, list = this.media.status[`${type.toLowerCase() as Lowercase<TrackType>}Tracks`]): void {\r\n this.config.state[`current${type}Track`] = getTrackIdx(this.el, type, \"active\", list);\r\n }\r\n protected setHTMLStateFromMutation(mutations: MutationRecord[]): void {\r\n for (const m of mutations) {\r\n const { state, settings } = this.config; // Reverse Bind: DOM -> State\r\n if (m.type === \"childList\") {\r\n const nodes = [...m.addedNodes, ...m.removedNodes];\r\n if (nodes.some(({ nodeName: nm }) => nm === \"SOURCE\")) state.sources = inert(getSources(this.el));\r\n if (nodes.some(({ nodeName: nm }) => nm === \"TRACK\")) state.tracks = inert(getTracks(this.el));\r\n } else if (m.type !== \"attributes\" || !m.attributeName) return;\r\n switch (m.attributeName) {\r\n case \"poster\":\r\n return void (state.poster = (this.el as HTMLVideoElement).poster);\r\n case \"autoplay\":\r\n return void (state.autoplay = this.el.autoplay);\r\n case \"loop\":\r\n return void (state.loop = this.el.loop);\r\n case \"preload\":\r\n return void (state.preload = this.el.preload);\r\n case \"crossorigin\":\r\n return void (state.crossOrigin = this.el.crossOrigin);\r\n case \"controls\":\r\n return void (state.controls = this.el.controls);\r\n case \"playsinline\":\r\n case \"webkit-playsinline\":\r\n return void (state.playsInline = this.el.playsInline);\r\n case \"controlslist\":\r\n return void (state.controlsList = this.el.controlsList ?? this.el.getAttribute(m.attributeName));\r\n case \"disablepictureinpicture\":\r\n return void (state.disablePictureInPicture = this.el.disablePictureInPicture ?? this.el.hasAttribute(m.attributeName));\r\n case \"muted\":\r\n return void ((state.muted = this.el.muted), (settings.defaultMuted = this.el.defaultMuted));\r\n }\r\n } // Mutations report before Queued MicroTasks so double \"state.*\" sets is safely batched for `on` listeners :)\r\n }\r\n // --- Feature Intents ---\r\n protected handleVolumeIntent(e: REvent<CtlrMedia, \"intent.volume\">): void {\r\n if (e.resolved) return;\r\n if (e.value < 0 || e.value > 100) e.reject(this.name); // Out of bounds\r\n this.el.volume = clamp(0, e.value / 100, 1);\r\n e.resolve(this.name);\r\n }\r\n protected handleMutedIntent(e: REvent<CtlrMedia, \"intent.muted\">): void {\r\n if (e.resolved) return;\r\n this.el.muted = e.value;\r\n e.resolve(this.name);\r\n }\r\n protected handlePlaybackRateIntent(e: REvent<CtlrMedia, \"intent.playbackRate\">): void {\r\n if (e.resolved) return;\r\n this.when(\"loadedMetadata\", e, () => (this.el.playbackRate = e.value));\r\n e.resolve(this.name);\r\n }\r\n protected handlePictureInPictureIntent(e: REvent<CtlrMedia, \"intent.pictureInPicture\">): void {\r\n if (e.resolved) return;\r\n this.when(\"loadedMetadata\", e, () => (e.value ? (this.el as HTMLVideoElement).requestPictureInPicture()?.catch(this.ctlr.notice) : document.pictureInPictureElement === this.el && document.exitPictureInPicture()?.catch(this.ctlr.notice)), true); // #EYE-SERVICE: hinged only on init\r\n e.resolve(this.name);\r\n }\r\n protected handleFullscreenIntent(e: REvent<CtlrMedia, \"intent.fullscreen\">): void {\r\n if (e.resolved) return;\r\n (e.value ? enterFullscreen(this.el) : exitFullscreen(this.el))?.catch(this.ctlr.notice);\r\n e.resolve(this.name);\r\n }\r\n protected handleCurrentTrackIntent(e: REvent<CtlrMedia, `intent.current${TrackType}Track`>, type: TrackType): void {\r\n if (e.resolved) return;\r\n this.when(\"loadedMetadata\", e, (list = this.config.status[`${type.toLowerCase() as Lowercase<TrackType>}Tracks`]) => {\r\n if ((e.value as number) < list.length) {\r\n setCurrentTrack(this.el, type, e.value as number, true, list); // #VALIDATED: mediated for cast conformity; no-opy\r\n this.setCurrentTrackState(type, list); // tracks \"change\" event not reliable\r\n }\r\n });\r\n e.resolve(this.name);\r\n }\r\n protected handleTextVisibleIntent(e: REvent<CtlrMedia, \"intent.textVisible\">): void {\r\n if (e.resolved) return;\r\n this.when(\"loadedMetadata\", e, () => {\r\n if (e.value && this.media.status.textTracks.length && this.media.state.currentTextTrack === -1) silence(() => (this.media.intent.currentTextTrack = Math.max(0, getTrackIdx(this.media.element, \"Text\", this.media.state.tracks.find((t) => t.default)?.id, this.media.status.textTracks))));\r\n if (this.textTrack) this.textTrack.mode = e.value ? \"showing\" : \"hidden\";\r\n this.config.state.textVisible = e.value;\r\n });\r\n e.resolve(this.name);\r\n }\r\n protected handleAttributeIntent(e: REvent<CtlrMedia>, key: string, isBool: boolean, attr = key.toLowerCase()): void {\r\n if (e.resolved || (key === \"poster\" && isSameURL((this.el as HTMLVideoElement).poster, e.value))) return;\r\n isBool ? this.el.toggleAttribute(attr, Boolean(e.value)) : e.value ? this.el.setAttribute(attr, e.value) : this.el.removeAttribute(attr); // (this.el as any)[key] = isBool ? Boolean(e.value) : (e.value ?? \"\"); // Generic handler for simple attributes\r\n if (key === \"playsInline\") this.el.toggleAttribute(\"webkit-playsinline\", Boolean(e.value));\r\n e.resolve(this.name);\r\n }\r\n private renderSources?: ReturnType<typeof renderList<any>>;\r\n protected handleSourcesIntent(e: REvent<CtlrMedia, \"intent.sources\">): void {\r\n if (e.resolved || isSameSources(Array.from(this.el.querySelectorAll(\"source\")), e.value)) return;\r\n (this.renderSources ??= renderList<Source, HTMLSourceElement>({ container: this.el, getKey: (s) => `${cleanURL(s.src)}|${s.type}${s.media}`, createNode: (s) => createEl(\"source\", s), updateNode: (el, s) => assignEl(el, s, undefined, undefined, false), initNode: (el, register) => el instanceof HTMLSourceElement && register(`${cleanURL(el.src)}|${el.type}${el.media}`) }))(e.currentTarget.value);\r\n e.resolve(this.name);\r\n }\r\n private renderTracks?: ReturnType<typeof renderList<any>>;\r\n protected handleTracksIntent(e: REvent<CtlrMedia, \"intent.tracks\">): void {\r\n if (e.resolved || isSameTracks(Array.from(this.el.querySelectorAll(\"track\")), e.value)) return;\r\n (this.renderTracks ??= renderList<Track>({ container: this.el, getKey: (t) => `${cleanURL(t.src)}|${t.kind}|${t.label}|${t.srclang}|${t.default}`, createNode: (t) => createEl(\"track\", t), updateNode: (el, t) => assignEl(el, t, undefined, undefined, false), initNode: (el, register) => el instanceof HTMLTrackElement && register(`${cleanURL(el.src)}|${el.kind}|${el.label}|${el.srclang}|${el.default}`) }))(e.currentTarget.value);\r\n e.resolve(this.name);\r\n }\r\n protected handleLiveIntent(e: REvent<CtlrMedia, \"intent.live\">): void {\r\n if (e.resolved) return;\r\n this.when(\"loadedMetadata\", e, (seekable = this.config.status.seekable) => e.value && seekable.length && (this.media.intent.currentTime = seekable.end(seekable.length - 1) - 1)); // #FACADED: silenced intent actual op\r\n e.resolve(this.name);\r\n }\r\n // --- Status (Bulk) ---\r\n protected handleLoadStatus(): void {\r\n this.config.status.readyState = this.el.readyState;\r\n this.config.status.networkState = this.el.networkState;\r\n force(() => ((this.config.status.buffered = this.el.buffered), (this.config.status.seekable = this.el.seekable)));\r\n }\r\n protected handleLoadedMetadataStatus(): void {\r\n (this.config.status.videoWidth = this.config.type === \"video\" ? this.config.element.videoWidth : 0), (this.config.status.videoHeight = this.config.type === \"video\" ? this.config.element.videoHeight : 0);\r\n this.config.status.isLive = (this.config.status.duration = this.el.duration) === Infinity;\r\n this.handleLoadStatus(); // Update buffers too\r\n this.config.status.loadedMetadata = true;\r\n }\r\n protected handleLoadedDataStatus(): void {\r\n this.config.status.loadedData = true;\r\n }\r\n protected handleCanPlayStatus(): void {\r\n this.config.status.canPlay = true;\r\n }\r\n protected handleCanPlayThroughStatus(): void {\r\n this.config.status.canPlayThrough = true;\r\n }\r\n protected handleStalledStatus(): void {\r\n this.config.status.stalled = true;\r\n }\r\n protected handleWaitingStatus(): void {\r\n this.config.status.waiting = true;\r\n }\r\n protected handlePlayingStatus(): void {\r\n this.config.status.error = null; // UX boost\r\n this.config.status.waiting = this.config.status.stalled = false;\r\n }\r\n protected handleErrorStatus(e: any, target = e?.target): void {\r\n if (target && target !== this.el) return this.ctlr.log({ message: `Media ${target.nodeName || \"Child\"} element error occurred!`, event: e, target }, \"error\", true); // not an error but u gotta know\r\n this.config.status.error = this.el.error ?? { message: (isStr(e) && e) || e?.message };\r\n this.config.status.waiting = false;\r\n }\r\n protected handleTracksStatus(type: TrackType, list: any, init = false): void {\r\n this.config.status[`${type.toLowerCase() as Lowercase<TrackType>}Tracks`] = Array.prototype.filter.call(list, (t) => (type === \"Text\" ? t.kind === \"subtitles\" || t.kind === \"captions\" : true)); // filter out non-cue text tracks\r\n type === \"Text\" && (this.autoChapters = this.config.settings.metadata.allowOverride) && this.handleChaptersStatus(list); // chapter \"cuechange\" over to u; base\r\n !init && silence(() => (this.config.intent[`current${type}Track`] = this.config.state[`current${type}Track`])); // #RE-TRIGGER: sync intent resolution\r\n !init && type === \"Text\" && silence(() => (this.config.intent.textVisible = this.config.state.textVisible)); // you too\r\n }\r\n protected handleChaptersStatus(list = this.el.textTracks): void {\r\n const track = Array.prototype.find.call(list, (t) => t.kind === \"chapters\") || null;\r\n if (!track) return void ((this.config.settings.metadata.chapterInfo = []), (this.config.state.currentChapter = -1));\r\n if (track.mode === \"disabled\") track.mode = \"hidden\"; // ensure cue access\r\n const extract = () => (this.config.settings.metadata.chapterInfo = track.cues?.length ? Array.from(track.cues, (cue: any) => ({ title: cue.text, startTime: cue.startTime, artwork: [] })) : []);\r\n track.cues.length ? extract() : track.addEventListener(\"cuechange\", extract, { ...this.evtOpts.EL, once: true }), this.wireChapterCue(track);\r\n }\r\n protected handleActiveCueChange(e?: globalThis.Event | { target?: TextTrack }, strict = false, track = e?.target as TextTrack | null): void {\r\n if (!strict || (track && getTrackIdx(this.el, \"Text\", track, this.config.status.textTracks) === this.config.state.currentTextTrack)) this.config.status.activeCue = track?.activeCues?.[0] || null; // incase of multiple tracks `cuechange`\r\n }\r\n protected handleChapterCueChange(e?: globalThis.Event | { target?: TextTrack }, track = e?.target as TextTrack | null, cue = track?.activeCues?.[0] || null): void {\r\n this.config.state.currentChapter = cue ? this.config.settings.metadata.chapterInfo?.findIndex((c) => c.startTime === cue.startTime) ?? -1 : -1;\r\n }\r\n // --- Settings ---\r\n protected handleDefaultMutedSetting(e: REvent<CtlrMedia, \"settings.defaultMuted\">): void {\r\n this.el.defaultMuted = e.value;\r\n }\r\n protected handleDefaultPlaybackRateSetting(e: REvent<CtlrMedia, \"settings.defaultPlaybackRate\">): void {\r\n this.el.defaultPlaybackRate = e.value;\r\n }\r\n protected handleSrcObjectSetting(e: REvent<CtlrMedia, \"settings.srcObject\">): void {\r\n this.el.srcObject = e.value;\r\n }\r\n // --- Dog Feeders ---\r\n protected onDisablePiPState(v: boolean): void {\r\n this.media.intent.pictureInPicture = false;\r\n this.config.features.pictureInPicture = !v;\r\n }\r\n protected onIsLiveStatus(v: boolean): void {\r\n this.config.features.live = v;\r\n }\r\n // --- Lifecycle ---\r\n protected override onDestroy(): void {\r\n this.el.removeAttribute(\"src\");\r\n }\r\n}\r\n\r\ndeclare module \"@defs/registries\" {\r\n interface TechRegistryMap {\r\n html5: typeof HTML5Tech;\r\n }\r\n}\r\n","/*\r\n * Portions of this code are derived from react-player\r\n * https://github.com/cookpete/react-player\r\n * Licensed under the MIT License\r\n * Copyright (c) 2017 Pete Cook\r\n */\r\n\r\n// ===========================================================================\r\n// MEDIA EXTENSION MATCHERS\r\n// ===========================================================================\r\nexport const AUDIO_EXTENSIONS = /\\.(m4a|m4b|mp4a|mpga|mp2|mp2a|mp3|m2a|m3a|wav|weba|aac|oga|spx|flac|wma|opus|midi?)($|\\?)/i;\r\nexport const VIDEO_EXTENSIONS = /\\.(mp4|mkv|avi|mov|webm|mpg|mpeg|og[gv]|m4v|flv|wmv|3gp|3g2|ts)(#t=[,\\d+]+)?($|\\?)/i;\r\nexport const HLS_EXTENSIONS = /\\.(m3u8)($|\\?)/i;\r\nexport const DASH_EXTENSIONS = /\\.(mpd)($|\\?)/i;\r\n\r\n// ===========================================================================\r\n// PLATFORM URL MATCHERS\r\n// ===========================================================================\r\n\r\n/** Match Mux m3u8 URLs without the extension so users can use hls.js with Mux */\r\nexport const MATCH_URL_MUX = /stream\\.mux\\.com\\/(?!\\w+\\.m3u8)(\\w+)/;\r\n\r\n/** Matches YouTube watch, embed, shorts, live, and nocookie URLs */\r\nexport const MATCH_URL_YOUTUBE = /(?:youtu\\.be\\/|youtube(?:-nocookie|education)?\\.com\\/(?:embed\\/|v\\/|watch\\/|watch\\?v=|watch\\?.+&v=|shorts\\/|live\\/))((\\w|-){11})|youtube\\.com\\/playlist\\?list=|youtube\\.com\\/user\\//;\r\n\r\n/** Matches Vimeo URLs, explicitly ignoring their progressive redirect links */\r\nexport const MATCH_URL_VIMEO = /vimeo\\.com\\/(?!progressive_redirect).+/;\r\n\r\n/** Matches Wistia embeds and medias */\r\nexport const MATCH_URL_WISTIA = /(?:wistia\\.(?:com|net)|wi\\.st)\\/(?:medias|embed)\\/(?:iframe\\/)?([^?]+)/;\r\n\r\n/** Matches Spotify open links */\r\nexport const MATCH_URL_SPOTIFY = /open\\.spotify\\.com\\/(\\w+)\\/(\\w+)/i;\r\n\r\n/** Matches Twitch streams and VODs */\r\nexport const MATCH_URL_TWITCH = /(?:www\\.|go\\.)?twitch\\.tv\\/([a-zA-Z0-9_]+|(videos?\\/|\\?video=)\\d+)($|\\?)/;\r\n\r\n/** Matches TikTok video and share links */\r\nexport const MATCH_URL_TIKTOK = /tiktok\\.com\\/(?:player\\/v1\\/|share\\/video\\/|@[^/]+\\/video\\/)([0-9]+)/;\r\n\r\n// ===========================================================================\r\n// MIME TYPE DICTIONARY\r\n// ===========================================================================\r\n// prettier-ignore\r\nexport const mimeTypes: Record<string, string> = {\r\n // Video formats\r\n avi: \"video/x-msvideo\", mp4: \"video/mp4\", mkv: \"video/x-matroska\", mov: \"video/quicktime\", \r\n flv: \"video/x-flv\", webm: \"video/webm\", ogg: \"video/ogg\", ogv: \"video/ogg\", wmv: \"video/x-ms-wmv\", \r\n \"3gp\": \"video/3gpp\", \"3g2\": \"video/3gpp2\", mpeg: \"video/mpeg\", mpg: \"video/mpeg\", \r\n ts: \"video/mp2t\", m4v: \"video/x-m4v\", m3u8: \"application/vnd.apple.mpegurl\", mpd: \"application/dash+xml\",\r\n // Audio formats\r\n mp3: \"audio/mpeg\", wav: \"audio/wav\", oga: \"audio/ogg\", flac: \"audio/flac\", aac: \"audio/aac\", \r\n m4a: \"audio/mp4\", m4b: \"audio/mp4\", mp4a: \"audio/mp4\", wma: \"audio/x-ms-wma\", opus: \"audio/opus\", \r\n mid: \"audio/midi\", midi: \"audio/midi\", mpga: \"audio/mpeg\", mp2: \"audio/mpeg\", mp2a: \"audio/mpeg\", \r\n m2a: \"audio/mpeg\", m3a: \"audio/mpeg\", weba: \"audio/webm\", spx: \"audio/ogg\",\r\n // Image formats\r\n jpg: \"image/jpeg\", jpeg: \"image/jpeg\", png: \"image/png\", webp: \"image/webp\", gif: \"image/gif\", \r\n bmp: \"image/bmp\", svg: \"image/svg+xml\", tif: \"image/tiff\", tiff: \"image/tiff\", avif: \"image/avif\", \r\n ico: \"image/x-icon\", heic: \"image/heic\", heif: \"image/heif\",\r\n // Document formats\r\n pdf: \"application/pdf\", txt: \"text/plain\", md: \"text/markdown\", csv: \"text/csv\", \r\n json: \"application/json\", xml: \"application/xml\", html: \"text/html\", doc: \"application/msword\", \r\n docx: \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\", \r\n xls: \"application/vnd.ms-excel\", xlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\", \r\n ppt: \"application/vnd.ms-powerpoint\", pptx: \"application/vnd.openxmlformats-officedocument.presentationml.presentation\", \r\n zip: \"application/zip\", rar: \"application/vnd.rar\", \"7z\": \"application/x-7z-compressed\",\r\n};\r\n","/*\r\n * Portions of this code are derived from Video.js\r\n * https://github.com/videojs/video.js\r\n * Licensed under Apache License 2.0\r\n * Copyright (c) Brightcove, Inc. and contributors\r\n */\r\n\r\n// Types\r\ntype Version = string | null;\r\ntype BrandEntry = { brand?: string; version?: string };\r\n\r\n// Environment guards\r\nconst win = \"undefined\" !== typeof window ? window : undefined,\r\n nav = win?.navigator,\r\n ua = nav?.userAgent || \"\",\r\n uaData = (nav as Navigator & { userAgentData?: { platform?: string; brands?: BrandEntry[] } })?.userAgentData;\r\n\r\n// Base flags: bools first, versions second for readability\r\nexport let IS_ANDROID = false;\r\nexport let IS_WINDOWS = false;\r\nexport let IS_FIREFOX = false;\r\nexport let IS_EDGE = false;\r\nexport let IS_CHROME = false;\r\nexport let IS_CHROMIUM = false;\r\nexport let IS_SAFARI = false;\r\nexport let IS_IE = false;\r\nexport let IS_TIZEN = false;\r\nexport let IS_WEBOS = false;\r\nexport let IS_IPOD = false;\r\nexport let IS_IPAD = false;\r\nexport let IS_IPHONE = false;\r\n// Versioned details\r\nexport let IOS_VERSION: Version = null;\r\nexport let ANDROID_VERSION: Version = null;\r\nexport let CHROME_VERSION: Version = null;\r\nexport let CHROMIUM_VERSION: Version = null;\r\nexport let IE_VERSION: Version = null;\r\n// Composite Flags\r\nexport let IS_IOS = false;\r\nexport let IS_MOBILE = false;\r\nexport let IS_SMART_TV = false;\r\n// Capabilities\r\nexport const IS_CHROMECAST_RECEIVER = Boolean((win as any)?.cast?.framework?.CastReceiverContext);\r\nexport const MSE_ENABLED = Boolean(win && (\"MediaSource\" in win || \"webkitMediaSource\" in win));\r\nexport const TOUCH_ENABLED = Boolean(win && (\"ontouchstart\" in win || (nav as Navigator & { maxTouchPoints?: number })?.maxTouchPoints || ((win as any).DocumentTouch && win.document instanceof (win as any).DocumentTouch)));\r\n// Media Queries\r\nexport const queryMediaMobile = (query = `(max-width: 480px), (max-width: 940px) and (max-height: 480px) and (orientation: landscape)`) => Boolean(win && \"matchMedia\" in win && win.matchMedia(query).matches);\r\n\r\n// Modern detection first (userAgentData)\r\nif (uaData?.platform && uaData?.brands) {\r\n // Helpers\r\n const pickVersion = (brands: BrandEntry[], needle: string): Version => brands.find((b) => b.brand === needle && b.version)?.version || null;\r\n // Platform first\r\n IS_ANDROID = uaData.platform === \"Android\";\r\n IS_WINDOWS = uaData.platform === \"Windows\";\r\n // Browser family\r\n IS_EDGE = uaData.brands.some((b) => b.brand === \"Microsoft Edge\");\r\n IS_CHROMIUM = uaData.brands.some((b) => b.brand === \"Chromium\" || b.brand === \"Google Chrome\");\r\n IS_CHROME = IS_CHROMIUM && !IS_EDGE;\r\n // Versions\r\n CHROMIUM_VERSION = CHROME_VERSION = pickVersion(uaData.brands, \"Chromium\") || pickVersion(uaData.brands, \"Google Chrome\");\r\n}\r\n\r\n// Fallback / additional parsing via UA string\r\nif (true || !IS_CHROMIUM || !CHROMIUM_VERSION) {\r\n // General Platforms\r\n IS_ANDROID ||= /Android/i.test(ua);\r\n IS_WINDOWS ||= /Windows/i.test(ua);\r\n // Desktop & general browsers (include iOS-branded variants)\r\n IS_FIREFOX = /Firefox|FxiOS/i.test(ua);\r\n IS_EDGE ||= /Edg|EdgiOS/i.test(ua);\r\n IS_CHROMIUM ||= /Chrome|CriOS/i.test(ua);\r\n IS_CHROME = IS_CHROMIUM && !IS_EDGE;\r\n IS_SAFARI = /Safari/i.test(ua) && !IS_CHROME && !IS_FIREFOX && !IS_EDGE;\r\n IS_IE = /MSIE|(Trident\\/7.0)|(rv:11.0)/i.test(ua);\r\n // TVs\r\n IS_TIZEN = /Tizen/i.test(ua);\r\n IS_WEBOS = /Web0S/i.test(ua);\r\n // Apple desktop/mobile device refinement\r\n IS_IPOD = /iPod/i.test(ua);\r\n IS_IPAD = /iPad/i.test(ua) || (IS_SAFARI && TOUCH_ENABLED && !/iPhone/i.test(ua));\r\n IS_IPHONE = /iPhone/i.test(ua) && !IS_IPAD;\r\n // Versions\r\n IOS_VERSION = ua.match(/OS (\\d+)_/i)?.[1] ?? null;\r\n ANDROID_VERSION = ua.match(/Android\\s(\\d+(?:\\.\\d+)+)/i)?.[1] ?? null;\r\n CHROMIUM_VERSION = CHROME_VERSION = ua.match(/(?:Chrome|CriOS)\\/(\\d+)/)?.[1] ?? CHROMIUM_VERSION;\r\n IE_VERSION = ua.match(/MSIE\\s(\\d+)\\.\\d/)?.[1] || (/Trident\\/7.0/i.test(ua) && /rv:11.0/.test(ua) ? \"11.0\" : null);\r\n} // `true` override for devtools predictability\r\n\r\n// Composite Flags\r\nIS_IOS = IS_IPHONE || IS_IPAD || IS_IPOD;\r\nIS_MOBILE = Boolean(IS_ANDROID || IS_IPHONE || IS_IPOD || IS_IPAD);\r\nIS_SMART_TV = IS_TIZEN || IS_WEBOS;\r\n","import type { CtlrConfig } from \"@defs/config\";\r\nimport type { CtlrMedia } from \"@defs/contract\";\r\nimport type { Action } from \"@defs/actions\";\r\nimport { TechRegistry, PlugRegistry } from \"./registries\";\r\nimport { STATE_BUILD, type CtlrState } from \"@tools/runtime\";\r\nimport { HTML5Tech } from \"@techs/html5\";\r\nimport type { TechConstructor } from \"@techs/base\";\r\nimport { PlugConstructor as PC, type BasePlug as Plug } from \"@plugs/base\";\r\nimport { guardAllMethods, guardMethod } from \"@utils/methd\";\r\nimport { setTimeout, throttle, cancelRAFLoop, RAFLoop, mockAsync, debounce } from \"@utils/fn\";\r\nimport { getWindow } from \"@utils/dom\";\r\nimport { createEl, observeIntersection, observeResize } from \"@utils/dom\";\r\nimport { uncamelize } from \"@utils/str\";\r\nimport { cloneMedia, getMediaReport, isSameSources, getSizeTier } from \"@utils/media\";\r\nimport { type Volatile, reactive, type Reactive, inert, intent, volatile, getRaw } from \"sia-reactor\";\r\nimport { fanout, getPath, mergeObjs as merge, nuke, setPath } from \"sia-reactor/utils\";\r\nimport type { PlugRegistryMap, ControllerDOMMap } from \"@defs/registries\";\r\nimport { isFunc, isStr } from \"@utils/obj\";\r\nimport { silence, transaction } from \"sia-reactor/modules\";\r\n\r\n// --- CONTROLLER (The Orchestrator) ---\r\nexport class Controller {\r\n // --- CORE SYSTEM ---\r\n private ac = new AbortController();\r\n public readonly signal = this.ac.signal;\r\n public plugs = new Map<string, Plug>();\r\n // --- RUNTIME (Global Controller States) ---\r\n public media: Reactive<CtlrMedia>;\r\n public state: Reactive<CtlrState> & Record<string, any>; // runtime state and states to be populated for easy reach\r\n public config: Reactive<Volatile<CtlrConfig>>;\r\n public get settings() {\r\n return this.config.settings; // can change ref\r\n } // for easy reach, better devx\r\n public get actions() {\r\n return this.config.actions; // for easy reach\r\n }\r\n // --- MEMORY ---\r\n public payload: { readyState: number; initialized: boolean; wired: boolean; destroyed: boolean; instance: Controller } = { instance: this } as any;\r\n public _build: CtlrConfig; // Build Cache\r\n // DOM References (Utilized by Externals)\r\n public DOM: ControllerDOMMap = {}; // To be populated with common elements for easy reach\r\n public mutatingDOMM = true; // mutatingDOMMedia: for external watchers that need to know\r\n\r\n constructor(medium: HTMLMediaElement, build: CtlrConfig) {\r\n guardAllMethods(this, this.guard);\r\n const defs = merge(getMediaReport(medium), build.media); // returns defaults and initials\r\n this.config = reactive(volatile(build), { referenceTracking: true, smartCloning: true, debug: false }); // `lineageTracing: false` so clone before reassigning \"already in state\" objects\r\n this.state = reactive<CtlrState>(structuredClone(STATE_BUILD), { debug: false });\r\n this.state.watch(\"readyState\", (v) => ((this.payload.readyState = v), (this.payload.initialized = v > 0), (this.payload.wired = v > 1), (this.payload.destroyed = v < 0)), { signal: this.signal });\r\n this.media = reactive({ intent: volatile(intent(defs.intent)), state: defs.state, status: defs.status, settings: volatile(intent(defs.settings)), tech: inert({}), features: {}, type: build.mediaType, element: medium, pseudoElement: createEl(build.mediaType), container: createEl(\"div\"), pseudoContainer: createEl(\"div\") }, { debug: false }) as any;\r\n this.media.set(\"tech\", (t) => inert(t!), { signal: this.signal });\r\n this.log((this._build = this.config.snapshot())), delete this.config.media; // clone for resets and fast subsequents\r\n this.setReadyState(0), this.boot();\r\n }\r\n\r\n private async boot(): Promise<void> {\r\n this.connectPlugs(), this.wireTechHandler(), this.wireStateHandler();\r\n await mockAsync(0), this.setReadyState(1); // wiring the machinery\r\n this.state.wonce(\"readyState\", () => (!this.media.state.paused ? this.setReadyState(3) : this.media.wonce(\"state.paused\", () => this.setReadyState(3), { signal: this.signal })), { signal: this.signal }); // first play(ed), matters to some\r\n await mockAsync(0), this.setReadyState(2); // block `set` to stall, e.g lightState\r\n setTimeout(() => (this.mutatingDOMM = false), 0, this.signal);\r\n }\r\n\r\n public connectPlugs(Plugs = PlugRegistry.getOrdered()): void {\r\n if (!this.payload.wired) for (const Plug of Plugs) this.plugIn(Plug); // solve the \"must wire before tech to capture\" or plugs go from \"higher power\" to slaves on re-connect\r\n const plugs = this.payload.wired && Plugs.filter((Plug) => this.config.noPlugList !== \"*\" && (!this.config.noPlugList.includes(Plug.fullName) || Plug.isCore)).map((Plug) => new Plug(this));\r\n if (plugs) plugs.forEach((plug) => plug.mount?.()), plugs.forEach((plug) => plug.wire?.()); // plugs might rely on others being plugged in\r\n }\r\n public disconnectPlugs(): void {\r\n for (const plug of [...this.plugs.values()].reverse()) plug.destroy();\r\n }\r\n public plugIn(Plug: PC, config?: any): this {\r\n return this.config.noPlugList !== \"*\" && (!this.config.noPlugList.includes(Plug.fullName) || Plug.isCore) && new Plug(this, config).setup(), this; // #RESPONSIBLE: no external setup\r\n }\r\n public plug<K extends keyof PlugRegistryMap>(fullName: K): InstanceType<PlugRegistryMap[K]> | undefined;\r\n public plug<T extends Plug = Plug>(fullName: string): T | undefined;\r\n public plug(fullName: string): any {\r\n return this.plugs.get(fullName);\r\n }\r\n\r\n protected wireTechHandler(): void {\r\n this.media.on(\"intent.src\", this.handleTech, { capture: true, signal: this.signal, init: true }); // load initial\r\n this.media.on(\"intent.sources\", this.handleTech, { capture: true, signal: this.signal });\r\n this.media.on(\"settings.srcObject\", this.handleTech, { capture: true, signal: this.signal });\r\n }\r\n protected handleTech(): void {\r\n const { src, sources } = this.media.intent;\r\n if (this.media.settings.srcObject) return this.useTech(); // `MediaProvider` is native only\r\n let selectedTech: TechConstructor | null = TechRegistry.pick(src, this.config.settings.techOrder),\r\n selectedSource: string | null = selectedTech ? src : null;\r\n if (!selectedTech && !isSameSources(sources, this.media.state.sources))\r\n for (const source of sources) {\r\n selectedTech = TechRegistry.pick(source.src, this.config.settings.techOrder);\r\n if (selectedTech) {\r\n selectedSource = source.src;\r\n break;\r\n }\r\n }\r\n (getRaw(this.media.state).src = src), (getRaw(this.media.state).sources = inert(sources)); // for tech fanout accuracy\r\n this.useTech(selectedTech || undefined);\r\n if (selectedSource !== src && !this.media.features.sources) silence(() => (this.media.intent.src = selectedSource!)); // bonus since tech can't handle sources\r\n }\r\n public useTech(TechClass: TechConstructor = HTML5Tech): void {\r\n TechClass !== this.media.tech.constructor && (this.media.tech = new TechClass(this)).setup(); // #RESPONSIBLE: no external setup\r\n }\r\n public get techTruth(): \"state\" | \"intent\" {\r\n return this.payload.wired ? \"state\" : \"intent\";\r\n }\r\n public get isNativeEl(): boolean {\r\n return this.media.element === this.media.tech.element;\r\n }\r\n\r\n private wireStateHandler(): void {\r\n observeIntersection(this.media.container.parentElement!, (entry) => (this.state.mediaParentIntersecting = entry.isIntersecting), this.signal);\r\n observeIntersection(this.media.container, (entry) => (this.state.mediaIntersecting = entry.isIntersecting), this.signal);\r\n observeResize(this.media.container, () => fanout(this.state.dimensions.container, getSizeTier(this.media.container)), this.signal);\r\n observeResize(this.media.pseudoContainer, () => fanout(this.state.dimensions.pseudoContainer, getSizeTier(this.media.pseudoContainer)), this.signal);\r\n }\r\n\r\n public setReadyState(state?: number): void {\r\n this.state.readyState = !this.state ? 0 : state ?? this.state.readyState + 1;\r\n const rS = this.state.readyState; // incase of blocked sets, e.g. lightState\r\n this.fire(\"tmgreadystatechange\", this.payload), this.fire(rS === 0 ? \"tmgcreate\" : rS === 1 ? \"tmginit\" : rS === 2 ? \"tmgwire\" : rS === 3 ? \"tmgfirstplay\" : rS === -1 ? \"tmgdestroy\" : \"\", this.payload);\r\n }\r\n\r\n public guard = <Fn extends Function>(fn: Fn, silent = false) => guardMethod(fn, (e) => this.notice(e, \"error\", !silent)); // `()=>{}`: needs to be bounded even before initialization\r\n public notice(mssg: any, type: \"error\" | \"warn\" | \"log\" = \"error\", toast?: string | boolean | null, swallow = true): void {\r\n this.log(mssg, type, swallow), toast !== false && (type === \"log\" || (type === \"error\" && swallow && !this.config.devMode) ? this.plug(\"settings.toasts\")?.toast : this.plug(\"settings.toasts\")?.toast?.[type])?.(toast === null || this.config.devMode ? mssg : isStr(toast) ? toast : \"Something went wrong\", { tag: \"tmg-stwr\" });\r\n }\r\n\r\n public log(mssg: any, type: \"error\" | \"warn\" | \"log\" = \"log\", swallow = false): void {\r\n if (!this.config.debug) return;\r\n if (type === \"error\") return swallow && !this.config.devMode ? console.warn(`[TMG Controller] Error swallowed:`, mssg) : console.error(`[TMG Controller] Error occurred:`, mssg);\r\n else type === \"warn\" ? console.warn(`[TMG Controller] Warning:`, mssg) : console.log(`[TMG Controller] Log:`, mssg);\r\n }\r\n\r\n public fire(eN: string, detail: any = null, el: HTMLElement | EventTarget = this.media.element, bubbles = true, cancelable = true): void {\r\n eN && el?.dispatchEvent(new CustomEvent(eN, { detail, bubbles, cancelable }));\r\n }\r\n\r\n public zenlist: string[] = [\"settings\"]; // plugs append here to block actions while their UI is active\r\n public registerAction(key: string, action: Omit<Action, \"id\">): void {\r\n const existing = this.actions[key] ?? {};\r\n this.actions[key] = { ...action, ...existing, id: key as any, fn: action.fn }; // fn always comes from the registering plug (runtime source of truth), persisted fields (label, logic, notify) survive from existing entry\r\n this.config.on(`actions.${key}` as any, () => this.actions[key] && this.actions[key].fn !== action.fn && (this.actions[key].fn = action.fn), { signal: this.signal });\r\n }\r\n public unregisterAction(key: string): void {\r\n delete this.actions[key];\r\n }\r\n public runAction(id: string, ...args: any[]): void {\r\n const action = this.actions[id];\r\n if (!action || (!action.zen && this.zenlist.some(this.isUIActive))) return;\r\n transaction(() => {\r\n if (action.logic?.length) {\r\n const root = { media: this.media, settings: this.config.settings } as any;\r\n for (const step of action.logic) {\r\n const cur = getPath(root, step.path as any);\r\n step.op === \"toggle\" ? setPath(root, step.path as any, !cur) : step.op === \"increment\" ? setPath(root, step.path as any, (cur as number) + (step.value ?? 1)) : step.op === \"decrement\" ? setPath(root, step.path as any, (cur as number) - (step.value ?? 1)) : setPath(root, step.path as any, step.value);\r\n }\r\n }\r\n action.fn?.(...args), action.notify && this.plug(\"settings.notifiers\")?.notify(action.notify), action.toast && this.plug(\"settings.toasts\")?.toast?.((isFunc(action.toast.render) ? action.toast.render() : action.toast.render) || \"Action Triggered\", action.toast);\r\n }, action.label ?? action.id);\r\n }\r\n public isLogicPath(path: string): boolean {\r\n return this.config.logicPathBlacklist.some((b) => path === b || path.startsWith(b + \".\")) || (path.startsWith(\"media.intent.\") && !(this.media.features as any)[path.split(\".\").pop()!]) ? false : true;\r\n }\r\n\r\n public throttle(key: string, fn: Function, delay = 30, strict: ((fn: Function) => number) | boolean = true, signal = this.signal) {\r\n throttle(this.config.id + key, fn, delay, strict, signal, getWindow(this.media.container));\r\n }\r\n public debounce(key: string, fn: Function, delay = 30, strict = true, signal = this.signal) {\r\n debounce(this.config.id + key, fn, delay, strict, signal, getWindow(this.media.container));\r\n }\r\n public RAFLoop(key: string, fn: Function, signal = this.signal): void {\r\n RAFLoop(this.config.id + key, fn, signal, getWindow(this.media.container));\r\n }\r\n public cancelRAFLoop(key: string): void {\r\n cancelRAFLoop(this.config.id + key);\r\n }\r\n public cancelAllLoops(): void {\r\n if (t007._RAFLoopers) for (const k of t007._RAFLoopers.keys()) k.startsWith(this.config.id) && cancelRAFLoop(k);\r\n }\r\n\r\n public isUIActive(mode: string): boolean {\r\n return this.media.container.classList.contains(`tmg-media-${uncamelize(mode === \"settings\" ? \"settings-view\" : mode, \"-\")}`);\r\n }\r\n public queryDOM<K extends keyof HTMLElementTagNameMap>(query: K, all: true, isPseudo?: boolean): NodeListOf<HTMLElementTagNameMap[K]>;\r\n public queryDOM<E extends Element = HTMLElement>(query: string, all: true, isPseudo?: boolean): NodeListOf<E>;\r\n public queryDOM<K extends keyof HTMLElementTagNameMap>(query: K, all?: false, isPseudo?: boolean): HTMLElementTagNameMap[K] | null;\r\n public queryDOM<E extends Element = HTMLElement>(query: string, all?: false, isPseudo?: boolean): E | null;\r\n public queryDOM(query: string, all = false, isPseudo = false) {\r\n return all ? (isPseudo ? this.media.pseudoContainer : this.media.container).querySelectorAll(query) : (isPseudo ? this.media.pseudoContainer : this.media.container).querySelector(query);\r\n }\r\n\r\n public syncImgLoadState(img: HTMLImageElement, now = true): HTMLImageElement {\r\n return [\"load\", \"error\"].forEach((ev) => img.addEventListener(ev, this.setImgLoadState, { signal: this.signal })), now && this.setImgLoadState({ target: img }), img;\r\n }\r\n public setImgLoadState<Ev extends Pick<Event, \"target\">>({ target: img }: Ev): void {\r\n img instanceof HTMLImageElement && img?.setAttribute(\"data-loaded\", String(img.complete && img.naturalWidth > 0));\r\n }\r\n public setImgFallback<Ev extends Pick<Event, \"target\">>({ target: img }: Ev): void {\r\n img instanceof HTMLImageElement && img.src !== window.TMG_MEDIA_ALT_IMG_SRC && (img.src = window.TMG_MEDIA_ALT_IMG_SRC!);\r\n }\r\n private altImg?: HTMLImageElement;\r\n public setCanvasFallback(canvas: HTMLCanvasElement, context?: CanvasRenderingContext2D | null, _callback = (img = this.altImg) => context?.drawImage((this.altImg = img)!, 0, 0, canvas.width, canvas.height)): void {\r\n const _img = canvas && (this.altImg && this.altImg.src === window.TMG_MEDIA_ALT_IMG_SRC ? _callback() : createEl(\"img\", { src: window.TMG_MEDIA_ALT_IMG_SRC, onload: () => _callback(_img as HTMLImageElement) }));\r\n }\r\n\r\n public destroy() {\r\n this.mutatingDOMM = true; // destruction will mutate, flag external watchers\r\n this.setReadyState(-1);\r\n this.ac.abort(\"[TMG Controller] Instance is being destroyed\"), this.cancelAllLoops();\r\n this.disconnectPlugs(), this.media.tech.destroy();\r\n const el = this.config.cloneOnDetach ? cloneMedia(this.media.element) : this.media.element;\r\n this.state.destroy(), this.config.destroy(), this.media.destroy();\r\n return nuke(this), el;\r\n }\r\n}\r\n","import { Controller } from \"@core/controller\";\r\nimport { Controllers } from \"./runtime\";\r\nimport { loadResource } from \"@utils/dom\";\r\nimport { isIter, isObj, setHTMLConfig } from \"@utils/obj\";\r\nimport { luid } from \"@utils/str\";\r\nimport { CONFIG_BUILD } from \"@consts/config\";\r\nimport type { CtlrConfig } from \"@defs/config\";\r\nimport { DeepPartial, Paths, PathValue } from \"sia-reactor\";\r\nimport { mergeObjs, parsePathObj } from \"sia-reactor/utils\";\r\nimport { MediaType } from \"@defs/generics\";\r\n\r\nexport type BuildParam = DeepPartial<CtlrConfig> & Record<Paths<CtlrConfig>, PathValue<CtlrConfig>>;\r\n\r\nexport class Player {\r\n private medium: HTMLMediaElement | null = null;\r\n private active: boolean = false;\r\n private _build: CtlrConfig = structuredClone(CONFIG_BUILD) as CtlrConfig;\r\n private controller: Controller | null = null;\r\n public get Controller() {\r\n return this.controller;\r\n }\r\n public get build(): CtlrConfig {\r\n return this._build;\r\n }\r\n public set build(build: BuildParam) {\r\n this.configure(build);\r\n }\r\n\r\n constructor(build: BuildParam = {} as BuildParam) {\r\n this.configure({ ...build, id: build.id ?? `${luid()}_Controller_${Controllers.length + 1}` });\r\n }\r\n\r\n private queryBuild(): boolean {\r\n return !this.active || (this.notice({ error: \"Already deployed the custom controls of your build configuration\", tip: \"Consider setting your build configuration before attaching your media element\" }), false);\r\n }\r\n public configure(build: BuildParam): void {\r\n if (this.queryBuild() && isObj(build)) this._build = mergeObjs(this._build, parsePathObj(build));\r\n }\r\n\r\n public async attach(medium: HTMLMediaElement) {\r\n if (isIter(medium)) return this.notice({ error: \"An iterable argument cannot be attached to the TMG media player\", tip: \"Consider looping the iterable argument to instantiate a new 'tmg.Player' for each\" });\r\n if (this.active) return medium;\r\n medium.tmgPlayer?.detach();\r\n Controllers.push(this.build.id as any); // dummy for liveness\r\n this.build.debug && console.time(`TMG Controller ${Controllers.length} Attach`);\r\n medium.tmgPlayer = this;\r\n this.medium = medium;\r\n await this.fetchOptions(), await this.deployController();\r\n this.build.debug && console.timeEnd(`TMG Controller ${Controllers.indexOf(this.controller!) + 1} Attach`);\r\n return this.controller?.fire(\"tmgattach\", this.controller.payload), medium;\r\n }\r\n public detach() {\r\n if (!this.active) return;\r\n const medium = this.controller?.destroy() ?? ({} as any);\r\n this.controller && Controllers.splice(Controllers.indexOf(this.controller), 1);\r\n medium.classList?.remove(`tmg-${this.build.mediaType}`, \"tmg-media\", \"tmg-host\");\r\n medium.tmgcontrols = this.active = false;\r\n // this.controller?.fire(\"tmgdetach\", this.controller.payload);\r\n return (medium.tmgPlayer = this.controller = this.medium = null), medium;\r\n }\r\n\r\n public async fetchOptions() {\r\n if (!this.medium) return;\r\n if (this.medium.getAttribute(\"tmg\")?.includes(\".json\"))\r\n await fetch(this.medium.getAttribute(\"tmg\")!)\r\n .then((res) => {\r\n if (!res.ok) throw new Error(`JSON file not found at provided URL!. Status: ${res.status}`);\r\n return res.json();\r\n })\r\n .then((json) => this.configure(json))\r\n .catch(({ message }) => this.notice({ error: message, tip: \"A valid JSON file is required for parsing your build configuration\" }));\r\n const build = {} as BuildParam,\r\n attributes = this.medium.getAttributeNames().filter((attr) => attr.startsWith(\"tmg--\"));\r\n for (const attr of attributes) setHTMLConfig<BuildParam>(build, attr as any, this.medium!.getAttribute(attr)!);\r\n this.configure(build);\r\n }\r\n\r\n private async deployController() {\r\n if (this.active || !this.medium?.isConnected) return;\r\n if (!(this.medium instanceof HTMLMediaElement)) return this.notice({ error: `Could not deploy custom controls on the '${(this.medium as HTMLElement).tagName}' element as it is not supported`, warning: \"Only the 'VIDEO' and 'AUDIO' elements are currently supported\", tip: \"\" });\r\n this.build.mediaType = this.medium.tagName.toLowerCase() as MediaType;\r\n this.medium.controls = false;\r\n this.medium.tmgcontrols = this.active = true;\r\n this.medium.classList.add(`tmg-${this.build.mediaType}`, \"tmg-media\", \"tmg-host\");\r\n await Promise.all([loadResource(window.TMG_MEDIA_CSS_SRC!), loadResource(window.T007_TOAST_JS_SRC!, \"script\", { module: true }), loadResource(window.T007_INPUT_JS_SRC!, \"script\")]); // await\r\n Controllers[Controllers.indexOf(this.build.id as any)] = this.controller = new Controller(this.medium, this._build);\r\n }\r\n\r\n private notice({ error, warning, tip }: Partial<Record<\"error\" | \"warning\" | \"tip\", string>>): void {\r\n if (this.build.debug) error && console.error(`[TMG Player] ${error}`), warning && console.warn(`[TMG Player] ${warning}`), tip && console.info(`[TMG Player] ${tip}`);\r\n }\r\n}\r\n\r\nexport function getCtlrIdx(ctlr: Controller): number {\r\n const i = Controllers.indexOf(ctlr.config.id as any);\r\n return i === -1 ? Controllers.indexOf(ctlr) : i; // a magician never reveals his tricks :)\r\n}\r\n"],"mappings":"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","names":["import_sia_reactor","import_utils","import_utils","import_sia_reactor","module","win","win","setTimeout2","setTimeout2","uid","import_utils","import_utils","import_sia_reactor","import_utils","merge","import_sia_reactor","win","import_modules","import_utils","isBool","e","init","import_sia_reactor","import_utils","import_modules","merge","setTimeout2","import_utils","win","setTimeout2"]}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AUDIO_CONTEXT,
|
|
3
|
+
AUDIO_LIMITER,
|
|
4
|
+
Controllers,
|
|
5
|
+
IS_DOC_TRANSIENT,
|
|
6
|
+
STATE_BUILD,
|
|
7
|
+
connectMediaToAudioManager,
|
|
8
|
+
handleDOMMutation,
|
|
9
|
+
handleVidMutation,
|
|
10
|
+
init,
|
|
11
|
+
mountMedia,
|
|
12
|
+
startAudioManager,
|
|
13
|
+
unmountMedia
|
|
14
|
+
} from "../chunk-IUS3FRXS.js";
|
|
15
|
+
import "../chunk-LWLNQS3O.js";
|
|
16
|
+
import "../chunk-7HRR4LG4.js";
|
|
17
|
+
import "../chunk-XGVDXMS3.js";
|
|
18
|
+
import "../chunk-LVDP2QOX.js";
|
|
19
|
+
import "../chunk-ZSB6HGB5.js";
|
|
20
|
+
import "../chunk-WSBH5QD6.js";
|
|
21
|
+
import "../chunk-2JW4RYM4.js";
|
|
22
|
+
import "../chunk-HCSCY6DU.js";
|
|
23
|
+
import "../chunk-ZCQ5UWVE.js";
|
|
24
|
+
import "../chunk-RM6NFJ7V.js";
|
|
25
|
+
import "../chunk-EY7PB3LA.js";
|
|
26
|
+
import "../chunk-J2SIL62L.js";
|
|
27
|
+
import "../chunk-YVCKIDL5.js";
|
|
28
|
+
import "../chunk-YXO6NQ4E.js";
|
|
29
|
+
import "../chunk-4W6H5CZF.js";
|
|
30
|
+
import "../chunk-BROAUWON.js";
|
|
31
|
+
import "../chunk-6U3M7V32.js";
|
|
32
|
+
import "../chunk-57L2PE3B.js";
|
|
33
|
+
import "../chunk-ZJ6KVLUS.js";
|
|
34
|
+
import "../chunk-UVKRO5ER.js";
|
|
35
|
+
export {
|
|
36
|
+
AUDIO_CONTEXT,
|
|
37
|
+
AUDIO_LIMITER,
|
|
38
|
+
Controllers,
|
|
39
|
+
IS_DOC_TRANSIENT,
|
|
40
|
+
STATE_BUILD,
|
|
41
|
+
connectMediaToAudioManager,
|
|
42
|
+
handleDOMMutation,
|
|
43
|
+
handleVidMutation,
|
|
44
|
+
init,
|
|
45
|
+
mountMedia,
|
|
46
|
+
startAudioManager,
|
|
47
|
+
unmountMedia
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|