@videojs/html 10.0.0-alpha.4 → 10.0.0-alpha.6
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/dist/default/define/audio/minimal-skin.css +11 -0
- package/dist/default/define/audio/minimal-skin.js +26 -0
- package/dist/default/define/audio/minimal-skin.js.map +1 -0
- package/dist/default/define/audio/player.js +8 -4
- package/dist/default/define/audio/player.js.map +1 -1
- package/dist/default/define/audio/skin.css +12 -0
- package/dist/default/define/audio/skin.js +26 -0
- package/dist/default/define/audio/skin.js.map +1 -0
- package/dist/default/define/background/player.js +8 -4
- package/dist/default/define/background/player.js.map +1 -1
- package/dist/default/define/background/skin.js +2 -1
- package/dist/default/define/background/skin.js.map +1 -1
- package/dist/default/define/media/background-video.js +2 -1
- package/dist/default/define/media/background-video.js.map +1 -1
- package/dist/default/define/media/container.js +8 -0
- package/dist/default/define/media/container.js.map +1 -0
- package/dist/default/define/media/hls-video.js +2 -1
- package/dist/default/define/media/hls-video.js.map +1 -1
- package/dist/default/define/safe-define.js +9 -0
- package/dist/default/define/safe-define.js.map +1 -0
- package/dist/default/define/skin-mixin.js +35 -0
- package/dist/default/define/skin-mixin.js.map +1 -0
- package/dist/default/define/ui/buffering-indicator.js +2 -1
- package/dist/default/define/ui/buffering-indicator.js.map +1 -1
- package/dist/default/define/ui/controls-group.js +8 -0
- package/dist/default/define/ui/controls-group.js.map +1 -0
- package/dist/default/define/ui/controls.js +3 -2
- package/dist/default/define/ui/controls.js.map +1 -1
- package/dist/default/define/ui/fullscreen-button.js +2 -1
- package/dist/default/define/ui/fullscreen-button.js.map +1 -1
- package/dist/default/define/ui/mute-button.js +2 -1
- package/dist/default/define/ui/mute-button.js.map +1 -1
- package/dist/default/define/ui/pip-button.js +2 -1
- package/dist/default/define/ui/pip-button.js.map +1 -1
- package/dist/default/define/ui/play-button.js +2 -1
- package/dist/default/define/ui/play-button.js.map +1 -1
- package/dist/default/define/ui/playback-rate-button.js +8 -0
- package/dist/default/define/ui/playback-rate-button.js.map +1 -0
- package/dist/default/define/ui/popover.js +8 -0
- package/dist/default/define/ui/popover.js.map +1 -0
- package/dist/default/define/ui/poster.js +2 -1
- package/dist/default/define/ui/poster.js.map +1 -1
- package/dist/default/define/ui/seek-button.js +2 -1
- package/dist/default/define/ui/seek-button.js.map +1 -1
- package/dist/default/define/ui/slider-buffer.js +8 -0
- package/dist/default/define/ui/slider-buffer.js.map +1 -0
- package/dist/default/define/ui/slider-fill.js +8 -0
- package/dist/default/define/ui/slider-fill.js.map +1 -0
- package/dist/default/define/ui/slider-thumb.js +8 -0
- package/dist/default/define/ui/slider-thumb.js.map +1 -0
- package/dist/default/define/ui/slider-track.js +8 -0
- package/dist/default/define/ui/slider-track.js.map +1 -0
- package/dist/default/define/ui/slider-value.js +8 -0
- package/dist/default/define/ui/slider-value.js.map +1 -0
- package/dist/default/define/ui/slider.js +16 -0
- package/dist/default/define/ui/slider.js.map +1 -0
- package/dist/default/define/ui/thumbnail.js +8 -0
- package/dist/default/define/ui/thumbnail.js.map +1 -0
- package/dist/default/define/ui/time-group.js +8 -0
- package/dist/default/define/ui/time-group.js.map +1 -0
- package/dist/default/define/ui/time-separator.js +8 -0
- package/dist/default/define/ui/time-separator.js.map +1 -0
- package/dist/default/define/ui/time-slider.js +18 -0
- package/dist/default/define/ui/time-slider.js.map +1 -0
- package/dist/default/define/ui/time.js +4 -3
- package/dist/default/define/ui/time.js.map +1 -1
- package/dist/default/define/ui/volume-slider.js +16 -0
- package/dist/default/define/ui/volume-slider.js.map +1 -0
- package/dist/default/define/video/minimal-skin.css +762 -0
- package/dist/default/define/video/minimal-skin.js +131 -0
- package/dist/default/define/video/minimal-skin.js.map +1 -0
- package/dist/default/define/video/minimal-skin.tailwind.js +134 -0
- package/dist/default/define/video/minimal-skin.tailwind.js.map +1 -0
- package/dist/default/define/video/player.js +8 -4
- package/dist/default/define/video/player.js.map +1 -1
- package/dist/default/define/video/skin.css +763 -0
- package/dist/default/define/video/skin.js +125 -0
- package/dist/default/define/video/skin.js.map +1 -0
- package/dist/default/define/video/skin.tailwind.js +127 -0
- package/dist/default/define/video/skin.tailwind.js.map +1 -0
- package/dist/default/icons/dist/render/default/index.js +27 -0
- package/dist/default/icons/dist/render/default/index.js.map +1 -0
- package/dist/default/icons/dist/render/minimal/index.js +27 -0
- package/dist/default/icons/dist/render/minimal/index.js.map +1 -0
- package/dist/default/index.js +17 -3
- package/dist/default/media/container-element.js +15 -0
- package/dist/default/media/container-element.js.map +1 -0
- package/dist/default/player/create-player.js +0 -5
- package/dist/default/player/create-player.js.map +1 -1
- package/dist/default/player/player-controller.js +3 -0
- package/dist/default/player/player-controller.js.map +1 -1
- package/dist/default/presets/audio.js +5 -0
- package/dist/default/presets/background.js +3 -0
- package/dist/default/presets/video.js +7 -0
- package/dist/default/skins/dist/default/video/default.tailwind.js +90 -0
- package/dist/default/skins/dist/default/video/default.tailwind.js.map +1 -0
- package/dist/default/skins/dist/default/video/minimal.tailwind.js +86 -0
- package/dist/default/skins/dist/default/video/minimal.tailwind.js.map +1 -0
- package/dist/default/store/container-mixin.js +14 -7
- package/dist/default/store/container-mixin.js.map +1 -1
- package/dist/default/ui/buffering-indicator/buffering-indicator-element.js.map +1 -1
- package/dist/default/ui/context-part-element.js +28 -0
- package/dist/default/ui/context-part-element.js.map +1 -0
- package/dist/default/ui/controls/context.js +9 -0
- package/dist/default/ui/controls/context.js.map +1 -0
- package/dist/default/ui/controls/controls-element.js +15 -6
- package/dist/default/ui/controls/controls-element.js.map +1 -1
- package/dist/default/ui/controls/controls-group-element.js +11 -2
- package/dist/default/ui/controls/controls-group-element.js.map +1 -1
- package/dist/default/ui/fullscreen-button/fullscreen-button-element.js +8 -39
- package/dist/default/ui/fullscreen-button/fullscreen-button-element.js.map +1 -1
- package/dist/default/ui/media-button-element.js +50 -0
- package/dist/default/ui/media-button-element.js.map +1 -0
- package/dist/default/ui/media-ui-element.js +22 -0
- package/dist/default/ui/media-ui-element.js.map +1 -0
- package/dist/default/ui/mute-button/mute-button-element.js +8 -39
- package/dist/default/ui/mute-button/mute-button-element.js.map +1 -1
- package/dist/default/ui/pip-button/pip-button-element.js +8 -39
- package/dist/default/ui/pip-button/pip-button-element.js.map +1 -1
- package/dist/default/ui/play-button/play-button-element.js +8 -39
- 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 +25 -0
- package/dist/default/ui/playback-rate-button/playback-rate-button-element.js.map +1 -0
- package/dist/default/ui/popover/popover-element.js +163 -0
- package/dist/default/ui/popover/popover-element.js.map +1 -0
- package/dist/default/ui/poster/poster-element.js +9 -14
- package/dist/default/ui/poster/poster-element.js.map +1 -1
- package/dist/default/ui/seek-button/seek-button-element.js +10 -36
- package/dist/default/ui/seek-button/seek-button-element.js.map +1 -1
- package/dist/default/ui/slider/context.js +9 -0
- package/dist/default/ui/slider/context.js.map +1 -0
- package/dist/default/ui/slider/slider-buffer-element.js +21 -0
- package/dist/default/ui/slider/slider-buffer-element.js.map +1 -0
- package/dist/default/ui/slider/slider-element.js +117 -0
- package/dist/default/ui/slider/slider-element.js.map +1 -0
- package/dist/default/ui/slider/slider-fill-element.js +21 -0
- package/dist/default/ui/slider/slider-fill-element.js.map +1 -0
- package/dist/default/ui/slider/slider-thumb-element.js +43 -0
- package/dist/default/ui/slider/slider-thumb-element.js.map +1 -0
- package/dist/default/ui/slider/slider-track-element.js +21 -0
- package/dist/default/ui/slider/slider-track-element.js.map +1 -0
- package/dist/default/ui/slider/slider-value-element.js +38 -0
- package/dist/default/ui/slider/slider-value-element.js.map +1 -0
- package/dist/default/ui/thumbnail/thumbnail-element.js +136 -0
- package/dist/default/ui/thumbnail/thumbnail-element.js.map +1 -0
- package/dist/default/ui/time/time-element.js +8 -16
- package/dist/default/ui/time/time-element.js.map +1 -1
- package/dist/default/ui/time-slider/time-slider-element.js +128 -0
- package/dist/default/ui/time-slider/time-slider-element.js.map +1 -0
- package/dist/default/ui/volume-slider/volume-slider-element.js +117 -0
- package/dist/default/ui/volume-slider/volume-slider-element.js.map +1 -0
- package/dist/dev/define/audio/minimal-skin.css +11 -0
- package/dist/dev/define/audio/minimal-skin.d.ts +17 -0
- package/dist/dev/define/audio/minimal-skin.d.ts.map +1 -0
- package/dist/dev/define/audio/minimal-skin.js +26 -0
- package/dist/dev/define/audio/minimal-skin.js.map +1 -0
- package/dist/dev/define/audio/player.d.ts +4 -3
- package/dist/dev/define/audio/player.d.ts.map +1 -1
- package/dist/dev/define/audio/player.js +8 -4
- package/dist/dev/define/audio/player.js.map +1 -1
- package/dist/dev/define/audio/skin.css +12 -0
- package/dist/dev/define/audio/skin.d.ts +17 -1
- package/dist/dev/define/audio/skin.d.ts.map +1 -0
- package/dist/dev/define/audio/skin.js +26 -0
- package/dist/dev/define/audio/skin.js.map +1 -0
- package/dist/dev/define/background/player.d.ts +4 -3
- package/dist/dev/define/background/player.d.ts.map +1 -1
- package/dist/dev/define/background/player.js +8 -4
- package/dist/dev/define/background/player.js.map +1 -1
- package/dist/dev/define/background/skin.d.ts.map +1 -1
- package/dist/dev/define/background/skin.js +2 -1
- package/dist/dev/define/background/skin.js.map +1 -1
- package/dist/dev/define/media/background-video.d.ts.map +1 -1
- package/dist/dev/define/media/background-video.js +2 -1
- package/dist/dev/define/media/background-video.js.map +1 -1
- package/dist/dev/define/media/container.d.ts +9 -0
- package/dist/dev/define/media/container.d.ts.map +1 -0
- package/dist/dev/define/media/container.js +8 -0
- package/dist/dev/define/media/container.js.map +1 -0
- package/dist/dev/define/media/hls-video.d.ts.map +1 -1
- package/dist/dev/define/media/hls-video.js +2 -1
- package/dist/dev/define/media/hls-video.js.map +1 -1
- package/dist/dev/define/safe-define.d.ts +9 -0
- package/dist/dev/define/safe-define.d.ts.map +1 -0
- package/dist/dev/define/safe-define.js +9 -0
- package/dist/dev/define/safe-define.js.map +1 -0
- package/dist/dev/define/skin-mixin.d.ts +13 -0
- package/dist/dev/define/skin-mixin.d.ts.map +1 -0
- package/dist/dev/define/skin-mixin.js +35 -0
- package/dist/dev/define/skin-mixin.js.map +1 -0
- package/dist/dev/define/ui/buffering-indicator.d.ts.map +1 -1
- package/dist/dev/define/ui/buffering-indicator.js +2 -1
- package/dist/dev/define/ui/buffering-indicator.js.map +1 -1
- package/dist/dev/define/ui/controls-group.d.ts +9 -0
- package/dist/dev/define/ui/controls-group.d.ts.map +1 -0
- package/dist/dev/define/ui/controls-group.js +8 -0
- package/dist/dev/define/ui/controls-group.js.map +1 -0
- package/dist/dev/define/ui/controls.d.ts +0 -2
- package/dist/dev/define/ui/controls.d.ts.map +1 -1
- package/dist/dev/define/ui/controls.js +3 -2
- package/dist/dev/define/ui/controls.js.map +1 -1
- package/dist/dev/define/ui/fullscreen-button.d.ts.map +1 -1
- package/dist/dev/define/ui/fullscreen-button.js +2 -1
- package/dist/dev/define/ui/fullscreen-button.js.map +1 -1
- package/dist/dev/define/ui/mute-button.d.ts.map +1 -1
- package/dist/dev/define/ui/mute-button.js +2 -1
- package/dist/dev/define/ui/mute-button.js.map +1 -1
- package/dist/dev/define/ui/pip-button.d.ts.map +1 -1
- package/dist/dev/define/ui/pip-button.js +2 -1
- package/dist/dev/define/ui/pip-button.js.map +1 -1
- package/dist/dev/define/ui/play-button.d.ts.map +1 -1
- package/dist/dev/define/ui/play-button.js +2 -1
- package/dist/dev/define/ui/play-button.js.map +1 -1
- package/dist/dev/define/ui/playback-rate-button.d.ts +9 -0
- package/dist/dev/define/ui/playback-rate-button.d.ts.map +1 -0
- package/dist/dev/define/ui/playback-rate-button.js +8 -0
- package/dist/dev/define/ui/playback-rate-button.js.map +1 -0
- package/dist/dev/define/ui/popover.d.ts +9 -0
- package/dist/dev/define/ui/popover.d.ts.map +1 -0
- package/dist/dev/define/ui/popover.js +8 -0
- package/dist/dev/define/ui/popover.js.map +1 -0
- package/dist/dev/define/ui/poster.d.ts.map +1 -1
- package/dist/dev/define/ui/poster.js +2 -1
- package/dist/dev/define/ui/poster.js.map +1 -1
- package/dist/dev/define/ui/seek-button.d.ts.map +1 -1
- package/dist/dev/define/ui/seek-button.js +2 -1
- package/dist/dev/define/ui/seek-button.js.map +1 -1
- package/dist/dev/define/ui/slider-buffer.d.ts +9 -0
- package/dist/dev/define/ui/slider-buffer.d.ts.map +1 -0
- package/dist/dev/define/ui/slider-buffer.js +8 -0
- package/dist/dev/define/ui/slider-buffer.js.map +1 -0
- package/dist/dev/define/ui/slider-fill.d.ts +9 -0
- package/dist/dev/define/ui/slider-fill.d.ts.map +1 -0
- package/dist/dev/define/ui/slider-fill.js +8 -0
- package/dist/dev/define/ui/slider-fill.js.map +1 -0
- package/dist/dev/define/ui/slider-thumb.d.ts +9 -0
- package/dist/dev/define/ui/slider-thumb.d.ts.map +1 -0
- package/dist/dev/define/ui/slider-thumb.js +8 -0
- package/dist/dev/define/ui/slider-thumb.js.map +1 -0
- package/dist/dev/define/ui/slider-track.d.ts +9 -0
- package/dist/dev/define/ui/slider-track.d.ts.map +1 -0
- package/dist/dev/define/ui/slider-track.js +8 -0
- package/dist/dev/define/ui/slider-track.js.map +1 -0
- package/dist/dev/define/ui/slider-value.d.ts +9 -0
- package/dist/dev/define/ui/slider-value.d.ts.map +1 -0
- package/dist/dev/define/ui/slider-value.js +8 -0
- package/dist/dev/define/ui/slider-value.js.map +1 -0
- package/dist/dev/define/ui/slider.d.ts +9 -0
- package/dist/dev/define/ui/slider.d.ts.map +1 -0
- package/dist/dev/define/ui/slider.js +16 -0
- package/dist/dev/define/ui/slider.js.map +1 -0
- package/dist/dev/define/ui/thumbnail.d.ts +9 -0
- package/dist/dev/define/ui/thumbnail.d.ts.map +1 -0
- package/dist/dev/define/ui/thumbnail.js +8 -0
- package/dist/dev/define/ui/thumbnail.js.map +1 -0
- package/dist/dev/define/ui/time-group.d.ts +9 -0
- package/dist/dev/define/ui/time-group.d.ts.map +1 -0
- package/dist/dev/define/ui/time-group.js +8 -0
- package/dist/dev/define/ui/time-group.js.map +1 -0
- package/dist/dev/define/ui/time-separator.d.ts +9 -0
- package/dist/dev/define/ui/time-separator.d.ts.map +1 -0
- package/dist/dev/define/ui/time-separator.js +8 -0
- package/dist/dev/define/ui/time-separator.js.map +1 -0
- package/dist/dev/define/ui/time-slider.d.ts +9 -0
- package/dist/dev/define/ui/time-slider.d.ts.map +1 -0
- package/dist/dev/define/ui/time-slider.js +18 -0
- package/dist/dev/define/ui/time-slider.js.map +1 -0
- package/dist/dev/define/ui/time.d.ts +0 -4
- package/dist/dev/define/ui/time.d.ts.map +1 -1
- package/dist/dev/define/ui/time.js +4 -3
- package/dist/dev/define/ui/time.js.map +1 -1
- package/dist/dev/define/ui/volume-slider.d.ts +9 -0
- package/dist/dev/define/ui/volume-slider.d.ts.map +1 -0
- package/dist/dev/define/ui/volume-slider.js +16 -0
- package/dist/dev/define/ui/volume-slider.js.map +1 -0
- package/dist/dev/define/video/minimal-skin.css +762 -0
- package/dist/dev/define/video/minimal-skin.d.ts +30 -0
- package/dist/dev/define/video/minimal-skin.d.ts.map +1 -0
- package/dist/dev/define/video/minimal-skin.js +131 -0
- package/dist/dev/define/video/minimal-skin.js.map +1 -0
- package/dist/dev/define/video/minimal-skin.tailwind.d.ts +30 -0
- package/dist/dev/define/video/minimal-skin.tailwind.d.ts.map +1 -0
- package/dist/dev/define/video/minimal-skin.tailwind.js +134 -0
- package/dist/dev/define/video/minimal-skin.tailwind.js.map +1 -0
- package/dist/dev/define/video/player.d.ts +4 -3
- package/dist/dev/define/video/player.d.ts.map +1 -1
- package/dist/dev/define/video/player.js +8 -4
- package/dist/dev/define/video/player.js.map +1 -1
- package/dist/dev/define/video/skin.css +763 -0
- package/dist/dev/define/video/skin.d.ts +30 -1
- package/dist/dev/define/video/skin.d.ts.map +1 -0
- package/dist/dev/define/video/skin.js +125 -0
- package/dist/dev/define/video/skin.js.map +1 -0
- package/dist/dev/define/video/skin.tailwind.d.ts +30 -0
- package/dist/dev/define/video/skin.tailwind.d.ts.map +1 -0
- package/dist/dev/define/video/skin.tailwind.js +127 -0
- package/dist/dev/define/video/skin.tailwind.js.map +1 -0
- package/dist/dev/icons/dist/render/default/index.js +27 -0
- package/dist/dev/icons/dist/render/default/index.js.map +1 -0
- package/dist/dev/icons/dist/render/minimal/index.js +27 -0
- package/dist/dev/icons/dist/render/minimal/index.js.map +1 -0
- package/dist/dev/index.d.ts +19 -4
- package/dist/dev/index.js +17 -3
- package/dist/dev/media/container-element.d.ts +13 -0
- package/dist/dev/media/container-element.d.ts.map +1 -0
- package/dist/dev/media/container-element.js +15 -0
- package/dist/dev/media/container-element.js.map +1 -0
- package/dist/dev/player/create-player.d.ts +6 -14
- package/dist/dev/player/create-player.d.ts.map +1 -1
- package/dist/dev/player/create-player.js +0 -5
- package/dist/dev/player/create-player.js.map +1 -1
- package/dist/dev/player/player-controller.d.ts +1 -0
- package/dist/dev/player/player-controller.d.ts.map +1 -1
- package/dist/dev/player/player-controller.js +3 -0
- package/dist/dev/player/player-controller.js.map +1 -1
- package/dist/dev/presets/audio.d.ts +4 -0
- package/dist/dev/presets/audio.js +5 -0
- package/dist/dev/presets/background.d.ts +2 -0
- package/dist/dev/presets/background.js +3 -0
- package/dist/dev/presets/video.d.ts +6 -0
- package/dist/dev/presets/video.js +7 -0
- package/dist/dev/skins/dist/default/video/default.tailwind.js +90 -0
- package/dist/dev/skins/dist/default/video/default.tailwind.js.map +1 -0
- package/dist/dev/skins/dist/default/video/minimal.tailwind.js +86 -0
- package/dist/dev/skins/dist/default/video/minimal.tailwind.js.map +1 -0
- package/dist/dev/store/container-mixin.d.ts +1 -1
- package/dist/dev/store/container-mixin.js +14 -7
- package/dist/dev/store/container-mixin.js.map +1 -1
- package/dist/dev/store/provider-mixin.d.ts +1 -1
- package/dist/dev/store/types.d.ts +1 -3
- package/dist/dev/store/types.d.ts.map +1 -1
- package/dist/dev/ui/buffering-indicator/buffering-indicator-element.js +2 -2
- package/dist/dev/ui/buffering-indicator/buffering-indicator-element.js.map +1 -1
- package/dist/dev/ui/context-part-element.d.ts +32 -0
- package/dist/dev/ui/context-part-element.d.ts.map +1 -0
- package/dist/dev/ui/context-part-element.js +28 -0
- package/dist/dev/ui/context-part-element.js.map +1 -0
- package/dist/dev/ui/controls/context.d.ts +10 -0
- package/dist/dev/ui/controls/context.d.ts.map +1 -0
- package/dist/dev/ui/controls/context.js +9 -0
- package/dist/dev/ui/controls/context.js.map +1 -0
- package/dist/dev/ui/controls/controls-element.d.ts +1 -1
- package/dist/dev/ui/controls/controls-element.d.ts.map +1 -1
- package/dist/dev/ui/controls/controls-element.js +17 -8
- package/dist/dev/ui/controls/controls-element.js.map +1 -1
- package/dist/dev/ui/controls/controls-group-element.d.ts +8 -2
- package/dist/dev/ui/controls/controls-group-element.d.ts.map +1 -1
- package/dist/dev/ui/controls/controls-group-element.js +11 -2
- package/dist/dev/ui/controls/controls-group-element.js.map +1 -1
- package/dist/dev/ui/fullscreen-button/fullscreen-button-element.d.ts +11 -18
- package/dist/dev/ui/fullscreen-button/fullscreen-button-element.d.ts.map +1 -1
- package/dist/dev/ui/fullscreen-button/fullscreen-button-element.js +8 -40
- package/dist/dev/ui/fullscreen-button/fullscreen-button-element.js.map +1 -1
- package/dist/dev/ui/media-button-element.d.ts +24 -0
- package/dist/dev/ui/media-button-element.d.ts.map +1 -0
- package/dist/dev/ui/media-button-element.js +51 -0
- package/dist/dev/ui/media-button-element.js.map +1 -0
- package/dist/dev/ui/media-ui-element.d.ts +17 -0
- package/dist/dev/ui/media-ui-element.d.ts.map +1 -0
- package/dist/dev/ui/media-ui-element.js +23 -0
- package/dist/dev/ui/media-ui-element.js.map +1 -0
- package/dist/dev/ui/mute-button/mute-button-element.d.ts +11 -18
- package/dist/dev/ui/mute-button/mute-button-element.d.ts.map +1 -1
- package/dist/dev/ui/mute-button/mute-button-element.js +8 -40
- package/dist/dev/ui/mute-button/mute-button-element.js.map +1 -1
- package/dist/dev/ui/pip-button/pip-button-element.d.ts +11 -18
- package/dist/dev/ui/pip-button/pip-button-element.d.ts.map +1 -1
- package/dist/dev/ui/pip-button/pip-button-element.js +8 -40
- package/dist/dev/ui/pip-button/pip-button-element.js.map +1 -1
- package/dist/dev/ui/play-button/play-button-element.d.ts +12 -18
- package/dist/dev/ui/play-button/play-button-element.d.ts.map +1 -1
- package/dist/dev/ui/play-button/play-button-element.js +8 -40
- package/dist/dev/ui/play-button/play-button-element.js.map +1 -1
- package/dist/dev/ui/playback-rate-button/playback-rate-button-element.d.ts +18 -0
- package/dist/dev/ui/playback-rate-button/playback-rate-button-element.d.ts.map +1 -0
- package/dist/dev/ui/playback-rate-button/playback-rate-button-element.js +25 -0
- package/dist/dev/ui/playback-rate-button/playback-rate-button-element.js.map +1 -0
- package/dist/dev/ui/popover/popover-element.d.ts +65 -0
- package/dist/dev/ui/popover/popover-element.d.ts.map +1 -0
- package/dist/dev/ui/popover/popover-element.js +163 -0
- package/dist/dev/ui/popover/popover-element.js.map +1 -0
- package/dist/dev/ui/poster/poster-element.d.ts +11 -6
- package/dist/dev/ui/poster/poster-element.d.ts.map +1 -1
- package/dist/dev/ui/poster/poster-element.js +9 -15
- package/dist/dev/ui/poster/poster-element.js.map +1 -1
- package/dist/dev/ui/seek-button/seek-button-element.d.ts +14 -22
- package/dist/dev/ui/seek-button/seek-button-element.d.ts.map +1 -1
- package/dist/dev/ui/seek-button/seek-button-element.js +10 -37
- package/dist/dev/ui/seek-button/seek-button-element.js.map +1 -1
- package/dist/dev/ui/slider/context.d.ts +24 -0
- package/dist/dev/ui/slider/context.d.ts.map +1 -0
- package/dist/dev/ui/slider/context.js +9 -0
- package/dist/dev/ui/slider/context.js.map +1 -0
- package/dist/dev/ui/slider/slider-buffer-element.d.ts +15 -0
- package/dist/dev/ui/slider/slider-buffer-element.d.ts.map +1 -0
- package/dist/dev/ui/slider/slider-buffer-element.js +21 -0
- package/dist/dev/ui/slider/slider-buffer-element.js.map +1 -0
- package/dist/dev/ui/slider/slider-element.d.ts +56 -0
- package/dist/dev/ui/slider/slider-element.d.ts.map +1 -0
- package/dist/dev/ui/slider/slider-element.js +117 -0
- package/dist/dev/ui/slider/slider-element.js.map +1 -0
- package/dist/dev/ui/slider/slider-events.d.ts +18 -0
- package/dist/dev/ui/slider/slider-events.d.ts.map +1 -0
- package/dist/dev/ui/slider/slider-fill-element.d.ts +15 -0
- package/dist/dev/ui/slider/slider-fill-element.d.ts.map +1 -0
- package/dist/dev/ui/slider/slider-fill-element.js +21 -0
- package/dist/dev/ui/slider/slider-fill-element.js.map +1 -0
- package/dist/dev/ui/slider/slider-thumb-element.d.ts +14 -0
- package/dist/dev/ui/slider/slider-thumb-element.d.ts.map +1 -0
- package/dist/dev/ui/slider/slider-thumb-element.js +43 -0
- package/dist/dev/ui/slider/slider-thumb-element.js.map +1 -0
- package/dist/dev/ui/slider/slider-track-element.d.ts +15 -0
- package/dist/dev/ui/slider/slider-track-element.d.ts.map +1 -0
- package/dist/dev/ui/slider/slider-track-element.js +21 -0
- package/dist/dev/ui/slider/slider-track-element.js.map +1 -0
- package/dist/dev/ui/slider/slider-value-element.d.ts +19 -0
- package/dist/dev/ui/slider/slider-value-element.d.ts.map +1 -0
- package/dist/dev/ui/slider/slider-value-element.js +38 -0
- package/dist/dev/ui/slider/slider-value-element.js.map +1 -0
- package/dist/dev/ui/thumbnail/thumbnail-element.d.ts +42 -0
- package/dist/dev/ui/thumbnail/thumbnail-element.d.ts.map +1 -0
- package/dist/dev/ui/thumbnail/thumbnail-element.js +136 -0
- package/dist/dev/ui/thumbnail/thumbnail-element.js.map +1 -0
- package/dist/dev/ui/time/time-element.d.ts.map +1 -1
- package/dist/dev/ui/time/time-element.js +10 -18
- package/dist/dev/ui/time/time-element.js.map +1 -1
- package/dist/dev/ui/time-slider/time-slider-element.d.ts +49 -0
- package/dist/dev/ui/time-slider/time-slider-element.d.ts.map +1 -0
- package/dist/dev/ui/time-slider/time-slider-element.js +129 -0
- package/dist/dev/ui/time-slider/time-slider-element.js.map +1 -0
- package/dist/dev/ui/volume-slider/volume-slider-element.d.ts +44 -0
- package/dist/dev/ui/volume-slider/volume-slider-element.d.ts.map +1 -0
- package/dist/dev/ui/volume-slider/volume-slider-element.js +118 -0
- package/dist/dev/ui/volume-slider/volume-slider-element.js.map +1 -0
- package/package.json +41 -6
- package/dist/default/player/player-mixin.js +0 -23
- package/dist/default/player/player-mixin.js.map +0 -1
- package/dist/dev/player/player-mixin.d.ts +0 -20
- package/dist/dev/player/player-mixin.d.ts.map +0 -1
- package/dist/dev/player/player-mixin.js +0 -23
- package/dist/dev/player/player-mixin.js.map +0 -1
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { MediaElement } from "./media-element.js";
|
|
2
|
+
import { applyElementProps, applyStateDataAttrs, createButton } from "@videojs/core/dom";
|
|
3
|
+
|
|
4
|
+
//#region src/ui/media-button-element.ts
|
|
5
|
+
/** Abstract base for HTML custom elements that render a media-control button. */
|
|
6
|
+
var MediaButtonElement = class extends MediaElement {
|
|
7
|
+
constructor(..._args) {
|
|
8
|
+
super(..._args);
|
|
9
|
+
this.disabled = false;
|
|
10
|
+
this.label = "";
|
|
11
|
+
}
|
|
12
|
+
static {
|
|
13
|
+
this.properties = {
|
|
14
|
+
label: { type: String },
|
|
15
|
+
disabled: { type: Boolean }
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
#disconnect = null;
|
|
19
|
+
connectedCallback() {
|
|
20
|
+
super.connectedCallback();
|
|
21
|
+
this.#disconnect = new AbortController();
|
|
22
|
+
const buttonProps = createButton({
|
|
23
|
+
onActivate: () => this.activate(this.mediaState.value),
|
|
24
|
+
isDisabled: () => this.disabled || !this.mediaState.value
|
|
25
|
+
});
|
|
26
|
+
applyElementProps(this, buttonProps, { signal: this.#disconnect.signal });
|
|
27
|
+
}
|
|
28
|
+
disconnectedCallback() {
|
|
29
|
+
super.disconnectedCallback();
|
|
30
|
+
this.#disconnect?.abort();
|
|
31
|
+
this.#disconnect = null;
|
|
32
|
+
}
|
|
33
|
+
willUpdate(changed) {
|
|
34
|
+
super.willUpdate(changed);
|
|
35
|
+
this.core.setProps?.(this);
|
|
36
|
+
}
|
|
37
|
+
update(changed) {
|
|
38
|
+
super.update(changed);
|
|
39
|
+
const media = this.mediaState.value;
|
|
40
|
+
if (!media) return;
|
|
41
|
+
this.core.setMedia(media);
|
|
42
|
+
const state = this.core.getState();
|
|
43
|
+
applyElementProps(this, this.core.getAttrs?.(state) ?? {});
|
|
44
|
+
applyStateDataAttrs(this, state, this.stateAttrMap);
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
//#endregion
|
|
49
|
+
export { MediaButtonElement };
|
|
50
|
+
//# sourceMappingURL=media-button-element.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-button-element.js","names":["#disconnect"],"sources":["../../../src/ui/media-button-element.ts"],"sourcesContent":["import type { InferComponentState, InferMediaState, MediaUIComponent, StateAttrMap } from '@videojs/core';\nimport { applyElementProps, applyStateDataAttrs, createButton, logMissingFeature } from '@videojs/core/dom';\nimport type { PropertyDeclarationMap, PropertyValues } from '@videojs/element';\n\nimport type { PlayerController } from '../player/player-controller';\nimport { MediaElement } from './media-element';\n\n/** Abstract base for HTML custom elements that render a media-control button. */\nexport abstract class MediaButtonElement<Core extends MediaUIComponent> extends MediaElement {\n static override properties: PropertyDeclarationMap = {\n label: { type: String },\n disabled: { type: Boolean },\n };\n\n disabled = false;\n label = '';\n\n protected abstract readonly core: Core;\n protected abstract readonly stateAttrMap: StateAttrMap<InferComponentState<Core>>;\n protected abstract readonly mediaState: PlayerController<any, InferMediaState<Core> | undefined>;\n\n protected abstract activate(state: InferMediaState<Core>): void;\n\n #disconnect: AbortController | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n this.#disconnect = new AbortController();\n\n const buttonProps = createButton({\n onActivate: () => this.activate(this.mediaState.value!),\n isDisabled: () => this.disabled || !this.mediaState.value,\n });\n\n applyElementProps(this, buttonProps, { signal: this.#disconnect.signal });\n\n if (__DEV__ && !this.mediaState.value && this.mediaState.displayName) {\n logMissingFeature(this.localName, this.mediaState.displayName);\n }\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n protected override willUpdate(changed: PropertyValues): void {\n super.willUpdate(changed);\n this.core.setProps?.(this);\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n const media = this.mediaState.value;\n\n if (!media) return;\n\n this.core.setMedia(media);\n const state = this.core.getState();\n applyElementProps(this, this.core.getAttrs?.(state) ?? {});\n applyStateDataAttrs(this, state, this.stateAttrMap);\n }\n}\n"],"mappings":";;;;;AAQA,IAAsB,qBAAtB,cAAgF,aAAa;;;kBAMhF;eACH;;;oBAN6C;GACnD,OAAO,EAAE,MAAM,QAAQ;GACvB,UAAU,EAAE,MAAM,SAAS;GAC5B;;CAWD,cAAsC;CAEtC,AAAS,oBAA0B;AACjC,QAAM,mBAAmB;AAEzB,QAAKA,aAAc,IAAI,iBAAiB;EAExC,MAAM,cAAc,aAAa;GAC/B,kBAAkB,KAAK,SAAS,KAAK,WAAW,MAAO;GACvD,kBAAkB,KAAK,YAAY,CAAC,KAAK,WAAW;GACrD,CAAC;AAEF,oBAAkB,MAAM,aAAa,EAAE,QAAQ,MAAKA,WAAY,QAAQ,CAAC;;CAO3E,AAAS,uBAA6B;AACpC,QAAM,sBAAsB;AAC5B,QAAKA,YAAa,OAAO;AACzB,QAAKA,aAAc;;CAGrB,AAAmB,WAAW,SAA+B;AAC3D,QAAM,WAAW,QAAQ;AACzB,OAAK,KAAK,WAAW,KAAK;;CAG5B,AAAmB,OAAO,SAA+B;AACvD,QAAM,OAAO,QAAQ;EAErB,MAAM,QAAQ,KAAK,WAAW;AAE9B,MAAI,CAAC,MAAO;AAEZ,OAAK,KAAK,SAAS,MAAM;EACzB,MAAM,QAAQ,KAAK,KAAK,UAAU;AAClC,oBAAkB,MAAM,KAAK,KAAK,WAAW,MAAM,IAAI,EAAE,CAAC;AAC1D,sBAAoB,MAAM,OAAO,KAAK,aAAa"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { MediaElement } from "./media-element.js";
|
|
2
|
+
import { applyStateDataAttrs } from "@videojs/core/dom";
|
|
3
|
+
|
|
4
|
+
//#region src/ui/media-ui-element.ts
|
|
5
|
+
/** Abstract base for HTML custom elements that display media state with data attributes. */
|
|
6
|
+
var MediaUIElement = class extends MediaElement {
|
|
7
|
+
connectedCallback() {
|
|
8
|
+
super.connectedCallback();
|
|
9
|
+
}
|
|
10
|
+
update(changed) {
|
|
11
|
+
super.update(changed);
|
|
12
|
+
const media = this.mediaState.value;
|
|
13
|
+
if (!media) return;
|
|
14
|
+
this.core.setMedia(media);
|
|
15
|
+
const state = this.core.getState();
|
|
16
|
+
applyStateDataAttrs(this, state, this.stateAttrMap);
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
//#endregion
|
|
21
|
+
export { MediaUIElement };
|
|
22
|
+
//# sourceMappingURL=media-ui-element.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-ui-element.js","names":[],"sources":["../../../src/ui/media-ui-element.ts"],"sourcesContent":["import type { InferComponentState, InferMediaState, MediaUIComponent, StateAttrMap } from '@videojs/core';\nimport { applyStateDataAttrs, logMissingFeature } from '@videojs/core/dom';\nimport type { PropertyValues } from '@videojs/element';\n\nimport type { PlayerController } from '../player/player-controller';\nimport { MediaElement } from './media-element';\n\n/** Abstract base for HTML custom elements that display media state with data attributes. */\nexport abstract class MediaUIElement<Core extends MediaUIComponent> extends MediaElement {\n protected abstract readonly core: Core;\n protected abstract readonly stateAttrMap: StateAttrMap<InferComponentState<Core>>;\n protected abstract readonly mediaState: PlayerController<any, InferMediaState<Core> | undefined>;\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (__DEV__ && !this.mediaState.value && this.mediaState.displayName) {\n logMissingFeature(this.localName, this.mediaState.displayName);\n }\n }\n\n protected override update(changed: PropertyValues): void {\n super.update(changed);\n\n const media = this.mediaState.value;\n\n if (!media) return;\n\n this.core.setMedia(media);\n const state = this.core.getState();\n applyStateDataAttrs(this, state, this.stateAttrMap);\n }\n}\n"],"mappings":";;;;;AAQA,IAAsB,iBAAtB,cAA4E,aAAa;CAKvF,AAAS,oBAA0B;AACjC,QAAM,mBAAmB;;CAO3B,AAAmB,OAAO,SAA+B;AACvD,QAAM,OAAO,QAAQ;EAErB,MAAM,QAAQ,KAAK,WAAW;AAE9B,MAAI,CAAC,MAAO;AAEZ,OAAK,KAAK,SAAS,MAAM;EACzB,MAAM,QAAQ,KAAK,KAAK,UAAU;AAClC,sBAAoB,MAAM,OAAO,KAAK,aAAa"}
|
|
@@ -1,53 +1,22 @@
|
|
|
1
1
|
import { playerContext } from "../../player/context.js";
|
|
2
|
-
import { MediaElement } from "../media-element.js";
|
|
3
2
|
import { PlayerController } from "../../player/player-controller.js";
|
|
4
|
-
import {
|
|
3
|
+
import { MediaButtonElement } from "../media-button-element.js";
|
|
4
|
+
import { selectVolume } from "@videojs/core/dom";
|
|
5
5
|
import { MuteButtonCore, MuteButtonDataAttrs } from "@videojs/core";
|
|
6
6
|
|
|
7
7
|
//#region src/ui/mute-button/mute-button-element.ts
|
|
8
|
-
var MuteButtonElement = class extends
|
|
8
|
+
var MuteButtonElement = class extends MediaButtonElement {
|
|
9
9
|
constructor(..._args) {
|
|
10
10
|
super(..._args);
|
|
11
|
-
this.
|
|
12
|
-
this.
|
|
11
|
+
this.core = new MuteButtonCore();
|
|
12
|
+
this.stateAttrMap = MuteButtonDataAttrs;
|
|
13
|
+
this.mediaState = new PlayerController(this, playerContext, selectVolume);
|
|
13
14
|
}
|
|
14
15
|
static {
|
|
15
16
|
this.tagName = "media-mute-button";
|
|
16
17
|
}
|
|
17
|
-
|
|
18
|
-
this.
|
|
19
|
-
label: { type: String },
|
|
20
|
-
disabled: { type: Boolean }
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
#core = new MuteButtonCore();
|
|
24
|
-
#state = new PlayerController(this, playerContext, selectVolume);
|
|
25
|
-
#disconnect = null;
|
|
26
|
-
connectedCallback() {
|
|
27
|
-
super.connectedCallback();
|
|
28
|
-
this.#disconnect = new AbortController();
|
|
29
|
-
const buttonProps = createButton({
|
|
30
|
-
onActivate: () => this.#core.toggle(this.#state.value),
|
|
31
|
-
isDisabled: () => this.disabled || !this.#state.value
|
|
32
|
-
});
|
|
33
|
-
applyElementProps(this, buttonProps, this.#disconnect.signal);
|
|
34
|
-
}
|
|
35
|
-
disconnectedCallback() {
|
|
36
|
-
super.disconnectedCallback();
|
|
37
|
-
this.#disconnect?.abort();
|
|
38
|
-
this.#disconnect = null;
|
|
39
|
-
}
|
|
40
|
-
willUpdate(changed) {
|
|
41
|
-
super.willUpdate(changed);
|
|
42
|
-
this.#core.setProps(this);
|
|
43
|
-
}
|
|
44
|
-
update(changed) {
|
|
45
|
-
super.update(changed);
|
|
46
|
-
const media = this.#state.value;
|
|
47
|
-
if (!media) return;
|
|
48
|
-
const state = this.#core.getState(media);
|
|
49
|
-
applyElementProps(this, this.#core.getAttrs(state));
|
|
50
|
-
applyStateDataAttrs(this, state, MuteButtonDataAttrs);
|
|
18
|
+
activate(state) {
|
|
19
|
+
this.core.toggle(state);
|
|
51
20
|
}
|
|
52
21
|
};
|
|
53
22
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mute-button-element.js","names":[
|
|
1
|
+
{"version":3,"file":"mute-button-element.js","names":[],"sources":["../../../../src/ui/mute-button/mute-button-element.ts"],"sourcesContent":["import { type MediaVolumeState, MuteButtonCore, MuteButtonDataAttrs } from '@videojs/core';\nimport { selectVolume } 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 MuteButtonElement extends MediaButtonElement<MuteButtonCore> {\n static readonly tagName = 'media-mute-button';\n\n protected readonly core = new MuteButtonCore();\n protected readonly stateAttrMap = MuteButtonDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectVolume);\n\n protected activate(state: MediaVolumeState): void {\n this.core.toggle(state);\n }\n}\n"],"mappings":";;;;;;;AAOA,IAAa,oBAAb,cAAuC,mBAAmC;;;cAG9C,IAAI,gBAAgB;sBACZ;oBACF,IAAI,iBAAiB,MAAM,eAAe,aAAa;;;iBAJ7D;;CAM1B,AAAU,SAAS,OAA+B;AAChD,OAAK,KAAK,OAAO,MAAM"}
|
|
@@ -1,53 +1,22 @@
|
|
|
1
1
|
import { playerContext } from "../../player/context.js";
|
|
2
|
-
import { MediaElement } from "../media-element.js";
|
|
3
2
|
import { PlayerController } from "../../player/player-controller.js";
|
|
4
|
-
import {
|
|
3
|
+
import { MediaButtonElement } from "../media-button-element.js";
|
|
4
|
+
import { selectPiP } from "@videojs/core/dom";
|
|
5
5
|
import { PiPButtonCore, PiPButtonDataAttrs } from "@videojs/core";
|
|
6
6
|
|
|
7
7
|
//#region src/ui/pip-button/pip-button-element.ts
|
|
8
|
-
var PiPButtonElement = class extends
|
|
8
|
+
var PiPButtonElement = class extends MediaButtonElement {
|
|
9
9
|
constructor(..._args) {
|
|
10
10
|
super(..._args);
|
|
11
|
-
this.
|
|
12
|
-
this.
|
|
11
|
+
this.core = new PiPButtonCore();
|
|
12
|
+
this.stateAttrMap = PiPButtonDataAttrs;
|
|
13
|
+
this.mediaState = new PlayerController(this, playerContext, selectPiP);
|
|
13
14
|
}
|
|
14
15
|
static {
|
|
15
16
|
this.tagName = "media-pip-button";
|
|
16
17
|
}
|
|
17
|
-
|
|
18
|
-
this.
|
|
19
|
-
label: { type: String },
|
|
20
|
-
disabled: { type: Boolean }
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
#core = new PiPButtonCore();
|
|
24
|
-
#state = new PlayerController(this, playerContext, selectPiP);
|
|
25
|
-
#disconnect = null;
|
|
26
|
-
connectedCallback() {
|
|
27
|
-
super.connectedCallback();
|
|
28
|
-
this.#disconnect = new AbortController();
|
|
29
|
-
const buttonProps = createButton({
|
|
30
|
-
onActivate: () => this.#core.toggle(this.#state.value),
|
|
31
|
-
isDisabled: () => this.disabled || !this.#state.value
|
|
32
|
-
});
|
|
33
|
-
applyElementProps(this, buttonProps, this.#disconnect.signal);
|
|
34
|
-
}
|
|
35
|
-
disconnectedCallback() {
|
|
36
|
-
super.disconnectedCallback();
|
|
37
|
-
this.#disconnect?.abort();
|
|
38
|
-
this.#disconnect = null;
|
|
39
|
-
}
|
|
40
|
-
willUpdate(changed) {
|
|
41
|
-
super.willUpdate(changed);
|
|
42
|
-
this.#core.setProps(this);
|
|
43
|
-
}
|
|
44
|
-
update(changed) {
|
|
45
|
-
super.update(changed);
|
|
46
|
-
const media = this.#state.value;
|
|
47
|
-
if (!media) return;
|
|
48
|
-
const state = this.#core.getState(media);
|
|
49
|
-
applyElementProps(this, this.#core.getAttrs(state));
|
|
50
|
-
applyStateDataAttrs(this, state, PiPButtonDataAttrs);
|
|
18
|
+
activate(state) {
|
|
19
|
+
this.core.toggle(state);
|
|
51
20
|
}
|
|
52
21
|
};
|
|
53
22
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pip-button-element.js","names":[
|
|
1
|
+
{"version":3,"file":"pip-button-element.js","names":[],"sources":["../../../../src/ui/pip-button/pip-button-element.ts"],"sourcesContent":["import { type MediaPictureInPictureState, PiPButtonCore, PiPButtonDataAttrs } from '@videojs/core';\nimport { selectPiP } from '@videojs/core/dom';\n\nimport { playerContext } from '../../player/context';\nimport { PlayerController } from '../../player/player-controller';\nimport { MediaButtonElement } from '../media-button-element';\n\nexport class PiPButtonElement extends MediaButtonElement<PiPButtonCore> {\n static readonly tagName = 'media-pip-button';\n\n protected readonly core = new PiPButtonCore();\n protected readonly stateAttrMap = PiPButtonDataAttrs;\n protected readonly mediaState = new PlayerController(this, playerContext, selectPiP);\n\n protected activate(state: MediaPictureInPictureState): void {\n this.core.toggle(state);\n }\n}\n"],"mappings":";;;;;;;AAOA,IAAa,mBAAb,cAAsC,mBAAkC;;;cAG5C,IAAI,eAAe;sBACX;oBACF,IAAI,iBAAiB,MAAM,eAAe,UAAU;;;iBAJ1D;;CAM1B,AAAU,SAAS,OAAyC;AAC1D,OAAK,KAAK,OAAO,MAAM"}
|
|
@@ -1,53 +1,22 @@
|
|
|
1
1
|
import { playerContext } from "../../player/context.js";
|
|
2
|
-
import { MediaElement } from "../media-element.js";
|
|
3
2
|
import { PlayerController } from "../../player/player-controller.js";
|
|
4
|
-
import {
|
|
3
|
+
import { MediaButtonElement } from "../media-button-element.js";
|
|
4
|
+
import { selectPlayback } from "@videojs/core/dom";
|
|
5
5
|
import { PlayButtonCore, PlayButtonDataAttrs } from "@videojs/core";
|
|
6
6
|
|
|
7
7
|
//#region src/ui/play-button/play-button-element.ts
|
|
8
|
-
var PlayButtonElement = class extends
|
|
8
|
+
var PlayButtonElement = class extends MediaButtonElement {
|
|
9
9
|
constructor(..._args) {
|
|
10
10
|
super(..._args);
|
|
11
|
-
this.
|
|
12
|
-
this.
|
|
11
|
+
this.core = new PlayButtonCore();
|
|
12
|
+
this.stateAttrMap = PlayButtonDataAttrs;
|
|
13
|
+
this.mediaState = new PlayerController(this, playerContext, selectPlayback);
|
|
13
14
|
}
|
|
14
15
|
static {
|
|
15
16
|
this.tagName = "media-play-button";
|
|
16
17
|
}
|
|
17
|
-
|
|
18
|
-
this.
|
|
19
|
-
label: { type: String },
|
|
20
|
-
disabled: { type: Boolean }
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
#core = new PlayButtonCore();
|
|
24
|
-
#state = new PlayerController(this, playerContext, selectPlayback);
|
|
25
|
-
#disconnect = null;
|
|
26
|
-
connectedCallback() {
|
|
27
|
-
super.connectedCallback();
|
|
28
|
-
this.#disconnect = new AbortController();
|
|
29
|
-
const buttonProps = createButton({
|
|
30
|
-
onActivate: () => this.#core.toggle(this.#state.value),
|
|
31
|
-
isDisabled: () => this.disabled || !this.#state.value
|
|
32
|
-
});
|
|
33
|
-
applyElementProps(this, buttonProps, this.#disconnect.signal);
|
|
34
|
-
}
|
|
35
|
-
disconnectedCallback() {
|
|
36
|
-
super.disconnectedCallback();
|
|
37
|
-
this.#disconnect?.abort();
|
|
38
|
-
this.#disconnect = null;
|
|
39
|
-
}
|
|
40
|
-
willUpdate(changed) {
|
|
41
|
-
super.willUpdate(changed);
|
|
42
|
-
this.#core.setProps(this);
|
|
43
|
-
}
|
|
44
|
-
update(changed) {
|
|
45
|
-
super.update(changed);
|
|
46
|
-
const media = this.#state.value;
|
|
47
|
-
if (!media) return;
|
|
48
|
-
const state = this.#core.getState(media);
|
|
49
|
-
applyElementProps(this, this.#core.getAttrs(state));
|
|
50
|
-
applyStateDataAttrs(this, state, PlayButtonDataAttrs);
|
|
18
|
+
activate(state) {
|
|
19
|
+
this.core.toggle(state);
|
|
51
20
|
}
|
|
52
21
|
};
|
|
53
22
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"play-button-element.js","names":[
|
|
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,AAAU,SAAS,OAAiC;AAClD,OAAK,KAAK,OAAO,MAAM"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { playerContext } from "../../player/context.js";
|
|
2
|
+
import { PlayerController } from "../../player/player-controller.js";
|
|
3
|
+
import { MediaButtonElement } from "../media-button-element.js";
|
|
4
|
+
import { selectPlaybackRate } from "@videojs/core/dom";
|
|
5
|
+
import { PlaybackRateButtonCore, PlaybackRateButtonDataAttrs } from "@videojs/core";
|
|
6
|
+
|
|
7
|
+
//#region src/ui/playback-rate-button/playback-rate-button-element.ts
|
|
8
|
+
var PlaybackRateButtonElement = class extends MediaButtonElement {
|
|
9
|
+
constructor(..._args) {
|
|
10
|
+
super(..._args);
|
|
11
|
+
this.core = new PlaybackRateButtonCore();
|
|
12
|
+
this.stateAttrMap = PlaybackRateButtonDataAttrs;
|
|
13
|
+
this.mediaState = new PlayerController(this, playerContext, selectPlaybackRate);
|
|
14
|
+
}
|
|
15
|
+
static {
|
|
16
|
+
this.tagName = "media-playback-rate-button";
|
|
17
|
+
}
|
|
18
|
+
activate(state) {
|
|
19
|
+
this.core.cycle(state);
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
//#endregion
|
|
24
|
+
export { PlaybackRateButtonElement };
|
|
25
|
+
//# sourceMappingURL=playback-rate-button-element.js.map
|
|
@@ -0,0 +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":";;;;;;;AAOA,IAAa,4BAAb,cAA+C,mBAA2C;;;cAG9D,IAAI,wBAAwB;sBACpB;oBACF,IAAI,iBAAiB,MAAM,eAAe,mBAAmB;;;iBAJnE;;CAM1B,AAAU,SAAS,OAAqC;AACtD,OAAK,KAAK,MAAM,MAAM"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { MediaElement } from "../media-element.js";
|
|
2
|
+
import { applyElementProps, applyStateDataAttrs, createPopover, createTransition, getAnchorNameStyle, getAnchorPositionStyle, resolveOffsets } from "@videojs/core/dom";
|
|
3
|
+
import { SnapshotController } from "@videojs/store/html";
|
|
4
|
+
import { PopoverCore, PopoverDataAttrs } from "@videojs/core";
|
|
5
|
+
import { applyStyles, supportsAnchorPositioning } from "@videojs/utils/dom";
|
|
6
|
+
|
|
7
|
+
//#region src/ui/popover/popover-element.ts
|
|
8
|
+
var PopoverElement = class extends MediaElement {
|
|
9
|
+
constructor(..._args) {
|
|
10
|
+
super(..._args);
|
|
11
|
+
this.open = PopoverCore.defaultProps.open;
|
|
12
|
+
this.defaultOpen = PopoverCore.defaultProps.defaultOpen;
|
|
13
|
+
this.side = PopoverCore.defaultProps.side;
|
|
14
|
+
this.align = PopoverCore.defaultProps.align;
|
|
15
|
+
this.modal = PopoverCore.defaultProps.modal;
|
|
16
|
+
this.closeOnEscape = PopoverCore.defaultProps.closeOnEscape;
|
|
17
|
+
this.closeOnOutsideClick = PopoverCore.defaultProps.closeOnOutsideClick;
|
|
18
|
+
this.openOnHover = PopoverCore.defaultProps.openOnHover;
|
|
19
|
+
this.delay = PopoverCore.defaultProps.delay;
|
|
20
|
+
this.closeDelay = PopoverCore.defaultProps.closeDelay;
|
|
21
|
+
}
|
|
22
|
+
static {
|
|
23
|
+
this.tagName = "media-popover";
|
|
24
|
+
}
|
|
25
|
+
static {
|
|
26
|
+
this.properties = {
|
|
27
|
+
open: { type: Boolean },
|
|
28
|
+
defaultOpen: {
|
|
29
|
+
type: Boolean,
|
|
30
|
+
attribute: "default-open"
|
|
31
|
+
},
|
|
32
|
+
side: { type: String },
|
|
33
|
+
align: { type: String },
|
|
34
|
+
modal: { type: Boolean },
|
|
35
|
+
closeOnEscape: {
|
|
36
|
+
type: Boolean,
|
|
37
|
+
attribute: "close-on-escape"
|
|
38
|
+
},
|
|
39
|
+
closeOnOutsideClick: {
|
|
40
|
+
type: Boolean,
|
|
41
|
+
attribute: "close-on-outside-click"
|
|
42
|
+
},
|
|
43
|
+
openOnHover: {
|
|
44
|
+
type: Boolean,
|
|
45
|
+
attribute: "open-on-hover"
|
|
46
|
+
},
|
|
47
|
+
delay: { type: Number },
|
|
48
|
+
closeDelay: {
|
|
49
|
+
type: Number,
|
|
50
|
+
attribute: "close-delay"
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
#core = new PopoverCore();
|
|
55
|
+
#popover = null;
|
|
56
|
+
#snapshot = null;
|
|
57
|
+
#disconnect = null;
|
|
58
|
+
#triggerAbort = null;
|
|
59
|
+
#currentTrigger = null;
|
|
60
|
+
connectedCallback() {
|
|
61
|
+
super.connectedCallback();
|
|
62
|
+
this.#disconnect = new AbortController();
|
|
63
|
+
this.#popover = createPopover({
|
|
64
|
+
transition: createTransition(),
|
|
65
|
+
onOpenChange: (nextOpen, details) => {
|
|
66
|
+
this.open = nextOpen;
|
|
67
|
+
this.dispatchEvent(new CustomEvent("open-change", { detail: {
|
|
68
|
+
open: nextOpen,
|
|
69
|
+
...details
|
|
70
|
+
} }));
|
|
71
|
+
},
|
|
72
|
+
closeOnEscape: () => this.closeOnEscape,
|
|
73
|
+
closeOnOutsideClick: () => this.closeOnOutsideClick,
|
|
74
|
+
openOnHover: () => this.openOnHover,
|
|
75
|
+
delay: () => this.delay,
|
|
76
|
+
closeDelay: () => this.closeDelay
|
|
77
|
+
});
|
|
78
|
+
this.#popover.setPopupElement(this);
|
|
79
|
+
applyElementProps(this, this.#popover.popupProps, { signal: this.#disconnect.signal });
|
|
80
|
+
if (this.#snapshot) this.#snapshot.track(this.#popover.input);
|
|
81
|
+
else this.#snapshot = new SnapshotController(this, this.#popover.input);
|
|
82
|
+
}
|
|
83
|
+
firstUpdated(changed) {
|
|
84
|
+
super.firstUpdated(changed);
|
|
85
|
+
if (this.defaultOpen && !this.open) this.#popover?.open();
|
|
86
|
+
}
|
|
87
|
+
disconnectedCallback() {
|
|
88
|
+
super.disconnectedCallback();
|
|
89
|
+
this.#cleanupTrigger();
|
|
90
|
+
this.#popover?.destroy();
|
|
91
|
+
this.#popover = null;
|
|
92
|
+
this.#disconnect?.abort();
|
|
93
|
+
this.#disconnect = null;
|
|
94
|
+
}
|
|
95
|
+
willUpdate(changed) {
|
|
96
|
+
super.willUpdate(changed);
|
|
97
|
+
this.#core.setProps(this);
|
|
98
|
+
if (this.#popover && changed.has("open")) {
|
|
99
|
+
const { active: interactionOpen } = this.#popover.input.current;
|
|
100
|
+
if (this.open !== interactionOpen) if (this.open) this.#popover.open();
|
|
101
|
+
else this.#popover.close();
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
update(_changed) {
|
|
105
|
+
super.update(_changed);
|
|
106
|
+
if (!this.#popover) return;
|
|
107
|
+
const triggerEl = this.#findTrigger();
|
|
108
|
+
this.#syncTrigger(triggerEl);
|
|
109
|
+
const input = this.#popover.input.current;
|
|
110
|
+
this.#core.setInput(input);
|
|
111
|
+
const state = this.#core.getState();
|
|
112
|
+
applyElementProps(this, this.#core.getPopupAttrs(state));
|
|
113
|
+
applyStateDataAttrs(this, state, PopoverDataAttrs);
|
|
114
|
+
if (this.#currentTrigger) {
|
|
115
|
+
applyElementProps(this.#currentTrigger, this.#core.getTriggerAttrs(state, this.id));
|
|
116
|
+
applyStyles(this.#currentTrigger, getAnchorNameStyle(this.id));
|
|
117
|
+
}
|
|
118
|
+
if (!state.open) return;
|
|
119
|
+
const posOpts = {
|
|
120
|
+
side: state.side,
|
|
121
|
+
align: state.align
|
|
122
|
+
};
|
|
123
|
+
if (supportsAnchorPositioning()) applyStyles(this, getAnchorPositionStyle(this.id, posOpts));
|
|
124
|
+
else {
|
|
125
|
+
const triggerRect = this.#currentTrigger?.getBoundingClientRect();
|
|
126
|
+
const selfRect = this.getBoundingClientRect();
|
|
127
|
+
const boundaryRect = document.documentElement.getBoundingClientRect();
|
|
128
|
+
const offsets = resolveOffsets(this);
|
|
129
|
+
applyStyles(this, getAnchorPositionStyle(this.id, posOpts, triggerRect, selfRect, boundaryRect, offsets));
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
#findTrigger() {
|
|
133
|
+
if (!this.id) return null;
|
|
134
|
+
return this.getRootNode().querySelector(`[commandfor="${this.id}"]`);
|
|
135
|
+
}
|
|
136
|
+
#syncTrigger(triggerEl) {
|
|
137
|
+
if (triggerEl === this.#currentTrigger) return;
|
|
138
|
+
this.#cleanupTrigger();
|
|
139
|
+
this.#currentTrigger = triggerEl;
|
|
140
|
+
this.#popover?.setTriggerElement(triggerEl);
|
|
141
|
+
if (triggerEl && this.#popover) {
|
|
142
|
+
this.#triggerAbort = new AbortController();
|
|
143
|
+
applyElementProps(triggerEl, this.#popover.triggerProps, { signal: this.#triggerAbort.signal });
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
#cleanupTrigger() {
|
|
147
|
+
if (this.#currentTrigger) {
|
|
148
|
+
applyElementProps(this.#currentTrigger, {
|
|
149
|
+
"aria-expanded": void 0,
|
|
150
|
+
"aria-haspopup": void 0,
|
|
151
|
+
"aria-controls": void 0
|
|
152
|
+
});
|
|
153
|
+
this.#currentTrigger.style.removeProperty("anchor-name");
|
|
154
|
+
}
|
|
155
|
+
this.#triggerAbort?.abort();
|
|
156
|
+
this.#triggerAbort = null;
|
|
157
|
+
this.#currentTrigger = null;
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
//#endregion
|
|
162
|
+
export { PopoverElement };
|
|
163
|
+
//# sourceMappingURL=popover-element.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"popover-element.js","names":["#core","#disconnect","#popover","#snapshot","#cleanupTrigger","#findTrigger","#syncTrigger","#currentTrigger","#triggerAbort"],"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 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 } 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\n override connectedCallback(): void {\n super.connectedCallback();\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.#cleanupTrigger();\n this.#popover?.destroy();\n this.#popover = null;\n this.#disconnect?.abort();\n this.#disconnect = null;\n }\n\n protected override willUpdate(changed: PropertyValues): void {\n super.willUpdate(changed);\n this.#core.setProps(this);\n\n // 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 // 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) return;\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 = this.getBoundingClientRect();\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\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.#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"],"mappings":"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"}
|
|
@@ -1,25 +1,20 @@
|
|
|
1
1
|
import { playerContext } from "../../player/context.js";
|
|
2
|
-
import { MediaElement } from "../media-element.js";
|
|
3
2
|
import { PlayerController } from "../../player/player-controller.js";
|
|
4
|
-
import {
|
|
3
|
+
import { MediaUIElement } from "../media-ui-element.js";
|
|
4
|
+
import { selectPlayback } from "@videojs/core/dom";
|
|
5
5
|
import { PosterCore, PosterDataAttrs } from "@videojs/core";
|
|
6
6
|
|
|
7
7
|
//#region src/ui/poster/poster-element.ts
|
|
8
|
-
var PosterElement = class extends
|
|
8
|
+
var PosterElement = class extends MediaUIElement {
|
|
9
|
+
constructor(..._args) {
|
|
10
|
+
super(..._args);
|
|
11
|
+
this.core = new PosterCore();
|
|
12
|
+
this.stateAttrMap = PosterDataAttrs;
|
|
13
|
+
this.mediaState = new PlayerController(this, playerContext, selectPlayback);
|
|
14
|
+
}
|
|
9
15
|
static {
|
|
10
16
|
this.tagName = "media-poster";
|
|
11
17
|
}
|
|
12
|
-
#core = new PosterCore();
|
|
13
|
-
#state = new PlayerController(this, playerContext, selectPlayback);
|
|
14
|
-
connectedCallback() {
|
|
15
|
-
super.connectedCallback();
|
|
16
|
-
}
|
|
17
|
-
update(changed) {
|
|
18
|
-
super.update(changed);
|
|
19
|
-
const media = this.#state.value;
|
|
20
|
-
if (!media) return;
|
|
21
|
-
applyStateDataAttrs(this, this.#core.getState(media), PosterDataAttrs);
|
|
22
|
-
}
|
|
23
18
|
};
|
|
24
19
|
|
|
25
20
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"poster-element.js","names":[
|
|
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"}
|
|
@@ -1,55 +1,29 @@
|
|
|
1
1
|
import { playerContext } from "../../player/context.js";
|
|
2
|
-
import { MediaElement } from "../media-element.js";
|
|
3
2
|
import { PlayerController } from "../../player/player-controller.js";
|
|
4
|
-
import {
|
|
3
|
+
import { MediaButtonElement } from "../media-button-element.js";
|
|
4
|
+
import { selectTime } from "@videojs/core/dom";
|
|
5
5
|
import { SeekButtonCore, SeekButtonDataAttrs } from "@videojs/core";
|
|
6
6
|
|
|
7
7
|
//#region src/ui/seek-button/seek-button-element.ts
|
|
8
|
-
var SeekButtonElement = class extends
|
|
8
|
+
var SeekButtonElement = class extends MediaButtonElement {
|
|
9
9
|
constructor(..._args) {
|
|
10
10
|
super(..._args);
|
|
11
11
|
this.seconds = SeekButtonCore.defaultProps.seconds;
|
|
12
|
-
this.
|
|
13
|
-
this.
|
|
12
|
+
this.core = new SeekButtonCore();
|
|
13
|
+
this.stateAttrMap = SeekButtonDataAttrs;
|
|
14
|
+
this.mediaState = new PlayerController(this, playerContext, selectTime);
|
|
14
15
|
}
|
|
15
16
|
static {
|
|
16
17
|
this.tagName = "media-seek-button";
|
|
17
18
|
}
|
|
18
19
|
static {
|
|
19
20
|
this.properties = {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
disabled: { type: Boolean }
|
|
21
|
+
...MediaButtonElement.properties,
|
|
22
|
+
seconds: { type: Number }
|
|
23
23
|
};
|
|
24
24
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
#disconnect = null;
|
|
28
|
-
connectedCallback() {
|
|
29
|
-
super.connectedCallback();
|
|
30
|
-
this.#disconnect = new AbortController();
|
|
31
|
-
const buttonProps = createButton({
|
|
32
|
-
onActivate: () => this.#core.seek(this.#state.value),
|
|
33
|
-
isDisabled: () => this.disabled || !this.#state.value
|
|
34
|
-
});
|
|
35
|
-
applyElementProps(this, buttonProps, this.#disconnect.signal);
|
|
36
|
-
}
|
|
37
|
-
disconnectedCallback() {
|
|
38
|
-
super.disconnectedCallback();
|
|
39
|
-
this.#disconnect?.abort();
|
|
40
|
-
this.#disconnect = null;
|
|
41
|
-
}
|
|
42
|
-
willUpdate(changed) {
|
|
43
|
-
super.willUpdate(changed);
|
|
44
|
-
this.#core.setProps(this);
|
|
45
|
-
}
|
|
46
|
-
update(changed) {
|
|
47
|
-
super.update(changed);
|
|
48
|
-
const media = this.#state.value;
|
|
49
|
-
if (!media) return;
|
|
50
|
-
const state = this.#core.getState(media);
|
|
51
|
-
applyElementProps(this, this.#core.getAttrs(state));
|
|
52
|
-
applyStateDataAttrs(this, state, SeekButtonDataAttrs);
|
|
25
|
+
activate(state) {
|
|
26
|
+
this.core.seek(state);
|
|
53
27
|
}
|
|
54
28
|
};
|
|
55
29
|
|