@videojs/html 10.0.0-beta.27 → 10.0.0-beta.29
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/cdn/{adapter-XTen-YVQ.js → adapter-CEnNWvii.js} +17 -4
- package/cdn/adapter-CEnNWvii.js.map +1 -0
- package/cdn/adapter-DaKW8NzI.js +2 -0
- package/cdn/adapter-DaKW8NzI.js.map +1 -0
- package/cdn/audio-headless.dev.js +1 -1
- package/cdn/audio-headless.js +1 -1
- package/cdn/audio-minimal-ui.dev.js +2 -2
- package/cdn/audio-minimal-ui.js +1 -1
- package/cdn/audio-minimal.dev.js +5 -5
- package/cdn/audio-minimal.dev.js.map +1 -1
- package/cdn/audio-minimal.js +1 -1
- package/cdn/audio-minimal.js.map +1 -1
- package/cdn/audio-ui.dev.js +2 -2
- package/cdn/audio-ui.js +1 -1
- package/cdn/audio.dev.js +5 -5
- package/cdn/audio.dev.js.map +1 -1
- package/cdn/audio.js +1 -1
- package/cdn/audio.js.map +1 -1
- package/cdn/background-video-WKumpp49.js +59 -0
- package/cdn/background-video-WKumpp49.js.map +1 -0
- package/cdn/background-video-YHY_3-lX.js +2 -0
- package/cdn/background-video-YHY_3-lX.js.map +1 -0
- package/cdn/background.dev.js +3 -56
- package/cdn/background.dev.js.map +1 -1
- package/cdn/background.js +1 -1
- package/cdn/background.js.map +1 -1
- package/cdn/bn-CcLIScl6.js +108 -0
- package/cdn/bn-CcLIScl6.js.map +1 -0
- package/cdn/bn-KcCmQhYd.js +2 -0
- package/cdn/bn-KcCmQhYd.js.map +1 -0
- package/cdn/compounds-C4YYLyL2.js +8 -0
- package/cdn/compounds-C4YYLyL2.js.map +1 -0
- package/cdn/{compounds-CCvdpvge.js → compounds-C73u1MeO.js} +68 -71
- package/cdn/compounds-C73u1MeO.js.map +1 -0
- package/cdn/container-element-Dd0ZCdhK.js +14 -0
- package/cdn/container-element-Dd0ZCdhK.js.map +1 -0
- package/cdn/container-element-HHK_KZOE.js +376 -0
- package/cdn/container-element-HHK_KZOE.js.map +1 -0
- package/cdn/create-player-BU8LDJDL.js +2 -0
- package/cdn/create-player-BU8LDJDL.js.map +1 -0
- package/cdn/{create-player-BHFyOnWi.js → create-player-Db1CIvlK.js} +76 -424
- package/cdn/create-player-Db1CIvlK.js.map +1 -0
- package/cdn/{default-BqQDVloS.js → default-A3aM0skz.js} +2 -2
- package/cdn/default-A3aM0skz.js.map +1 -0
- package/cdn/default-BDyhiTCm.js +2 -0
- package/cdn/default-BDyhiTCm.js.map +1 -0
- package/cdn/{default-I2LasfxC.js → default-C1_k1NeB.js} +2 -2
- package/cdn/default-C1_k1NeB.js.map +1 -0
- package/cdn/default-DHrMd4ie.js +2 -0
- package/cdn/default-DHrMd4ie.js.map +1 -0
- package/cdn/embed-params-D2e8u0d4.js +2 -0
- package/cdn/embed-params-D2e8u0d4.js.map +1 -0
- package/cdn/embed-params-W6T88S8x.js +39 -0
- package/cdn/embed-params-W6T88S8x.js.map +1 -0
- package/cdn/error-surface-BID4D3DW.js +59 -0
- package/cdn/error-surface-BID4D3DW.js.map +1 -0
- package/cdn/{select-tracks-nRPBa1NC.js → error-surface-D0bo71gD.js} +442 -48
- package/cdn/error-surface-D0bo71gD.js.map +1 -0
- package/cdn/{gesture-element-BNfMI8eh.js → gesture-element-CeRy1IVs.js} +2 -2
- package/cdn/gesture-element-CeRy1IVs.js.map +1 -0
- package/cdn/{gesture-element-CG-Sx_5t.js → gesture-element-DB67OYCE.js} +3 -3
- package/cdn/gesture-element-DB67OYCE.js.map +1 -0
- package/cdn/hls-js-CiE4wOrG.js +2 -0
- package/cdn/{hls-js-6lW7L4th.js.map → hls-js-CiE4wOrG.js.map} +1 -1
- package/cdn/hls-js-DBKRCbQm.js +2 -0
- package/cdn/{hls-js-DCQzjzB5.js.map → hls-js-DBKRCbQm.js.map} +1 -1
- package/cdn/{hls-js-g1zdcyvE.js → hls-js-DX2NGCAr.js} +3 -2
- package/cdn/{hls-js-g1zdcyvE.js.map → hls-js-DX2NGCAr.js.map} +1 -1
- package/cdn/{hls-js-Cwj8UBx9.js → hls-js-JeH8yvsP.js} +3 -2
- package/cdn/{hls-js-Cwj8UBx9.js.map → hls-js-JeH8yvsP.js.map} +1 -1
- package/cdn/i18n-CE4KxKuj.js +2 -0
- package/cdn/i18n-CE4KxKuj.js.map +1 -0
- package/cdn/i18n-CpBDXf6M.js +2 -0
- package/cdn/{i18n-DfKGl5Rh.js.map → i18n-CpBDXf6M.js.map} +1 -1
- package/cdn/{i18n-Mtlmj1AA.js → i18n-D0nhPa0m.js} +2 -2
- package/cdn/{i18n-Mtlmj1AA.js.map → i18n-D0nhPa0m.js.map} +1 -1
- package/cdn/i18n-DyF_NfCk.js +157 -0
- package/cdn/i18n-DyF_NfCk.js.map +1 -0
- package/cdn/i18n.dev.js +3 -152
- package/cdn/i18n.dev.js.map +1 -1
- package/cdn/i18n.js +1 -1
- package/cdn/i18n.js.map +1 -1
- package/cdn/live-button-element-Co8z2LkI.js +2 -0
- package/cdn/{live-button-element-CWfkQUoy.js.map → live-button-element-Co8z2LkI.js.map} +1 -1
- package/cdn/{live-button-element-B_y-ZJBy.js → live-button-element-zE-8uoR2.js} +5 -4
- package/cdn/live-button-element-zE-8uoR2.js.map +1 -0
- package/cdn/live-video-minimal.dev.js +12 -10
- package/cdn/live-video-minimal.dev.js.map +1 -1
- package/cdn/live-video-minimal.js +1 -1
- package/cdn/live-video-minimal.js.map +1 -1
- package/cdn/live-video.dev.js +13 -11
- package/cdn/live-video.dev.js.map +1 -1
- package/cdn/live-video.js +1 -1
- package/cdn/live-video.js.map +1 -1
- package/cdn/locales/bn.dev.js +1 -1
- package/cdn/locales/bn.js +1 -1
- package/cdn/media/background-video.dev.d.ts +1 -0
- package/cdn/media/background-video.dev.js +3 -0
- package/cdn/media/background-video.js +1 -0
- package/cdn/media/cloudflare-video.dev.d.ts +1 -0
- package/cdn/media/cloudflare-video.dev.js +668 -0
- package/cdn/media/cloudflare-video.dev.js.map +1 -0
- package/cdn/media/cloudflare-video.js +2 -0
- package/cdn/media/cloudflare-video.js.map +1 -0
- package/cdn/media/container.dev.d.ts +1 -0
- package/cdn/media/container.dev.js +8 -0
- package/cdn/media/container.dev.js.map +1 -0
- package/cdn/media/container.js +2 -0
- package/cdn/media/container.js.map +1 -0
- package/cdn/media/dash-video.dev.js +2 -1
- package/cdn/media/dash-video.js +2 -2
- package/cdn/media/dash-video.js.map +1 -1
- package/cdn/media/google-cast.dev.js +2 -31
- package/cdn/media/google-cast.dev.js.map +1 -1
- package/cdn/media/google-cast.js +3 -3
- package/cdn/media/google-cast.js.map +1 -1
- package/cdn/media/hls-audio.dev.js +2 -1
- package/cdn/media/hls-audio.js +1 -1
- package/cdn/media/hls-audio.js.map +1 -1
- package/cdn/media/hls-background-video.dev.js +2 -1
- package/cdn/media/hls-background-video.js +1 -1
- package/cdn/media/hls-background-video.js.map +1 -1
- package/cdn/media/hls-video.dev.js +2 -1
- package/cdn/media/hls-video.js +1 -1
- package/cdn/media/hls-video.js.map +1 -1
- package/cdn/media/hlsjs-video.dev.js +2 -1
- package/cdn/media/hlsjs-video.js +1 -1
- package/cdn/media/hlsjs-video.js.map +1 -1
- package/cdn/media/mux-audio/hls-js.dev.js +3 -1
- package/cdn/media/mux-audio/hls-js.js +1 -1
- package/cdn/media/mux-audio/spf.dev.js +3 -2
- package/cdn/media/mux-audio/spf.js +1 -1
- package/cdn/media/mux-audio/spf.js.map +1 -1
- package/cdn/media/mux-audio.dev.js +3 -1
- package/cdn/media/mux-audio.js +1 -1
- package/cdn/media/mux-background-video.dev.js +2 -1
- package/cdn/media/mux-background-video.js +1 -1
- package/cdn/media/mux-background-video.js.map +1 -1
- package/cdn/media/mux-data.dev.js +2 -1
- package/cdn/media/mux-data.dev.js.map +1 -1
- package/cdn/media/mux-data.js +2 -2
- package/cdn/media/mux-data.js.map +1 -1
- package/cdn/media/mux-video/hls-js.dev.js +3 -1
- package/cdn/media/mux-video/hls-js.js +1 -1
- package/cdn/media/mux-video/spf.dev.js +3 -2
- package/cdn/media/mux-video/spf.js +1 -1
- package/cdn/media/mux-video/spf.js.map +1 -1
- package/cdn/media/mux-video.dev.js +3 -1
- package/cdn/media/mux-video.js +1 -1
- package/cdn/media/native-hls-video.dev.js +1 -0
- package/cdn/media/native-hls-video.js +1 -1
- package/cdn/media/native-hls-video.js.map +1 -1
- package/cdn/media/spotify-audio.dev.d.ts +1 -0
- package/cdn/media/spotify-audio.dev.js +605 -0
- package/cdn/media/spotify-audio.dev.js.map +1 -0
- package/cdn/media/spotify-audio.js +2 -0
- package/cdn/media/spotify-audio.js.map +1 -0
- package/cdn/media/tiktok-video.dev.d.ts +1 -0
- package/cdn/media/tiktok-video.dev.js +636 -0
- package/cdn/media/tiktok-video.dev.js.map +1 -0
- package/cdn/media/tiktok-video.js +2 -0
- package/cdn/media/tiktok-video.js.map +1 -0
- package/cdn/media/twitch-video.dev.d.ts +1 -0
- package/cdn/media/twitch-video.dev.js +627 -0
- package/cdn/media/twitch-video.dev.js.map +1 -0
- package/cdn/media/twitch-video.js +2 -0
- package/cdn/media/twitch-video.js.map +1 -0
- package/cdn/media/vimeo-video.dev.d.ts +1 -0
- package/cdn/media/vimeo-video.dev.js +3011 -0
- package/cdn/media/vimeo-video.dev.js.map +1 -0
- package/cdn/media/vimeo-video.js +16 -0
- package/cdn/media/vimeo-video.js.map +1 -0
- package/cdn/media/youtube-video.dev.d.ts +1 -0
- package/cdn/media/youtube-video.dev.js +713 -0
- package/cdn/media/youtube-video.dev.js.map +1 -0
- package/cdn/media/youtube-video.js +2 -0
- package/cdn/media/youtube-video.js.map +1 -0
- package/cdn/{media-Uxm0d3Vx.js → media-BI8caj07.js} +3 -3
- package/cdn/{media-Uxm0d3Vx.js.map → media-BI8caj07.js.map} +1 -1
- package/cdn/{media-B_gQXwri.js → media-BNuI0Im7.js} +30 -8
- package/cdn/media-BNuI0Im7.js.map +1 -0
- package/cdn/{media-Cp3acYc8.js → media-BavrGKqa.js} +274 -5
- package/cdn/media-BavrGKqa.js.map +1 -0
- package/cdn/media-CQxFuDcv.js +2 -0
- package/cdn/{media-CbWsJJhU.js.map → media-CQxFuDcv.js.map} +1 -1
- package/cdn/media-CanBm0Jh.js +41 -0
- package/cdn/media-CanBm0Jh.js.map +1 -0
- package/cdn/media-D4tG62L5.js +2 -0
- package/cdn/{media-BTipOcKo.js.map → media-D4tG62L5.js.map} +1 -1
- package/cdn/{media-DRo3n8tM.js → media-DI6DvYm3.js} +4 -4
- package/cdn/{media-DRo3n8tM.js.map → media-DI6DvYm3.js.map} +1 -1
- package/cdn/media-DU3Xf5XR.js +2 -0
- package/cdn/media-DU3Xf5XR.js.map +1 -0
- package/cdn/media-mYKOAsk3.js +825 -0
- package/cdn/media-mYKOAsk3.js.map +1 -0
- package/cdn/media-played-ranges-CM2zeOGr.js +2 -0
- package/cdn/media-played-ranges-CM2zeOGr.js.map +1 -0
- package/cdn/media-played-ranges-Yd9acuMt.js +156 -0
- package/cdn/media-played-ranges-Yd9acuMt.js.map +1 -0
- package/cdn/media-zReLnePj.js +2 -0
- package/cdn/media-zReLnePj.js.map +1 -0
- package/cdn/{minimal-DQCLKRyR.js → minimal-3OmH0xQS.js} +2 -2
- package/cdn/minimal-3OmH0xQS.js.map +1 -0
- package/cdn/{minimal-DLosvq31.js → minimal-6w_Vyyl9.js} +2 -2
- package/cdn/minimal-6w_Vyyl9.js.map +1 -0
- package/cdn/minimal-BWLTn7oQ.js +2 -0
- package/cdn/minimal-BWLTn7oQ.js.map +1 -0
- package/cdn/minimal-DIGrklyh.js +2 -0
- package/cdn/minimal-DIGrklyh.js.map +1 -0
- package/cdn/{minimal-ui-Bxcpf5Mb.js → minimal-ui-BCIESK8f.js} +9 -9
- package/cdn/{minimal-ui-Bxcpf5Mb.js.map → minimal-ui-BCIESK8f.js.map} +1 -1
- package/cdn/minimal-ui-BXrq3z4U.js +2 -0
- package/cdn/{minimal-ui-BVKu9LWj.js.map → minimal-ui-BXrq3z4U.js.map} +1 -1
- package/cdn/{minimal-ui--JsmpU2q.js → minimal-ui-DEalpMk6.js} +5 -5
- package/cdn/{minimal-ui--JsmpU2q.js.map → minimal-ui-DEalpMk6.js.map} +1 -1
- package/cdn/minimal-ui-vY3QgohH.js +2 -0
- package/cdn/{minimal-ui-AFk6Ut5f.js.map → minimal-ui-vY3QgohH.js.map} +1 -1
- package/cdn/mixin-BqN0V06a.js +2 -0
- package/cdn/{mixin-DiB7dIef.js.map → mixin-BqN0V06a.js.map} +1 -1
- package/cdn/{mixin-CkNZwQXF.js → mixin-C193v40v.js} +67 -67
- package/cdn/mixin-C193v40v.js.map +1 -0
- package/cdn/noop-BxkeRIz9.js +6 -0
- package/cdn/noop-BxkeRIz9.js.map +1 -0
- package/cdn/noop-Ch0IHcOP.js +2 -0
- package/cdn/noop-Ch0IHcOP.js.map +1 -0
- package/cdn/{player-C4ix6TQq.js → player-B3GlPF90.js} +3 -2
- package/cdn/{player-C4ix6TQq.js.map → player-B3GlPF90.js.map} +1 -1
- package/cdn/player-CtTC7qa5.js +2 -0
- package/cdn/{player-B0ccW5-n.js.map → player-CtTC7qa5.js.map} +1 -1
- package/cdn/player-DKkph8UM.js +2 -0
- package/cdn/{player-srq1RGTj.js.map → player-DKkph8UM.js.map} +1 -1
- package/cdn/{player-B0qnepD5.js → player-DPDmTRvg.js} +3 -2
- package/cdn/{player-B0qnepD5.js.map → player-DPDmTRvg.js.map} +1 -1
- package/cdn/player-DrDd7LJi.js +2 -0
- package/cdn/{player-iIewo8Y9.js.map → player-DrDd7LJi.js.map} +1 -1
- package/cdn/{player-D4fdOLLk.js → player-L5UpZmT4.js} +3 -2
- package/cdn/{player-D4fdOLLk.js.map → player-L5UpZmT4.js.map} +1 -1
- package/cdn/{poster-element-BP1Ypgbf.js → poster-element-B5tdJ2ub.js} +192 -39
- package/cdn/poster-element-B5tdJ2ub.js.map +1 -0
- package/cdn/poster-element-B8QwXSU_.js +2 -0
- package/cdn/poster-element-B8QwXSU_.js.map +1 -0
- package/cdn/{error-surface-drmCvBVW.js → relocation-pipelines-Dh8CcgHw.js} +5 -343
- package/cdn/relocation-pipelines-Dh8CcgHw.js.map +1 -0
- package/cdn/relocation-pipelines-DunE4gcV.js +2 -0
- package/cdn/relocation-pipelines-DunE4gcV.js.map +1 -0
- package/cdn/script-D3ZkiqwO.js +2 -0
- package/cdn/script-D3ZkiqwO.js.map +1 -0
- package/cdn/script-erPJaaTz.js +33 -0
- package/cdn/script-erPJaaTz.js.map +1 -0
- package/cdn/{seek-button-element-TErrbilI.js → seek-button-element-5co-k0Dx.js} +7 -6
- package/cdn/seek-button-element-5co-k0Dx.js.map +1 -0
- package/cdn/seek-button-element-B8TkILg-.js +2 -0
- package/cdn/seek-button-element-B8TkILg-.js.map +1 -0
- package/cdn/shallow-equal-C7S8rj2f.js +16 -0
- package/cdn/shallow-equal-C7S8rj2f.js.map +1 -0
- package/cdn/shallow-equal-KV1zFqZi.js +2 -0
- package/cdn/shallow-equal-KV1zFqZi.js.map +1 -0
- package/cdn/{skin-element-wPSb4AAs.js → skin-element-DrkI8xuM.js} +2 -2
- package/cdn/{skin-element-wPSb4AAs.js.map → skin-element-DrkI8xuM.js.map} +1 -1
- package/cdn/{skin-element-1_MG2zgS.js → skin-element-DvX6Bxsv.js} +2 -2
- package/cdn/{skin-element-1_MG2zgS.js.map → skin-element-DvX6Bxsv.js.map} +1 -1
- package/cdn/text-element-BoY6AhMn.js +2 -0
- package/cdn/{text-element-Bsyglab8.js.map → text-element-BoY6AhMn.js.map} +1 -1
- package/cdn/{text-element-DTB9_2HX.js → text-element-cg6l21cd.js} +3 -3
- package/cdn/{text-element-DTB9_2HX.js.map → text-element-cg6l21cd.js.map} +1 -1
- package/cdn/time-slider-chapters-element-BfLjdnU4.js +2 -0
- package/cdn/time-slider-chapters-element-BfLjdnU4.js.map +1 -0
- package/cdn/{time-slider-chapters-element-DPgaLdBt.js → time-slider-chapters-element-CznFQWFm.js} +7 -6
- package/cdn/time-slider-chapters-element-CznFQWFm.js.map +1 -0
- package/cdn/{translate-text-DP0CzUCC.js → translate-text-BWvoW5-r.js} +2 -7
- package/cdn/translate-text-BWvoW5-r.js.map +1 -0
- package/cdn/translate-text-TzSgu_oe.js +2 -0
- package/cdn/translate-text-TzSgu_oe.js.map +1 -0
- package/cdn/{ui-D0AokGxw.js → ui-BwzqkJNK.js} +8 -8
- package/cdn/{ui-D0AokGxw.js.map → ui-BwzqkJNK.js.map} +1 -1
- package/cdn/ui-DayfItun.js +2 -0
- package/cdn/{ui-CecDxhTX.js.map → ui-DayfItun.js.map} +1 -1
- package/cdn/ui-PSnD-pv8.js +2 -0
- package/cdn/{ui-ChWM6Xz2.js.map → ui-PSnD-pv8.js.map} +1 -1
- package/cdn/{ui-p36Szn71.js → ui-fnKp94a7.js} +10 -10
- package/cdn/{ui-p36Szn71.js.map → ui-fnKp94a7.js.map} +1 -1
- package/cdn/video-headless.dev.js +1 -1
- package/cdn/video-headless.js +1 -1
- package/cdn/video-minimal-ui.dev.js +2 -2
- package/cdn/video-minimal-ui.js +1 -1
- package/cdn/video-minimal.dev.js +8 -6
- package/cdn/video-minimal.dev.js.map +1 -1
- package/cdn/video-minimal.js +1 -1
- package/cdn/video-minimal.js.map +1 -1
- package/cdn/video-ui.dev.js +2 -2
- package/cdn/video-ui.js +1 -1
- package/cdn/video.dev.js +9 -7
- package/cdn/video.dev.js.map +1 -1
- package/cdn/video.js +1 -1
- package/cdn/video.js.map +1 -1
- package/dist/default/__generated__/skins/default-video/styles/buttons.css +132 -18
- package/dist/default/__generated__/skins/default-video/styles/captions.css +22 -0
- package/dist/default/__generated__/skins/default-video/styles/container.css +121 -8
- package/dist/default/__generated__/skins/default-video/styles/controls.css +436 -21
- package/dist/default/__generated__/skins/default-video/styles/dialog.css +169 -0
- package/dist/default/__generated__/skins/default-video/styles/indicator.css +459 -0
- package/dist/default/__generated__/skins/default-video/styles/menus.css +254 -0
- package/dist/default/__generated__/skins/default-video/styles/overlays.css +26 -2
- package/dist/default/__generated__/skins/default-video/styles/popups.css +338 -12
- package/dist/default/__generated__/skins/default-video/styles/poster.css +4 -4
- package/dist/default/__generated__/skins/default-video/styles/sliders.css +355 -31
- package/dist/default/__generated__/skins/default-video/styles/styles.css +2455 -216
- package/dist/default/__generated__/skins/default-video/styles/theme.css +4 -19
- package/dist/default/__generated__/skins/default-video/styles/video.css +29 -0
- package/dist/default/__generated__/skins/minimal-video/styles/base.css +25 -0
- package/dist/default/__generated__/skins/minimal-video/styles/buttons.css +266 -0
- package/dist/default/__generated__/skins/minimal-video/styles/captions.css +22 -0
- package/dist/default/__generated__/skins/minimal-video/styles/container.css +158 -0
- package/dist/default/__generated__/skins/minimal-video/styles/controls.css +182 -0
- package/dist/default/__generated__/skins/minimal-video/styles/dialog.css +77 -0
- package/dist/default/__generated__/skins/minimal-video/styles/indicator.css +322 -0
- package/dist/default/__generated__/skins/minimal-video/styles/menus.css +254 -0
- package/dist/default/__generated__/skins/minimal-video/styles/overlays.css +35 -0
- package/dist/default/__generated__/skins/minimal-video/styles/popups.css +371 -0
- package/dist/default/__generated__/skins/minimal-video/styles/poster.css +47 -0
- package/dist/default/__generated__/skins/minimal-video/styles/sliders.css +436 -0
- package/dist/default/__generated__/skins/minimal-video/styles/styles.css +2246 -0
- package/dist/default/__generated__/skins/minimal-video/styles/theme.css +7 -0
- package/dist/default/__generated__/skins/minimal-video/styles/video.css +29 -0
- package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/audio/skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/live-audio/minimal-skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/live-audio/minimal-skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/live-audio/skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/live-audio/skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/live-video/minimal-skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/live-video/minimal-skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/live-video/skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/live-video/skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/video/skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/video/skin.js.map +1 -1
- package/dist/default/define/audio/minimal-skin.css +117 -118
- package/dist/default/define/audio/skin.css +95 -99
- package/dist/default/define/live-audio/minimal-skin.css +117 -118
- package/dist/default/define/live-audio/skin.css +95 -99
- package/dist/default/define/live-video/minimal-skin.css +158 -137
- package/dist/default/define/live-video/minimal-skin.js +1 -1
- package/dist/default/define/live-video/minimal-skin.js.map +1 -1
- package/dist/default/define/live-video/minimal-skin.tailwind.js +1 -1
- package/dist/default/define/live-video/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/define/live-video/skin.css +120 -106
- package/dist/default/define/live-video/skin.js +1 -1
- package/dist/default/define/live-video/skin.js.map +1 -1
- package/dist/default/define/live-video/skin.tailwind.js +1 -1
- package/dist/default/define/live-video/skin.tailwind.js.map +1 -1
- package/dist/default/define/ui/gesture.js +7 -0
- package/dist/default/define/ui/gesture.js.map +1 -0
- package/dist/default/define/video/minimal-skin.css +158 -137
- package/dist/default/define/video/minimal-skin.js +1 -1
- package/dist/default/define/video/minimal-skin.js.map +1 -1
- package/dist/default/define/video/minimal-skin.tailwind.js +1 -1
- package/dist/default/define/video/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/define/video/skin.css +120 -106
- package/dist/default/define/video/skin.js +1 -1
- package/dist/default/define/video/skin.js.map +1 -1
- package/dist/default/define/video/skin.tailwind.js +1 -1
- package/dist/default/define/video/skin.tailwind.js.map +1 -1
- package/dist/default/icons/dist/element/default/icons.js +1 -1
- package/dist/default/icons/dist/element/default/icons.js.map +1 -1
- package/dist/default/icons/dist/element/minimal/icons.js +1 -1
- package/dist/default/icons/dist/element/minimal/icons.js.map +1 -1
- package/dist/default/icons/dist/html/default/airplay-exit.js +1 -1
- package/dist/default/icons/dist/html/default/airplay-exit.js.map +1 -1
- package/dist/default/icons/dist/html/minimal/airplay-exit.js +1 -1
- package/dist/default/icons/dist/html/minimal/airplay-exit.js.map +1 -1
- package/dist/default/icons/dist/render/default/index.js +1 -1
- package/dist/default/icons/dist/render/default/index.js.map +1 -1
- package/dist/default/icons/dist/render/minimal/index.js +1 -1
- package/dist/default/icons/dist/render/minimal/index.js.map +1 -1
- package/dist/default/media/hls-background-video/media.js +18 -0
- package/dist/default/media/hls-background-video/media.js.map +1 -1
- package/dist/default/media/tiktok-video/media.js +3 -2
- package/dist/default/media/tiktok-video/media.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/button.js +3 -1
- package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/poster.js +8 -1
- package/dist/default/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/slider.js +13 -13
- package/dist/default/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/thumbnail.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/thumbnail.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +3 -3
- package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js +8 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js +13 -12
- package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/thumbnail.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/thumbnail.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +7 -6
- package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/shared/tailwind/icon-state.js +4 -4
- package/dist/default/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
- package/dist/default/store/provider-mixin.js +22 -8
- package/dist/default/store/provider-mixin.js.map +1 -1
- package/dist/default/ui/audio-track-radio-group/audio-track-radio-group-element.js +1 -1
- package/dist/default/ui/audio-track-radio-group/audio-track-radio-group-element.js.map +1 -1
- package/dist/default/ui/captions-radio-group/captions-radio-group-element.js +1 -1
- package/dist/default/ui/captions-radio-group/captions-radio-group-element.js.map +1 -1
- package/dist/default/ui/gesture/gesture-element.js.map +1 -1
- package/dist/default/ui/hotkey/hotkey-element.js.map +1 -1
- package/dist/default/ui/menu/context.js.map +1 -1
- package/dist/default/ui/menu/menu-element.js +28 -27
- package/dist/default/ui/menu/menu-element.js.map +1 -1
- package/dist/default/ui/menu/menu-radio-group-element.js +14 -14
- package/dist/default/ui/menu/menu-radio-group-element.js.map +1 -1
- package/dist/default/ui/playback-rate-button/playback-rate-button-element.js +1 -2
- package/dist/default/ui/playback-rate-button/playback-rate-button-element.js.map +1 -1
- package/dist/default/ui/playback-rate-radio-group/playback-rate-radio-group-element.js +1 -1
- package/dist/default/ui/playback-rate-radio-group/playback-rate-radio-group-element.js.map +1 -1
- package/dist/default/ui/poster/poster-element.js +138 -8
- package/dist/default/ui/poster/poster-element.js.map +1 -1
- package/dist/default/ui/quality-radio-group/quality-radio-group-element.js +1 -1
- package/dist/default/ui/quality-radio-group/quality-radio-group-element.js.map +1 -1
- package/dist/default/ui/slider/slider-preview-element.js.map +1 -1
- package/dist/dev/__generated__/skins/default-video/styles/buttons.css +132 -18
- package/dist/dev/__generated__/skins/default-video/styles/captions.css +22 -0
- package/dist/dev/__generated__/skins/default-video/styles/container.css +121 -8
- package/dist/dev/__generated__/skins/default-video/styles/controls.css +436 -21
- package/dist/dev/__generated__/skins/default-video/styles/dialog.css +169 -0
- package/dist/dev/__generated__/skins/default-video/styles/indicator.css +459 -0
- package/dist/dev/__generated__/skins/default-video/styles/menus.css +254 -0
- package/dist/dev/__generated__/skins/default-video/styles/overlays.css +26 -2
- package/dist/dev/__generated__/skins/default-video/styles/popups.css +338 -12
- package/dist/dev/__generated__/skins/default-video/styles/poster.css +4 -4
- package/dist/dev/__generated__/skins/default-video/styles/sliders.css +355 -31
- package/dist/dev/__generated__/skins/default-video/styles/styles.css +2455 -216
- package/dist/dev/__generated__/skins/default-video/styles/theme.css +4 -19
- package/dist/dev/__generated__/skins/default-video/styles/video.css +29 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/base.css +25 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/buttons.css +266 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/captions.css +22 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/container.css +158 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/controls.css +182 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/dialog.css +77 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/indicator.css +322 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/menus.css +254 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/overlays.css +35 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/popups.css +371 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/poster.css +47 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/sliders.css +436 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/styles.css +2246 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/theme.css +7 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/video.css +29 -0
- package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/audio/skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/live-audio/minimal-skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/live-audio/minimal-skin.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/live-audio/skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/live-audio/skin.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/live-video/minimal-skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/live-video/minimal-skin.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/live-video/skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/live-video/skin.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/video/skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/video/skin.js.map +1 -1
- package/dist/dev/define/audio/minimal-skin.css +117 -118
- package/dist/dev/define/audio/skin.css +95 -99
- package/dist/dev/define/live-audio/minimal-skin.css +117 -118
- package/dist/dev/define/live-audio/skin.css +95 -99
- package/dist/dev/define/live-video/minimal-skin.css +158 -137
- package/dist/dev/define/live-video/minimal-skin.d.ts.map +1 -1
- package/dist/dev/define/live-video/minimal-skin.js +3 -1
- package/dist/dev/define/live-video/minimal-skin.js.map +1 -1
- package/dist/dev/define/live-video/minimal-skin.tailwind.d.ts.map +1 -1
- package/dist/dev/define/live-video/minimal-skin.tailwind.js +3 -1
- package/dist/dev/define/live-video/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/define/live-video/skin.css +120 -106
- package/dist/dev/define/live-video/skin.d.ts.map +1 -1
- package/dist/dev/define/live-video/skin.js +3 -1
- package/dist/dev/define/live-video/skin.js.map +1 -1
- package/dist/dev/define/live-video/skin.tailwind.d.ts.map +1 -1
- package/dist/dev/define/live-video/skin.tailwind.js +4 -2
- package/dist/dev/define/live-video/skin.tailwind.js.map +1 -1
- package/dist/dev/define/ui/gesture.d.ts +8 -0
- package/dist/dev/define/ui/gesture.d.ts.map +1 -0
- package/dist/dev/define/ui/gesture.js +7 -0
- package/dist/dev/define/ui/gesture.js.map +1 -0
- package/dist/dev/define/video/minimal-skin.css +158 -137
- package/dist/dev/define/video/minimal-skin.d.ts.map +1 -1
- package/dist/dev/define/video/minimal-skin.js +3 -1
- package/dist/dev/define/video/minimal-skin.js.map +1 -1
- package/dist/dev/define/video/minimal-skin.tailwind.d.ts.map +1 -1
- package/dist/dev/define/video/minimal-skin.tailwind.js +3 -1
- package/dist/dev/define/video/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/define/video/skin.css +120 -106
- package/dist/dev/define/video/skin.d.ts.map +1 -1
- package/dist/dev/define/video/skin.js +3 -1
- package/dist/dev/define/video/skin.js.map +1 -1
- package/dist/dev/define/video/skin.tailwind.d.ts.map +1 -1
- package/dist/dev/define/video/skin.tailwind.js +4 -2
- package/dist/dev/define/video/skin.tailwind.js.map +1 -1
- package/dist/dev/media/hls-background-video/media.d.ts +16 -0
- package/dist/dev/media/hls-background-video/media.d.ts.map +1 -1
- package/dist/dev/media/hls-background-video/media.js +18 -0
- package/dist/dev/media/hls-background-video/media.js.map +1 -1
- package/dist/dev/media/tiktok-video/media.d.ts.map +1 -1
- package/dist/dev/media/tiktok-video/media.js +10 -7
- package/dist/dev/media/tiktok-video/media.js.map +1 -1
- package/dist/dev/packages/icons/dist/element/default/icons.js +1 -1
- package/dist/dev/packages/icons/dist/element/default/icons.js.map +1 -1
- package/dist/dev/packages/icons/dist/element/minimal/icons.js +1 -1
- package/dist/dev/packages/icons/dist/element/minimal/icons.js.map +1 -1
- package/dist/dev/packages/icons/dist/html/default/airplay-exit.js +1 -1
- package/dist/dev/packages/icons/dist/html/default/airplay-exit.js.map +1 -1
- package/dist/dev/packages/icons/dist/html/minimal/airplay-exit.js +1 -1
- package/dist/dev/packages/icons/dist/html/minimal/airplay-exit.js.map +1 -1
- package/dist/dev/packages/icons/dist/render/default/index.js +1 -1
- package/dist/dev/packages/icons/dist/render/default/index.js.map +1 -1
- package/dist/dev/packages/icons/dist/render/minimal/index.js +1 -1
- package/dist/dev/packages/icons/dist/render/minimal/index.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/default/tailwind/components/button.js +3 -1
- package/dist/dev/packages/skins/dist/default/default/tailwind/components/button.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/default/tailwind/components/poster.js +8 -1
- package/dist/dev/packages/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/default/tailwind/components/slider.js +13 -13
- package/dist/dev/packages/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/default/tailwind/components/thumbnail.js +1 -1
- package/dist/dev/packages/skins/dist/default/default/tailwind/components/thumbnail.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/default/tailwind/video.tailwind.js +3 -3
- package/dist/dev/packages/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/poster.js +8 -1
- package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/slider.js +13 -12
- package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/thumbnail.js +1 -1
- package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/thumbnail.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/minimal/tailwind/video.tailwind.js +7 -6
- package/dist/dev/packages/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/shared/tailwind/icon-state.js +4 -4
- package/dist/dev/packages/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
- package/dist/dev/store/provider-mixin.d.ts.map +1 -1
- package/dist/dev/store/provider-mixin.js +24 -8
- package/dist/dev/store/provider-mixin.js.map +1 -1
- package/dist/dev/store/types.d.ts +2 -2
- package/dist/dev/store/types.d.ts.map +1 -1
- package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group-element.js +1 -1
- package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group-element.js.map +1 -1
- package/dist/dev/ui/captions-radio-group/captions-radio-group-element.js +1 -1
- package/dist/dev/ui/captions-radio-group/captions-radio-group-element.js.map +1 -1
- package/dist/dev/ui/gesture/gesture-element.d.ts +7 -7
- package/dist/dev/ui/gesture/gesture-element.d.ts.map +1 -1
- package/dist/dev/ui/gesture/gesture-element.js.map +1 -1
- package/dist/dev/ui/hotkey/hotkey-element.d.ts +6 -6
- package/dist/dev/ui/hotkey/hotkey-element.d.ts.map +1 -1
- package/dist/dev/ui/hotkey/hotkey-element.js.map +1 -1
- package/dist/dev/ui/menu/context.d.ts +8 -8
- package/dist/dev/ui/menu/context.d.ts.map +1 -1
- package/dist/dev/ui/menu/context.js.map +1 -1
- package/dist/dev/ui/menu/menu-element.d.ts.map +1 -1
- package/dist/dev/ui/menu/menu-element.js +28 -27
- package/dist/dev/ui/menu/menu-element.js.map +1 -1
- package/dist/dev/ui/menu/menu-radio-group-element.d.ts +1 -1
- package/dist/dev/ui/menu/menu-radio-group-element.d.ts.map +1 -1
- package/dist/dev/ui/menu/menu-radio-group-element.js +14 -14
- package/dist/dev/ui/menu/menu-radio-group-element.js.map +1 -1
- package/dist/dev/ui/playback-rate-button/playback-rate-button-element.d.ts.map +1 -1
- package/dist/dev/ui/playback-rate-button/playback-rate-button-element.js +1 -2
- package/dist/dev/ui/playback-rate-button/playback-rate-button-element.js.map +1 -1
- package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group-element.js +1 -1
- package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group-element.js.map +1 -1
- package/dist/dev/ui/poster/poster-element.d.ts +20 -18
- package/dist/dev/ui/poster/poster-element.d.ts.map +1 -1
- package/dist/dev/ui/poster/poster-element.js +145 -8
- package/dist/dev/ui/poster/poster-element.js.map +1 -1
- package/dist/dev/ui/quality-radio-group/quality-radio-group-element.js +1 -1
- package/dist/dev/ui/quality-radio-group/quality-radio-group-element.js.map +1 -1
- package/dist/dev/ui/slider/slider-preview-element.d.ts +2 -2
- package/dist/dev/ui/slider/slider-preview-element.d.ts.map +1 -1
- package/dist/dev/ui/slider/slider-preview-element.js.map +1 -1
- package/docs/README.md +1 -1
- package/docs/concepts/features.md +2 -2
- package/docs/concepts/media-sources.md +79 -1
- package/docs/concepts/skins.md +122 -108
- package/docs/how-to/build-your-own-component.md +1 -1
- package/docs/how-to/customize-skins.md +499 -469
- package/docs/how-to/migrate-from-media-chrome.md +359 -0
- package/docs/how-to/migrate-from-mux-player.md +535 -0
- package/docs/how-to/migrate-from-plyr.md +394 -0
- package/docs/how-to/migrate-from-video-js-8.md +594 -0
- package/docs/llms.txt +9 -0
- package/docs/reference/feature-volume.md +3 -1
- package/docs/reference/menu.md +3 -19
- package/docs/reference/mute-button.md +34 -0
- package/docs/reference/popover.md +2 -2
- package/docs/reference/poster.md +211 -21
- package/docs/reference/slider.md +1 -1
- package/docs/reference/time-slider.md +1 -1
- package/docs/reference/tooltip.md +6 -6
- package/docs/reference/volume-slider.md +2 -2
- package/package.json +15 -9
- package/cdn/adapter-Bk03SAxn.js +0 -2
- package/cdn/adapter-Bk03SAxn.js.map +0 -1
- package/cdn/adapter-XTen-YVQ.js.map +0 -1
- package/cdn/bn-DdelKD_n.js +0 -108
- package/cdn/bn-DdelKD_n.js.map +0 -1
- package/cdn/bn-YS8ruMcO.js +0 -2
- package/cdn/bn-YS8ruMcO.js.map +0 -1
- package/cdn/compounds-CCvdpvge.js.map +0 -1
- package/cdn/compounds-CJ6SbYAh.js +0 -8
- package/cdn/compounds-CJ6SbYAh.js.map +0 -1
- package/cdn/create-player-BHFyOnWi.js.map +0 -1
- package/cdn/create-player-CbpxjDaZ.js +0 -14
- package/cdn/create-player-CbpxjDaZ.js.map +0 -1
- package/cdn/default-BqQDVloS.js.map +0 -1
- package/cdn/default-CXWVp2oG.js +0 -2
- package/cdn/default-CXWVp2oG.js.map +0 -1
- package/cdn/default-Dw6cIEqT.js +0 -2
- package/cdn/default-Dw6cIEqT.js.map +0 -1
- package/cdn/default-I2LasfxC.js.map +0 -1
- package/cdn/error-surface-DCT1m2p1.js +0 -2
- package/cdn/error-surface-DCT1m2p1.js.map +0 -1
- package/cdn/error-surface-drmCvBVW.js.map +0 -1
- package/cdn/gesture-element-BNfMI8eh.js.map +0 -1
- package/cdn/gesture-element-CG-Sx_5t.js.map +0 -1
- package/cdn/hls-js-6lW7L4th.js +0 -2
- package/cdn/hls-js-DCQzjzB5.js +0 -2
- package/cdn/i18n-DfKGl5Rh.js +0 -2
- package/cdn/live-button-element-B_y-ZJBy.js.map +0 -1
- package/cdn/live-button-element-CWfkQUoy.js +0 -2
- package/cdn/media-5ODYtX1-.js +0 -2
- package/cdn/media-5ODYtX1-.js.map +0 -1
- package/cdn/media-BTipOcKo.js +0 -2
- package/cdn/media-B_gQXwri.js.map +0 -1
- package/cdn/media-CPWNSZFX.js +0 -41
- package/cdn/media-CPWNSZFX.js.map +0 -1
- package/cdn/media-CbWsJJhU.js +0 -2
- package/cdn/media-Cp3acYc8.js.map +0 -1
- package/cdn/media-Dq4zmIJa2.js +0 -2
- package/cdn/media-Dq4zmIJa2.js.map +0 -1
- package/cdn/media-suYcjCG22.js +0 -445
- package/cdn/media-suYcjCG22.js.map +0 -1
- package/cdn/minimal-BedCvMBG.js +0 -2
- package/cdn/minimal-BedCvMBG.js.map +0 -1
- package/cdn/minimal-BoP112ye.js +0 -2
- package/cdn/minimal-BoP112ye.js.map +0 -1
- package/cdn/minimal-DLosvq31.js.map +0 -1
- package/cdn/minimal-DQCLKRyR.js.map +0 -1
- package/cdn/minimal-ui-AFk6Ut5f.js +0 -2
- package/cdn/minimal-ui-BVKu9LWj.js +0 -2
- package/cdn/mixin-CkNZwQXF.js.map +0 -1
- package/cdn/mixin-DiB7dIef.js +0 -2
- package/cdn/player-B0ccW5-n.js +0 -2
- package/cdn/player-iIewo8Y9.js +0 -2
- package/cdn/player-srq1RGTj.js +0 -2
- package/cdn/poster-element-BP1Ypgbf.js.map +0 -1
- package/cdn/poster-element-S-rr412t.js +0 -2
- package/cdn/poster-element-S-rr412t.js.map +0 -1
- package/cdn/seek-button-element-DxLmm58Y.js +0 -2
- package/cdn/seek-button-element-DxLmm58Y.js.map +0 -1
- package/cdn/seek-button-element-TErrbilI.js.map +0 -1
- package/cdn/select-tracks-nRPBa1NC.js.map +0 -1
- package/cdn/select-tracks-xV1s28xD.js +0 -59
- package/cdn/select-tracks-xV1s28xD.js.map +0 -1
- package/cdn/text-element-Bsyglab8.js +0 -2
- package/cdn/time-slider-chapters-element-DPgaLdBt.js.map +0 -1
- package/cdn/time-slider-chapters-element-MdlcovBu.js +0 -2
- package/cdn/time-slider-chapters-element-MdlcovBu.js.map +0 -1
- package/cdn/translate-text-BPMWpzFm.js +0 -2
- package/cdn/translate-text-BPMWpzFm.js.map +0 -1
- package/cdn/translate-text-DP0CzUCC.js.map +0 -1
- package/cdn/ui-CecDxhTX.js +0 -2
- package/cdn/ui-ChWM6Xz2.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e}from"./predicate-LbFu-fPH.js";import{
|
|
2
|
-
//# sourceMappingURL=gesture-element-
|
|
1
|
+
import{r as e}from"./predicate-LbFu-fPH.js";import{O as t}from"./compounds-C4YYLyL2.js";import{n,t as r}from"./media-element-Cp5PrNre.js";import{r as i,t as a}from"./context-C2rsoDxk.js";import{S as o,n as s}from"./create-player-BU8LDJDL.js";const c={seekStep:t.seekStep,volumeStep:t.volumeStep,speedUp:t.speedUp,speedDown:t.speedDown};function l(t){return c[t]||(({store:n})=>{let r=n.state[t];e(r)&&r()})}var u=class{#e=0;#t=null;handleUp(e,t){if(e.resolve(`doubletap`).length>0){let n=Date.now();if(n-this.#e<200){this.#n(),this.#e=0,e.resolve(`doubletap`)[0]?.onActivate(t);return}this.#e=n,this.#n(),this.#t=setTimeout(()=>{this.#t=null,this.#e=0,e.resolve(`tap`)[0]?.onActivate(t)},200);return}e.resolve(`tap`)[0]?.onActivate(t)}#n(){this.#t!==null&&(clearTimeout(this.#t),this.#t=null)}reset(){this.#n(),this.#e=0}};const d=new WeakMap;function f(e){let t=d.get(e);return t||(t=new u,d.set(e,t),t)}function p(e,t,n){return o(e).add({type:`tap`,recognizer:f(e),onActivate:t,pointer:n?.pointer,region:n?.region,disabled:n?.disabled,action:n?.action,value:n?.value})}function m(e,t,n){return o(e).add({type:`doubletap`,recognizer:f(e),onActivate:t,pointer:n?.pointer,region:n?.region,disabled:n?.disabled,action:n?.action,value:n?.value})}var h=class extends r{constructor(...e){super(...e),this.type=``,this.action=``,this.value=void 0,this.pointer=void 0,this.region=void 0,this.disabled=!1,this.#e=new s(this,i),this.#t=new n(this,{context:a,callback:()=>this.requestUpdate(),subscribe:!0}),this.#n=null}static{this.tagName=`media-gesture`}static{this.properties={type:{type:String},action:{type:String},value:{type:Number},pointer:{type:String},region:{type:String},disabled:{type:Boolean}}}#e;#t;#n;connectedCallback(){super.connectedCallback(),this.style.display=`none`,this.#r()}disconnectedCallback(){super.disconnectedCallback(),this.#i()}update(e){super.update(e),this.isConnected&&(this.#i(),this.#r())}#r(){let e=this.#e.value,t=this.#t.value?.container;if(!this.type||!this.action||!e||!t)return;let n=l(this.action);if(!n)return;let{value:r}=this,i=t=>{n({store:e,value:r,event:t})},a={pointer:this.pointer,region:this.region,disabled:this.disabled,action:this.action,value:this.value};this.type===`doubletap`?this.#n=m(t,i,a):this.#n=p(t,i,a)}#i(){this.#n?.(),this.#n=null}};export{h as t};
|
|
2
|
+
//# sourceMappingURL=gesture-element-CeRy1IVs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gesture-element-CeRy1IVs.js","names":["#lastTapTime","#clearTimer","#tapTimer","ContextConsumer","#player","#container","#register","#unregister","#cleanup"],"sources":["../../core/dist/default/dom/gesture/actions.js","../../core/dist/default/dom/gesture/tap.js","../../core/dist/default/dom/gesture/create-tap-gesture.js","../src/ui/gesture/gesture-element.ts"],"sourcesContent":["import { MEDIA_INPUT_ACTION_OVERRIDES } from \"../media-actions.js\";\nimport { isFunction } from \"@videojs/utils/predicate\";\n//#region src/dom/gesture/actions.ts\n/** Actions that need custom logic beyond `store.state[action]()`. */\nconst GESTURE_ACTION_OVERRIDES = {\n\tseekStep: MEDIA_INPUT_ACTION_OVERRIDES.seekStep,\n\tvolumeStep: MEDIA_INPUT_ACTION_OVERRIDES.volumeStep,\n\tspeedUp: MEDIA_INPUT_ACTION_OVERRIDES.speedUp,\n\tspeedDown: MEDIA_INPUT_ACTION_OVERRIDES.speedDown\n};\nfunction resolveGestureAction(name) {\n\tconst override = GESTURE_ACTION_OVERRIDES[name];\n\tif (override) return override;\n\treturn ({ store }) => {\n\t\tconst method = store.state[name];\n\t\tif (isFunction(method)) method();\n\t};\n}\n//#endregion\nexport { resolveGestureAction };\n\n//# sourceMappingURL=actions.js.map","//#region src/dom/gesture/tap.ts\nconst DOUBLETAP_WINDOW = 200;\n/**\n* Recognizes tap vs doubletap from quick pointer-up events.\n*\n* Stateful recognizer — tracks tap count and doubletap timing.\n* The coordinator handles pointer-down timing (tap threshold) and\n* calls `handleUp()` only for quick taps that passed the threshold check.\n*/\nvar TapRecognizer = class {\n\t#lastTapTime = 0;\n\t#tapTimer = null;\n\thandleUp(matches, event) {\n\t\tif (matches.resolve(\"doubletap\").length > 0) {\n\t\t\tconst now = Date.now();\n\t\t\tif (now - this.#lastTapTime < DOUBLETAP_WINDOW) {\n\t\t\t\tthis.#clearTimer();\n\t\t\t\tthis.#lastTapTime = 0;\n\t\t\t\tmatches.resolve(\"doubletap\")[0]?.onActivate(event);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.#lastTapTime = now;\n\t\t\tthis.#clearTimer();\n\t\t\tthis.#tapTimer = setTimeout(() => {\n\t\t\t\tthis.#tapTimer = null;\n\t\t\t\tthis.#lastTapTime = 0;\n\t\t\t\tmatches.resolve(\"tap\")[0]?.onActivate(event);\n\t\t\t}, DOUBLETAP_WINDOW);\n\t\t\treturn;\n\t\t}\n\t\tmatches.resolve(\"tap\")[0]?.onActivate(event);\n\t}\n\t#clearTimer() {\n\t\tif (this.#tapTimer !== null) {\n\t\t\tclearTimeout(this.#tapTimer);\n\t\t\tthis.#tapTimer = null;\n\t\t}\n\t}\n\treset() {\n\t\tthis.#clearTimer();\n\t\tthis.#lastTapTime = 0;\n\t}\n};\n//#endregion\nexport { TapRecognizer };\n\n//# sourceMappingURL=tap.js.map","import { getGestureCoordinator } from \"./coordinator.js\";\nimport { TapRecognizer } from \"./tap.js\";\n//#region src/dom/gesture/create-tap-gesture.ts\nconst recognizers = /* @__PURE__ */ new WeakMap();\nfunction getRecognizer(target) {\n\tlet recognizer = recognizers.get(target);\n\tif (recognizer) return recognizer;\n\trecognizer = new TapRecognizer();\n\trecognizers.set(target, recognizer);\n\treturn recognizer;\n}\n/**\n* Register a tap gesture on a target element.\n*\n* @example\n* ```ts\n* const cleanup = createTapGesture(container, (event) => {\n* store.paused ? store.play() : store.pause();\n* }, { pointer: 'mouse' });\n* ```\n*/\nfunction createTapGesture(target, onActivate, options) {\n\treturn getGestureCoordinator(target).add({\n\t\ttype: \"tap\",\n\t\trecognizer: getRecognizer(target),\n\t\tonActivate,\n\t\tpointer: options?.pointer,\n\t\tregion: options?.region,\n\t\tdisabled: options?.disabled,\n\t\taction: options?.action,\n\t\tvalue: options?.value\n\t});\n}\n/**\n* Register a doubletap gesture on a target element.\n*\n* @example\n* ```ts\n* const cleanup = createDoubleTapGesture(container, (event) => {\n* store.fullscreen ? store.exitFullscreen() : store.requestFullscreen();\n* }, { region: 'center' });\n* ```\n*/\nfunction createDoubleTapGesture(target, onActivate, options) {\n\treturn getGestureCoordinator(target).add({\n\t\ttype: \"doubletap\",\n\t\trecognizer: getRecognizer(target),\n\t\tonActivate,\n\t\tpointer: options?.pointer,\n\t\tregion: options?.region,\n\t\tdisabled: options?.disabled,\n\t\taction: options?.action,\n\t\tvalue: options?.value\n\t});\n}\n//#endregion\nexport { createDoubleTapGesture, createTapGesture };\n\n//# sourceMappingURL=create-tap-gesture.js.map","import type { GestureProps } from '@videojs/core';\nimport { createDoubleTapGesture, createTapGesture, resolveGestureAction } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { containerContext, playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaElement } from '../media-element';\n\nexport class GestureElement extends MediaElement {\n static readonly tagName = 'media-gesture';\n\n static override properties: PropertyDeclarationMap = {\n type: { type: String },\n action: { type: String },\n value: { type: Number },\n pointer: { type: String },\n region: { type: String },\n disabled: { type: Boolean },\n };\n\n type: GestureProps['type'] | '' = '';\n action: GestureProps['action'] = '';\n value: GestureProps['value'] = undefined;\n pointer: GestureProps['pointer'] = undefined;\n region: GestureProps['region'] = undefined;\n disabled: NonNullable<GestureProps['disabled']> = false;\n\n readonly #player = new PlayerController(this, playerContext);\n readonly #container = new ContextConsumer(this, {\n context: containerContext,\n callback: () => this.requestUpdate(),\n subscribe: true,\n });\n #cleanup: (() => void) | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.style.display = 'none';\n this.#register();\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#unregister();\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n // Re-register when attributes change.\n if (this.isConnected) {\n this.#unregister();\n this.#register();\n }\n }\n\n #register(): void {\n const store = this.#player.value;\n const container = this.#container.value?.container;\n if (!this.type || !this.action || !store || !container) return;\n\n const resolver = resolveGestureAction(this.action);\n if (!resolver) return;\n\n const { value } = this;\n\n const onActivate = (event: PointerEvent) => {\n resolver({ store, value, event });\n };\n\n const options = {\n pointer: this.pointer,\n region: this.region,\n disabled: this.disabled,\n action: this.action,\n value: this.value,\n };\n\n if (this.type === 'doubletap') {\n this.#cleanup = createDoubleTapGesture(container, onActivate, options);\n } else {\n this.#cleanup = createTapGesture(container, onActivate, options);\n }\n }\n\n #unregister(): void {\n this.#cleanup?.();\n this.#cleanup = null;\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { r as isFunction } from "./predicate-faYxAB6Z.js";
|
|
2
|
-
import {
|
|
3
|
-
import { n as PlayerController, w as getGestureCoordinator } from "./create-player-BHFyOnWi.js";
|
|
2
|
+
import { k as MEDIA_INPUT_ACTION_OVERRIDES } from "./compounds-C73u1MeO.js";
|
|
4
3
|
import { n as ContextConsumer, t as MediaElement } from "./media-element-CJY3JIgc.js";
|
|
5
4
|
import { r as playerContext, t as containerContext } from "./context-OhQY847V.js";
|
|
5
|
+
import { S as getGestureCoordinator, n as PlayerController } from "./create-player-Db1CIvlK.js";
|
|
6
6
|
|
|
7
7
|
//#region ../core/dist/dev/dom/gesture/actions.js
|
|
8
8
|
/** Actions that need custom logic beyond `store.state[action]()`. */
|
|
@@ -205,4 +205,4 @@ var GestureElement = class extends MediaElement {
|
|
|
205
205
|
|
|
206
206
|
//#endregion
|
|
207
207
|
export { GestureElement as t };
|
|
208
|
-
//# sourceMappingURL=gesture-element-
|
|
208
|
+
//# sourceMappingURL=gesture-element-DB67OYCE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gesture-element-DB67OYCE.js","names":["#lastTapTime","#clearTimer","#tapTimer","#player","#container","#register","#unregister","#cleanup"],"sources":["../../core/dist/dev/dom/gesture/actions.js","../../core/dist/dev/dom/gesture/tap.js","../../core/dist/dev/dom/gesture/create-tap-gesture.js","../src/ui/gesture/gesture-element.ts"],"sourcesContent":["import { MEDIA_INPUT_ACTION_OVERRIDES } from \"../media-actions.js\";\nimport { isFunction } from \"@videojs/utils/predicate\";\n//#region src/dom/gesture/actions.ts\n/** Actions that need custom logic beyond `store.state[action]()`. */\nconst GESTURE_ACTION_OVERRIDES = {\n\tseekStep: MEDIA_INPUT_ACTION_OVERRIDES.seekStep,\n\tvolumeStep: MEDIA_INPUT_ACTION_OVERRIDES.volumeStep,\n\tspeedUp: MEDIA_INPUT_ACTION_OVERRIDES.speedUp,\n\tspeedDown: MEDIA_INPUT_ACTION_OVERRIDES.speedDown\n};\nfunction resolveGestureAction(name) {\n\tconst override = GESTURE_ACTION_OVERRIDES[name];\n\tif (override) return override;\n\treturn ({ store }) => {\n\t\tconst method = store.state[name];\n\t\tif (isFunction(method)) method();\n\t\telse console.warn(`[vjs-gesture] Unknown action: \"${name}\"`);\n\t};\n}\n//#endregion\nexport { resolveGestureAction };\n\n//# sourceMappingURL=actions.js.map","//#region src/dom/gesture/tap.ts\nconst DOUBLETAP_WINDOW = 200;\n/**\n* Recognizes tap vs doubletap from quick pointer-up events.\n*\n* Stateful recognizer — tracks tap count and doubletap timing.\n* The coordinator handles pointer-down timing (tap threshold) and\n* calls `handleUp()` only for quick taps that passed the threshold check.\n*/\nvar TapRecognizer = class {\n\t#lastTapTime = 0;\n\t#tapTimer = null;\n\thandleUp(matches, event) {\n\t\tif (matches.resolve(\"doubletap\").length > 0) {\n\t\t\tconst now = Date.now();\n\t\t\tif (now - this.#lastTapTime < DOUBLETAP_WINDOW) {\n\t\t\t\tthis.#clearTimer();\n\t\t\t\tthis.#lastTapTime = 0;\n\t\t\t\tmatches.resolve(\"doubletap\")[0]?.onActivate(event);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.#lastTapTime = now;\n\t\t\tthis.#clearTimer();\n\t\t\tthis.#tapTimer = setTimeout(() => {\n\t\t\t\tthis.#tapTimer = null;\n\t\t\t\tthis.#lastTapTime = 0;\n\t\t\t\tmatches.resolve(\"tap\")[0]?.onActivate(event);\n\t\t\t}, DOUBLETAP_WINDOW);\n\t\t\treturn;\n\t\t}\n\t\tmatches.resolve(\"tap\")[0]?.onActivate(event);\n\t}\n\t#clearTimer() {\n\t\tif (this.#tapTimer !== null) {\n\t\t\tclearTimeout(this.#tapTimer);\n\t\t\tthis.#tapTimer = null;\n\t\t}\n\t}\n\treset() {\n\t\tthis.#clearTimer();\n\t\tthis.#lastTapTime = 0;\n\t}\n};\n//#endregion\nexport { TapRecognizer };\n\n//# sourceMappingURL=tap.js.map","import { getGestureCoordinator } from \"./coordinator.js\";\nimport { TapRecognizer } from \"./tap.js\";\n//#region src/dom/gesture/create-tap-gesture.ts\nconst recognizers = /* @__PURE__ */ new WeakMap();\nfunction getRecognizer(target) {\n\tlet recognizer = recognizers.get(target);\n\tif (recognizer) return recognizer;\n\trecognizer = new TapRecognizer();\n\trecognizers.set(target, recognizer);\n\treturn recognizer;\n}\n/**\n* Register a tap gesture on a target element.\n*\n* @example\n* ```ts\n* const cleanup = createTapGesture(container, (event) => {\n* store.paused ? store.play() : store.pause();\n* }, { pointer: 'mouse' });\n* ```\n*/\nfunction createTapGesture(target, onActivate, options) {\n\treturn getGestureCoordinator(target).add({\n\t\ttype: \"tap\",\n\t\trecognizer: getRecognizer(target),\n\t\tonActivate,\n\t\tpointer: options?.pointer,\n\t\tregion: options?.region,\n\t\tdisabled: options?.disabled,\n\t\taction: options?.action,\n\t\tvalue: options?.value\n\t});\n}\n/**\n* Register a doubletap gesture on a target element.\n*\n* @example\n* ```ts\n* const cleanup = createDoubleTapGesture(container, (event) => {\n* store.fullscreen ? store.exitFullscreen() : store.requestFullscreen();\n* }, { region: 'center' });\n* ```\n*/\nfunction createDoubleTapGesture(target, onActivate, options) {\n\treturn getGestureCoordinator(target).add({\n\t\ttype: \"doubletap\",\n\t\trecognizer: getRecognizer(target),\n\t\tonActivate,\n\t\tpointer: options?.pointer,\n\t\tregion: options?.region,\n\t\tdisabled: options?.disabled,\n\t\taction: options?.action,\n\t\tvalue: options?.value\n\t});\n}\n//#endregion\nexport { createDoubleTapGesture, createTapGesture };\n\n//# sourceMappingURL=create-tap-gesture.js.map","import type { GestureProps } from '@videojs/core';\nimport { createDoubleTapGesture, createTapGesture, resolveGestureAction } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { containerContext, playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaElement } from '../media-element';\n\nexport class GestureElement extends MediaElement {\n static readonly tagName = 'media-gesture';\n\n static override properties: PropertyDeclarationMap = {\n type: { type: String },\n action: { type: String },\n value: { type: Number },\n pointer: { type: String },\n region: { type: String },\n disabled: { type: Boolean },\n };\n\n type: GestureProps['type'] | '' = '';\n action: GestureProps['action'] = '';\n value: GestureProps['value'] = undefined;\n pointer: GestureProps['pointer'] = undefined;\n region: GestureProps['region'] = undefined;\n disabled: NonNullable<GestureProps['disabled']> = false;\n\n readonly #player = new PlayerController(this, playerContext);\n readonly #container = new ContextConsumer(this, {\n context: containerContext,\n callback: () => this.requestUpdate(),\n subscribe: true,\n });\n #cleanup: (() => void) | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.style.display = 'none';\n this.#register();\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#unregister();\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n // Re-register when attributes change.\n if (this.isConnected) {\n this.#unregister();\n this.#register();\n }\n }\n\n #register(): void {\n const store = this.#player.value;\n const container = this.#container.value?.container;\n if (!this.type || !this.action || !store || !container) return;\n\n const resolver = resolveGestureAction(this.action);\n if (!resolver) return;\n\n const { value } = this;\n\n const onActivate = (event: PointerEvent) => {\n resolver({ store, value, event });\n };\n\n const options = {\n pointer: this.pointer,\n region: this.region,\n disabled: this.disabled,\n action: this.action,\n value: this.value,\n };\n\n if (this.type === 'doubletap') {\n this.#cleanup = createDoubleTapGesture(container, onActivate, options);\n } else {\n this.#cleanup = createTapGesture(container, onActivate, options);\n }\n }\n\n #unregister(): void {\n this.#cleanup?.();\n this.#cleanup = null;\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{t as e}from"./custom-media-element-8pSkwn42.js";import{i as t}from"./context-C2rsoDxk.js";import{t as n}from"./media-attach-mixin-Igi3-1UG.js";import{t as r}from"./media-DU3Xf5XR.js";import{t as i}from"./mixin-ypVl8-O_.js";const a=i(n(e(`audio`,r)));var o=class extends a{},s=class extends o{static{this.tagName=`mux-audio`}};t(s);export{s as t};
|
|
2
|
+
//# sourceMappingURL=hls-js-CiE4wOrG.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hls-js-
|
|
1
|
+
{"version":3,"file":"hls-js-CiE4wOrG.js","names":[],"sources":["../src/media/mux-audio/hls-js.ts","../src/define/media/mux-audio/hls-js.ts"],"sourcesContent":["import { CustomMediaElement } from '@videojs/media/dom/custom-media-element';\nimport { MuxMedia } from '@videojs/media/dom/mux';\nimport { MediaAttachMixin } from '../../store/media-attach-mixin';\nimport { MuxAudioMixin } from './mixin';\n\nconst MuxAudioBase = MuxAudioMixin(MediaAttachMixin(CustomMediaElement('audio', MuxMedia)));\n\nexport class MuxAudio extends MuxAudioBase {}\n","import { MuxAudio } from '../../../media/mux-audio/hls-js';\nimport { safeDefine } from '../../safe-define';\n\nexport class MuxAudioElement extends MuxAudio {\n static readonly tagName = 'mux-audio';\n}\n\nsafeDefine(MuxAudioElement);\n\ndeclare global {\n /** The Mux audio flavors in the build — see `../mux-video/spf` for why. */\n interface MuxAudioFlavors {\n 'hls-js': MuxAudioElement;\n }\n\n interface HTMLElementTagNameMap {\n // Spelled out rather than `[MuxAudioElement.tagName]` — see `../mux-video/hls-js`.\n 'mux-audio': MuxAudioFlavors[keyof MuxAudioFlavors];\n }\n}\n"],"mappings":"sOAKA,MAAM,EAAe,EAAc,EAAiB,EAAmB,QAAS,CAAQ,CAAC,CAAC,EAE1F,IAAa,EAAb,cAA8B,CAAa,CAAC,ECJ/B,EAAb,cAAqC,CAAS,QAClB,KAAA,QAAA,YAC5B,EAEA,EAAW,CAAe"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{t as e}from"./custom-media-element-8pSkwn42.js";import{i as t}from"./context-C2rsoDxk.js";import{t as n}from"./media-attach-mixin-Igi3-1UG.js";import{t as r}from"./media-DU3Xf5XR.js";import{t as i}from"./mixin-BXfRWfYu.js";const a=i(n(e(`video`,r)));var o=class extends a{},s=class extends o{static{this.tagName=`mux-video`}};t(s);export{s as t};
|
|
2
|
+
//# sourceMappingURL=hls-js-DBKRCbQm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hls-js-
|
|
1
|
+
{"version":3,"file":"hls-js-DBKRCbQm.js","names":[],"sources":["../src/media/mux-video/hls-js.ts","../src/define/media/mux-video/hls-js.ts"],"sourcesContent":["import { CustomMediaElement } from '@videojs/media/dom/custom-media-element';\nimport { MuxMedia } from '@videojs/media/dom/mux';\nimport { MediaAttachMixin } from '../../store/media-attach-mixin';\nimport { MuxVideoMixin } from './mixin';\n\nconst MuxVideoBase = MuxVideoMixin(MediaAttachMixin(CustomMediaElement('video', MuxMedia)));\n\nexport class MuxVideo extends MuxVideoBase {}\n","import { MuxVideo } from '../../../media/mux-video/hls-js';\nimport { safeDefine } from '../../safe-define';\n\nexport class MuxVideoElement extends MuxVideo {\n static readonly tagName = 'mux-video';\n}\n\nsafeDefine(MuxVideoElement);\n\ndeclare global {\n /** The Mux video flavors in the build — see `./spf` for why. */\n interface MuxVideoFlavors {\n 'hls-js': MuxVideoElement;\n }\n\n interface HTMLElementTagNameMap {\n // Spelled out rather than `[MuxVideoElement.tagName]`: the sibling flavor\n // declares this same key, and the declaration bundler keeps only one key form\n // per property — a computed one next to a literal one is dropped from the\n // emitted types, taking the mapping with it.\n 'mux-video': MuxVideoFlavors[keyof MuxVideoFlavors];\n }\n}\n"],"mappings":"sOAKA,MAAM,EAAe,EAAc,EAAiB,EAAmB,QAAS,CAAQ,CAAC,CAAC,EAE1F,IAAa,EAAb,cAA8B,CAAa,CAAC,ECJ/B,EAAb,cAAqC,CAAS,QAClB,KAAA,QAAA,YAC5B,EAEA,EAAW,CAAe"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as CustomMediaElement } from "./custom-media-element-D2JoODKd.js";
|
|
2
2
|
import { i as safeDefine } from "./context-OhQY847V.js";
|
|
3
3
|
import { t as MediaAttachMixin } from "./media-attach-mixin-uThv5NL_.js";
|
|
4
|
-
import { t as MuxMedia } from "./media-
|
|
4
|
+
import { t as MuxMedia } from "./media-BNuI0Im7.js";
|
|
5
5
|
import { t as MuxVideoMixin } from "./mixin-NrVEcofN.js";
|
|
6
6
|
|
|
7
7
|
//#region src/media/mux-video/hls-js.ts
|
|
@@ -18,4 +18,5 @@ var MuxVideoElement = class extends MuxVideo {
|
|
|
18
18
|
safeDefine(MuxVideoElement);
|
|
19
19
|
|
|
20
20
|
//#endregion
|
|
21
|
-
|
|
21
|
+
export { MuxVideoElement as t };
|
|
22
|
+
//# sourceMappingURL=hls-js-DX2NGCAr.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hls-js-
|
|
1
|
+
{"version":3,"file":"hls-js-DX2NGCAr.js","names":[],"sources":["../src/media/mux-video/hls-js.ts","../src/define/media/mux-video/hls-js.ts"],"sourcesContent":["import { CustomMediaElement } from '@videojs/media/dom/custom-media-element';\nimport { MuxMedia } from '@videojs/media/dom/mux';\nimport { MediaAttachMixin } from '../../store/media-attach-mixin';\nimport { MuxVideoMixin } from './mixin';\n\nconst MuxVideoBase = MuxVideoMixin(MediaAttachMixin(CustomMediaElement('video', MuxMedia)));\n\nexport class MuxVideo extends MuxVideoBase {}\n","import { MuxVideo } from '../../../media/mux-video/hls-js';\nimport { safeDefine } from '../../safe-define';\n\nexport class MuxVideoElement extends MuxVideo {\n static readonly tagName = 'mux-video';\n}\n\nsafeDefine(MuxVideoElement);\n\ndeclare global {\n /** The Mux video flavors in the build — see `./spf` for why. */\n interface MuxVideoFlavors {\n 'hls-js': MuxVideoElement;\n }\n\n interface HTMLElementTagNameMap {\n // Spelled out rather than `[MuxVideoElement.tagName]`: the sibling flavor\n // declares this same key, and the declaration bundler keeps only one key form\n // per property — a computed one next to a literal one is dropped from the\n // emitted types, taking the mapping with it.\n 'mux-video': MuxVideoFlavors[keyof MuxVideoFlavors];\n }\n}\n"],"mappings":";;;;;;;AAKA,MAAM,eAAe,cAAc,iBAAiB,mBAAmB,SAAS,QAAQ,CAAC,CAAC;AAE1F,IAAa,WAAb,cAA8B,aAAa,CAAC;;;;ACJ5C,IAAa,kBAAb,cAAqC,SAAS;;iBAClB;;AAC5B;AAEA,WAAW,eAAe"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as CustomMediaElement } from "./custom-media-element-D2JoODKd.js";
|
|
2
2
|
import { i as safeDefine } from "./context-OhQY847V.js";
|
|
3
3
|
import { t as MediaAttachMixin } from "./media-attach-mixin-uThv5NL_.js";
|
|
4
|
-
import { t as MuxMedia } from "./media-
|
|
4
|
+
import { t as MuxMedia } from "./media-BNuI0Im7.js";
|
|
5
5
|
import { t as MuxAudioMixin } from "./mixin-Co51mtM6.js";
|
|
6
6
|
|
|
7
7
|
//#region src/media/mux-audio/hls-js.ts
|
|
@@ -18,4 +18,5 @@ var MuxAudioElement = class extends MuxAudio {
|
|
|
18
18
|
safeDefine(MuxAudioElement);
|
|
19
19
|
|
|
20
20
|
//#endregion
|
|
21
|
-
|
|
21
|
+
export { MuxAudioElement as t };
|
|
22
|
+
//# sourceMappingURL=hls-js-JeH8yvsP.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hls-js-
|
|
1
|
+
{"version":3,"file":"hls-js-JeH8yvsP.js","names":[],"sources":["../src/media/mux-audio/hls-js.ts","../src/define/media/mux-audio/hls-js.ts"],"sourcesContent":["import { CustomMediaElement } from '@videojs/media/dom/custom-media-element';\nimport { MuxMedia } from '@videojs/media/dom/mux';\nimport { MediaAttachMixin } from '../../store/media-attach-mixin';\nimport { MuxAudioMixin } from './mixin';\n\nconst MuxAudioBase = MuxAudioMixin(MediaAttachMixin(CustomMediaElement('audio', MuxMedia)));\n\nexport class MuxAudio extends MuxAudioBase {}\n","import { MuxAudio } from '../../../media/mux-audio/hls-js';\nimport { safeDefine } from '../../safe-define';\n\nexport class MuxAudioElement extends MuxAudio {\n static readonly tagName = 'mux-audio';\n}\n\nsafeDefine(MuxAudioElement);\n\ndeclare global {\n /** The Mux audio flavors in the build — see `../mux-video/spf` for why. */\n interface MuxAudioFlavors {\n 'hls-js': MuxAudioElement;\n }\n\n interface HTMLElementTagNameMap {\n // Spelled out rather than `[MuxAudioElement.tagName]` — see `../mux-video/hls-js`.\n 'mux-audio': MuxAudioFlavors[keyof MuxAudioFlavors];\n }\n}\n"],"mappings":";;;;;;;AAKA,MAAM,eAAe,cAAc,iBAAiB,mBAAmB,SAAS,QAAQ,CAAC,CAAC;AAE1F,IAAa,WAAb,cAA8B,aAAa,CAAC;;;;ACJ5C,IAAa,kBAAb,cAAqC,SAAS;;iBAClB;;AAC5B;AAEA,WAAW,eAAe"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
function e(t,n={}){let{prefix:r=``}=n,i={};for(let[n,a]of Object.entries(t)){let t=r?`${r}.${n}`:n;typeof a==`object`&&a&&!Array.isArray(a)?Object.assign(i,e(a,{prefix:t})):i[t]=a}return i}function t(t,n={}){return e(t,n)}const n=`en`,r=Symbol.for(`@videojs/i18n-registry`);function i(){let e=globalThis,t=e[r];if(t)return t;let n={layers:new Map,subscribers:new Set};return e[r]=n,n}function a(){for(let e of i().subscribers)e()}function o(e){return e.trim().replaceAll(`_`,`-`).toLowerCase()}function s(e){let t=e.indexOf(`-x-`),n=(t===-1?e:e.slice(0,t)).indexOf(`-u-`);return n===-1?e:e.slice(0,n)+(t===-1?``:e.slice(t))}function c(e){if(e[0]!==`zh`)return;let t=e.find(e=>e===`hant`||e===`hans`);return t===`hant`?`zh-tw`:t===`hans`?`zh-cn`:void 0}function l(e){return s(o(e))}function u(e){let t=l(e);if(!t)return[`en`];let n=t.split(`-`).filter(Boolean),r=[];for(let e=n.length;e>=1;e--)r.push(n.slice(0,e).join(`-`));let i=c(n),a=r.indexOf(`zh`);i&&a!==-1&&r.splice(a,0,i);let o=[],s=new Set;for(let e of r)s.has(e)||(s.add(e),o.push(e));return s.has(`en`)||o.push(`en`),o}function d(e){let{layers:t}=i(),n={};for(let r=e.length-1;r>=0;r--){let i=e[r],a=t.get(i);a&&Object.assign(n,a)}return n}function f(e,n){let{layers:r}=i(),o=l(e),s=r.get(o)??{};r.set(o,{...s,...t(n)}),a()}function p(e){return d(u(e))}function m(e){let{subscribers:t}=i();return t.add(e),()=>{t.delete(e)}}function h(e){return i().layers.has(l(e))}export{m as a,t as c,h as i,l as n,f as o,p as r,n as s,u as t};
|
|
2
|
+
//# sourceMappingURL=i18n-CE4KxKuj.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n-CE4KxKuj.js","names":[],"sources":["../../utils/dist/object/flatten.js","../../core/dist/default/core/i18n/utils/flatten.js","../../utils/dist/i18n.js","../../core/dist/default/core/i18n/registry.js"],"sourcesContent":["//#region src/object/flatten.ts\nfunction flatten(object, options = {}) {\n\tconst { prefix = \"\" } = options;\n\tconst result = {};\n\tfor (const [key, value] of Object.entries(object)) {\n\t\tconst fullKey = prefix ? `${prefix}.${key}` : key;\n\t\tif (value !== null && typeof value === \"object\" && !Array.isArray(value)) Object.assign(result, flatten(value, { prefix: fullKey }));\n\t\telse result[fullKey] = value;\n\t}\n\treturn result;\n}\n//#endregion\nexport { flatten };\n\n//# sourceMappingURL=flatten.js.map","import { flatten } from \"@videojs/utils/object\";\n//#region src/core/i18n/utils/flatten.ts\nfunction flattenTranslations(locale, options = {}) {\n\treturn flatten(locale, options);\n}\n//#endregion\nexport { flattenTranslations };\n\n//# sourceMappingURL=flatten.js.map","//#region src/i18n/index.ts\n/** Default locale used when no player or ambient locale is available. */\nconst DEFAULT_LOCALE = \"en\";\n//#endregion\nexport { DEFAULT_LOCALE };\n\n//# sourceMappingURL=i18n.js.map","import { flattenTranslations } from \"./utils/flatten.js\";\nimport { DEFAULT_LOCALE } from \"@videojs/utils/i18n\";\n//#region src/core/i18n/registry.ts\n/**\n* Well-known key for the shared registry. Its name and value shape are a cross-version contract:\n* every copy of this module in a realm must agree on them, so change the key when the shape changes.\n*/\nconst I18N_REGISTRY_KEY = Symbol.for(\"@videojs/i18n-registry\");\n/**\n* The registry is realm-global rather than module-global so duplicate copies of this module\n* converge on one set of translations.\n*\n* Duplication is normal, not a bug to fix upstream: separately loaded CDN bundles, a pinned and an\n* unpinned URL for the same file, and two bundlers' output on one page all yield distinct module\n* instances. With module-scoped state, a `registerI18n` call on one instance is invisible to the\n* player reading from another, and the locale silently falls back to English.\n*/\nfunction getRegistry() {\n\tconst host = globalThis;\n\tconst existing = host[I18N_REGISTRY_KEY];\n\tif (existing) return existing;\n\tconst registry = {\n\t\tlayers: /* @__PURE__ */ new Map(),\n\t\tsubscribers: /* @__PURE__ */ new Set()\n\t};\n\thost[I18N_REGISTRY_KEY] = registry;\n\treturn registry;\n}\nfunction notify() {\n\tfor (const cb of getRegistry().subscribers) cb();\n}\nfunction normalizeLocaleTag(tag) {\n\treturn tag.trim().replaceAll(\"_\", \"-\").toLowerCase();\n}\n/** Strip unicode locale extension sequences (`-u-…`) before any private-use `-x-` block. */\nfunction stripUnicodeExtensions(tag) {\n\tconst xIdx = tag.indexOf(\"-x-\");\n\tconst uIdx = (xIdx === -1 ? tag : tag.slice(0, xIdx)).indexOf(\"-u-\");\n\tif (uIdx === -1) return tag;\n\treturn tag.slice(0, uIdx) + (xIdx === -1 ? \"\" : tag.slice(xIdx));\n}\nfunction chineseFallback(segments) {\n\tif (segments[0] !== \"zh\") return;\n\tconst script = segments.find((segment) => segment === \"hant\" || segment === \"hans\");\n\treturn script === \"hant\" ? \"zh-tw\" : script === \"hans\" ? \"zh-cn\" : void 0;\n}\n/** Registry map key: normalized tag with unicode extensions removed (same base as {@link findLocaleKeys}). */\nfunction getCanonicalLocaleKey(locale) {\n\treturn stripUnicodeExtensions(normalizeLocaleTag(locale));\n}\n/**\n* Most-specific-first BCP 47 lookup tags (normalized). Always ends with `en` when missing from the truncated chain.\n*\n* @example `es-419-u-nu-latn` → `['es-419', 'es', 'en']`\n*/\nfunction findLocaleKeys(locale) {\n\tconst base = getCanonicalLocaleKey(locale);\n\tif (!base) return [DEFAULT_LOCALE];\n\tconst segments = base.split(\"-\").filter(Boolean);\n\tconst chain = [];\n\tfor (let len = segments.length; len >= 1; len--) chain.push(segments.slice(0, len).join(\"-\"));\n\tconst zhFallback = chineseFallback(segments);\n\tconst zhIndex = chain.indexOf(\"zh\");\n\tif (zhFallback && zhIndex !== -1) chain.splice(zhIndex, 0, zhFallback);\n\tconst out = [];\n\tconst seen = /* @__PURE__ */ new Set();\n\tfor (const tag of chain) if (!seen.has(tag)) {\n\t\tseen.add(tag);\n\t\tout.push(tag);\n\t}\n\tif (!seen.has(DEFAULT_LOCALE)) out.push(DEFAULT_LOCALE);\n\treturn out;\n}\nfunction mergeI18nTranslations(chain) {\n\tconst { layers } = getRegistry();\n\tconst merged = {};\n\tfor (let i = chain.length - 1; i >= 0; i--) {\n\t\tconst tag = chain[i];\n\t\tconst layer = layers.get(tag);\n\t\tif (layer) Object.assign(merged, layer);\n\t}\n\treturn merged;\n}\n/**\n* Register or merge translation strings for a BCP 47 locale tag.\n*\n* @param locale - BCP 47 tag (normalized to lowercase; unicode extensions stripped for the registry key).\n* @param translations - Partial nested locale values; merges with any existing layer for the tag.\n* @public\n*/\nfunction registerI18n(locale, translations) {\n\tconst { layers } = getRegistry();\n\tconst tag = getCanonicalLocaleKey(locale);\n\tconst existing = layers.get(tag) ?? {};\n\tlayers.set(tag, {\n\t\t...existing,\n\t\t...flattenTranslations(translations)\n\t});\n\tnotify();\n}\n/**\n* Return the merged registered translation map for a locale. Built-in English defaults are supplied by text descriptors.\n*\n* @param locale - BCP 47 tag to resolve (e.g. `es-MX`, `zh-Hant-HK`).\n* @public\n*/\nfunction getI18nTranslations(locale) {\n\treturn mergeI18nTranslations(findLocaleKeys(locale));\n}\n/**\n* Subscribe to global registry mutations (for example after `registerI18n` or browser translation prefetch).\n*\n* @param callback - Invoked when any locale layer changes.\n* @public\n*/\nfunction onI18nRegistryChange(callback) {\n\tconst { subscribers } = getRegistry();\n\tsubscribers.add(callback);\n\treturn () => {\n\t\tsubscribers.delete(callback);\n\t};\n}\n/**\n* Whether an exact locale tag has been registered via `registerI18n` (not whether lazy packs exist).\n*\n* @param locale - BCP 47 tag to test.\n* @public\n*/\nfunction hasRegisteredLocale(locale) {\n\treturn getRegistry().layers.has(getCanonicalLocaleKey(locale));\n}\n/** Clears registered locale overlays (test isolation). */\nfunction resetI18nRegistry() {\n\tconst { layers, subscribers } = getRegistry();\n\tlayers.clear();\n\tsubscribers.clear();\n}\n//#endregion\nexport { findLocaleKeys, getCanonicalLocaleKey, getI18nTranslations, hasRegisteredLocale, onI18nRegistryChange, registerI18n, resetI18nRegistry };\n\n//# sourceMappingURL=registry.js.map"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n-
|
|
1
|
+
{"version":3,"file":"i18n-CpBDXf6M.js","names":[],"sources":["../src/define/i18n.ts"],"sourcesContent":["import { I18nProviderElement } from '../i18n/provider-element';\nimport { TextElement } from '../ui/text/text-element';\nimport { safeDefine } from './safe-define';\n\nsafeDefine(I18nProviderElement);\nsafeDefine(TextElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [I18nProviderElement.tagName]: I18nProviderElement;\n [TextElement.tagName]: TextElement;\n }\n}\n"],"mappings":"gGAIA,EAAW,CAAmB,EAC9B,EAAW,CAAW"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { i as safeDefine } from "./context-OhQY847V.js";
|
|
2
|
-
import { n as I18nProviderElement, t as TextElement } from "./text-element-
|
|
2
|
+
import { n as I18nProviderElement, t as TextElement } from "./text-element-cg6l21cd.js";
|
|
3
3
|
|
|
4
4
|
//#region src/define/i18n.ts
|
|
5
5
|
safeDefine(I18nProviderElement);
|
|
6
6
|
safeDefine(TextElement);
|
|
7
7
|
|
|
8
8
|
//#endregion
|
|
9
|
-
//# sourceMappingURL=i18n-
|
|
9
|
+
//# sourceMappingURL=i18n-D0nhPa0m.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n-
|
|
1
|
+
{"version":3,"file":"i18n-D0nhPa0m.js","names":[],"sources":["../src/define/i18n.ts"],"sourcesContent":["import { I18nProviderElement } from '../i18n/provider-element';\nimport { TextElement } from '../ui/text/text-element';\nimport { safeDefine } from './safe-define';\n\nsafeDefine(I18nProviderElement);\nsafeDefine(TextElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [I18nProviderElement.tagName]: I18nProviderElement;\n [TextElement.tagName]: TextElement;\n }\n}\n"],"mappings":";;;;AAIA,WAAW,mBAAmB;AAC9B,WAAW,WAAW"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
//#region ../utils/dist/object/flatten.js
|
|
2
|
+
function flatten(object, options = {}) {
|
|
3
|
+
const { prefix = "" } = options;
|
|
4
|
+
const result = {};
|
|
5
|
+
for (const [key, value] of Object.entries(object)) {
|
|
6
|
+
const fullKey = prefix ? `${prefix}.${key}` : key;
|
|
7
|
+
if (value !== null && typeof value === "object" && !Array.isArray(value)) Object.assign(result, flatten(value, { prefix: fullKey }));
|
|
8
|
+
else result[fullKey] = value;
|
|
9
|
+
}
|
|
10
|
+
return result;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
//#endregion
|
|
14
|
+
//#region ../core/dist/dev/core/i18n/utils/flatten.js
|
|
15
|
+
function flattenTranslations(locale, options = {}) {
|
|
16
|
+
return flatten(locale, options);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
//#endregion
|
|
20
|
+
//#region ../utils/dist/i18n.js
|
|
21
|
+
/** Default locale used when no player or ambient locale is available. */
|
|
22
|
+
const DEFAULT_LOCALE = "en";
|
|
23
|
+
|
|
24
|
+
//#endregion
|
|
25
|
+
//#region ../core/dist/dev/core/i18n/registry.js
|
|
26
|
+
/**
|
|
27
|
+
* Well-known key for the shared registry. Its name and value shape are a cross-version contract:
|
|
28
|
+
* every copy of this module in a realm must agree on them, so change the key when the shape changes.
|
|
29
|
+
*/
|
|
30
|
+
const I18N_REGISTRY_KEY = Symbol.for("@videojs/i18n-registry");
|
|
31
|
+
/**
|
|
32
|
+
* The registry is realm-global rather than module-global so duplicate copies of this module
|
|
33
|
+
* converge on one set of translations.
|
|
34
|
+
*
|
|
35
|
+
* Duplication is normal, not a bug to fix upstream: separately loaded CDN bundles, a pinned and an
|
|
36
|
+
* unpinned URL for the same file, and two bundlers' output on one page all yield distinct module
|
|
37
|
+
* instances. With module-scoped state, a `registerI18n` call on one instance is invisible to the
|
|
38
|
+
* player reading from another, and the locale silently falls back to English.
|
|
39
|
+
*/
|
|
40
|
+
function getRegistry() {
|
|
41
|
+
const host = globalThis;
|
|
42
|
+
const existing = host[I18N_REGISTRY_KEY];
|
|
43
|
+
if (existing) return existing;
|
|
44
|
+
const registry = {
|
|
45
|
+
layers: /* @__PURE__ */ new Map(),
|
|
46
|
+
subscribers: /* @__PURE__ */ new Set()
|
|
47
|
+
};
|
|
48
|
+
host[I18N_REGISTRY_KEY] = registry;
|
|
49
|
+
return registry;
|
|
50
|
+
}
|
|
51
|
+
function notify() {
|
|
52
|
+
for (const cb of getRegistry().subscribers) cb();
|
|
53
|
+
}
|
|
54
|
+
function normalizeLocaleTag(tag) {
|
|
55
|
+
return tag.trim().replaceAll("_", "-").toLowerCase();
|
|
56
|
+
}
|
|
57
|
+
/** Strip unicode locale extension sequences (`-u-…`) before any private-use `-x-` block. */
|
|
58
|
+
function stripUnicodeExtensions(tag) {
|
|
59
|
+
const xIdx = tag.indexOf("-x-");
|
|
60
|
+
const uIdx = (xIdx === -1 ? tag : tag.slice(0, xIdx)).indexOf("-u-");
|
|
61
|
+
if (uIdx === -1) return tag;
|
|
62
|
+
return tag.slice(0, uIdx) + (xIdx === -1 ? "" : tag.slice(xIdx));
|
|
63
|
+
}
|
|
64
|
+
function chineseFallback(segments) {
|
|
65
|
+
if (segments[0] !== "zh") return;
|
|
66
|
+
const script = segments.find((segment) => segment === "hant" || segment === "hans");
|
|
67
|
+
return script === "hant" ? "zh-tw" : script === "hans" ? "zh-cn" : void 0;
|
|
68
|
+
}
|
|
69
|
+
/** Registry map key: normalized tag with unicode extensions removed (same base as {@link findLocaleKeys}). */
|
|
70
|
+
function getCanonicalLocaleKey(locale) {
|
|
71
|
+
return stripUnicodeExtensions(normalizeLocaleTag(locale));
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Most-specific-first BCP 47 lookup tags (normalized). Always ends with `en` when missing from the truncated chain.
|
|
75
|
+
*
|
|
76
|
+
* @example `es-419-u-nu-latn` → `['es-419', 'es', 'en']`
|
|
77
|
+
*/
|
|
78
|
+
function findLocaleKeys(locale) {
|
|
79
|
+
const base = getCanonicalLocaleKey(locale);
|
|
80
|
+
if (!base) return ["en"];
|
|
81
|
+
const segments = base.split("-").filter(Boolean);
|
|
82
|
+
const chain = [];
|
|
83
|
+
for (let len = segments.length; len >= 1; len--) chain.push(segments.slice(0, len).join("-"));
|
|
84
|
+
const zhFallback = chineseFallback(segments);
|
|
85
|
+
const zhIndex = chain.indexOf("zh");
|
|
86
|
+
if (zhFallback && zhIndex !== -1) chain.splice(zhIndex, 0, zhFallback);
|
|
87
|
+
const out = [];
|
|
88
|
+
const seen = /* @__PURE__ */ new Set();
|
|
89
|
+
for (const tag of chain) if (!seen.has(tag)) {
|
|
90
|
+
seen.add(tag);
|
|
91
|
+
out.push(tag);
|
|
92
|
+
}
|
|
93
|
+
if (!seen.has("en")) out.push("en");
|
|
94
|
+
return out;
|
|
95
|
+
}
|
|
96
|
+
function mergeI18nTranslations(chain) {
|
|
97
|
+
const { layers } = getRegistry();
|
|
98
|
+
const merged = {};
|
|
99
|
+
for (let i = chain.length - 1; i >= 0; i--) {
|
|
100
|
+
const tag = chain[i];
|
|
101
|
+
const layer = layers.get(tag);
|
|
102
|
+
if (layer) Object.assign(merged, layer);
|
|
103
|
+
}
|
|
104
|
+
return merged;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Register or merge translation strings for a BCP 47 locale tag.
|
|
108
|
+
*
|
|
109
|
+
* @param locale - BCP 47 tag (normalized to lowercase; unicode extensions stripped for the registry key).
|
|
110
|
+
* @param translations - Partial nested locale values; merges with any existing layer for the tag.
|
|
111
|
+
* @public
|
|
112
|
+
*/
|
|
113
|
+
function registerI18n(locale, translations) {
|
|
114
|
+
const { layers } = getRegistry();
|
|
115
|
+
const tag = getCanonicalLocaleKey(locale);
|
|
116
|
+
const existing = layers.get(tag) ?? {};
|
|
117
|
+
layers.set(tag, {
|
|
118
|
+
...existing,
|
|
119
|
+
...flattenTranslations(translations)
|
|
120
|
+
});
|
|
121
|
+
notify();
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Return the merged registered translation map for a locale. Built-in English defaults are supplied by text descriptors.
|
|
125
|
+
*
|
|
126
|
+
* @param locale - BCP 47 tag to resolve (e.g. `es-MX`, `zh-Hant-HK`).
|
|
127
|
+
* @public
|
|
128
|
+
*/
|
|
129
|
+
function getI18nTranslations(locale) {
|
|
130
|
+
return mergeI18nTranslations(findLocaleKeys(locale));
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Subscribe to global registry mutations (for example after `registerI18n` or browser translation prefetch).
|
|
134
|
+
*
|
|
135
|
+
* @param callback - Invoked when any locale layer changes.
|
|
136
|
+
* @public
|
|
137
|
+
*/
|
|
138
|
+
function onI18nRegistryChange(callback) {
|
|
139
|
+
const { subscribers } = getRegistry();
|
|
140
|
+
subscribers.add(callback);
|
|
141
|
+
return () => {
|
|
142
|
+
subscribers.delete(callback);
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Whether an exact locale tag has been registered via `registerI18n` (not whether lazy packs exist).
|
|
147
|
+
*
|
|
148
|
+
* @param locale - BCP 47 tag to test.
|
|
149
|
+
* @public
|
|
150
|
+
*/
|
|
151
|
+
function hasRegisteredLocale(locale) {
|
|
152
|
+
return getRegistry().layers.has(getCanonicalLocaleKey(locale));
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
//#endregion
|
|
156
|
+
export { onI18nRegistryChange as a, flattenTranslations as c, hasRegisteredLocale as i, getCanonicalLocaleKey as n, registerI18n as o, getI18nTranslations as r, DEFAULT_LOCALE as s, findLocaleKeys as t };
|
|
157
|
+
//# sourceMappingURL=i18n-DyF_NfCk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n-DyF_NfCk.js","names":[],"sources":["../../utils/dist/object/flatten.js","../../core/dist/dev/core/i18n/utils/flatten.js","../../utils/dist/i18n.js","../../core/dist/dev/core/i18n/registry.js"],"sourcesContent":["//#region src/object/flatten.ts\nfunction flatten(object, options = {}) {\n\tconst { prefix = \"\" } = options;\n\tconst result = {};\n\tfor (const [key, value] of Object.entries(object)) {\n\t\tconst fullKey = prefix ? `${prefix}.${key}` : key;\n\t\tif (value !== null && typeof value === \"object\" && !Array.isArray(value)) Object.assign(result, flatten(value, { prefix: fullKey }));\n\t\telse result[fullKey] = value;\n\t}\n\treturn result;\n}\n//#endregion\nexport { flatten };\n\n//# sourceMappingURL=flatten.js.map","import { flatten } from \"@videojs/utils/object\";\n//#region src/core/i18n/utils/flatten.ts\nfunction flattenTranslations(locale, options = {}) {\n\treturn flatten(locale, options);\n}\n//#endregion\nexport { flattenTranslations };\n\n//# sourceMappingURL=flatten.js.map","//#region src/i18n/index.ts\n/** Default locale used when no player or ambient locale is available. */\nconst DEFAULT_LOCALE = \"en\";\n//#endregion\nexport { DEFAULT_LOCALE };\n\n//# sourceMappingURL=i18n.js.map","import { flattenTranslations } from \"./utils/flatten.js\";\nimport { DEFAULT_LOCALE } from \"@videojs/utils/i18n\";\n//#region src/core/i18n/registry.ts\n/**\n* Well-known key for the shared registry. Its name and value shape are a cross-version contract:\n* every copy of this module in a realm must agree on them, so change the key when the shape changes.\n*/\nconst I18N_REGISTRY_KEY = Symbol.for(\"@videojs/i18n-registry\");\n/**\n* The registry is realm-global rather than module-global so duplicate copies of this module\n* converge on one set of translations.\n*\n* Duplication is normal, not a bug to fix upstream: separately loaded CDN bundles, a pinned and an\n* unpinned URL for the same file, and two bundlers' output on one page all yield distinct module\n* instances. With module-scoped state, a `registerI18n` call on one instance is invisible to the\n* player reading from another, and the locale silently falls back to English.\n*/\nfunction getRegistry() {\n\tconst host = globalThis;\n\tconst existing = host[I18N_REGISTRY_KEY];\n\tif (existing) return existing;\n\tconst registry = {\n\t\tlayers: /* @__PURE__ */ new Map(),\n\t\tsubscribers: /* @__PURE__ */ new Set()\n\t};\n\thost[I18N_REGISTRY_KEY] = registry;\n\treturn registry;\n}\nfunction notify() {\n\tfor (const cb of getRegistry().subscribers) cb();\n}\nfunction normalizeLocaleTag(tag) {\n\treturn tag.trim().replaceAll(\"_\", \"-\").toLowerCase();\n}\n/** Strip unicode locale extension sequences (`-u-…`) before any private-use `-x-` block. */\nfunction stripUnicodeExtensions(tag) {\n\tconst xIdx = tag.indexOf(\"-x-\");\n\tconst uIdx = (xIdx === -1 ? tag : tag.slice(0, xIdx)).indexOf(\"-u-\");\n\tif (uIdx === -1) return tag;\n\treturn tag.slice(0, uIdx) + (xIdx === -1 ? \"\" : tag.slice(xIdx));\n}\nfunction chineseFallback(segments) {\n\tif (segments[0] !== \"zh\") return;\n\tconst script = segments.find((segment) => segment === \"hant\" || segment === \"hans\");\n\treturn script === \"hant\" ? \"zh-tw\" : script === \"hans\" ? \"zh-cn\" : void 0;\n}\n/** Registry map key: normalized tag with unicode extensions removed (same base as {@link findLocaleKeys}). */\nfunction getCanonicalLocaleKey(locale) {\n\treturn stripUnicodeExtensions(normalizeLocaleTag(locale));\n}\n/**\n* Most-specific-first BCP 47 lookup tags (normalized). Always ends with `en` when missing from the truncated chain.\n*\n* @example `es-419-u-nu-latn` → `['es-419', 'es', 'en']`\n*/\nfunction findLocaleKeys(locale) {\n\tconst base = getCanonicalLocaleKey(locale);\n\tif (!base) return [DEFAULT_LOCALE];\n\tconst segments = base.split(\"-\").filter(Boolean);\n\tconst chain = [];\n\tfor (let len = segments.length; len >= 1; len--) chain.push(segments.slice(0, len).join(\"-\"));\n\tconst zhFallback = chineseFallback(segments);\n\tconst zhIndex = chain.indexOf(\"zh\");\n\tif (zhFallback && zhIndex !== -1) chain.splice(zhIndex, 0, zhFallback);\n\tconst out = [];\n\tconst seen = /* @__PURE__ */ new Set();\n\tfor (const tag of chain) if (!seen.has(tag)) {\n\t\tseen.add(tag);\n\t\tout.push(tag);\n\t}\n\tif (!seen.has(DEFAULT_LOCALE)) out.push(DEFAULT_LOCALE);\n\treturn out;\n}\nfunction mergeI18nTranslations(chain) {\n\tconst { layers } = getRegistry();\n\tconst merged = {};\n\tfor (let i = chain.length - 1; i >= 0; i--) {\n\t\tconst tag = chain[i];\n\t\tconst layer = layers.get(tag);\n\t\tif (layer) Object.assign(merged, layer);\n\t}\n\treturn merged;\n}\n/**\n* Register or merge translation strings for a BCP 47 locale tag.\n*\n* @param locale - BCP 47 tag (normalized to lowercase; unicode extensions stripped for the registry key).\n* @param translations - Partial nested locale values; merges with any existing layer for the tag.\n* @public\n*/\nfunction registerI18n(locale, translations) {\n\tconst { layers } = getRegistry();\n\tconst tag = getCanonicalLocaleKey(locale);\n\tconst existing = layers.get(tag) ?? {};\n\tlayers.set(tag, {\n\t\t...existing,\n\t\t...flattenTranslations(translations)\n\t});\n\tnotify();\n}\n/**\n* Return the merged registered translation map for a locale. Built-in English defaults are supplied by text descriptors.\n*\n* @param locale - BCP 47 tag to resolve (e.g. `es-MX`, `zh-Hant-HK`).\n* @public\n*/\nfunction getI18nTranslations(locale) {\n\treturn mergeI18nTranslations(findLocaleKeys(locale));\n}\n/**\n* Subscribe to global registry mutations (for example after `registerI18n` or browser translation prefetch).\n*\n* @param callback - Invoked when any locale layer changes.\n* @public\n*/\nfunction onI18nRegistryChange(callback) {\n\tconst { subscribers } = getRegistry();\n\tsubscribers.add(callback);\n\treturn () => {\n\t\tsubscribers.delete(callback);\n\t};\n}\n/**\n* Whether an exact locale tag has been registered via `registerI18n` (not whether lazy packs exist).\n*\n* @param locale - BCP 47 tag to test.\n* @public\n*/\nfunction hasRegisteredLocale(locale) {\n\treturn getRegistry().layers.has(getCanonicalLocaleKey(locale));\n}\n/** Clears registered locale overlays (test isolation). */\nfunction resetI18nRegistry() {\n\tconst { layers, subscribers } = getRegistry();\n\tlayers.clear();\n\tsubscribers.clear();\n}\n//#endregion\nexport { findLocaleKeys, getCanonicalLocaleKey, getI18nTranslations, hasRegisteredLocale, onI18nRegistryChange, registerI18n, resetI18nRegistry };\n\n//# sourceMappingURL=registry.js.map"],"mappings":"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"}
|
package/cdn/i18n.dev.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { s as isObject } from "./predicate-faYxAB6Z.js";
|
|
2
|
-
import { i as
|
|
2
|
+
import { a as onI18nRegistryChange, c as flattenTranslations, i as hasRegisteredLocale, n as getCanonicalLocaleKey, o as registerI18n, r as getI18nTranslations, s as DEFAULT_LOCALE, t as findLocaleKeys } from "./i18n-DyF_NfCk.js";
|
|
3
|
+
import { n as interpolate, r as resolveText, t as translateText } from "./translate-text-BWvoW5-r.js";
|
|
3
4
|
|
|
4
5
|
//#region ../core/dist/dev/i18n/locales/en.js
|
|
5
6
|
var en_default = {
|
|
@@ -103,156 +104,6 @@ var en_default = {
|
|
|
103
104
|
}
|
|
104
105
|
};
|
|
105
106
|
|
|
106
|
-
//#endregion
|
|
107
|
-
//#region ../utils/dist/object/flatten.js
|
|
108
|
-
function flatten(object, options = {}) {
|
|
109
|
-
const { prefix = "" } = options;
|
|
110
|
-
const result = {};
|
|
111
|
-
for (const [key, value] of Object.entries(object)) {
|
|
112
|
-
const fullKey = prefix ? `${prefix}.${key}` : key;
|
|
113
|
-
if (value !== null && typeof value === "object" && !Array.isArray(value)) Object.assign(result, flatten(value, { prefix: fullKey }));
|
|
114
|
-
else result[fullKey] = value;
|
|
115
|
-
}
|
|
116
|
-
return result;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
//#endregion
|
|
120
|
-
//#region ../core/dist/dev/core/i18n/utils/flatten.js
|
|
121
|
-
function flattenTranslations(locale, options = {}) {
|
|
122
|
-
return flatten(locale, options);
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
//#endregion
|
|
126
|
-
//#region ../core/dist/dev/core/i18n/registry.js
|
|
127
|
-
/**
|
|
128
|
-
* Well-known key for the shared registry. Its name and value shape are a cross-version contract:
|
|
129
|
-
* every copy of this module in a realm must agree on them, so change the key when the shape changes.
|
|
130
|
-
*/
|
|
131
|
-
const I18N_REGISTRY_KEY = Symbol.for("@videojs/i18n-registry");
|
|
132
|
-
/**
|
|
133
|
-
* The registry is realm-global rather than module-global so duplicate copies of this module
|
|
134
|
-
* converge on one set of translations.
|
|
135
|
-
*
|
|
136
|
-
* Duplication is normal, not a bug to fix upstream: separately loaded CDN bundles, a pinned and an
|
|
137
|
-
* unpinned URL for the same file, and two bundlers' output on one page all yield distinct module
|
|
138
|
-
* instances. With module-scoped state, a `registerI18n` call on one instance is invisible to the
|
|
139
|
-
* player reading from another, and the locale silently falls back to English.
|
|
140
|
-
*/
|
|
141
|
-
function getRegistry() {
|
|
142
|
-
const host = globalThis;
|
|
143
|
-
const existing = host[I18N_REGISTRY_KEY];
|
|
144
|
-
if (existing) return existing;
|
|
145
|
-
const registry = {
|
|
146
|
-
layers: /* @__PURE__ */ new Map(),
|
|
147
|
-
subscribers: /* @__PURE__ */ new Set()
|
|
148
|
-
};
|
|
149
|
-
host[I18N_REGISTRY_KEY] = registry;
|
|
150
|
-
return registry;
|
|
151
|
-
}
|
|
152
|
-
function notify() {
|
|
153
|
-
for (const cb of getRegistry().subscribers) cb();
|
|
154
|
-
}
|
|
155
|
-
function normalizeLocaleTag(tag) {
|
|
156
|
-
return tag.trim().replaceAll("_", "-").toLowerCase();
|
|
157
|
-
}
|
|
158
|
-
/** Strip unicode locale extension sequences (`-u-…`) before any private-use `-x-` block. */
|
|
159
|
-
function stripUnicodeExtensions(tag) {
|
|
160
|
-
const xIdx = tag.indexOf("-x-");
|
|
161
|
-
const uIdx = (xIdx === -1 ? tag : tag.slice(0, xIdx)).indexOf("-u-");
|
|
162
|
-
if (uIdx === -1) return tag;
|
|
163
|
-
return tag.slice(0, uIdx) + (xIdx === -1 ? "" : tag.slice(xIdx));
|
|
164
|
-
}
|
|
165
|
-
function chineseFallback(segments) {
|
|
166
|
-
if (segments[0] !== "zh") return;
|
|
167
|
-
const script = segments.find((segment) => segment === "hant" || segment === "hans");
|
|
168
|
-
return script === "hant" ? "zh-tw" : script === "hans" ? "zh-cn" : void 0;
|
|
169
|
-
}
|
|
170
|
-
/** Registry map key: normalized tag with unicode extensions removed (same base as {@link findLocaleKeys}). */
|
|
171
|
-
function getCanonicalLocaleKey(locale) {
|
|
172
|
-
return stripUnicodeExtensions(normalizeLocaleTag(locale));
|
|
173
|
-
}
|
|
174
|
-
/**
|
|
175
|
-
* Most-specific-first BCP 47 lookup tags (normalized). Always ends with `en` when missing from the truncated chain.
|
|
176
|
-
*
|
|
177
|
-
* @example `es-419-u-nu-latn` → `['es-419', 'es', 'en']`
|
|
178
|
-
*/
|
|
179
|
-
function findLocaleKeys(locale) {
|
|
180
|
-
const base = getCanonicalLocaleKey(locale);
|
|
181
|
-
if (!base) return ["en"];
|
|
182
|
-
const segments = base.split("-").filter(Boolean);
|
|
183
|
-
const chain = [];
|
|
184
|
-
for (let len = segments.length; len >= 1; len--) chain.push(segments.slice(0, len).join("-"));
|
|
185
|
-
const zhFallback = chineseFallback(segments);
|
|
186
|
-
const zhIndex = chain.indexOf("zh");
|
|
187
|
-
if (zhFallback && zhIndex !== -1) chain.splice(zhIndex, 0, zhFallback);
|
|
188
|
-
const out = [];
|
|
189
|
-
const seen = /* @__PURE__ */ new Set();
|
|
190
|
-
for (const tag of chain) if (!seen.has(tag)) {
|
|
191
|
-
seen.add(tag);
|
|
192
|
-
out.push(tag);
|
|
193
|
-
}
|
|
194
|
-
if (!seen.has("en")) out.push("en");
|
|
195
|
-
return out;
|
|
196
|
-
}
|
|
197
|
-
function mergeI18nTranslations(chain) {
|
|
198
|
-
const { layers } = getRegistry();
|
|
199
|
-
const merged = {};
|
|
200
|
-
for (let i = chain.length - 1; i >= 0; i--) {
|
|
201
|
-
const tag = chain[i];
|
|
202
|
-
const layer = layers.get(tag);
|
|
203
|
-
if (layer) Object.assign(merged, layer);
|
|
204
|
-
}
|
|
205
|
-
return merged;
|
|
206
|
-
}
|
|
207
|
-
/**
|
|
208
|
-
* Register or merge translation strings for a BCP 47 locale tag.
|
|
209
|
-
*
|
|
210
|
-
* @param locale - BCP 47 tag (normalized to lowercase; unicode extensions stripped for the registry key).
|
|
211
|
-
* @param translations - Partial nested locale values; merges with any existing layer for the tag.
|
|
212
|
-
* @public
|
|
213
|
-
*/
|
|
214
|
-
function registerI18n(locale, translations) {
|
|
215
|
-
const { layers } = getRegistry();
|
|
216
|
-
const tag = getCanonicalLocaleKey(locale);
|
|
217
|
-
const existing = layers.get(tag) ?? {};
|
|
218
|
-
layers.set(tag, {
|
|
219
|
-
...existing,
|
|
220
|
-
...flattenTranslations(translations)
|
|
221
|
-
});
|
|
222
|
-
notify();
|
|
223
|
-
}
|
|
224
|
-
/**
|
|
225
|
-
* Return the merged registered translation map for a locale. Built-in English defaults are supplied by text descriptors.
|
|
226
|
-
*
|
|
227
|
-
* @param locale - BCP 47 tag to resolve (e.g. `es-MX`, `zh-Hant-HK`).
|
|
228
|
-
* @public
|
|
229
|
-
*/
|
|
230
|
-
function getI18nTranslations(locale) {
|
|
231
|
-
return mergeI18nTranslations(findLocaleKeys(locale));
|
|
232
|
-
}
|
|
233
|
-
/**
|
|
234
|
-
* Subscribe to global registry mutations (for example after `registerI18n` or browser translation prefetch).
|
|
235
|
-
*
|
|
236
|
-
* @param callback - Invoked when any locale layer changes.
|
|
237
|
-
* @public
|
|
238
|
-
*/
|
|
239
|
-
function onI18nRegistryChange(callback) {
|
|
240
|
-
const { subscribers } = getRegistry();
|
|
241
|
-
subscribers.add(callback);
|
|
242
|
-
return () => {
|
|
243
|
-
subscribers.delete(callback);
|
|
244
|
-
};
|
|
245
|
-
}
|
|
246
|
-
/**
|
|
247
|
-
* Whether an exact locale tag has been registered via `registerI18n` (not whether lazy packs exist).
|
|
248
|
-
*
|
|
249
|
-
* @param locale - BCP 47 tag to test.
|
|
250
|
-
* @public
|
|
251
|
-
*/
|
|
252
|
-
function hasRegisteredLocale(locale) {
|
|
253
|
-
return getRegistry().layers.has(getCanonicalLocaleKey(locale));
|
|
254
|
-
}
|
|
255
|
-
|
|
256
107
|
//#endregion
|
|
257
108
|
//#region ../core/dist/dev/core/i18n/browser-translation.js
|
|
258
109
|
const NAMED_PLACEHOLDER = /\{([^{}]+)\}/g;
|
|
@@ -357,7 +208,7 @@ const loaders = {
|
|
|
357
208
|
az: () => import("./az-BXA58gAV.js").then((n) => n.n),
|
|
358
209
|
bs: () => import("./bs-BGd6Lc0X.js").then((n) => n.n),
|
|
359
210
|
bg: () => import("./bg-CNMY77ir.js").then((n) => n.n),
|
|
360
|
-
bn: () => import("./bn-
|
|
211
|
+
bn: () => import("./bn-CcLIScl6.js").then((n) => n.n),
|
|
361
212
|
ca: () => import("./ca-tFUfQ2mI.js").then((n) => n.n),
|
|
362
213
|
cs: () => import("./cs-B9lsmY_k.js").then((n) => n.n),
|
|
363
214
|
cy: () => import("./cy-DW6qAdUj.js").then((n) => n.n),
|