@videojs/html 10.0.0-beta.13 → 10.0.0-beta.14
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/{abort-JT-ewLFq.js → abort-CzqmAxxH.js} +1 -1
- package/cdn/{abort-JT-ewLFq.js.map → abort-CzqmAxxH.js.map} +1 -1
- package/cdn/{abort-C7q_G_dT.js → abort-KaHR4JO1.js} +1 -1
- package/cdn/{abort-C7q_G_dT.js.map → abort-KaHR4JO1.js.map} +1 -1
- package/cdn/audio-minimal-ui.dev.d.ts +1 -0
- package/cdn/audio-minimal-ui.dev.js +5 -0
- package/cdn/audio-minimal-ui.js +1 -0
- package/cdn/audio-minimal.dev.js +13 -14
- 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.d.ts +1 -0
- package/cdn/audio-ui.dev.js +5 -0
- package/cdn/audio-ui.js +1 -0
- package/cdn/audio.dev.js +13 -14
- package/cdn/audio.dev.js.map +1 -1
- package/cdn/audio.js +1 -1
- package/cdn/audio.js.map +1 -1
- package/cdn/background.dev.js +5 -11
- package/cdn/background.dev.js.map +1 -1
- package/cdn/background.js +1 -1
- package/cdn/background.js.map +1 -1
- package/cdn/{safe-define-Bw8JF08z.js → context-BjrbhiSk.js} +27 -23
- package/cdn/context-BjrbhiSk.js.map +1 -0
- package/cdn/context-CdkhXQEw.js +14 -0
- package/cdn/context-CdkhXQEw.js.map +1 -0
- package/cdn/{create-player-C2h3JeGl.js → create-player-Cz5Y4DmL.js} +2627 -2611
- package/cdn/create-player-Cz5Y4DmL.js.map +1 -0
- package/cdn/create-player-DSGjDLpM.js +7 -0
- package/cdn/create-player-DSGjDLpM.js.map +1 -0
- package/cdn/{default-CnBlD9BM.js → default-C8KsZ0zK.js} +1 -1
- package/cdn/{default-CnBlD9BM.js.map → default-C8KsZ0zK.js.map} +1 -1
- package/cdn/{default-CKnlVEjQ.js → default-XHZAb7gP.js} +1 -1
- package/cdn/{default-CKnlVEjQ.js.map → default-XHZAb7gP.js.map} +1 -1
- package/cdn/delegate-B626t_Va.js +2 -0
- package/cdn/delegate-B626t_Va.js.map +1 -0
- package/cdn/{delegate-AoR5Pt_6.js → delegate-BCw-LjP_.js} +9 -10
- package/cdn/delegate-BCw-LjP_.js.map +1 -0
- package/cdn/{hls-CNDMNsEo.js → hls-A02jAc_G.js} +3 -3
- package/cdn/hls-A02jAc_G.js.map +1 -0
- package/cdn/{hls-DHwATYV2.js → hls-DwNUcXDb.js} +17 -89
- package/cdn/hls-DwNUcXDb.js.map +1 -0
- package/cdn/{listen-UqQNdlqV.js → listen-D7fcau5d.js} +1 -1
- package/cdn/{listen-UqQNdlqV.js.map → listen-D7fcau5d.js.map} +1 -1
- package/cdn/{listen-BkAEGXCe.js → listen-w-Aun0yN.js} +1 -1
- package/cdn/{listen-BkAEGXCe.js.map → listen-w-Aun0yN.js.map} +1 -1
- package/cdn/media/dash-video.dev.js +4 -4
- package/cdn/media/dash-video.js +1 -1
- package/cdn/media/hls-video.dev.js +5 -4
- package/cdn/media/hls-video.dev.js.map +1 -1
- package/cdn/media/hls-video.js +1 -1
- package/cdn/media/hls-video.js.map +1 -1
- package/cdn/media/mux-video.dev.js +7 -6
- package/cdn/media/mux-video.dev.js.map +1 -1
- package/cdn/media/mux-video.js +1 -1
- package/cdn/media/mux-video.js.map +1 -1
- package/cdn/media/native-hls-video.dev.d.ts +1 -0
- package/cdn/media/native-hls-video.dev.js +28 -0
- package/cdn/media/native-hls-video.dev.js.map +1 -0
- package/cdn/media/native-hls-video.js +2 -0
- package/cdn/media/native-hls-video.js.map +1 -0
- package/cdn/media/simple-hls-video.dev.js +6 -6
- package/cdn/media/simple-hls-video.js +2 -2
- package/cdn/media/simple-hls-video.js.map +1 -1
- package/cdn/{media-attach-mixin-CkU58gjb.js → media-attach-mixin-DfKkofgF.js} +2 -2
- package/cdn/{media-attach-mixin-CkU58gjb.js.map → media-attach-mixin-DfKkofgF.js.map} +1 -1
- package/cdn/media-attach-mixin-Dv2D43tb.js +2 -0
- package/cdn/{media-attach-mixin-ByJOWMNT.js.map → media-attach-mixin-Dv2D43tb.js.map} +1 -1
- package/cdn/{media-props-mixin-DxsM38Bx.js → media-props-mixin-CNJVvHAH.js} +9 -13
- package/cdn/media-props-mixin-CNJVvHAH.js.map +1 -0
- package/cdn/{media-props-mixin-BuVUebRp.js → media-props-mixin-CmboksUe.js} +2 -2
- package/cdn/media-props-mixin-CmboksUe.js.map +1 -0
- package/cdn/{minimal-fA2p2Jrn.js → minimal-BUUGNZK7.js} +1 -1
- package/cdn/{minimal-fA2p2Jrn.js.map → minimal-BUUGNZK7.js.map} +1 -1
- package/cdn/{minimal-CKMdOXWm.js → minimal-CJGOJ6pE.js} +1 -1
- package/cdn/{minimal-CKMdOXWm.js.map → minimal-CJGOJ6pE.js.map} +1 -1
- package/cdn/minimal-ui-BL9eBXck.js +0 -0
- package/cdn/minimal-ui-a1UOKF79.js +0 -0
- package/cdn/native-hls-CPgjPTAQ.js +126 -0
- package/cdn/native-hls-CPgjPTAQ.js.map +1 -0
- package/cdn/native-hls-Db2TurPW.js +2 -0
- package/cdn/native-hls-Db2TurPW.js.map +1 -0
- package/cdn/player-DlGhe0FD.js +2 -0
- package/cdn/{player-DOTrw60d.js.map → player-DlGhe0FD.js.map} +1 -1
- package/cdn/{player-BWRklsUx.js → player-XArb4DyB.js} +3 -3
- package/cdn/{player-BWRklsUx.js.map → player-XArb4DyB.js.map} +1 -1
- package/cdn/{poster-Ds1EOmmU.js → poster-BUuGv2Va.js} +25 -4
- package/cdn/poster-BUuGv2Va.js.map +1 -0
- package/cdn/poster-Crn2YX3_.js +2 -0
- package/cdn/poster-Crn2YX3_.js.map +1 -0
- package/cdn/shadow-styles-62Yo__Ni.js +3 -0
- package/cdn/shadow-styles-62Yo__Ni.js.map +1 -0
- package/cdn/shadow-styles-I-_QR-PM.js +41 -0
- package/cdn/shadow-styles-I-_QR-PM.js.map +1 -0
- package/cdn/{shallow-equal-CaIo44Co.js → shallow-equal-C8Fs4TTE.js} +1 -1
- package/cdn/{shallow-equal-CaIo44Co.js.map → shallow-equal-C8Fs4TTE.js.map} +1 -1
- package/cdn/{shallow-equal-zo2IZwso.js → shallow-equal-uPuCQhnd.js} +1 -1
- package/cdn/{shallow-equal-zo2IZwso.js.map → shallow-equal-uPuCQhnd.js.map} +1 -1
- package/cdn/skin-element-D40glySA.js +55 -0
- package/cdn/skin-element-D40glySA.js.map +1 -0
- package/cdn/skin-element-Dk_f7DE8.js +2 -0
- package/cdn/skin-element-Dk_f7DE8.js.map +1 -0
- package/cdn/ui-CFIgmrlA.js +0 -0
- package/cdn/ui-Ccp_LyCf.js +0 -0
- package/cdn/video-minimal-ui.dev.d.ts +1 -0
- package/cdn/video-minimal-ui.dev.js +5 -0
- package/cdn/video-minimal-ui.js +1 -0
- package/cdn/video-minimal.dev.js +15 -22
- 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.d.ts +1 -0
- package/cdn/video-ui.dev.js +5 -0
- package/cdn/video-ui.js +1 -0
- package/cdn/video.dev.js +16 -47
- package/cdn/video.dev.js.map +1 -1
- package/cdn/video.js +1 -1
- package/cdn/video.js.map +1 -1
- package/cdn/volume-slider-BSbnD5gg.js +8 -0
- package/cdn/volume-slider-BSbnD5gg.js.map +1 -0
- package/cdn/{volume-slider-Dz_ND_4U.js → volume-slider-CxGbFVVX.js} +166 -167
- package/cdn/volume-slider-CxGbFVVX.js.map +1 -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/shared.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/shared.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 +43 -26
- package/dist/default/define/audio/minimal-skin.js +7 -18
- package/dist/default/define/audio/minimal-skin.js.map +1 -1
- package/dist/default/define/audio/minimal-skin.tailwind.js +6 -18
- package/dist/default/define/audio/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/define/audio/minimal-ui.js +12 -0
- package/dist/default/define/audio/skin.css +43 -26
- package/dist/default/define/audio/skin.js +7 -18
- package/dist/default/define/audio/skin.js.map +1 -1
- package/dist/default/define/audio/skin.tailwind.js +6 -18
- package/dist/default/define/audio/skin.tailwind.js.map +1 -1
- package/dist/default/define/audio/ui.js +12 -0
- package/dist/default/define/background/skin.js +2 -9
- package/dist/default/define/background/skin.js.map +1 -1
- package/dist/default/define/base.css +4 -0
- package/dist/default/define/shared.css +2 -1
- package/dist/default/define/skin-element.js +33 -0
- package/dist/default/define/skin-element.js.map +1 -0
- package/dist/default/define/video/minimal-skin.css +46 -45
- package/dist/default/define/video/minimal-skin.js +7 -23
- package/dist/default/define/video/minimal-skin.js.map +1 -1
- package/dist/default/define/video/minimal-skin.tailwind.js +6 -24
- package/dist/default/define/video/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/define/video/minimal-ui.js +18 -0
- package/dist/default/define/video/skin.css +46 -45
- package/dist/default/define/video/skin.js +7 -24
- package/dist/default/define/video/skin.js.map +1 -1
- package/dist/default/define/video/skin.tailwind.js +6 -24
- package/dist/default/define/video/skin.tailwind.js.map +1 -1
- package/dist/default/define/video/ui.js +18 -0
- package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js +0 -1
- package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +0 -1
- package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js +0 -1
- package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +0 -1
- package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
- package/dist/default/ui/media-button-element.js +7 -0
- package/dist/default/ui/media-button-element.js.map +1 -1
- package/dist/default/ui/time/time-element.js +12 -10
- package/dist/default/ui/time/time-element.js.map +1 -1
- package/dist/default/ui/tooltip/tooltip-element.js +12 -8
- package/dist/default/ui/tooltip/tooltip-element.js.map +1 -1
- package/dist/default/ui/volume-slider/volume-slider-element.js +22 -14
- package/dist/default/ui/volume-slider/volume-slider-element.js.map +1 -1
- 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/base.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/base.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/shared.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/shared.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 +43 -26
- package/dist/dev/define/audio/minimal-skin.d.ts +6 -10
- package/dist/dev/define/audio/minimal-skin.d.ts.map +1 -1
- package/dist/dev/define/audio/minimal-skin.js +7 -22
- package/dist/dev/define/audio/minimal-skin.js.map +1 -1
- package/dist/dev/define/audio/minimal-skin.tailwind.d.ts +4 -10
- package/dist/dev/define/audio/minimal-skin.tailwind.d.ts.map +1 -1
- package/dist/dev/define/audio/minimal-skin.tailwind.js +6 -24
- package/dist/dev/define/audio/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/define/audio/minimal-ui.d.ts +1 -0
- package/dist/dev/define/audio/minimal-ui.js +12 -0
- package/dist/dev/define/audio/skin.css +43 -26
- package/dist/dev/define/audio/skin.d.ts +6 -10
- package/dist/dev/define/audio/skin.d.ts.map +1 -1
- package/dist/dev/define/audio/skin.js +7 -22
- package/dist/dev/define/audio/skin.js.map +1 -1
- package/dist/dev/define/audio/skin.tailwind.d.ts +4 -10
- package/dist/dev/define/audio/skin.tailwind.d.ts.map +1 -1
- package/dist/dev/define/audio/skin.tailwind.js +6 -24
- package/dist/dev/define/audio/skin.tailwind.js.map +1 -1
- package/dist/dev/define/audio/ui.d.ts +1 -0
- package/dist/dev/define/audio/ui.js +12 -0
- package/dist/dev/define/background/skin.d.ts.map +1 -1
- package/dist/dev/define/background/skin.js +2 -9
- package/dist/dev/define/background/skin.js.map +1 -1
- package/dist/dev/define/base.css +4 -0
- package/dist/dev/define/shared.css +2 -1
- package/dist/dev/define/skin-element.d.ts +18 -0
- package/dist/dev/define/skin-element.d.ts.map +1 -0
- package/dist/dev/define/skin-element.js +33 -0
- package/dist/dev/define/skin-element.js.map +1 -0
- package/dist/dev/define/video/minimal-skin.css +46 -45
- package/dist/dev/define/video/minimal-skin.d.ts +6 -10
- package/dist/dev/define/video/minimal-skin.d.ts.map +1 -1
- package/dist/dev/define/video/minimal-skin.js +9 -35
- package/dist/dev/define/video/minimal-skin.js.map +1 -1
- package/dist/dev/define/video/minimal-skin.tailwind.d.ts +4 -10
- package/dist/dev/define/video/minimal-skin.tailwind.d.ts.map +1 -1
- package/dist/dev/define/video/minimal-skin.tailwind.js +9 -51
- package/dist/dev/define/video/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/define/video/minimal-ui.d.ts +1 -0
- package/dist/dev/define/video/minimal-ui.js +18 -0
- package/dist/dev/define/video/skin.css +46 -45
- package/dist/dev/define/video/skin.d.ts +6 -10
- package/dist/dev/define/video/skin.d.ts.map +1 -1
- package/dist/dev/define/video/skin.js +10 -40
- package/dist/dev/define/video/skin.js.map +1 -1
- package/dist/dev/define/video/skin.tailwind.d.ts +4 -10
- package/dist/dev/define/video/skin.tailwind.d.ts.map +1 -1
- package/dist/dev/define/video/skin.tailwind.js +9 -51
- package/dist/dev/define/video/skin.tailwind.js.map +1 -1
- package/dist/dev/define/video/ui.d.ts +1 -0
- package/dist/dev/define/video/ui.js +18 -0
- package/dist/dev/index.d.ts +2 -2
- package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js +0 -1
- package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js +0 -1
- package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js +0 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js +0 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
- package/dist/dev/store/container-mixin.d.ts +1 -1
- package/dist/dev/store/provider-mixin.d.ts +1 -1
- package/dist/dev/ui/media-button-element.d.ts +6 -2
- package/dist/dev/ui/media-button-element.d.ts.map +1 -1
- package/dist/dev/ui/media-button-element.js +7 -0
- package/dist/dev/ui/media-button-element.js.map +1 -1
- package/dist/dev/ui/time/time-element.d.ts +0 -1
- package/dist/dev/ui/time/time-element.d.ts.map +1 -1
- package/dist/dev/ui/time/time-element.js +12 -10
- package/dist/dev/ui/time/time-element.js.map +1 -1
- package/dist/dev/ui/tooltip/tooltip-element.d.ts.map +1 -1
- package/dist/dev/ui/tooltip/tooltip-element.js +12 -8
- package/dist/dev/ui/tooltip/tooltip-element.js.map +1 -1
- package/dist/dev/ui/volume-slider/volume-slider-element.d.ts +5 -0
- package/dist/dev/ui/volume-slider/volume-slider-element.d.ts.map +1 -1
- package/dist/dev/ui/volume-slider/volume-slider-element.js +22 -14
- package/dist/dev/ui/volume-slider/volume-slider-element.js.map +1 -1
- package/package.json +8 -8
- package/cdn/create-player-C2h3JeGl.js.map +0 -1
- package/cdn/create-player-i0Q36S9_.js +0 -7
- package/cdn/create-player-i0Q36S9_.js.map +0 -1
- package/cdn/delegate-AoR5Pt_6.js.map +0 -1
- package/cdn/delegate-odoSeh7c.js +0 -2
- package/cdn/delegate-odoSeh7c.js.map +0 -1
- package/cdn/hls-CNDMNsEo.js.map +0 -1
- package/cdn/hls-DHwATYV2.js.map +0 -1
- package/cdn/media-attach-mixin-ByJOWMNT.js +0 -2
- package/cdn/media-props-mixin-BuVUebRp.js.map +0 -1
- package/cdn/media-props-mixin-DxsM38Bx.js.map +0 -1
- package/cdn/player-DOTrw60d.js +0 -2
- package/cdn/poster-CRi_NWaR.js +0 -2
- package/cdn/poster-CRi_NWaR.js.map +0 -1
- package/cdn/poster-Ds1EOmmU.js.map +0 -1
- package/cdn/safe-define-Bw8JF08z.js.map +0 -1
- package/cdn/safe-define-t0AGOouq.js +0 -14
- package/cdn/safe-define-t0AGOouq.js.map +0 -1
- package/cdn/volume-slider-C7rEWi11.js +0 -9
- package/cdn/volume-slider-C7rEWi11.js.map +0 -1
- package/cdn/volume-slider-Dz_ND_4U.js.map +0 -1
- package/dist/default/define/skin-mixin.js +0 -71
- package/dist/default/define/skin-mixin.js.map +0 -1
- package/dist/default/skins/dist/default/shared/tailwind/tooltip-state.js +0 -28
- package/dist/default/skins/dist/default/shared/tailwind/tooltip-state.js.map +0 -1
- package/dist/dev/define/skin-mixin.d.ts +0 -22
- package/dist/dev/define/skin-mixin.d.ts.map +0 -1
- package/dist/dev/define/skin-mixin.js +0 -71
- package/dist/dev/define/skin-mixin.js.map +0 -1
- package/dist/dev/skins/dist/default/shared/tailwind/tooltip-state.js +0 -28
- package/dist/dev/skins/dist/default/shared/tailwind/tooltip-state.js.map +0 -1
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{o as e,r as t}from"./safe-define-t0AGOouq.js";function n(t){return n=>{class r extends n{#e=null;#t=null;getMediaTarget(){return this}connectedCallback(){super.connectedCallback?.(),this.dispatchEvent(new e(t,this,(e,t)=>{t&&(this.#t=t),this.#e=e?.setMedia??null,this.isConnected&&this.#e?.(this.getMediaTarget())},!0))}disconnectedCallback(){super.disconnectedCallback?.(),this.#e?.(null),this.#t?.(),this.#t=null,this.#e=null}}return r}}const r=n(t);export{r as t};
|
|
2
|
-
//# sourceMappingURL=media-attach-mixin-ByJOWMNT.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"media-props-mixin-BuVUebRp.js","names":["#isDefined","#propsToAttrs","#define","#init","#target","#isInit","#upgradeProperty","#childObserver","#syncMediaChildAttribute","#syncMediaChildren","#childMap","#enableDefaultTrack","#forwardAttribute"],"sources":["../../core/dist/default/dom/media/custom-media-element/index.js","../src/utils/media-props-mixin.ts"],"sourcesContent":["//#region src/dom/media/custom-media-element/index.ts\n/**\n* Custom Media Element\n* Based on https://github.com/muxinc/custom-video-element - Mux - MIT License\n*\n* The goal is to create an element that works just like the video element\n* but can be extended/sub-classed, because native elements cannot be\n* extended today across browsers.\n*/\nconst Events = [\n\t\"abort\",\n\t\"canplay\",\n\t\"canplaythrough\",\n\t\"durationchange\",\n\t\"emptied\",\n\t\"encrypted\",\n\t\"ended\",\n\t\"error\",\n\t\"loadeddata\",\n\t\"loadedmetadata\",\n\t\"loadstart\",\n\t\"pause\",\n\t\"play\",\n\t\"playing\",\n\t\"progress\",\n\t\"ratechange\",\n\t\"seeked\",\n\t\"seeking\",\n\t\"stalled\",\n\t\"suspend\",\n\t\"timeupdate\",\n\t\"volumechange\",\n\t\"waiting\",\n\t\"waitingforkey\",\n\t\"resize\",\n\t\"enterpictureinpicture\",\n\t\"leavepictureinpicture\",\n\t\"webkitbeginfullscreen\",\n\t\"webkitendfullscreen\",\n\t\"webkitpresentationmodechanged\"\n];\nconst Attributes = [\n\t\"autopictureinpicture\",\n\t\"disablepictureinpicture\",\n\t\"disableremoteplayback\",\n\t\"autoplay\",\n\t\"controls\",\n\t\"controlslist\",\n\t\"crossorigin\",\n\t\"loop\",\n\t\"muted\",\n\t\"playsinline\",\n\t\"poster\",\n\t\"preload\",\n\t\"src\"\n];\n/**\n* Helper function to generate the HTML template for audio elements.\n*/\nfunction getAudioTemplateHTML(attrs) {\n\treturn `\n <style>\n :host {\n display: inline-flex;\n line-height: 0;\n flex-direction: column;\n justify-content: end;\n }\n\n audio {\n width: 100%;\n }\n </style>\n <slot name=\"media\">\n <audio${serializeAttributes(attrs)}></audio>\n </slot>\n <slot></slot>\n `;\n}\n/**\n* Helper function to generate the HTML template for video elements.\n*/\nfunction getVideoTemplateHTML(attrs) {\n\treturn `\n <style>\n :host {\n display: contents;\n }\n\n video {\n display: block;\n width: 100%;\n height: 100%;\n border-radius: var(--media-video-border-radius);\n object-fit: var(--media-object-fit, contain);\n object-position: var(--media-object-position, center);\n }\n\n video::-webkit-media-text-track-container {\n transition: translate var(--media-caption-track-duration, 0) ease-out;\n transition-delay: var(--media-caption-track-delay, 0);\n translate: 0 var(--media-caption-track-y, 0);\n scale: 0.98;\n z-index: 1;\n font-family: inherit;\n }\n </style>\n <slot name=\"media\">\n <video${serializeAttributes(attrs)}></video>\n </slot>\n <slot></slot>\n `;\n}\nfunction CustomMediaMixin(superclass, { tag, is }) {\n\tconst nativeElTest = globalThis.document?.createElement?.(tag, { is });\n\tconst nativeElProps = nativeElTest ? getNativeElProps(nativeElTest) : [];\n\treturn class CustomMedia extends superclass {\n\t\tstatic getTemplateHTML = tag.endsWith(\"audio\") ? getAudioTemplateHTML : getVideoTemplateHTML;\n\t\tstatic shadowRootOptions = { mode: \"open\" };\n\t\tstatic Events = Events;\n\t\tstatic #isDefined = false;\n\t\tstatic #propsToAttrs;\n\t\tstatic get observedAttributes() {\n\t\t\tCustomMedia.#define();\n\t\t\treturn [...nativeElTest?.constructor?.observedAttributes ?? [], ...Attributes];\n\t\t}\n\t\tstatic #define() {\n\t\t\tif (CustomMedia.#isDefined) return;\n\t\t\tCustomMedia.#isDefined = true;\n\t\t\tCustomMedia.#propsToAttrs = new Set(CustomMedia.observedAttributes);\n\t\t\tCustomMedia.#propsToAttrs.delete(\"muted\");\n\t\t\tfor (const prop of nativeElProps) {\n\t\t\t\tif (prop in CustomMedia.prototype) continue;\n\t\t\t\tif (typeof nativeElTest[prop] === \"function\") CustomMedia.prototype[prop] = function(...args) {\n\t\t\t\t\tthis.#init();\n\t\t\t\t\treturn this.call(prop, ...args);\n\t\t\t\t};\n\t\t\t\telse {\n\t\t\t\t\tconst config = { get() {\n\t\t\t\t\t\tthis.#init();\n\t\t\t\t\t\treturn this.get(prop);\n\t\t\t\t\t} };\n\t\t\t\t\tif (prop !== prop.toUpperCase()) config.set = function(val) {\n\t\t\t\t\t\tthis.#init();\n\t\t\t\t\t\tthis.set(prop, val);\n\t\t\t\t\t};\n\t\t\t\t\tObject.defineProperty(CustomMedia.prototype, prop, config);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t#isInit = false;\n\t\t#target = null;\n\t\t#childMap = /* @__PURE__ */ new Map();\n\t\t#childObserver;\n\t\tget(prop) {\n\t\t\tconst attr = prop.toLowerCase();\n\t\t\tif (CustomMedia.#propsToAttrs.has(attr)) {\n\t\t\t\tconst val = this.getAttribute(attr);\n\t\t\t\treturn val === null ? false : val === \"\" ? true : val;\n\t\t\t}\n\t\t\treturn this.target?.[prop];\n\t\t}\n\t\tset(prop, val) {\n\t\t\tconst attr = prop.toLowerCase();\n\t\t\tif (CustomMedia.#propsToAttrs.has(attr)) {\n\t\t\t\tif (val === true || val === false || val == null) this.toggleAttribute(attr, Boolean(val));\n\t\t\t\telse this.setAttribute(attr, val);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (this.target) this.target[prop] = val;\n\t\t}\n\t\tcall(prop, ...args) {\n\t\t\treturn (this.target?.[prop])?.apply(this.target, args);\n\t\t}\n\t\tget target() {\n\t\t\tthis.#init();\n\t\t\treturn this.#target ?? this.querySelector(\":scope > [slot=media]\") ?? this.querySelector(tag) ?? this.shadowRoot?.querySelector(tag) ?? null;\n\t\t}\n\t\tset target(val) {\n\t\t\tthis.#target = val;\n\t\t}\n\t\tget defaultMuted() {\n\t\t\tthis.#init();\n\t\t\treturn this.get(\"muted\");\n\t\t}\n\t\tset defaultMuted(val) {\n\t\t\tthis.#init();\n\t\t\tthis.set(\"muted\", val);\n\t\t}\n\t\t#init() {\n\t\t\tif (this.#isInit) return;\n\t\t\tthis.#isInit = true;\n\t\t\tthis.init();\n\t\t}\n\t\tinit() {\n\t\t\tif (!this.shadowRoot) {\n\t\t\t\tthis.attachShadow({ mode: \"open\" });\n\t\t\t\tconst attrs = namedNodeMapToObject(this.attributes);\n\t\t\t\tif (is) attrs.is = is;\n\t\t\t\tif (tag) attrs.part = tag;\n\t\t\t\tthis.shadowRoot.innerHTML = this.constructor.getTemplateHTML(attrs);\n\t\t\t}\n\t\t\tthis.target.muted = this.hasAttribute(\"muted\");\n\t\t\tfor (const prop of nativeElProps) this.#upgradeProperty(prop);\n\t\t\tthis.#childObserver = new MutationObserver(this.#syncMediaChildAttribute.bind(this));\n\t\t\tthis.shadowRoot.addEventListener(\"slotchange\", () => this.#syncMediaChildren());\n\t\t\tthis.#syncMediaChildren();\n\t\t\tfor (const type of this.constructor.Events) this.shadowRoot.addEventListener(type, this, true);\n\t\t}\n\t\thandleEvent(event) {\n\t\t\tif (event.target === this.target) this.dispatchEvent(new CustomEvent(event.type, { detail: event.detail }));\n\t\t}\n\t\t#syncMediaChildren() {\n\t\t\tconst removeNativeChildren = new Map(this.#childMap);\n\t\t\t((this.shadowRoot?.querySelector(\"slot:not([name])\"))?.assignedElements({ flatten: true }).filter((el) => [\"track\", \"source\"].includes(el.localName))).forEach((el) => {\n\t\t\t\tremoveNativeChildren.delete(el);\n\t\t\t\tlet clone = this.#childMap.get(el);\n\t\t\t\tif (!clone) {\n\t\t\t\t\tclone = el.cloneNode();\n\t\t\t\t\tthis.#childMap.set(el, clone);\n\t\t\t\t\tthis.#childObserver?.observe(el, { attributes: true });\n\t\t\t\t}\n\t\t\t\tthis.target?.append(clone);\n\t\t\t\tthis.#enableDefaultTrack(clone);\n\t\t\t});\n\t\t\tremoveNativeChildren.forEach((clone, el) => {\n\t\t\t\tclone.remove();\n\t\t\t\tthis.#childMap.delete(el);\n\t\t\t});\n\t\t}\n\t\t#syncMediaChildAttribute(mutations) {\n\t\t\tfor (const mutation of mutations) if (mutation.type === \"attributes\") {\n\t\t\t\tconst { target, attributeName } = mutation;\n\t\t\t\tconst clone = this.#childMap.get(target);\n\t\t\t\tif (clone && attributeName) {\n\t\t\t\t\tclone.setAttribute(attributeName, target.getAttribute(attributeName) ?? \"\");\n\t\t\t\t\tthis.#enableDefaultTrack(clone);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t#enableDefaultTrack(trackEl) {\n\t\t\tif (trackEl && trackEl.localName === \"track\" && trackEl.default && (trackEl.kind === \"chapters\" || trackEl.kind === \"metadata\") && trackEl.track.mode === \"disabled\") trackEl.track.mode = \"hidden\";\n\t\t}\n\t\t#upgradeProperty(prop) {\n\t\t\tif (Object.hasOwn(this, prop)) {\n\t\t\t\tconst value = this[prop];\n\t\t\t\tdelete this[prop];\n\t\t\t\tthis[prop] = value;\n\t\t\t}\n\t\t}\n\t\tattributeChangedCallback(attrName, oldValue, newValue) {\n\t\t\tthis.#init();\n\t\t\tthis.#forwardAttribute(attrName, oldValue, newValue);\n\t\t}\n\t\t#forwardAttribute(attrName, _oldValue, newValue) {\n\t\t\tif ([\"id\", \"class\"].includes(attrName)) return;\n\t\t\tif (!CustomMedia.observedAttributes.includes(attrName) && this.constructor.observedAttributes.includes(attrName)) return;\n\t\t\tif (newValue === null) this.target?.removeAttribute(attrName);\n\t\t\telse if (this.target?.getAttribute(attrName) !== newValue) this.target?.setAttribute(attrName, newValue);\n\t\t}\n\t\tconnectedCallback() {\n\t\t\tthis.#init();\n\t\t}\n\t};\n}\n/**\n* Helper function to get all properties from a native media element's prototype.\n*/\nfunction getNativeElProps(nativeElTest) {\n\tconst nativeElProps = [];\n\tfor (let proto = Object.getPrototypeOf(nativeElTest); proto && proto !== HTMLElement.prototype; proto = Object.getPrototypeOf(proto)) {\n\t\tconst props = Object.getOwnPropertyNames(proto);\n\t\tnativeElProps.push(...props);\n\t}\n\treturn nativeElProps;\n}\n/**\n* Helper function to serialize attributes into a string.\n*/\nfunction serializeAttributes(attrs) {\n\tlet html = \"\";\n\tfor (const key in attrs) {\n\t\tif (!Attributes.includes(key)) continue;\n\t\tconst value = attrs[key];\n\t\tif (value === \"\") html += ` ${key}`;\n\t\telse html += ` ${key}=\"${value}\"`;\n\t}\n\treturn html;\n}\n/**\n* Helper function to convert NamedNodeMap to a plain object.\n*/\nfunction namedNodeMapToObject(namedNodeMap) {\n\tconst obj = {};\n\tfor (const attr of namedNodeMap) obj[attr.name] = attr.value;\n\treturn obj;\n}\nconst CustomVideoElement = CustomMediaMixin(globalThis.HTMLElement ?? class {}, { tag: \"video\" });\nconst CustomAudioElement = CustomMediaMixin(globalThis.HTMLElement ?? class {}, { tag: \"audio\" });\n//#endregion\nexport { Attributes, CustomAudioElement, CustomMediaMixin, CustomVideoElement, Events };\n\n//# sourceMappingURL=index.js.map","import type { AnyConstructor } from '@videojs/utils/types';\n\ntype AnyClass = abstract new (...args: any[]) => any;\n\nfunction camelToKebab(str: string): string {\n return str.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`);\n}\n\nfunction buildAttrPropMap(DelegateClass: AnyClass): Map<string, string> {\n const map = new Map<string, string>();\n for (let proto = DelegateClass.prototype; proto && proto !== Object.prototype; proto = Object.getPrototypeOf(proto)) {\n for (const key of Object.getOwnPropertyNames(proto)) {\n if (key.startsWith('_')) continue;\n const desc = Object.getOwnPropertyDescriptor(proto, key);\n if (desc?.set) map.set(camelToKebab(key), key);\n }\n }\n return map;\n}\n\n/**\n * Mixin that intercepts `getTemplateHTML` and `attributeChangedCallback` to\n * handle delegate-owned properties. Delegate props are stripped from template\n * HTML attrs and routed through the property setter in `attributeChangedCallback`\n * instead of being forwarded to the inner native element.\n */\nexport function MediaPropsMixin<Base extends AnyConstructor<HTMLElement>>(\n BaseClass: Base,\n DelegateClass: AnyClass\n): Base {\n const attrToProp = buildAttrPropMap(DelegateClass);\n\n class MediaPropsElement extends (BaseClass as any) {\n static get observedAttributes(): string[] {\n // biome-ignore lint/complexity/noThisInStatic: intentional use of super\n return [...new Set([...(super.observedAttributes ?? []), ...attrToProp.keys()])];\n }\n\n static getTemplateHTML(attrs: Record<string, string>): string {\n const filtered = { ...attrs };\n for (const attr of attrToProp.keys()) {\n delete filtered[attr];\n }\n // biome-ignore lint/complexity/noThisInStatic: intentional use of super\n return super.getTemplateHTML(filtered);\n }\n\n attributeChangedCallback(attrName: string, oldValue: string | null, newValue: string | null): void {\n const prop = attrToProp.get(attrName);\n if (prop) {\n if (oldValue !== newValue) {\n (this as any)[prop] = typeof (this as any)[prop] === 'boolean' ? newValue !== null : (newValue ?? '');\n }\n return;\n }\n\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n }\n }\n\n return MediaPropsElement as unknown as Base;\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"media-props-mixin-DxsM38Bx.js","names":["#isDefined","#propsToAttrs","#define","#init","#target","#isInit","#upgradeProperty","#childObserver","#syncMediaChildAttribute","#syncMediaChildren","#childMap","#enableDefaultTrack","#forwardAttribute"],"sources":["../../core/dist/dev/dom/media/custom-media-element/index.js","../src/utils/media-props-mixin.ts"],"sourcesContent":["//#region src/dom/media/custom-media-element/index.ts\n/**\n* Custom Media Element\n* Based on https://github.com/muxinc/custom-video-element - Mux - MIT License\n*\n* The goal is to create an element that works just like the video element\n* but can be extended/sub-classed, because native elements cannot be\n* extended today across browsers.\n*/\nconst Events = [\n\t\"abort\",\n\t\"canplay\",\n\t\"canplaythrough\",\n\t\"durationchange\",\n\t\"emptied\",\n\t\"encrypted\",\n\t\"ended\",\n\t\"error\",\n\t\"loadeddata\",\n\t\"loadedmetadata\",\n\t\"loadstart\",\n\t\"pause\",\n\t\"play\",\n\t\"playing\",\n\t\"progress\",\n\t\"ratechange\",\n\t\"seeked\",\n\t\"seeking\",\n\t\"stalled\",\n\t\"suspend\",\n\t\"timeupdate\",\n\t\"volumechange\",\n\t\"waiting\",\n\t\"waitingforkey\",\n\t\"resize\",\n\t\"enterpictureinpicture\",\n\t\"leavepictureinpicture\",\n\t\"webkitbeginfullscreen\",\n\t\"webkitendfullscreen\",\n\t\"webkitpresentationmodechanged\"\n];\nconst Attributes = [\n\t\"autopictureinpicture\",\n\t\"disablepictureinpicture\",\n\t\"disableremoteplayback\",\n\t\"autoplay\",\n\t\"controls\",\n\t\"controlslist\",\n\t\"crossorigin\",\n\t\"loop\",\n\t\"muted\",\n\t\"playsinline\",\n\t\"poster\",\n\t\"preload\",\n\t\"src\"\n];\n/**\n* Helper function to generate the HTML template for audio elements.\n*/\nfunction getAudioTemplateHTML(attrs) {\n\treturn `\n <style>\n :host {\n display: inline-flex;\n line-height: 0;\n flex-direction: column;\n justify-content: end;\n }\n\n audio {\n width: 100%;\n }\n </style>\n <slot name=\"media\">\n <audio${serializeAttributes(attrs)}></audio>\n </slot>\n <slot></slot>\n `;\n}\n/**\n* Helper function to generate the HTML template for video elements.\n*/\nfunction getVideoTemplateHTML(attrs) {\n\treturn `\n <style>\n :host {\n display: contents;\n }\n\n video {\n display: block;\n width: 100%;\n height: 100%;\n border-radius: var(--media-video-border-radius);\n object-fit: var(--media-object-fit, contain);\n object-position: var(--media-object-position, center);\n }\n\n video::-webkit-media-text-track-container {\n transition: translate var(--media-caption-track-duration, 0) ease-out;\n transition-delay: var(--media-caption-track-delay, 0);\n translate: 0 var(--media-caption-track-y, 0);\n scale: 0.98;\n z-index: 1;\n font-family: inherit;\n }\n </style>\n <slot name=\"media\">\n <video${serializeAttributes(attrs)}></video>\n </slot>\n <slot></slot>\n `;\n}\nfunction CustomMediaMixin(superclass, { tag, is }) {\n\tconst nativeElTest = globalThis.document?.createElement?.(tag, { is });\n\tconst nativeElProps = nativeElTest ? getNativeElProps(nativeElTest) : [];\n\treturn class CustomMedia extends superclass {\n\t\tstatic getTemplateHTML = tag.endsWith(\"audio\") ? getAudioTemplateHTML : getVideoTemplateHTML;\n\t\tstatic shadowRootOptions = { mode: \"open\" };\n\t\tstatic Events = Events;\n\t\tstatic #isDefined = false;\n\t\tstatic #propsToAttrs;\n\t\tstatic get observedAttributes() {\n\t\t\tCustomMedia.#define();\n\t\t\treturn [...nativeElTest?.constructor?.observedAttributes ?? [], ...Attributes];\n\t\t}\n\t\tstatic #define() {\n\t\t\tif (CustomMedia.#isDefined) return;\n\t\t\tCustomMedia.#isDefined = true;\n\t\t\tCustomMedia.#propsToAttrs = new Set(CustomMedia.observedAttributes);\n\t\t\tCustomMedia.#propsToAttrs.delete(\"muted\");\n\t\t\tfor (const prop of nativeElProps) {\n\t\t\t\tif (prop in CustomMedia.prototype) continue;\n\t\t\t\tif (typeof nativeElTest[prop] === \"function\") CustomMedia.prototype[prop] = function(...args) {\n\t\t\t\t\tthis.#init();\n\t\t\t\t\treturn this.call(prop, ...args);\n\t\t\t\t};\n\t\t\t\telse {\n\t\t\t\t\tconst config = { get() {\n\t\t\t\t\t\tthis.#init();\n\t\t\t\t\t\treturn this.get(prop);\n\t\t\t\t\t} };\n\t\t\t\t\tif (prop !== prop.toUpperCase()) config.set = function(val) {\n\t\t\t\t\t\tthis.#init();\n\t\t\t\t\t\tthis.set(prop, val);\n\t\t\t\t\t};\n\t\t\t\t\tObject.defineProperty(CustomMedia.prototype, prop, config);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t#isInit = false;\n\t\t#target = null;\n\t\t#childMap = /* @__PURE__ */ new Map();\n\t\t#childObserver;\n\t\tget(prop) {\n\t\t\tconst attr = prop.toLowerCase();\n\t\t\tif (CustomMedia.#propsToAttrs.has(attr)) {\n\t\t\t\tconst val = this.getAttribute(attr);\n\t\t\t\treturn val === null ? false : val === \"\" ? true : val;\n\t\t\t}\n\t\t\treturn this.target?.[prop];\n\t\t}\n\t\tset(prop, val) {\n\t\t\tconst attr = prop.toLowerCase();\n\t\t\tif (CustomMedia.#propsToAttrs.has(attr)) {\n\t\t\t\tif (val === true || val === false || val == null) this.toggleAttribute(attr, Boolean(val));\n\t\t\t\telse this.setAttribute(attr, val);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (this.target) this.target[prop] = val;\n\t\t}\n\t\tcall(prop, ...args) {\n\t\t\treturn (this.target?.[prop])?.apply(this.target, args);\n\t\t}\n\t\tget target() {\n\t\t\tthis.#init();\n\t\t\treturn this.#target ?? this.querySelector(\":scope > [slot=media]\") ?? this.querySelector(tag) ?? this.shadowRoot?.querySelector(tag) ?? null;\n\t\t}\n\t\tset target(val) {\n\t\t\tthis.#target = val;\n\t\t}\n\t\tget defaultMuted() {\n\t\t\tthis.#init();\n\t\t\treturn this.get(\"muted\");\n\t\t}\n\t\tset defaultMuted(val) {\n\t\t\tthis.#init();\n\t\t\tthis.set(\"muted\", val);\n\t\t}\n\t\t#init() {\n\t\t\tif (this.#isInit) return;\n\t\t\tthis.#isInit = true;\n\t\t\tthis.init();\n\t\t}\n\t\tinit() {\n\t\t\tif (!this.shadowRoot) {\n\t\t\t\tthis.attachShadow({ mode: \"open\" });\n\t\t\t\tconst attrs = namedNodeMapToObject(this.attributes);\n\t\t\t\tif (is) attrs.is = is;\n\t\t\t\tif (tag) attrs.part = tag;\n\t\t\t\tthis.shadowRoot.innerHTML = this.constructor.getTemplateHTML(attrs);\n\t\t\t}\n\t\t\tthis.target.muted = this.hasAttribute(\"muted\");\n\t\t\tfor (const prop of nativeElProps) this.#upgradeProperty(prop);\n\t\t\tthis.#childObserver = new MutationObserver(this.#syncMediaChildAttribute.bind(this));\n\t\t\tthis.shadowRoot.addEventListener(\"slotchange\", () => this.#syncMediaChildren());\n\t\t\tthis.#syncMediaChildren();\n\t\t\tfor (const type of this.constructor.Events) this.shadowRoot.addEventListener(type, this, true);\n\t\t}\n\t\thandleEvent(event) {\n\t\t\tif (event.target === this.target) this.dispatchEvent(new CustomEvent(event.type, { detail: event.detail }));\n\t\t}\n\t\t#syncMediaChildren() {\n\t\t\tconst removeNativeChildren = new Map(this.#childMap);\n\t\t\t((this.shadowRoot?.querySelector(\"slot:not([name])\"))?.assignedElements({ flatten: true }).filter((el) => [\"track\", \"source\"].includes(el.localName))).forEach((el) => {\n\t\t\t\tremoveNativeChildren.delete(el);\n\t\t\t\tlet clone = this.#childMap.get(el);\n\t\t\t\tif (!clone) {\n\t\t\t\t\tclone = el.cloneNode();\n\t\t\t\t\tthis.#childMap.set(el, clone);\n\t\t\t\t\tthis.#childObserver?.observe(el, { attributes: true });\n\t\t\t\t}\n\t\t\t\tthis.target?.append(clone);\n\t\t\t\tthis.#enableDefaultTrack(clone);\n\t\t\t});\n\t\t\tremoveNativeChildren.forEach((clone, el) => {\n\t\t\t\tclone.remove();\n\t\t\t\tthis.#childMap.delete(el);\n\t\t\t});\n\t\t}\n\t\t#syncMediaChildAttribute(mutations) {\n\t\t\tfor (const mutation of mutations) if (mutation.type === \"attributes\") {\n\t\t\t\tconst { target, attributeName } = mutation;\n\t\t\t\tconst clone = this.#childMap.get(target);\n\t\t\t\tif (clone && attributeName) {\n\t\t\t\t\tclone.setAttribute(attributeName, target.getAttribute(attributeName) ?? \"\");\n\t\t\t\t\tthis.#enableDefaultTrack(clone);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t#enableDefaultTrack(trackEl) {\n\t\t\tif (trackEl && trackEl.localName === \"track\" && trackEl.default && (trackEl.kind === \"chapters\" || trackEl.kind === \"metadata\") && trackEl.track.mode === \"disabled\") trackEl.track.mode = \"hidden\";\n\t\t}\n\t\t#upgradeProperty(prop) {\n\t\t\tif (Object.hasOwn(this, prop)) {\n\t\t\t\tconst value = this[prop];\n\t\t\t\tdelete this[prop];\n\t\t\t\tthis[prop] = value;\n\t\t\t}\n\t\t}\n\t\tattributeChangedCallback(attrName, oldValue, newValue) {\n\t\t\tthis.#init();\n\t\t\tthis.#forwardAttribute(attrName, oldValue, newValue);\n\t\t}\n\t\t#forwardAttribute(attrName, _oldValue, newValue) {\n\t\t\tif ([\"id\", \"class\"].includes(attrName)) return;\n\t\t\tif (!CustomMedia.observedAttributes.includes(attrName) && this.constructor.observedAttributes.includes(attrName)) return;\n\t\t\tif (newValue === null) this.target?.removeAttribute(attrName);\n\t\t\telse if (this.target?.getAttribute(attrName) !== newValue) this.target?.setAttribute(attrName, newValue);\n\t\t}\n\t\tconnectedCallback() {\n\t\t\tthis.#init();\n\t\t}\n\t};\n}\n/**\n* Helper function to get all properties from a native media element's prototype.\n*/\nfunction getNativeElProps(nativeElTest) {\n\tconst nativeElProps = [];\n\tfor (let proto = Object.getPrototypeOf(nativeElTest); proto && proto !== HTMLElement.prototype; proto = Object.getPrototypeOf(proto)) {\n\t\tconst props = Object.getOwnPropertyNames(proto);\n\t\tnativeElProps.push(...props);\n\t}\n\treturn nativeElProps;\n}\n/**\n* Helper function to serialize attributes into a string.\n*/\nfunction serializeAttributes(attrs) {\n\tlet html = \"\";\n\tfor (const key in attrs) {\n\t\tif (!Attributes.includes(key)) continue;\n\t\tconst value = attrs[key];\n\t\tif (value === \"\") html += ` ${key}`;\n\t\telse html += ` ${key}=\"${value}\"`;\n\t}\n\treturn html;\n}\n/**\n* Helper function to convert NamedNodeMap to a plain object.\n*/\nfunction namedNodeMapToObject(namedNodeMap) {\n\tconst obj = {};\n\tfor (const attr of namedNodeMap) obj[attr.name] = attr.value;\n\treturn obj;\n}\nconst CustomVideoElement = CustomMediaMixin(globalThis.HTMLElement ?? class {}, { tag: \"video\" });\nconst CustomAudioElement = CustomMediaMixin(globalThis.HTMLElement ?? class {}, { tag: \"audio\" });\n//#endregion\nexport { Attributes, CustomAudioElement, CustomMediaMixin, CustomVideoElement, Events };\n\n//# sourceMappingURL=index.js.map","import type { AnyConstructor } from '@videojs/utils/types';\n\ntype AnyClass = abstract new (...args: any[]) => any;\n\nfunction camelToKebab(str: string): string {\n return str.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`);\n}\n\nfunction buildAttrPropMap(DelegateClass: AnyClass): Map<string, string> {\n const map = new Map<string, string>();\n for (let proto = DelegateClass.prototype; proto && proto !== Object.prototype; proto = Object.getPrototypeOf(proto)) {\n for (const key of Object.getOwnPropertyNames(proto)) {\n if (key.startsWith('_')) continue;\n const desc = Object.getOwnPropertyDescriptor(proto, key);\n if (desc?.set) map.set(camelToKebab(key), key);\n }\n }\n return map;\n}\n\n/**\n * Mixin that intercepts `getTemplateHTML` and `attributeChangedCallback` to\n * handle delegate-owned properties. Delegate props are stripped from template\n * HTML attrs and routed through the property setter in `attributeChangedCallback`\n * instead of being forwarded to the inner native element.\n */\nexport function MediaPropsMixin<Base extends AnyConstructor<HTMLElement>>(\n BaseClass: Base,\n DelegateClass: AnyClass\n): Base {\n const attrToProp = buildAttrPropMap(DelegateClass);\n\n class MediaPropsElement extends (BaseClass as any) {\n static get observedAttributes(): string[] {\n // biome-ignore lint/complexity/noThisInStatic: intentional use of super\n return [...new Set([...(super.observedAttributes ?? []), ...attrToProp.keys()])];\n }\n\n static getTemplateHTML(attrs: Record<string, string>): string {\n const filtered = { ...attrs };\n for (const attr of attrToProp.keys()) {\n delete filtered[attr];\n }\n // biome-ignore lint/complexity/noThisInStatic: intentional use of super\n return super.getTemplateHTML(filtered);\n }\n\n attributeChangedCallback(attrName: string, oldValue: string | null, newValue: string | null): void {\n const prop = attrToProp.get(attrName);\n if (prop) {\n if (oldValue !== newValue) {\n (this as any)[prop] = typeof (this as any)[prop] === 'boolean' ? newValue !== null : (newValue ?? '');\n }\n return;\n }\n\n super.attributeChangedCallback?.(attrName, oldValue, newValue);\n }\n }\n\n return MediaPropsElement as unknown as Base;\n}\n"],"mappings":"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"}
|
package/cdn/player-DOTrw60d.js
DELETED
package/cdn/poster-CRi_NWaR.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{B as e,M as t,N as n,a as r,c as i,i as a,j as o,k as s,l as c,n as l,s as u,t as d}from"./create-player-i0Q36S9_.js";import{a as f,c as p,i as m,l as h,m as g,n as _,o as v,p as y,r as b,s as x,t as S,u as C}from"./volume-slider-C7rEWi11.js";import{a as w,i as T,t as E}from"./safe-define-t0AGOouq.js";const{ProviderMixin:D}=d({features:e});E(class extends D(r){static{this.tagName=`video-player`}}),E(a),E(class extends r{constructor(...e){super(...e),this.delay=g.defaultProps.delay}static{this.tagName=`media-buffering-indicator`}static{this.properties={delay:{type:Number}}}#e=new g;#t=new l(this,T,n);#n=null;connectedCallback(){super.connectedCallback(),this.#n=new AbortController,this.#e.state.subscribe(()=>this.requestUpdate(),{signal:this.#n.signal})}disconnectedCallback(){super.disconnectedCallback(),this.#n?.abort(),this.#n=null}willUpdate(e){super.willUpdate(e),this.#e.setProps(this)}update(e){super.update(e);let t=this.#t.value;t&&(this.#e.update(t),c(this,this.#e.state.current,y))}});const O=w(Symbol(`@videojs/controls`));var k=class extends r{static{this.tagName=`media-controls`}#e=new C;#t=new l(this,T,s);#n=new u(this,{context:O});connectedCallback(){super.connectedCallback()}update(e){super.update(e);let t=this.#t.value;if(!t)return;this.#e.setMedia(t);let n=this.#e.getState();c(this,n,h),this.#n.setValue({state:n,stateAttrMap:h})}},A=class extends S{constructor(...e){super(...e),this.consumer=new i(this,{context:O,subscribe:!0})}static{this.tagName=`media-controls-group`}connectedCallback(){super.connectedCallback(),(this.hasAttribute(`aria-label`)||this.hasAttribute(`aria-labelledby`))&&this.setAttribute(`role`,`group`)}};E(k),E(A),E(class extends _{constructor(...e){super(...e),this.core=new p,this.stateAttrMap=x,this.mediaState=new l(this,T,o)}static{this.tagName=`media-fullscreen-button`}activate(e){this.core.toggle(e)}}),E(class extends _{constructor(...e){super(...e),this.core=new v,this.stateAttrMap=f,this.mediaState=new l(this,T,t)}static{this.tagName=`media-pip-button`}activate(e){this.core.toggle(e)}});var j=class extends r{connectedCallback(){super.connectedCallback()}update(e){super.update(e);let t=this.mediaState.value;if(!t)return;this.core.setMedia(t);let n=this.core.getState();c(this,n,this.stateAttrMap)}};E(class extends j{constructor(...e){super(...e),this.core=new m,this.stateAttrMap=b,this.mediaState=new l(this,T,n)}static{this.tagName=`media-poster`}});
|
|
2
|
-
//# sourceMappingURL=poster-CRi_NWaR.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"poster-CRi_NWaR.js","names":["#core","#state","#disconnect","createContext","#core","#mediaState","#provider","ContextProvider","ContextConsumer"],"sources":["../src/define/video/player.ts","../src/ui/buffering-indicator/buffering-indicator-element.ts","../src/define/ui/buffering-indicator.ts","../src/ui/controls/context.ts","../src/ui/controls/controls-element.ts","../src/ui/controls/controls-group-element.ts","../src/define/ui/controls.ts","../src/ui/fullscreen-button/fullscreen-button-element.ts","../src/define/ui/fullscreen-button.ts","../src/ui/pip-button/pip-button-element.ts","../src/define/ui/pip-button.ts","../src/ui/media-ui-element.ts","../src/ui/poster/poster-element.ts","../src/define/ui/poster.ts"],"sourcesContent":["import { videoFeatures } from '@videojs/core/dom';\nimport { MediaContainerElement } from '../../media/container-element';\nimport { createPlayer } from '../../player/create-player';\nimport { MediaElement } from '../../ui/media-element';\nimport { safeDefine } from '../safe-define';\n\nconst { ProviderMixin } = createPlayer({\n features: videoFeatures,\n});\n\nexport class VideoPlayerElement extends ProviderMixin(MediaElement) {\n static readonly tagName = 'video-player';\n}\n\n// Provider must be defined before consumer for context handshake during upgrade.\nsafeDefine(VideoPlayerElement);\nsafeDefine(MediaContainerElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [VideoPlayerElement.tagName]: VideoPlayerElement;\n }\n}\n","import { BufferingIndicatorCore, BufferingIndicatorDataAttrs } from '@videojs/core';\nimport { applyStateDataAttrs, logMissingFeature, selectPlayback } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaElement } from '../media-element';\n\nexport class BufferingIndicatorElement extends MediaElement {\n static readonly tagName = 'media-buffering-indicator';\n\n static override properties = {\n delay: { type: Number },\n } satisfies PropertyDeclarationMap<keyof BufferingIndicatorCore.Props>;\n\n delay = BufferingIndicatorCore.defaultProps.delay;\n\n readonly #core = new BufferingIndicatorCore();\n readonly #state = new PlayerController(this, playerContext, selectPlayback);\n\n #disconnect: AbortController | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n this.#disconnect = new AbortController();\n\n this.#core.state.subscribe(() => this.requestUpdate(), {\n signal: this.#disconnect.signal,\n });\n\n if (__DEV__ && !this.#state.value) {\n logMissingFeature(this.localName, this.#state.displayName!);\n }\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n protected override willUpdate(changed: PropertyValues): void {\n super.willUpdate(changed);\n this.#core.setProps(this);\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n const media = this.#state.value;\n\n if (!media) return;\n\n this.#core.update(media);\n applyStateDataAttrs(this, this.#core.state.current, BufferingIndicatorDataAttrs);\n }\n}\n","import { BufferingIndicatorElement } from '../../ui/buffering-indicator/buffering-indicator-element';\nimport { safeDefine } from '../safe-define';\n\nsafeDefine(BufferingIndicatorElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [BufferingIndicatorElement.tagName]: BufferingIndicatorElement;\n }\n}\n","import type { ControlsState, StateAttrMap } from '@videojs/core';\nimport { createContext } from '@videojs/element/context';\n\nexport interface ControlsContextValue {\n state: ControlsState;\n stateAttrMap: StateAttrMap<ControlsState>;\n}\n\nconst CONTROLS_CONTEXT_KEY = Symbol('@videojs/controls');\n\nexport const controlsContext = createContext<ControlsContextValue>(CONTROLS_CONTEXT_KEY);\n","import { ControlsCore, ControlsDataAttrs } from '@videojs/core';\nimport { applyStateDataAttrs, logMissingFeature, selectControls } from '@videojs/core/dom';\nimport type { PropertyValues } from '@videojs/element';\nimport { ContextProvider } from '@videojs/element/context';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaElement } from '../media-element';\nimport { controlsContext } from './context';\n\nexport class ControlsElement extends MediaElement {\n static readonly tagName = 'media-controls';\n\n readonly #core = new ControlsCore();\n readonly #mediaState = new PlayerController(this, playerContext, selectControls);\n readonly #provider = new ContextProvider(this, { context: controlsContext });\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (__DEV__ && !this.#mediaState.value && this.#mediaState.displayName) {\n logMissingFeature(this.localName, this.#mediaState.displayName);\n }\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n\n const media = this.#mediaState.value;\n if (!media) return;\n\n this.#core.setMedia(media);\n const state = this.#core.getState();\n\n applyStateDataAttrs(this, state, ControlsDataAttrs);\n\n this.#provider.setValue({\n state,\n stateAttrMap: ControlsDataAttrs,\n });\n }\n}\n","import type { ControlsState } from '@videojs/core';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { ContextPartElement } from '../context-part-element';\nimport { controlsContext } from './context';\n\nexport class ControlsGroupElement extends ContextPartElement<ControlsState> {\n static readonly tagName = 'media-controls-group';\n\n protected readonly consumer = new ContextConsumer(this, { context: controlsContext, subscribe: true });\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (this.hasAttribute('aria-label') || this.hasAttribute('aria-labelledby')) {\n this.setAttribute('role', 'group');\n }\n }\n}\n","import { ControlsElement } from '../../ui/controls/controls-element';\nimport { ControlsGroupElement } from '../../ui/controls/controls-group-element';\nimport { safeDefine } from '../safe-define';\n\nsafeDefine(ControlsElement);\nsafeDefine(ControlsGroupElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [ControlsElement.tagName]: ControlsElement;\n }\n}\n","import { FullscreenButtonCore, FullscreenButtonDataAttrs, type MediaFullscreenState } from '@videojs/core';\nimport { selectFullscreen } from '@videojs/core/dom';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaButtonElement } from '../media-button-element';\n\nexport class FullscreenButtonElement extends MediaButtonElement<FullscreenButtonCore> {\n static readonly tagName = 'media-fullscreen-button';\n\n protected readonly core = new FullscreenButtonCore();\n protected readonly stateAttrMap = FullscreenButtonDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectFullscreen);\n\n protected activate(state: MediaFullscreenState): void {\n this.core.toggle(state);\n }\n}\n","import { FullscreenButtonElement } from '../../ui/fullscreen-button/fullscreen-button-element';\nimport { safeDefine } from '../safe-define';\n\nsafeDefine(FullscreenButtonElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [FullscreenButtonElement.tagName]: FullscreenButtonElement;\n }\n}\n","import { type MediaPictureInPictureState, PiPButtonCore, PiPButtonDataAttrs } from '@videojs/core';\nimport { selectPiP } from '@videojs/core/dom';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaButtonElement } from '../media-button-element';\n\nexport class PiPButtonElement extends MediaButtonElement<PiPButtonCore> {\n static readonly tagName = 'media-pip-button';\n\n protected readonly core = new PiPButtonCore();\n protected readonly stateAttrMap = PiPButtonDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectPiP);\n\n protected activate(state: MediaPictureInPictureState): void {\n this.core.toggle(state);\n }\n}\n","import { PiPButtonElement } from '../../ui/pip-button/pip-button-element';\nimport { safeDefine } from '../safe-define';\n\nsafeDefine(PiPButtonElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [PiPButtonElement.tagName]: PiPButtonElement;\n }\n}\n","import type { InferComponentState, InferMediaState, MediaUIComponent, StateAttrMap } from '@videojs/core';\nimport { applyStateDataAttrs, logMissingFeature } from '@videojs/core/dom';\nimport type { PropertyValues } from '@videojs/element';\n\nimport type { PlayerController } from '../player/player-controller';\nimport { MediaElement } from './media-element';\n\n/** Abstract base for HTML custom elements that display media state with data attributes. */\nexport abstract class MediaUIElement<Core extends MediaUIComponent> extends MediaElement {\n protected abstract readonly core: Core;\n protected abstract readonly stateAttrMap: StateAttrMap<InferComponentState<Core>>;\n protected abstract readonly mediaState: PlayerController<any, InferMediaState<Core> | undefined>;\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (__DEV__ && !this.mediaState.value && this.mediaState.displayName) {\n logMissingFeature(this.localName, this.mediaState.displayName);\n }\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n const media = this.mediaState.value;\n\n if (!media) return;\n\n this.core.setMedia(media);\n const state = this.core.getState();\n applyStateDataAttrs(this, state, this.stateAttrMap);\n }\n}\n","import { PosterCore, PosterDataAttrs } from '@videojs/core';\nimport { selectPlayback } from '@videojs/core/dom';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaUIElement } from '../media-ui-element';\n\nexport class PosterElement extends MediaUIElement<PosterCore> {\n static readonly tagName = 'media-poster';\n\n protected readonly core = new PosterCore();\n protected readonly stateAttrMap = PosterDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectPlayback);\n}\n","import { PosterElement } from '../../ui/poster/poster-element';\nimport { safeDefine } from '../safe-define';\n\nsafeDefine(PosterElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [PosterElement.tagName]: PosterElement;\n }\n}\n"],"mappings":"sTAMA,KAAM,CAAE,iBAAkB,EAAa,CACrC,SAAU,EACX,CAAC,CAOF,EALA,cAAwC,EAAc,EAAa,AAAC,qBACxC,iBAIE,CAC9B,EAAW,EAAsB,CEbjC,EDKA,cAA+C,CAAa,0CAOlD,EAAuB,aAAa,0BANlB,mDAEG,CAC3B,MAAO,CAAE,KAAM,OAAQ,CACxB,CAID,GAAiB,IAAI,EACrB,GAAkB,IAAI,EAAiB,KAAM,EAAe,EAAe,CAE3E,GAAsC,KAEtC,mBAAmC,CACjC,MAAM,mBAAmB,CAEzB,MAAA,EAAmB,IAAI,gBAEvB,MAAA,EAAW,MAAM,cAAgB,KAAK,eAAe,CAAE,CACrD,OAAQ,MAAA,EAAiB,OAC1B,CAAC,CAOJ,sBAAsC,CACpC,MAAM,sBAAsB,CAC5B,MAAA,GAAkB,OAAO,CACzB,MAAA,EAAmB,KAGrB,WAA8B,EAA+B,CAC3D,MAAM,WAAW,EAAQ,CACzB,MAAA,EAAW,SAAS,KAAK,CAG3B,OAA0B,EAA+B,CACvD,MAAM,OAAO,EAAQ,CAErB,IAAM,EAAQ,MAAA,EAAY,MAErB,IAEL,MAAA,EAAW,OAAO,EAAM,CACxB,EAAoB,KAAM,MAAA,EAAW,MAAM,QAAS,EAA4B,ICpD/C,CCOrC,MAAa,EAAkBG,EAFF,OAAO,oBAAoB,CAEgC,CCAxF,IAAa,EAAb,cAAqC,CAAa,qBACtB,iBAE1B,GAAiB,IAAI,EACrB,GAAuB,IAAI,EAAiB,KAAM,EAAe,EAAe,CAChF,GAAqB,IAAII,EAAgB,KAAM,CAAE,QAAS,EAAiB,CAAC,CAE5E,mBAAmC,CACjC,MAAM,mBAAmB,CAO3B,OAA0B,EAAgC,CACxD,MAAM,OAAO,EAAS,CAEtB,IAAM,EAAQ,MAAA,EAAiB,MAC/B,GAAI,CAAC,EAAO,OAEZ,MAAA,EAAW,SAAS,EAAM,CAC1B,IAAM,EAAQ,MAAA,EAAW,UAAU,CAEnC,EAAoB,KAAM,EAAO,EAAkB,CAEnD,MAAA,EAAe,SAAS,CACtB,QACA,aAAc,EACf,CAAC,GCjCO,EAAb,cAA0C,CAAkC,6CAG5C,IAAIC,EAAgB,KAAM,CAAE,QAAS,EAAiB,UAAW,GAAM,CAAC,qBAF5E,uBAI1B,mBAAmC,CACjC,MAAM,mBAAmB,EAErB,KAAK,aAAa,aAAa,EAAI,KAAK,aAAa,kBAAkB,GACzE,KAAK,aAAa,OAAQ,QAAQ,GCXxC,EAAW,EAAgB,CAC3B,EAAW,EAAqB,CEFhC,EDIA,cAA6C,CAAyC,yCAG1D,IAAI,oBACI,kBACF,IAAI,EAAiB,KAAM,EAAe,EAAiB,qBAJjE,0BAM1B,SAAmB,EAAmC,CACpD,KAAK,KAAK,OAAO,EAAM,GCZQ,CEAnC,EDIA,cAAsC,CAAkC,yCAG5C,IAAI,oBACI,kBACF,IAAI,EAAiB,KAAM,EAAe,EAAU,qBAJ1D,mBAM1B,SAAmB,EAAyC,CAC1D,KAAK,KAAK,OAAO,EAAM,GCZC,CCK5B,IAAsB,EAAtB,cAA4E,CAAa,CAKvF,mBAAmC,CACjC,MAAM,mBAAmB,CAO3B,OAA0B,EAA+B,CACvD,MAAM,OAAO,EAAQ,CAErB,IAAM,EAAQ,KAAK,WAAW,MAE9B,GAAI,CAAC,EAAO,OAEZ,KAAK,KAAK,SAAS,EAAM,CACzB,IAAM,EAAQ,KAAK,KAAK,UAAU,CAClC,EAAoB,KAAM,EAAO,KAAK,aAAa,GE3BvD,EDIA,cAAmC,CAA2B,yCAGlC,IAAI,oBACI,kBACF,IAAI,EAAiB,KAAM,EAAe,EAAe,qBAJ/D,iBCLH"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"poster-Ds1EOmmU.js","names":["#core","#state","#disconnect","#core","#mediaState","#provider"],"sources":["../src/define/video/player.ts","../src/ui/buffering-indicator/buffering-indicator-element.ts","../src/define/ui/buffering-indicator.ts","../src/ui/controls/context.ts","../src/ui/controls/controls-element.ts","../src/ui/controls/controls-group-element.ts","../src/define/ui/controls.ts","../src/ui/fullscreen-button/fullscreen-button-element.ts","../src/define/ui/fullscreen-button.ts","../src/ui/pip-button/pip-button-element.ts","../src/define/ui/pip-button.ts","../src/ui/media-ui-element.ts","../src/ui/poster/poster-element.ts","../src/define/ui/poster.ts"],"sourcesContent":["import { videoFeatures } from '@videojs/core/dom';\nimport { MediaContainerElement } from '../../media/container-element';\nimport { createPlayer } from '../../player/create-player';\nimport { MediaElement } from '../../ui/media-element';\nimport { safeDefine } from '../safe-define';\n\nconst { ProviderMixin } = createPlayer({\n features: videoFeatures,\n});\n\nexport class VideoPlayerElement extends ProviderMixin(MediaElement) {\n static readonly tagName = 'video-player';\n}\n\n// Provider must be defined before consumer for context handshake during upgrade.\nsafeDefine(VideoPlayerElement);\nsafeDefine(MediaContainerElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [VideoPlayerElement.tagName]: VideoPlayerElement;\n }\n}\n","import { BufferingIndicatorCore, BufferingIndicatorDataAttrs } from '@videojs/core';\nimport { applyStateDataAttrs, logMissingFeature, selectPlayback } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaElement } from '../media-element';\n\nexport class BufferingIndicatorElement extends MediaElement {\n static readonly tagName = 'media-buffering-indicator';\n\n static override properties = {\n delay: { type: Number },\n } satisfies PropertyDeclarationMap<keyof BufferingIndicatorCore.Props>;\n\n delay = BufferingIndicatorCore.defaultProps.delay;\n\n readonly #core = new BufferingIndicatorCore();\n readonly #state = new PlayerController(this, playerContext, selectPlayback);\n\n #disconnect: AbortController | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n this.#disconnect = new AbortController();\n\n this.#core.state.subscribe(() => this.requestUpdate(), {\n signal: this.#disconnect.signal,\n });\n\n if (__DEV__ && !this.#state.value) {\n logMissingFeature(this.localName, this.#state.displayName!);\n }\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n protected override willUpdate(changed: PropertyValues): void {\n super.willUpdate(changed);\n this.#core.setProps(this);\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n const media = this.#state.value;\n\n if (!media) return;\n\n this.#core.update(media);\n applyStateDataAttrs(this, this.#core.state.current, BufferingIndicatorDataAttrs);\n }\n}\n","import { BufferingIndicatorElement } from '../../ui/buffering-indicator/buffering-indicator-element';\nimport { safeDefine } from '../safe-define';\n\nsafeDefine(BufferingIndicatorElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [BufferingIndicatorElement.tagName]: BufferingIndicatorElement;\n }\n}\n","import type { ControlsState, StateAttrMap } from '@videojs/core';\nimport { createContext } from '@videojs/element/context';\n\nexport interface ControlsContextValue {\n state: ControlsState;\n stateAttrMap: StateAttrMap<ControlsState>;\n}\n\nconst CONTROLS_CONTEXT_KEY = Symbol('@videojs/controls');\n\nexport const controlsContext = createContext<ControlsContextValue>(CONTROLS_CONTEXT_KEY);\n","import { ControlsCore, ControlsDataAttrs } from '@videojs/core';\nimport { applyStateDataAttrs, logMissingFeature, selectControls } from '@videojs/core/dom';\nimport type { PropertyValues } from '@videojs/element';\nimport { ContextProvider } from '@videojs/element/context';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaElement } from '../media-element';\nimport { controlsContext } from './context';\n\nexport class ControlsElement extends MediaElement {\n static readonly tagName = 'media-controls';\n\n readonly #core = new ControlsCore();\n readonly #mediaState = new PlayerController(this, playerContext, selectControls);\n readonly #provider = new ContextProvider(this, { context: controlsContext });\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (__DEV__ && !this.#mediaState.value && this.#mediaState.displayName) {\n logMissingFeature(this.localName, this.#mediaState.displayName);\n }\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n\n const media = this.#mediaState.value;\n if (!media) return;\n\n this.#core.setMedia(media);\n const state = this.#core.getState();\n\n applyStateDataAttrs(this, state, ControlsDataAttrs);\n\n this.#provider.setValue({\n state,\n stateAttrMap: ControlsDataAttrs,\n });\n }\n}\n","import type { ControlsState } from '@videojs/core';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { ContextPartElement } from '../context-part-element';\nimport { controlsContext } from './context';\n\nexport class ControlsGroupElement extends ContextPartElement<ControlsState> {\n static readonly tagName = 'media-controls-group';\n\n protected readonly consumer = new ContextConsumer(this, { context: controlsContext, subscribe: true });\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (this.hasAttribute('aria-label') || this.hasAttribute('aria-labelledby')) {\n this.setAttribute('role', 'group');\n }\n }\n}\n","import { ControlsElement } from '../../ui/controls/controls-element';\nimport { ControlsGroupElement } from '../../ui/controls/controls-group-element';\nimport { safeDefine } from '../safe-define';\n\nsafeDefine(ControlsElement);\nsafeDefine(ControlsGroupElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [ControlsElement.tagName]: ControlsElement;\n }\n}\n","import { FullscreenButtonCore, FullscreenButtonDataAttrs, type MediaFullscreenState } from '@videojs/core';\nimport { selectFullscreen } from '@videojs/core/dom';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaButtonElement } from '../media-button-element';\n\nexport class FullscreenButtonElement extends MediaButtonElement<FullscreenButtonCore> {\n static readonly tagName = 'media-fullscreen-button';\n\n protected readonly core = new FullscreenButtonCore();\n protected readonly stateAttrMap = FullscreenButtonDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectFullscreen);\n\n protected activate(state: MediaFullscreenState): void {\n this.core.toggle(state);\n }\n}\n","import { FullscreenButtonElement } from '../../ui/fullscreen-button/fullscreen-button-element';\nimport { safeDefine } from '../safe-define';\n\nsafeDefine(FullscreenButtonElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [FullscreenButtonElement.tagName]: FullscreenButtonElement;\n }\n}\n","import { type MediaPictureInPictureState, PiPButtonCore, PiPButtonDataAttrs } from '@videojs/core';\nimport { selectPiP } from '@videojs/core/dom';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaButtonElement } from '../media-button-element';\n\nexport class PiPButtonElement extends MediaButtonElement<PiPButtonCore> {\n static readonly tagName = 'media-pip-button';\n\n protected readonly core = new PiPButtonCore();\n protected readonly stateAttrMap = PiPButtonDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectPiP);\n\n protected activate(state: MediaPictureInPictureState): void {\n this.core.toggle(state);\n }\n}\n","import { PiPButtonElement } from '../../ui/pip-button/pip-button-element';\nimport { safeDefine } from '../safe-define';\n\nsafeDefine(PiPButtonElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [PiPButtonElement.tagName]: PiPButtonElement;\n }\n}\n","import type { InferComponentState, InferMediaState, MediaUIComponent, StateAttrMap } from '@videojs/core';\nimport { applyStateDataAttrs, logMissingFeature } from '@videojs/core/dom';\nimport type { PropertyValues } from '@videojs/element';\n\nimport type { PlayerController } from '../player/player-controller';\nimport { MediaElement } from './media-element';\n\n/** Abstract base for HTML custom elements that display media state with data attributes. */\nexport abstract class MediaUIElement<Core extends MediaUIComponent> extends MediaElement {\n protected abstract readonly core: Core;\n protected abstract readonly stateAttrMap: StateAttrMap<InferComponentState<Core>>;\n protected abstract readonly mediaState: PlayerController<any, InferMediaState<Core> | undefined>;\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (__DEV__ && !this.mediaState.value && this.mediaState.displayName) {\n logMissingFeature(this.localName, this.mediaState.displayName);\n }\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n const media = this.mediaState.value;\n\n if (!media) return;\n\n this.core.setMedia(media);\n const state = this.core.getState();\n applyStateDataAttrs(this, state, this.stateAttrMap);\n }\n}\n","import { PosterCore, PosterDataAttrs } from '@videojs/core';\nimport { selectPlayback } from '@videojs/core/dom';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaUIElement } from '../media-ui-element';\n\nexport class PosterElement extends MediaUIElement<PosterCore> {\n static readonly tagName = 'media-poster';\n\n protected readonly core = new PosterCore();\n protected readonly stateAttrMap = PosterDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectPlayback);\n}\n","import { PosterElement } from '../../ui/poster/poster-element';\nimport { safeDefine } from '../safe-define';\n\nsafeDefine(PosterElement);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [PosterElement.tagName]: PosterElement;\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"safe-define-Bw8JF08z.js","names":["#target"],"sources":["../../core/dist/dev/core/utils/define-class-prop-hooks.js","../../core/dist/dev/core/media/proxy.js","../../core/dist/dev/dom/media/proxy.js","../../../node_modules/.pnpm/@lit+context@1.1.6/node_modules/@lit/context/development/lib/context-request-event.js","../../../node_modules/.pnpm/@lit+context@1.1.6/node_modules/@lit/context/development/lib/create-context.js","../src/player/context.ts","../src/define/safe-define.ts"],"sourcesContent":["//#region src/core/utils/define-class-prop-hooks.ts\nfunction defineClassPropHooks(Class, BaseClassProto) {\n\tfor (const prop of Object.getOwnPropertyNames(BaseClassProto)) {\n\t\tif (prop in Class.prototype || prop.startsWith(\"_\")) continue;\n\t\tconst descriptor = Object.getOwnPropertyDescriptor(BaseClassProto, prop);\n\t\tif (!descriptor) continue;\n\t\tconst config = {};\n\t\tif (typeof descriptor.value === \"function\") config.value = function(...args) {\n\t\t\treturn this.call?.(prop, ...args);\n\t\t};\n\t\telse if (descriptor.get) {\n\t\t\tconfig.get = function() {\n\t\t\t\treturn this.get?.(prop);\n\t\t\t};\n\t\t\tif (descriptor.set) config.set = function(val) {\n\t\t\t\tthis.set?.(prop, val);\n\t\t\t};\n\t\t}\n\t\tObject.defineProperty(Class.prototype, prop, config);\n\t}\n}\n//#endregion\nexport { defineClassPropHooks };\n\n//# sourceMappingURL=define-class-prop-hooks.js.map","import { defineClassPropHooks } from \"../utils/define-class-prop-hooks.js\";\n//#region src/core/media/proxy.ts\n/**\n* This mixin creates an API from the passed classes and proxies the methods and properties to the attached target.\n*\n* Many methods and properties will need no translation and are proxied directly to the attached target.\n* For example, the `play` and `pause` methods are proxied directly to the attached target.\n*\n* Child classes can override the proxied methods and properties to provide custom behavior.\n* For example, the `src` property for HLS media is proxied to the HLS engine, not the target itself.\n*\n* The `get`, `set`, and `call` methods can be overridden to provide catch-all custom behavior.\n*/\nconst ProxyMixin = (PrimaryClass, ...AdditionalClasses) => {\n\tclass MediaProxy {\n\t\t#target = null;\n\t\tget target() {\n\t\t\treturn this.#target;\n\t\t}\n\t\tget(prop) {\n\t\t\treturn this.target?.[prop];\n\t\t}\n\t\tset(prop, val) {\n\t\t\tif (this.target) this.target[prop] = val;\n\t\t}\n\t\tcall(prop, ...args) {\n\t\t\treturn (this.target?.[prop])?.apply(this.target, args);\n\t\t}\n\t\tattach(target) {\n\t\t\tif (!target || this.#target === target) return;\n\t\t\tthis.#target = target;\n\t\t}\n\t\tdetach() {\n\t\t\tif (!this.#target) return;\n\t\t\tthis.#target = null;\n\t\t}\n\t\taddEventListener(type, listener, options) {\n\t\t\tthis.#target?.addEventListener(type, listener, options);\n\t\t}\n\t\tremoveEventListener(type, listener, options) {\n\t\t\tthis.#target?.removeEventListener(type, listener, options);\n\t\t}\n\t\tdispatchEvent(event) {\n\t\t\treturn this.#target?.dispatchEvent(event) ?? false;\n\t\t}\n\t}\n\tfor (const Class of [PrimaryClass, ...AdditionalClasses]) defineClassPropHooks(MediaProxy, Class.prototype);\n\treturn MediaProxy;\n};\n//#endregion\nexport { ProxyMixin };\n\n//# sourceMappingURL=proxy.js.map","import { ProxyMixin } from \"../../core/media/proxy.js\";\n//#region src/dom/media/proxy.ts\nconst VideoProxy = ProxyMixin(globalThis.HTMLVideoElement ?? class {}, globalThis.HTMLMediaElement ?? class {}, globalThis.EventTarget ?? class {});\n//#endregion\nexport { VideoProxy };\n\n//# sourceMappingURL=proxy.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n/**\n * An event fired by a context requester to signal it desires a specified context with the given key.\n *\n * A provider should inspect the `context` property of the event to determine if it has a value that can\n * satisfy the request, calling the `callback` with the requested value if so.\n *\n * If the requested context event contains a truthy `subscribe` value, then a provider can call the callback\n * multiple times if the value is changed, if this is the case the provider should pass an `unsubscribe`\n * method to the callback which consumers can invoke to indicate they no longer wish to receive these updates.\n *\n * If no `subscribe` value is present in the event, then the provider can assume that this is a 'one time'\n * request for the context and can therefore not track the consumer.\n */\nexport class ContextRequestEvent extends Event {\n /**\n *\n * @param context the context key to request\n * @param contextTarget the original context target of the requester\n * @param callback the callback that should be invoked when the context with the specified key is available\n * @param subscribe when, true indicates we want to subscribe to future updates\n */\n constructor(context, contextTarget, callback, subscribe) {\n super('context-request', { bubbles: true, composed: true });\n this.context = context;\n this.contextTarget = contextTarget;\n this.callback = callback;\n this.subscribe = subscribe ?? false;\n }\n}\n//# sourceMappingURL=context-request-event.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n/**\n * Creates a typed Context.\n *\n * Contexts are compared with strict equality.\n *\n * If you want two separate `createContext()` calls to referer to the same\n * context, then use a key that will by equal under strict equality like a\n * string for `Symbol.for()`:\n *\n * ```ts\n * // true\n * createContext('my-context') === createContext('my-context')\n * // true\n * createContext(Symbol.for('my-context')) === createContext(Symbol.for('my-context'))\n * ```\n *\n * If you want a context to be unique so that it's guaranteed to not collide\n * with other contexts, use a key that's unique under strict equality, like\n * a `Symbol()` or object.:\n *\n * ```\n * // false\n * createContext({}) === createContext({})\n * // false\n * createContext(Symbol('my-context')) === createContext(Symbol('my-context'))\n * ```\n *\n * @param key a context key value\n * @template ValueType the type of value that can be provided by this context.\n * @returns the context key value cast to `Context<K, ValueType>`\n */\nexport function createContext(key) {\n return key;\n}\n//# sourceMappingURL=create-context.js.map","import type { AnyPlayerStore, Media, MediaContainer, PlayerStore } from '@videojs/core/dom';\nimport { type Context, createContext } from '@videojs/element/context';\n\n// ----------------------------------------\n// Player Context\n// ----------------------------------------\n\nexport const PLAYER_CONTEXT_KEY = Symbol.for('@videojs/player');\n\nexport type PlayerContextValue<Store extends PlayerStore = AnyPlayerStore> = Store;\n\nexport type PlayerContext<Store extends PlayerStore = AnyPlayerStore> = Context<\n typeof PLAYER_CONTEXT_KEY,\n PlayerContextValue<Store>\n>;\n\n/**\n * The default player context instance for consuming the player store in controllers.\n *\n * @public\n */\nexport const playerContext = createContext<PlayerContextValue, typeof PLAYER_CONTEXT_KEY>(PLAYER_CONTEXT_KEY);\n\n// ----------------------------------------\n// Media Context\n// ----------------------------------------\n\nexport const MEDIA_CONTEXT_KEY = Symbol.for('@videojs/media');\n\nexport interface MediaContextValue {\n media: Media | null;\n setMedia: (media: Media | null) => void;\n}\n\nexport type MediaContext = Context<typeof MEDIA_CONTEXT_KEY, MediaContextValue>;\n\nexport const mediaContext = createContext<MediaContextValue, typeof MEDIA_CONTEXT_KEY>(MEDIA_CONTEXT_KEY);\n\n// ----------------------------------------\n// Container Context\n// ----------------------------------------\n\nexport const CONTAINER_CONTEXT_KEY = Symbol.for('@videojs/container');\n\nexport interface ContainerContextValue {\n container: MediaContainer | null;\n setContainer: (container: MediaContainer | null) => void;\n}\n\nexport type ContainerContext = Context<typeof CONTAINER_CONTEXT_KEY, ContainerContextValue>;\n\nexport const containerContext = createContext<ContainerContextValue, typeof CONTAINER_CONTEXT_KEY>(\n CONTAINER_CONTEXT_KEY\n);\n","type DefinableElement = CustomElementConstructor & { tagName: string };\n\n/** Define a custom element only if not already registered. */\nexport function safeDefine(element: DefinableElement): void {\n const registry = globalThis.customElements;\n if (!registry || registry.get(element.tagName)) return;\n\n registry.define(element.tagName, element);\n}\n"],"x_google_ignoreList":[3,4],"mappings":";AACA,SAAS,qBAAqB,OAAO,gBAAgB;AACpD,MAAK,MAAM,QAAQ,OAAO,oBAAoB,eAAe,EAAE;AAC9D,MAAI,QAAQ,MAAM,aAAa,KAAK,WAAW,IAAI,CAAE;EACrD,MAAM,aAAa,OAAO,yBAAyB,gBAAgB,KAAK;AACxE,MAAI,CAAC,WAAY;EACjB,MAAM,SAAS,EAAE;AACjB,MAAI,OAAO,WAAW,UAAU,WAAY,QAAO,QAAQ,SAAS,GAAG,MAAM;AAC5E,UAAO,KAAK,OAAO,MAAM,GAAG,KAAK;;WAEzB,WAAW,KAAK;AACxB,UAAO,MAAM,WAAW;AACvB,WAAO,KAAK,MAAM,KAAK;;AAExB,OAAI,WAAW,IAAK,QAAO,MAAM,SAAS,KAAK;AAC9C,SAAK,MAAM,MAAM,IAAI;;;AAGvB,SAAO,eAAe,MAAM,WAAW,MAAM,OAAO;;;;;;;;;;;;;;;;;ACLtD,MAAM,cAAc,cAAc,GAAG,sBAAsB;CAC1D,MAAM,WAAW;EAChB,UAAU;EACV,IAAI,SAAS;AACZ,UAAO,MAAKA;;EAEb,IAAI,MAAM;AACT,UAAO,KAAK,SAAS;;EAEtB,IAAI,MAAM,KAAK;AACd,OAAI,KAAK,OAAQ,MAAK,OAAO,QAAQ;;EAEtC,KAAK,MAAM,GAAG,MAAM;AACnB,WAAQ,KAAK,SAAS,QAAQ,MAAM,KAAK,QAAQ,KAAK;;EAEvD,OAAO,QAAQ;AACd,OAAI,CAAC,UAAU,MAAKA,WAAY,OAAQ;AACxC,SAAKA,SAAU;;EAEhB,SAAS;AACR,OAAI,CAAC,MAAKA,OAAS;AACnB,SAAKA,SAAU;;EAEhB,iBAAiB,MAAM,UAAU,SAAS;AACzC,SAAKA,QAAS,iBAAiB,MAAM,UAAU,QAAQ;;EAExD,oBAAoB,MAAM,UAAU,SAAS;AAC5C,SAAKA,QAAS,oBAAoB,MAAM,UAAU,QAAQ;;EAE3D,cAAc,OAAO;AACpB,UAAO,MAAKA,QAAS,cAAc,MAAM,IAAI;;;AAG/C,MAAK,MAAM,SAAS,CAAC,cAAc,GAAG,kBAAkB,CAAE,sBAAqB,YAAY,MAAM,UAAU;AAC3G,QAAO;;;;;AC7CR,MAAM,aAAa,WAAW,WAAW,oBAAoB,MAAM,IAAI,WAAW,oBAAoB,MAAM,IAAI,WAAW,eAAe,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;ACgBnJ,IAAa,sBAAb,cAAyC,MAAM;;;;;;;;CAQ3C,YAAY,SAAS,eAAe,UAAU,WAAW;AACrD,QAAM,mBAAmB;GAAE,SAAS;GAAM,UAAU;GAAM,CAAC;AAC3D,OAAK,UAAU;AACf,OAAK,gBAAgB;AACrB,OAAK,WAAW;AAChB,OAAK,YAAY,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACKtC,SAAgB,cAAc,KAAK;AAC/B,QAAO;;;;;AC9BX,MAAa,qBAAqB,OAAO,IAAI,kBAAkB;;;;;;AAc/D,MAAa,gBAAgB,cAA6D,mBAAmB;AAM7G,MAAa,oBAAoB,OAAO,IAAI,iBAAiB;AAS7D,MAAa,eAAe,cAA2D,kBAAkB;AAMzG,MAAa,wBAAwB,OAAO,IAAI,qBAAqB;AASrE,MAAa,mBAAmB,cAC9B,sBACD;;;;;AClDD,SAAgB,WAAW,SAAiC;CAC1D,MAAM,WAAW,WAAW;AAC5B,KAAI,CAAC,YAAY,SAAS,IAAI,QAAQ,QAAQ,CAAE;AAEhD,UAAS,OAAO,QAAQ,SAAS,QAAQ"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
function e(e,t){for(let n of Object.getOwnPropertyNames(t)){if(n in e.prototype||n.startsWith(`_`))continue;let r=Object.getOwnPropertyDescriptor(t,n);if(!r)continue;let i={};typeof r.value==`function`?i.value=function(...e){return this.call?.(n,...e)}:r.get&&(i.get=function(){return this.get?.(n)},r.set&&(i.set=function(e){this.set?.(n,e)})),Object.defineProperty(e.prototype,n,i)}}((t,...n)=>{class r{#e=null;get target(){return this.#e}get(e){return this.target?.[e]}set(e,t){this.target&&(this.target[e]=t)}call(e,...t){return(this.target?.[e])?.apply(this.target,t)}attach(e){!e||this.#e===e||(this.#e=e)}detach(){this.#e&&=null}addEventListener(e,t,n){this.#e?.addEventListener(e,t,n)}removeEventListener(e,t,n){this.#e?.removeEventListener(e,t,n)}dispatchEvent(e){return this.#e?.dispatchEvent(e)??!1}}for(let i of[t,...n])e(r,i.prototype);return r})(globalThis.HTMLVideoElement??class{},globalThis.HTMLMediaElement??class{},globalThis.EventTarget??class{});
|
|
2
|
-
/**
|
|
3
|
-
* @license
|
|
4
|
-
* Copyright 2021 Google LLC
|
|
5
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
6
|
-
*/
|
|
7
|
-
var t=class extends Event{constructor(e,t,n,r){super(`context-request`,{bubbles:!0,composed:!0}),this.context=e,this.contextTarget=t,this.callback=n,this.subscribe=r??!1}};
|
|
8
|
-
/**
|
|
9
|
-
* @license
|
|
10
|
-
* Copyright 2021 Google LLC
|
|
11
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
12
|
-
*/
|
|
13
|
-
function n(e){return e}const r=n(Symbol.for(`@videojs/player`)),i=n(Symbol.for(`@videojs/media`)),a=n(Symbol.for(`@videojs/container`));function o(e){let t=globalThis.customElements;!t||t.get(e.tagName)||t.define(e.tagName,e)}export{n as a,r as i,a as n,t as o,i as r,e as s,o as t};
|
|
14
|
-
//# sourceMappingURL=safe-define-t0AGOouq.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"safe-define-t0AGOouq.js","names":["#target","createContext"],"sources":["../../core/dist/default/core/utils/define-class-prop-hooks.js","../../core/dist/default/core/media/proxy.js","../../core/dist/default/dom/media/proxy.js","../../../node_modules/.pnpm/@lit+context@1.1.6/node_modules/@lit/context/lib/context-request-event.js","../../../node_modules/.pnpm/@lit+context@1.1.6/node_modules/@lit/context/lib/create-context.js","../src/player/context.ts","../src/define/safe-define.ts"],"sourcesContent":["//#region src/core/utils/define-class-prop-hooks.ts\nfunction defineClassPropHooks(Class, BaseClassProto) {\n\tfor (const prop of Object.getOwnPropertyNames(BaseClassProto)) {\n\t\tif (prop in Class.prototype || prop.startsWith(\"_\")) continue;\n\t\tconst descriptor = Object.getOwnPropertyDescriptor(BaseClassProto, prop);\n\t\tif (!descriptor) continue;\n\t\tconst config = {};\n\t\tif (typeof descriptor.value === \"function\") config.value = function(...args) {\n\t\t\treturn this.call?.(prop, ...args);\n\t\t};\n\t\telse if (descriptor.get) {\n\t\t\tconfig.get = function() {\n\t\t\t\treturn this.get?.(prop);\n\t\t\t};\n\t\t\tif (descriptor.set) config.set = function(val) {\n\t\t\t\tthis.set?.(prop, val);\n\t\t\t};\n\t\t}\n\t\tObject.defineProperty(Class.prototype, prop, config);\n\t}\n}\n//#endregion\nexport { defineClassPropHooks };\n\n//# sourceMappingURL=define-class-prop-hooks.js.map","import { defineClassPropHooks } from \"../utils/define-class-prop-hooks.js\";\n//#region src/core/media/proxy.ts\n/**\n* This mixin creates an API from the passed classes and proxies the methods and properties to the attached target.\n*\n* Many methods and properties will need no translation and are proxied directly to the attached target.\n* For example, the `play` and `pause` methods are proxied directly to the attached target.\n*\n* Child classes can override the proxied methods and properties to provide custom behavior.\n* For example, the `src` property for HLS media is proxied to the HLS engine, not the target itself.\n*\n* The `get`, `set`, and `call` methods can be overridden to provide catch-all custom behavior.\n*/\nconst ProxyMixin = (PrimaryClass, ...AdditionalClasses) => {\n\tclass MediaProxy {\n\t\t#target = null;\n\t\tget target() {\n\t\t\treturn this.#target;\n\t\t}\n\t\tget(prop) {\n\t\t\treturn this.target?.[prop];\n\t\t}\n\t\tset(prop, val) {\n\t\t\tif (this.target) this.target[prop] = val;\n\t\t}\n\t\tcall(prop, ...args) {\n\t\t\treturn (this.target?.[prop])?.apply(this.target, args);\n\t\t}\n\t\tattach(target) {\n\t\t\tif (!target || this.#target === target) return;\n\t\t\tthis.#target = target;\n\t\t}\n\t\tdetach() {\n\t\t\tif (!this.#target) return;\n\t\t\tthis.#target = null;\n\t\t}\n\t\taddEventListener(type, listener, options) {\n\t\t\tthis.#target?.addEventListener(type, listener, options);\n\t\t}\n\t\tremoveEventListener(type, listener, options) {\n\t\t\tthis.#target?.removeEventListener(type, listener, options);\n\t\t}\n\t\tdispatchEvent(event) {\n\t\t\treturn this.#target?.dispatchEvent(event) ?? false;\n\t\t}\n\t}\n\tfor (const Class of [PrimaryClass, ...AdditionalClasses]) defineClassPropHooks(MediaProxy, Class.prototype);\n\treturn MediaProxy;\n};\n//#endregion\nexport { ProxyMixin };\n\n//# sourceMappingURL=proxy.js.map","import { ProxyMixin } from \"../../core/media/proxy.js\";\n//#region src/dom/media/proxy.ts\nconst VideoProxy = ProxyMixin(globalThis.HTMLVideoElement ?? class {}, globalThis.HTMLMediaElement ?? class {}, globalThis.EventTarget ?? class {});\n//#endregion\nexport { VideoProxy };\n\n//# sourceMappingURL=proxy.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nclass s extends Event{constructor(s,t,e,o){super(\"context-request\",{bubbles:!0,composed:!0}),this.context=s,this.contextTarget=t,this.callback=e,this.subscribe=o??!1}}export{s as ContextRequestEvent};\n//# sourceMappingURL=context-request-event.js.map\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nfunction n(n){return n}export{n as createContext};\n//# sourceMappingURL=create-context.js.map\n","import type { AnyPlayerStore, Media, MediaContainer, PlayerStore } from '@videojs/core/dom';\nimport { type Context, createContext } from '@videojs/element/context';\n\n// ----------------------------------------\n// Player Context\n// ----------------------------------------\n\nexport const PLAYER_CONTEXT_KEY = Symbol.for('@videojs/player');\n\nexport type PlayerContextValue<Store extends PlayerStore = AnyPlayerStore> = Store;\n\nexport type PlayerContext<Store extends PlayerStore = AnyPlayerStore> = Context<\n typeof PLAYER_CONTEXT_KEY,\n PlayerContextValue<Store>\n>;\n\n/**\n * The default player context instance for consuming the player store in controllers.\n *\n * @public\n */\nexport const playerContext = createContext<PlayerContextValue, typeof PLAYER_CONTEXT_KEY>(PLAYER_CONTEXT_KEY);\n\n// ----------------------------------------\n// Media Context\n// ----------------------------------------\n\nexport const MEDIA_CONTEXT_KEY = Symbol.for('@videojs/media');\n\nexport interface MediaContextValue {\n media: Media | null;\n setMedia: (media: Media | null) => void;\n}\n\nexport type MediaContext = Context<typeof MEDIA_CONTEXT_KEY, MediaContextValue>;\n\nexport const mediaContext = createContext<MediaContextValue, typeof MEDIA_CONTEXT_KEY>(MEDIA_CONTEXT_KEY);\n\n// ----------------------------------------\n// Container Context\n// ----------------------------------------\n\nexport const CONTAINER_CONTEXT_KEY = Symbol.for('@videojs/container');\n\nexport interface ContainerContextValue {\n container: MediaContainer | null;\n setContainer: (container: MediaContainer | null) => void;\n}\n\nexport type ContainerContext = Context<typeof CONTAINER_CONTEXT_KEY, ContainerContextValue>;\n\nexport const containerContext = createContext<ContainerContextValue, typeof CONTAINER_CONTEXT_KEY>(\n CONTAINER_CONTEXT_KEY\n);\n","type DefinableElement = CustomElementConstructor & { tagName: string };\n\n/** Define a custom element only if not already registered. */\nexport function safeDefine(element: DefinableElement): void {\n const registry = globalThis.customElements;\n if (!registry || registry.get(element.tagName)) return;\n\n registry.define(element.tagName, element);\n}\n"],"x_google_ignoreList":[3,4],"mappings":"AACA,SAAS,EAAqB,EAAO,EAAgB,CACpD,IAAK,IAAM,KAAQ,OAAO,oBAAoB,EAAe,CAAE,CAC9D,GAAI,KAAQ,EAAM,WAAa,EAAK,WAAW,IAAI,CAAE,SACrD,IAAM,EAAa,OAAO,yBAAyB,EAAgB,EAAK,CACxE,GAAI,CAAC,EAAY,SACjB,IAAM,EAAS,EAAE,CACb,OAAO,EAAW,OAAU,WAAY,EAAO,MAAQ,SAAS,GAAG,EAAM,CAC5E,OAAO,KAAK,OAAO,EAAM,GAAG,EAAK,EAEzB,EAAW,MACnB,EAAO,IAAM,UAAW,CACvB,OAAO,KAAK,MAAM,EAAK,EAEpB,EAAW,MAAK,EAAO,IAAM,SAAS,EAAK,CAC9C,KAAK,MAAM,EAAM,EAAI,IAGvB,OAAO,eAAe,EAAM,UAAW,EAAM,EAAO,ICLlC,EAAc,GAAG,IAAsB,CAC1D,MAAM,CAAW,CAChB,GAAU,KACV,IAAI,QAAS,CACZ,OAAO,MAAA,EAER,IAAI,EAAM,CACT,OAAO,KAAK,SAAS,GAEtB,IAAI,EAAM,EAAK,CACV,KAAK,SAAQ,KAAK,OAAO,GAAQ,GAEtC,KAAK,EAAM,GAAG,EAAM,CACnB,OAAQ,KAAK,SAAS,KAAQ,MAAM,KAAK,OAAQ,EAAK,CAEvD,OAAO,EAAQ,CACV,CAAC,GAAU,MAAA,IAAiB,IAChC,MAAA,EAAe,GAEhB,QAAS,CACH,AACL,MAAA,IAAe,KAEhB,iBAAiB,EAAM,EAAU,EAAS,CACzC,MAAA,GAAc,iBAAiB,EAAM,EAAU,EAAQ,CAExD,oBAAoB,EAAM,EAAU,EAAS,CAC5C,MAAA,GAAc,oBAAoB,EAAM,EAAU,EAAQ,CAE3D,cAAc,EAAO,CACpB,OAAO,MAAA,GAAc,cAAc,EAAM,EAAI,IAG/C,IAAK,IAAM,IAAS,CAAC,EAAc,GAAG,EAAkB,CAAE,EAAqB,EAAY,EAAM,UAAU,CAC3G,OAAO,IC7CsB,WAAW,kBAAoB,KAAM,GAAI,WAAW,kBAAoB,KAAM,GAAI,WAAW,aAAe,KAAM,GAAG;;;;;;ACGnJ,IAAM,EAAN,cAAgB,KAAK,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,CAAC,MAAM,kBAAkB,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,GAAG,CAAC;;;;;;ACApK,SAAS,EAAE,EAAE,CAAC,OAAO,ECgBrB,MAAa,EAAgBC,EAdK,OAAO,IAAI,kBAAkB,CAc8C,CAehG,EAAeA,EATK,OAAO,IAAI,iBAAiB,CAS4C,CAe5F,EAAmBA,EATK,OAAO,IAAI,qBAAqB,CAWpE,CClDD,SAAgB,EAAW,EAAiC,CAC1D,IAAM,EAAW,WAAW,eACxB,CAAC,GAAY,EAAS,IAAI,EAAQ,QAAQ,EAE9C,EAAS,OAAO,EAAQ,QAAS,EAAQ"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import{A as e,C as t,D as n,E as r,F as i,G as a,H as o,I as s,J as c,K as l,L as u,N as d,O as f,P as ee,S as p,T as te,U as ne,V as m,W as h,_ as re,a as g,b as ie,c as _,d as v,f as ae,g as oe,h as se,i as ce,l as y,m as le,n as b,p as ue,q as x,r as S,s as C,u as w,v as de,w as fe,x as T,y as E}from"./create-player-i0Q36S9_.js";import{a as D,i as O,t as k}from"./safe-define-t0AGOouq.js";function A(e,t){let n={...t};for(let t in e)c(e[t])||(n[t]=e[t]);return n}function j(e){let t=e.closest(`[dir]`)?.getAttribute(`dir`);return t?t.toLowerCase()===`rtl`:getComputedStyle(e).direction===`rtl`}var pe=`video-player{display:contents}video-player video,video-player [slot=poster]{width:100%;height:100%;display:block}video-player video::-webkit-media-text-track-container{transition:translate var(--media-caption-track-duration,0) ease-out;transition-delay:var(--media-caption-track-delay,0);translate:0 var(--media-caption-track-y,0);z-index:1;font-family:inherit;scale:.98}`,me=`media-tooltip-group{display:contents}:host{display:grid}.media-popover--volume:has(media-volume-slider[data-availability=unsupported]){display:none}`;const M=`__media-styles`;function he(){let e=globalThis.document;if(!e||e.getElementById(M))return;let t=e.createElement(`style`);t.id=M,t.textContent=pe,e.head.appendChild(t)}function ge(e){return globalThis.CSSStyleSheet!==void 0&&e instanceof globalThis.CSSStyleSheet}function _e(e){return typeof e==`string`?e:Array.from(e.cssRules).map(e=>e.cssText).join(`
|
|
2
|
-
`)}function ve(e,t){if(t.every(ge)&&`adoptedStyleSheets`in e){e.adoptedStyleSheets=t;return}let n=e.ownerDocument;for(let r of t.map(_e)){let t=n.createElement(`style`);t.textContent=r,e.appendChild(t)}}const ye=N(me);function be(e){class t extends e{static{this.shadowRootOptions={mode:`open`}}constructor(...e){if(super(...e),he(),!this.shadowRoot){let e=this.constructor;this.attachShadow(e.shadowRootOptions),e.getTemplateHTML&&(this.shadowRoot.innerHTML=e.getTemplateHTML());let t=[ye];e.styles&&t.push(e.styles),ve(this.shadowRoot,t)}}}return t}function N(e){if(globalThis.CSSStyleSheet===void 0)return e;let t=new globalThis.CSSStyleSheet;return t.replaceSync(e),t}k(ce);function P(e){return{transitionStarting:e===`starting`,transitionEnding:e===`ending`}}var xe=class{static defaultProps={open:!1,defaultOpen:!1};setProps(e){}#e=null;#t=void 0;#n=void 0;setInput(e){this.#e=e}setTitleId(e){this.#t=e}setDescriptionId(e){this.#n=e}getState(){let e=this.#e;return{open:e.active,status:e.status,titleId:this.#t,descriptionId:this.#n,...P(e.status)}}getAttrs(e){return{role:`alertdialog`,"aria-modal":`true`,"aria-labelledby":e.titleId,"aria-describedby":e.descriptionId}}};const F={open:`data-open`,transitionStarting:`data-starting-style`,transitionEnding:`data-ending-style`};var Se=class e{static defaultProps={delay:500};state=a({visible:!1});#e={...e.defaultProps};#t=null;setProps(t){this.#e=A(t,e.defaultProps)}destroy(){this.#n()}update(e){let t=e.waiting&&!e.paused;t&&!this.state.current.visible&&!this.#t?this.#t=setTimeout(()=>{this.#t=null,this.state.patch({visible:!0})},this.#e.delay):t||(this.#n(),this.state.patch({visible:!1}))}#n(){this.#t!==null&&(clearTimeout(this.#t),this.#t=null)}};const Ce={visible:`data-visible`};var we=class e{static defaultProps={label:``,disabled:!1};#e={...e.defaultProps};#t=null;constructor(e){e&&this.setProps(e)}setProps(t){this.#e=A(t,e.defaultProps)}getLabel(e){let{label:t}=this.#e;if(l(t)){let n=t(e);if(n)return n}else if(t)return t;return e.subtitlesShowing?`Disable captions`:`Enable captions`}getAttrs(e){return{"aria-label":this.getLabel(e),"aria-disabled":this.#e.disabled?`true`:void 0}}setMedia(e){this.#t=e}getState(){let e=this.#t;return{subtitlesShowing:e.subtitlesShowing,availability:e.textTrackList.some(e=>e.kind===`captions`||e.kind===`subtitles`)?`available`:`unavailable`}}toggle(e){this.#e.disabled||e.toggleSubtitles()}};const Te={subtitlesShowing:`data-active`,availability:`data-availability`};var Ee=class{#e=null;setMedia(e){this.#e=e}getState(){let e=this.#e;return{visible:e.controlsVisible,userActive:e.userActive}}};const De={visible:`data-visible`,userActive:`data-user-active`};var Oe=class extends xe{setProps(){}},ke=class e{static defaultProps={label:``,disabled:!1};#e={...e.defaultProps};#t=null;constructor(e){e&&this.setProps(e)}setProps(t){this.#e=A(t,e.defaultProps)}getLabel(e){let{label:t}=this.#e;if(l(t)){let n=t(e);if(n)return n}else if(t)return t;return e.fullscreen?`Exit fullscreen`:`Enter fullscreen`}getAttrs(e){return{"aria-label":this.getLabel(e),"aria-disabled":this.#e.disabled?`true`:void 0}}setMedia(e){this.#t=e}getState(){let e=this.#t;return{fullscreen:e.fullscreen,availability:e.fullscreenAvailability}}async toggle(e){if(!this.#e.disabled&&e.fullscreenAvailability===`available`)try{e.fullscreen?await e.exitFullscreen():await e.requestFullscreen()}catch{}}};const Ae={fullscreen:`data-fullscreen`,availability:`data-availability`};var je=class e{static defaultProps={label:``,disabled:!1};#e={...e.defaultProps};#t=null;constructor(e){e&&this.setProps(e)}setProps(t){this.#e=A(t,e.defaultProps)}getLabel(e){let{label:t}=this.#e;if(l(t)){let n=t(e);if(n)return n}else if(t)return t;return e.muted?`Unmute`:`Mute`}getAttrs(e){return{"aria-label":this.getLabel(e),"aria-disabled":this.#e.disabled?`true`:void 0}}setMedia(e){this.#t=e}getState(){let e=this.#t;return{muted:e.muted||e.volume===0,volumeLevel:Me(e)}}toggle(e){this.#e.disabled||e.toggleMuted()}};function Me(e){return e.muted||e.volume===0?`off`:e.volume<.5?`low`:e.volume<.75?`medium`:`high`}const Ne={muted:`data-muted`,volumeLevel:`data-volume-level`};var Pe=class e{static defaultProps={label:``,disabled:!1};#e={...e.defaultProps};#t=null;constructor(e){e&&this.setProps(e)}setProps(t){this.#e=A(t,e.defaultProps)}getLabel(e){let{label:t}=this.#e;if(l(t)){let n=t(e);if(n)return n}else if(t)return t;return e.pip?`Exit picture-in-picture`:`Enter picture-in-picture`}getAttrs(e){return{"aria-label":this.getLabel(e),"aria-disabled":this.#e.disabled?`true`:void 0}}setMedia(e){this.#t=e}getState(){let e=this.#t;return{pip:e.pip,availability:e.pipAvailability}}async toggle(e){if(!this.#e.disabled&&e.pipAvailability===`available`)try{e.pip?await e.exitPictureInPicture():await e.requestPictureInPicture()}catch{}}};const Fe={pip:`data-pip`,availability:`data-availability`};var Ie=class e{static defaultProps={label:``,disabled:!1};#e={...e.defaultProps};#t=null;constructor(e){e&&this.setProps(e)}setProps(t){this.#e=A(t,e.defaultProps)}getLabel(e){let{label:t}=this.#e;if(l(t)){let n=t(e);if(n)return n}else if(t)return t;return e.ended?`Replay`:e.paused?`Play`:`Pause`}getAttrs(e){return{"aria-label":this.getLabel(e),"aria-disabled":this.#e.disabled?`true`:void 0}}setMedia(e){this.#t=e}getState(){let e=this.#t;return{paused:e.paused,ended:e.ended,started:e.started}}async toggle(e){if(!this.#e.disabled){if(e.paused||e.ended)return e.play();e.pause()}}};const Le={paused:`data-paused`,ended:`data-ended`,started:`data-started`};var Re=class e{static defaultProps={label:``,disabled:!1};#e={...e.defaultProps};#t=null;constructor(e){e&&this.setProps(e)}setProps(t){this.#e=A(t,e.defaultProps)}getLabel(e){let{label:t}=this.#e;if(l(t)){let n=t(e);if(n)return n}else if(t)return t;return`Playback rate ${e.rate}`}getAttrs(e){return{"aria-label":this.getLabel(e),"aria-disabled":this.#e.disabled?`true`:void 0}}setMedia(e){this.#t=e}getState(){return{rate:this.#t.playbackRate}}cycle(e){if(this.#e.disabled)return;let{playbackRates:t,playbackRate:n}=e;if(t.length===0)return;let r=t.indexOf(n),i=r===-1?t.find(e=>e>n)??t[0]:t[(r+1)%t.length];e.setPlaybackRate(i)}};const ze={rate:`data-rate`};var I=class e{static defaultProps={side:`top`,align:`center`,modal:!1,closeOnEscape:!0,closeOnOutsideClick:!0,open:!1,defaultOpen:!1,openOnHover:!1,delay:300,closeDelay:0};#e={...e.defaultProps};constructor(e){e&&this.setProps(e)}setProps(t){this.#e=A(t,e.defaultProps)}#t=null;setInput(e){this.#t=e}getState(){let e=this.#t;return{open:e.active,status:e.status,side:this.#e.side,align:this.#e.align,modal:this.#e.modal,...P(e.status)}}getTriggerAttrs(e,t){return{"aria-expanded":e.open?`true`:`false`,"aria-haspopup":`dialog`,"aria-controls":t}}getPopupAttrs(e){return{popover:`manual`,role:`dialog`,"aria-modal":e.modal===!0?`true`:void 0}}};const Be={open:`data-open`,side:`data-side`,align:`data-align`,transitionStarting:`data-starting-style`,transitionEnding:`data-ending-style`};var Ve=class{#e=null;setMedia(e){this.#e=e}getState(){return{visible:!this.#e.started}}};const He={visible:`data-visible`};var Ue=class e{static defaultProps={seconds:30,label:``,disabled:!1};#e={...e.defaultProps};#t=null;constructor(e){e&&this.setProps(e)}setProps(t){this.#e=A(t,e.defaultProps)}getLabel(e){let{label:t}=this.#e;if(l(t)){let n=t(e);if(n)return n}else if(t)return t;let n=Math.abs(this.#e.seconds);return e.direction===`backward`?`Seek backward ${n} seconds`:`Seek forward ${n} seconds`}getAttrs(e){return{"aria-label":this.getLabel(e),"aria-disabled":this.#e.disabled?`true`:void 0}}setMedia(e){this.#t=e}getState(){return{seeking:this.#t.seeking,direction:this.#e.seconds<0?`backward`:`forward`}}async seek(e){this.#e.disabled||await e.seek(e.currentTime+this.#e.seconds)}};const We={seeking:`data-seeking`,direction:`data-direction`};var L=class e{static defaultProps={label:``,step:1,largeStep:10,orientation:`horizontal`,disabled:!1,thumbAlignment:`center`,value:0,min:0,max:100};static defaultInput={pointerPercent:0,dragPercent:0,dragging:!1,pointing:!1,focused:!1};#e={...e.defaultProps};#t={...e.defaultInput};get props(){return this.#e}get input(){return this.#t}constructor(e){e&&this.setProps(e)}setProps(t){this.#e=A(t,e.defaultProps)}setInput(e){this.#t=e}getSliderState(e){let{orientation:t,disabled:n,thumbAlignment:r}=this.#e,{pointerPercent:i,dragging:a,pointing:o,focused:s}=this.#t;return{value:e,fillPercent:this.percentFromValue(e),pointerPercent:i,dragging:a,pointing:o,interactive:a||o||s,orientation:t,disabled:n,thumbAlignment:r}}getLabel(e){let{label:t}=this.#e;if(l(t)){let n=t(e);if(n)return n}else if(t)return t;return``}getAttrs(e){return{role:`slider`,tabIndex:e.disabled?-1:0,autoComplete:`off`,"aria-label":this.getLabel(e),"aria-valuemin":this.#e.min,"aria-valuemax":this.#e.max,"aria-valuenow":e.value,"aria-orientation":e.orientation,"aria-disabled":e.disabled?`true`:void 0}}valueFromPercent(e){let{min:t,max:n,step:r}=this.#e;return ie(E(t+e/100*(n-t),t,n),r,t)}rawValueFromPercent(e){let{min:t,max:n}=this.#e;return E(t+e/100*(n-t),t,n)}percentFromValue(e){let{min:t,max:n}=this.#e;return n===t?0:(e-t)/(n-t)*100}getStepPercent(){let{step:e,min:t,max:n}=this.#e,r=n-t;return r>0?e/r*100:0}getLargeStepPercent(){let{largeStep:e,min:t,max:n}=this.#e,r=n-t;return r>0?e/r*100:0}adjustPercentForAlignment(e,t,n){if(this.#e.thumbAlignment===`center`||n===0)return e;let r=t/n*100/2,i=r,a=100-r;return i+e/100*(a-i)}};const Ge={dragging:`data-dragging`,pointing:`data-pointing`,interactive:`data-interactive`,orientation:`data-orientation`,disabled:`data-disabled`},Ke={loading:`data-loading`,error:`data-error`,hidden:`data-hidden`};function qe(e,t){let n=e.trim().split(`#`),r=n[0]??``,i=n[1],a=t?new URL(r,t).href:r;if(!i)return{url:a};let o=i.indexOf(`=`);if(o===-1)return{url:a};let s=i.slice(0,o),c=i.slice(o+1).split(`,`).map(Number),l={};for(let e=0;e<s.length;e++){let t=s[e],n=c[e];t&&x(n)&&!Number.isNaN(n)&&(l[t]=n)}let u={url:a};return x(l.w)&&(u.width=l.w),x(l.h)&&(u.height=l.h),x(l.x)&&x(l.y)&&(u.coords={x:l.x,y:l.y}),u}function Je(e,t){let n=[];for(let r of e){let e=qe(r.text,t),i={url:e.url,startTime:r.startTime,endTime:r.endTime};e.width&&(i.width=e.width),e.height&&(i.height=e.height),e.coords&&(i.coords=e.coords),n.push(i)}return n}const R=[{singular:`hour`,plural:`hours`},{singular:`minute`,plural:`minutes`},{singular:`second`,plural:`seconds`}];function z(e){return x(e)&&Number.isFinite(e)}function B(e,t){return`${e} ${e===1?R[t]?.singular:R[t]?.plural}`}function V(e,t){if(!z(e))return`0:00`;let n=e<0,r=Math.abs(e),i=Math.floor(r/3600),a=Math.floor(r/60%60),o=Math.floor(r%60),s=t?Math.abs(t):0,c=Math.floor(s/3600),l=Math.floor(s/60%60),u=i>0||c>0,d=u||l>=10,f=u?`${i}:`:``,ee=`${d&&a<10?`0`:``}${a}:`,p=o<10?`0${o}`:`${o}`;return`${n?`-`:``}${f}${ee}${p}`}function H(e){if(!z(e))return``;let t=e<0,n=Math.abs(e),r=Math.floor(n/3600),i=Math.floor(n/60%60),a=Math.floor(n%60);return n===0?`${B(0,2)}${t?` remaining`:``}`:`${[r,i,a].map((e,t)=>e>0?B(e,t):null).filter(Boolean).join(`, `)}${t?` remaining`:``}`}function Ye(e){if(!z(e))return`PT0S`;let t=Math.abs(e),n=Math.floor(t/3600),r=Math.floor(t/60%60),i=Math.floor(t%60),a=`PT`;return n>0&&(a+=`${n}H`),r>0&&(a+=`${r}M`),(i>0||a===`PT`)&&(a+=`${i}S`),a}const Xe={current:`Current time`,duration:`Duration`,remaining:`Remaining`};var U=class e{static defaultProps={type:`current`,negativeSign:`-`,label:``};#e={...e.defaultProps};#t=null;constructor(e){e&&this.setProps(e)}setProps(t){this.#e=A(t,e.defaultProps)}setMedia(e){this.#t=e}#n(){let e=this.#t,{type:t}=this.#e;switch(t){case`current`:return e.currentTime;case`duration`:return e.duration;case`remaining`:return e.currentTime-e.duration;default:return 0}}#r(){let e=this.#t,t=this.#n();return V(Math.abs(t),e.duration)}#i(){let{type:e}=this.#e,t=this.#n();return H(e===`remaining`?t<0?t:-Math.abs(t):t)}#a(){let e=this.#n();return Ye(Math.abs(e))}getLabel(e){let{label:t}=this.#e;if(l(t)){let n=t(e);if(n)return n}else if(t)return t;return Xe[this.#e.type]}getAttrs(e){return{"aria-label":this.getLabel(e),"aria-valuetext":e.phrase}}getState(){let e=this.#n();return{type:this.#e.type,seconds:e,negative:this.#e.type===`remaining`&&e<0,text:this.#r(),phrase:this.#i(),datetime:this.#a()}}};const Ze={type:`data-type`};var W=class e extends L{static defaultProps={...L.defaultProps,label:`Seek`,commitThrottle:100};#e={...e.defaultProps};#t=null;constructor(e){super(),e&&this.setProps(e)}setProps(t){this.#e=A(t,e.defaultProps),super.setProps({...t,min:0})}setMedia(e){this.#t=e}getState(){let{duration:e,currentTime:t,seeking:n,buffered:r}=this.#t,{dragging:i,dragPercent:a}=this.input;super.setProps({...this.#e,min:0,max:e});let o=i?E(a/100*e,0,e):t,s=super.getSliderState(o),c=r.length>0?r[r.length-1][1]:0,l=e>0?c/e*100:0;return{...s,currentTime:t,duration:e,seeking:n,bufferPercent:l}}getLabel(e){return super.getLabel(e)||`Seek`}getAttrs(e){let t=super.getAttrs(e),n=H(e.value),r=H(e.duration),i=r?`${n} of ${r}`:n;return{...t,"aria-valuetext":i}}};const G={...Ge,seeking:`data-seeking`};var K=class e{static defaultProps={side:`top`,align:`center`,open:!1,defaultOpen:!1,delay:600,closeDelay:0,disableHoverablePopup:!0,disabled:!1};#e={...e.defaultProps};constructor(e){e&&this.setProps(e)}setProps(t){this.#e=A(t,e.defaultProps)}#t=null;setInput(e){this.#t=e}getState(){let e=this.#t;return{open:e.active,status:e.status,side:this.#e.side,align:this.#e.align,...P(e.status)}}getTriggerAttrs(e,t){return{"aria-describedby":e.open?t:void 0}}getPopupAttrs(e){return{popover:`manual`,role:`tooltip`}}};const q={sideOffset:`--media-tooltip-side-offset`,alignOffset:`--media-tooltip-align-offset`,anchorWidth:`--media-tooltip-anchor-width`,anchorHeight:`--media-tooltip-anchor-height`,availableWidth:`--media-tooltip-available-width`,availableHeight:`--media-tooltip-available-height`},Qe={open:`data-open`,side:`data-side`,align:`data-align`,transitionStarting:`data-starting-style`,transitionEnding:`data-ending-style`};var J=class e{static defaultProps={delay:600,closeDelay:0,timeout:400};#e={...e.defaultProps};#t=0;#n=!1;constructor(e){e&&this.setProps(e)}setProps(t){this.#e=A(t,e.defaultProps)}get delay(){return this.#e.delay}get closeDelay(){return this.#e.closeDelay}shouldSkipDelay(){return this.#n?!0:Date.now()-this.#t<this.#e.timeout}notifyOpen(){this.#n=!0}notifyClose(){this.#n=!1,this.#t=Date.now()}},Y=class e extends L{static defaultProps={...L.defaultProps,label:`Volume`};#e=null;constructor(e){super(),e&&this.setProps(e)}setProps(t){super.setProps(A(t,e.defaultProps))}setMedia(e){this.#e=e}getState(){let e=this.#e,{volume:t,muted:n}=e,r=n||t===0,{dragging:i,dragPercent:a}=this.input,o=t*100,s=i?this.valueFromPercent(a):o,c=super.getSliderState(s);return{...c,fillPercent:r?0:c.fillPercent,volume:t,muted:r,availability:e.volumeAvailability}}getLabel(e){return super.getLabel(e)||`Volume`}getAttrs(e){let t=super.getAttrs(e),n=`${Math.round(e.value)} percent${e.muted?`, muted`:``}`;return{...t,"aria-valuetext":n}}};const $e={...Ge,availability:`data-availability`};var X=class extends g{constructor(...e){super(...e),this.disabled=!1,this.label=``}static{this.properties={label:{type:String},disabled:{type:Boolean}}}#e=null;connectedCallback(){super.connectedCallback(),this.#e=new AbortController;let e=r({onActivate:()=>this.activate(this.mediaState.value),isDisabled:()=>this.disabled||!this.mediaState.value});w(this,e,{signal:this.#e.signal})}disconnectedCallback(){super.disconnectedCallback(),this.#e?.abort(),this.#e=null}willUpdate(e){super.willUpdate(e),this.core.setProps?.(this)}update(e){super.update(e);let t=this.mediaState.value;if(!t)return;this.core.setMedia(t);let n=this.core.getState();w(this,this.core.getAttrs?.(n)??{}),y(this,n,this.stateAttrMap)}};const Z=D(Symbol(`@videojs/alert-dialog`));var et=class extends g{constructor(...e){super(...e),this.disabled=!1}static{this.tagName=`media-alert-dialog-close`}static{this.properties={disabled:{type:Boolean}}}#e=new _(this,{context:Z,subscribe:!0});#t=null;connectedCallback(){super.connectedCallback(),this.#t=new AbortController;let e=r({onActivate:()=>this.#e.value?.close(),isDisabled:()=>this.disabled});w(this,e,{signal:this.#t.signal})}disconnectedCallback(){super.disconnectedCallback(),this.#t?.abort(),this.#t=null}update(e){super.update(e);let t=this.#e.value;t&&y(this,t.state,t.stateAttrMap)}},Q=class extends g{update(e){super.update(e);let t=this.consumer.value;t&&y(this,t.state,t.stateAttrMap)}},tt=class extends Q{constructor(...e){super(...e),this.consumer=new _(this,{context:Z,subscribe:!0})}static{this.tagName=`media-alert-dialog-description`}update(e){super.update(e);let t=this.consumer.value?.state.descriptionId;t&&(this.id=t)}},nt=class extends Q{constructor(...e){super(...e),this.consumer=new _(this,{context:Z,subscribe:!0})}static{this.tagName=`media-alert-dialog-title`}update(e){super.update(e);let t=this.consumer.value?.state.titleId;t&&(this.id=t)}};let rt=0;k(class extends g{static{this.tagName=`media-error-dialog`}#e=new Oe;#t=new C(this,{context:Z});#n=`vjs-error-dialog-title-${rt++}`;#r=`vjs-error-dialog-desc-${rt++}`;#i=new b(this,O,e);#a=null;#o=null;#s=null;constructor(){super(),this.#e.setTitleId(this.#n),this.#e.setDescriptionId(this.#r)}connectedCallback(){super.connectedCallback(),this.#a=n({transition:v(),onOpenChange:e=>{e||this.#i.value?.dismissError()}}),this.#a.setElement(this),this.#o?this.#o.track(this.#a.input):this.#o=new S(this,this.#a.input)}disconnectedCallback(){super.disconnectedCallback(),this.#a?.destroy(),this.#a=null}willUpdate(e){if(super.willUpdate(e),!this.#a)return;let t=this.#i.value,n=!!t?.error,{active:r}=this.#a.input.current;t?.error&&(this.#s=t.error.message?.trim()||null);let i=this.querySelector(`media-alert-dialog-description`);i&&(i.textContent=this.#s??`An error occurred. Please try again.`),n&&!r?this.#a.open():!n&&r&&this.#a.close()}update(e){if(super.update(e),!this.#a)return;let t=this.#a.input.current;this.#e.setInput(t);let n=this.#e.getState();w(this,this.#e.getAttrs(n)),y(this,n,F),this.#t.setValue({state:n,stateAttrMap:F,close:()=>this.#a?.close()})}}),k(et),k(tt),k(nt),k(class extends X{constructor(...e){super(...e),this.core=new je,this.stateAttrMap=Ne,this.mediaState=new b(this,O,u)}static{this.tagName=`media-mute-button`}activate(e){this.core.toggle(e)}}),k(class extends X{constructor(...e){super(...e),this.core=new Ie,this.stateAttrMap=Le,this.mediaState=new b(this,O,d)}static{this.tagName=`media-play-button`}activate(e){this.core.toggle(e)}}),k(class extends X{constructor(...e){super(...e),this.core=new Re,this.stateAttrMap=ze,this.mediaState=new b(this,O,ee)}static{this.tagName=`media-playback-rate-button`}activate(e){this.core.cycle(e)}}),k(class extends g{constructor(...e){super(...e),this.open=I.defaultProps.open,this.defaultOpen=I.defaultProps.defaultOpen,this.side=I.defaultProps.side,this.align=I.defaultProps.align,this.modal=I.defaultProps.modal,this.closeOnEscape=I.defaultProps.closeOnEscape,this.closeOnOutsideClick=I.defaultProps.closeOnOutsideClick,this.openOnHover=I.defaultProps.openOnHover,this.delay=I.defaultProps.delay,this.closeDelay=I.defaultProps.closeDelay}static{this.tagName=`media-popover`}static{this.properties={open:{type:Boolean},defaultOpen:{type:Boolean,attribute:`default-open`},side:{type:String},align:{type:String},modal:{type:Boolean},closeOnEscape:{type:Boolean,attribute:`close-on-escape`},closeOnOutsideClick:{type:Boolean,attribute:`close-on-outside-click`},openOnHover:{type:Boolean,attribute:`open-on-hover`},delay:{type:Number},closeDelay:{type:Number,attribute:`close-delay`}}}#e=new I;#t=null;#n=null;#r=null;#i=null;#a=null;#o=null;#s=0;#c=null;#l=null;connectedCallback(){super.connectedCallback(),!this.destroyed&&(this.#r=new AbortController,this.#t=te({transition:v(),onOpenChange:(e,t)=>{this.open=e,this.dispatchEvent(new CustomEvent(`open-change`,{detail:{open:e,...t}}))},closeOnEscape:()=>this.closeOnEscape,closeOnOutsideClick:()=>this.closeOnOutsideClick,openOnHover:()=>this.openOnHover,delay:()=>this.delay,closeDelay:()=>this.closeDelay}),this.#t.setPopupElement(this),w(this,this.#t.popupProps,{signal:this.#r.signal}),this.#n?this.#n.track(this.#t.input):this.#n=new S(this,this.#t.input))}firstUpdated(e){super.firstUpdated(e),this.defaultOpen&&!this.open&&this.#t?.open()}disconnectedCallback(){super.disconnectedCallback(),this.#m(),this.#r?.abort(),this.#r=null}destroyCallback(){this.#m(),this.#f(),this.#t?.destroy(),super.destroyCallback()}willUpdate(e){if(super.willUpdate(e),this.#e.setProps(this),this.#t&&e.has(`open`)){let{active:e}=this.#t.input.current;this.open!==e&&(this.open?this.#t.open():this.#t.close())}}update(e){if(super.update(e),!this.#t)return;let n=this.#u();this.#d(n);let r=this.#t.input.current;this.#e.setInput(r);let i=this.#e.getState();if(w(this,this.#e.getPopupAttrs(i)),y(this,i,Be),i.open?ne(this):o(this),this.#a&&(w(this.#a,this.#e.getTriggerAttrs(i,this.id)),m(this.#a,T(this.id))),!i.open){this.#m();return}let a={side:i.side,align:i.align};if(h())m(this,p(this.id,a));else{let e=this.#a?.getBoundingClientRect(),n=t(this),r=document.documentElement.getBoundingClientRect(),i=fe(this);m(this,p(this.id,a,e,n,r,i))}this.#p()}#u(){return this.id?this.getRootNode().querySelector(`[commandfor="${this.id}"]`):null}#d(e){e!==this.#a&&(this.#m(),this.#f(),this.#a=e,this.#t?.setTriggerElement(e),e&&this.#t&&(this.#i=new AbortController,w(e,this.#t.triggerProps,{signal:this.#i.signal})))}#f(){this.#a&&(w(this.#a,{"aria-expanded":void 0,"aria-haspopup":void 0,"aria-controls":void 0}),this.#a.style.removeProperty(`anchor-name`)),this.#i?.abort(),this.#i=null,this.#a=null}#p(){if(h())return;let e=this.#a;if(!e||this.#o&&this.#l===e)return;this.#m(),this.#o=new AbortController,this.#l=e;let{signal:t}=this.#o,n=()=>{cancelAnimationFrame(this.#s),this.#s=requestAnimationFrame(()=>{t.aborted||this.requestUpdate()})};window.addEventListener(`scroll`,n,{capture:!0,passive:!0,signal:t}),window.addEventListener(`resize`,n,{signal:t}),typeof ResizeObserver==`function`&&(this.#c=new ResizeObserver(()=>{n()}),this.#c.observe(e),this.#c.observe(this)),n()}#m(){this.#o?.abort(),this.#o=null,this.#l=null,cancelAnimationFrame(this.#s),this.#s=0,this.#c?.disconnect(),this.#c=null}}),k(class extends X{constructor(...e){super(...e),this.seconds=Ue.defaultProps.seconds,this.core=new Ue,this.stateAttrMap=We,this.mediaState=new b(this,O,s)}static{this.tagName=`media-seek-button`}static{this.properties={...X.properties,seconds:{type:Number}}}activate(e){this.core.seek(e)}});var it=class extends g{static{this.tagName=`media-time`}static{this.properties={type:{type:String},negativeSign:{type:String,attribute:`negative-sign`},label:{type:String}}}#e=new U;#t=new b(this,O,s);#n=document.createElement(`span`);#r=document.createTextNode(``);constructor(){super(),this.type=U.defaultProps.type,this.negativeSign=U.defaultProps.negativeSign,this.label=U.defaultProps.label,this.#n.setAttribute(`aria-hidden`,`true`),this.#n.hidden=!0,this.appendChild(this.#n),this.appendChild(this.#r)}connectedCallback(){super.connectedCallback()}willUpdate(e){super.willUpdate(e),this.#e.setProps(this)}update(e){super.update(e);let t=this.#t.value;if(!t)return;this.#e.setMedia(t);let n=this.#e.getState();this.#n.hidden=!n.negative,this.#n.textContent=n.negative?this.negativeSign:``,this.#r.textContent=n.text,w(this,this.#e.getAttrs(n)),y(this,n,Ze)}},at=class extends g{static{this.tagName=`media-time-group`}},ot=class extends g{static{this.tagName=`media-time-separator`}connectedCallback(){super.connectedCallback(),this.setAttribute(`aria-hidden`,`true`),this.textContent?.trim()||(this.textContent=`/`)}};k(it),k(at),k(ot);const $=D(Symbol(`@videojs/slider`));var st=class extends Q{constructor(...e){super(...e),this.consumer=new _(this,{context:$,subscribe:!0})}static{this.tagName=`media-slider-buffer`}},ct=class extends Q{constructor(...e){super(...e),this.consumer=new _(this,{context:$,subscribe:!0})}static{this.tagName=`media-slider-fill`}},lt=class extends g{constructor(...e){super(...e),this.overflow=`clamp`}static{this.tagName=`media-slider-preview`}static{this.properties={overflow:{type:String}}}#e=new _(this,{context:$,subscribe:!0});#t=null;#n=0;connectedCallback(){super.connectedCallback(),this.#t=new ResizeObserver(([e])=>{this.#n=e.contentRect.width,this.#r()}),this.#t.observe(this)}disconnectedCallback(){super.disconnectedCallback(),this.#t?.disconnect(),this.#t=null}#r(){m(this,oe(this.#n,this.overflow))}update(e){super.update(e);let t=this.#e.value;t&&y(this,t.state,t.stateAttrMap),this.#r()}},ut=class extends g{static{this.tagName=`media-slider-thumb`}#e=new _(this,{context:$,subscribe:!0});#t=null;#n=!1;connectedCallback(){super.connectedCallback(),this.#t=new AbortController,this.#n=!1}disconnectedCallback(){super.disconnectedCallback(),this.#t?.abort(),this.#t=null,this.#n=!1}update(e){super.update(e);let t=this.#e.value;t&&(!this.#n&&this.#t&&(w(this,t.thumbProps,{signal:this.#t.signal}),this.#n=!0),w(this,t.thumbAttrs),y(this,t.state,t.stateAttrMap))}},dt=class extends g{static{this.tagName=`media-thumbnail`}static{this.properties={time:{type:Number},crossOrigin:{type:String,attribute:`crossorigin`},loading:{type:String},fetchPriority:{type:String,attribute:`fetchpriority`}}}#e=new le;#t=document.createElement(`img`);#n=new b(this,O,i);#r=[];#i;#a;#o=null;constructor(){super(),this.time=0;let e=this.attachShadow({mode:`open`}),t=document.createElement(`style`);t.textContent=`:host {
|
|
3
|
-
display: inline-block;
|
|
4
|
-
overflow: hidden;
|
|
5
|
-
}
|
|
6
|
-
img {
|
|
7
|
-
display: block;
|
|
8
|
-
}`,e.appendChild(t),this.#t.alt=``,this.#t.setAttribute(`part`,`img`),this.#t.setAttribute(`aria-hidden`,`true`),this.#t.setAttribute(`decoding`,`async`),e.appendChild(this.#t)}get thumbnails(){return this.#i}set thumbnails(e){this.#i=e,this.requestUpdate()}connectedCallback(){super.connectedCallback(),!this.destroyed&&(this.#o=ue({getContainer:()=>this,getImg:()=>this.#t,onStateChange:()=>this.requestUpdate()}))}disconnectedCallback(){super.disconnectedCallback()}destroyCallback(){this.#o?.destroy(),super.destroyCallback()}update(e){if(super.update(e),this.#i)this.#r=this.#i;else{let e=this.#n.value;e!==this.#a&&(this.#a=e,this.#r=e&&e.thumbnailCues.length>0?Je(e.thumbnailCues,e.thumbnailTrackSrc??void 0):[])}let t=this.#e.findActiveThumbnail(this.#r,this.time);if(w(this.#t,{crossorigin:this.crossOrigin||void 0,loading:this.loading,fetchpriority:this.fetchPriority}),this.#o?.updateSrc(t?.url),!t){this.#t.removeAttribute(`src`),this.#c();let e=this.#e.getState(!1,!1,void 0);w(this,this.#e.getAttrs(e)),y(this,e,Ke);return}this.#t.getAttribute(`src`)!==t.url&&(this.#t.src=t.url);let n=this.#o,r=this.#e.getState(n?.loading??!1,n?.error??!1,t);if(w(this,this.#e.getAttrs(r)),y(this,r,Ke),n?.naturalWidth&&n.naturalHeight){let e=n.readConstraints(),r=this.#e.resize(t,n.naturalWidth,n.naturalHeight,e);r&&this.#s(r)}}#s(e){this.style.width=`${e.containerWidth}px`,this.style.height=`${e.containerHeight}px`;let t=this.#t.style;t.width=`${e.imageWidth}px`,t.height=`${e.imageHeight}px`,t.maxWidth=`none`,t.transform=e.offsetX||e.offsetY?`translate(-${e.offsetX}px, -${e.offsetY}px)`:``}#c(){this.style.width=``,this.style.height=``;let e=this.#t.style;e.width=``,e.height=``,e.maxWidth=``,e.transform=``}},ft=class extends dt{static{this.tagName=`media-slider-thumbnail`}#e=new _(this,{context:$,subscribe:!0});update(e){let t=this.#e.value;t&&(this.time=t.pointerValue),super.update(e)}},pt=class extends Q{constructor(...e){super(...e),this.consumer=new _(this,{context:$,subscribe:!0})}static{this.tagName=`media-slider-track`}},mt=class extends g{constructor(...e){super(...e),this.type=`current`}static{this.tagName=`media-slider-value`}static{this.properties={type:{type:String}}}#e=new _(this,{context:$,subscribe:!0});connectedCallback(){super.connectedCallback(),this.setAttribute(`aria-live`,`off`)}update(e){super.update(e);let t=this.#e.value;if(!t)return;let n=this.type===`pointer`?t.pointerValue:t.state.value;this.textContent=t.formatValue?t.formatValue(n,this.type):String(Math.round(n)),y(this,t.state,t.stateAttrMap)}};k(class extends g{constructor(...e){super(...e),this.label=W.defaultProps.label,this.commitThrottle=W.defaultProps.commitThrottle,this.step=W.defaultProps.step,this.largeStep=W.defaultProps.largeStep,this.orientation=W.defaultProps.orientation,this.disabled=W.defaultProps.disabled,this.thumbAlignment=W.defaultProps.thumbAlignment}static{this.tagName=`media-time-slider`}static{this.properties={label:{type:String},commitThrottle:{type:Number,attribute:`commit-throttle`},step:{type:Number},largeStep:{type:Number,attribute:`large-step`},orientation:{type:String},disabled:{type:Boolean},thumbAlignment:{type:String,attribute:`thumb-alignment`}}}#e=new W;#t=new C(this,{context:$});#n=new b(this,O,s);#r=new b(this,O,f);#i=null;#a=null;connectedCallback(){if(super.connectedCallback(),this.destroyed)return;this.#a=new AbortController;let e=this.#a.signal;this.#i=de({getElement:()=>this,getThumbElement:()=>this.querySelector(`media-slider-thumb`),getOrientation:()=>this.orientation,isRTL:()=>j(this),isDisabled:()=>this.disabled||!this.#n.value,getPercent:()=>{let e=this.#n.value;return e?this.#e.percentFromValue(e.currentTime):0},getStepPercent:()=>this.#e.getStepPercent(),getLargeStepPercent:()=>this.#e.getLargeStepPercent(),onValueCommit:e=>{let t=this.#n.value;t&&t.seek(this.#e.rawValueFromPercent(e))},commitThrottle:this.commitThrottle,onDragStart:()=>{this.dispatchEvent(new CustomEvent(`drag-start`,{bubbles:!0}))},onDragEnd:()=>{this.dispatchEvent(new CustomEvent(`drag-end`,{bubbles:!0}))},adjustPercent:(e,t,n)=>this.#e.adjustPercentForAlignment(e,t,n),onResize:()=>this.requestUpdate()}),w(this,this.#i.rootProps,{signal:e}),m(this,this.#i.rootStyle),this.#i.input.subscribe(()=>this.requestUpdate(),{signal:e})}disconnectedCallback(){super.disconnectedCallback(),this.#a?.abort(),this.#a=null}destroyCallback(){this.#i?.destroy(),super.destroyCallback()}willUpdate(e){super.willUpdate(e),this.#e.setProps(this)}update(e){if(super.update(e),!this.#i)return;let t=this.#n.value,n=this.#r.value;if(!t)return;this.#e.setInput(this.#i.input.current);let r={...t,...n??{buffered:[],seekable:[]}};this.#e.setMedia(r);let i=this.#e.getState(),a=re(this.#i.adjustForAlignment(i));m(this,a),y(this,i,G),this.#t.setValue({state:i,stateAttrMap:G,pointerValue:this.#e.valueFromPercent(i.pointerPercent),thumbAttrs:this.#e.getAttrs(i),thumbProps:this.#i.thumbProps,formatValue:e=>V(e,i.duration)})}}),k(st),k(ct),k(lt),k(ut),k(ft),k(pt),k(mt);const ht=D(Symbol(`@videojs/tooltip-group`));k(class extends g{constructor(...e){super(...e),this.open=K.defaultProps.open,this.defaultOpen=K.defaultProps.defaultOpen,this.side=K.defaultProps.side,this.align=K.defaultProps.align,this.delay=K.defaultProps.delay,this.closeDelay=K.defaultProps.closeDelay,this.disableHoverablePopup=K.defaultProps.disableHoverablePopup,this.disabled=K.defaultProps.disabled}static{this.tagName=`media-tooltip`}static{this.properties={open:{type:Boolean},defaultOpen:{type:Boolean,attribute:`default-open`},side:{type:String},align:{type:String},delay:{type:Number},closeDelay:{type:Number,attribute:`close-delay`},disableHoverablePopup:{type:Boolean,attribute:`disable-hoverable-popup`},disabled:{type:Boolean}}}#e=new K;#t=new _(this,{context:ht});#n=null;#r=null;#i=null;#a=null;#o=null;#s=null;#c=0;#l=null;#u=null;connectedCallback(){super.connectedCallback(),this.#i=new AbortController,this.#n=ae({transition:v(),onOpenChange:(e,t)=>{this.open=e,this.dispatchEvent(new CustomEvent(`open-change`,{detail:{open:e,...t}}))},delay:()=>this.delay,closeDelay:()=>this.closeDelay,disableHoverablePopup:()=>this.disableHoverablePopup,disabled:()=>this.disabled,group:()=>this.#t.value}),this.#n.setPopupElement(this),w(this,this.#n.popupProps,{signal:this.#i.signal}),this.#r?this.#r.track(this.#n.input):this.#r=new S(this,this.#n.input)}firstUpdated(e){super.firstUpdated(e),this.defaultOpen&&!this.open&&this.#n?.open()}disconnectedCallback(){super.disconnectedCallback(),this.#h(),this.#p(),this.#n?.destroy(),this.#n=null,this.#i?.abort(),this.#i=null}willUpdate(e){if(super.willUpdate(e),this.#e.setProps(this),this.#n&&e.has(`open`)){let{active:e}=this.#n.input.current;this.open!==e&&(this.open?this.#n.open():this.#n.close())}}update(e){if(super.update(e),!this.#n)return;let n=this.#d();this.#f(n);let r=this.#n.input.current;this.#e.setInput(r);let i=this.#e.getState();if(w(this,this.#e.getPopupAttrs(i)),y(this,i,Qe),i.open?ne(this):o(this),this.#o&&(w(this.#o,this.#e.getTriggerAttrs(i,this.id)),m(this.#o,T(this.id))),!i.open){this.#h();return}let a={side:i.side,align:i.align};if(h())m(this,p(this.id,a,void 0,void 0,void 0,void 0,q));else{let e=this.#o?.getBoundingClientRect(),n=t(this),r=document.documentElement.getBoundingClientRect(),i=fe(this,q);m(this,p(this.id,a,e,n,r,i,q))}this.#m()}#d(){return this.id?this.getRootNode().querySelector(`[commandfor="${this.id}"]`):null}#f(e){e!==this.#o&&(this.#h(),this.#p(),this.#o=e,this.#n?.setTriggerElement(e),e&&this.#n&&(this.#a=new AbortController,w(e,this.#n.triggerProps,{signal:this.#a.signal})))}#p(){this.#o&&(w(this.#o,{"aria-describedby":void 0}),this.#o.style.removeProperty(`anchor-name`)),this.#a?.abort(),this.#a=null,this.#o=null}#m(){if(h())return;let e=this.#o;if(!e||this.#s&&this.#u===e)return;this.#h(),this.#s=new AbortController,this.#u=e;let{signal:t}=this.#s,n=()=>{cancelAnimationFrame(this.#c),this.#c=requestAnimationFrame(()=>{t.aborted||this.requestUpdate()})};window.addEventListener(`scroll`,n,{capture:!0,passive:!0,signal:t}),window.addEventListener(`resize`,n,{signal:t}),typeof ResizeObserver==`function`&&(this.#l=new ResizeObserver(()=>{n()}),this.#l.observe(e),this.#l.observe(this)),n()}#h(){this.#s?.abort(),this.#s=null,this.#u=null,cancelAnimationFrame(this.#c),this.#c=0,this.#l?.disconnect(),this.#l=null}}),k(class extends g{constructor(...e){super(...e),this.delay=J.defaultProps.delay,this.closeDelay=J.defaultProps.closeDelay,this.timeout=J.defaultProps.timeout}static{this.tagName=`media-tooltip-group`}static{this.properties={delay:{type:Number},closeDelay:{type:Number,attribute:`close-delay`},timeout:{type:Number}}}#e=new J;#t=new C(this,{context:ht,initialValue:this.#e});update(e){super.update(e),this.#e.setProps(this),this.#t.setValue(this.#e)}}),k(class extends g{constructor(...e){super(...e),this.label=Y.defaultProps.label,this.step=Y.defaultProps.step,this.largeStep=Y.defaultProps.largeStep,this.orientation=Y.defaultProps.orientation,this.disabled=Y.defaultProps.disabled,this.thumbAlignment=Y.defaultProps.thumbAlignment}static{this.tagName=`media-volume-slider`}static{this.properties={label:{type:String},step:{type:Number},largeStep:{type:Number,attribute:`large-step`},orientation:{type:String},disabled:{type:Boolean},thumbAlignment:{type:String,attribute:`thumb-alignment`}}}#e=new Y;#t=new C(this,{context:$});#n=new b(this,O,u);#r=null;#i=null;connectedCallback(){if(super.connectedCallback(),this.destroyed)return;this.#i=new AbortController;let e=this.#i.signal;this.#r=de({getElement:()=>this,getThumbElement:()=>this.querySelector(`media-slider-thumb`),getOrientation:()=>this.orientation,isRTL:()=>j(this),isDisabled:()=>this.disabled||!this.#n.value,getPercent:()=>{let e=this.#n.value;return e?e.volume*100:0},getStepPercent:()=>this.#e.getStepPercent(),getLargeStepPercent:()=>this.#e.getLargeStepPercent(),onValueChange:e=>{this.#a(e)},onValueCommit:e=>{this.#a(e)},onDragStart:()=>{this.dispatchEvent(new CustomEvent(`drag-start`,{bubbles:!0}))},onDragEnd:()=>{this.dispatchEvent(new CustomEvent(`drag-end`,{bubbles:!0}))},adjustPercent:(e,t,n)=>this.#e.adjustPercentForAlignment(e,t,n),onResize:()=>this.requestUpdate()}),w(this,this.#r.rootProps,{signal:e}),m(this,this.#r.rootStyle),this.#r.input.subscribe(()=>this.requestUpdate(),{signal:e})}disconnectedCallback(){super.disconnectedCallback(),this.#i?.abort(),this.#i=null}destroyCallback(){this.#r?.destroy(),super.destroyCallback()}willUpdate(e){super.willUpdate(e),this.#e.setProps(this)}update(e){if(super.update(e),!this.#r)return;let t=this.#n.value;if(!t)return;this.#e.setInput(this.#r.input.current),this.#e.setMedia(t);let n=this.#e.getState(),r=se(this.#r.adjustForAlignment(n));m(this,r),y(this,n,$e),this.#t.setValue({state:n,stateAttrMap:$e,pointerValue:this.#e.valueFromPercent(n.pointerPercent),thumbAttrs:this.#e.getAttrs(n),thumbProps:this.#r.thumbProps,formatValue:e=>`${Math.round(e)}%`})}#a(e){this.#n.value?.setVolume(this.#e.valueFromPercent(e)/100)}}),k(ct),k(lt),k(ut),k(pt),k(mt);export{Fe as a,ke as c,Te as d,we as f,N as g,be as h,Ve as i,De as l,Se as m,X as n,Pe as o,Ce as p,He as r,Ae as s,Q as t,Ee as u};
|
|
9
|
-
//# sourceMappingURL=volume-slider-C7rEWi11.js.map
|