@videojs/html 10.0.0-beta.11 → 10.0.0-beta.12
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-C7q_G_dT.js +2 -0
- package/cdn/abort-C7q_G_dT.js.map +1 -0
- package/cdn/abort-JT-ewLFq.js +22 -0
- package/cdn/abort-JT-ewLFq.js.map +1 -0
- package/cdn/audio-minimal.dev.js +23 -12
- 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.dev.js +72 -57
- 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 +3 -4
- package/cdn/background.dev.js.map +1 -1
- package/cdn/background.js +1 -1
- package/cdn/background.js.map +1 -1
- package/cdn/{create-player-AcfnN3li.js → create-player-BoPlCSNw.js} +103 -19
- package/cdn/create-player-BoPlCSNw.js.map +1 -0
- package/cdn/create-player-CA3KLZMe.js +7 -0
- package/cdn/create-player-CA3KLZMe.js.map +1 -0
- package/cdn/{default-cLso8BHO.js → default-CKnlVEjQ.js} +1 -1
- package/cdn/{default-cLso8BHO.js.map → default-CKnlVEjQ.js.map} +1 -1
- package/cdn/{default-GgKND7a8.js → default-CnBlD9BM.js} +1 -1
- package/cdn/{default-GgKND7a8.js.map → default-CnBlD9BM.js.map} +1 -1
- package/cdn/{delegate-CzAcT1xm.js → delegate-CSc5c0ZR.js} +16 -3
- package/cdn/delegate-CSc5c0ZR.js.map +1 -0
- package/cdn/delegate-jczJeizF.js +2 -0
- package/cdn/delegate-jczJeizF.js.map +1 -0
- package/cdn/hls-C6htsSW4.js +28661 -0
- package/cdn/hls-C6htsSW4.js.map +1 -0
- package/cdn/hls-DQ4glyHe.js +41 -0
- package/cdn/hls-DQ4glyHe.js.map +1 -0
- package/cdn/{listen-YSH3Jfyk.js → listen-BkAEGXCe.js} +1 -1
- package/cdn/{listen-YSH3Jfyk.js.map → listen-BkAEGXCe.js.map} +1 -1
- package/cdn/{listen-4jqsRSKo.js → listen-UqQNdlqV.js} +1 -1
- package/cdn/{listen-4jqsRSKo.js.map → listen-UqQNdlqV.js.map} +1 -1
- package/cdn/media/dash-video.dev.js +10 -17
- package/cdn/media/dash-video.dev.js.map +1 -1
- package/cdn/media/dash-video.js +3 -3
- package/cdn/media/dash-video.js.map +1 -1
- package/cdn/media/hls-video.dev.js +5 -28336
- package/cdn/media/hls-video.dev.js.map +1 -1
- package/cdn/media/hls-video.js +1 -40
- package/cdn/media/hls-video.js.map +1 -1
- package/cdn/media/mux-video.dev.d.ts +1 -0
- package/cdn/media/mux-video.dev.js +3122 -0
- package/cdn/media/mux-video.dev.js.map +1 -0
- package/cdn/media/mux-video.js +25 -0
- package/cdn/media/mux-video.js.map +1 -0
- package/cdn/media/simple-hls-video.dev.js +2286 -2094
- package/cdn/media/simple-hls-video.dev.js.map +1 -1
- package/cdn/media/simple-hls-video.js +58 -1
- package/cdn/media/simple-hls-video.js.map +1 -1
- package/cdn/media-attach-mixin-BIrlT_tz.js +2 -0
- package/cdn/{media-attach-mixin-D5_nfJpa.js.map → media-attach-mixin-BIrlT_tz.js.map} +1 -1
- package/cdn/{media-attach-mixin-U_KQB_9O.js → media-attach-mixin-Dsn4gxJA.js} +2 -2
- package/cdn/{media-attach-mixin-U_KQB_9O.js.map → media-attach-mixin-Dsn4gxJA.js.map} +1 -1
- package/cdn/{custom-media-element-DqevSVgS.js → media-props-mixin-BuVUebRp.js} +2 -2
- package/cdn/media-props-mixin-BuVUebRp.js.map +1 -0
- package/cdn/{custom-media-element-moFa3UZp.js → media-props-mixin-DxsM38Bx.js} +44 -2
- package/cdn/media-props-mixin-DxsM38Bx.js.map +1 -0
- package/cdn/{minimal-BJfleQcQ.js → minimal-CKMdOXWm.js} +1 -1
- package/cdn/{minimal-BJfleQcQ.js.map → minimal-CKMdOXWm.js.map} +1 -1
- package/cdn/{minimal-DBMdC_0I.js → minimal-fA2p2Jrn.js} +1 -1
- package/cdn/{minimal-DBMdC_0I.js.map → minimal-fA2p2Jrn.js.map} +1 -1
- package/cdn/player-Dzvu8Tzs.js +2 -0
- package/cdn/{player-C46h14iP.js.map → player-Dzvu8Tzs.js.map} +1 -1
- package/cdn/{player-CvrOeLpy.js → player-rkxd0mpV.js} +3 -3
- package/cdn/{player-CvrOeLpy.js.map → player-rkxd0mpV.js.map} +1 -1
- package/cdn/{poster-Olv5zDI_.js → poster-BPMPXyn3.js} +4 -5
- package/cdn/{poster-Olv5zDI_.js.map → poster-BPMPXyn3.js.map} +1 -1
- package/cdn/poster-DqjXzMK_.js +2 -0
- package/cdn/{poster-odJ4iwIv.js.map → poster-DqjXzMK_.js.map} +1 -1
- package/cdn/{context-Be8C5kVd.js → safe-define-D26LrTu4.js} +14 -5
- package/cdn/safe-define-D26LrTu4.js.map +1 -0
- package/cdn/safe-define-EEn8NTOG.js +14 -0
- package/cdn/safe-define-EEn8NTOG.js.map +1 -0
- package/cdn/shallow-equal-CaIo44Co.js +15 -0
- package/cdn/shallow-equal-CaIo44Co.js.map +1 -0
- package/cdn/shallow-equal-zo2IZwso.js +2 -0
- package/cdn/shallow-equal-zo2IZwso.js.map +1 -0
- package/cdn/video-minimal.dev.js +24 -13
- 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.dev.js +107 -92
- 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-D7BOdSDF.js → volume-slider-BEXiB6_j.js} +245 -14
- package/cdn/volume-slider-BEXiB6_j.js.map +1 -0
- package/cdn/volume-slider-CQ0Yq947.js +9 -0
- package/cdn/volume-slider-CQ0Yq947.js.map +1 -0
- package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js +2 -2
- 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 +2 -2
- package/dist/default/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/background/skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/background/skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/base.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/base.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 +2 -2
- 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 +2 -2
- package/dist/default/_virtual/inline-css_src/define/video/skin.js.map +1 -1
- package/dist/default/define/audio/minimal-skin.css +81 -59
- package/dist/default/define/audio/minimal-skin.js +5 -4
- package/dist/default/define/audio/minimal-skin.js.map +1 -1
- package/dist/default/define/audio/minimal-skin.tailwind.js +6 -5
- package/dist/default/define/audio/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/define/audio/player.js +1 -2
- package/dist/default/define/audio/player.js.map +1 -1
- package/dist/default/define/audio/skin.css +54 -42
- package/dist/default/define/audio/skin.js +5 -4
- package/dist/default/define/audio/skin.js.map +1 -1
- package/dist/default/define/audio/skin.tailwind.js +7 -5
- package/dist/default/define/audio/skin.tailwind.js.map +1 -1
- package/dist/default/define/background/player.js +1 -2
- package/dist/default/define/background/player.js.map +1 -1
- package/dist/default/define/background/skin.js +1 -2
- package/dist/default/define/background/skin.js.map +1 -1
- package/dist/default/define/background/video.js +1 -2
- package/dist/default/define/media/background-video.js +1 -2
- package/dist/default/define/media/background-video.js.map +1 -1
- package/dist/default/define/media/container.js +1 -2
- package/dist/default/define/media/container.js.map +1 -1
- package/dist/default/define/media/dash-video.js +1 -2
- package/dist/default/define/media/dash-video.js.map +1 -1
- package/dist/default/define/media/hls-video.js +1 -2
- package/dist/default/define/media/hls-video.js.map +1 -1
- package/dist/default/define/media/mux-video.js +13 -0
- package/dist/default/define/media/mux-video.js.map +1 -0
- package/dist/default/define/media/native-hls-video.js +13 -0
- package/dist/default/define/media/native-hls-video.js.map +1 -0
- package/dist/default/define/media/simple-hls-video.js +3 -3
- package/dist/default/define/media/simple-hls-video.js.map +1 -1
- package/dist/default/define/safe-define.js +4 -2
- package/dist/default/define/safe-define.js.map +1 -1
- package/dist/default/define/skin-mixin.js +30 -11
- package/dist/default/define/skin-mixin.js.map +1 -1
- package/dist/default/define/ui/alert-dialog-close.js +1 -2
- package/dist/default/define/ui/alert-dialog-close.js.map +1 -1
- package/dist/default/define/ui/alert-dialog-description.js +1 -2
- package/dist/default/define/ui/alert-dialog-description.js.map +1 -1
- package/dist/default/define/ui/alert-dialog-title.js +1 -2
- package/dist/default/define/ui/alert-dialog-title.js.map +1 -1
- package/dist/default/define/ui/alert-dialog.js +1 -2
- package/dist/default/define/ui/alert-dialog.js.map +1 -1
- package/dist/default/define/ui/buffering-indicator.js +1 -2
- package/dist/default/define/ui/buffering-indicator.js.map +1 -1
- package/dist/default/define/ui/captions-button.js +3 -3
- package/dist/default/define/ui/captions-button.js.map +1 -1
- package/dist/default/define/ui/controls-group.js +1 -2
- package/dist/default/define/ui/controls-group.js.map +1 -1
- package/dist/default/define/ui/controls.js +1 -2
- package/dist/default/define/ui/controls.js.map +1 -1
- package/dist/default/define/ui/error-dialog.js +13 -0
- package/dist/default/define/ui/error-dialog.js.map +1 -0
- package/dist/default/define/ui/fullscreen-button.js +1 -2
- package/dist/default/define/ui/fullscreen-button.js.map +1 -1
- package/dist/default/define/ui/mute-button.js +1 -2
- package/dist/default/define/ui/mute-button.js.map +1 -1
- package/dist/default/define/ui/pip-button.js +1 -2
- package/dist/default/define/ui/pip-button.js.map +1 -1
- package/dist/default/define/ui/play-button.js +1 -2
- package/dist/default/define/ui/play-button.js.map +1 -1
- package/dist/default/define/ui/playback-rate-button.js +1 -2
- package/dist/default/define/ui/playback-rate-button.js.map +1 -1
- package/dist/default/define/ui/popover.js +1 -2
- package/dist/default/define/ui/popover.js.map +1 -1
- package/dist/default/define/ui/poster.js +1 -2
- package/dist/default/define/ui/poster.js.map +1 -1
- package/dist/default/define/ui/seek-button.js +1 -2
- package/dist/default/define/ui/seek-button.js.map +1 -1
- package/dist/default/define/ui/slider-buffer.js +1 -2
- package/dist/default/define/ui/slider-buffer.js.map +1 -1
- package/dist/default/define/ui/slider-fill.js +1 -2
- package/dist/default/define/ui/slider-fill.js.map +1 -1
- package/dist/default/define/ui/slider-thumb.js +1 -2
- package/dist/default/define/ui/slider-thumb.js.map +1 -1
- package/dist/default/define/ui/slider-thumbnail.js +1 -2
- package/dist/default/define/ui/slider-thumbnail.js.map +1 -1
- package/dist/default/define/ui/slider-track.js +1 -2
- package/dist/default/define/ui/slider-track.js.map +1 -1
- package/dist/default/define/ui/slider-value.js +1 -2
- package/dist/default/define/ui/slider-value.js.map +1 -1
- package/dist/default/define/ui/slider.js +1 -2
- package/dist/default/define/ui/slider.js.map +1 -1
- package/dist/default/define/ui/thumbnail.js +1 -2
- package/dist/default/define/ui/thumbnail.js.map +1 -1
- package/dist/default/define/ui/time-group.js +1 -2
- package/dist/default/define/ui/time-group.js.map +1 -1
- package/dist/default/define/ui/time-separator.js +1 -2
- package/dist/default/define/ui/time-separator.js.map +1 -1
- package/dist/default/define/ui/time-slider.js +1 -2
- package/dist/default/define/ui/time-slider.js.map +1 -1
- package/dist/default/define/ui/time.js +1 -2
- package/dist/default/define/ui/time.js.map +1 -1
- package/dist/default/define/ui/tooltip-group.js +1 -2
- package/dist/default/define/ui/tooltip-group.js.map +1 -1
- package/dist/default/define/ui/tooltip.js +1 -2
- package/dist/default/define/ui/tooltip.js.map +1 -1
- package/dist/default/define/ui/volume-slider.js +1 -2
- package/dist/default/define/ui/volume-slider.js.map +1 -1
- package/dist/default/define/video/minimal-skin.css +156 -75
- package/dist/default/define/video/minimal-skin.js +5 -4
- package/dist/default/define/video/minimal-skin.js.map +1 -1
- package/dist/default/define/video/minimal-skin.tailwind.js +6 -7
- package/dist/default/define/video/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/define/video/player.js +1 -2
- package/dist/default/define/video/player.js.map +1 -1
- package/dist/default/define/video/skin.css +114 -58
- package/dist/default/define/video/skin.js +5 -4
- package/dist/default/define/video/skin.js.map +1 -1
- package/dist/default/define/video/skin.tailwind.js +6 -6
- package/dist/default/define/video/skin.tailwind.js.map +1 -1
- package/dist/default/icons/dist/render/default/index.js +1 -1
- package/dist/default/icons/dist/render/minimal/index.js +1 -1
- package/dist/default/index.js +3 -4
- package/dist/default/media/background-video/index.js +1 -2
- package/dist/default/media/background-video/index.js.map +1 -1
- package/dist/default/media/container-element.js +1 -2
- package/dist/default/media/container-element.js.map +1 -1
- package/dist/default/media/dash-video/index.js +4 -12
- package/dist/default/media/dash-video/index.js.map +1 -1
- package/dist/default/media/hls-video/index.js +4 -12
- package/dist/default/media/hls-video/index.js.map +1 -1
- package/dist/default/media/mux-video/index.js +18 -0
- package/dist/default/media/mux-video/index.js.map +1 -0
- package/dist/default/media/native-hls-video/index.js +18 -0
- package/dist/default/media/native-hls-video/index.js.map +1 -0
- package/dist/default/media/simple-hls-video/index.js +4 -12
- package/dist/default/media/simple-hls-video/index.js.map +1 -1
- package/dist/default/player/context.js +1 -2
- package/dist/default/player/context.js.map +1 -1
- package/dist/default/player/create-player.js +1 -2
- package/dist/default/player/create-player.js.map +1 -1
- package/dist/default/player/player-controller.js +1 -2
- package/dist/default/player/player-controller.js.map +1 -1
- package/dist/default/presets/audio.js +1 -2
- package/dist/default/presets/background.js +1 -2
- package/dist/default/presets/video.js +1 -2
- package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js +14 -18
- package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/buffering.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/buffering.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/button-group.js +7 -0
- package/dist/default/skins/dist/default/default/tailwind/components/button-group.js.map +1 -0
- package/dist/default/skins/dist/default/default/tailwind/components/button.js +3 -4
- package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/controls.js +2 -3
- package/dist/default/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/error.js +2 -3
- package/dist/default/skins/dist/default/default/tailwind/components/error.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/icon.js +1 -2
- package/dist/default/skins/dist/default/default/tailwind/components/icon.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/overlay.js +2 -3
- package/dist/default/skins/dist/default/default/tailwind/components/overlay.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/playback-rate.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/playback-rate.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/popup.js +4 -5
- package/dist/default/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/poster.js +1 -2
- package/dist/default/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/preview.js +2 -3
- package/dist/default/skins/dist/default/default/tailwind/components/preview.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/root.js +2 -3
- package/dist/default/skins/dist/default/default/tailwind/components/root.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/seek.js +1 -2
- package/dist/default/skins/dist/default/default/tailwind/components/seek.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/slider.js +2 -3
- package/dist/default/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/surface.js +2 -3
- package/dist/default/skins/dist/default/default/tailwind/components/surface.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/time.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/time.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +25 -20
- 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 +15 -16
- package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/buffering.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/buffering.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/button-group.js +1 -2
- package/dist/default/skins/dist/default/minimal/tailwind/components/button-group.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/button.js +2 -3
- package/dist/default/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js +2 -3
- package/dist/default/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/error.js +2 -3
- package/dist/default/skins/dist/default/minimal/tailwind/components/error.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/icon.js +1 -2
- package/dist/default/skins/dist/default/minimal/tailwind/components/icon.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js +2 -3
- package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/playback-rate.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/playback-rate.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js +2 -3
- package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js +1 -2
- package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/preview.js +2 -3
- package/dist/default/skins/dist/default/minimal/tailwind/components/preview.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/root.js +2 -3
- package/dist/default/skins/dist/default/minimal/tailwind/components/root.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/seek.js +1 -2
- package/dist/default/skins/dist/default/minimal/tailwind/components/seek.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js +2 -3
- package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/time.js +5 -6
- package/dist/default/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +23 -18
- package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/shared/tailwind/icon-state.js +1 -1
- package/dist/default/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
- package/dist/default/skins/dist/default/shared/tailwind/tooltip-state.js +1 -1
- package/dist/default/skins/dist/default/shared/tailwind/tooltip-state.js.map +1 -1
- package/dist/default/store/container-mixin.js +1 -2
- package/dist/default/store/container-mixin.js.map +1 -1
- package/dist/default/store/media-attach-mixin.js +1 -2
- package/dist/default/store/media-attach-mixin.js.map +1 -1
- package/dist/default/store/provider-mixin.js +1 -2
- package/dist/default/store/provider-mixin.js.map +1 -1
- package/dist/default/ui/alert-dialog/alert-dialog-close-element.js +1 -2
- package/dist/default/ui/alert-dialog/alert-dialog-close-element.js.map +1 -1
- package/dist/default/ui/alert-dialog/alert-dialog-description-element.js +1 -2
- package/dist/default/ui/alert-dialog/alert-dialog-description-element.js.map +1 -1
- package/dist/default/ui/alert-dialog/alert-dialog-element.js +1 -2
- package/dist/default/ui/alert-dialog/alert-dialog-element.js.map +1 -1
- package/dist/default/ui/alert-dialog/alert-dialog-title-element.js +1 -2
- package/dist/default/ui/alert-dialog/alert-dialog-title-element.js.map +1 -1
- package/dist/default/ui/alert-dialog/context.js +2 -5
- package/dist/default/ui/alert-dialog/context.js.map +1 -1
- package/dist/default/ui/buffering-indicator/buffering-indicator-element.js +1 -2
- package/dist/default/ui/buffering-indicator/buffering-indicator-element.js.map +1 -1
- package/dist/default/ui/captions-button/captions-button-element.js +1 -2
- package/dist/default/ui/captions-button/captions-button-element.js.map +1 -1
- package/dist/default/ui/context-part-element.js +1 -2
- package/dist/default/ui/context-part-element.js.map +1 -1
- package/dist/default/ui/controls/context.js +2 -5
- package/dist/default/ui/controls/context.js.map +1 -1
- package/dist/default/ui/controls/controls-element.js +1 -2
- package/dist/default/ui/controls/controls-element.js.map +1 -1
- package/dist/default/ui/controls/controls-group-element.js +1 -2
- package/dist/default/ui/controls/controls-group-element.js.map +1 -1
- package/dist/default/ui/error-dialog/error-dialog-element.js +76 -0
- package/dist/default/ui/error-dialog/error-dialog-element.js.map +1 -0
- package/dist/default/ui/fullscreen-button/fullscreen-button-element.js +1 -2
- package/dist/default/ui/fullscreen-button/fullscreen-button-element.js.map +1 -1
- package/dist/default/ui/media-button-element.js +1 -2
- package/dist/default/ui/media-button-element.js.map +1 -1
- package/dist/default/ui/media-element.js +1 -2
- package/dist/default/ui/media-element.js.map +1 -1
- package/dist/default/ui/media-ui-element.js +1 -2
- package/dist/default/ui/media-ui-element.js.map +1 -1
- package/dist/default/ui/mute-button/mute-button-element.js +1 -2
- package/dist/default/ui/mute-button/mute-button-element.js.map +1 -1
- package/dist/default/ui/pip-button/pip-button-element.js +1 -2
- package/dist/default/ui/pip-button/pip-button-element.js.map +1 -1
- package/dist/default/ui/play-button/play-button-element.js +1 -2
- package/dist/default/ui/play-button/play-button-element.js.map +1 -1
- package/dist/default/ui/playback-rate-button/playback-rate-button-element.js +1 -2
- package/dist/default/ui/playback-rate-button/playback-rate-button-element.js.map +1 -1
- package/dist/default/ui/popover/popover-element.js +1 -2
- package/dist/default/ui/popover/popover-element.js.map +1 -1
- package/dist/default/ui/poster/poster-element.js +1 -2
- package/dist/default/ui/poster/poster-element.js.map +1 -1
- package/dist/default/ui/seek-button/seek-button-element.js +1 -2
- package/dist/default/ui/seek-button/seek-button-element.js.map +1 -1
- package/dist/default/ui/slider/context.js +2 -5
- package/dist/default/ui/slider/context.js.map +1 -1
- package/dist/default/ui/slider/slider-buffer-element.js +1 -2
- package/dist/default/ui/slider/slider-buffer-element.js.map +1 -1
- package/dist/default/ui/slider/slider-element.js +1 -2
- package/dist/default/ui/slider/slider-element.js.map +1 -1
- package/dist/default/ui/slider/slider-fill-element.js +1 -2
- package/dist/default/ui/slider/slider-fill-element.js.map +1 -1
- package/dist/default/ui/slider/slider-preview-element.js +1 -2
- package/dist/default/ui/slider/slider-preview-element.js.map +1 -1
- package/dist/default/ui/slider/slider-thumb-element.js +1 -2
- package/dist/default/ui/slider/slider-thumb-element.js.map +1 -1
- package/dist/default/ui/slider/slider-thumbnail-element.js +1 -2
- package/dist/default/ui/slider/slider-thumbnail-element.js.map +1 -1
- package/dist/default/ui/slider/slider-track-element.js +1 -2
- package/dist/default/ui/slider/slider-track-element.js.map +1 -1
- package/dist/default/ui/slider/slider-value-element.js +1 -2
- package/dist/default/ui/slider/slider-value-element.js.map +1 -1
- package/dist/default/ui/thumbnail/thumbnail-element.js +1 -2
- package/dist/default/ui/thumbnail/thumbnail-element.js.map +1 -1
- package/dist/default/ui/time/time-element.js +1 -2
- package/dist/default/ui/time/time-element.js.map +1 -1
- package/dist/default/ui/time/time-group-element.js +1 -2
- package/dist/default/ui/time/time-group-element.js.map +1 -1
- package/dist/default/ui/time/time-separator-element.js +1 -2
- package/dist/default/ui/time/time-separator-element.js.map +1 -1
- package/dist/default/ui/time-slider/time-slider-element.js +1 -2
- package/dist/default/ui/time-slider/time-slider-element.js.map +1 -1
- package/dist/default/ui/tooltip/context.js +2 -5
- package/dist/default/ui/tooltip/context.js.map +1 -1
- package/dist/default/ui/tooltip/tooltip-element.js +1 -2
- package/dist/default/ui/tooltip/tooltip-element.js.map +1 -1
- package/dist/default/ui/tooltip/tooltip-group-element.js +1 -2
- package/dist/default/ui/tooltip/tooltip-group-element.js.map +1 -1
- package/dist/default/ui/volume-slider/volume-slider-element.js +1 -2
- package/dist/default/ui/volume-slider/volume-slider-element.js.map +1 -1
- package/dist/default/utils/media-props-mixin.js +44 -0
- package/dist/default/utils/media-props-mixin.js.map +1 -0
- package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js +2 -2
- 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 +2 -2
- package/dist/dev/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/background/skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/background/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 +2 -2
- 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 +2 -2
- package/dist/dev/_virtual/inline-css_src/define/video/skin.js.map +1 -1
- package/dist/dev/define/audio/minimal-skin.css +81 -59
- package/dist/dev/define/audio/minimal-skin.d.ts +2 -2
- package/dist/dev/define/audio/minimal-skin.d.ts.map +1 -1
- package/dist/dev/define/audio/minimal-skin.js +20 -7
- package/dist/dev/define/audio/minimal-skin.js.map +1 -1
- package/dist/dev/define/audio/minimal-skin.tailwind.d.ts +1 -1
- package/dist/dev/define/audio/minimal-skin.tailwind.d.ts.map +1 -1
- package/dist/dev/define/audio/minimal-skin.tailwind.js +19 -6
- package/dist/dev/define/audio/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/define/audio/player.js +1 -2
- package/dist/dev/define/audio/player.js.map +1 -1
- package/dist/dev/define/audio/skin.css +54 -42
- package/dist/dev/define/audio/skin.d.ts +2 -2
- package/dist/dev/define/audio/skin.d.ts.map +1 -1
- package/dist/dev/define/audio/skin.js +69 -52
- package/dist/dev/define/audio/skin.js.map +1 -1
- package/dist/dev/define/audio/skin.tailwind.d.ts +1 -1
- package/dist/dev/define/audio/skin.tailwind.d.ts.map +1 -1
- package/dist/dev/define/audio/skin.tailwind.js +71 -53
- package/dist/dev/define/audio/skin.tailwind.js.map +1 -1
- package/dist/dev/define/background/player.js +1 -2
- package/dist/dev/define/background/player.js.map +1 -1
- package/dist/dev/define/background/skin.js +1 -2
- package/dist/dev/define/background/skin.js.map +1 -1
- package/dist/dev/define/background/video.js +1 -2
- package/dist/dev/define/media/background-video.js +1 -2
- package/dist/dev/define/media/background-video.js.map +1 -1
- package/dist/dev/define/media/container.js +1 -2
- package/dist/dev/define/media/container.js.map +1 -1
- package/dist/dev/define/media/dash-video.js +1 -2
- package/dist/dev/define/media/dash-video.js.map +1 -1
- package/dist/dev/define/media/hls-video.js +1 -2
- package/dist/dev/define/media/hls-video.js.map +1 -1
- package/dist/dev/define/media/mux-video.d.ts +14 -0
- package/dist/dev/define/media/mux-video.d.ts.map +1 -0
- package/dist/dev/define/media/mux-video.js +13 -0
- package/dist/dev/define/media/mux-video.js.map +1 -0
- package/dist/dev/define/media/native-hls-video.d.ts +14 -0
- package/dist/dev/define/media/native-hls-video.d.ts.map +1 -0
- package/dist/dev/define/media/native-hls-video.js +13 -0
- package/dist/dev/define/media/native-hls-video.js.map +1 -0
- package/dist/dev/define/media/simple-hls-video.d.ts.map +1 -1
- package/dist/dev/define/media/simple-hls-video.js +3 -3
- package/dist/dev/define/media/simple-hls-video.js.map +1 -1
- package/dist/dev/define/safe-define.js +4 -2
- package/dist/dev/define/safe-define.js.map +1 -1
- package/dist/dev/define/skin-mixin.d.ts +4 -3
- package/dist/dev/define/skin-mixin.d.ts.map +1 -1
- package/dist/dev/define/skin-mixin.js +30 -11
- package/dist/dev/define/skin-mixin.js.map +1 -1
- package/dist/dev/define/ui/alert-dialog-close.js +1 -2
- package/dist/dev/define/ui/alert-dialog-close.js.map +1 -1
- package/dist/dev/define/ui/alert-dialog-description.js +1 -2
- package/dist/dev/define/ui/alert-dialog-description.js.map +1 -1
- package/dist/dev/define/ui/alert-dialog-title.js +1 -2
- package/dist/dev/define/ui/alert-dialog-title.js.map +1 -1
- package/dist/dev/define/ui/alert-dialog.js +1 -2
- package/dist/dev/define/ui/alert-dialog.js.map +1 -1
- package/dist/dev/define/ui/buffering-indicator.js +1 -2
- package/dist/dev/define/ui/buffering-indicator.js.map +1 -1
- package/dist/dev/define/ui/captions-button.d.ts.map +1 -1
- package/dist/dev/define/ui/captions-button.js +3 -3
- package/dist/dev/define/ui/captions-button.js.map +1 -1
- package/dist/dev/define/ui/controls-group.js +1 -2
- package/dist/dev/define/ui/controls-group.js.map +1 -1
- package/dist/dev/define/ui/controls.js +1 -2
- package/dist/dev/define/ui/controls.js.map +1 -1
- package/dist/dev/define/ui/error-dialog.d.ts +9 -0
- package/dist/dev/define/ui/error-dialog.d.ts.map +1 -0
- package/dist/dev/define/ui/error-dialog.js +13 -0
- package/dist/dev/define/ui/error-dialog.js.map +1 -0
- package/dist/dev/define/ui/fullscreen-button.js +1 -2
- package/dist/dev/define/ui/fullscreen-button.js.map +1 -1
- package/dist/dev/define/ui/mute-button.js +1 -2
- package/dist/dev/define/ui/mute-button.js.map +1 -1
- package/dist/dev/define/ui/pip-button.js +1 -2
- package/dist/dev/define/ui/pip-button.js.map +1 -1
- package/dist/dev/define/ui/play-button.js +1 -2
- package/dist/dev/define/ui/play-button.js.map +1 -1
- package/dist/dev/define/ui/playback-rate-button.js +1 -2
- package/dist/dev/define/ui/playback-rate-button.js.map +1 -1
- package/dist/dev/define/ui/popover.js +1 -2
- package/dist/dev/define/ui/popover.js.map +1 -1
- package/dist/dev/define/ui/poster.js +1 -2
- package/dist/dev/define/ui/poster.js.map +1 -1
- package/dist/dev/define/ui/seek-button.js +1 -2
- package/dist/dev/define/ui/seek-button.js.map +1 -1
- package/dist/dev/define/ui/slider-buffer.js +1 -2
- package/dist/dev/define/ui/slider-buffer.js.map +1 -1
- package/dist/dev/define/ui/slider-fill.js +1 -2
- package/dist/dev/define/ui/slider-fill.js.map +1 -1
- package/dist/dev/define/ui/slider-thumb.js +1 -2
- package/dist/dev/define/ui/slider-thumb.js.map +1 -1
- package/dist/dev/define/ui/slider-thumbnail.js +1 -2
- package/dist/dev/define/ui/slider-thumbnail.js.map +1 -1
- package/dist/dev/define/ui/slider-track.js +1 -2
- package/dist/dev/define/ui/slider-track.js.map +1 -1
- package/dist/dev/define/ui/slider-value.js +1 -2
- package/dist/dev/define/ui/slider-value.js.map +1 -1
- package/dist/dev/define/ui/slider.js +1 -2
- package/dist/dev/define/ui/slider.js.map +1 -1
- package/dist/dev/define/ui/thumbnail.js +1 -2
- package/dist/dev/define/ui/thumbnail.js.map +1 -1
- package/dist/dev/define/ui/time-group.js +1 -2
- package/dist/dev/define/ui/time-group.js.map +1 -1
- package/dist/dev/define/ui/time-separator.js +1 -2
- package/dist/dev/define/ui/time-separator.js.map +1 -1
- package/dist/dev/define/ui/time-slider.js +1 -2
- package/dist/dev/define/ui/time-slider.js.map +1 -1
- package/dist/dev/define/ui/time.js +1 -2
- package/dist/dev/define/ui/time.js.map +1 -1
- package/dist/dev/define/ui/tooltip-group.js +1 -2
- package/dist/dev/define/ui/tooltip-group.js.map +1 -1
- package/dist/dev/define/ui/tooltip.js +1 -2
- package/dist/dev/define/ui/tooltip.js.map +1 -1
- package/dist/dev/define/ui/volume-slider.js +1 -2
- package/dist/dev/define/ui/volume-slider.js.map +1 -1
- package/dist/dev/define/video/minimal-skin.css +156 -75
- package/dist/dev/define/video/minimal-skin.d.ts +2 -2
- package/dist/dev/define/video/minimal-skin.d.ts.map +1 -1
- package/dist/dev/define/video/minimal-skin.js +21 -8
- package/dist/dev/define/video/minimal-skin.js.map +1 -1
- package/dist/dev/define/video/minimal-skin.tailwind.d.ts +1 -1
- package/dist/dev/define/video/minimal-skin.tailwind.d.ts.map +1 -1
- package/dist/dev/define/video/minimal-skin.tailwind.js +22 -11
- package/dist/dev/define/video/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/define/video/player.js +1 -2
- package/dist/dev/define/video/player.js.map +1 -1
- package/dist/dev/define/video/skin.css +114 -58
- package/dist/dev/define/video/skin.d.ts +2 -2
- package/dist/dev/define/video/skin.d.ts.map +1 -1
- package/dist/dev/define/video/skin.js +103 -86
- package/dist/dev/define/video/skin.js.map +1 -1
- package/dist/dev/define/video/skin.tailwind.d.ts +1 -1
- package/dist/dev/define/video/skin.tailwind.d.ts.map +1 -1
- package/dist/dev/define/video/skin.tailwind.js +104 -88
- package/dist/dev/define/video/skin.tailwind.js.map +1 -1
- package/dist/dev/icons/dist/render/default/index.js +1 -1
- package/dist/dev/icons/dist/render/minimal/index.js +1 -1
- package/dist/dev/index.d.ts +3 -2
- package/dist/dev/index.js +3 -4
- package/dist/dev/media/background-video/index.js +1 -2
- package/dist/dev/media/background-video/index.js.map +1 -1
- package/dist/dev/media/container-element.js +1 -2
- package/dist/dev/media/container-element.js.map +1 -1
- package/dist/dev/media/dash-video/index.d.ts +0 -2
- package/dist/dev/media/dash-video/index.d.ts.map +1 -1
- package/dist/dev/media/dash-video/index.js +4 -12
- package/dist/dev/media/dash-video/index.js.map +1 -1
- package/dist/dev/media/hls-video/index.d.ts +0 -2
- package/dist/dev/media/hls-video/index.d.ts.map +1 -1
- package/dist/dev/media/hls-video/index.js +4 -12
- package/dist/dev/media/hls-video/index.js.map +1 -1
- package/dist/dev/media/mux-video/index.d.ts +11 -0
- package/dist/dev/media/mux-video/index.d.ts.map +1 -0
- package/dist/dev/media/mux-video/index.js +18 -0
- package/dist/dev/media/mux-video/index.js.map +1 -0
- package/dist/dev/media/native-hls-video/index.d.ts +11 -0
- package/dist/dev/media/native-hls-video/index.d.ts.map +1 -0
- package/dist/dev/media/native-hls-video/index.js +18 -0
- package/dist/dev/media/native-hls-video/index.js.map +1 -0
- package/dist/dev/media/simple-hls-video/index.d.ts +0 -2
- package/dist/dev/media/simple-hls-video/index.d.ts.map +1 -1
- package/dist/dev/media/simple-hls-video/index.js +4 -12
- package/dist/dev/media/simple-hls-video/index.js.map +1 -1
- package/dist/dev/player/context.js +1 -2
- package/dist/dev/player/context.js.map +1 -1
- package/dist/dev/player/create-player.js +1 -2
- package/dist/dev/player/create-player.js.map +1 -1
- package/dist/dev/player/player-controller.js +1 -2
- package/dist/dev/player/player-controller.js.map +1 -1
- package/dist/dev/presets/audio.js +1 -2
- package/dist/dev/presets/background.js +1 -2
- package/dist/dev/presets/video.js +1 -2
- package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js +14 -18
- package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/buffering.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/buffering.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/button-group.js +7 -0
- package/dist/dev/skins/dist/default/default/tailwind/components/button-group.js.map +1 -0
- package/dist/dev/skins/dist/default/default/tailwind/components/button.js +3 -4
- package/dist/dev/skins/dist/default/default/tailwind/components/button.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/controls.js +2 -3
- package/dist/dev/skins/dist/default/default/tailwind/components/controls.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/error.js +2 -3
- package/dist/dev/skins/dist/default/default/tailwind/components/error.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/icon.js +1 -2
- package/dist/dev/skins/dist/default/default/tailwind/components/icon.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js +2 -3
- package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/playback-rate.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/playback-rate.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/popup.js +4 -5
- package/dist/dev/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/poster.js +1 -2
- package/dist/dev/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/preview.js +2 -3
- package/dist/dev/skins/dist/default/default/tailwind/components/preview.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/root.js +2 -3
- package/dist/dev/skins/dist/default/default/tailwind/components/root.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/seek.js +1 -2
- package/dist/dev/skins/dist/default/default/tailwind/components/seek.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/slider.js +2 -3
- package/dist/dev/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/surface.js +2 -3
- package/dist/dev/skins/dist/default/default/tailwind/components/surface.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/time.js +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/components/time.js.map +1 -1
- package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js +25 -20
- 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 +15 -16
- package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/buffering.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/buffering.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/button-group.js +1 -2
- package/dist/dev/skins/dist/default/minimal/tailwind/components/button-group.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js +2 -3
- package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js +2 -3
- package/dist/dev/skins/dist/default/minimal/tailwind/components/controls.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js +2 -3
- package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/icon.js +1 -2
- package/dist/dev/skins/dist/default/minimal/tailwind/components/icon.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js +2 -3
- package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/playback-rate.js +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/playback-rate.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js +2 -3
- package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js +1 -2
- package/dist/dev/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/preview.js +2 -3
- package/dist/dev/skins/dist/default/minimal/tailwind/components/preview.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js +2 -3
- package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/seek.js +1 -2
- package/dist/dev/skins/dist/default/minimal/tailwind/components/seek.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js +2 -3
- package/dist/dev/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js +5 -6
- package/dist/dev/skins/dist/default/minimal/tailwind/components/time.js.map +1 -1
- package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js +23 -18
- package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
- package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js +1 -1
- package/dist/dev/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
- package/dist/dev/skins/dist/default/shared/tailwind/tooltip-state.js +1 -1
- package/dist/dev/skins/dist/default/shared/tailwind/tooltip-state.js.map +1 -1
- package/dist/dev/store/container-mixin.js +1 -2
- package/dist/dev/store/container-mixin.js.map +1 -1
- package/dist/dev/store/media-attach-mixin.js +1 -2
- package/dist/dev/store/media-attach-mixin.js.map +1 -1
- package/dist/dev/store/provider-mixin.js +1 -2
- package/dist/dev/store/provider-mixin.js.map +1 -1
- package/dist/dev/ui/alert-dialog/alert-dialog-close-element.js +1 -2
- package/dist/dev/ui/alert-dialog/alert-dialog-close-element.js.map +1 -1
- package/dist/dev/ui/alert-dialog/alert-dialog-description-element.js +1 -2
- package/dist/dev/ui/alert-dialog/alert-dialog-description-element.js.map +1 -1
- package/dist/dev/ui/alert-dialog/alert-dialog-element.js +1 -2
- package/dist/dev/ui/alert-dialog/alert-dialog-element.js.map +1 -1
- package/dist/dev/ui/alert-dialog/alert-dialog-title-element.js +1 -2
- package/dist/dev/ui/alert-dialog/alert-dialog-title-element.js.map +1 -1
- package/dist/dev/ui/alert-dialog/context.js +2 -5
- package/dist/dev/ui/alert-dialog/context.js.map +1 -1
- package/dist/dev/ui/buffering-indicator/buffering-indicator-element.js +1 -2
- package/dist/dev/ui/buffering-indicator/buffering-indicator-element.js.map +1 -1
- package/dist/dev/ui/captions-button/captions-button-element.js +1 -2
- package/dist/dev/ui/captions-button/captions-button-element.js.map +1 -1
- package/dist/dev/ui/context-part-element.js +1 -2
- package/dist/dev/ui/context-part-element.js.map +1 -1
- package/dist/dev/ui/controls/context.js +2 -5
- package/dist/dev/ui/controls/context.js.map +1 -1
- package/dist/dev/ui/controls/controls-element.js +1 -2
- package/dist/dev/ui/controls/controls-element.js.map +1 -1
- package/dist/dev/ui/controls/controls-group-element.js +1 -2
- package/dist/dev/ui/controls/controls-group-element.js.map +1 -1
- package/dist/dev/ui/error-dialog/error-dialog-element.d.ts +16 -0
- package/dist/dev/ui/error-dialog/error-dialog-element.d.ts.map +1 -0
- package/dist/dev/ui/error-dialog/error-dialog-element.js +76 -0
- package/dist/dev/ui/error-dialog/error-dialog-element.js.map +1 -0
- package/dist/dev/ui/fullscreen-button/fullscreen-button-element.js +1 -2
- package/dist/dev/ui/fullscreen-button/fullscreen-button-element.js.map +1 -1
- package/dist/dev/ui/media-button-element.js +1 -2
- package/dist/dev/ui/media-button-element.js.map +1 -1
- package/dist/dev/ui/media-element.js +1 -2
- package/dist/dev/ui/media-element.js.map +1 -1
- package/dist/dev/ui/media-ui-element.js +1 -2
- package/dist/dev/ui/media-ui-element.js.map +1 -1
- package/dist/dev/ui/mute-button/mute-button-element.js +1 -2
- package/dist/dev/ui/mute-button/mute-button-element.js.map +1 -1
- package/dist/dev/ui/pip-button/pip-button-element.js +1 -2
- package/dist/dev/ui/pip-button/pip-button-element.js.map +1 -1
- package/dist/dev/ui/play-button/play-button-element.js +1 -2
- package/dist/dev/ui/play-button/play-button-element.js.map +1 -1
- package/dist/dev/ui/playback-rate-button/playback-rate-button-element.js +1 -2
- package/dist/dev/ui/playback-rate-button/playback-rate-button-element.js.map +1 -1
- package/dist/dev/ui/popover/popover-element.js +1 -2
- package/dist/dev/ui/popover/popover-element.js.map +1 -1
- package/dist/dev/ui/poster/poster-element.js +1 -2
- package/dist/dev/ui/poster/poster-element.js.map +1 -1
- package/dist/dev/ui/seek-button/seek-button-element.js +1 -2
- package/dist/dev/ui/seek-button/seek-button-element.js.map +1 -1
- package/dist/dev/ui/slider/context.js +2 -5
- package/dist/dev/ui/slider/context.js.map +1 -1
- package/dist/dev/ui/slider/slider-buffer-element.js +1 -2
- package/dist/dev/ui/slider/slider-buffer-element.js.map +1 -1
- package/dist/dev/ui/slider/slider-element.js +1 -2
- package/dist/dev/ui/slider/slider-element.js.map +1 -1
- package/dist/dev/ui/slider/slider-fill-element.js +1 -2
- package/dist/dev/ui/slider/slider-fill-element.js.map +1 -1
- package/dist/dev/ui/slider/slider-preview-element.js +1 -2
- package/dist/dev/ui/slider/slider-preview-element.js.map +1 -1
- package/dist/dev/ui/slider/slider-thumb-element.js +1 -2
- package/dist/dev/ui/slider/slider-thumb-element.js.map +1 -1
- package/dist/dev/ui/slider/slider-thumbnail-element.js +1 -2
- package/dist/dev/ui/slider/slider-thumbnail-element.js.map +1 -1
- package/dist/dev/ui/slider/slider-track-element.js +1 -2
- package/dist/dev/ui/slider/slider-track-element.js.map +1 -1
- package/dist/dev/ui/slider/slider-value-element.js +1 -2
- package/dist/dev/ui/slider/slider-value-element.js.map +1 -1
- package/dist/dev/ui/thumbnail/thumbnail-element.js +1 -2
- package/dist/dev/ui/thumbnail/thumbnail-element.js.map +1 -1
- package/dist/dev/ui/time/time-element.js +1 -2
- package/dist/dev/ui/time/time-element.js.map +1 -1
- package/dist/dev/ui/time/time-group-element.js +1 -2
- package/dist/dev/ui/time/time-group-element.js.map +1 -1
- package/dist/dev/ui/time/time-separator-element.js +1 -2
- package/dist/dev/ui/time/time-separator-element.js.map +1 -1
- package/dist/dev/ui/time-slider/time-slider-element.js +1 -2
- package/dist/dev/ui/time-slider/time-slider-element.js.map +1 -1
- package/dist/dev/ui/tooltip/context.js +2 -5
- package/dist/dev/ui/tooltip/context.js.map +1 -1
- package/dist/dev/ui/tooltip/tooltip-element.js +1 -2
- package/dist/dev/ui/tooltip/tooltip-element.js.map +1 -1
- package/dist/dev/ui/tooltip/tooltip-group-element.js +1 -2
- package/dist/dev/ui/tooltip/tooltip-group-element.js.map +1 -1
- package/dist/dev/ui/volume-slider/volume-slider-element.js +1 -2
- package/dist/dev/ui/volume-slider/volume-slider-element.js.map +1 -1
- package/dist/dev/utils/media-props-mixin.js +44 -0
- package/dist/dev/utils/media-props-mixin.js.map +1 -0
- package/package.json +10 -10
- package/cdn/context-Be8C5kVd.js.map +0 -1
- package/cdn/context-CUBywtsB.js +0 -14
- package/cdn/context-CUBywtsB.js.map +0 -1
- package/cdn/create-player-AcfnN3li.js.map +0 -1
- package/cdn/create-player-s_qISCpw.js +0 -7
- package/cdn/create-player-s_qISCpw.js.map +0 -1
- package/cdn/custom-media-element-DqevSVgS.js.map +0 -1
- package/cdn/custom-media-element-moFa3UZp.js.map +0 -1
- package/cdn/delegate-CzAcT1xm.js.map +0 -1
- package/cdn/delegate-Uc-6tQDR.js +0 -2
- package/cdn/delegate-Uc-6tQDR.js.map +0 -1
- package/cdn/media-attach-mixin-D5_nfJpa.js +0 -2
- package/cdn/player-C46h14iP.js +0 -2
- package/cdn/poster-odJ4iwIv.js +0 -2
- package/cdn/predicate-BG-dj_kF.js +0 -26
- package/cdn/predicate-BG-dj_kF.js.map +0 -1
- package/cdn/predicate-Y9jDHLpX.js +0 -2
- package/cdn/predicate-Y9jDHLpX.js.map +0 -1
- package/cdn/safe-define-B8lHgj_K.js +0 -9
- package/cdn/safe-define-B8lHgj_K.js.map +0 -1
- package/cdn/safe-define-GrHW3P9e.js +0 -2
- package/cdn/safe-define-GrHW3P9e.js.map +0 -1
- package/cdn/volume-slider-D7BOdSDF.js.map +0 -1
- package/cdn/volume-slider-DPeFF5tt.js +0 -8
- package/cdn/volume-slider-DPeFF5tt.js.map +0 -1
|
@@ -3,7 +3,6 @@ import { PlayerController } from "../../player/player-controller.js";
|
|
|
3
3
|
import { MediaButtonElement } from "../media-button-element.js";
|
|
4
4
|
import { PlayButtonCore, PlayButtonDataAttrs } from "@videojs/core";
|
|
5
5
|
import { selectPlayback } from "@videojs/core/dom";
|
|
6
|
-
|
|
7
6
|
//#region src/ui/play-button/play-button-element.ts
|
|
8
7
|
var PlayButtonElement = class extends MediaButtonElement {
|
|
9
8
|
constructor(..._args) {
|
|
@@ -19,7 +18,7 @@ var PlayButtonElement = class extends MediaButtonElement {
|
|
|
19
18
|
this.core.toggle(state);
|
|
20
19
|
}
|
|
21
20
|
};
|
|
22
|
-
|
|
23
21
|
//#endregion
|
|
24
22
|
export { PlayButtonElement };
|
|
23
|
+
|
|
25
24
|
//# sourceMappingURL=play-button-element.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"play-button-element.js","names":[],"sources":["../../../../src/ui/play-button/play-button-element.ts"],"sourcesContent":["import { type MediaPlaybackState, PlayButtonCore, PlayButtonDataAttrs } from '@videojs/core';\nimport { selectPlayback } 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 PlayButtonElement extends MediaButtonElement<PlayButtonCore> {\n static readonly tagName = 'media-play-button';\n\n protected readonly core = new PlayButtonCore();\n protected readonly stateAttrMap = PlayButtonDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectPlayback);\n\n protected activate(state: MediaPlaybackState): void {\n this.core.toggle(state);\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"play-button-element.js","names":[],"sources":["../../../../src/ui/play-button/play-button-element.ts"],"sourcesContent":["import { type MediaPlaybackState, PlayButtonCore, PlayButtonDataAttrs } from '@videojs/core';\nimport { selectPlayback } 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 PlayButtonElement extends MediaButtonElement<PlayButtonCore> {\n static readonly tagName = 'media-play-button';\n\n protected readonly core = new PlayButtonCore();\n protected readonly stateAttrMap = PlayButtonDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectPlayback);\n\n protected activate(state: MediaPlaybackState): void {\n this.core.toggle(state);\n }\n}\n"],"mappings":";;;;;;AAOA,IAAa,oBAAb,cAAuC,mBAAmC;;;cAG9C,IAAI,gBAAgB;sBACZ;oBACF,IAAI,iBAAiB,MAAM,eAAe,eAAe;;;iBAJ/D;;CAM1B,SAAmB,OAAiC;AAClD,OAAK,KAAK,OAAO,MAAM"}
|
|
@@ -3,7 +3,6 @@ import { PlayerController } from "../../player/player-controller.js";
|
|
|
3
3
|
import { MediaButtonElement } from "../media-button-element.js";
|
|
4
4
|
import { PlaybackRateButtonCore, PlaybackRateButtonDataAttrs } from "@videojs/core";
|
|
5
5
|
import { selectPlaybackRate } from "@videojs/core/dom";
|
|
6
|
-
|
|
7
6
|
//#region src/ui/playback-rate-button/playback-rate-button-element.ts
|
|
8
7
|
var PlaybackRateButtonElement = class extends MediaButtonElement {
|
|
9
8
|
constructor(..._args) {
|
|
@@ -19,7 +18,7 @@ var PlaybackRateButtonElement = class extends MediaButtonElement {
|
|
|
19
18
|
this.core.cycle(state);
|
|
20
19
|
}
|
|
21
20
|
};
|
|
22
|
-
|
|
23
21
|
//#endregion
|
|
24
22
|
export { PlaybackRateButtonElement };
|
|
23
|
+
|
|
25
24
|
//# sourceMappingURL=playback-rate-button-element.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playback-rate-button-element.js","names":[],"sources":["../../../../src/ui/playback-rate-button/playback-rate-button-element.ts"],"sourcesContent":["import { type MediaPlaybackRateState, PlaybackRateButtonCore, PlaybackRateButtonDataAttrs } from '@videojs/core';\nimport { selectPlaybackRate } 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 PlaybackRateButtonElement extends MediaButtonElement<PlaybackRateButtonCore> {\n static readonly tagName = 'media-playback-rate-button';\n\n protected readonly core = new PlaybackRateButtonCore();\n protected readonly stateAttrMap = PlaybackRateButtonDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectPlaybackRate);\n\n protected activate(state: MediaPlaybackRateState): void {\n this.core.cycle(state);\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"playback-rate-button-element.js","names":[],"sources":["../../../../src/ui/playback-rate-button/playback-rate-button-element.ts"],"sourcesContent":["import { type MediaPlaybackRateState, PlaybackRateButtonCore, PlaybackRateButtonDataAttrs } from '@videojs/core';\nimport { selectPlaybackRate } 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 PlaybackRateButtonElement extends MediaButtonElement<PlaybackRateButtonCore> {\n static readonly tagName = 'media-playback-rate-button';\n\n protected readonly core = new PlaybackRateButtonCore();\n protected readonly stateAttrMap = PlaybackRateButtonDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectPlaybackRate);\n\n protected activate(state: MediaPlaybackRateState): void {\n this.core.cycle(state);\n }\n}\n"],"mappings":";;;;;;AAOA,IAAa,4BAAb,cAA+C,mBAA2C;;;cAG9D,IAAI,wBAAwB;sBACpB;oBACF,IAAI,iBAAiB,MAAM,eAAe,mBAAmB;;;iBAJnE;;CAM1B,SAAmB,OAAqC;AACtD,OAAK,KAAK,MAAM,MAAM"}
|
|
@@ -3,7 +3,6 @@ import { PopoverCore, PopoverDataAttrs } from "@videojs/core";
|
|
|
3
3
|
import { applyElementProps, applyStateDataAttrs, createPopover, createTransition, getAnchorNameStyle, getAnchorPositionStyle, getPopupPositionRect, resolveOffsets } from "@videojs/core/dom";
|
|
4
4
|
import { SnapshotController } from "@videojs/store/html";
|
|
5
5
|
import { applyStyles, supportsAnchorPositioning, tryHidePopover, tryShowPopover } from "@videojs/utils/dom";
|
|
6
|
-
|
|
7
6
|
//#region src/ui/popover/popover-element.ts
|
|
8
7
|
var PopoverElement = class extends MediaElement {
|
|
9
8
|
constructor(..._args) {
|
|
@@ -213,7 +212,7 @@ var PopoverElement = class extends MediaElement {
|
|
|
213
212
|
this.#resizeObserver = null;
|
|
214
213
|
}
|
|
215
214
|
};
|
|
216
|
-
|
|
217
215
|
//#endregion
|
|
218
216
|
export { PopoverElement };
|
|
217
|
+
|
|
219
218
|
//# sourceMappingURL=popover-element.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"popover-element.js","names":["#core","#disconnect","#popover","#snapshot","#cleanupPositioning","#cleanupTrigger","#findTrigger","#syncTrigger","#currentTrigger","#syncPositioning","#triggerAbort","#positionAbort","#positionTrigger","#positionFrame","#resizeObserver"],"sources":["../../../../src/ui/popover/popover-element.ts"],"sourcesContent":["import { PopoverCore, PopoverDataAttrs, type PopoverInput, type PopoverProps } from '@videojs/core';\nimport {\n applyElementProps,\n applyStateDataAttrs,\n createPopover,\n createTransition,\n getAnchorNameStyle,\n getAnchorPositionStyle,\n getPopupPositionRect,\n type PopoverApi,\n type PopoverChangeDetails,\n resolveOffsets,\n} from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { SnapshotController } from '@videojs/store/html';\nimport { applyStyles, supportsAnchorPositioning, tryHidePopover, tryShowPopover } from '@videojs/utils/dom';\n\nimport { MediaElement } from '../media-element';\n\nexport class PopoverElement extends MediaElement {\n static readonly tagName = 'media-popover';\n\n static override properties = {\n open: { type: Boolean },\n defaultOpen: { type: Boolean, attribute: 'default-open' },\n side: { type: String },\n align: { type: String },\n modal: { type: Boolean },\n closeOnEscape: { type: Boolean, attribute: 'close-on-escape' },\n closeOnOutsideClick: { type: Boolean, attribute: 'close-on-outside-click' },\n openOnHover: { type: Boolean, attribute: 'open-on-hover' },\n delay: { type: Number },\n closeDelay: { type: Number, attribute: 'close-delay' },\n } satisfies PropertyDeclarationMap<keyof PopoverCore.Props>;\n\n open = PopoverCore.defaultProps.open;\n defaultOpen = PopoverCore.defaultProps.defaultOpen;\n side = PopoverCore.defaultProps.side;\n align = PopoverCore.defaultProps.align;\n modal: PopoverProps['modal'] = PopoverCore.defaultProps.modal;\n closeOnEscape = PopoverCore.defaultProps.closeOnEscape;\n closeOnOutsideClick = PopoverCore.defaultProps.closeOnOutsideClick;\n openOnHover = PopoverCore.defaultProps.openOnHover;\n delay = PopoverCore.defaultProps.delay;\n closeDelay = PopoverCore.defaultProps.closeDelay;\n\n readonly #core = new PopoverCore();\n #popover: PopoverApi | null = null;\n #snapshot: SnapshotController<PopoverInput> | null = null;\n\n // Cleanup controllers\n #disconnect: AbortController | null = null;\n #triggerAbort: AbortController | null = null;\n #currentTrigger: HTMLElement | null = null;\n #positionAbort: AbortController | null = null;\n #positionFrame = 0;\n #resizeObserver: ResizeObserver | null = null;\n #positionTrigger: HTMLElement | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (this.destroyed) return;\n\n this.#disconnect = new AbortController();\n\n this.#popover = createPopover({\n transition: createTransition(),\n onOpenChange: (nextOpen: boolean, details: PopoverChangeDetails) => {\n this.open = nextOpen;\n this.dispatchEvent(new CustomEvent('open-change', { detail: { open: nextOpen, ...details } }));\n },\n closeOnEscape: () => this.closeOnEscape,\n closeOnOutsideClick: () => this.closeOnOutsideClick,\n openOnHover: () => this.openOnHover,\n delay: () => this.delay,\n closeDelay: () => this.closeDelay,\n });\n\n // Register self as the popup element — the element IS the popup.\n this.#popover.setPopupElement(this);\n\n // Apply popup event handlers (pointerenter/leave, focusout) to self.\n applyElementProps(this, this.#popover.popupProps, { signal: this.#disconnect.signal });\n\n // Subscribe to interaction state for reactive updates.\n // Reuse the controller across connect/disconnect cycles to avoid\n // leaking stale controllers in the host's controller set.\n if (this.#snapshot) {\n this.#snapshot.track(this.#popover.input);\n } else {\n this.#snapshot = new SnapshotController(this, this.#popover.input);\n }\n }\n\n protected override firstUpdated(changed: PropertyValues): void {\n super.firstUpdated(changed);\n\n // Uncontrolled mode: open if `defaultOpen` is set. Controlled `open`\n // is already synced by `willUpdate` on the first render cycle.\n if (this.defaultOpen && !this.open) {\n this.#popover?.open();\n }\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#cleanupPositioning();\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n override destroyCallback(): void {\n this.#cleanupPositioning();\n this.#cleanupTrigger();\n this.#popover?.destroy();\n super.destroyCallback();\n }\n\n protected override willUpdate(changed: PropertyValues): void {\n super.willUpdate(changed);\n this.#core.setProps(this);\n\n // Sync controlled open state\n if (this.#popover && changed.has('open')) {\n const { active: interactionOpen } = this.#popover.input.current;\n if (this.open !== interactionOpen) {\n if (this.open) {\n this.#popover.open();\n } else {\n this.#popover.close();\n }\n }\n }\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n if (!this.#popover) return;\n\n // Discover trigger via commandfor linkage.\n const triggerEl = this.#findTrigger();\n this.#syncTrigger(triggerEl);\n\n // Derive state from core + input.\n const input = this.#popover.input.current;\n this.#core.setInput(input);\n const state = this.#core.getState();\n\n // Apply popup ARIA and data attributes to self.\n applyElementProps(this, this.#core.getPopupAttrs(state));\n applyStateDataAttrs(this, state, PopoverDataAttrs);\n\n // Show/hide via Popover API AFTER data attributes are applied so\n // `data-starting-style` is present before the first visible frame.\n if (state.open) {\n tryShowPopover(this);\n } else {\n tryHidePopover(this);\n }\n\n // Apply trigger ARIA and anchor-name to the discovered trigger.\n if (this.#currentTrigger) {\n applyElementProps(this.#currentTrigger, this.#core.getTriggerAttrs(state, this.id));\n applyStyles(this.#currentTrigger, getAnchorNameStyle(this.id));\n }\n\n // Skip positioning when closed — no rects to measure.\n if (!state.open) {\n this.#cleanupPositioning();\n return;\n }\n\n // Apply positioning styles to self.\n const posOpts = { side: state.side, align: state.align };\n\n if (supportsAnchorPositioning()) {\n // Native CSS Anchor Positioning — no JS rect measurements needed.\n applyStyles(this, getAnchorPositionStyle(this.id, posOpts));\n } else {\n // JS fallback: measure rects and resolve CSS var offsets.\n const triggerRect = this.#currentTrigger?.getBoundingClientRect();\n const selfRect = getPopupPositionRect(this);\n const boundaryRect = document.documentElement.getBoundingClientRect();\n const offsets = resolveOffsets(this);\n applyStyles(this, getAnchorPositionStyle(this.id, posOpts, triggerRect, selfRect, boundaryRect, offsets));\n }\n\n this.#syncPositioning();\n }\n\n // --- Trigger discovery ---\n\n #findTrigger(): HTMLElement | null {\n if (!this.id) return null;\n const root = this.getRootNode() as Document | ShadowRoot;\n return root.querySelector<HTMLElement>(`[commandfor=\"${this.id}\"]`);\n }\n\n #syncTrigger(triggerEl: HTMLElement | null): void {\n if (triggerEl === this.#currentTrigger) return;\n\n this.#cleanupPositioning();\n this.#cleanupTrigger();\n this.#currentTrigger = triggerEl;\n this.#popover?.setTriggerElement(triggerEl);\n\n if (triggerEl && this.#popover) {\n this.#triggerAbort = new AbortController();\n applyElementProps(triggerEl, this.#popover.triggerProps, { signal: this.#triggerAbort.signal });\n }\n }\n\n #cleanupTrigger(): void {\n if (this.#currentTrigger) {\n // Remove ARIA attributes and anchor-name style from the old trigger.\n applyElementProps(this.#currentTrigger, {\n 'aria-expanded': undefined,\n 'aria-haspopup': undefined,\n 'aria-controls': undefined,\n });\n this.#currentTrigger.style.removeProperty('anchor-name');\n }\n\n this.#triggerAbort?.abort();\n this.#triggerAbort = null;\n this.#currentTrigger = null;\n }\n\n #syncPositioning(): void {\n if (supportsAnchorPositioning()) return;\n\n const triggerEl = this.#currentTrigger;\n\n if (!triggerEl) return;\n if (this.#positionAbort && this.#positionTrigger === triggerEl) return;\n\n this.#cleanupPositioning();\n this.#positionAbort = new AbortController();\n this.#positionTrigger = triggerEl;\n const { signal } = this.#positionAbort;\n\n const reposition = () => {\n cancelAnimationFrame(this.#positionFrame);\n this.#positionFrame = requestAnimationFrame(() => {\n if (signal.aborted) return;\n this.requestUpdate();\n });\n };\n\n window.addEventListener('scroll', reposition, { capture: true, passive: true, signal });\n window.addEventListener('resize', reposition, { signal });\n\n if (typeof ResizeObserver === 'function') {\n this.#resizeObserver = new ResizeObserver(() => {\n reposition();\n });\n this.#resizeObserver.observe(triggerEl);\n this.#resizeObserver.observe(this);\n }\n\n reposition();\n }\n\n #cleanupPositioning(): void {\n this.#positionAbort?.abort();\n this.#positionAbort = null;\n this.#positionTrigger = null;\n cancelAnimationFrame(this.#positionFrame);\n this.#positionFrame = 0;\n this.#resizeObserver?.disconnect();\n this.#resizeObserver = null;\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"popover-element.js","names":["#core","#disconnect","#popover","#snapshot","#cleanupPositioning","#cleanupTrigger","#findTrigger","#syncTrigger","#currentTrigger","#syncPositioning","#triggerAbort","#positionAbort","#positionTrigger","#positionFrame","#resizeObserver"],"sources":["../../../../src/ui/popover/popover-element.ts"],"sourcesContent":["import { PopoverCore, PopoverDataAttrs, type PopoverInput, type PopoverProps } from '@videojs/core';\nimport {\n applyElementProps,\n applyStateDataAttrs,\n createPopover,\n createTransition,\n getAnchorNameStyle,\n getAnchorPositionStyle,\n getPopupPositionRect,\n type PopoverApi,\n type PopoverChangeDetails,\n resolveOffsets,\n} from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { SnapshotController } from '@videojs/store/html';\nimport { applyStyles, supportsAnchorPositioning, tryHidePopover, tryShowPopover } from '@videojs/utils/dom';\n\nimport { MediaElement } from '../media-element';\n\nexport class PopoverElement extends MediaElement {\n static readonly tagName = 'media-popover';\n\n static override properties = {\n open: { type: Boolean },\n defaultOpen: { type: Boolean, attribute: 'default-open' },\n side: { type: String },\n align: { type: String },\n modal: { type: Boolean },\n closeOnEscape: { type: Boolean, attribute: 'close-on-escape' },\n closeOnOutsideClick: { type: Boolean, attribute: 'close-on-outside-click' },\n openOnHover: { type: Boolean, attribute: 'open-on-hover' },\n delay: { type: Number },\n closeDelay: { type: Number, attribute: 'close-delay' },\n } satisfies PropertyDeclarationMap<keyof PopoverCore.Props>;\n\n open = PopoverCore.defaultProps.open;\n defaultOpen = PopoverCore.defaultProps.defaultOpen;\n side = PopoverCore.defaultProps.side;\n align = PopoverCore.defaultProps.align;\n modal: PopoverProps['modal'] = PopoverCore.defaultProps.modal;\n closeOnEscape = PopoverCore.defaultProps.closeOnEscape;\n closeOnOutsideClick = PopoverCore.defaultProps.closeOnOutsideClick;\n openOnHover = PopoverCore.defaultProps.openOnHover;\n delay = PopoverCore.defaultProps.delay;\n closeDelay = PopoverCore.defaultProps.closeDelay;\n\n readonly #core = new PopoverCore();\n #popover: PopoverApi | null = null;\n #snapshot: SnapshotController<PopoverInput> | null = null;\n\n // Cleanup controllers\n #disconnect: AbortController | null = null;\n #triggerAbort: AbortController | null = null;\n #currentTrigger: HTMLElement | null = null;\n #positionAbort: AbortController | null = null;\n #positionFrame = 0;\n #resizeObserver: ResizeObserver | null = null;\n #positionTrigger: HTMLElement | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (this.destroyed) return;\n\n this.#disconnect = new AbortController();\n\n this.#popover = createPopover({\n transition: createTransition(),\n onOpenChange: (nextOpen: boolean, details: PopoverChangeDetails) => {\n this.open = nextOpen;\n this.dispatchEvent(new CustomEvent('open-change', { detail: { open: nextOpen, ...details } }));\n },\n closeOnEscape: () => this.closeOnEscape,\n closeOnOutsideClick: () => this.closeOnOutsideClick,\n openOnHover: () => this.openOnHover,\n delay: () => this.delay,\n closeDelay: () => this.closeDelay,\n });\n\n // Register self as the popup element — the element IS the popup.\n this.#popover.setPopupElement(this);\n\n // Apply popup event handlers (pointerenter/leave, focusout) to self.\n applyElementProps(this, this.#popover.popupProps, { signal: this.#disconnect.signal });\n\n // Subscribe to interaction state for reactive updates.\n // Reuse the controller across connect/disconnect cycles to avoid\n // leaking stale controllers in the host's controller set.\n if (this.#snapshot) {\n this.#snapshot.track(this.#popover.input);\n } else {\n this.#snapshot = new SnapshotController(this, this.#popover.input);\n }\n }\n\n protected override firstUpdated(changed: PropertyValues): void {\n super.firstUpdated(changed);\n\n // Uncontrolled mode: open if `defaultOpen` is set. Controlled `open`\n // is already synced by `willUpdate` on the first render cycle.\n if (this.defaultOpen && !this.open) {\n this.#popover?.open();\n }\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#cleanupPositioning();\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n override destroyCallback(): void {\n this.#cleanupPositioning();\n this.#cleanupTrigger();\n this.#popover?.destroy();\n super.destroyCallback();\n }\n\n protected override willUpdate(changed: PropertyValues): void {\n super.willUpdate(changed);\n this.#core.setProps(this);\n\n // Sync controlled open state\n if (this.#popover && changed.has('open')) {\n const { active: interactionOpen } = this.#popover.input.current;\n if (this.open !== interactionOpen) {\n if (this.open) {\n this.#popover.open();\n } else {\n this.#popover.close();\n }\n }\n }\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n if (!this.#popover) return;\n\n // Discover trigger via commandfor linkage.\n const triggerEl = this.#findTrigger();\n this.#syncTrigger(triggerEl);\n\n // Derive state from core + input.\n const input = this.#popover.input.current;\n this.#core.setInput(input);\n const state = this.#core.getState();\n\n // Apply popup ARIA and data attributes to self.\n applyElementProps(this, this.#core.getPopupAttrs(state));\n applyStateDataAttrs(this, state, PopoverDataAttrs);\n\n // Show/hide via Popover API AFTER data attributes are applied so\n // `data-starting-style` is present before the first visible frame.\n if (state.open) {\n tryShowPopover(this);\n } else {\n tryHidePopover(this);\n }\n\n // Apply trigger ARIA and anchor-name to the discovered trigger.\n if (this.#currentTrigger) {\n applyElementProps(this.#currentTrigger, this.#core.getTriggerAttrs(state, this.id));\n applyStyles(this.#currentTrigger, getAnchorNameStyle(this.id));\n }\n\n // Skip positioning when closed — no rects to measure.\n if (!state.open) {\n this.#cleanupPositioning();\n return;\n }\n\n // Apply positioning styles to self.\n const posOpts = { side: state.side, align: state.align };\n\n if (supportsAnchorPositioning()) {\n // Native CSS Anchor Positioning — no JS rect measurements needed.\n applyStyles(this, getAnchorPositionStyle(this.id, posOpts));\n } else {\n // JS fallback: measure rects and resolve CSS var offsets.\n const triggerRect = this.#currentTrigger?.getBoundingClientRect();\n const selfRect = getPopupPositionRect(this);\n const boundaryRect = document.documentElement.getBoundingClientRect();\n const offsets = resolveOffsets(this);\n applyStyles(this, getAnchorPositionStyle(this.id, posOpts, triggerRect, selfRect, boundaryRect, offsets));\n }\n\n this.#syncPositioning();\n }\n\n // --- Trigger discovery ---\n\n #findTrigger(): HTMLElement | null {\n if (!this.id) return null;\n const root = this.getRootNode() as Document | ShadowRoot;\n return root.querySelector<HTMLElement>(`[commandfor=\"${this.id}\"]`);\n }\n\n #syncTrigger(triggerEl: HTMLElement | null): void {\n if (triggerEl === this.#currentTrigger) return;\n\n this.#cleanupPositioning();\n this.#cleanupTrigger();\n this.#currentTrigger = triggerEl;\n this.#popover?.setTriggerElement(triggerEl);\n\n if (triggerEl && this.#popover) {\n this.#triggerAbort = new AbortController();\n applyElementProps(triggerEl, this.#popover.triggerProps, { signal: this.#triggerAbort.signal });\n }\n }\n\n #cleanupTrigger(): void {\n if (this.#currentTrigger) {\n // Remove ARIA attributes and anchor-name style from the old trigger.\n applyElementProps(this.#currentTrigger, {\n 'aria-expanded': undefined,\n 'aria-haspopup': undefined,\n 'aria-controls': undefined,\n });\n this.#currentTrigger.style.removeProperty('anchor-name');\n }\n\n this.#triggerAbort?.abort();\n this.#triggerAbort = null;\n this.#currentTrigger = null;\n }\n\n #syncPositioning(): void {\n if (supportsAnchorPositioning()) return;\n\n const triggerEl = this.#currentTrigger;\n\n if (!triggerEl) return;\n if (this.#positionAbort && this.#positionTrigger === triggerEl) return;\n\n this.#cleanupPositioning();\n this.#positionAbort = new AbortController();\n this.#positionTrigger = triggerEl;\n const { signal } = this.#positionAbort;\n\n const reposition = () => {\n cancelAnimationFrame(this.#positionFrame);\n this.#positionFrame = requestAnimationFrame(() => {\n if (signal.aborted) return;\n this.requestUpdate();\n });\n };\n\n window.addEventListener('scroll', reposition, { capture: true, passive: true, signal });\n window.addEventListener('resize', reposition, { signal });\n\n if (typeof ResizeObserver === 'function') {\n this.#resizeObserver = new ResizeObserver(() => {\n reposition();\n });\n this.#resizeObserver.observe(triggerEl);\n this.#resizeObserver.observe(this);\n }\n\n reposition();\n }\n\n #cleanupPositioning(): void {\n this.#positionAbort?.abort();\n this.#positionAbort = null;\n this.#positionTrigger = null;\n cancelAnimationFrame(this.#positionFrame);\n this.#positionFrame = 0;\n this.#resizeObserver?.disconnect();\n this.#resizeObserver = null;\n }\n}\n"],"mappings":"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"}
|
|
@@ -3,7 +3,6 @@ import { PlayerController } from "../../player/player-controller.js";
|
|
|
3
3
|
import { MediaUIElement } from "../media-ui-element.js";
|
|
4
4
|
import { PosterCore, PosterDataAttrs } from "@videojs/core";
|
|
5
5
|
import { selectPlayback } from "@videojs/core/dom";
|
|
6
|
-
|
|
7
6
|
//#region src/ui/poster/poster-element.ts
|
|
8
7
|
var PosterElement = class extends MediaUIElement {
|
|
9
8
|
constructor(..._args) {
|
|
@@ -16,7 +15,7 @@ var PosterElement = class extends MediaUIElement {
|
|
|
16
15
|
this.tagName = "media-poster";
|
|
17
16
|
}
|
|
18
17
|
};
|
|
19
|
-
|
|
20
18
|
//#endregion
|
|
21
19
|
export { PosterElement };
|
|
20
|
+
|
|
22
21
|
//# sourceMappingURL=poster-element.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"poster-element.js","names":[],"sources":["../../../../src/ui/poster/poster-element.ts"],"sourcesContent":["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"],"mappings":"
|
|
1
|
+
{"version":3,"file":"poster-element.js","names":[],"sources":["../../../../src/ui/poster/poster-element.ts"],"sourcesContent":["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"],"mappings":";;;;;;AAOA,IAAa,gBAAb,cAAmC,eAA2B;;;cAGlC,IAAI,YAAY;sBACR;oBACF,IAAI,iBAAiB,MAAM,eAAe,eAAe;;;iBAJ/D"}
|
|
@@ -3,7 +3,6 @@ import { PlayerController } from "../../player/player-controller.js";
|
|
|
3
3
|
import { MediaButtonElement } from "../media-button-element.js";
|
|
4
4
|
import { SeekButtonCore, SeekButtonDataAttrs } from "@videojs/core";
|
|
5
5
|
import { selectTime } from "@videojs/core/dom";
|
|
6
|
-
|
|
7
6
|
//#region src/ui/seek-button/seek-button-element.ts
|
|
8
7
|
var SeekButtonElement = class extends MediaButtonElement {
|
|
9
8
|
constructor(..._args) {
|
|
@@ -26,7 +25,7 @@ var SeekButtonElement = class extends MediaButtonElement {
|
|
|
26
25
|
this.core.seek(state);
|
|
27
26
|
}
|
|
28
27
|
};
|
|
29
|
-
|
|
30
28
|
//#endregion
|
|
31
29
|
export { SeekButtonElement };
|
|
30
|
+
|
|
32
31
|
//# sourceMappingURL=seek-button-element.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seek-button-element.js","names":[],"sources":["../../../../src/ui/seek-button/seek-button-element.ts"],"sourcesContent":["import { type MediaTimeState, SeekButtonCore, SeekButtonDataAttrs } from '@videojs/core';\nimport { selectTime } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap } from '@videojs/element';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaButtonElement } from '../media-button-element';\n\nexport class SeekButtonElement extends MediaButtonElement<SeekButtonCore> {\n static readonly tagName = 'media-seek-button';\n\n static override properties: PropertyDeclarationMap = {\n ...MediaButtonElement.properties,\n seconds: { type: Number },\n };\n\n seconds = SeekButtonCore.defaultProps.seconds;\n\n protected readonly core = new SeekButtonCore();\n protected readonly stateAttrMap = SeekButtonDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectTime);\n\n protected activate(state: MediaTimeState): void {\n this.core.seek(state);\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"seek-button-element.js","names":[],"sources":["../../../../src/ui/seek-button/seek-button-element.ts"],"sourcesContent":["import { type MediaTimeState, SeekButtonCore, SeekButtonDataAttrs } from '@videojs/core';\nimport { selectTime } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap } from '@videojs/element';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaButtonElement } from '../media-button-element';\n\nexport class SeekButtonElement extends MediaButtonElement<SeekButtonCore> {\n static readonly tagName = 'media-seek-button';\n\n static override properties: PropertyDeclarationMap = {\n ...MediaButtonElement.properties,\n seconds: { type: Number },\n };\n\n seconds = SeekButtonCore.defaultProps.seconds;\n\n protected readonly core = new SeekButtonCore();\n protected readonly stateAttrMap = SeekButtonDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectTime);\n\n protected activate(state: MediaTimeState): void {\n this.core.seek(state);\n }\n}\n"],"mappings":";;;;;;AAQA,IAAa,oBAAb,cAAuC,mBAAmC;;;iBAQ9D,eAAe,aAAa;cAEZ,IAAI,gBAAgB;sBACZ;oBACF,IAAI,iBAAiB,MAAM,eAAe,WAAW;;;iBAX3D;;;oBAE2B;GACnD,GAAG,mBAAmB;GACtB,SAAS,EAAE,MAAM,QAAQ;GAC1B;;CAQD,SAAmB,OAA6B;AAC9C,OAAK,KAAK,KAAK,MAAM"}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { createContext } from "@videojs/element/context";
|
|
2
|
-
|
|
3
|
-
//#region src/ui/slider/context.ts
|
|
4
|
-
const SLIDER_CONTEXT_KEY = Symbol("@videojs/slider");
|
|
5
|
-
const sliderContext = createContext(SLIDER_CONTEXT_KEY);
|
|
6
|
-
|
|
2
|
+
const sliderContext = createContext(Symbol("@videojs/slider"));
|
|
7
3
|
//#endregion
|
|
8
4
|
export { sliderContext };
|
|
5
|
+
|
|
9
6
|
//# sourceMappingURL=context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/slider/context.ts"],"sourcesContent":["import type { SliderState, StateAttrMap } from '@videojs/core';\nimport type { SliderThumbProps } from '@videojs/core/dom';\nimport { createContext } from '@videojs/element/context';\n\nexport interface SliderContextValue {\n /** Base slider state — children use this for data attributes and value display. */\n state: SliderState;\n /** Maps state keys to `data-*` attribute names for part elements. */\n stateAttrMap: StateAttrMap<SliderState>;\n /** Domain value at the current pointer position (e.g., seconds for time, percent for volume). */\n pointerValue: number;\n /** ARIA attributes for the thumb element (role, tabindex, aria-value*, etc.). */\n thumbAttrs: Record<string, string | number | boolean | undefined>;\n /** Keyboard and focus event handlers for the thumb element. */\n thumbProps: SliderThumbProps;\n /** Optional formatter for value display. Receives domain value and value type. */\n formatValue?: ((value: number, type: 'current' | 'pointer') => string) | undefined;\n}\n\nconst SLIDER_CONTEXT_KEY = Symbol('@videojs/slider');\n\nexport const sliderContext = createContext<SliderContextValue>(SLIDER_CONTEXT_KEY);\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"context.js","names":[],"sources":["../../../../src/ui/slider/context.ts"],"sourcesContent":["import type { SliderState, StateAttrMap } from '@videojs/core';\nimport type { SliderThumbProps } from '@videojs/core/dom';\nimport { createContext } from '@videojs/element/context';\n\nexport interface SliderContextValue {\n /** Base slider state — children use this for data attributes and value display. */\n state: SliderState;\n /** Maps state keys to `data-*` attribute names for part elements. */\n stateAttrMap: StateAttrMap<SliderState>;\n /** Domain value at the current pointer position (e.g., seconds for time, percent for volume). */\n pointerValue: number;\n /** ARIA attributes for the thumb element (role, tabindex, aria-value*, etc.). */\n thumbAttrs: Record<string, string | number | boolean | undefined>;\n /** Keyboard and focus event handlers for the thumb element. */\n thumbProps: SliderThumbProps;\n /** Optional formatter for value display. Receives domain value and value type. */\n formatValue?: ((value: number, type: 'current' | 'pointer') => string) | undefined;\n}\n\nconst SLIDER_CONTEXT_KEY = Symbol('@videojs/slider');\n\nexport const sliderContext = createContext<SliderContextValue>(SLIDER_CONTEXT_KEY);\n"],"mappings":";AAqBA,MAAa,gBAAgB,cAFF,OAAO,kBAAkB,CAE8B"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { ContextPartElement } from "../context-part-element.js";
|
|
2
2
|
import { sliderContext } from "./context.js";
|
|
3
3
|
import { ContextConsumer } from "@videojs/element/context";
|
|
4
|
-
|
|
5
4
|
//#region src/ui/slider/slider-buffer-element.ts
|
|
6
5
|
var SliderBufferElement = class extends ContextPartElement {
|
|
7
6
|
constructor(..._args) {
|
|
@@ -15,7 +14,7 @@ var SliderBufferElement = class extends ContextPartElement {
|
|
|
15
14
|
this.tagName = "media-slider-buffer";
|
|
16
15
|
}
|
|
17
16
|
};
|
|
18
|
-
|
|
19
17
|
//#endregion
|
|
20
18
|
export { SliderBufferElement };
|
|
19
|
+
|
|
21
20
|
//# sourceMappingURL=slider-buffer-element.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slider-buffer-element.js","names":[],"sources":["../../../../src/ui/slider/slider-buffer-element.ts"],"sourcesContent":["import type { SliderState } from '@videojs/core';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { ContextPartElement } from '../context-part-element';\nimport { sliderContext } from './context';\n\nexport class SliderBufferElement extends ContextPartElement<SliderState> {\n static readonly tagName = 'media-slider-buffer';\n\n protected readonly consumer = new ContextConsumer(this, { context: sliderContext, subscribe: true });\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"slider-buffer-element.js","names":[],"sources":["../../../../src/ui/slider/slider-buffer-element.ts"],"sourcesContent":["import type { SliderState } from '@videojs/core';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { ContextPartElement } from '../context-part-element';\nimport { sliderContext } from './context';\n\nexport class SliderBufferElement extends ContextPartElement<SliderState> {\n static readonly tagName = 'media-slider-buffer';\n\n protected readonly consumer = new ContextConsumer(this, { context: sliderContext, subscribe: true });\n}\n"],"mappings":";;;;AAMA,IAAa,sBAAb,cAAyC,mBAAgC;;;kBAGzC,IAAI,gBAAgB,MAAM;GAAE,SAAS;GAAe,WAAW;GAAM,CAAC;;;iBAF1E"}
|
|
@@ -4,7 +4,6 @@ import { SliderCore, SliderDataAttrs } from "@videojs/core";
|
|
|
4
4
|
import { applyElementProps, applyStateDataAttrs, createSlider, getSliderCSSVars } from "@videojs/core/dom";
|
|
5
5
|
import { ContextProvider } from "@videojs/element/context";
|
|
6
6
|
import { applyStyles, isRTL } from "@videojs/utils/dom";
|
|
7
|
-
|
|
8
7
|
//#region src/ui/slider/slider-element.ts
|
|
9
8
|
var SliderElement = class extends MediaElement {
|
|
10
9
|
constructor(..._args) {
|
|
@@ -116,7 +115,7 @@ var SliderElement = class extends MediaElement {
|
|
|
116
115
|
});
|
|
117
116
|
}
|
|
118
117
|
};
|
|
119
|
-
|
|
120
118
|
//#endregion
|
|
121
119
|
export { SliderElement };
|
|
120
|
+
|
|
122
121
|
//# sourceMappingURL=slider-element.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slider-element.js","names":["#core","#provider","#disconnect","#slider"],"sources":["../../../../src/ui/slider/slider-element.ts"],"sourcesContent":["import { SliderCore, SliderDataAttrs } from '@videojs/core';\nimport {\n applyElementProps,\n applyStateDataAttrs,\n createSlider,\n getSliderCSSVars,\n type SliderApi,\n} from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextProvider } from '@videojs/element/context';\nimport { applyStyles, isRTL } from '@videojs/utils/dom';\n\nimport { MediaElement } from '../media-element';\nimport { sliderContext } from './context';\n\nexport class SliderElement extends MediaElement {\n static readonly tagName = 'media-slider';\n\n static override properties = {\n label: { type: String },\n value: { type: Number },\n min: { type: Number },\n max: { type: Number },\n step: { type: Number },\n largeStep: { type: Number, attribute: 'large-step' },\n orientation: { type: String },\n disabled: { type: Boolean },\n thumbAlignment: { type: String, attribute: 'thumb-alignment' },\n } satisfies PropertyDeclarationMap<keyof SliderCore.Props>;\n\n label = SliderCore.defaultProps.label;\n value = SliderCore.defaultProps.value;\n min = SliderCore.defaultProps.min;\n max = SliderCore.defaultProps.max;\n step = SliderCore.defaultProps.step;\n largeStep = SliderCore.defaultProps.largeStep;\n orientation = SliderCore.defaultProps.orientation;\n disabled = SliderCore.defaultProps.disabled;\n thumbAlignment = SliderCore.defaultProps.thumbAlignment;\n\n readonly #core = new SliderCore();\n readonly #provider = new ContextProvider(this, { context: sliderContext });\n\n #slider: SliderApi | null = null;\n #disconnect: AbortController | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (this.destroyed) return;\n\n this.#disconnect = new AbortController();\n const signal = this.#disconnect.signal;\n\n this.#slider = createSlider({\n getElement: () => this,\n getThumbElement: () => this.querySelector<HTMLElement>('media-slider-thumb'),\n getOrientation: () => this.orientation,\n isRTL: () => isRTL(this),\n isDisabled: () => this.disabled,\n getPercent: () => this.#core.percentFromValue(this.value),\n getStepPercent: () => this.#core.getStepPercent(),\n getLargeStepPercent: () => this.#core.getLargeStepPercent(),\n onValueChange: (percent) => {\n this.value = this.#core.valueFromPercent(percent);\n this.dispatchEvent(new CustomEvent('value-change', { detail: { value: this.value }, bubbles: true }));\n },\n onValueCommit: (percent) => {\n this.value = this.#core.valueFromPercent(percent);\n this.dispatchEvent(new CustomEvent('value-commit', { detail: { value: this.value }, bubbles: true }));\n },\n onDragStart: () => {\n this.dispatchEvent(new CustomEvent('drag-start', { bubbles: true }));\n },\n onDragEnd: () => {\n this.dispatchEvent(new CustomEvent('drag-end', { bubbles: true }));\n },\n adjustPercent: (raw, thumbSize, trackSize) => this.#core.adjustPercentForAlignment(raw, thumbSize, trackSize),\n onResize: () => this.requestUpdate(),\n });\n\n applyElementProps(this, this.#slider.rootProps, { signal });\n applyStyles(this, this.#slider.rootStyle);\n this.#slider.input.subscribe(() => this.requestUpdate(), { signal });\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n override destroyCallback(): void {\n this.#slider?.destroy();\n super.destroyCallback();\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 if (!this.#slider) return;\n\n this.#core.setInput(this.#slider.input.current);\n const state = this.#core.getSliderState(this.value);\n\n const cssVars = getSliderCSSVars(this.#slider.adjustForAlignment(state));\n\n applyStyles(this, cssVars);\n\n // Apply state data attributes to the root element.\n applyStateDataAttrs(this, state, SliderDataAttrs);\n\n // Provide context to child elements (thumb, value, track, etc.).\n this.#provider.setValue({\n state,\n stateAttrMap: SliderDataAttrs,\n pointerValue: this.#core.valueFromPercent(state.pointerPercent),\n thumbAttrs: this.#core.getAttrs(state),\n thumbProps: this.#slider.thumbProps,\n });\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"slider-element.js","names":["#core","#provider","#disconnect","#slider"],"sources":["../../../../src/ui/slider/slider-element.ts"],"sourcesContent":["import { SliderCore, SliderDataAttrs } from '@videojs/core';\nimport {\n applyElementProps,\n applyStateDataAttrs,\n createSlider,\n getSliderCSSVars,\n type SliderApi,\n} from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextProvider } from '@videojs/element/context';\nimport { applyStyles, isRTL } from '@videojs/utils/dom';\n\nimport { MediaElement } from '../media-element';\nimport { sliderContext } from './context';\n\nexport class SliderElement extends MediaElement {\n static readonly tagName = 'media-slider';\n\n static override properties = {\n label: { type: String },\n value: { type: Number },\n min: { type: Number },\n max: { type: Number },\n step: { type: Number },\n largeStep: { type: Number, attribute: 'large-step' },\n orientation: { type: String },\n disabled: { type: Boolean },\n thumbAlignment: { type: String, attribute: 'thumb-alignment' },\n } satisfies PropertyDeclarationMap<keyof SliderCore.Props>;\n\n label = SliderCore.defaultProps.label;\n value = SliderCore.defaultProps.value;\n min = SliderCore.defaultProps.min;\n max = SliderCore.defaultProps.max;\n step = SliderCore.defaultProps.step;\n largeStep = SliderCore.defaultProps.largeStep;\n orientation = SliderCore.defaultProps.orientation;\n disabled = SliderCore.defaultProps.disabled;\n thumbAlignment = SliderCore.defaultProps.thumbAlignment;\n\n readonly #core = new SliderCore();\n readonly #provider = new ContextProvider(this, { context: sliderContext });\n\n #slider: SliderApi | null = null;\n #disconnect: AbortController | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (this.destroyed) return;\n\n this.#disconnect = new AbortController();\n const signal = this.#disconnect.signal;\n\n this.#slider = createSlider({\n getElement: () => this,\n getThumbElement: () => this.querySelector<HTMLElement>('media-slider-thumb'),\n getOrientation: () => this.orientation,\n isRTL: () => isRTL(this),\n isDisabled: () => this.disabled,\n getPercent: () => this.#core.percentFromValue(this.value),\n getStepPercent: () => this.#core.getStepPercent(),\n getLargeStepPercent: () => this.#core.getLargeStepPercent(),\n onValueChange: (percent) => {\n this.value = this.#core.valueFromPercent(percent);\n this.dispatchEvent(new CustomEvent('value-change', { detail: { value: this.value }, bubbles: true }));\n },\n onValueCommit: (percent) => {\n this.value = this.#core.valueFromPercent(percent);\n this.dispatchEvent(new CustomEvent('value-commit', { detail: { value: this.value }, bubbles: true }));\n },\n onDragStart: () => {\n this.dispatchEvent(new CustomEvent('drag-start', { bubbles: true }));\n },\n onDragEnd: () => {\n this.dispatchEvent(new CustomEvent('drag-end', { bubbles: true }));\n },\n adjustPercent: (raw, thumbSize, trackSize) => this.#core.adjustPercentForAlignment(raw, thumbSize, trackSize),\n onResize: () => this.requestUpdate(),\n });\n\n applyElementProps(this, this.#slider.rootProps, { signal });\n applyStyles(this, this.#slider.rootStyle);\n this.#slider.input.subscribe(() => this.requestUpdate(), { signal });\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n override destroyCallback(): void {\n this.#slider?.destroy();\n super.destroyCallback();\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 if (!this.#slider) return;\n\n this.#core.setInput(this.#slider.input.current);\n const state = this.#core.getSliderState(this.value);\n\n const cssVars = getSliderCSSVars(this.#slider.adjustForAlignment(state));\n\n applyStyles(this, cssVars);\n\n // Apply state data attributes to the root element.\n applyStateDataAttrs(this, state, SliderDataAttrs);\n\n // Provide context to child elements (thumb, value, track, etc.).\n this.#provider.setValue({\n state,\n stateAttrMap: SliderDataAttrs,\n pointerValue: this.#core.valueFromPercent(state.pointerPercent),\n thumbAttrs: this.#core.getAttrs(state),\n thumbProps: this.#slider.thumbProps,\n });\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { ContextPartElement } from "../context-part-element.js";
|
|
2
2
|
import { sliderContext } from "./context.js";
|
|
3
3
|
import { ContextConsumer } from "@videojs/element/context";
|
|
4
|
-
|
|
5
4
|
//#region src/ui/slider/slider-fill-element.ts
|
|
6
5
|
var SliderFillElement = class extends ContextPartElement {
|
|
7
6
|
constructor(..._args) {
|
|
@@ -15,7 +14,7 @@ var SliderFillElement = class extends ContextPartElement {
|
|
|
15
14
|
this.tagName = "media-slider-fill";
|
|
16
15
|
}
|
|
17
16
|
};
|
|
18
|
-
|
|
19
17
|
//#endregion
|
|
20
18
|
export { SliderFillElement };
|
|
19
|
+
|
|
21
20
|
//# sourceMappingURL=slider-fill-element.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slider-fill-element.js","names":[],"sources":["../../../../src/ui/slider/slider-fill-element.ts"],"sourcesContent":["import type { SliderState } from '@videojs/core';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { ContextPartElement } from '../context-part-element';\nimport { sliderContext } from './context';\n\nexport class SliderFillElement extends ContextPartElement<SliderState> {\n static readonly tagName = 'media-slider-fill';\n\n protected readonly consumer = new ContextConsumer(this, { context: sliderContext, subscribe: true });\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"slider-fill-element.js","names":[],"sources":["../../../../src/ui/slider/slider-fill-element.ts"],"sourcesContent":["import type { SliderState } from '@videojs/core';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { ContextPartElement } from '../context-part-element';\nimport { sliderContext } from './context';\n\nexport class SliderFillElement extends ContextPartElement<SliderState> {\n static readonly tagName = 'media-slider-fill';\n\n protected readonly consumer = new ContextConsumer(this, { context: sliderContext, subscribe: true });\n}\n"],"mappings":";;;;AAMA,IAAa,oBAAb,cAAuC,mBAAgC;;;kBAGvC,IAAI,gBAAgB,MAAM;GAAE,SAAS;GAAe,WAAW;GAAM,CAAC;;;iBAF1E"}
|
|
@@ -3,7 +3,6 @@ import { sliderContext } from "./context.js";
|
|
|
3
3
|
import { applyStateDataAttrs, getSliderPreviewStyle } from "@videojs/core/dom";
|
|
4
4
|
import { ContextConsumer } from "@videojs/element/context";
|
|
5
5
|
import { applyStyles } from "@videojs/utils/dom";
|
|
6
|
-
|
|
7
6
|
//#region src/ui/slider/slider-preview-element.ts
|
|
8
7
|
var SliderPreviewElement = class extends MediaElement {
|
|
9
8
|
constructor(..._args) {
|
|
@@ -45,7 +44,7 @@ var SliderPreviewElement = class extends MediaElement {
|
|
|
45
44
|
this.#applyPosition();
|
|
46
45
|
}
|
|
47
46
|
};
|
|
48
|
-
|
|
49
47
|
//#endregion
|
|
50
48
|
export { SliderPreviewElement };
|
|
49
|
+
|
|
51
50
|
//# sourceMappingURL=slider-preview-element.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slider-preview-element.js","names":["#ctx","#resizeObserver","#width","#applyPosition"],"sources":["../../../../src/ui/slider/slider-preview-element.ts"],"sourcesContent":["import type { SliderPreviewOverflow } from '@videojs/core/dom';\nimport { applyStateDataAttrs, getSliderPreviewStyle } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\nimport { applyStyles } from '@videojs/utils/dom';\n\nimport { MediaElement } from '../media-element';\nimport { sliderContext } from './context';\n\nexport class SliderPreviewElement extends MediaElement {\n static readonly tagName = 'media-slider-preview';\n\n static override properties = {\n overflow: { type: String },\n } satisfies PropertyDeclarationMap<'overflow'>;\n\n overflow: SliderPreviewOverflow = 'clamp';\n\n readonly #ctx = new ContextConsumer(this, {\n context: sliderContext,\n subscribe: true,\n });\n\n #resizeObserver: ResizeObserver | null = null;\n #width = 0;\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n this.#resizeObserver = new ResizeObserver(([entry]) => {\n this.#width = entry!.contentRect.width;\n this.#applyPosition();\n });\n\n this.#resizeObserver.observe(this);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#resizeObserver?.disconnect();\n this.#resizeObserver = null;\n }\n\n #applyPosition(): void {\n applyStyles(this, getSliderPreviewStyle(this.#width, this.overflow));\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n\n const ctx = this.#ctx.value;\n if (ctx) applyStateDataAttrs(this, ctx.state, ctx.stateAttrMap);\n\n this.#applyPosition();\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"slider-preview-element.js","names":["#ctx","#resizeObserver","#width","#applyPosition"],"sources":["../../../../src/ui/slider/slider-preview-element.ts"],"sourcesContent":["import type { SliderPreviewOverflow } from '@videojs/core/dom';\nimport { applyStateDataAttrs, getSliderPreviewStyle } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\nimport { applyStyles } from '@videojs/utils/dom';\n\nimport { MediaElement } from '../media-element';\nimport { sliderContext } from './context';\n\nexport class SliderPreviewElement extends MediaElement {\n static readonly tagName = 'media-slider-preview';\n\n static override properties = {\n overflow: { type: String },\n } satisfies PropertyDeclarationMap<'overflow'>;\n\n overflow: SliderPreviewOverflow = 'clamp';\n\n readonly #ctx = new ContextConsumer(this, {\n context: sliderContext,\n subscribe: true,\n });\n\n #resizeObserver: ResizeObserver | null = null;\n #width = 0;\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n this.#resizeObserver = new ResizeObserver(([entry]) => {\n this.#width = entry!.contentRect.width;\n this.#applyPosition();\n });\n\n this.#resizeObserver.observe(this);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#resizeObserver?.disconnect();\n this.#resizeObserver = null;\n }\n\n #applyPosition(): void {\n applyStyles(this, getSliderPreviewStyle(this.#width, this.overflow));\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n\n const ctx = this.#ctx.value;\n if (ctx) applyStateDataAttrs(this, ctx.state, ctx.stateAttrMap);\n\n this.#applyPosition();\n }\n}\n"],"mappings":";;;;;;AASA,IAAa,uBAAb,cAA0C,aAAa;;;kBAOnB;;;iBANR;;;oBAEG,EAC3B,UAAU,EAAE,MAAM,QAAQ,EAC3B;;CAID,OAAgB,IAAI,gBAAgB,MAAM;EACxC,SAAS;EACT,WAAW;EACZ,CAAC;CAEF,kBAAyC;CACzC,SAAS;CAET,oBAAmC;AACjC,QAAM,mBAAmB;AAEzB,QAAA,iBAAuB,IAAI,gBAAgB,CAAC,WAAW;AACrD,SAAA,QAAc,MAAO,YAAY;AACjC,SAAA,eAAqB;IACrB;AAEF,QAAA,eAAqB,QAAQ,KAAK;;CAGpC,uBAAsC;AACpC,QAAM,sBAAsB;AAC5B,QAAA,gBAAsB,YAAY;AAClC,QAAA,iBAAuB;;CAGzB,iBAAuB;AACrB,cAAY,MAAM,sBAAsB,MAAA,OAAa,KAAK,SAAS,CAAC;;CAGtE,OAA0B,UAAgC;AACxD,QAAM,OAAO,SAAS;EAEtB,MAAM,MAAM,MAAA,IAAU;AACtB,MAAI,IAAK,qBAAoB,MAAM,IAAI,OAAO,IAAI,aAAa;AAE/D,QAAA,eAAqB"}
|
|
@@ -2,7 +2,6 @@ import { MediaElement } from "../media-element.js";
|
|
|
2
2
|
import { sliderContext } from "./context.js";
|
|
3
3
|
import { applyElementProps, applyStateDataAttrs } from "@videojs/core/dom";
|
|
4
4
|
import { ContextConsumer } from "@videojs/element/context";
|
|
5
|
-
|
|
6
5
|
//#region src/ui/slider/slider-thumb-element.ts
|
|
7
6
|
var SliderThumbElement = class extends MediaElement {
|
|
8
7
|
static {
|
|
@@ -37,7 +36,7 @@ var SliderThumbElement = class extends MediaElement {
|
|
|
37
36
|
applyStateDataAttrs(this, ctx.state, ctx.stateAttrMap);
|
|
38
37
|
}
|
|
39
38
|
};
|
|
40
|
-
|
|
41
39
|
//#endregion
|
|
42
40
|
export { SliderThumbElement };
|
|
41
|
+
|
|
43
42
|
//# sourceMappingURL=slider-thumb-element.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slider-thumb-element.js","names":["#ctx","#disconnect","#thumbPropsApplied"],"sources":["../../../../src/ui/slider/slider-thumb-element.ts"],"sourcesContent":["import { applyElementProps, applyStateDataAttrs } from '@videojs/core/dom';\nimport type { PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { MediaElement } from '../media-element';\nimport { sliderContext } from './context';\n\nexport class SliderThumbElement extends MediaElement {\n static readonly tagName = 'media-slider-thumb';\n\n readonly #ctx = new ContextConsumer(this, {\n context: sliderContext,\n subscribe: true,\n });\n\n #disconnect: AbortController | null = null;\n #thumbPropsApplied = false;\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.#disconnect = new AbortController();\n this.#thumbPropsApplied = false;\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n this.#thumbPropsApplied = false;\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n\n const ctx = this.#ctx.value;\n if (!ctx) return;\n\n // Apply keyboard and focus handlers once — they don't change per slider instance.\n if (!this.#thumbPropsApplied && this.#disconnect) {\n applyElementProps(this, ctx.thumbProps, { signal: this.#disconnect.signal });\n this.#thumbPropsApplied = true;\n }\n\n // Apply ARIA attributes every update (values change as slider moves).\n applyElementProps(this, ctx.thumbAttrs);\n\n // Apply state data attributes.\n applyStateDataAttrs(this, ctx.state, ctx.stateAttrMap);\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"slider-thumb-element.js","names":["#ctx","#disconnect","#thumbPropsApplied"],"sources":["../../../../src/ui/slider/slider-thumb-element.ts"],"sourcesContent":["import { applyElementProps, applyStateDataAttrs } from '@videojs/core/dom';\nimport type { PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { MediaElement } from '../media-element';\nimport { sliderContext } from './context';\n\nexport class SliderThumbElement extends MediaElement {\n static readonly tagName = 'media-slider-thumb';\n\n readonly #ctx = new ContextConsumer(this, {\n context: sliderContext,\n subscribe: true,\n });\n\n #disconnect: AbortController | null = null;\n #thumbPropsApplied = false;\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.#disconnect = new AbortController();\n this.#thumbPropsApplied = false;\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n this.#thumbPropsApplied = false;\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n\n const ctx = this.#ctx.value;\n if (!ctx) return;\n\n // Apply keyboard and focus handlers once — they don't change per slider instance.\n if (!this.#thumbPropsApplied && this.#disconnect) {\n applyElementProps(this, ctx.thumbProps, { signal: this.#disconnect.signal });\n this.#thumbPropsApplied = true;\n }\n\n // Apply ARIA attributes every update (values change as slider moves).\n applyElementProps(this, ctx.thumbAttrs);\n\n // Apply state data attributes.\n applyStateDataAttrs(this, ctx.state, ctx.stateAttrMap);\n }\n}\n"],"mappings":";;;;;AAOA,IAAa,qBAAb,cAAwC,aAAa;;iBACzB;;CAE1B,OAAgB,IAAI,gBAAgB,MAAM;EACxC,SAAS;EACT,WAAW;EACZ,CAAC;CAEF,cAAsC;CACtC,qBAAqB;CAErB,oBAAmC;AACjC,QAAM,mBAAmB;AACzB,QAAA,aAAmB,IAAI,iBAAiB;AACxC,QAAA,oBAA0B;;CAG5B,uBAAsC;AACpC,QAAM,sBAAsB;AAC5B,QAAA,YAAkB,OAAO;AACzB,QAAA,aAAmB;AACnB,QAAA,oBAA0B;;CAG5B,OAA0B,UAAgC;AACxD,QAAM,OAAO,SAAS;EAEtB,MAAM,MAAM,MAAA,IAAU;AACtB,MAAI,CAAC,IAAK;AAGV,MAAI,CAAC,MAAA,qBAA2B,MAAA,YAAkB;AAChD,qBAAkB,MAAM,IAAI,YAAY,EAAE,QAAQ,MAAA,WAAiB,QAAQ,CAAC;AAC5E,SAAA,oBAA0B;;AAI5B,oBAAkB,MAAM,IAAI,WAAW;AAGvC,sBAAoB,MAAM,IAAI,OAAO,IAAI,aAAa"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { sliderContext } from "./context.js";
|
|
2
2
|
import { ThumbnailElement } from "../thumbnail/thumbnail-element.js";
|
|
3
3
|
import { ContextConsumer } from "@videojs/element/context";
|
|
4
|
-
|
|
5
4
|
//#region src/ui/slider/slider-thumbnail-element.ts
|
|
6
5
|
var SliderThumbnailElement = class extends ThumbnailElement {
|
|
7
6
|
static {
|
|
@@ -17,7 +16,7 @@ var SliderThumbnailElement = class extends ThumbnailElement {
|
|
|
17
16
|
super.update(changed);
|
|
18
17
|
}
|
|
19
18
|
};
|
|
20
|
-
|
|
21
19
|
//#endregion
|
|
22
20
|
export { SliderThumbnailElement };
|
|
21
|
+
|
|
23
22
|
//# sourceMappingURL=slider-thumbnail-element.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slider-thumbnail-element.js","names":["#ctx"],"sources":["../../../../src/ui/slider/slider-thumbnail-element.ts"],"sourcesContent":["import type { PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { ThumbnailElement } from '../thumbnail/thumbnail-element';\nimport { sliderContext } from './context';\n\n// @ts-expect-error TS2417 — tagName narrows to a different literal for custom element registration.\nexport class SliderThumbnailElement extends ThumbnailElement {\n static override readonly tagName = 'media-slider-thumbnail';\n\n readonly #ctx = new ContextConsumer(this, {\n context: sliderContext,\n subscribe: true,\n });\n\n protected override update(changed: PropertyValues): void {\n const ctx = this.#ctx.value;\n if (ctx) this.time = ctx.pointerValue;\n super.update(changed);\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"slider-thumbnail-element.js","names":["#ctx"],"sources":["../../../../src/ui/slider/slider-thumbnail-element.ts"],"sourcesContent":["import type { PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { ThumbnailElement } from '../thumbnail/thumbnail-element';\nimport { sliderContext } from './context';\n\n// @ts-expect-error TS2417 — tagName narrows to a different literal for custom element registration.\nexport class SliderThumbnailElement extends ThumbnailElement {\n static override readonly tagName = 'media-slider-thumbnail';\n\n readonly #ctx = new ContextConsumer(this, {\n context: sliderContext,\n subscribe: true,\n });\n\n protected override update(changed: PropertyValues): void {\n const ctx = this.#ctx.value;\n if (ctx) this.time = ctx.pointerValue;\n super.update(changed);\n }\n}\n"],"mappings":";;;;AAOA,IAAa,yBAAb,cAA4C,iBAAiB;;iBACxB;;CAEnC,OAAgB,IAAI,gBAAgB,MAAM;EACxC,SAAS;EACT,WAAW;EACZ,CAAC;CAEF,OAA0B,SAA+B;EACvD,MAAM,MAAM,MAAA,IAAU;AACtB,MAAI,IAAK,MAAK,OAAO,IAAI;AACzB,QAAM,OAAO,QAAQ"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { ContextPartElement } from "../context-part-element.js";
|
|
2
2
|
import { sliderContext } from "./context.js";
|
|
3
3
|
import { ContextConsumer } from "@videojs/element/context";
|
|
4
|
-
|
|
5
4
|
//#region src/ui/slider/slider-track-element.ts
|
|
6
5
|
var SliderTrackElement = class extends ContextPartElement {
|
|
7
6
|
constructor(..._args) {
|
|
@@ -15,7 +14,7 @@ var SliderTrackElement = class extends ContextPartElement {
|
|
|
15
14
|
this.tagName = "media-slider-track";
|
|
16
15
|
}
|
|
17
16
|
};
|
|
18
|
-
|
|
19
17
|
//#endregion
|
|
20
18
|
export { SliderTrackElement };
|
|
19
|
+
|
|
21
20
|
//# sourceMappingURL=slider-track-element.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slider-track-element.js","names":[],"sources":["../../../../src/ui/slider/slider-track-element.ts"],"sourcesContent":["import type { SliderState } from '@videojs/core';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { ContextPartElement } from '../context-part-element';\nimport { sliderContext } from './context';\n\nexport class SliderTrackElement extends ContextPartElement<SliderState> {\n static readonly tagName = 'media-slider-track';\n\n protected readonly consumer = new ContextConsumer(this, { context: sliderContext, subscribe: true });\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"slider-track-element.js","names":[],"sources":["../../../../src/ui/slider/slider-track-element.ts"],"sourcesContent":["import type { SliderState } from '@videojs/core';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { ContextPartElement } from '../context-part-element';\nimport { sliderContext } from './context';\n\nexport class SliderTrackElement extends ContextPartElement<SliderState> {\n static readonly tagName = 'media-slider-track';\n\n protected readonly consumer = new ContextConsumer(this, { context: sliderContext, subscribe: true });\n}\n"],"mappings":";;;;AAMA,IAAa,qBAAb,cAAwC,mBAAgC;;;kBAGxC,IAAI,gBAAgB,MAAM;GAAE,SAAS;GAAe,WAAW;GAAM,CAAC;;;iBAF1E"}
|
|
@@ -2,7 +2,6 @@ import { MediaElement } from "../media-element.js";
|
|
|
2
2
|
import { sliderContext } from "./context.js";
|
|
3
3
|
import { applyStateDataAttrs } from "@videojs/core/dom";
|
|
4
4
|
import { ContextConsumer } from "@videojs/element/context";
|
|
5
|
-
|
|
6
5
|
//#region src/ui/slider/slider-value-element.ts
|
|
7
6
|
var SliderValueElement = class extends MediaElement {
|
|
8
7
|
constructor(..._args) {
|
|
@@ -32,7 +31,7 @@ var SliderValueElement = class extends MediaElement {
|
|
|
32
31
|
applyStateDataAttrs(this, ctx.state, ctx.stateAttrMap);
|
|
33
32
|
}
|
|
34
33
|
};
|
|
35
|
-
|
|
36
34
|
//#endregion
|
|
37
35
|
export { SliderValueElement };
|
|
36
|
+
|
|
38
37
|
//# sourceMappingURL=slider-value-element.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slider-value-element.js","names":["#ctx"],"sources":["../../../../src/ui/slider/slider-value-element.ts"],"sourcesContent":["import { applyStateDataAttrs } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { MediaElement } from '../media-element';\nimport { sliderContext } from './context';\n\nexport class SliderValueElement extends MediaElement {\n static readonly tagName = 'media-slider-value';\n\n static override properties = {\n type: { type: String },\n } satisfies PropertyDeclarationMap<'type'>;\n\n type: 'current' | 'pointer' = 'current';\n\n readonly #ctx = new ContextConsumer(this, {\n context: sliderContext,\n subscribe: true,\n });\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.setAttribute('aria-live', 'off');\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n\n const ctx = this.#ctx.value;\n if (!ctx) return;\n\n const value = this.type === 'pointer' ? ctx.pointerValue : ctx.state.value;\n\n this.textContent = ctx.formatValue ? ctx.formatValue(value, this.type) : String(Math.round(value));\n\n applyStateDataAttrs(this, ctx.state, ctx.stateAttrMap);\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"slider-value-element.js","names":["#ctx"],"sources":["../../../../src/ui/slider/slider-value-element.ts"],"sourcesContent":["import { applyStateDataAttrs } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\nimport { ContextConsumer } from '@videojs/element/context';\n\nimport { MediaElement } from '../media-element';\nimport { sliderContext } from './context';\n\nexport class SliderValueElement extends MediaElement {\n static readonly tagName = 'media-slider-value';\n\n static override properties = {\n type: { type: String },\n } satisfies PropertyDeclarationMap<'type'>;\n\n type: 'current' | 'pointer' = 'current';\n\n readonly #ctx = new ContextConsumer(this, {\n context: sliderContext,\n subscribe: true,\n });\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.setAttribute('aria-live', 'off');\n }\n\n protected override update(_changed: PropertyValues): void {\n super.update(_changed);\n\n const ctx = this.#ctx.value;\n if (!ctx) return;\n\n const value = this.type === 'pointer' ? ctx.pointerValue : ctx.state.value;\n\n this.textContent = ctx.formatValue ? ctx.formatValue(value, this.type) : String(Math.round(value));\n\n applyStateDataAttrs(this, ctx.state, ctx.stateAttrMap);\n }\n}\n"],"mappings":";;;;;AAOA,IAAa,qBAAb,cAAwC,aAAa;;;cAOrB;;;iBANJ;;;oBAEG,EAC3B,MAAM,EAAE,MAAM,QAAQ,EACvB;;CAID,OAAgB,IAAI,gBAAgB,MAAM;EACxC,SAAS;EACT,WAAW;EACZ,CAAC;CAEF,oBAAmC;AACjC,QAAM,mBAAmB;AACzB,OAAK,aAAa,aAAa,MAAM;;CAGvC,OAA0B,UAAgC;AACxD,QAAM,OAAO,SAAS;EAEtB,MAAM,MAAM,MAAA,IAAU;AACtB,MAAI,CAAC,IAAK;EAEV,MAAM,QAAQ,KAAK,SAAS,YAAY,IAAI,eAAe,IAAI,MAAM;AAErE,OAAK,cAAc,IAAI,cAAc,IAAI,YAAY,OAAO,KAAK,KAAK,GAAG,OAAO,KAAK,MAAM,MAAM,CAAC;AAElG,sBAAoB,MAAM,IAAI,OAAO,IAAI,aAAa"}
|
|
@@ -3,7 +3,6 @@ import { MediaElement } from "../media-element.js";
|
|
|
3
3
|
import { PlayerController } from "../../player/player-controller.js";
|
|
4
4
|
import { ThumbnailCore, ThumbnailDataAttrs, mapCuesToThumbnails } from "@videojs/core";
|
|
5
5
|
import { applyElementProps, applyStateDataAttrs, createThumbnail, selectTextTrack } from "@videojs/core/dom";
|
|
6
|
-
|
|
7
6
|
//#region src/ui/thumbnail/thumbnail-element.ts
|
|
8
7
|
const SHADOW_CSS = `\
|
|
9
8
|
:host {
|
|
@@ -133,7 +132,7 @@ var ThumbnailElement = class extends MediaElement {
|
|
|
133
132
|
imgStyle.transform = "";
|
|
134
133
|
}
|
|
135
134
|
};
|
|
136
|
-
|
|
137
135
|
//#endregion
|
|
138
136
|
export { ThumbnailElement };
|
|
137
|
+
|
|
139
138
|
//# sourceMappingURL=thumbnail-element.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thumbnail-element.js","names":["#core","#img","#textTracks","#externalThumbnails","#api","#thumbnails","#lastTextTrack","#resetStyles","#applyResize"],"sources":["../../../../src/ui/thumbnail/thumbnail-element.ts"],"sourcesContent":["import {\n type MediaTextTrackState,\n mapCuesToThumbnails,\n ThumbnailCore,\n ThumbnailDataAttrs,\n type ThumbnailImage,\n type ThumbnailResizeResult,\n} from '@videojs/core';\nimport type { ThumbnailApi } from '@videojs/core/dom';\nimport { applyElementProps, applyStateDataAttrs, createThumbnail, selectTextTrack } 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\nconst SHADOW_CSS = `\\\n:host {\n display: inline-block;\n overflow: hidden;\n}\nimg {\n display: block;\n}`;\n\nexport class ThumbnailElement extends MediaElement {\n static readonly tagName = 'media-thumbnail';\n\n static override properties = {\n time: { type: Number },\n crossOrigin: { type: String, attribute: 'crossorigin' },\n loading: { type: String },\n fetchPriority: { type: String, attribute: 'fetchpriority' },\n } satisfies PropertyDeclarationMap<keyof ThumbnailCore.Props>;\n\n time = 0;\n crossOrigin: ThumbnailCore.Props['crossOrigin'];\n loading: ThumbnailCore.Props['loading'];\n fetchPriority: ThumbnailCore.Props['fetchPriority'];\n\n readonly #core = new ThumbnailCore();\n readonly #img = document.createElement('img');\n readonly #textTracks = new PlayerController(this, playerContext, selectTextTrack);\n\n #thumbnails: ThumbnailImage[] = [];\n #externalThumbnails: ThumbnailImage[] | undefined;\n #lastTextTrack: MediaTextTrackState | undefined;\n #api: ThumbnailApi | null = null;\n\n constructor() {\n super();\n\n const shadow = this.attachShadow({ mode: 'open' });\n\n const style = document.createElement('style');\n style.textContent = SHADOW_CSS;\n shadow.appendChild(style);\n\n this.#img.alt = '';\n this.#img.setAttribute('part', 'img');\n this.#img.setAttribute('aria-hidden', 'true');\n this.#img.setAttribute('decoding', 'async');\n shadow.appendChild(this.#img);\n }\n\n /**\n * Set thumbnail images directly, bypassing the automatic `<track>` detection.\n * When set, this takes priority over the text track path.\n */\n get thumbnails(): ThumbnailImage[] | undefined {\n return this.#externalThumbnails;\n }\n\n set thumbnails(value: ThumbnailImage[] | undefined) {\n this.#externalThumbnails = value;\n this.requestUpdate();\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (this.destroyed) return;\n\n this.#api = createThumbnail({\n getContainer: () => this,\n getImg: () => this.#img,\n onStateChange: () => this.requestUpdate(),\n });\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n }\n\n override destroyCallback(): void {\n this.#api?.destroy();\n super.destroyCallback();\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n // Resolve thumbnails: external prop takes priority over auto <track> path.\n if (this.#externalThumbnails) {\n this.#thumbnails = this.#externalThumbnails;\n } else {\n const textTrack = this.#textTracks.value;\n\n if (textTrack !== this.#lastTextTrack) {\n this.#lastTextTrack = textTrack;\n this.#thumbnails =\n textTrack && textTrack.thumbnailCues.length > 0\n ? mapCuesToThumbnails(textTrack.thumbnailCues, textTrack.thumbnailTrackSrc ?? undefined)\n : [];\n }\n }\n\n const thumbnail = this.#core.findActiveThumbnail(this.#thumbnails, this.time);\n\n // Sync img attributes from element properties.\n applyElementProps(this.#img, {\n crossorigin: this.crossOrigin || undefined,\n loading: this.loading,\n fetchpriority: this.fetchPriority,\n });\n\n // Track src changes via the thumbnail API.\n this.#api?.updateSrc(thumbnail?.url);\n\n if (!thumbnail) {\n this.#img.removeAttribute('src');\n this.#resetStyles();\n\n const state = this.#core.getState(false, false, undefined);\n applyElementProps(this, this.#core.getAttrs(state));\n applyStateDataAttrs(this, state, ThumbnailDataAttrs);\n return;\n }\n\n // Set the img src directly (imperative DOM).\n if (this.#img.getAttribute('src') !== thumbnail.url) {\n this.#img.src = thumbnail.url;\n }\n\n const api = this.#api;\n const state = this.#core.getState(api?.loading ?? false, api?.error ?? false, thumbnail);\n applyElementProps(this, this.#core.getAttrs(state));\n applyStateDataAttrs(this, state, ThumbnailDataAttrs);\n\n if (api?.naturalWidth && api.naturalHeight) {\n const constraints = api.readConstraints();\n const result = this.#core.resize(thumbnail, api.naturalWidth, api.naturalHeight, constraints);\n\n if (result) {\n this.#applyResize(result);\n }\n }\n }\n\n #applyResize(result: ThumbnailResizeResult): void {\n this.style.width = `${result.containerWidth}px`;\n this.style.height = `${result.containerHeight}px`;\n\n const imgStyle = this.#img.style;\n imgStyle.width = `${result.imageWidth}px`;\n imgStyle.height = `${result.imageHeight}px`;\n imgStyle.maxWidth = 'none';\n imgStyle.transform =\n result.offsetX || result.offsetY ? `translate(-${result.offsetX}px, -${result.offsetY}px)` : '';\n }\n\n #resetStyles(): void {\n this.style.width = '';\n this.style.height = '';\n\n const imgStyle = this.#img.style;\n imgStyle.width = '';\n imgStyle.height = '';\n imgStyle.maxWidth = '';\n imgStyle.transform = '';\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"thumbnail-element.js","names":["#core","#img","#textTracks","#externalThumbnails","#api","#thumbnails","#lastTextTrack","#resetStyles","#applyResize"],"sources":["../../../../src/ui/thumbnail/thumbnail-element.ts"],"sourcesContent":["import {\n type MediaTextTrackState,\n mapCuesToThumbnails,\n ThumbnailCore,\n ThumbnailDataAttrs,\n type ThumbnailImage,\n type ThumbnailResizeResult,\n} from '@videojs/core';\nimport type { ThumbnailApi } from '@videojs/core/dom';\nimport { applyElementProps, applyStateDataAttrs, createThumbnail, selectTextTrack } 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\nconst SHADOW_CSS = `\\\n:host {\n display: inline-block;\n overflow: hidden;\n}\nimg {\n display: block;\n}`;\n\nexport class ThumbnailElement extends MediaElement {\n static readonly tagName = 'media-thumbnail';\n\n static override properties = {\n time: { type: Number },\n crossOrigin: { type: String, attribute: 'crossorigin' },\n loading: { type: String },\n fetchPriority: { type: String, attribute: 'fetchpriority' },\n } satisfies PropertyDeclarationMap<keyof ThumbnailCore.Props>;\n\n time = 0;\n crossOrigin: ThumbnailCore.Props['crossOrigin'];\n loading: ThumbnailCore.Props['loading'];\n fetchPriority: ThumbnailCore.Props['fetchPriority'];\n\n readonly #core = new ThumbnailCore();\n readonly #img = document.createElement('img');\n readonly #textTracks = new PlayerController(this, playerContext, selectTextTrack);\n\n #thumbnails: ThumbnailImage[] = [];\n #externalThumbnails: ThumbnailImage[] | undefined;\n #lastTextTrack: MediaTextTrackState | undefined;\n #api: ThumbnailApi | null = null;\n\n constructor() {\n super();\n\n const shadow = this.attachShadow({ mode: 'open' });\n\n const style = document.createElement('style');\n style.textContent = SHADOW_CSS;\n shadow.appendChild(style);\n\n this.#img.alt = '';\n this.#img.setAttribute('part', 'img');\n this.#img.setAttribute('aria-hidden', 'true');\n this.#img.setAttribute('decoding', 'async');\n shadow.appendChild(this.#img);\n }\n\n /**\n * Set thumbnail images directly, bypassing the automatic `<track>` detection.\n * When set, this takes priority over the text track path.\n */\n get thumbnails(): ThumbnailImage[] | undefined {\n return this.#externalThumbnails;\n }\n\n set thumbnails(value: ThumbnailImage[] | undefined) {\n this.#externalThumbnails = value;\n this.requestUpdate();\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (this.destroyed) return;\n\n this.#api = createThumbnail({\n getContainer: () => this,\n getImg: () => this.#img,\n onStateChange: () => this.requestUpdate(),\n });\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n }\n\n override destroyCallback(): void {\n this.#api?.destroy();\n super.destroyCallback();\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n // Resolve thumbnails: external prop takes priority over auto <track> path.\n if (this.#externalThumbnails) {\n this.#thumbnails = this.#externalThumbnails;\n } else {\n const textTrack = this.#textTracks.value;\n\n if (textTrack !== this.#lastTextTrack) {\n this.#lastTextTrack = textTrack;\n this.#thumbnails =\n textTrack && textTrack.thumbnailCues.length > 0\n ? mapCuesToThumbnails(textTrack.thumbnailCues, textTrack.thumbnailTrackSrc ?? undefined)\n : [];\n }\n }\n\n const thumbnail = this.#core.findActiveThumbnail(this.#thumbnails, this.time);\n\n // Sync img attributes from element properties.\n applyElementProps(this.#img, {\n crossorigin: this.crossOrigin || undefined,\n loading: this.loading,\n fetchpriority: this.fetchPriority,\n });\n\n // Track src changes via the thumbnail API.\n this.#api?.updateSrc(thumbnail?.url);\n\n if (!thumbnail) {\n this.#img.removeAttribute('src');\n this.#resetStyles();\n\n const state = this.#core.getState(false, false, undefined);\n applyElementProps(this, this.#core.getAttrs(state));\n applyStateDataAttrs(this, state, ThumbnailDataAttrs);\n return;\n }\n\n // Set the img src directly (imperative DOM).\n if (this.#img.getAttribute('src') !== thumbnail.url) {\n this.#img.src = thumbnail.url;\n }\n\n const api = this.#api;\n const state = this.#core.getState(api?.loading ?? false, api?.error ?? false, thumbnail);\n applyElementProps(this, this.#core.getAttrs(state));\n applyStateDataAttrs(this, state, ThumbnailDataAttrs);\n\n if (api?.naturalWidth && api.naturalHeight) {\n const constraints = api.readConstraints();\n const result = this.#core.resize(thumbnail, api.naturalWidth, api.naturalHeight, constraints);\n\n if (result) {\n this.#applyResize(result);\n }\n }\n }\n\n #applyResize(result: ThumbnailResizeResult): void {\n this.style.width = `${result.containerWidth}px`;\n this.style.height = `${result.containerHeight}px`;\n\n const imgStyle = this.#img.style;\n imgStyle.width = `${result.imageWidth}px`;\n imgStyle.height = `${result.imageHeight}px`;\n imgStyle.maxWidth = 'none';\n imgStyle.transform =\n result.offsetX || result.offsetY ? `translate(-${result.offsetX}px, -${result.offsetY}px)` : '';\n }\n\n #resetStyles(): void {\n this.style.width = '';\n this.style.height = '';\n\n const imgStyle = this.#img.style;\n imgStyle.width = '';\n imgStyle.height = '';\n imgStyle.maxWidth = '';\n imgStyle.transform = '';\n }\n}\n"],"mappings":"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"}
|
|
@@ -3,7 +3,6 @@ import { MediaElement } from "../media-element.js";
|
|
|
3
3
|
import { PlayerController } from "../../player/player-controller.js";
|
|
4
4
|
import { TimeCore, TimeDataAttrs } from "@videojs/core";
|
|
5
5
|
import { applyElementProps, applyStateDataAttrs, logMissingFeature, selectTime } from "@videojs/core/dom";
|
|
6
|
-
|
|
7
6
|
//#region src/ui/time/time-element.ts
|
|
8
7
|
var TimeElement = class extends MediaElement {
|
|
9
8
|
static {
|
|
@@ -54,7 +53,7 @@ var TimeElement = class extends MediaElement {
|
|
|
54
53
|
applyStateDataAttrs(this, state, TimeDataAttrs);
|
|
55
54
|
}
|
|
56
55
|
};
|
|
57
|
-
|
|
58
56
|
//#endregion
|
|
59
57
|
export { TimeElement };
|
|
58
|
+
|
|
60
59
|
//# sourceMappingURL=time-element.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time-element.js","names":["#core","#state","#signSpan","#textNode"],"sources":["../../../../src/ui/time/time-element.ts"],"sourcesContent":["import { TimeCore, TimeDataAttrs, type TimeType } from '@videojs/core';\nimport { applyElementProps, applyStateDataAttrs, logMissingFeature, selectTime } 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 TimeElement extends MediaElement {\n static readonly tagName = 'media-time';\n\n static override properties = {\n type: { type: String },\n negativeSign: { type: String, attribute: 'negative-sign' },\n label: { type: String },\n } satisfies PropertyDeclarationMap<keyof TimeCore.Props>;\n\n type: TimeType = TimeCore.defaultProps.type;\n negativeSign = TimeCore.defaultProps.negativeSign;\n label = TimeCore.defaultProps.label;\n\n readonly #core = new TimeCore();\n readonly #state = new PlayerController(this, playerContext, selectTime);\n\n readonly #signSpan = document.createElement('span');\n readonly #textNode = document.createTextNode('');\n\n constructor() {\n super();\n\n this.#signSpan.setAttribute('aria-hidden', 'true');\n this.#signSpan.hidden = true;\n\n this.appendChild(this.#signSpan);\n this.appendChild(this.#textNode);\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (__DEV__ && !this.#state.value) {\n logMissingFeature(this.localName, this.#state.displayName!);\n }\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.setMedia(media);\n const state = this.#core.getState();\n\n this.#signSpan.hidden = !state.negative;\n this.#signSpan.textContent = state.negative ? this.negativeSign : '';\n this.#textNode.textContent = state.text;\n\n applyElementProps(this, this.#core.getAttrs(state));\n applyStateDataAttrs(this, state, TimeDataAttrs);\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"time-element.js","names":["#core","#state","#signSpan","#textNode"],"sources":["../../../../src/ui/time/time-element.ts"],"sourcesContent":["import { TimeCore, TimeDataAttrs, type TimeType } from '@videojs/core';\nimport { applyElementProps, applyStateDataAttrs, logMissingFeature, selectTime } 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 TimeElement extends MediaElement {\n static readonly tagName = 'media-time';\n\n static override properties = {\n type: { type: String },\n negativeSign: { type: String, attribute: 'negative-sign' },\n label: { type: String },\n } satisfies PropertyDeclarationMap<keyof TimeCore.Props>;\n\n type: TimeType = TimeCore.defaultProps.type;\n negativeSign = TimeCore.defaultProps.negativeSign;\n label = TimeCore.defaultProps.label;\n\n readonly #core = new TimeCore();\n readonly #state = new PlayerController(this, playerContext, selectTime);\n\n readonly #signSpan = document.createElement('span');\n readonly #textNode = document.createTextNode('');\n\n constructor() {\n super();\n\n this.#signSpan.setAttribute('aria-hidden', 'true');\n this.#signSpan.hidden = true;\n\n this.appendChild(this.#signSpan);\n this.appendChild(this.#textNode);\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (__DEV__ && !this.#state.value) {\n logMissingFeature(this.localName, this.#state.displayName!);\n }\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.setMedia(media);\n const state = this.#core.getState();\n\n this.#signSpan.hidden = !state.negative;\n this.#signSpan.textContent = state.negative ? this.negativeSign : '';\n this.#textNode.textContent = state.text;\n\n applyElementProps(this, this.#core.getAttrs(state));\n applyStateDataAttrs(this, state, TimeDataAttrs);\n }\n}\n"],"mappings":";;;;;;AAQA,IAAa,cAAb,cAAiC,aAAa;;iBAClB;;;oBAEG;GAC3B,MAAM,EAAE,MAAM,QAAQ;GACtB,cAAc;IAAE,MAAM;IAAQ,WAAW;IAAiB;GAC1D,OAAO,EAAE,MAAM,QAAQ;GACxB;;CAMD,QAAiB,IAAI,UAAU;CAC/B,SAAkB,IAAI,iBAAiB,MAAM,eAAe,WAAW;CAEvE,YAAqB,SAAS,cAAc,OAAO;CACnD,YAAqB,SAAS,eAAe,GAAG;CAEhD,cAAc;AACZ,SAAO;cAXQ,SAAS,aAAa;sBACxB,SAAS,aAAa;eAC7B,SAAS,aAAa;AAW5B,QAAA,SAAe,aAAa,eAAe,OAAO;AAClD,QAAA,SAAe,SAAS;AAExB,OAAK,YAAY,MAAA,SAAe;AAChC,OAAK,YAAY,MAAA,SAAe;;CAGlC,oBAAmC;AACjC,QAAM,mBAAmB;AAEzB,MAAe,CAAC,MAAA,MAAY,MAC1B,mBAAkB,KAAK,WAAW,MAAA,MAAY,YAAa;;CAI/D,WAA8B,SAA+B;AAC3D,QAAM,WAAW,QAAQ;AACzB,QAAA,KAAW,SAAS,KAAK;;CAG3B,OAA0B,SAA+B;AACvD,QAAM,OAAO,QAAQ;EAErB,MAAM,QAAQ,MAAA,MAAY;AAE1B,MAAI,CAAC,MAAO;AAEZ,QAAA,KAAW,SAAS,MAAM;EAC1B,MAAM,QAAQ,MAAA,KAAW,UAAU;AAEnC,QAAA,SAAe,SAAS,CAAC,MAAM;AAC/B,QAAA,SAAe,cAAc,MAAM,WAAW,KAAK,eAAe;AAClE,QAAA,SAAe,cAAc,MAAM;AAEnC,oBAAkB,MAAM,MAAA,KAAW,SAAS,MAAM,CAAC;AACnD,sBAAoB,MAAM,OAAO,cAAc"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { MediaElement } from "../media-element.js";
|
|
2
|
-
|
|
3
2
|
//#region src/ui/time/time-group-element.ts
|
|
4
3
|
var TimeGroupElement = class extends MediaElement {
|
|
5
4
|
static {
|
|
6
5
|
this.tagName = "media-time-group";
|
|
7
6
|
}
|
|
8
7
|
};
|
|
9
|
-
|
|
10
8
|
//#endregion
|
|
11
9
|
export { TimeGroupElement };
|
|
10
|
+
|
|
12
11
|
//# sourceMappingURL=time-group-element.js.map
|