aboutsummaryrefslogtreecommitdiff
path: root/priv/static/video.js/types
diff options
context:
space:
mode:
Diffstat (limited to 'priv/static/video.js/types')
-rw-r--r--priv/static/video.js/types/big-play-button.d.ts34
-rw-r--r--priv/static/video.js/types/big-play-button.d.ts.map1
-rw-r--r--priv/static/video.js/types/button.d.ts28
-rw-r--r--priv/static/video.js/types/button.d.ts.map1
-rw-r--r--priv/static/video.js/types/clickable-component.d.ts88
-rw-r--r--priv/static/video.js/types/clickable-component.d.ts.map1
-rw-r--r--priv/static/video.js/types/close-button.d.ts35
-rw-r--r--priv/static/video.js/types/close-button.d.ts.map1
-rw-r--r--priv/static/video.js/types/component.d.ts881
-rw-r--r--priv/static/video.js/types/component.d.ts.map1
-rw-r--r--priv/static/video.js/types/consts/errors.d.ts30
-rw-r--r--priv/static/video.js/types/consts/errors.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/audio-track-controls/audio-track-button.d.ts28
-rw-r--r--priv/static/video.js/types/control-bar/audio-track-controls/audio-track-button.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/audio-track-controls/audio-track-menu-item.d.ts33
-rw-r--r--priv/static/video.js/types/control-bar/audio-track-controls/audio-track-menu-item.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/control-bar.d.ts17
-rw-r--r--priv/static/video.js/types/control-bar/control-bar.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/fullscreen-toggle.d.ts42
-rw-r--r--priv/static/video.js/types/control-bar/fullscreen-toggle.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/live-display.d.ts39
-rw-r--r--priv/static/video.js/types/control-bar/live-display.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/mute-toggle.d.ts64
-rw-r--r--priv/static/video.js/types/control-bar/mute-toggle.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/picture-in-picture-toggle.d.ts61
-rw-r--r--priv/static/video.js/types/control-bar/picture-in-picture-toggle.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/play-toggle.d.ts69
-rw-r--r--priv/static/video.js/types/control-bar/play-toggle.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/playback-rate-menu/playback-rate-menu-button.d.ts66
-rw-r--r--priv/static/video.js/types/control-bar/playback-rate-menu/playback-rate-menu-button.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/playback-rate-menu/playback-rate-menu-item.d.ts40
-rw-r--r--priv/static/video.js/types/control-bar/playback-rate-menu/playback-rate-menu-item.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/progress-control/load-progress-bar.d.ts40
-rw-r--r--priv/static/video.js/types/control-bar/progress-control/load-progress-bar.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/progress-control/mouse-time-display.d.ts42
-rw-r--r--priv/static/video.js/types/control-bar/progress-control/mouse-time-display.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/progress-control/play-progress-bar.d.ts40
-rw-r--r--priv/static/video.js/types/control-bar/progress-control/play-progress-bar.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/progress-control/progress-control.d.ts101
-rw-r--r--priv/static/video.js/types/control-bar/progress-control/progress-control.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/progress-control/seek-bar.d.ts100
-rw-r--r--priv/static/video.js/types/control-bar/progress-control/seek-bar.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/progress-control/time-tooltip.d.ts63
-rw-r--r--priv/static/video.js/types/control-bar/progress-control/time-tooltip.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/seek-to-live.d.ts51
-rw-r--r--priv/static/video.js/types/control-bar/seek-to-live.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/skip-buttons/skip-backward.d.ts29
-rw-r--r--priv/static/video.js/types/control-bar/skip-buttons/skip-backward.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/skip-buttons/skip-forward.d.ts29
-rw-r--r--priv/static/video.js/types/control-bar/skip-buttons/skip-forward.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/spacer-controls/custom-control-spacer.d.ts17
-rw-r--r--priv/static/video.js/types/control-bar/spacer-controls/custom-control-spacer.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/spacer-controls/spacer.d.ts18
-rw-r--r--priv/static/video.js/types/control-bar/spacer-controls/spacer.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/text-track-controls/caption-settings-menu-item.d.ts22
-rw-r--r--priv/static/video.js/types/control-bar/text-track-controls/caption-settings-menu-item.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/text-track-controls/captions-button.d.ts53
-rw-r--r--priv/static/video.js/types/control-bar/text-track-controls/captions-button.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/text-track-controls/chapters-button.d.ts98
-rw-r--r--priv/static/video.js/types/control-bar/text-track-controls/chapters-button.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/text-track-controls/chapters-track-menu-item.d.ts24
-rw-r--r--priv/static/video.js/types/control-bar/text-track-controls/chapters-track-menu-item.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/text-track-controls/descriptions-button.d.ts54
-rw-r--r--priv/static/video.js/types/control-bar/text-track-controls/descriptions-button.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/text-track-controls/off-text-track-menu-item.d.ts10
-rw-r--r--priv/static/video.js/types/control-bar/text-track-controls/off-text-track-menu-item.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/text-track-controls/subs-caps-button.d.ts35
-rw-r--r--priv/static/video.js/types/control-bar/text-track-controls/subs-caps-button.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/text-track-controls/subs-caps-menu-item.d.ts12
-rw-r--r--priv/static/video.js/types/control-bar/text-track-controls/subs-caps-menu-item.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/text-track-controls/subtitles-button.d.ts45
-rw-r--r--priv/static/video.js/types/control-bar/text-track-controls/subtitles-button.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/text-track-controls/text-track-button.d.ts31
-rw-r--r--priv/static/video.js/types/control-bar/text-track-controls/text-track-button.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/text-track-controls/text-track-menu-item.d.ts22
-rw-r--r--priv/static/video.js/types/control-bar/text-track-controls/text-track-menu-item.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/time-controls/current-time-display.d.ts35
-rw-r--r--priv/static/video.js/types/control-bar/time-controls/current-time-display.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/time-controls/duration-display.d.ts48
-rw-r--r--priv/static/video.js/types/control-bar/time-controls/duration-display.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/time-controls/remaining-time-display.d.ts53
-rw-r--r--priv/static/video.js/types/control-bar/time-controls/remaining-time-display.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/time-controls/time-display.d.ts72
-rw-r--r--priv/static/video.js/types/control-bar/time-controls/time-display.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/time-controls/time-divider.d.ts18
-rw-r--r--priv/static/video.js/types/control-bar/time-controls/time-divider.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/track-button.d.ts20
-rw-r--r--priv/static/video.js/types/control-bar/track-button.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/volume-control/check-mute-support.d.ts15
-rw-r--r--priv/static/video.js/types/control-bar/volume-control/check-mute-support.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/volume-control/check-volume-support.d.ts15
-rw-r--r--priv/static/video.js/types/control-bar/volume-control/check-volume-support.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/volume-control/mouse-volume-level-display.d.ts47
-rw-r--r--priv/static/video.js/types/control-bar/volume-control/mouse-volume-level-display.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/volume-control/volume-bar.d.ts84
-rw-r--r--priv/static/video.js/types/control-bar/volume-control/volume-bar.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/volume-control/volume-control.d.ts59
-rw-r--r--priv/static/video.js/types/control-bar/volume-control/volume-control.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/volume-control/volume-level-tooltip.d.ts73
-rw-r--r--priv/static/video.js/types/control-bar/volume-control/volume-level-tooltip.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/volume-control/volume-level.d.ts17
-rw-r--r--priv/static/video.js/types/control-bar/volume-control/volume-level.d.ts.map1
-rw-r--r--priv/static/video.js/types/control-bar/volume-panel.d.ts97
-rw-r--r--priv/static/video.js/types/control-bar/volume-panel.d.ts.map1
-rw-r--r--priv/static/video.js/types/debug.d.ts3
-rw-r--r--priv/static/video.js/types/debug.d.ts.map1
-rw-r--r--priv/static/video.js/types/error-display.d.ts28
-rw-r--r--priv/static/video.js/types/error-display.d.ts.map1
-rw-r--r--priv/static/video.js/types/event-target.d.ts131
-rw-r--r--priv/static/video.js/types/event-target.d.ts.map1
-rw-r--r--priv/static/video.js/types/fullscreen-api.d.ts10
-rw-r--r--priv/static/video.js/types/fullscreen-api.d.ts.map1
-rw-r--r--priv/static/video.js/types/index.d.ts3
-rw-r--r--priv/static/video.js/types/index.d.ts.map1
-rw-r--r--priv/static/video.js/types/live-tracker.d.ts170
-rw-r--r--priv/static/video.js/types/live-tracker.d.ts.map1
-rw-r--r--priv/static/video.js/types/loading-spinner.d.ts17
-rw-r--r--priv/static/video.js/types/loading-spinner.d.ts.map1
-rw-r--r--priv/static/video.js/types/media-error.d.ts134
-rw-r--r--priv/static/video.js/types/media-error.d.ts.map1
-rw-r--r--priv/static/video.js/types/menu/menu-button.d.ts177
-rw-r--r--priv/static/video.js/types/menu/menu-button.d.ts.map1
-rw-r--r--priv/static/video.js/types/menu/menu-item.d.ts44
-rw-r--r--priv/static/video.js/types/menu/menu-item.d.ts.map1
-rw-r--r--priv/static/video.js/types/menu/menu-keys.d.ts19
-rw-r--r--priv/static/video.js/types/menu/menu-keys.d.ts.map1
-rw-r--r--priv/static/video.js/types/menu/menu.d.ts102
-rw-r--r--priv/static/video.js/types/menu/menu.d.ts.map1
-rw-r--r--priv/static/video.js/types/mixins/evented.d.ts41
-rw-r--r--priv/static/video.js/types/mixins/evented.d.ts.map1
-rw-r--r--priv/static/video.js/types/mixins/stateful.d.ts21
-rw-r--r--priv/static/video.js/types/mixins/stateful.d.ts.map1
-rw-r--r--priv/static/video.js/types/modal-dialog.d.ts193
-rw-r--r--priv/static/video.js/types/modal-dialog.d.ts.map1
-rw-r--r--priv/static/video.js/types/player.d.ts1776
-rw-r--r--priv/static/video.js/types/player.d.ts.map1
-rw-r--r--priv/static/video.js/types/plugin.d.ts184
-rw-r--r--priv/static/video.js/types/plugin.d.ts.map1
-rw-r--r--priv/static/video.js/types/poster-image.d.ts84
-rw-r--r--priv/static/video.js/types/poster-image.d.ts.map1
-rw-r--r--priv/static/video.js/types/resize-manager.d.ts52
-rw-r--r--priv/static/video.js/types/resize-manager.d.ts.map1
-rw-r--r--priv/static/video.js/types/setup.d.ts20
-rw-r--r--priv/static/video.js/types/setup.d.ts.map1
-rw-r--r--priv/static/video.js/types/slider/slider.d.ts147
-rw-r--r--priv/static/video.js/types/slider/slider.d.ts.map1
-rw-r--r--priv/static/video.js/types/tech/html5.d.ts350
-rw-r--r--priv/static/video.js/types/tech/html5.d.ts.map1
-rw-r--r--priv/static/video.js/types/tech/loader.d.ts24
-rw-r--r--priv/static/video.js/types/tech/loader.d.ts.map1
-rw-r--r--priv/static/video.js/types/tech/middleware.d.ts171
-rw-r--r--priv/static/video.js/types/tech/middleware.d.ts.map1
-rw-r--r--priv/static/video.js/types/tech/setup-sourceset.d.ts18
-rw-r--r--priv/static/video.js/types/tech/setup-sourceset.d.ts.map1
-rw-r--r--priv/static/video.js/types/tech/tech.d.ts581
-rw-r--r--priv/static/video.js/types/tech/tech.d.ts.map1
-rw-r--r--priv/static/video.js/types/title-bar.d.ts67
-rw-r--r--priv/static/video.js/types/title-bar.d.ts.map1
-rw-r--r--priv/static/video.js/types/tracks/audio-track-list.d.ts29
-rw-r--r--priv/static/video.js/types/tracks/audio-track-list.d.ts.map1
-rw-r--r--priv/static/video.js/types/tracks/audio-track.d.ts37
-rw-r--r--priv/static/video.js/types/tracks/audio-track.d.ts.map1
-rw-r--r--priv/static/video.js/types/tracks/html-track-element-list.d.ts49
-rw-r--r--priv/static/video.js/types/tracks/html-track-element-list.d.ts.map1
-rw-r--r--priv/static/video.js/types/tracks/html-track-element.d.ts65
-rw-r--r--priv/static/video.js/types/tracks/html-track-element.d.ts.map1
-rw-r--r--priv/static/video.js/types/tracks/text-track-cue-list.d.ts79
-rw-r--r--priv/static/video.js/types/tracks/text-track-cue-list.d.ts.map1
-rw-r--r--priv/static/video.js/types/tracks/text-track-display.d.ts93
-rw-r--r--priv/static/video.js/types/tracks/text-track-display.d.ts.map1
-rw-r--r--priv/static/video.js/types/tracks/text-track-list-converter.d.ts50
-rw-r--r--priv/static/video.js/types/tracks/text-track-list-converter.d.ts.map1
-rw-r--r--priv/static/video.js/types/tracks/text-track-list.d.ts23
-rw-r--r--priv/static/video.js/types/tracks/text-track-list.d.ts.map1
-rw-r--r--priv/static/video.js/types/tracks/text-track-settings.d.ts124
-rw-r--r--priv/static/video.js/types/tracks/text-track-settings.d.ts.map1
-rw-r--r--priv/static/video.js/types/tracks/text-track.d.ts79
-rw-r--r--priv/static/video.js/types/tracks/text-track.d.ts.map1
-rw-r--r--priv/static/video.js/types/tracks/track-enums.d.ts66
-rw-r--r--priv/static/video.js/types/tracks/track-enums.d.ts.map1
-rw-r--r--priv/static/video.js/types/tracks/track-list.d.ts66
-rw-r--r--priv/static/video.js/types/tracks/track-list.d.ts.map1
-rw-r--r--priv/static/video.js/types/tracks/track-types.d.ts48
-rw-r--r--priv/static/video.js/types/tracks/track-types.d.ts.map1
-rw-r--r--priv/static/video.js/types/tracks/track.d.ts41
-rw-r--r--priv/static/video.js/types/tracks/track.d.ts.map1
-rw-r--r--priv/static/video.js/types/tracks/video-track-list.d.ts29
-rw-r--r--priv/static/video.js/types/tracks/video-track-list.d.ts.map1
-rw-r--r--priv/static/video.js/types/tracks/video-track.d.ts40
-rw-r--r--priv/static/video.js/types/tracks/video-track.d.ts.map1
-rw-r--r--priv/static/video.js/types/utils/browser.d.ts163
-rw-r--r--priv/static/video.js/types/utils/browser.d.ts.map1
-rw-r--r--priv/static/video.js/types/utils/buffer.d.ts14
-rw-r--r--priv/static/video.js/types/utils/buffer.d.ts.map1
-rw-r--r--priv/static/video.js/types/utils/create-logger.d.ts124
-rw-r--r--priv/static/video.js/types/utils/create-logger.d.ts.map1
-rw-r--r--priv/static/video.js/types/utils/deprecate.d.ts28
-rw-r--r--priv/static/video.js/types/utils/deprecate.d.ts.map1
-rw-r--r--priv/static/video.js/types/utils/dom-data.d.ts3
-rw-r--r--priv/static/video.js/types/utils/dom-data.d.ts.map1
-rw-r--r--priv/static/video.js/types/utils/dom.d.ts448
-rw-r--r--priv/static/video.js/types/utils/dom.d.ts.map1
-rw-r--r--priv/static/video.js/types/utils/events.d.ts85
-rw-r--r--priv/static/video.js/types/utils/events.d.ts.map1
-rw-r--r--priv/static/video.js/types/utils/filter-source.d.ts16
-rw-r--r--priv/static/video.js/types/utils/filter-source.d.ts.map1
-rw-r--r--priv/static/video.js/types/utils/fn.d.ts5
-rw-r--r--priv/static/video.js/types/utils/fn.d.ts.map1
-rw-r--r--priv/static/video.js/types/utils/guid.d.ts12
-rw-r--r--priv/static/video.js/types/utils/guid.d.ts.map1
-rw-r--r--priv/static/video.js/types/utils/hooks.d.ts54
-rw-r--r--priv/static/video.js/types/utils/hooks.d.ts.map1
-rw-r--r--priv/static/video.js/types/utils/log.d.ts20
-rw-r--r--priv/static/video.js/types/utils/log.d.ts.map1
-rw-r--r--priv/static/video.js/types/utils/mimetypes.d.ts34
-rw-r--r--priv/static/video.js/types/utils/mimetypes.d.ts.map1
-rw-r--r--priv/static/video.js/types/utils/num.d.ts20
-rw-r--r--priv/static/video.js/types/utils/num.d.ts.map1
-rw-r--r--priv/static/video.js/types/utils/obj.d.ts86
-rw-r--r--priv/static/video.js/types/utils/obj.d.ts.map1
-rw-r--r--priv/static/video.js/types/utils/promise.d.ts21
-rw-r--r--priv/static/video.js/types/utils/promise.d.ts.map1
-rw-r--r--priv/static/video.js/types/utils/str.d.ts4
-rw-r--r--priv/static/video.js/types/utils/str.d.ts.map1
-rw-r--r--priv/static/video.js/types/utils/stylesheet.d.ts3
-rw-r--r--priv/static/video.js/types/utils/stylesheet.d.ts.map1
-rw-r--r--priv/static/video.js/types/utils/time.d.ts71
-rw-r--r--priv/static/video.js/types/utils/time.d.ts.map1
-rw-r--r--priv/static/video.js/types/utils/url.d.ts41
-rw-r--r--priv/static/video.js/types/utils/url.d.ts.map1
-rw-r--r--priv/static/video.js/types/video.d.ts242
-rw-r--r--priv/static/video.js/types/video.d.ts.map1
232 files changed, 10239 insertions, 0 deletions
diff --git a/priv/static/video.js/types/big-play-button.d.ts b/priv/static/video.js/types/big-play-button.d.ts
new file mode 100644
index 0000000..45f7ffa
--- /dev/null
+++ b/priv/static/video.js/types/big-play-button.d.ts
@@ -0,0 +1,34 @@
+export default BigPlayButton;
+/**
+ * The initial play button that shows before the video has played. The hiding of the
+ * `BigPlayButton` get done via CSS and `Player` states.
+ *
+ * @extends Button
+ */
+declare class BigPlayButton extends Button {
+ constructor(player: any, options: any);
+ mouseused_: boolean;
+ /**
+ * This gets called when a `BigPlayButton` "clicked". See {@link ClickableComponent}
+ * for more detailed information on what a click can be.
+ *
+ * @param {KeyboardEvent|MouseEvent|TouchEvent} event
+ * The `keydown`, `tap`, or `click` event that caused this function to be
+ * called.
+ *
+ * @listens tap
+ * @listens click
+ */
+ handleClick(event: KeyboardEvent | MouseEvent | TouchEvent): void;
+ /**
+ * Handle `mousedown` events on the `BigPlayButton`.
+ *
+ * @param {MouseEvent} event
+ * `mousedown` or `touchstart` event that triggered this function
+ *
+ * @listens mousedown
+ */
+ handleMouseDown(event: MouseEvent): void;
+}
+import Button from "./button.js";
+//# sourceMappingURL=big-play-button.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/big-play-button.d.ts.map b/priv/static/video.js/types/big-play-button.d.ts.map
new file mode 100644
index 0000000..415d89e
--- /dev/null
+++ b/priv/static/video.js/types/big-play-button.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"big-play-button.d.ts","sourceRoot":"","sources":["../../src/js/big-play-button.js"],"names":[],"mappings":";AAOA;;;;;GAKG;AACH;IACE,uCAQC;IALC,oBAAuB;IAiBzB;;;;;;;;;;OAUG;IACH,mBAPW,aAAa,GAAC,UAAU,GAAC,UAAU,QAoC7C;IAiBD;;;;;;;OAOG;IACH,uBALW,UAAU,QAOpB;CACF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/button.d.ts b/priv/static/video.js/types/button.d.ts
new file mode 100644
index 0000000..c68f2b5
--- /dev/null
+++ b/priv/static/video.js/types/button.d.ts
@@ -0,0 +1,28 @@
+export default Button;
+/**
+ * Base class for all buttons.
+ *
+ * @extends ClickableComponent
+ */
+declare class Button extends ClickableComponent {
+ /**
+ * Add a child `Component` inside of this `Button`.
+ *
+ * @param {string|Component} child
+ * The name or instance of a child to add.
+ *
+ * @param {Object} [options={}]
+ * The key/value store of options that will get passed to children of
+ * the child.
+ *
+ * @return {Component}
+ * The `Component` that gets added as a child. When using a string the
+ * `Component` will get created by this process.
+ *
+ * @deprecated since version 5
+ */
+ addChild(child: string | Component, options?: any): Component;
+}
+import ClickableComponent from "./clickable-component.js";
+import Component from "./component";
+//# sourceMappingURL=button.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/button.d.ts.map b/priv/static/video.js/types/button.d.ts.map
new file mode 100644
index 0000000..c7161d9
--- /dev/null
+++ b/priv/static/video.js/types/button.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/js/button.js"],"names":[],"mappings":";AASA;;;;GAIG;AACH;IA+CE;;;;;;;;;;;;;;;OAeG;IACH,gBAbW,MAAM,GAAC,SAAS,kBAOf,SAAS,CAapB;CA4CF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/clickable-component.d.ts b/priv/static/video.js/types/clickable-component.d.ts
new file mode 100644
index 0000000..e5f56af
--- /dev/null
+++ b/priv/static/video.js/types/clickable-component.d.ts
@@ -0,0 +1,88 @@
+export default ClickableComponent;
+/**
+ * Component which is clickable or keyboard actionable, but is not a
+ * native HTML button.
+ *
+ * @extends Component
+ */
+declare class ClickableComponent extends Component {
+ /**
+ * Creates an instance of this class.
+ *
+ * @param { import('./player').default } player
+ * The `Player` that this class should be attached to.
+ *
+ * @param {Object} [options]
+ * The key/value store of component options.
+ *
+ * @param {function} [options.clickHandler]
+ * The function to call when the button is clicked / activated
+ *
+ * @param {string} [options.controlText]
+ * The text to set on the button
+ *
+ * @param {string} [options.className]
+ * A class or space separated list of classes to add the component
+ *
+ */
+ constructor(player: import('./player').default, options?: {
+ clickHandler?: Function;
+ controlText?: string;
+ className?: string;
+ });
+ handleMouseOver_: (e: any) => any;
+ handleMouseOut_: (e: any) => any;
+ handleClick_: (e: any) => void;
+ handleKeyDown_: (e: any) => void;
+ tabIndex_: any;
+ dispose(): void;
+ controlTextEl_: Element;
+ /**
+ * Create a control text element on this `ClickableComponent`
+ *
+ * @param {Element} [el]
+ * Parent element for the control text.
+ *
+ * @return {Element}
+ * The control text element that gets created.
+ */
+ createControlTextEl(el?: Element): Element;
+ /**
+ * Get or set the localize text to use for the controls on the `ClickableComponent`.
+ *
+ * @param {string} [text]
+ * Control text for element.
+ *
+ * @param {Element} [el=this.el()]
+ * Element to set the title on.
+ *
+ * @return {string}
+ * - The control text when getting
+ */
+ controlText(text?: string, el?: Element): string;
+ /** @protected */
+ protected controlText_: string;
+ /**
+ * Enable this `ClickableComponent`
+ */
+ enable(): void;
+ enabled_: boolean;
+ /**
+ * Disable this `ClickableComponent`
+ */
+ disable(): void;
+ /**
+ * Event handler that is called when a `ClickableComponent` receives a
+ * `click` or `tap` event.
+ *
+ * @param {Event} event
+ * The `tap` or `click` event that caused this function to be called.
+ *
+ * @listens tap
+ * @listens click
+ * @abstract
+ */
+ handleClick(event: Event, ...args: any[]): void;
+}
+import Component from "./component";
+//# sourceMappingURL=clickable-component.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/clickable-component.d.ts.map b/priv/static/video.js/types/clickable-component.d.ts.map
new file mode 100644
index 0000000..1bbd2ef
--- /dev/null
+++ b/priv/static/video.js/types/clickable-component.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"clickable-component.d.ts","sourceRoot":"","sources":["../../src/js/clickable-component.js"],"names":[],"mappings":";AAQA;;;;;GAKG;AACH;IAEE;;;;;;;;;;;;;;;;;;OAkBG;IACH,oBAhBa,OAAO,UAAU,EAAE,OAAO;QAMR,YAAY;QAGd,WAAW,GAA5B,MAAM;QAGW,SAAS,GAA1B,MAAM;OAoBjB;IARC,kCAAsD;IACtD,iCAAoD;IACpD,+BAA8C;IAC9C,iCAAkD;IAqClD,eAA+B;IAiBjC,gBAKC;IAHC,wBAA0B;IAK5B;;;;;;;;OAQG;IACH,yBANW,OAAO,GAGN,OAAO,CAkBlB;IAED;;;;;;;;;;;OAWG;IACH,mBATW,MAAM,OAGN,OAAO,GAGN,MAAM,CAiBjB;IAPC,iBAAiB;IACjB,+BAAwB;IAkB1B;;OAEG;IACH,eAWC;IATG,kBAAoB;IAWxB;;OAEG;IACH,gBAWC;IAWD;;;;;;;;;;OAUG;IACH,mBAPW,KAAK,wBAWf;CA4BF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/close-button.d.ts b/priv/static/video.js/types/close-button.d.ts
new file mode 100644
index 0000000..5cb1a09
--- /dev/null
+++ b/priv/static/video.js/types/close-button.d.ts
@@ -0,0 +1,35 @@
+export default CloseButton;
+/**
+ * The `CloseButton` is a `{@link Button}` that fires a `close` event when
+ * it gets clicked.
+ *
+ * @extends Button
+ */
+declare class CloseButton extends Button {
+ /**
+ * Creates an instance of the this class.
+ *
+ * @param { import('./player').default } player
+ * The `Player` that this class should be attached to.
+ *
+ * @param {Object} [options]
+ * The key/value store of player options.
+ */
+ constructor(player: import('./player').default, options?: any);
+ /**
+ * This gets called when a `CloseButton` gets clicked. See
+ * {@link ClickableComponent#handleClick} for more information on when
+ * this will be triggered
+ *
+ * @param {Event} event
+ * The `keydown`, `tap`, or `click` event that caused this function to be
+ * called.
+ *
+ * @listens tap
+ * @listens click
+ * @fires CloseButton#close
+ */
+ handleClick(event: Event): void;
+}
+import Button from "./button";
+//# sourceMappingURL=close-button.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/close-button.d.ts.map b/priv/static/video.js/types/close-button.d.ts.map
new file mode 100644
index 0000000..86d77cb
--- /dev/null
+++ b/priv/static/video.js/types/close-button.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"close-button.d.ts","sourceRoot":"","sources":["../../src/js/close-button.js"],"names":[],"mappings":";AAOA;;;;;GAKG;AACH;IAEE;;;;;;;;MAQE;IACF,oBANY,OAAO,UAAU,EAAE,OAAO,iBAUrC;IAYD;;;;;;;;;;;;OAYG;IACH,mBARW,KAAK,QAqBf;CAuBF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/component.d.ts b/priv/static/video.js/types/component.d.ts
new file mode 100644
index 0000000..9aeb616
--- /dev/null
+++ b/priv/static/video.js/types/component.d.ts
@@ -0,0 +1,881 @@
+export default Component;
+/**
+ * Base class for all UI Components.
+ * Components are UI objects which represent both a javascript object and an element
+ * in the DOM. They can be children of other components, and can have
+ * children themselves.
+ *
+ * Components can also use methods from {@link EventTarget}
+ */
+declare class Component {
+ /**
+ * Register a `Component` with `videojs` given the name and the component.
+ *
+ * > NOTE: {@link Tech}s should not be registered as a `Component`. {@link Tech}s
+ * should be registered using {@link Tech.registerTech} or
+ * {@link videojs:videojs.registerTech}.
+ *
+ * > NOTE: This function can also be seen on videojs as
+ * {@link videojs:videojs.registerComponent}.
+ *
+ * @param {string} name
+ * The name of the `Component` to register.
+ *
+ * @param {Component} ComponentToRegister
+ * The `Component` class to register.
+ *
+ * @return {Component}
+ * The `Component` that was registered.
+ */
+ static registerComponent(name: string, ComponentToRegister: Component): Component;
+ /**
+ * Get a `Component` based on the name it was registered with.
+ *
+ * @param {string} name
+ * The Name of the component to get.
+ *
+ * @return {typeof Component}
+ * The `Component` that got registered under the given name.
+ */
+ static getComponent(name: string): typeof Component;
+ /**
+ * A callback that is called when a component is ready. Does not have any
+ * parameters and any callback value will be ignored.
+ *
+ * @callback ReadyCallback
+ * @this Component
+ */
+ /**
+ * Creates an instance of this class.
+ *
+ * @param { import('./player').default } player
+ * The `Player` that this class should be attached to.
+ *
+ * @param {Object} [options]
+ * The key/value store of component options.
+ *
+ * @param {Object[]} [options.children]
+ * An array of children objects to initialize this component with. Children objects have
+ * a name property that will be used if more than one component of the same type needs to be
+ * added.
+ *
+ * @param {string} [options.className]
+ * A class or space separated list of classes to add the component
+ *
+ * @param {ReadyCallback} [ready]
+ * Function that gets called when the `Component` is ready.
+ */
+ constructor(player: import('./player').default, options?: {
+ children?: any[];
+ className?: string;
+ }, ready?: () => any);
+ player_: any;
+ isDisposed_: boolean;
+ parentComponent_: any;
+ options_: any;
+ id_: any;
+ name_: any;
+ el_: any;
+ /**
+ * Handles language change for the player in components. Should be overridden by sub-components.
+ *
+ * @abstract
+ */
+ handleLanguagechange(): void;
+ children_: any[];
+ childIndex_: {};
+ childNameIndex_: {};
+ setTimeoutIds_: Set<any>;
+ setIntervalIds_: Set<any>;
+ rafIds_: Set<any>;
+ namedRafs_: Map<any, any>;
+ clearingTimersOnDispose_: boolean;
+ /**
+ * Adds an `event listener` to an instance of an `EventTarget`. An `event listener` is a
+ * function that will get called when an event with a certain name gets triggered.
+ *
+ * @param {string|string[]} type
+ * An event name or an array of event names.
+ *
+ * @param {Function} fn
+ * The function to call with `EventTarget`s
+ */
+ on(type: string | string[], fn: Function): void;
+ /**
+ * Removes an `event listener` for a specific event from an instance of `EventTarget`.
+ * This makes it so that the `event listener` will no longer get called when the
+ * named event happens.
+ *
+ * @param {string|string[]} type
+ * An event name or an array of event names.
+ *
+ * @param {Function} [fn]
+ * The function to remove. If not specified, all listeners managed by Video.js will be removed.
+ */
+ off(type: string | string[], fn?: Function): void;
+ /**
+ * This function will add an `event listener` that gets triggered only once. After the
+ * first trigger it will get removed. This is like adding an `event listener`
+ * with {@link EventTarget#on} that calls {@link EventTarget#off} on itself.
+ *
+ * @param {string|string[]} type
+ * An event name or an array of event names.
+ *
+ * @param {Function} fn
+ * The function to be called once for each event name.
+ */
+ one(type: string | string[], fn: Function): void;
+ /**
+ * This function will add an `event listener` that gets triggered only once and is
+ * removed from all events. This is like adding an array of `event listener`s
+ * with {@link EventTarget#on} that calls {@link EventTarget#off} on all events the
+ * first time it is triggered.
+ *
+ * @param {string|string[]} type
+ * An event name or an array of event names.
+ *
+ * @param {Function} fn
+ * The function to be called once for each event name.
+ */
+ any(type: string | string[], fn: Function): void;
+ /**
+ * This function causes an event to happen. This will then cause any `event listeners`
+ * that are waiting for that event, to get called. If there are no `event listeners`
+ * for an event then nothing will happen.
+ *
+ * If the name of the `Event` that is being triggered is in `EventTarget.allowedEvents_`.
+ * Trigger will also call the `on` + `uppercaseEventName` function.
+ *
+ * Example:
+ * 'click' is in `EventTarget.allowedEvents_`, so, trigger will attempt to call
+ * `onClick` if it exists.
+ *
+ * @param {string|Event|Object} event
+ * The name of the event, an `Event`, or an object with a key of type set to
+ * an event name.
+ *
+ * @param {Object} [hash]
+ * Optionally extra argument to pass through to an event listener
+ */
+ trigger(event: string | Event | any, hash?: any): void;
+ /**
+ * Dispose of the `Component` and all child components.
+ *
+ * @fires Component#dispose
+ *
+ * @param {Object} options
+ * @param {Element} options.originalEl element with which to replace player element
+ */
+ dispose(options?: {
+ originalEl: Element;
+ }): void;
+ /**
+ * Determine whether or not this component has been disposed.
+ *
+ * @return {boolean}
+ * If the component has been disposed, will be `true`. Otherwise, `false`.
+ */
+ isDisposed(): boolean;
+ /**
+ * Return the {@link Player} that the `Component` has attached to.
+ *
+ * @return { import('./player').default }
+ * The player that this `Component` has attached to.
+ */
+ player(): import('./player').default;
+ /**
+ * Deep merge of options objects with new options.
+ * > Note: When both `obj` and `options` contain properties whose values are objects.
+ * The two properties get merged using {@link module:obj.merge}
+ *
+ * @param {Object} obj
+ * The object that contains new options.
+ *
+ * @return {Object}
+ * A new object of `this.options_` and `obj` merged together.
+ */
+ options(obj: any): any;
+ /**
+ * Get the `Component`s DOM element
+ *
+ * @return {Element}
+ * The DOM element for this `Component`.
+ */
+ el(): Element;
+ /**
+ * Create the `Component`s DOM element.
+ *
+ * @param {string} [tagName]
+ * Element's DOM node type. e.g. 'div'
+ *
+ * @param {Object} [properties]
+ * An object of properties that should be set.
+ *
+ * @param {Object} [attributes]
+ * An object of attributes that should be set.
+ *
+ * @return {Element}
+ * The element that gets created.
+ */
+ createEl(tagName?: string, properties?: any, attributes?: any): Element;
+ /**
+ * Localize a string given the string in english.
+ *
+ * If tokens are provided, it'll try and run a simple token replacement on the provided string.
+ * The tokens it looks for look like `{1}` with the index being 1-indexed into the tokens array.
+ *
+ * If a `defaultValue` is provided, it'll use that over `string`,
+ * if a value isn't found in provided language files.
+ * This is useful if you want to have a descriptive key for token replacement
+ * but have a succinct localized string and not require `en.json` to be included.
+ *
+ * Currently, it is used for the progress bar timing.
+ * ```js
+ * {
+ * "progress bar timing: currentTime={1} duration={2}": "{1} of {2}"
+ * }
+ * ```
+ * It is then used like so:
+ * ```js
+ * this.localize('progress bar timing: currentTime={1} duration{2}',
+ * [this.player_.currentTime(), this.player_.duration()],
+ * '{1} of {2}');
+ * ```
+ *
+ * Which outputs something like: `01:23 of 24:56`.
+ *
+ *
+ * @param {string} string
+ * The string to localize and the key to lookup in the language files.
+ * @param {string[]} [tokens]
+ * If the current item has token replacements, provide the tokens here.
+ * @param {string} [defaultValue]
+ * Defaults to `string`. Can be a default value to use for token replacement
+ * if the lookup key is needed to be separate.
+ *
+ * @return {string}
+ * The localized string or if no localization exists the english string.
+ */
+ localize(string: string, tokens?: string[], defaultValue?: string): string;
+ /**
+ * Return the `Component`s DOM element. This is where children get inserted.
+ * This will usually be the the same as the element returned in {@link Component#el}.
+ *
+ * @return {Element}
+ * The content element for this `Component`.
+ */
+ contentEl(): Element;
+ /**
+ * Get this `Component`s ID
+ *
+ * @return {string}
+ * The id of this `Component`
+ */
+ id(): string;
+ /**
+ * Get the `Component`s name. The name gets used to reference the `Component`
+ * and is set during registration.
+ *
+ * @return {string}
+ * The name of this `Component`.
+ */
+ name(): string;
+ /**
+ * Get an array of all child components
+ *
+ * @return {Array}
+ * The children
+ */
+ children(): any[];
+ /**
+ * Returns the child `Component` with the given `id`.
+ *
+ * @param {string} id
+ * The id of the child `Component` to get.
+ *
+ * @return {Component|undefined}
+ * The child `Component` with the given `id` or undefined.
+ */
+ getChildById(id: string): Component | undefined;
+ /**
+ * Returns the child `Component` with the given `name`.
+ *
+ * @param {string} name
+ * The name of the child `Component` to get.
+ *
+ * @return {Component|undefined}
+ * The child `Component` with the given `name` or undefined.
+ */
+ getChild(name: string): Component | undefined;
+ /**
+ * Returns the descendant `Component` following the givent
+ * descendant `names`. For instance ['foo', 'bar', 'baz'] would
+ * try to get 'foo' on the current component, 'bar' on the 'foo'
+ * component and 'baz' on the 'bar' component and return undefined
+ * if any of those don't exist.
+ *
+ * @param {...string[]|...string} names
+ * The name of the child `Component` to get.
+ *
+ * @return {Component|undefined}
+ * The descendant `Component` following the given descendant
+ * `names` or undefined.
+ */
+ getDescendant(...names: any[]): Component | undefined;
+ /**
+ * Adds an SVG icon element to another element or component.
+ *
+ * @param {string} iconName
+ * The name of icon. A list of all the icon names can be found at 'sandbox/svg-icons.html'
+ *
+ * @param {Element} [el=this.el()]
+ * Element to set the title on. Defaults to the current Component's element.
+ *
+ * @return {Element}
+ * The newly created icon element.
+ */
+ setIcon(iconName: string, el?: Element): Element;
+ iconIsSet_: boolean;
+ /**
+ * Add a child `Component` inside the current `Component`.
+ *
+ * @param {string|Component} child
+ * The name or instance of a child to add.
+ *
+ * @param {Object} [options={}]
+ * The key/value store of options that will get passed to children of
+ * the child.
+ *
+ * @param {number} [index=this.children_.length]
+ * The index to attempt to add a child into.
+ *
+ *
+ * @return {Component}
+ * The `Component` that gets added as a child. When using a string the
+ * `Component` will get created by this process.
+ */
+ addChild(child: string | Component, options?: any, index?: number): Component;
+ /**
+ * Remove a child `Component` from this `Component`s list of children. Also removes
+ * the child `Component`s element from this `Component`s element.
+ *
+ * @param {Component} component
+ * The child `Component` to remove.
+ */
+ removeChild(component: Component): void;
+ /**
+ * Add and initialize default child `Component`s based upon options.
+ */
+ initChildren(): void;
+ /**
+ * Builds the default DOM class name. Should be overridden by sub-components.
+ *
+ * @return {string}
+ * The DOM class name for this object.
+ *
+ * @abstract
+ */
+ buildCSSClass(): string;
+ /**
+ * Bind a listener to the component's ready state.
+ * Different from event listeners in that if the ready event has already happened
+ * it will trigger the function immediately.
+ *
+ * @param {ReadyCallback} fn
+ * Function that gets called when the `Component` is ready.
+ *
+ * @return {Component}
+ * Returns itself; method can be chained.
+ */
+ ready(fn: () => any, sync?: boolean): Component;
+ readyQueue_: any;
+ /**
+ * Trigger all the ready listeners for this `Component`.
+ *
+ * @fires Component#ready
+ */
+ triggerReady(): void;
+ isReady_: boolean;
+ /**
+ * Find a single DOM element matching a `selector`. This can be within the `Component`s
+ * `contentEl()` or another custom context.
+ *
+ * @param {string} selector
+ * A valid CSS selector, which will be passed to `querySelector`.
+ *
+ * @param {Element|string} [context=this.contentEl()]
+ * A DOM element within which to query. Can also be a selector string in
+ * which case the first matching element will get used as context. If
+ * missing `this.contentEl()` gets used. If `this.contentEl()` returns
+ * nothing it falls back to `document`.
+ *
+ * @return {Element|null}
+ * the dom element that was found, or null
+ *
+ * @see [Information on CSS Selectors](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_Started/Selectors)
+ */
+ $(selector: string, context?: Element | string): Element | null;
+ /**
+ * Finds all DOM element matching a `selector`. This can be within the `Component`s
+ * `contentEl()` or another custom context.
+ *
+ * @param {string} selector
+ * A valid CSS selector, which will be passed to `querySelectorAll`.
+ *
+ * @param {Element|string} [context=this.contentEl()]
+ * A DOM element within which to query. Can also be a selector string in
+ * which case the first matching element will get used as context. If
+ * missing `this.contentEl()` gets used. If `this.contentEl()` returns
+ * nothing it falls back to `document`.
+ *
+ * @return {NodeList}
+ * a list of dom elements that were found
+ *
+ * @see [Information on CSS Selectors](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_Started/Selectors)
+ */
+ $$(selector: string, context?: Element | string): NodeList;
+ /**
+ * Check if a component's element has a CSS class name.
+ *
+ * @param {string} classToCheck
+ * CSS class name to check.
+ *
+ * @return {boolean}
+ * - True if the `Component` has the class.
+ * - False if the `Component` does not have the class`
+ */
+ hasClass(classToCheck: string): boolean;
+ /**
+ * Add a CSS class name to the `Component`s element.
+ *
+ * @param {...string} classesToAdd
+ * One or more CSS class name to add.
+ */
+ addClass(...classesToAdd: string[]): void;
+ /**
+ * Remove a CSS class name from the `Component`s element.
+ *
+ * @param {...string} classesToRemove
+ * One or more CSS class name to remove.
+ */
+ removeClass(...classesToRemove: string[]): void;
+ /**
+ * Add or remove a CSS class name from the component's element.
+ * - `classToToggle` gets added when {@link Component#hasClass} would return false.
+ * - `classToToggle` gets removed when {@link Component#hasClass} would return true.
+ *
+ * @param {string} classToToggle
+ * The class to add or remove based on (@link Component#hasClass}
+ *
+ * @param {boolean|Dom~predicate} [predicate]
+ * An {@link Dom~predicate} function or a boolean
+ */
+ toggleClass(classToToggle: string, predicate: any): void;
+ /**
+ * Show the `Component`s element if it is hidden by removing the
+ * 'vjs-hidden' class name from it.
+ */
+ show(): void;
+ /**
+ * Hide the `Component`s element if it is currently showing by adding the
+ * 'vjs-hidden` class name to it.
+ */
+ hide(): void;
+ /**
+ * Lock a `Component`s element in its visible state by adding the 'vjs-lock-showing'
+ * class name to it. Used during fadeIn/fadeOut.
+ *
+ * @private
+ */
+ private lockShowing;
+ /**
+ * Unlock a `Component`s element from its visible state by removing the 'vjs-lock-showing'
+ * class name from it. Used during fadeIn/fadeOut.
+ *
+ * @private
+ */
+ private unlockShowing;
+ /**
+ * Get the value of an attribute on the `Component`s element.
+ *
+ * @param {string} attribute
+ * Name of the attribute to get the value from.
+ *
+ * @return {string|null}
+ * - The value of the attribute that was asked for.
+ * - Can be an empty string on some browsers if the attribute does not exist
+ * or has no value
+ * - Most browsers will return null if the attribute does not exist or has
+ * no value.
+ *
+ * @see [DOM API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Element/getAttribute}
+ */
+ getAttribute(attribute: string): string | null;
+ /**
+ * Set the value of an attribute on the `Component`'s element
+ *
+ * @param {string} attribute
+ * Name of the attribute to set.
+ *
+ * @param {string} value
+ * Value to set the attribute to.
+ *
+ * @see [DOM API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Element/setAttribute}
+ */
+ setAttribute(attribute: string, value: string): void;
+ /**
+ * Remove an attribute from the `Component`s element.
+ *
+ * @param {string} attribute
+ * Name of the attribute to remove.
+ *
+ * @see [DOM API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Element/removeAttribute}
+ */
+ removeAttribute(attribute: string): void;
+ /**
+ * Get or set the width of the component based upon the CSS styles.
+ * See {@link Component#dimension} for more detailed information.
+ *
+ * @param {number|string} [num]
+ * The width that you want to set postfixed with '%', 'px' or nothing.
+ *
+ * @param {boolean} [skipListeners]
+ * Skip the componentresize event trigger
+ *
+ * @return {number|undefined}
+ * The width when getting, zero if there is no width
+ */
+ width(num?: number | string, skipListeners?: boolean): number | undefined;
+ /**
+ * Get or set the height of the component based upon the CSS styles.
+ * See {@link Component#dimension} for more detailed information.
+ *
+ * @param {number|string} [num]
+ * The height that you want to set postfixed with '%', 'px' or nothing.
+ *
+ * @param {boolean} [skipListeners]
+ * Skip the componentresize event trigger
+ *
+ * @return {number|undefined}
+ * The height when getting, zero if there is no height
+ */
+ height(num?: number | string, skipListeners?: boolean): number | undefined;
+ /**
+ * Set both the width and height of the `Component` element at the same time.
+ *
+ * @param {number|string} width
+ * Width to set the `Component`s element to.
+ *
+ * @param {number|string} height
+ * Height to set the `Component`s element to.
+ */
+ dimensions(width: number | string, height: number | string): void;
+ /**
+ * Get or set width or height of the `Component` element. This is the shared code
+ * for the {@link Component#width} and {@link Component#height}.
+ *
+ * Things to know:
+ * - If the width or height in an number this will return the number postfixed with 'px'.
+ * - If the width/height is a percent this will return the percent postfixed with '%'
+ * - Hidden elements have a width of 0 with `window.getComputedStyle`. This function
+ * defaults to the `Component`s `style.width` and falls back to `window.getComputedStyle`.
+ * See [this]{@link http://www.foliotek.com/devblog/getting-the-width-of-a-hidden-element-with-jquery-using-width/}
+ * for more information
+ * - If you want the computed style of the component, use {@link Component#currentWidth}
+ * and {@link {Component#currentHeight}
+ *
+ * @fires Component#componentresize
+ *
+ * @param {string} widthOrHeight
+ 8 'width' or 'height'
+ *
+ * @param {number|string} [num]
+ 8 New dimension
+ *
+ * @param {boolean} [skipListeners]
+ * Skip componentresize event trigger
+ *
+ * @return {number|undefined}
+ * The dimension when getting or 0 if unset
+ */
+ dimension(widthOrHeight: string, num?: number | string, skipListeners?: boolean): number | undefined;
+ /**
+ * Get the computed width or the height of the component's element.
+ *
+ * Uses `window.getComputedStyle`.
+ *
+ * @param {string} widthOrHeight
+ * A string containing 'width' or 'height'. Whichever one you want to get.
+ *
+ * @return {number}
+ * The dimension that gets asked for or 0 if nothing was set
+ * for that dimension.
+ */
+ currentDimension(widthOrHeight: string): number;
+ /**
+ * An object that contains width and height values of the `Component`s
+ * computed style. Uses `window.getComputedStyle`.
+ *
+ * @typedef {Object} Component~DimensionObject
+ *
+ * @property {number} width
+ * The width of the `Component`s computed style.
+ *
+ * @property {number} height
+ * The height of the `Component`s computed style.
+ */
+ /**
+ * Get an object that contains computed width and height values of the
+ * component's element.
+ *
+ * Uses `window.getComputedStyle`.
+ *
+ * @return {Component~DimensionObject}
+ * The computed dimensions of the component's element.
+ */
+ currentDimensions(): Component;
+ /**
+ * Get the computed width of the component's element.
+ *
+ * Uses `window.getComputedStyle`.
+ *
+ * @return {number}
+ * The computed width of the component's element.
+ */
+ currentWidth(): number;
+ /**
+ * Get the computed height of the component's element.
+ *
+ * Uses `window.getComputedStyle`.
+ *
+ * @return {number}
+ * The computed height of the component's element.
+ */
+ currentHeight(): number;
+ /**
+ * Set the focus to this component
+ */
+ focus(): void;
+ /**
+ * Remove the focus from this component
+ */
+ blur(): void;
+ /**
+ * When this Component receives a `keydown` event which it does not process,
+ * it passes the event to the Player for handling.
+ *
+ * @param {KeyboardEvent} event
+ * The `keydown` event that caused this function to be called.
+ */
+ handleKeyDown(event: KeyboardEvent): void;
+ /**
+ * Many components used to have a `handleKeyPress` method, which was poorly
+ * named because it listened to a `keydown` event. This method name now
+ * delegates to `handleKeyDown`. This means anyone calling `handleKeyPress`
+ * will not see their method calls stop working.
+ *
+ * @param {KeyboardEvent} event
+ * The event that caused this function to be called.
+ */
+ handleKeyPress(event: KeyboardEvent): void;
+ /**
+ * Emit a 'tap' events when touch event support gets detected. This gets used to
+ * support toggling the controls through a tap on the video. They get enabled
+ * because every sub-component would have extra overhead otherwise.
+ *
+ * @protected
+ * @fires Component#tap
+ * @listens Component#touchstart
+ * @listens Component#touchmove
+ * @listens Component#touchleave
+ * @listens Component#touchcancel
+ * @listens Component#touchend
+
+ */
+ protected emitTapEvents(): void;
+ /**
+ * This function reports user activity whenever touch events happen. This can get
+ * turned off by any sub-components that wants touch events to act another way.
+ *
+ * Report user touch activity when touch events occur. User activity gets used to
+ * determine when controls should show/hide. It is simple when it comes to mouse
+ * events, because any mouse event should show the controls. So we capture mouse
+ * events that bubble up to the player and report activity when that happens.
+ * With touch events it isn't as easy as `touchstart` and `touchend` toggle player
+ * controls. So touch events can't help us at the player level either.
+ *
+ * User activity gets checked asynchronously. So what could happen is a tap event
+ * on the video turns the controls off. Then the `touchend` event bubbles up to
+ * the player. Which, if it reported user activity, would turn the controls right
+ * back on. We also don't want to completely block touch events from bubbling up.
+ * Furthermore a `touchmove` event and anything other than a tap, should not turn
+ * controls back on.
+ *
+ * @listens Component#touchstart
+ * @listens Component#touchmove
+ * @listens Component#touchend
+ * @listens Component#touchcancel
+ */
+ enableTouchActivity(): void;
+ /**
+ * A callback that has no parameters and is bound into `Component`s context.
+ *
+ * @callback Component~GenericCallback
+ * @this Component
+ */
+ /**
+ * Creates a function that runs after an `x` millisecond timeout. This function is a
+ * wrapper around `window.setTimeout`. There are a few reasons to use this one
+ * instead though:
+ * 1. It gets cleared via {@link Component#clearTimeout} when
+ * {@link Component#dispose} gets called.
+ * 2. The function callback will gets turned into a {@link Component~GenericCallback}
+ *
+ * > Note: You can't use `window.clearTimeout` on the id returned by this function. This
+ * will cause its dispose listener not to get cleaned up! Please use
+ * {@link Component#clearTimeout} or {@link Component#dispose} instead.
+ *
+ * @param {Component~GenericCallback} fn
+ * The function that will be run after `timeout`.
+ *
+ * @param {number} timeout
+ * Timeout in milliseconds to delay before executing the specified function.
+ *
+ * @return {number}
+ * Returns a timeout ID that gets used to identify the timeout. It can also
+ * get used in {@link Component#clearTimeout} to clear the timeout that
+ * was set.
+ *
+ * @listens Component#dispose
+ * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setTimeout}
+ */
+ setTimeout(fn: any, timeout: number): number;
+ /**
+ * Clears a timeout that gets created via `window.setTimeout` or
+ * {@link Component#setTimeout}. If you set a timeout via {@link Component#setTimeout}
+ * use this function instead of `window.clearTimout`. If you don't your dispose
+ * listener will not get cleaned up until {@link Component#dispose}!
+ *
+ * @param {number} timeoutId
+ * The id of the timeout to clear. The return value of
+ * {@link Component#setTimeout} or `window.setTimeout`.
+ *
+ * @return {number}
+ * Returns the timeout id that was cleared.
+ *
+ * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/clearTimeout}
+ */
+ clearTimeout(timeoutId: number): number;
+ /**
+ * Creates a function that gets run every `x` milliseconds. This function is a wrapper
+ * around `window.setInterval`. There are a few reasons to use this one instead though.
+ * 1. It gets cleared via {@link Component#clearInterval} when
+ * {@link Component#dispose} gets called.
+ * 2. The function callback will be a {@link Component~GenericCallback}
+ *
+ * @param {Component~GenericCallback} fn
+ * The function to run every `x` seconds.
+ *
+ * @param {number} interval
+ * Execute the specified function every `x` milliseconds.
+ *
+ * @return {number}
+ * Returns an id that can be used to identify the interval. It can also be be used in
+ * {@link Component#clearInterval} to clear the interval.
+ *
+ * @listens Component#dispose
+ * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setInterval}
+ */
+ setInterval(fn: any, interval: number): number;
+ /**
+ * Clears an interval that gets created via `window.setInterval` or
+ * {@link Component#setInterval}. If you set an interval via {@link Component#setInterval}
+ * use this function instead of `window.clearInterval`. If you don't your dispose
+ * listener will not get cleaned up until {@link Component#dispose}!
+ *
+ * @param {number} intervalId
+ * The id of the interval to clear. The return value of
+ * {@link Component#setInterval} or `window.setInterval`.
+ *
+ * @return {number}
+ * Returns the interval id that was cleared.
+ *
+ * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/clearInterval}
+ */
+ clearInterval(intervalId: number): number;
+ /**
+ * Queues up a callback to be passed to requestAnimationFrame (rAF), but
+ * with a few extra bonuses:
+ *
+ * - Supports browsers that do not support rAF by falling back to
+ * {@link Component#setTimeout}.
+ *
+ * - The callback is turned into a {@link Component~GenericCallback} (i.e.
+ * bound to the component).
+ *
+ * - Automatic cancellation of the rAF callback is handled if the component
+ * is disposed before it is called.
+ *
+ * @param {Component~GenericCallback} fn
+ * A function that will be bound to this component and executed just
+ * before the browser's next repaint.
+ *
+ * @return {number}
+ * Returns an rAF ID that gets used to identify the timeout. It can
+ * also be used in {@link Component#cancelAnimationFrame} to cancel
+ * the animation frame callback.
+ *
+ * @listens Component#dispose
+ * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame}
+ */
+ requestAnimationFrame(fn: any): number;
+ /**
+ * Request an animation frame, but only one named animation
+ * frame will be queued. Another will never be added until
+ * the previous one finishes.
+ *
+ * @param {string} name
+ * The name to give this requestAnimationFrame
+ *
+ * @param {Component~GenericCallback} fn
+ * A function that will be bound to this component and executed just
+ * before the browser's next repaint.
+ */
+ requestNamedAnimationFrame(name: string, fn: any): string;
+ /**
+ * Cancels a current named animation frame if it exists.
+ *
+ * @param {string} name
+ * The name of the requestAnimationFrame to cancel.
+ */
+ cancelNamedAnimationFrame(name: string): void;
+ /**
+ * Cancels a queued callback passed to {@link Component#requestAnimationFrame}
+ * (rAF).
+ *
+ * If you queue an rAF callback via {@link Component#requestAnimationFrame},
+ * use this function instead of `window.cancelAnimationFrame`. If you don't,
+ * your dispose listener will not get cleaned up until {@link Component#dispose}!
+ *
+ * @param {number} id
+ * The rAF ID to clear. The return value of {@link Component#requestAnimationFrame}.
+ *
+ * @return {number}
+ * Returns the rAF ID that was cleared.
+ *
+ * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/window/cancelAnimationFrame}
+ */
+ cancelAnimationFrame(id: number): number;
+ /**
+ * A function to setup `requestAnimationFrame`, `setTimeout`,
+ * and `setInterval`, clearing on dispose.
+ *
+ * > Previously each timer added and removed dispose listeners on it's own.
+ * For better performance it was decided to batch them all, and use `Set`s
+ * to track outstanding timer ids.
+ *
+ * @private
+ */
+ private clearTimersOnDispose_;
+}
+//# sourceMappingURL=component.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/component.d.ts.map b/priv/static/video.js/types/component.d.ts.map
new file mode 100644
index 0000000..571d61d
--- /dev/null
+++ b/priv/static/video.js/types/component.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../src/js/component.js"],"names":[],"mappings":";AAgBA;;;;;;;GAOG;AACH;IA+sDE;;;;;;;;;;;;;;;;;;OAkBG;IACH,+BATW,MAAM,uBAGN,SAAS,GAGR,SAAS,CAsDpB;IAED;;;;;;;;OAQG;IACH,0BANW,MAAM,GAGL,gBAAgB,CAS3B;IApyDD;;;;;;OAMG;IAEH;;;;;;;;;;;;;;;;;;;OAmBG;IACH,oBAjBY,OAAO,UAAU,EAAE,OAAO;QAMR,QAAQ,GAA3B,KAAQ;QAKU,SAAS,GAA1B,MAAM;0BAyFjB;IA/EG,aAA4B;IAK9B,qBAAwB;IAGxB,sBAA4B;IAG5B,cAAwC;IAMxC,SAAsD;IAUtD,WAAiC;IAI/B,SAAqB;IA2UzB;;;;OAIG;IACH,6BAAyB;IAvTvB,iBAAmB;IACnB,gBAAqB;IACrB,oBAAyB;IAEzB,yBAA+B;IAC/B,0BAAgC;IAChC,kBAAwB;IACxB,0BAA2B;IAC3B,kCAAqC;IAoBvC;;;;;;;;;OASG;IACH,SANW,MAAM,GAAC,MAAM,EAAE,sBAMX;IAEf;;;;;;;;;;OAUG;IACH,UANW,MAAM,GAAC,MAAM,EAAE,uBAMV;IAEhB;;;;;;;;;;OAUG;IACH,UANW,MAAM,GAAC,MAAM,EAAE,sBAMV;IAEhB;;;;;;;;;;;OAWG;IACH,UANW,MAAM,GAAC,MAAM,EAAE,sBAMV;IAEhB;;;;;;;;;;;;;;;;;;OAkBG;IACH,eAPW,MAAM,GAAC,KAAK,MAAO,oBAOP;IAEvB;;;;;;;OAOG;IACH;QAF4B,UAAU,EAA3B,OAAO;aA0DjB;IAED;;;;;OAKG;IACH,cAHY,OAAO,CAKlB;IAED;;;;;OAKG;IACH,UAHa,OAAO,UAAU,EAAE,OAAO,CAKtC;IAED;;;;;;;;;;OAUG;IACH,uBAOC;IAED;;;;;OAKG;IACH,MAHY,OAAO,CAKlB;IAED;;;;;;;;;;;;;;OAcG;IACH,mBAZW,MAAM,uCASL,OAAO,CAKlB;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACH,iBAXW,MAAM,WAEN,MAAM,EAAE,iBAER,MAAM,GAIL,MAAM,CAiCjB;IASD;;;;;;OAMG;IACH,aAHY,OAAO,CAKlB;IAED;;;;;OAKG;IACH,MAHY,MAAM,CAKjB;IAED;;;;;;OAMG;IACH,QAHY,MAAM,CAKjB;IAED;;;;;OAKG;IACH,kBAEC;IAED;;;;;;;;OAQG;IACH,iBANW,MAAM,GAGL,SAAS,GAAC,SAAS,CAK9B;IAED;;;;;;;;OAQG;IACH,eANW,MAAM,GAGL,SAAS,GAAC,SAAS,CAS9B;IAED;;;;;;;;;;;;;OAaG;IACH,gCAJY,SAAS,GAAC,SAAS,CAmB9B;IAED;;;;;;;;;;;OAWG;IACH,kBATW,MAAM,OAGN,OAAO,GAGN,OAAO,CAwClB;IAHC,oBAAsB;IAKxB;;;;;;;;;;;;;;;;;OAiBG;IACH,gBAfW,MAAM,GAAC,SAAS,yBAOhB,MAAM,GAIL,SAAS,CA+EpB;IAED;;;;;;OAMG;IACH,uBAHW,SAAS,QAqCnB;IAED;;OAEG;IACH,qBA6FC;IAED;;;;;;;OAOG;IACH,iBALY,MAAM,CASjB;IAED;;;;;;;;;;OAUG;IACH,sCAHY,SAAS,CAoBpB;IAXG,iBAAyC;IAa7C;;;;OAIG;IACH,qBAyBC;IAxBC,kBAAoB;IA0BtB;;;;;;;;;;;;;;;;;OAiBG;IACH,YAdW,MAAM,YAGN,OAAO,GAAC,MAAM,GAMb,OAAO,GAAC,IAAI,CAOvB;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,aAdW,MAAM,YAGN,OAAO,GAAC,MAAM,GAMb,QAAQ,CAOnB;IAED;;;;;;;;;OASG;IACH,uBAPW,MAAM,GAGL,OAAO,CAMlB;IAED;;;;;OAKG;IACH,0BAHc,MAAM,UAKnB;IAED;;;;;OAKG;IACH,gCAHc,MAAM,UAKnB;IAED;;;;;;;;;;OAUG;IACH,2BANY,MAAM,wBAQjB;IAED;;;OAGG;IACH,aAEC;IAED;;;OAGG;IACH,aAEC;IAED;;;;;OAKG;IACH,oBAEC;IAED;;;;;OAKG;IACH,sBAEC;IAED;;;;;;;;;;;;;;OAcG;IACH,wBAZW,MAAM,GAGL,MAAM,GAAC,IAAI,CAWtB;IAED;;;;;;;;;;OAUG;IACH,wBARW,MAAM,SAGN,MAAM,QAOhB;IAED;;;;;;;OAOG;IACH,2BALW,MAAM,QAOhB;IAED;;;;;;;;;;;;OAYG;IACH,YATW,MAAM,GAAC,MAAM,kBAGb,OAAO,GAGN,MAAM,GAAC,SAAS,CAK3B;IAED;;;;;;;;;;;;OAYG;IACH,aATW,MAAM,GAAC,MAAM,kBAGb,OAAO,GAGN,MAAM,GAAC,SAAS,CAK3B;IAED;;;;;;;;OAQG;IACH,kBANY,MAAM,GAAC,MAAM,UAGb,MAAM,GAAC,MAAM,QAOxB;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,yBAZW,MAAM,QAGL,MAAM,GAAC,MAAM,kBAGb,OAAO,GAGP,MAAM,GAAC,SAAS,CAoD3B;IAED;;;;;;;;;;;OAWG;IACH,gCAPW,MAAM,GAGL,MAAM,CA0BjB;IAED;;;;;;;;;;;OAWG;IAEH;;;;;;;;OAQG;IACH,qBAHY,SAAS,CAQpB;IAED;;;;;;;OAOG;IACH,gBAHY,MAAM,CAKjB;IAED;;;;;;;OAOG;IACH,iBAHY,MAAM,CAKjB;IAED;;OAEG;IACH,cAEC;IAED;;OAEG;IACH,aAEC;IAED;;;;;;OAMG;IACH,qBAHW,aAAa,QAavB;IAED;;;;;;;;OAQG;IACH,sBAHW,aAAa,QAKvB;IAED;;;;;;;;;;;;;OAaG;IACH,gCAiFC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,4BA8BC;IAED;;;;;OAKG;IAEH;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,6BAXW,MAAM,GAGL,MAAM,CA2BjB;IAED;;;;;;;;;;;;;;OAcG;IACH,wBATW,MAAM,GAIL,MAAM,CAYjB;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,+BAVW,MAAM,GAGL,MAAM,CAiBjB;IAED;;;;;;;;;;;;;;OAcG;IACH,0BATW,MAAM,GAIL,MAAM,CAYjB;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,gCARY,MAAM,CAyBjB;IAED;;;;;;;;;;;OAWG;IACH,iCAPW,MAAM,mBAyBhB;IAED;;;;;OAKG;IACH,gCAHW,MAAM,QAUhB;IAED;;;;;;;;;;;;;;;OAeG;IACH,yBARW,MAAM,GAGL,MAAM,CAajB;IAED;;;;;;;;;OASG;IACH,8BAqBC;CA0FF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/consts/errors.d.ts b/priv/static/video.js/types/consts/errors.d.ts
new file mode 100644
index 0000000..37783ea
--- /dev/null
+++ b/priv/static/video.js/types/consts/errors.d.ts
@@ -0,0 +1,30 @@
+declare namespace _default {
+ const UnsupportedSidxContainer: string;
+ const DashManifestSidxParsingError: string;
+ const HlsPlaylistRequestError: string;
+ const SegmentUnsupportedMediaFormat: string;
+ const UnsupportedMediaInitialization: string;
+ const SegmentSwitchError: string;
+ const SegmentExceedsSourceBufferQuota: string;
+ const SegmentAppendError: string;
+ const VttLoadError: string;
+ const VttCueParsingError: string;
+ const AdsBeforePrerollError: string;
+ const AdsPrerollError: string;
+ const AdsMidrollError: string;
+ const AdsPostrollError: string;
+ const AdsMacroReplacementFailed: string;
+ const AdsResumeContentFailed: string;
+ const EMEFailedToRequestMediaKeySystemAccess: string;
+ const EMEFailedToCreateMediaKeys: string;
+ const EMEFailedToAttachMediaKeysToVideoElement: string;
+ const EMEFailedToCreateMediaKeySession: string;
+ const EMEFailedToSetServerCertificate: string;
+ const EMEFailedToGenerateLicenseRequest: string;
+ const EMEFailedToUpdateSessionWithReceivedLicenseKeys: string;
+ const EMEFailedToCloseSession: string;
+ const EMEFailedToRemoveKeysFromSession: string;
+ const EMEFailedToLoadSessionBySessionId: string;
+}
+export default _default;
+//# sourceMappingURL=errors.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/consts/errors.d.ts.map b/priv/static/video.js/types/consts/errors.d.ts.map
new file mode 100644
index 0000000..4436506
--- /dev/null
+++ b/priv/static/video.js/types/consts/errors.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/js/consts/errors.js"],"names":[],"mappings":""} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/audio-track-controls/audio-track-button.d.ts b/priv/static/video.js/types/control-bar/audio-track-controls/audio-track-button.d.ts
new file mode 100644
index 0000000..2c362e7
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/audio-track-controls/audio-track-button.d.ts
@@ -0,0 +1,28 @@
+export default AudioTrackButton;
+/**
+ * The base class for buttons that toggle specific {@link AudioTrack} types.
+ *
+ * @extends TrackButton
+ */
+declare class AudioTrackButton extends TrackButton {
+ /**
+ * Create a menu item for each audio track
+ *
+ * @param {AudioTrackMenuItem[]} [items=[]]
+ * An array of existing menu items to use.
+ *
+ * @return {AudioTrackMenuItem[]}
+ * An array of menu items
+ */
+ createItems(items?: AudioTrackMenuItem[]): AudioTrackMenuItem[];
+ /**
+ * The text that should display over the `AudioTrackButton`s controls. Added for localization.
+ *
+ * @type {string}
+ * @protected
+ */
+ protected controlText_: string;
+}
+import TrackButton from "../track-button.js";
+import AudioTrackMenuItem from "./audio-track-menu-item.js";
+//# sourceMappingURL=audio-track-button.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/audio-track-controls/audio-track-button.d.ts.map b/priv/static/video.js/types/control-bar/audio-track-controls/audio-track-button.d.ts.map
new file mode 100644
index 0000000..06cedf9
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/audio-track-controls/audio-track-button.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"audio-track-button.d.ts","sourceRoot":"","sources":["../../../../src/js/control-bar/audio-track-controls/audio-track-button.js"],"names":[],"mappings":";AAOA;;;;GAIG;AACH;IAiCE;;;;;;;;OAQG;IACH,oBANW,kBAAkB,EAAE,GAGnB,kBAAkB,EAAE,CAsB/B;IAGH;;;;;OAKG;IACH,wBAHU,MAAM,CAGuB;CARtC"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/audio-track-controls/audio-track-menu-item.d.ts b/priv/static/video.js/types/control-bar/audio-track-controls/audio-track-menu-item.d.ts
new file mode 100644
index 0000000..ba08274
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/audio-track-controls/audio-track-menu-item.d.ts
@@ -0,0 +1,33 @@
+export default AudioTrackMenuItem;
+/**
+ * An {@link AudioTrack} {@link MenuItem}
+ *
+ * @extends MenuItem
+ */
+declare class AudioTrackMenuItem extends MenuItem {
+ track: any;
+ createEl(type: any, props: any, attrs: any): Element;
+ /**
+ * This gets called when an `AudioTrackMenuItem is "clicked". See {@link ClickableComponent}
+ * for more detailed information on what a click can be.
+ *
+ * @param {Event} [event]
+ * The `keydown`, `tap`, or `click` event that caused this function to be
+ * called.
+ *
+ * @listens tap
+ * @listens click
+ */
+ handleClick(event?: Event): void;
+ /**
+ * Handle any {@link AudioTrack} change.
+ *
+ * @param {Event} [event]
+ * The {@link AudioTrackList#change} event that caused this to run.
+ *
+ * @listens AudioTrackList#change
+ */
+ handleTracksChange(event?: Event): void;
+}
+import MenuItem from "../../menu/menu-item.js";
+//# sourceMappingURL=audio-track-menu-item.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/audio-track-controls/audio-track-menu-item.d.ts.map b/priv/static/video.js/types/control-bar/audio-track-controls/audio-track-menu-item.d.ts.map
new file mode 100644
index 0000000..f1526cc
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/audio-track-controls/audio-track-menu-item.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"audio-track-menu-item.d.ts","sourceRoot":"","sources":["../../../../src/js/control-bar/audio-track-controls/audio-track-menu-item.js"],"names":[],"mappings":";AAOA;;;;GAIG;AACH;IAqBI,WAAkB;IAcpB,qDAiBC;IAED;;;;;;;;;;OAUG;IACH,oBAPW,KAAK,QA6Bf;IAED;;;;;;;OAOG;IACH,2BALW,KAAK,QAOf;CACF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/control-bar.d.ts b/priv/static/video.js/types/control-bar/control-bar.d.ts
new file mode 100644
index 0000000..8d5f7a1
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/control-bar.d.ts
@@ -0,0 +1,17 @@
+export default ControlBar;
+/**
+ * Container of main controls.
+ *
+ * @extends Component
+ */
+declare class ControlBar extends Component {
+ /**
+ * Create the `Component`'s DOM element
+ *
+ * @return {Element}
+ * The element that was created.
+ */
+ createEl(): Element;
+}
+import Component from "../component.js";
+//# sourceMappingURL=control-bar.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/control-bar.d.ts.map b/priv/static/video.js/types/control-bar/control-bar.d.ts.map
new file mode 100644
index 0000000..c72c327
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/control-bar.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"control-bar.d.ts","sourceRoot":"","sources":["../../../src/js/control-bar/control-bar.js"],"names":[],"mappings":";AA4BA;;;;GAIG;AACH;IAEE;;;;;OAKG;IACH,YAHY,OAAO,CAQlB;CACF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/fullscreen-toggle.d.ts b/priv/static/video.js/types/control-bar/fullscreen-toggle.d.ts
new file mode 100644
index 0000000..063fe21
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/fullscreen-toggle.d.ts
@@ -0,0 +1,42 @@
+export default FullscreenToggle;
+/**
+ * Toggle fullscreen video
+ *
+ * @extends Button
+ */
+declare class FullscreenToggle extends Button {
+ /**
+ * Creates an instance of this class.
+ *
+ * @param { import('./player').default } player
+ * The `Player` that this class should be attached to.
+ *
+ * @param {Object} [options]
+ * The key/value store of player options.
+ */
+ constructor(player: any, options?: any);
+ /**
+ * Handles fullscreenchange on the player and change control text accordingly.
+ *
+ * @param {Event} [event]
+ * The {@link Player#fullscreenchange} event that caused this function to be
+ * called.
+ *
+ * @listens Player#fullscreenchange
+ */
+ handleFullscreenChange(event?: Event): void;
+ /**
+ * This gets called when an `FullscreenToggle` is "clicked". See
+ * {@link ClickableComponent} for more detailed information on what a click can be.
+ *
+ * @param {Event} [event]
+ * The `keydown`, `tap`, or `click` event that caused this function to be
+ * called.
+ *
+ * @listens tap
+ * @listens click
+ */
+ handleClick(event?: Event): void;
+}
+import Button from "../button.js";
+//# sourceMappingURL=fullscreen-toggle.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/fullscreen-toggle.d.ts.map b/priv/static/video.js/types/control-bar/fullscreen-toggle.d.ts.map
new file mode 100644
index 0000000..7210bf2
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/fullscreen-toggle.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"fullscreen-toggle.d.ts","sourceRoot":"","sources":["../../../src/js/control-bar/fullscreen-toggle.js"],"names":[],"mappings":";AAOA;;;;GAIG;AACH;IAEE;;;;;;;;OAQG;IACH,wCAQC;IAYD;;;;;;;;OAQG;IACH,+BANW,KAAK,QAcf;IAED;;;;;;;;;;OAUG;IACH,oBAPW,KAAK,QAaf;CAEF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/live-display.d.ts b/priv/static/video.js/types/control-bar/live-display.d.ts
new file mode 100644
index 0000000..b001278
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/live-display.d.ts
@@ -0,0 +1,39 @@
+export default LiveDisplay;
+/**
+ * Displays the live indicator when duration is Infinity.
+ *
+ * @extends Component
+ */
+declare class LiveDisplay extends Component {
+ /**
+ * Creates an instance of this class.
+ *
+ * @param { import('./player').default } player
+ * The `Player` that this class should be attached to.
+ *
+ * @param {Object} [options]
+ * The key/value store of player options.
+ */
+ constructor(player: any, options?: any);
+ /**
+ * Create the `Component`'s DOM element
+ *
+ * @return {Element}
+ * The element that was created.
+ */
+ createEl(): Element;
+ contentEl_: Element;
+ dispose(): void;
+ /**
+ * Check the duration to see if the LiveDisplay should be showing or not. Then show/hide
+ * it accordingly
+ *
+ * @param {Event} [event]
+ * The {@link Player#durationchange} event that caused this function to run.
+ *
+ * @listens Player#durationchange
+ */
+ updateShowing(event?: Event): void;
+}
+import Component from "../component";
+//# sourceMappingURL=live-display.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/live-display.d.ts.map b/priv/static/video.js/types/control-bar/live-display.d.ts.map
new file mode 100644
index 0000000..685e741
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/live-display.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"live-display.d.ts","sourceRoot":"","sources":["../../../src/js/control-bar/live-display.js"],"names":[],"mappings":";AASA;;;;GAIG;AACH;IAEE;;;;;;;;OAQG;IACH,wCAKC;IAED;;;;;OAKG;IACH,YAHY,OAAO,CAsBlB;IAdC,oBAIE;IAYJ,gBAIC;IAED;;;;;;;;OAQG;IACH,sBALW,KAAK,QAWf;CAEF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/mute-toggle.d.ts b/priv/static/video.js/types/control-bar/mute-toggle.d.ts
new file mode 100644
index 0000000..f07b5e7
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/mute-toggle.d.ts
@@ -0,0 +1,64 @@
+export default MuteToggle;
+/**
+ * A button component for muting the audio.
+ *
+ * @extends Button
+ */
+declare class MuteToggle extends Button {
+ /**
+ * Creates an instance of this class.
+ *
+ * @param { import('./player').default } player
+ * The `Player` that this class should be attached to.
+ *
+ * @param {Object} [options]
+ * The key/value store of player options.
+ */
+ constructor(player: any, options?: any);
+ /**
+ * This gets called when an `MuteToggle` is "clicked". See
+ * {@link ClickableComponent} for more detailed information on what a click can be.
+ *
+ * @param {Event} [event]
+ * The `keydown`, `tap`, or `click` event that caused this function to be
+ * called.
+ *
+ * @listens tap
+ * @listens click
+ */
+ handleClick(event?: Event): void;
+ /**
+ * Update the `MuteToggle` button based on the state of `volume` and `muted`
+ * on the player.
+ *
+ * @param {Event} [event]
+ * The {@link Player#loadstart} event if this function was called
+ * through an event.
+ *
+ * @listens Player#loadstart
+ * @listens Player#volumechange
+ */
+ update(event?: Event): void;
+ /**
+ * Update the appearance of the `MuteToggle` icon.
+ *
+ * Possible states (given `level` variable below):
+ * - 0: crossed out
+ * - 1: zero bars of volume
+ * - 2: one bar of volume
+ * - 3: two bars of volume
+ *
+ * @private
+ */
+ private updateIcon_;
+ /**
+ * If `muted` has changed on the player, update the control text
+ * (`title` attribute on `vjs-mute-control` element and content of
+ * `vjs-control-text` element).
+ *
+ * @private
+ */
+ private updateControlText_;
+}
+import Button from "../button";
+//# sourceMappingURL=mute-toggle.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/mute-toggle.d.ts.map b/priv/static/video.js/types/control-bar/mute-toggle.d.ts.map
new file mode 100644
index 0000000..f224add
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/mute-toggle.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"mute-toggle.d.ts","sourceRoot":"","sources":["../../../src/js/control-bar/mute-toggle.js"],"names":[],"mappings":";AASA;;;;GAIG;AACH;IAEE;;;;;;;;OAQG;IACH,wCAOC;IAYD;;;;;;;;;;OAUG;IACH,oBAPW,KAAK,QAmBf;IAED;;;;;;;;;;OAUG;IACH,eAPW,KAAK,QAUf;IAED;;;;;;;;;;OAUG;IACH,oBA0BC;IAED;;;;;;OAMG;IACH,2BAOC;CAEF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/picture-in-picture-toggle.d.ts b/priv/static/video.js/types/control-bar/picture-in-picture-toggle.d.ts
new file mode 100644
index 0000000..28c7c12
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/picture-in-picture-toggle.d.ts
@@ -0,0 +1,61 @@
+export default PictureInPictureToggle;
+/**
+ * Toggle Picture-in-Picture mode
+ *
+ * @extends Button
+ */
+declare class PictureInPictureToggle extends Button {
+ /**
+ * Creates an instance of this class.
+ *
+ * @param { import('./player').default } player
+ * The `Player` that this class should be attached to.
+ *
+ * @param {Object} [options]
+ * The key/value store of player options.
+ *
+ * @listens Player#enterpictureinpicture
+ * @listens Player#leavepictureinpicture
+ */
+ constructor(player: any, options?: any);
+ /**
+ * Displays or hides the button depending on the audio mode detection.
+ * Exits picture-in-picture if it is enabled when switching to audio mode.
+ */
+ handlePictureInPictureAudioModeChange(): void;
+ /**
+ * Enables or disables button based on availability of a Picture-In-Picture mode.
+ *
+ * Enabled if
+ * - `player.options().enableDocumentPictureInPicture` is true and
+ * window.documentPictureInPicture is available; or
+ * - `player.disablePictureInPicture()` is false and
+ * element.requestPictureInPicture is available
+ */
+ handlePictureInPictureEnabledChange(): void;
+ /**
+ * Handles enterpictureinpicture and leavepictureinpicture on the player and change control text accordingly.
+ *
+ * @param {Event} [event]
+ * The {@link Player#enterpictureinpicture} or {@link Player#leavepictureinpicture} event that caused this function to be
+ * called.
+ *
+ * @listens Player#enterpictureinpicture
+ * @listens Player#leavepictureinpicture
+ */
+ handlePictureInPictureChange(event?: Event): void;
+ /**
+ * This gets called when an `PictureInPictureToggle` is "clicked". See
+ * {@link ClickableComponent} for more detailed information on what a click can be.
+ *
+ * @param {Event} [event]
+ * The `keydown`, `tap`, or `click` event that caused this function to be
+ * called.
+ *
+ * @listens tap
+ * @listens click
+ */
+ handleClick(event?: Event): void;
+}
+import Button from "../button.js";
+//# sourceMappingURL=picture-in-picture-toggle.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/picture-in-picture-toggle.d.ts.map b/priv/static/video.js/types/control-bar/picture-in-picture-toggle.d.ts.map
new file mode 100644
index 0000000..885bb8a
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/picture-in-picture-toggle.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"picture-in-picture-toggle.d.ts","sourceRoot":"","sources":["../../../src/js/control-bar/picture-in-picture-toggle.js"],"names":[],"mappings":";AAQA;;;;GAIG;AACH;IAEE;;;;;;;;;;;OAWG;IACH,wCAWC;IAYD;;;OAGG;IACH,8CAiBC;IAED;;;;;;;;OAQG;IACH,4CASC;IAED;;;;;;;;;OASG;IACH,qCAPW,KAAK,QAgBf;IAED;;;;;;;;;;OAUG;IACH,oBAPW,KAAK,QAaf;CAcF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/play-toggle.d.ts b/priv/static/video.js/types/control-bar/play-toggle.d.ts
new file mode 100644
index 0000000..0262f10
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/play-toggle.d.ts
@@ -0,0 +1,69 @@
+export default PlayToggle;
+/**
+ * Button to toggle between play and pause.
+ *
+ * @extends Button
+ */
+declare class PlayToggle extends Button {
+ /**
+ * Creates an instance of this class.
+ *
+ * @param { import('./player').default } player
+ * The `Player` that this class should be attached to.
+ *
+ * @param {Object} [options={}]
+ * The key/value store of player options.
+ */
+ constructor(player: any, options?: any);
+ /**
+ * This gets called when an `PlayToggle` is "clicked". See
+ * {@link ClickableComponent} for more detailed information on what a click can be.
+ *
+ * @param {Event} [event]
+ * The `keydown`, `tap`, or `click` event that caused this function to be
+ * called.
+ *
+ * @listens tap
+ * @listens click
+ */
+ handleClick(event?: Event): void;
+ /**
+ * This gets called once after the video has ended and the user seeks so that
+ * we can change the replay button back to a play button.
+ *
+ * @param {Event} [event]
+ * The event that caused this function to run.
+ *
+ * @listens Player#seeked
+ */
+ handleSeeked(event?: Event): void;
+ /**
+ * Add the vjs-playing class to the element so it can change appearance.
+ *
+ * @param {Event} [event]
+ * The event that caused this function to run.
+ *
+ * @listens Player#play
+ */
+ handlePlay(event?: Event): void;
+ /**
+ * Add the vjs-paused class to the element so it can change appearance.
+ *
+ * @param {Event} [event]
+ * The event that caused this function to run.
+ *
+ * @listens Player#pause
+ */
+ handlePause(event?: Event): void;
+ /**
+ * Add the vjs-ended class to the element so it can change appearance
+ *
+ * @param {Event} [event]
+ * The event that caused this function to run.
+ *
+ * @listens Player#ended
+ */
+ handleEnded(event?: Event): void;
+}
+import Button from "../button.js";
+//# sourceMappingURL=play-toggle.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/play-toggle.d.ts.map b/priv/static/video.js/types/control-bar/play-toggle.d.ts.map
new file mode 100644
index 0000000..36dd7f2
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/play-toggle.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"play-toggle.d.ts","sourceRoot":"","sources":["../../../src/js/control-bar/play-toggle.js"],"names":[],"mappings":";AAOA;;;;GAIG;AACH;IAEE;;;;;;;;OAQG;IACH,wCAcC;IAYD;;;;;;;;;;OAUG;IACH,oBAPW,KAAK,QAaf;IAED;;;;;;;;OAQG;IACH,qBALW,KAAK,QAaf;IAED;;;;;;;OAOG;IACH,mBALW,KAAK,QAWf;IAED;;;;;;;OAOG;IACH,oBALW,KAAK,QAWf;IAED;;;;;;;OAOG;IACH,oBALW,KAAK,QAcf;CACF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/playback-rate-menu/playback-rate-menu-button.d.ts b/priv/static/video.js/types/control-bar/playback-rate-menu/playback-rate-menu-button.d.ts
new file mode 100644
index 0000000..f14e778
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/playback-rate-menu/playback-rate-menu-button.d.ts
@@ -0,0 +1,66 @@
+export default PlaybackRateMenuButton;
+/**
+ * The component for controlling the playback rate.
+ *
+ * @extends MenuButton
+ */
+declare class PlaybackRateMenuButton extends MenuButton {
+ labelElId_: string;
+ labelEl_: Element;
+ /**
+ * Create the list of menu items. Specific to each subclass.
+ *
+ */
+ createItems(): PlaybackRateMenuItem[];
+ /**
+ * On playbackrateschange, update the menu to account for the new items.
+ *
+ * @listens Player#playbackrateschange
+ */
+ handlePlaybackRateschange(event: any): void;
+ /**
+ * Get possible playback rates
+ *
+ * @return {Array}
+ * All possible playback rates
+ */
+ playbackRates(): any[];
+ /**
+ * Get whether playback rates is supported by the tech
+ * and an array of playback rates exists
+ *
+ * @return {boolean}
+ * Whether changing playback rate is supported
+ */
+ playbackRateSupported(): boolean;
+ /**
+ * Hide playback rate controls when they're no playback rate options to select
+ *
+ * @param {Event} [event]
+ * The event that caused this function to run.
+ *
+ * @listens Player#loadstart
+ */
+ updateVisibility(event?: Event): void;
+ /**
+ * Update button label when rate changed
+ *
+ * @param {Event} [event]
+ * The event that caused this function to run.
+ *
+ * @listens Player#ratechange
+ */
+ updateLabel(event?: Event): void;
+ /**
+ * The text that should display over the `PlaybackRateMenuButton`s controls.
+ *
+ * Added for localization.
+ *
+ * @type {string}
+ * @protected
+ */
+ protected controlText_: string;
+}
+import MenuButton from "../../menu/menu-button.js";
+import PlaybackRateMenuItem from "./playback-rate-menu-item.js";
+//# sourceMappingURL=playback-rate-menu-button.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/playback-rate-menu/playback-rate-menu-button.d.ts.map b/priv/static/video.js/types/control-bar/playback-rate-menu/playback-rate-menu-button.d.ts.map
new file mode 100644
index 0000000..15030a1
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/playback-rate-menu/playback-rate-menu-button.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"playback-rate-menu-button.d.ts","sourceRoot":"","sources":["../../../../src/js/control-bar/playback-rate-menu/playback-rate-menu-button.js"],"names":[],"mappings":";AAQA;;;;GAIG;AACH;IAiCI,mBAA6D;IAE7D,kBAIE;IA2BJ;;;OAGG;IACH,sCASC;IAED;;;;OAIG;IACH,4CAEC;IAED;;;;;OAKG;IACH,uBAIC;IAED;;;;;;OAMG;IACH,yBAHY,OAAO,CASlB;IAED;;;;;;;OAOG;IACH,yBALW,KAAK,QAWf;IAED;;;;;;;OAOG;IACH,oBALW,KAAK,QASf;IAIH;;;;;;;OAOG;IACH,wBAHU,MAAM,CAG6B;CAV5C"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/playback-rate-menu/playback-rate-menu-item.d.ts b/priv/static/video.js/types/control-bar/playback-rate-menu/playback-rate-menu-item.d.ts
new file mode 100644
index 0000000..144c506
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/playback-rate-menu/playback-rate-menu-item.d.ts
@@ -0,0 +1,40 @@
+export default PlaybackRateMenuItem;
+/**
+ * The specific menu item type for selecting a playback rate.
+ *
+ * @extends MenuItem
+ */
+declare class PlaybackRateMenuItem extends MenuItem {
+ label: any;
+ rate: number;
+ /**
+ * This gets called when an `PlaybackRateMenuItem` is "clicked". See
+ * {@link ClickableComponent} for more detailed information on what a click can be.
+ *
+ * @param {Event} [event]
+ * The `keydown`, `tap`, or `click` event that caused this function to be
+ * called.
+ *
+ * @listens tap
+ * @listens click
+ */
+ handleClick(event?: Event): void;
+ /**
+ * Update the PlaybackRateMenuItem when the playbackrate changes.
+ *
+ * @param {Event} [event]
+ * The `ratechange` event that caused this function to run.
+ *
+ * @listens Player#ratechange
+ */
+ update(event?: Event): void;
+ /**
+ * The text that should display over the `PlaybackRateMenuItem`s controls. Added for localization.
+ *
+ * @type {string}
+ * @private
+ */
+ private contentElType;
+}
+import MenuItem from "../../menu/menu-item.js";
+//# sourceMappingURL=playback-rate-menu-item.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/playback-rate-menu/playback-rate-menu-item.d.ts.map b/priv/static/video.js/types/control-bar/playback-rate-menu/playback-rate-menu-item.d.ts.map
new file mode 100644
index 0000000..c21b0ff
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/playback-rate-menu/playback-rate-menu-item.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"playback-rate-menu-item.d.ts","sourceRoot":"","sources":["../../../../src/js/control-bar/playback-rate-menu/playback-rate-menu-item.js"],"names":[],"mappings":";AAMA;;;;GAIG;AACH;IAuBI,WAAkB;IAClB,aAAgB;IAKlB;;;;;;;;;;OAUG;IACH,oBAPW,KAAK,QAUf;IAED;;;;;;;OAOG;IACH,eALW,KAAK,QAOf;IAIH;;;;;OAKG;IACH,sBAA4C;CAR3C"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/progress-control/load-progress-bar.d.ts b/priv/static/video.js/types/control-bar/progress-control/load-progress-bar.d.ts
new file mode 100644
index 0000000..ede43bd
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/progress-control/load-progress-bar.d.ts
@@ -0,0 +1,40 @@
+export default LoadProgressBar;
+/**
+ * Shows loading progress
+ *
+ * @extends Component
+ */
+declare class LoadProgressBar extends Component {
+ /**
+ * Creates an instance of this class.
+ *
+ * @param { import('../../player').default } player
+ * The `Player` that this class should be attached to.
+ *
+ * @param {Object} [options]
+ * The key/value store of player options.
+ */
+ constructor(player: import('../../player').default, options?: any);
+ partEls_: any[];
+ /**
+ * Create the `Component`'s DOM element
+ *
+ * @return {Element}
+ * The element that was created.
+ */
+ createEl(): Element;
+ percentageEl_: Element;
+ dispose(): void;
+ /**
+ * Update progress bar
+ *
+ * @param {Event} [event]
+ * The `progress` event that caused this function to run.
+ *
+ * @listens Player#progress
+ */
+ update(event?: Event): void;
+ percent_: any;
+}
+import Component from "../../component.js";
+//# sourceMappingURL=load-progress-bar.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/progress-control/load-progress-bar.d.ts.map b/priv/static/video.js/types/control-bar/progress-control/load-progress-bar.d.ts.map
new file mode 100644
index 0000000..e789b31
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/progress-control/load-progress-bar.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"load-progress-bar.d.ts","sourceRoot":"","sources":["../../../../src/js/control-bar/progress-control/load-progress-bar.js"],"names":[],"mappings":";AAWA;;;;GAIG;AACH;IAEE;;;;;;;;OAQG;IACH,oBANY,OAAO,cAAc,EAAE,OAAO,iBAUzC;IAFC,gBAAkB;IAIpB;;;;;OAKG;IACH,YAHY,OAAO,CAoBlB;IAXC,uBAGE;IAUJ,gBAKC;IAED;;;;;;;OAOG;IACH,eALW,KAAK,QAoDf;IAjCK,cAAuB;CAkC9B"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/progress-control/mouse-time-display.d.ts b/priv/static/video.js/types/control-bar/progress-control/mouse-time-display.d.ts
new file mode 100644
index 0000000..0da4559
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/progress-control/mouse-time-display.d.ts
@@ -0,0 +1,42 @@
+export default MouseTimeDisplay;
+/**
+ * The {@link MouseTimeDisplay} component tracks mouse movement over the
+ * {@link ProgressControl}. It displays an indicator and a {@link TimeTooltip}
+ * indicating the time which is represented by a given point in the
+ * {@link ProgressControl}.
+ *
+ * @extends Component
+ */
+declare class MouseTimeDisplay extends Component {
+ /**
+ * Creates an instance of this class.
+ *
+ * @param { import('../../player').default } player
+ * The {@link Player} that this class should be attached to.
+ *
+ * @param {Object} [options]
+ * The key/value store of player options.
+ */
+ constructor(player: import('../../player').default, options?: any);
+ /**
+ * Enqueues updates to its own DOM as well as the DOM of its
+ * {@link TimeTooltip} child.
+ *
+ * @param {Object} seekBarRect
+ * The `ClientRect` for the {@link SeekBar} element.
+ *
+ * @param {number} seekBarPoint
+ * A number from 0 to 1, representing a horizontal reference point
+ * from the left edge of the {@link SeekBar}
+ */
+ update(seekBarRect: any, seekBarPoint: number): void;
+ /**
+ * Create the DOM element for this class.
+ *
+ * @return {Element}
+ * The element that was created.
+ */
+ createEl(): Element;
+}
+import Component from "../../component.js";
+//# sourceMappingURL=mouse-time-display.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/progress-control/mouse-time-display.d.ts.map b/priv/static/video.js/types/control-bar/progress-control/mouse-time-display.d.ts.map
new file mode 100644
index 0000000..7269a2d
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/progress-control/mouse-time-display.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"mouse-time-display.d.ts","sourceRoot":"","sources":["../../../../src/js/control-bar/progress-control/mouse-time-display.js"],"names":[],"mappings":";AAQA;;;;;;;GAOG;AACH;IAEE;;;;;;;;OAQG;IACH,oBANY,OAAO,cAAc,EAAE,OAAO,iBASzC;IAcD;;;;;;;;;;OAUG;IACH,uCAJW,MAAM,QAUhB;IA7BD;;;;;OAKG;IACH,YAHY,OAAO,CAOlB;CAoBF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/progress-control/play-progress-bar.d.ts b/priv/static/video.js/types/control-bar/progress-control/play-progress-bar.d.ts
new file mode 100644
index 0000000..2ee48e3
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/progress-control/play-progress-bar.d.ts
@@ -0,0 +1,40 @@
+export default PlayProgressBar;
+/**
+ * Used by {@link SeekBar} to display media playback progress as part of the
+ * {@link ProgressControl}.
+ *
+ * @extends Component
+ */
+declare class PlayProgressBar extends Component {
+ /**
+ * Creates an instance of this class.
+ *
+ * @param { import('../../player').default } player
+ * The {@link Player} that this class should be attached to.
+ *
+ * @param {Object} [options]
+ * The key/value store of player options.
+ */
+ constructor(player: import('../../player').default, options?: any);
+ /**
+ * Enqueues updates to its own DOM as well as the DOM of its
+ * {@link TimeTooltip} child.
+ *
+ * @param {Object} seekBarRect
+ * The `ClientRect` for the {@link SeekBar} element.
+ *
+ * @param {number} seekBarPoint
+ * A number from 0 to 1, representing a horizontal reference point
+ * from the left edge of the {@link SeekBar}
+ */
+ update(seekBarRect: any, seekBarPoint: number): void;
+ /**
+ * Create the the DOM element for this class.
+ *
+ * @return {Element}
+ * The element that was created.
+ */
+ createEl(): Element;
+}
+import Component from "../../component.js";
+//# sourceMappingURL=play-progress-bar.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/progress-control/play-progress-bar.d.ts.map b/priv/static/video.js/types/control-bar/progress-control/play-progress-bar.d.ts.map
new file mode 100644
index 0000000..f054d6d
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/progress-control/play-progress-bar.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"play-progress-bar.d.ts","sourceRoot":"","sources":["../../../../src/js/control-bar/progress-control/play-progress-bar.js"],"names":[],"mappings":";AASA;;;;;GAKG;AACH;IAEE;;;;;;;;OAQG;IACH,oBANY,OAAO,cAAc,EAAE,OAAO,iBAUzC;IAgBD;;;;;;;;;;OAUG;IACH,uCAJW,MAAM,QAgBhB;IArCD;;;;;OAKG;IACH,YAHY,OAAO,CASlB;CA0BF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/progress-control/progress-control.d.ts b/priv/static/video.js/types/control-bar/progress-control/progress-control.d.ts
new file mode 100644
index 0000000..d4a4dae
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/progress-control/progress-control.d.ts
@@ -0,0 +1,101 @@
+export default ProgressControl;
+/**
+ * The Progress Control component contains the seek bar, load progress,
+ * and play progress.
+ *
+ * @extends Component
+ */
+declare class ProgressControl extends Component {
+ /**
+ * Creates an instance of this class.
+ *
+ * @param { import('../../player').default } player
+ * The `Player` that this class should be attached to.
+ *
+ * @param {Object} [options]
+ * The key/value store of player options.
+ */
+ constructor(player: import('../../player').default, options?: any);
+ /**
+ * When the mouse moves over the `ProgressControl`, the pointer position
+ * gets passed down to the `MouseTimeDisplay` component.
+ *
+ * @param {Event} event
+ * The `mousemove` event that caused this function to run.
+ *
+ * @listen mousemove
+ */
+ handleMouseMove(event: Event): void;
+ throttledHandleMouseSeek: Function;
+ handleMouseUpHandler_: (e: any) => void;
+ handleMouseDownHandler_: (e: any) => void;
+ /**
+ * Create the `Component`'s DOM element
+ *
+ * @return {Element}
+ * The element that was created.
+ */
+ createEl(): Element;
+ /**
+ * A throttled version of the {@link ProgressControl#handleMouseSeek} listener.
+ *
+ * @method ProgressControl#throttledHandleMouseSeek
+ * @param {Event} event
+ * The `mousemove` event that caused this function to run.
+ *
+ * @listen mousemove
+ * @listen touchmove
+ */
+ /**
+ * Handle `mousemove` or `touchmove` events on the `ProgressControl`.
+ *
+ * @param {Event} event
+ * `mousedown` or `touchstart` event that triggered this function
+ *
+ * @listens mousemove
+ * @listens touchmove
+ */
+ handleMouseSeek(event: Event): void;
+ /**
+ * Are controls are currently enabled for this progress control.
+ *
+ * @return {boolean}
+ * true if controls are enabled, false otherwise
+ */
+ enabled(): boolean;
+ /**
+ * Disable all controls on the progress control and its children
+ */
+ disable(): void;
+ enabled_: boolean;
+ /**
+ * Enable all controls on the progress control and its children
+ */
+ enable(): void;
+ /**
+ * Cleanup listeners after the user finishes interacting with the progress controls
+ */
+ removeListenersAddedOnMousedownAndTouchstart(): void;
+ /**
+ * Handle `mousedown` or `touchstart` events on the `ProgressControl`.
+ *
+ * @param {Event} event
+ * `mousedown` or `touchstart` event that triggered this function
+ *
+ * @listens mousedown
+ * @listens touchstart
+ */
+ handleMouseDown(event: Event): void;
+ /**
+ * Handle `mouseup` or `touchend` events on the `ProgressControl`.
+ *
+ * @param {Event} event
+ * `mouseup` or `touchend` event that triggered this function.
+ *
+ * @listens touchend
+ * @listens mouseup
+ */
+ handleMouseUp(event: Event): void;
+}
+import Component from "../../component.js";
+//# sourceMappingURL=progress-control.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/progress-control/progress-control.d.ts.map b/priv/static/video.js/types/control-bar/progress-control/progress-control.d.ts.map
new file mode 100644
index 0000000..91402bb
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/progress-control/progress-control.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"progress-control.d.ts","sourceRoot":"","sources":["../../../../src/js/control-bar/progress-control/progress-control.js"],"names":[],"mappings":";AAWA;;;;;GAKG;AACH;IAEE;;;;;;;;OAQG;IACH,oBANY,OAAO,cAAc,EAAE,OAAO,iBAczC;IAcD;;;;;;;;OAQG;IACH,uBALW,KAAK,QAoCf;IA3DC,mCAAoG;IACpG,wCAAyD;IACzD,0CAA6D;IAK/D;;;;;OAKG;IACH,YAHY,OAAO,CAOlB;IA4CD;;;;;;;;;OASG;IAEH;;;;;;;;OAQG;IACH,uBANW,KAAK,QAYf;IAED;;;;;OAKG;IACH,WAHY,OAAO,CAKlB;IAED;;OAEG;IACH,gBA0BC;IAZC,kBAAqB;IAcvB;;OAEG;IACH,eAYC;IAED;;OAEG;IACH,qDAOC;IAED;;;;;;;;OAQG;IACH,uBANW,KAAK,QAkBf;IAED;;;;;;;;OAQG;IACH,qBANW,KAAK,QAcf;CACF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/progress-control/seek-bar.d.ts b/priv/static/video.js/types/control-bar/progress-control/seek-bar.d.ts
new file mode 100644
index 0000000..e1f9ec8
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/progress-control/seek-bar.d.ts
@@ -0,0 +1,100 @@
+export default SeekBar;
+/**
+ * Seek bar and container for the progress bars. Uses {@link PlayProgressBar}
+ * as its `bar`.
+ *
+ * @extends Slider
+ */
+declare class SeekBar extends Slider {
+ /**
+ * Sets the event handlers
+ *
+ * @private
+ */
+ private setEventHandlers_;
+ /**
+ * This function updates the play progress bar and accessibility
+ * attributes to whatever is passed in.
+ *
+ * @param {Event} [event]
+ * The `timeupdate` or `ended` event that caused this to run.
+ *
+ * @listens Player#timeupdate
+ *
+ * @return {number}
+ * The current percent at a number from 0-1
+ */
+ update(event?: Event): number;
+ updateInterval: number;
+ enableIntervalHandler_: (e: any) => void;
+ disableIntervalHandler_: (e: any) => void;
+ toggleVisibility_(e: any): void;
+ enableInterval_(): void;
+ disableInterval_(e: any): void;
+ /**
+ * Create the `Component`'s DOM element
+ *
+ * @return {Element}
+ * The element that was created.
+ */
+ createEl(): Element;
+ percent_: any;
+ currentTime_: any;
+ duration_: any;
+ /**
+ * Prevent liveThreshold from causing seeks to seem like they
+ * are not happening from a user perspective.
+ *
+ * @param {number} ct
+ * current time to seek to
+ */
+ userSeek_(ct: number): void;
+ /**
+ * Get the value of current time but allows for smooth scrubbing,
+ * when player can't keep up.
+ *
+ * @return {number}
+ * The current time value to display
+ *
+ * @private
+ */
+ private getCurrentTime_;
+ /**
+ * Get the percentage of media played so far.
+ *
+ * @return {number}
+ * The percentage of media played so far (0 to 1).
+ */
+ getPercent(): number;
+ videoWasPlaying: boolean;
+ /**
+ * Handle mouse move on seek bar
+ *
+ * @param {MouseEvent} event
+ * The `mousemove` event that caused this to run.
+ * @param {boolean} mouseDown this is a flag that should be set to true if `handleMouseMove` is called directly. It allows us to skip things that should not happen if coming from mouse down but should happen on regular mouse move handler. Defaults to false
+ *
+ * @listens mousemove
+ */
+ handleMouseMove(event: MouseEvent, mouseDown?: boolean): void;
+ /**
+ * Move more quickly fast forward for keyboard-only users
+ */
+ stepForward(): void;
+ /**
+ * Move more quickly rewind for keyboard-only users
+ */
+ stepBack(): void;
+ /**
+ * Toggles the playback state of the player
+ * This gets called when enter or space is used on the seekbar
+ *
+ * @param {KeyboardEvent} event
+ * The `keydown` event that caused this function to be called
+ *
+ */
+ handleAction(event: KeyboardEvent): void;
+ dispose(): void;
+}
+import Slider from "../../slider/slider.js";
+//# sourceMappingURL=seek-bar.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/progress-control/seek-bar.d.ts.map b/priv/static/video.js/types/control-bar/progress-control/seek-bar.d.ts.map
new file mode 100644
index 0000000..5472e5a
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/progress-control/seek-bar.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"seek-bar.d.ts","sourceRoot":"","sources":["../../../../src/js/control-bar/progress-control/seek-bar.js"],"names":[],"mappings":";AAuBA;;;;;GAKG;AACH;IAgBE;;;;OAIG;IACH,0BAyBC;IAoDD;;;;;;;;;;;OAWG;IACH,eARW,KAAK,GAKJ,MAAM,CAkDjB;IA7HC,uBAA0B;IAE1B,yCAA4D;IAC5D,0CAA8D;IAahE,gCAaC;IAED,wBAMC;IAED,+BAWC;IAED;;;;;OAKG;IACH,YAHY,OAAO,CASlB;IAmCK,cAAuB;IAevB,kBAA+B;IAC/B,eAAyB;IAY/B;;;;;;OAMG;IACH,cAHW,MAAM,QAShB;IAED;;;;;;;;OAQG;IACH,wBAIC;IAED;;;;;OAKG;IACH,cAHY,MAAM,CAoBjB;IAkBC,yBAA6C;IAM/C;;;;;;;;OAQG;IACH,uBANW,UAAU,cAEV,OAAO,QA4DjB;IA0DD;;OAEG;IACH,oBAEC;IAED;;OAEG;IACH,iBAEC;IAED;;;;;;;OAOG;IACH,oBAJW,aAAa,QAUvB;IA6DD,gBAkBC;CACF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/progress-control/time-tooltip.d.ts b/priv/static/video.js/types/control-bar/progress-control/time-tooltip.d.ts
new file mode 100644
index 0000000..a51deab
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/progress-control/time-tooltip.d.ts
@@ -0,0 +1,63 @@
+export default TimeTooltip;
+/**
+ * Time tooltips display a time above the progress bar.
+ *
+ * @extends Component
+ */
+declare class TimeTooltip extends Component {
+ /**
+ * Creates an instance of this class.
+ *
+ * @param { import('../../player').default } player
+ * The {@link Player} that this class should be attached to.
+ *
+ * @param {Object} [options]
+ * The key/value store of player options.
+ */
+ constructor(player: import('../../player').default, options?: any);
+ /**
+ * Updates the position of the time tooltip relative to the `SeekBar`.
+ *
+ * @param {Object} seekBarRect
+ * The `ClientRect` for the {@link SeekBar} element.
+ *
+ * @param {number} seekBarPoint
+ * A number from 0 to 1, representing a horizontal reference point
+ * from the left edge of the {@link SeekBar}
+ */
+ update(seekBarRect: any, seekBarPoint: number, content: any): void;
+ /**
+ * Create the time tooltip DOM element
+ *
+ * @return {Element}
+ * The element that was created.
+ */
+ createEl(): Element;
+ /**
+ * Write the time to the tooltip DOM element.
+ *
+ * @param {string} content
+ * The formatted time for the tooltip.
+ */
+ write(content: string): void;
+ /**
+ * Updates the position of the time tooltip relative to the `SeekBar`.
+ *
+ * @param {Object} seekBarRect
+ * The `ClientRect` for the {@link SeekBar} element.
+ *
+ * @param {number} seekBarPoint
+ * A number from 0 to 1, representing a horizontal reference point
+ * from the left edge of the {@link SeekBar}
+ *
+ * @param {number} time
+ * The time to update the tooltip to, not used during live playback
+ *
+ * @param {Function} cb
+ * A function that will be called during the request animation frame
+ * for tooltips that need to do additional animations from the default
+ */
+ updateTime(seekBarRect: any, seekBarPoint: number, time: number, cb: Function): void;
+}
+import Component from "../../component";
+//# sourceMappingURL=time-tooltip.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/progress-control/time-tooltip.d.ts.map b/priv/static/video.js/types/control-bar/progress-control/time-tooltip.d.ts.map
new file mode 100644
index 0000000..a3b13da
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/progress-control/time-tooltip.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"time-tooltip.d.ts","sourceRoot":"","sources":["../../../../src/js/control-bar/progress-control/time-tooltip.js"],"names":[],"mappings":";AAQA;;;;GAIG;AACH;IAEE;;;;;;;;OAQG;IACH,oBANY,OAAO,cAAc,EAAE,OAAO,iBASzC;IAgBD;;;;;;;;;OASG;IACH,uCAJW,MAAM,sBAkEhB;IAtFD;;;;;OAKG;IACH,YAHY,OAAO,CASlB;IA4ED;;;;;OAKG;IACH,eAHW,MAAM,QAKhB;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,2CAXW,MAAM,QAIN,MAAM,sBA0BhB;CACF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/seek-to-live.d.ts b/priv/static/video.js/types/control-bar/seek-to-live.d.ts
new file mode 100644
index 0000000..b816cc8
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/seek-to-live.d.ts
@@ -0,0 +1,51 @@
+export default SeekToLive;
+/**
+ * Displays the live indicator when duration is Infinity.
+ *
+ * @extends Component
+ */
+declare class SeekToLive extends Component {
+ /**
+ * Creates an instance of this class.
+ *
+ * @param { import('./player').default } player
+ * The `Player` that this class should be attached to.
+ *
+ * @param {Object} [options]
+ * The key/value store of player options.
+ */
+ constructor(player: any, options?: any);
+ updateLiveEdgeStatusHandler_: (e: any) => void;
+ /**
+ * Create the `Component`'s DOM element
+ *
+ * @return {Element}
+ * The element that was created.
+ */
+ createEl(): Element;
+ textEl_: Element;
+ /**
+ * Update the state of this button if we are at the live edge
+ * or not
+ */
+ updateLiveEdgeStatus(): void;
+ /**
+ * On click bring us as near to the live point as possible.
+ * This requires that we wait for the next `live-seekable-change`
+ * event which will happen every segment length seconds.
+ */
+ handleClick(): void;
+ /**
+ * Dispose of the element and stop tracking
+ */
+ dispose(): void;
+ /**
+ * The text that should display over the `SeekToLive`s control. Added for localization.
+ *
+ * @type {string}
+ * @protected
+ */
+ protected controlText_: string;
+}
+import Component from "../component";
+//# sourceMappingURL=seek-to-live.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/seek-to-live.d.ts.map b/priv/static/video.js/types/control-bar/seek-to-live.d.ts.map
new file mode 100644
index 0000000..f6c1056
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/seek-to-live.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"seek-to-live.d.ts","sourceRoot":"","sources":["../../../src/js/control-bar/seek-to-live.js"],"names":[],"mappings":";AAOA;;;;GAIG;AACH;IAEE;;;;;;;;OAQG;IACH,wCASC;IAHG,+CAAuE;IAK3E;;;;;OAKG;IACH,YAHY,OAAO,CAmBlB;IATC,iBAKE;IAMJ;;;OAGG;IACH,6BAWC;IAED;;;;OAIG;IACH,oBAEC;IAED;;OAEG;IACH,gBAOC;IAEH;;;;;OAKG;IACH,wBAHU,MAAM,CAGiB;CAPhC"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/skip-buttons/skip-backward.d.ts b/priv/static/video.js/types/control-bar/skip-buttons/skip-backward.d.ts
new file mode 100644
index 0000000..2bad1c0
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/skip-buttons/skip-backward.d.ts
@@ -0,0 +1,29 @@
+export default SkipBackward;
+/**
+ * Button to skip backward a configurable amount of time
+ * through a video. Renders in the control bar.
+ *
+ * * e.g. options: {controlBar: {skipButtons: backward: 5}}
+ *
+ * @extends Button
+ */
+declare class SkipBackward extends Button {
+ constructor(player: any, options: any);
+ validOptions: number[];
+ skipTime: any;
+ getSkipBackwardTime(): any;
+ /**
+ * On click, skips backward in the video by a configurable amount of seconds.
+ * If the current time in the video is less than the configured 'skip backward' time,
+ * skips to beginning of video or seekable range.
+ *
+ * Handle a click on a `SkipBackward` button
+ *
+ * @param {EventTarget~Event} event
+ * The `click` event that caused this function
+ * to be called
+ */
+ handleClick(event: any): void;
+}
+import Button from "../../button";
+//# sourceMappingURL=skip-backward.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/skip-buttons/skip-backward.d.ts.map b/priv/static/video.js/types/control-bar/skip-buttons/skip-backward.d.ts.map
new file mode 100644
index 0000000..d353961
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/skip-buttons/skip-backward.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"skip-backward.d.ts","sourceRoot":"","sources":["../../../../src/js/control-bar/skip-buttons/skip-backward.js"],"names":[],"mappings":";AAGA;;;;;;;GAOG;AACH;IACE,uCAaC;IAVC,uBAA+B;IAC/B,cAA0C;IAW5C,2BAIC;IAMD;;;;;;;;;;OAUG;IACH,8BAcC;CAQF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/skip-buttons/skip-forward.d.ts b/priv/static/video.js/types/control-bar/skip-buttons/skip-forward.d.ts
new file mode 100644
index 0000000..4603784
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/skip-buttons/skip-forward.d.ts
@@ -0,0 +1,29 @@
+export default SkipForward;
+/**
+ * Button to skip forward a configurable amount of time
+ * through a video. Renders in the control bar.
+ *
+ * e.g. options: {controlBar: {skipButtons: forward: 5}}
+ *
+ * @extends Button
+ */
+declare class SkipForward extends Button {
+ constructor(player: any, options: any);
+ validOptions: number[];
+ skipTime: any;
+ getSkipForwardTime(): any;
+ /**
+ * On click, skips forward in the duration/seekable range by a configurable amount of seconds.
+ * If the time left in the duration/seekable range is less than the configured 'skip forward' time,
+ * skips to end of duration/seekable range.
+ *
+ * Handle a click on a `SkipForward` button
+ *
+ * @param {EventTarget~Event} event
+ * The `click` event that caused this function
+ * to be called
+ */
+ handleClick(event: any): void;
+}
+import Button from "../../button";
+//# sourceMappingURL=skip-forward.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/skip-buttons/skip-forward.d.ts.map b/priv/static/video.js/types/control-bar/skip-buttons/skip-forward.d.ts.map
new file mode 100644
index 0000000..11f44eb
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/skip-buttons/skip-forward.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"skip-forward.d.ts","sourceRoot":"","sources":["../../../../src/js/control-bar/skip-buttons/skip-forward.js"],"names":[],"mappings":";AAGA;;;;;;;GAOG;AACH;IACE,uCAaC;IAVC,uBAA+B;IAC/B,cAAyC;IAW3C,0BAIC;IAMD;;;;;;;;;;OAUG;IACH,8BAiBC;CAQF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/spacer-controls/custom-control-spacer.d.ts b/priv/static/video.js/types/control-bar/spacer-controls/custom-control-spacer.d.ts
new file mode 100644
index 0000000..0d5ed67
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/spacer-controls/custom-control-spacer.d.ts
@@ -0,0 +1,17 @@
+export default CustomControlSpacer;
+/**
+ * Spacer specifically meant to be used as an insertion point for new plugins, etc.
+ *
+ * @extends Spacer
+ */
+declare class CustomControlSpacer extends Spacer {
+ /**
+ * Create the `Component`'s DOM element
+ *
+ * @return {Element}
+ * The element that was created.
+ */
+ createEl(): Element;
+}
+import Spacer from "./spacer.js";
+//# sourceMappingURL=custom-control-spacer.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/spacer-controls/custom-control-spacer.d.ts.map b/priv/static/video.js/types/control-bar/spacer-controls/custom-control-spacer.d.ts.map
new file mode 100644
index 0000000..0215cfd
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/spacer-controls/custom-control-spacer.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"custom-control-spacer.d.ts","sourceRoot":"","sources":["../../../../src/js/control-bar/spacer-controls/custom-control-spacer.js"],"names":[],"mappings":";AAMA;;;;GAIG;AACH;IAYE;;;;;OAKG;IACH,YAHY,OAAO,CAUlB;CACF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/spacer-controls/spacer.d.ts b/priv/static/video.js/types/control-bar/spacer-controls/spacer.d.ts
new file mode 100644
index 0000000..93e21e0
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/spacer-controls/spacer.d.ts
@@ -0,0 +1,18 @@
+export default Spacer;
+/**
+ * Just an empty spacer element that can be used as an append point for plugins, etc.
+ * Also can be used to create space between elements when necessary.
+ *
+ * @extends Component
+ */
+declare class Spacer extends Component {
+ /**
+ * Create the `Component`'s DOM element
+ *
+ * @return {Element}
+ * The element that was created.
+ */
+ createEl(tag?: string, props?: {}, attributes?: {}): Element;
+}
+import Component from "../../component.js";
+//# sourceMappingURL=spacer.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/spacer-controls/spacer.d.ts.map b/priv/static/video.js/types/control-bar/spacer-controls/spacer.d.ts.map
new file mode 100644
index 0000000..5b1d1f9
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/spacer-controls/spacer.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"spacer.d.ts","sourceRoot":"","sources":["../../../../src/js/control-bar/spacer-controls/spacer.js"],"names":[],"mappings":";AAKA;;;;;GAKG;AACH;IAYE;;;;;OAKG;IACH,qDAHY,OAAO,CASlB;CACF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/text-track-controls/caption-settings-menu-item.d.ts b/priv/static/video.js/types/control-bar/text-track-controls/caption-settings-menu-item.d.ts
new file mode 100644
index 0000000..c352027
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/text-track-controls/caption-settings-menu-item.d.ts
@@ -0,0 +1,22 @@
+export default CaptionSettingsMenuItem;
+/**
+ * The menu item for caption track settings menu
+ *
+ * @extends TextTrackMenuItem
+ */
+declare class CaptionSettingsMenuItem extends TextTrackMenuItem {
+ /**
+ * This gets called when an `CaptionSettingsMenuItem` is "clicked". See
+ * {@link ClickableComponent} for more detailed information on what a click can be.
+ *
+ * @param {Event} [event]
+ * The `keydown`, `tap`, or `click` event that caused this function to be
+ * called.
+ *
+ * @listens tap
+ * @listens click
+ */
+ handleClick(event?: Event): void;
+}
+import TextTrackMenuItem from "./text-track-menu-item.js";
+//# sourceMappingURL=caption-settings-menu-item.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/text-track-controls/caption-settings-menu-item.d.ts.map b/priv/static/video.js/types/control-bar/text-track-controls/caption-settings-menu-item.d.ts.map
new file mode 100644
index 0000000..0b5dee0
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/text-track-controls/caption-settings-menu-item.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"caption-settings-menu-item.d.ts","sourceRoot":"","sources":["../../../../src/js/control-bar/text-track-controls/caption-settings-menu-item.js"],"names":[],"mappings":";AAMA;;;;GAIG;AACH;IA+BE;;;;;;;;;;OAUG;IACH,oBAPW,KAAK,QASf;CAUF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/text-track-controls/captions-button.d.ts b/priv/static/video.js/types/control-bar/text-track-controls/captions-button.d.ts
new file mode 100644
index 0000000..abbd644
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/text-track-controls/captions-button.d.ts
@@ -0,0 +1,53 @@
+export default CaptionsButton;
+/**
+ * The button component for toggling and selecting captions
+ *
+ * @extends TextTrackButton
+ */
+declare class CaptionsButton extends TextTrackButton {
+ /**
+ * Creates an instance of this class.
+ *
+ * @param { import('../../player').default } player
+ * The `Player` that this class should be attached to.
+ *
+ * @param {Object} [options]
+ * The key/value store of player options.
+ *
+ * @param {Function} [ready]
+ * The function to call when this component is ready.
+ */
+ constructor(player: import('../../player').default, options?: any, ready?: Function);
+ /**
+ * Builds the default DOM `className`.
+ *
+ * @return {string}
+ * The DOM `className` for this object.
+ */
+ buildCSSClass(): string;
+ buildWrapperCSSClass(): string;
+ /**
+ * Create caption menu items
+ *
+ * @return {CaptionSettingsMenuItem[]}
+ * The array of current menu items.
+ */
+ createItems(): CaptionSettingsMenuItem[];
+ /**
+ * `kind` of TextTrack to look for to associate it with this menu.
+ *
+ * @type {string}
+ * @private
+ */
+ private kind_;
+ /**
+ * The text that should display over the `CaptionsButton`s controls. Added for localization.
+ *
+ * @type {string}
+ * @protected
+ */
+ protected controlText_: string;
+}
+import TextTrackButton from "./text-track-button.js";
+import CaptionSettingsMenuItem from "./caption-settings-menu-item.js";
+//# sourceMappingURL=captions-button.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/text-track-controls/captions-button.d.ts.map b/priv/static/video.js/types/control-bar/text-track-controls/captions-button.d.ts.map
new file mode 100644
index 0000000..dfa4818
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/text-track-controls/captions-button.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"captions-button.d.ts","sourceRoot":"","sources":["../../../../src/js/control-bar/text-track-controls/captions-button.js"],"names":[],"mappings":";AAOA;;;;GAIG;AACH;IAEE;;;;;;;;;;;OAWG;IACH,oBATY,OAAO,cAAc,EAAE,OAAO,mCAazC;IAED;;;;;OAKG;IACH,iBAHY,MAAM,CAKjB;IAED,+BAEC;IAED;;;;;OAKG;IACH,eAHY,uBAAuB,EAAE,CAcpC;IAIH;;;;;OAKG;IACH,cAA8B;IAE9B;;;;;OAKG;IACH,wBAHU,MAAM,CAGqB;CAhBpC"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/text-track-controls/chapters-button.d.ts b/priv/static/video.js/types/control-bar/text-track-controls/chapters-button.d.ts
new file mode 100644
index 0000000..6db1762
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/text-track-controls/chapters-button.d.ts
@@ -0,0 +1,98 @@
+export default ChaptersButton;
+/**
+ * The button component for toggling and selecting chapters
+ * Chapters act much differently than other text tracks
+ * Cues are navigation vs. other tracks of alternative languages
+ *
+ * @extends TextTrackButton
+ */
+declare class ChaptersButton extends TextTrackButton {
+ /**
+ * Creates an instance of this class.
+ *
+ * @param { import('../../player').default } player
+ * The `Player` that this class should be attached to.
+ *
+ * @param {Object} [options]
+ * The key/value store of player options.
+ *
+ * @param {Function} [ready]
+ * The function to call when this function is ready.
+ */
+ constructor(player: import('../../player').default, options?: any, ready?: Function);
+ selectCurrentItem_: () => void;
+ /**
+ * Builds the default DOM `className`.
+ *
+ * @return {string}
+ * The DOM `className` for this object.
+ */
+ buildCSSClass(): string;
+ buildWrapperCSSClass(): string;
+ /**
+ * Update the menu based on the current state of its items.
+ *
+ * @param {Event} [event]
+ * An event that triggered this function to run.
+ *
+ * @listens TextTrackList#addtrack
+ * @listens TextTrackList#removetrack
+ * @listens TextTrackList#change
+ */
+ update(event?: Event): void;
+ /**
+ * Set the currently selected track for the chapters button.
+ *
+ * @param {TextTrack} track
+ * The new track to select. Nothing will change if this is the currently selected
+ * track.
+ */
+ setTrack(track: TextTrack): void;
+ updateHandler_: any;
+ track_: any;
+ /**
+ * Find the track object that is currently in use by this ChaptersButton
+ *
+ * @return {TextTrack|undefined}
+ * The current track or undefined if none was found.
+ */
+ findChaptersTrack(): TextTrack | undefined;
+ /**
+ * Get the caption for the ChaptersButton based on the track label. This will also
+ * use the current tracks localized kind as a fallback if a label does not exist.
+ *
+ * @return {string}
+ * The tracks current label or the localized track kind.
+ */
+ getMenuCaption(): string;
+ /**
+ * Create menu from chapter track
+ *
+ * @return { import('../../menu/menu').default }
+ * New menu for the chapter buttons
+ */
+ createMenu(): import('../../menu/menu').default;
+ /**
+ * Create a menu item for each text track
+ *
+ * @return { import('./text-track-menu-item').default[] }
+ * Array of menu items
+ */
+ createItems(): import('./text-track-menu-item').default[];
+ /**
+ * `kind` of TextTrack to look for to associate it with this menu.
+ *
+ * @type {string}
+ * @private
+ */
+ private kind_;
+ /**
+ * The text that should display over the `ChaptersButton`s controls. Added for localization.
+ *
+ * @type {string}
+ * @protected
+ */
+ protected controlText_: string;
+}
+import TextTrackButton from "./text-track-button.js";
+//# sourceMappingURL=chapters-button.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/text-track-controls/chapters-button.d.ts.map b/priv/static/video.js/types/control-bar/text-track-controls/chapters-button.d.ts.map
new file mode 100644
index 0000000..e03edfb
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/text-track-controls/chapters-button.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"chapters-button.d.ts","sourceRoot":"","sources":["../../../../src/js/control-bar/text-track-controls/chapters-button.js"],"names":[],"mappings":";AAQA;;;;;;GAMG;AACH;IAEE;;;;;;;;;;;OAWG;IACH,oBATY,OAAO,cAAc,EAAE,OAAO,mCAmBzC;IALC,+BAIC;IAGH;;;;;OAKG;IACH,iBAHY,MAAM,CAKjB;IAED,+BAEC;IAED;;;;;;;;;OASG;IACH,eAPW,KAAK,QAqBf;IAED;;;;;;OAMG;IACH,gBAJW,SAAS,QAwCnB;IA9BG,oBAA4C;IAa5C,YAAkB;IAmBtB;;;;;OAKG;IACH,qBAHY,SAAS,GAAC,SAAS,CAc9B;IAED;;;;;;OAMG;IACH,kBAHY,MAAM,CAQjB;IAED;;;;;OAKG;IACH,cAHa,OAAO,iBAAiB,EAAE,OAAO,CAM7C;IAED;;;;;OAKG;IACH,eAHc,OAAO,wBAAwB,EAAE,OAAO,EAAE,CAwBvD;IAIH;;;;;OAKG;IACH,cAA8B;IAE9B;;;;;OAKG;IACH,wBAHU,MAAM,CAGqB;CAhBpC"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/text-track-controls/chapters-track-menu-item.d.ts b/priv/static/video.js/types/control-bar/text-track-controls/chapters-track-menu-item.d.ts
new file mode 100644
index 0000000..a4d5f89
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/text-track-controls/chapters-track-menu-item.d.ts
@@ -0,0 +1,24 @@
+export default ChaptersTrackMenuItem;
+/**
+ * The chapter track menu item
+ *
+ * @extends MenuItem
+ */
+declare class ChaptersTrackMenuItem extends MenuItem {
+ track: any;
+ cue: any;
+ /**
+ * This gets called when an `ChaptersTrackMenuItem` is "clicked". See
+ * {@link ClickableComponent} for more detailed information on what a click can be.
+ *
+ * @param {Event} [event]
+ * The `keydown`, `tap`, or `click` event that caused this function to be
+ * called.
+ *
+ * @listens tap
+ * @listens click
+ */
+ handleClick(event?: Event): void;
+}
+import MenuItem from "../../menu/menu-item.js";
+//# sourceMappingURL=chapters-track-menu-item.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/text-track-controls/chapters-track-menu-item.d.ts.map b/priv/static/video.js/types/control-bar/text-track-controls/chapters-track-menu-item.d.ts.map
new file mode 100644
index 0000000..9d5eefd
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/text-track-controls/chapters-track-menu-item.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"chapters-track-menu-item.d.ts","sourceRoot":"","sources":["../../../../src/js/control-bar/text-track-controls/chapters-track-menu-item.js"],"names":[],"mappings":";AAMA;;;;GAIG;AACH;IAuBI,WAAkB;IAClB,SAAc;IAGhB;;;;;;;;;;OAUG;IACH,oBAPW,KAAK,QAUf;CAEF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/text-track-controls/descriptions-button.d.ts b/priv/static/video.js/types/control-bar/text-track-controls/descriptions-button.d.ts
new file mode 100644
index 0000000..45e3818
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/text-track-controls/descriptions-button.d.ts
@@ -0,0 +1,54 @@
+export default DescriptionsButton;
+/**
+ * The button component for toggling and selecting descriptions
+ *
+ * @extends TextTrackButton
+ */
+declare class DescriptionsButton extends TextTrackButton {
+ /**
+ * Creates an instance of this class.
+ *
+ * @param { import('../../player').default } player
+ * The `Player` that this class should be attached to.
+ *
+ * @param {Object} [options]
+ * The key/value store of player options.
+ *
+ * @param {Function} [ready]
+ * The function to call when this component is ready.
+ */
+ constructor(player: import('../../player').default, options?: any, ready?: Function);
+ /**
+ * Handle text track change
+ *
+ * @param {Event} event
+ * The event that caused this function to run
+ *
+ * @listens TextTrackList#change
+ */
+ handleTracksChange(event: Event): void;
+ /**
+ * Builds the default DOM `className`.
+ *
+ * @return {string}
+ * The DOM `className` for this object.
+ */
+ buildCSSClass(): string;
+ buildWrapperCSSClass(): string;
+ /**
+ * `kind` of TextTrack to look for to associate it with this menu.
+ *
+ * @type {string}
+ * @private
+ */
+ private kind_;
+ /**
+ * The text that should display over the `DescriptionsButton`s controls. Added for localization.
+ *
+ * @type {string}
+ * @protected
+ */
+ protected controlText_: string;
+}
+import TextTrackButton from "./text-track-button.js";
+//# sourceMappingURL=descriptions-button.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/text-track-controls/descriptions-button.d.ts.map b/priv/static/video.js/types/control-bar/text-track-controls/descriptions-button.d.ts.map
new file mode 100644
index 0000000..25a6f7a
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/text-track-controls/descriptions-button.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"descriptions-button.d.ts","sourceRoot":"","sources":["../../../../src/js/control-bar/text-track-controls/descriptions-button.js"],"names":[],"mappings":";AAOA;;;;GAIG;AACH;IAEE;;;;;;;;;;;OAWG;IACH,oBATY,OAAO,cAAc,EAAE,OAAO,mCAqBzC;IAED;;;;;;;OAOG;IACH,0BALW,KAAK,QAyBf;IAED;;;;;OAKG;IACH,iBAHY,MAAM,CAKjB;IAED,+BAEC;IAGH;;;;;OAKG;IACH,cAAkC;IAElC;;;;;OAKG;IACH,wBAHU,MAAM,CAGyB;CAhBxC"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/text-track-controls/off-text-track-menu-item.d.ts b/priv/static/video.js/types/control-bar/text-track-controls/off-text-track-menu-item.d.ts
new file mode 100644
index 0000000..d8fb96e
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/text-track-controls/off-text-track-menu-item.d.ts
@@ -0,0 +1,10 @@
+export default OffTextTrackMenuItem;
+/**
+ * A special menu item for turning off a specific type of text track
+ *
+ * @extends TextTrackMenuItem
+ */
+declare class OffTextTrackMenuItem extends TextTrackMenuItem {
+}
+import TextTrackMenuItem from "./text-track-menu-item.js";
+//# sourceMappingURL=off-text-track-menu-item.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/text-track-controls/off-text-track-menu-item.d.ts.map b/priv/static/video.js/types/control-bar/text-track-controls/off-text-track-menu-item.d.ts.map
new file mode 100644
index 0000000..6ee2105
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/text-track-controls/off-text-track-menu-item.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"off-text-track-menu-item.d.ts","sourceRoot":"","sources":["../../../../src/js/control-bar/text-track-controls/off-text-track-menu-item.js"],"names":[],"mappings":";AAMA;;;;GAIG;AACH;CAkGC"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/text-track-controls/subs-caps-button.d.ts b/priv/static/video.js/types/control-bar/text-track-controls/subs-caps-button.d.ts
new file mode 100644
index 0000000..4562c61
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/text-track-controls/subs-caps-button.d.ts
@@ -0,0 +1,35 @@
+export default SubsCapsButton;
+/**
+ * The button component for toggling and selecting captions and/or subtitles
+ *
+ * @extends TextTrackButton
+ */
+declare class SubsCapsButton extends TextTrackButton {
+ label_: string;
+ /**
+ * Builds the default DOM `className`.
+ *
+ * @return {string}
+ * The DOM `className` for this object.
+ */
+ buildCSSClass(): string;
+ buildWrapperCSSClass(): string;
+ /**
+ * Create caption/subtitles menu items
+ *
+ * @return {CaptionSettingsMenuItem[]}
+ * The array of current menu items.
+ */
+ createItems(): CaptionSettingsMenuItem[];
+ /**
+ * The text that should display over the `SubsCapsButton`s controls.
+ *
+ *
+ * @type {string}
+ * @protected
+ */
+ protected controlText_: string;
+}
+import TextTrackButton from "./text-track-button.js";
+import CaptionSettingsMenuItem from "./caption-settings-menu-item.js";
+//# sourceMappingURL=subs-caps-button.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/text-track-controls/subs-caps-button.d.ts.map b/priv/static/video.js/types/control-bar/text-track-controls/subs-caps-button.d.ts.map
new file mode 100644
index 0000000..e70e112
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/text-track-controls/subs-caps-button.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"subs-caps-button.d.ts","sourceRoot":"","sources":["../../../../src/js/control-bar/text-track-controls/subs-caps-button.js"],"names":[],"mappings":";AASA;;;;GAIG;AACH;IAmBI,eAAyB;IAS3B;;;;;OAKG;IACH,iBAHY,MAAM,CAKjB;IAED,+BAEC;IAED;;;;;OAKG;IACH,eAHY,uBAAuB,EAAE,CAepC;IAYH;;;;;;OAMG;IACH,wBAHU,MAAM,CAGqB;CAjBpC"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/text-track-controls/subs-caps-menu-item.d.ts b/priv/static/video.js/types/control-bar/text-track-controls/subs-caps-menu-item.d.ts
new file mode 100644
index 0000000..25aade9
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/text-track-controls/subs-caps-menu-item.d.ts
@@ -0,0 +1,12 @@
+export default SubsCapsMenuItem;
+/**
+ * SubsCapsMenuItem has an [cc] icon to distinguish captions from subtitles
+ * in the SubsCapsMenu.
+ *
+ * @extends TextTrackMenuItem
+ */
+declare class SubsCapsMenuItem extends TextTrackMenuItem {
+ createEl(type: any, props: any, attrs: any): Element;
+}
+import TextTrackMenuItem from "./text-track-menu-item.js";
+//# sourceMappingURL=subs-caps-menu-item.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/text-track-controls/subs-caps-menu-item.d.ts.map b/priv/static/video.js/types/control-bar/text-track-controls/subs-caps-menu-item.d.ts.map
new file mode 100644
index 0000000..98ae51b
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/text-track-controls/subs-caps-menu-item.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"subs-caps-menu-item.d.ts","sourceRoot":"","sources":["../../../../src/js/control-bar/text-track-controls/subs-caps-menu-item.js"],"names":[],"mappings":";AAOA;;;;;GAKG;AACH;IAEE,qDAuBC;CACF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/text-track-controls/subtitles-button.d.ts b/priv/static/video.js/types/control-bar/text-track-controls/subtitles-button.d.ts
new file mode 100644
index 0000000..8800b12
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/text-track-controls/subtitles-button.d.ts
@@ -0,0 +1,45 @@
+export default SubtitlesButton;
+/**
+ * The button component for toggling and selecting subtitles
+ *
+ * @extends TextTrackButton
+ */
+declare class SubtitlesButton extends TextTrackButton {
+ /**
+ * Creates an instance of this class.
+ *
+ * @param { import('../../player').default } player
+ * The `Player` that this class should be attached to.
+ *
+ * @param {Object} [options]
+ * The key/value store of player options.
+ *
+ * @param {Function} [ready]
+ * The function to call when this component is ready.
+ */
+ constructor(player: import('../../player').default, options?: any, ready?: Function);
+ /**
+ * Builds the default DOM `className`.
+ *
+ * @return {string}
+ * The DOM `className` for this object.
+ */
+ buildCSSClass(): string;
+ buildWrapperCSSClass(): string;
+ /**
+ * `kind` of TextTrack to look for to associate it with this menu.
+ *
+ * @type {string}
+ * @private
+ */
+ private kind_;
+ /**
+ * The text that should display over the `SubtitlesButton`s controls. Added for localization.
+ *
+ * @type {string}
+ * @protected
+ */
+ protected controlText_: string;
+}
+import TextTrackButton from "./text-track-button.js";
+//# sourceMappingURL=subtitles-button.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/text-track-controls/subtitles-button.d.ts.map b/priv/static/video.js/types/control-bar/text-track-controls/subtitles-button.d.ts.map
new file mode 100644
index 0000000..252502f
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/text-track-controls/subtitles-button.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"subtitles-button.d.ts","sourceRoot":"","sources":["../../../../src/js/control-bar/text-track-controls/subtitles-button.js"],"names":[],"mappings":";AAMA;;;;GAIG;AACH;IAEE;;;;;;;;;;;OAWG;IACH,oBATY,OAAO,cAAc,EAAE,OAAO,mCAazC;IAED;;;;;OAKG;IACH,iBAHY,MAAM,CAKjB;IAED,+BAEC;IAGH;;;;;OAKG;IACH,cAA+B;IAE/B;;;;;OAKG;IACH,wBAHU,MAAM,CAGsB;CAhBrC"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/text-track-controls/text-track-button.d.ts b/priv/static/video.js/types/control-bar/text-track-controls/text-track-button.d.ts
new file mode 100644
index 0000000..7cb6de8
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/text-track-controls/text-track-button.d.ts
@@ -0,0 +1,31 @@
+export default TextTrackButton;
+/**
+ * The base class for buttons that toggle specific text track types (e.g. subtitles)
+ *
+ * @extends MenuButton
+ */
+declare class TextTrackButton {
+ /**
+ * Creates an instance of this class.
+ *
+ * @param { import('../../player').default } player
+ * The `Player` that this class should be attached to.
+ *
+ * @param {Object} [options={}]
+ * The key/value store of player options.
+ */
+ constructor(player: import('../../player').default, options?: any);
+ /**
+ * Create a menu item for each text track
+ *
+ * @param {TextTrackMenuItem[]} [items=[]]
+ * Existing array of items to use during creation
+ *
+ * @return {TextTrackMenuItem[]}
+ * Array of menu items that were created
+ */
+ createItems(items?: TextTrackMenuItem[], TrackMenuItem?: typeof TextTrackMenuItem): TextTrackMenuItem[];
+ kinds_: any[];
+}
+import TextTrackMenuItem from "./text-track-menu-item.js";
+//# sourceMappingURL=text-track-button.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/text-track-controls/text-track-button.d.ts.map b/priv/static/video.js/types/control-bar/text-track-controls/text-track-button.d.ts.map
new file mode 100644
index 0000000..e2e9163
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/text-track-controls/text-track-button.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"text-track-button.d.ts","sourceRoot":"","sources":["../../../../src/js/control-bar/text-track-controls/text-track-button.js"],"names":[],"mappings":";AAQA;;;;GAIG;AACH;IAEE;;;;;;;;OAQG;IACH,oBANY,OAAO,cAAc,EAAE,OAAO,iBAUzC;IAED;;;;;;;;OAQG;IACH,oBANW,iBAAiB,EAAE,6CAGlB,iBAAiB,EAAE,CAiD9B;IAzBG,cAA0B;CA2B/B"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/text-track-controls/text-track-menu-item.d.ts b/priv/static/video.js/types/control-bar/text-track-controls/text-track-menu-item.d.ts
new file mode 100644
index 0000000..ed93745
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/text-track-controls/text-track-menu-item.d.ts
@@ -0,0 +1,22 @@
+export default TextTrackMenuItem;
+/**
+ * The specific menu item type for selecting a language within a text track kind
+ *
+ * @extends MenuItem
+ */
+declare class TextTrackMenuItem extends MenuItem {
+ track: any;
+ kinds: any;
+ /**
+ * Handle text track list change
+ *
+ * @param {Event} event
+ * The `change` event that caused this function to be called.
+ *
+ * @listens TextTrackList#change
+ */
+ handleTracksChange(event: Event): void;
+ handleSelectedLanguageChange(event: any): void;
+}
+import MenuItem from "../../menu/menu-item.js";
+//# sourceMappingURL=text-track-menu-item.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/text-track-controls/text-track-menu-item.d.ts.map b/priv/static/video.js/types/control-bar/text-track-controls/text-track-menu-item.d.ts.map
new file mode 100644
index 0000000..7530ed2
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/text-track-controls/text-track-menu-item.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"text-track-menu-item.d.ts","sourceRoot":"","sources":["../../../../src/js/control-bar/text-track-controls/text-track-menu-item.js"],"names":[],"mappings":";AAQA;;;;GAIG;AACH;IAqBI,WAAkB;IAGlB,WAAiF;IA+FnF;;;;;;;OAOG;IACH,0BALW,KAAK,QAaf;IAED,+CAiBC;CASF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/time-controls/current-time-display.d.ts b/priv/static/video.js/types/control-bar/time-controls/current-time-display.d.ts
new file mode 100644
index 0000000..3d87a73
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/time-controls/current-time-display.d.ts
@@ -0,0 +1,35 @@
+export default CurrentTimeDisplay;
+/**
+ * Displays the current time
+ *
+ * @extends Component
+ */
+declare class CurrentTimeDisplay extends Component {
+ /**
+ * Update current time display
+ *
+ * @param {Event} [event]
+ * The `timeupdate` event that caused this function to run.
+ *
+ * @listens Player#timeupdate
+ */
+ updateContent(event?: Event): void;
+ /**
+ * The text that is added to the `CurrentTimeDisplay` for screen reader users.
+ *
+ * @type {string}
+ * @private
+ */
+ private labelText_;
+ /**
+ * The text that should display over the `CurrentTimeDisplay`s controls. Added to for localization.
+ *
+ * @type {string}
+ * @protected
+ *
+ * @deprecated in v7; controlText_ is not used in non-active display Components
+ */
+ protected controlText_: string;
+}
+import Component from "../../component.js";
+//# sourceMappingURL=current-time-display.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/time-controls/current-time-display.d.ts.map b/priv/static/video.js/types/control-bar/time-controls/current-time-display.d.ts.map
new file mode 100644
index 0000000..d382f26
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/time-controls/current-time-display.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"current-time-display.d.ts","sourceRoot":"","sources":["../../../../src/js/control-bar/time-controls/current-time-display.js"],"names":[],"mappings":";AAMA;;;;GAIG;AACH;IAYE;;;;;;;OAOG;IACH,sBALW,KAAK,QAgBf;IAGH;;;;;OAKG;IACH,mBAAuC;IAEvC;;;;;;;OAOG;IACH,wBALU,MAAM,CAKyB;CAlBxC"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/time-controls/duration-display.d.ts b/priv/static/video.js/types/control-bar/time-controls/duration-display.d.ts
new file mode 100644
index 0000000..b949d03
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/time-controls/duration-display.d.ts
@@ -0,0 +1,48 @@
+export default DurationDisplay;
+/**
+ * Displays the duration
+ *
+ * @extends Component
+ */
+declare class DurationDisplay extends Component {
+ /**
+ * Creates an instance of this class.
+ *
+ * @param { import('../../player').default } player
+ * The `Player` that this class should be attached to.
+ *
+ * @param {Object} [options]
+ * The key/value store of player options.
+ */
+ constructor(player: import('../../player').default, options?: any);
+ /**
+ * Update duration time display.
+ *
+ * @param {Event} [event]
+ * The `durationchange`, `timeupdate`, or `loadedmetadata` event that caused
+ * this function to be called.
+ *
+ * @listens Player#durationchange
+ * @listens Player#timeupdate
+ * @listens Player#loadedmetadata
+ */
+ updateContent(event?: Event): void;
+ /**
+ * The text that is added to the `DurationDisplay` for screen reader users.
+ *
+ * @type {string}
+ * @private
+ */
+ private labelText_;
+ /**
+ * The text that should display over the `DurationDisplay`s controls. Added to for localization.
+ *
+ * @type {string}
+ * @protected
+ *
+ * @deprecated in v7; controlText_ is not used in non-active display Components
+ */
+ protected controlText_: string;
+}
+import Component from "../../component.js";
+//# sourceMappingURL=duration-display.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/time-controls/duration-display.d.ts.map b/priv/static/video.js/types/control-bar/time-controls/duration-display.d.ts.map
new file mode 100644
index 0000000..49edf6e
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/time-controls/duration-display.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"duration-display.d.ts","sourceRoot":"","sources":["../../../../src/js/control-bar/time-controls/duration-display.js"],"names":[],"mappings":";AAMA;;;;GAIG;AACH;IAEE;;;;;;;;OAQG;IACH,oBANY,OAAO,cAAc,EAAE,OAAO,iBAyBzC;IAYD;;;;;;;;;;OAUG;IACH,sBARW,KAAK,QAYf;IAGH;;;;;OAKG;IACH,mBAAoC;IAEpC;;;;;;;OAOG;IACH,wBALU,MAAM,CAKsB;CAlBrC"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/time-controls/remaining-time-display.d.ts b/priv/static/video.js/types/control-bar/time-controls/remaining-time-display.d.ts
new file mode 100644
index 0000000..ed2a3ca
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/time-controls/remaining-time-display.d.ts
@@ -0,0 +1,53 @@
+export default RemainingTimeDisplay;
+/**
+ * Displays the time left in the video
+ *
+ * @extends Component
+ */
+declare class RemainingTimeDisplay extends Component {
+ /**
+ * Creates an instance of this class.
+ *
+ * @param { import('../../player').default } player
+ * The `Player` that this class should be attached to.
+ *
+ * @param {Object} [options]
+ * The key/value store of player options.
+ */
+ constructor(player: import('../../player').default, options?: any);
+ /**
+ * Create the `Component`'s DOM element with the "minus" character prepend to the time
+ *
+ * @return {Element}
+ * The element that was created.
+ */
+ createEl(): Element;
+ /**
+ * Update remaining time display.
+ *
+ * @param {Event} [event]
+ * The `timeupdate` or `durationchange` event that caused this to run.
+ *
+ * @listens Player#timeupdate
+ * @listens Player#durationchange
+ */
+ updateContent(event?: Event): void;
+ /**
+ * The text that is added to the `RemainingTimeDisplay` for screen reader users.
+ *
+ * @type {string}
+ * @private
+ */
+ private labelText_;
+ /**
+ * The text that should display over the `RemainingTimeDisplay`s controls. Added to for localization.
+ *
+ * @type {string}
+ * @protected
+ *
+ * @deprecated in v7; controlText_ is not used in non-active display Components
+ */
+ protected controlText_: string;
+}
+import Component from "../../component.js";
+//# sourceMappingURL=remaining-time-display.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/time-controls/remaining-time-display.d.ts.map b/priv/static/video.js/types/control-bar/time-controls/remaining-time-display.d.ts.map
new file mode 100644
index 0000000..ee8465b
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/time-controls/remaining-time-display.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"remaining-time-display.d.ts","sourceRoot":"","sources":["../../../../src/js/control-bar/time-controls/remaining-time-display.js"],"names":[],"mappings":";AAOA;;;;GAIG;AACH;IAEE;;;;;;;;OAQG;IACH,oBANY,OAAO,cAAc,EAAE,OAAO,iBASzC;IAYD;;;;;OAKG;IACH,YAHY,OAAO,CAUlB;IAED;;;;;;;;OAQG;IACH,sBANW,KAAK,QAwBf;IAGH;;;;;OAKG;IACH,mBAAyC;IAEzC;;;;;;;OAOG;IACH,wBALU,MAAM,CAK2B;CAlB1C"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/time-controls/time-display.d.ts b/priv/static/video.js/types/control-bar/time-controls/time-display.d.ts
new file mode 100644
index 0000000..decacdd
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/time-controls/time-display.d.ts
@@ -0,0 +1,72 @@
+export default TimeDisplay;
+/**
+ * Displays time information about the video
+ *
+ * @extends Component
+ */
+declare class TimeDisplay extends Component {
+ /**
+ * Creates an instance of this class.
+ *
+ * @param { import('../../player').default } player
+ * The `Player` that this class should be attached to.
+ *
+ * @param {Object} [options]
+ * The key/value store of player options.
+ */
+ constructor(player: import('../../player').default, options?: any);
+ /**
+ * Create the `Component`'s DOM element
+ *
+ * @return {Element}
+ * The element that was created.
+ */
+ createEl(): Element;
+ contentEl_: Element;
+ dispose(): void;
+ textNode_: any;
+ /**
+ * Updates the displayed time according to the `updateContent` function which is defined in the child class.
+ *
+ * @param {Event} [event]
+ * The `timeupdate`, `ended` or `seeking` (if enableSmoothSeeking is true) event that caused this function to be called.
+ */
+ update(event?: Event): void;
+ /**
+ * Updates the time display text node with a new time
+ *
+ * @param {number} [time=0] the time to update to
+ *
+ * @private
+ */
+ private updateTextNode_;
+ formattedTime_: any;
+ /**
+ * To be filled out in the child class, should update the displayed time
+ * in accordance with the fact that the current time has changed.
+ *
+ * @param {Event} [event]
+ * The `timeupdate` event that caused this to run.
+ *
+ * @listens Player#timeupdate
+ */
+ updateContent(event?: Event): void;
+ /**
+ * The text that is added to the `TimeDisplay` for screen reader users.
+ *
+ * @type {string}
+ * @private
+ */
+ private labelText_;
+ /**
+ * The text that should display over the `TimeDisplay`s controls. Added to for localization.
+ *
+ * @type {string}
+ * @protected
+ *
+ * @deprecated in v7; controlText_ is not used in non-active display Components
+ */
+ protected controlText_: string;
+}
+import Component from "../../component.js";
+//# sourceMappingURL=time-display.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/time-controls/time-display.d.ts.map b/priv/static/video.js/types/control-bar/time-controls/time-display.d.ts.map
new file mode 100644
index 0000000..5273ec2
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/time-controls/time-display.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"time-display.d.ts","sourceRoot":"","sources":["../../../../src/js/control-bar/time-controls/time-display.js"],"names":[],"mappings":";AASA;;;;GAIG;AACH;IAEE;;;;;;;;OAQG;IACH,oBANY,OAAO,cAAc,EAAE,OAAO,iBAWzC;IAED;;;;;OAKG;IACH,YAHY,OAAO,CA6BlB;IAZC,oBAQE;IAMJ,gBAKC;IAHC,eAAqB;IAKvB;;;;;OAKG;IACH,eAHW,KAAK,QASf;IAED;;;;;;OAMG;IACH,wBAkCC;IA3BC,oBAA0B;IA6B5B;;;;;;;;OAQG;IACH,sBALW,KAAK,QAKO;IAGzB;;;;;OAKG;IACH,mBAAgC;IAEhC;;;;;;;OAOG;IACH,wBALU,MAAM,CAKkB;CAlBjC"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/time-controls/time-divider.d.ts b/priv/static/video.js/types/control-bar/time-controls/time-divider.d.ts
new file mode 100644
index 0000000..26eda6d
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/time-controls/time-divider.d.ts
@@ -0,0 +1,18 @@
+export default TimeDivider;
+/**
+ * The separator between the current time and duration.
+ * Can be hidden if it's not needed in the design.
+ *
+ * @extends Component
+ */
+declare class TimeDivider extends Component {
+ /**
+ * Create the component's DOM element
+ *
+ * @return {Element}
+ * The element that was created.
+ */
+ createEl(): Element;
+}
+import Component from "../../component.js";
+//# sourceMappingURL=time-divider.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/time-controls/time-divider.d.ts.map b/priv/static/video.js/types/control-bar/time-controls/time-divider.d.ts.map
new file mode 100644
index 0000000..33d39cb
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/time-controls/time-divider.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"time-divider.d.ts","sourceRoot":"","sources":["../../../../src/js/control-bar/time-controls/time-divider.js"],"names":[],"mappings":";AAKA;;;;;GAKG;AACH;IAEE;;;;;OAKG;IACH,YAHY,OAAO,CAsBlB;CAEF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/track-button.d.ts b/priv/static/video.js/types/control-bar/track-button.d.ts
new file mode 100644
index 0000000..5894587
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/track-button.d.ts
@@ -0,0 +1,20 @@
+export default TrackButton;
+/**
+ * The base class for buttons that toggle specific track types (e.g. subtitles).
+ *
+ * @extends MenuButton
+ */
+declare class TrackButton extends MenuButton {
+ /**
+ * Creates an instance of this class.
+ *
+ * @param { import('./player').default } player
+ * The `Player` that this class should be attached to.
+ *
+ * @param {Object} [options]
+ * The key/value store of player options.
+ */
+ constructor(player: any, options?: any);
+}
+import MenuButton from "../menu/menu-button.js";
+//# sourceMappingURL=track-button.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/track-button.d.ts.map b/priv/static/video.js/types/control-bar/track-button.d.ts.map
new file mode 100644
index 0000000..fe723b3
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/track-button.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"track-button.d.ts","sourceRoot":"","sources":["../../../src/js/control-bar/track-button.js"],"names":[],"mappings":";AAOA;;;;GAIG;AACH;IAEE;;;;;;;;OAQG;IACH,wCAyBC;CAEF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/volume-control/check-mute-support.d.ts b/priv/static/video.js/types/control-bar/volume-control/check-mute-support.d.ts
new file mode 100644
index 0000000..b3469af
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/volume-control/check-mute-support.d.ts
@@ -0,0 +1,15 @@
+export default checkMuteSupport;
+/**
+ * Check if muting volume is supported and if it isn't hide the mute toggle
+ * button.
+ *
+ * @param { import('../../component').default } self
+ * A reference to the mute toggle button
+ *
+ * @param { import('../../player').default } player
+ * A reference to the player
+ *
+ * @private
+ */
+declare function checkMuteSupport(self: import('../../component').default, player: import('../../player').default): void;
+//# sourceMappingURL=check-mute-support.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/volume-control/check-mute-support.d.ts.map b/priv/static/video.js/types/control-bar/volume-control/check-mute-support.d.ts.map
new file mode 100644
index 0000000..05df133
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/volume-control/check-mute-support.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"check-mute-support.d.ts","sourceRoot":"","sources":["../../../../src/js/control-bar/volume-control/check-mute-support.js"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;AACH,wCARY,OAAO,iBAAiB,EAAE,OAAO,UAGjC,OAAO,cAAc,EAAE,OAAO,QAkBzC"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/volume-control/check-volume-support.d.ts b/priv/static/video.js/types/control-bar/volume-control/check-volume-support.d.ts
new file mode 100644
index 0000000..4989e4c
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/volume-control/check-volume-support.d.ts
@@ -0,0 +1,15 @@
+export default checkVolumeSupport;
+/**
+ * Check if volume control is supported and if it isn't hide the
+ * `Component` that was passed using the `vjs-hidden` class.
+ *
+ * @param { import('../../component').default } self
+ * The component that should be hidden if volume is unsupported
+ *
+ * @param { import('../../player').default } player
+ * A reference to the player
+ *
+ * @private
+ */
+declare function checkVolumeSupport(self: import('../../component').default, player: import('../../player').default): void;
+//# sourceMappingURL=check-volume-support.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/volume-control/check-volume-support.d.ts.map b/priv/static/video.js/types/control-bar/volume-control/check-volume-support.d.ts.map
new file mode 100644
index 0000000..09f941d
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/volume-control/check-volume-support.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"check-volume-support.d.ts","sourceRoot":"","sources":["../../../../src/js/control-bar/volume-control/check-volume-support.js"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;AACH,0CARY,OAAO,iBAAiB,EAAE,OAAO,UAGjC,OAAO,cAAc,EAAE,OAAO,QAkBzC"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/volume-control/mouse-volume-level-display.d.ts b/priv/static/video.js/types/control-bar/volume-control/mouse-volume-level-display.d.ts
new file mode 100644
index 0000000..0d9bee4
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/volume-control/mouse-volume-level-display.d.ts
@@ -0,0 +1,47 @@
+export default MouseVolumeLevelDisplay;
+/**
+ * The {@link MouseVolumeLevelDisplay} component tracks mouse movement over the
+ * {@link VolumeControl}. It displays an indicator and a {@link VolumeLevelTooltip}
+ * indicating the volume level which is represented by a given point in the
+ * {@link VolumeBar}.
+ *
+ * @extends Component
+ */
+declare class MouseVolumeLevelDisplay extends Component {
+ /**
+ * Creates an instance of this class.
+ *
+ * @param { import('../../player').default } player
+ * The {@link Player} that this class should be attached to.
+ *
+ * @param {Object} [options]
+ * The key/value store of player options.
+ */
+ constructor(player: import('../../player').default, options?: any);
+ /**
+ * Enquires updates to its own DOM as well as the DOM of its
+ * {@link VolumeLevelTooltip} child.
+ *
+ * @param {Object} rangeBarRect
+ * The `ClientRect` for the {@link VolumeBar} element.
+ *
+ * @param {number} rangeBarPoint
+ * A number from 0 to 1, representing a horizontal/vertical reference point
+ * from the left edge of the {@link VolumeBar}
+ *
+ * @param {boolean} vertical
+ * Referees to the Volume control position
+ * in the control bar{@link VolumeControl}
+ *
+ */
+ update(rangeBarRect: any, rangeBarPoint: number, vertical: boolean): void;
+ /**
+ * Create the DOM element for this class.
+ *
+ * @return {Element}
+ * The element that was created.
+ */
+ createEl(): Element;
+}
+import Component from "../../component.js";
+//# sourceMappingURL=mouse-volume-level-display.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/volume-control/mouse-volume-level-display.d.ts.map b/priv/static/video.js/types/control-bar/volume-control/mouse-volume-level-display.d.ts.map
new file mode 100644
index 0000000..13dd6f9
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/volume-control/mouse-volume-level-display.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"mouse-volume-level-display.d.ts","sourceRoot":"","sources":["../../../../src/js/control-bar/volume-control/mouse-volume-level-display.js"],"names":[],"mappings":";AAQA;;;;;;;GAOG;AACH;IAEE;;;;;;;;OAQG;IACH,oBANY,OAAO,cAAc,EAAE,OAAO,iBASzC;IAcD;;;;;;;;;;;;;;;OAeG;IACH,yCATW,MAAM,YAIN,OAAO,QAejB;IAtCD;;;;;OAKG;IACH,YAHY,OAAO,CAOlB;CA6BF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/volume-control/volume-bar.d.ts b/priv/static/video.js/types/control-bar/volume-control/volume-bar.d.ts
new file mode 100644
index 0000000..93686ce
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/volume-control/volume-bar.d.ts
@@ -0,0 +1,84 @@
+export default VolumeBar;
+/**
+ * The bar that contains the volume level and can be clicked on to adjust the level
+ *
+ * @extends Slider
+ */
+declare class VolumeBar extends Slider {
+ /**
+ * Create the `Component`'s DOM element
+ *
+ * @return {Element}
+ * The element that was created.
+ */
+ createEl(): Element;
+ /**
+ * Handle mouse down on volume bar
+ *
+ * @param {Event} event
+ * The `mousedown` event that caused this to run.
+ *
+ * @listens mousedown
+ */
+ handleMouseDown(event: Event): void;
+ /**
+ * Handle movement events on the {@link VolumeMenuButton}.
+ *
+ * @param {Event} event
+ * The event that caused this function to run.
+ *
+ * @listens mousemove
+ */
+ handleMouseMove(event: Event): void;
+ /**
+ * If the player is muted unmute it.
+ */
+ checkMuted(): void;
+ /**
+ * Get percent of volume level
+ *
+ * @return {number}
+ * Volume level percent as a decimal number.
+ */
+ getPercent(): number;
+ /**
+ * Increase volume level for keyboard users
+ */
+ stepForward(): void;
+ /**
+ * Decrease volume level for keyboard users
+ */
+ stepBack(): void;
+ /**
+ * Update ARIA accessibility attributes
+ *
+ * @param {Event} [event]
+ * The `volumechange` event that caused this function to run.
+ *
+ * @listens Player#volumechange
+ */
+ updateARIAAttributes(event?: Event): void;
+ /**
+ * Returns the current value of the player volume as a percentage
+ *
+ * @private
+ */
+ private volumeAsPercentage_;
+ /**
+ * When user starts dragging the VolumeBar, store the volume and listen for
+ * the end of the drag. When the drag ends, if the volume was set to zero,
+ * set lastVolume to the stored volume.
+ *
+ * @listens slideractive
+ * @private
+ */
+ private updateLastVolume_;
+ /**
+ * Call the update event for this Slider when this event happens on the player.
+ *
+ * @type {string}
+ */
+ playerEvent: string;
+}
+import Slider from "../../slider/slider.js";
+//# sourceMappingURL=volume-bar.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/volume-control/volume-bar.d.ts.map b/priv/static/video.js/types/control-bar/volume-control/volume-bar.d.ts.map
new file mode 100644
index 0000000..31161f1
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/volume-control/volume-bar.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"volume-bar.d.ts","sourceRoot":"","sources":["../../../../src/js/control-bar/volume-control/volume-bar.js"],"names":[],"mappings":";AAaA;;;;GAIG;AACH;IAkBE;;;;;OAKG;IACH,YAHY,OAAO,CAUlB;IAED;;;;;;;OAOG;IACH,uBALW,KAAK,QAWf;IAED;;;;;;;OAOG;IACH,uBALW,KAAK,QA6Bf;IAED;;OAEG;IACH,mBAIC;IAED;;;;;OAKG;IACH,cAHY,MAAM,CAQjB;IAED;;OAEG;IACH,oBAGC;IAED;;OAEG;IACH,iBAGC;IAED;;;;;;;OAOG;IACH,6BALW,KAAK,QAUf;IAED;;;;OAIG;IACH,4BAEC;IAED;;;;;;;OAOG;IACH,0BAQC;IAsBH;;;;OAIG;IACH,aAFU,MAAM,CAEe;CAzB9B"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/volume-control/volume-control.d.ts b/priv/static/video.js/types/control-bar/volume-control/volume-control.d.ts
new file mode 100644
index 0000000..f5bae0c
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/volume-control/volume-control.d.ts
@@ -0,0 +1,59 @@
+export default VolumeControl;
+/**
+ * The component for controlling the volume level
+ *
+ * @extends Component
+ */
+declare class VolumeControl extends Component {
+ /**
+ * Creates an instance of this class.
+ *
+ * @param { import('../../player').default } player
+ * The `Player` that this class should be attached to.
+ *
+ * @param {Object} [options={}]
+ * The key/value store of player options.
+ */
+ constructor(player: import('../../player').default, options?: any);
+ throttledHandleMouseMove: Function;
+ handleMouseUpHandler_: (e: any) => void;
+ /**
+ * Create the `Component`'s DOM element
+ *
+ * @return {Element}
+ * The element that was created.
+ */
+ createEl(): Element;
+ /**
+ * Handle `mousedown` or `touchstart` events on the `VolumeControl`.
+ *
+ * @param {Event} event
+ * `mousedown` or `touchstart` event that triggered this function
+ *
+ * @listens mousedown
+ * @listens touchstart
+ */
+ handleMouseDown(event: Event): void;
+ /**
+ * Handle `mouseup` or `touchend` events on the `VolumeControl`.
+ *
+ * @param {Event} event
+ * `mouseup` or `touchend` event that triggered this function.
+ *
+ * @listens touchend
+ * @listens mouseup
+ */
+ handleMouseUp(event: Event): void;
+ /**
+ * Handle `mousedown` or `touchstart` events on the `VolumeControl`.
+ *
+ * @param {Event} event
+ * `mousedown` or `touchstart` event that triggered this function
+ *
+ * @listens mousedown
+ * @listens touchstart
+ */
+ handleMouseMove(event: Event): void;
+}
+import Component from "../../component.js";
+//# sourceMappingURL=volume-control.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/volume-control/volume-control.d.ts.map b/priv/static/video.js/types/control-bar/volume-control/volume-control.d.ts.map
new file mode 100644
index 0000000..3344a78
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/volume-control/volume-control.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"volume-control.d.ts","sourceRoot":"","sources":["../../../../src/js/control-bar/volume-control/volume-control.js"],"names":[],"mappings":";AAWA;;;;GAIG;AACH;IAEE;;;;;;;;OAQG;IACH,oBANY,OAAO,cAAc,EAAE,OAAO,iBAyCzC;IApBC,mCAAoG;IACpG,wCAAyD;IAqB3D;;;;;OAKG;IACH,YAHY,OAAO,CAalB;IAED;;;;;;;;OAQG;IACH,uBANW,KAAK,QAaf;IAED;;;;;;;;OAQG;IACH,qBANW,KAAK,QAaf;IAED;;;;;;;;OAQG;IACH,uBANW,KAAK,QAQf;CACF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/volume-control/volume-level-tooltip.d.ts b/priv/static/video.js/types/control-bar/volume-control/volume-level-tooltip.d.ts
new file mode 100644
index 0000000..fc2dc9f
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/volume-control/volume-level-tooltip.d.ts
@@ -0,0 +1,73 @@
+export default VolumeLevelTooltip;
+/**
+ * Volume level tooltips display a volume above or side by side the volume bar.
+ *
+ * @extends Component
+ */
+declare class VolumeLevelTooltip extends Component {
+ /**
+ * Creates an instance of this class.
+ *
+ * @param { import('../../player').default } player
+ * The {@link Player} that this class should be attached to.
+ *
+ * @param {Object} [options]
+ * The key/value store of player options.
+ */
+ constructor(player: import('../../player').default, options?: any);
+ /**
+ * Updates the position of the tooltip relative to the `VolumeBar` and
+ * its content text.
+ *
+ * @param {Object} rangeBarRect
+ * The `ClientRect` for the {@link VolumeBar} element.
+ *
+ * @param {number} rangeBarPoint
+ * A number from 0 to 1, representing a horizontal/vertical reference point
+ * from the left edge of the {@link VolumeBar}
+ *
+ * @param {boolean} vertical
+ * Referees to the Volume control position
+ * in the control bar{@link VolumeControl}
+ *
+ */
+ update(rangeBarRect: any, rangeBarPoint: number, vertical: boolean, content: any): void;
+ /**
+ * Create the volume tooltip DOM element
+ *
+ * @return {Element}
+ * The element that was created.
+ */
+ createEl(): Element;
+ /**
+ * Write the volume to the tooltip DOM element.
+ *
+ * @param {string} content
+ * The formatted volume for the tooltip.
+ */
+ write(content: string): void;
+ /**
+ * Updates the position of the volume tooltip relative to the `VolumeBar`.
+ *
+ * @param {Object} rangeBarRect
+ * The `ClientRect` for the {@link VolumeBar} element.
+ *
+ * @param {number} rangeBarPoint
+ * A number from 0 to 1, representing a horizontal/vertical reference point
+ * from the left edge of the {@link VolumeBar}
+ *
+ * @param {boolean} vertical
+ * Referees to the Volume control position
+ * in the control bar{@link VolumeControl}
+ *
+ * @param {number} volume
+ * The volume level to update the tooltip to
+ *
+ * @param {Function} cb
+ * A function that will be called during the request animation frame
+ * for tooltips that need to do additional animations from the default
+ */
+ updateVolume(rangeBarRect: any, rangeBarPoint: number, vertical: boolean, volume: number, cb: Function): void;
+}
+import Component from "../../component";
+//# sourceMappingURL=volume-level-tooltip.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/volume-control/volume-level-tooltip.d.ts.map b/priv/static/video.js/types/control-bar/volume-control/volume-level-tooltip.d.ts.map
new file mode 100644
index 0000000..517782d
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/volume-control/volume-level-tooltip.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"volume-level-tooltip.d.ts","sourceRoot":"","sources":["../../../../src/js/control-bar/volume-control/volume-level-tooltip.js"],"names":[],"mappings":";AAOA;;;;GAIG;AACH;IAEE;;;;;;;;OAQG;IACH,oBANY,OAAO,cAAc,EAAE,OAAO,iBASzC;IAgBD;;;;;;;;;;;;;;;OAeG;IACH,yCATW,MAAM,YAIN,OAAO,sBAmCjB;IA5DD;;;;;OAKG;IACH,YAHY,OAAO,CASlB;IAkDD;;;;;OAKG;IACH,eAHW,MAAM,QAKhB;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,+CAfW,MAAM,YAIN,OAAO,UAIP,MAAM,sBAchB;CACF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/volume-control/volume-level.d.ts b/priv/static/video.js/types/control-bar/volume-control/volume-level.d.ts
new file mode 100644
index 0000000..c881813
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/volume-control/volume-level.d.ts
@@ -0,0 +1,17 @@
+export default VolumeLevel;
+/**
+ * Shows volume level
+ *
+ * @extends Component
+ */
+declare class VolumeLevel extends Component {
+ /**
+ * Create the `Component`'s DOM element
+ *
+ * @return {Element}
+ * The element that was created.
+ */
+ createEl(): Element;
+}
+import Component from "../../component.js";
+//# sourceMappingURL=volume-level.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/volume-control/volume-level.d.ts.map b/priv/static/video.js/types/control-bar/volume-control/volume-level.d.ts.map
new file mode 100644
index 0000000..a6b4995
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/volume-control/volume-level.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"volume-level.d.ts","sourceRoot":"","sources":["../../../../src/js/control-bar/volume-control/volume-level.js"],"names":[],"mappings":";AAKA;;;;GAIG;AACH;IAEE;;;;;OAKG;IACH,YAHY,OAAO,CAelB;CAEF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/volume-panel.d.ts b/priv/static/video.js/types/control-bar/volume-panel.d.ts
new file mode 100644
index 0000000..3ea22b8
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/volume-panel.d.ts
@@ -0,0 +1,97 @@
+export default VolumePanel;
+/**
+ * A Component to contain the MuteToggle and VolumeControl so that
+ * they can work together.
+ *
+ * @extends Component
+ */
+declare class VolumePanel extends Component {
+ /**
+ * Creates an instance of this class.
+ *
+ * @param { import('./player').default } player
+ * The `Player` that this class should be attached to.
+ *
+ * @param {Object} [options={}]
+ * The key/value store of player options.
+ */
+ constructor(player: any, options?: any);
+ handleKeyPressHandler_: (e: any) => void;
+ /**
+ * Add vjs-slider-active class to the VolumePanel
+ *
+ * @listens VolumeControl#slideractive
+ * @private
+ */
+ private sliderActive_;
+ /**
+ * Removes vjs-slider-active class to the VolumePanel
+ *
+ * @listens VolumeControl#sliderinactive
+ * @private
+ */
+ private sliderInactive_;
+ /**
+ * Adds vjs-hidden or vjs-mute-toggle-only to the VolumePanel
+ * depending on MuteToggle and VolumeControl state
+ *
+ * @listens Player#loadstart
+ * @private
+ */
+ private volumePanelState_;
+ /**
+ * Create the `Component`'s DOM element
+ *
+ * @return {Element}
+ * The element that was created.
+ */
+ createEl(): Element;
+ /**
+ * Dispose of the `volume-panel` and all child components.
+ */
+ dispose(): void;
+ /**
+ * Handles `keyup` events on the `VolumeControl`, looking for ESC, which closes
+ * the volume panel and sets focus on `MuteToggle`.
+ *
+ * @param {Event} event
+ * The `keyup` event that caused this function to be called.
+ *
+ * @listens keyup
+ */
+ handleVolumeControlKeyUp(event: Event): void;
+ /**
+ * This gets called when a `VolumePanel` gains hover via a `mouseover` event.
+ * Turns on listening for `mouseover` event. When they happen it
+ * calls `this.handleMouseOver`.
+ *
+ * @param {Event} event
+ * The `mouseover` event that caused this function to be called.
+ *
+ * @listens mouseover
+ */
+ handleMouseOver(event: Event): void;
+ /**
+ * This gets called when a `VolumePanel` gains hover via a `mouseout` event.
+ * Turns on listening for `mouseout` event. When they happen it
+ * calls `this.handleMouseOut`.
+ *
+ * @param {Event} event
+ * The `mouseout` event that caused this function to be called.
+ *
+ * @listens mouseout
+ */
+ handleMouseOut(event: Event): void;
+ /**
+ * Handles `keyup` event on the document or `keydown` event on the `VolumePanel`,
+ * looking for ESC, which hides the `VolumeControl`.
+ *
+ * @param {Event} event
+ * The keypress that triggered this event.
+ *
+ * @listens keydown | keyup
+ */
+ handleKeyPress(event: Event): void;
+}
+import Component from "../component.js";
+//# sourceMappingURL=volume-panel.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/control-bar/volume-panel.d.ts.map b/priv/static/video.js/types/control-bar/volume-panel.d.ts.map
new file mode 100644
index 0000000..0c8e0c5
--- /dev/null
+++ b/priv/static/video.js/types/control-bar/volume-panel.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"volume-panel.d.ts","sourceRoot":"","sources":["../../../src/js/control-bar/volume-panel.js"],"names":[],"mappings":";AAaA;;;;;GAKG;AACH;IAEE;;;;;;;;OAQG;IACH,wCA+BC;IAdC,yCAA2D;IAgB7D;;;;;OAKG;IACH,sBAEC;IAED;;;;;OAKG;IACH,wBAEC;IAED;;;;;;OAMG;IACH,0BAYC;IAED;;;;;OAKG;IACH,YAHY,OAAO,CAalB;IAED;;OAEG;IACH,gBAGC;IAED;;;;;;;;OAQG;IACH,gCALW,KAAK,QASf;IAED;;;;;;;;;OASG;IACH,uBALW,KAAK,QAQf;IAED;;;;;;;;;OASG;IACH,sBALW,KAAK,QAQf;IAED;;;;;;;;OAQG;IACH,sBALW,KAAK,QASf;CACF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/debug.d.ts b/priv/static/video.js/types/debug.d.ts
new file mode 100644
index 0000000..11f8fc4
--- /dev/null
+++ b/priv/static/video.js/types/debug.d.ts
@@ -0,0 +1,3 @@
+export default videojs;
+import videojs from "./video";
+//# sourceMappingURL=debug.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/debug.d.ts.map b/priv/static/video.js/types/debug.d.ts.map
new file mode 100644
index 0000000..546d7fe
--- /dev/null
+++ b/priv/static/video.js/types/debug.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../src/js/debug.js"],"names":[],"mappings":""} \ No newline at end of file
diff --git a/priv/static/video.js/types/error-display.d.ts b/priv/static/video.js/types/error-display.d.ts
new file mode 100644
index 0000000..a6bf352
--- /dev/null
+++ b/priv/static/video.js/types/error-display.d.ts
@@ -0,0 +1,28 @@
+export default ErrorDisplay;
+/**
+ * A display that indicates an error has occurred. This means that the video
+ * is unplayable.
+ *
+ * @extends ModalDialog
+ */
+declare class ErrorDisplay extends ModalDialog {
+ /**
+ * Creates an instance of this class.
+ *
+ * @param { import('./player').default } player
+ * The `Player` that this class should be attached to.
+ *
+ * @param {Object} [options]
+ * The key/value store of player options.
+ */
+ constructor(player: import('./player').default, options?: any);
+ /**
+ * Gets the localized error message based on the `Player`s error.
+ *
+ * @return {string}
+ * The `Player`s error message localized or an empty string.
+ */
+ content(): string;
+}
+import ModalDialog from "./modal-dialog";
+//# sourceMappingURL=error-display.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/error-display.d.ts.map b/priv/static/video.js/types/error-display.d.ts.map
new file mode 100644
index 0000000..24d8008
--- /dev/null
+++ b/priv/static/video.js/types/error-display.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"error-display.d.ts","sourceRoot":"","sources":["../../src/js/error-display.js"],"names":[],"mappings":";AAMA;;;;;GAKG;AACH;IAEE;;;;;;;;OAQG;IACH,oBANa,OAAO,UAAU,EAAE,OAAO,iBAWtC;IAcD;;;;;OAKG;IACH,WAHY,MAAM,CAOjB;CACF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/event-target.d.ts b/priv/static/video.js/types/event-target.d.ts
new file mode 100644
index 0000000..ab99296
--- /dev/null
+++ b/priv/static/video.js/types/event-target.d.ts
@@ -0,0 +1,131 @@
+export default EventTarget;
+/**
+ * A Custom DOM event.
+ */
+export type Event = CustomEvent;
+/**
+ * All event listeners should follow the following format.
+ */
+export type EventListener = () => any;
+/**
+ * `EventTarget` is a class that can have the same API as the DOM `EventTarget`. It
+ * adds shorthand functions that wrap around lengthy functions. For example:
+ * the `on` function is a wrapper around `addEventListener`.
+ *
+ * @see [EventTarget Spec]{@link https://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-EventTarget}
+ * @class EventTarget
+ */
+declare class EventTarget {
+ /**
+ * Adds an `event listener` to an instance of an `EventTarget`. An `event listener` is a
+ * function that will get called when an event with a certain name gets triggered.
+ *
+ * @param {string|string[]} type
+ * An event name or an array of event names.
+ *
+ * @param {Function} fn
+ * The function to call with `EventTarget`s
+ */
+ on(type: string | string[], fn: Function): void;
+ addEventListener: any;
+ /**
+ * Removes an `event listener` for a specific event from an instance of `EventTarget`.
+ * This makes it so that the `event listener` will no longer get called when the
+ * named event happens.
+ *
+ * @param {string|string[]} type
+ * An event name or an array of event names.
+ *
+ * @param {Function} fn
+ * The function to remove.
+ */
+ off(type: string | string[], fn: Function): void;
+ /**
+ * This function will add an `event listener` that gets triggered only once. After the
+ * first trigger it will get removed. This is like adding an `event listener`
+ * with {@link EventTarget#on} that calls {@link EventTarget#off} on itself.
+ *
+ * @param {string|string[]} type
+ * An event name or an array of event names.
+ *
+ * @param {Function} fn
+ * The function to be called once for each event name.
+ */
+ one(type: string | string[], fn: Function): void;
+ /**
+ * This function will add an `event listener` that gets triggered only once and is
+ * removed from all events. This is like adding an array of `event listener`s
+ * with {@link EventTarget#on} that calls {@link EventTarget#off} on all events the
+ * first time it is triggered.
+ *
+ * @param {string|string[]} type
+ * An event name or an array of event names.
+ *
+ * @param {Function} fn
+ * The function to be called once for each event name.
+ */
+ any(type: string | string[], fn: Function): void;
+ /**
+ * This function causes an event to happen. This will then cause any `event listeners`
+ * that are waiting for that event, to get called. If there are no `event listeners`
+ * for an event then nothing will happen.
+ *
+ * If the name of the `Event` that is being triggered is in `EventTarget.allowedEvents_`.
+ * Trigger will also call the `on` + `uppercaseEventName` function.
+ *
+ * Example:
+ * 'click' is in `EventTarget.allowedEvents_`, so, trigger will attempt to call
+ * `onClick` if it exists.
+ *
+ * @param {string|EventTarget~Event|Object} event
+ * The name of the event, an `Event`, or an object with a key of type set to
+ * an event name.
+ */
+ trigger(event: any): void;
+ queueTrigger(event: any): void;
+ /**
+ * A Custom DOM event.
+ *
+ * @typedef {CustomEvent} Event
+ * @see [Properties]{@link https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent}
+ */
+ /**
+ * All event listeners should follow the following format.
+ *
+ * @callback EventListener
+ * @this {EventTarget}
+ *
+ * @param {Event} event
+ * the event that triggered this function
+ *
+ * @param {Object} [hash]
+ * hash of data sent during the event
+ */
+ /**
+ * An object containing event names as keys and booleans as values.
+ *
+ * > NOTE: If an event name is set to a true value here {@link EventTarget#trigger}
+ * will have extra functionality. See that function for more information.
+ *
+ * @property EventTarget.prototype.allowedEvents_
+ * @protected
+ */
+ protected allowedEvents_: {};
+ /**
+ * An alias of {@link EventTarget#off}. Allows `EventTarget` to mimic
+ * the standard DOM API.
+ *
+ * @function
+ * @see {@link EventTarget#off}
+ */
+ removeEventListener: (type: string | string[], fn: Function) => void;
+ /**
+ * An alias of {@link EventTarget#trigger}. Allows `EventTarget` to mimic
+ * the standard DOM API.
+ *
+ * @function
+ * @see {@link EventTarget#trigger}
+ */
+ dispatchEvent: (event: any) => void;
+}
+//# sourceMappingURL=event-target.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/event-target.d.ts.map b/priv/static/video.js/types/event-target.d.ts.map
new file mode 100644
index 0000000..40c9429
--- /dev/null
+++ b/priv/static/video.js/types/event-target.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"event-target.d.ts","sourceRoot":"","sources":["../../src/js/event-target.js"],"names":[],"mappings":";;;;oBAmKa,WAAW;;;;;AA3JxB;;;;;;;GAOG;AACH;IACE;;;;;;;;;OASG;IACH,SANW,MAAM,GAAC,MAAM,EAAE,sBAczB;IAHC,sBAAiC;IAInC;;;;;;;;;;OAUG;IACH,UANW,MAAM,GAAC,MAAM,EAAE,sBAQzB;IACD;;;;;;;;;;OAUG;IACH,UANW,MAAM,GAAC,MAAM,EAAE,sBAczB;IACD;;;;;;;;;;;OAWG;IACH,UANW,MAAM,GAAC,MAAM,EAAE,sBAczB;IACD;;;;;;;;;;;;;;;OAeG;IACH,0BAkBC;IACD,+BA+BC;IAGH;;;;;OAKG;IAEH;;;;;;;;;;;OAWG;IAEH;;;;;;;;OAQG;IACH,6BAAoC;IAWpC;;;;;;OAMG;IACH,4BAtKa,MAAM,GAAC,MAAM,EAAE,wBAsKa;IAEzC;;;;;;OAMG;IACH,oCAAmC;CA1DlC"} \ No newline at end of file
diff --git a/priv/static/video.js/types/fullscreen-api.d.ts b/priv/static/video.js/types/fullscreen-api.d.ts
new file mode 100644
index 0000000..b631368
--- /dev/null
+++ b/priv/static/video.js/types/fullscreen-api.d.ts
@@ -0,0 +1,10 @@
+export default FullscreenApi;
+/**
+ * Store the browser-specific methods for the fullscreen API.
+ *
+ * @type {Object}
+ * @see [Specification]{@link https://fullscreen.spec.whatwg.org}
+ * @see [Map Approach From Screenfull.js]{@link https://github.com/sindresorhus/screenfull.js}
+ */
+declare const FullscreenApi: any;
+//# sourceMappingURL=fullscreen-api.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/fullscreen-api.d.ts.map b/priv/static/video.js/types/fullscreen-api.d.ts.map
new file mode 100644
index 0000000..30bf9fe
--- /dev/null
+++ b/priv/static/video.js/types/fullscreen-api.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"fullscreen-api.d.ts","sourceRoot":"","sources":["../../src/js/fullscreen-api.js"],"names":[],"mappings":";AAMA;;;;;;GAMG;AACH,iCAEE"} \ No newline at end of file
diff --git a/priv/static/video.js/types/index.d.ts b/priv/static/video.js/types/index.d.ts
new file mode 100644
index 0000000..ca184a2
--- /dev/null
+++ b/priv/static/video.js/types/index.d.ts
@@ -0,0 +1,3 @@
+export default videojs;
+import videojs from "./video";
+//# sourceMappingURL=index.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/index.d.ts.map b/priv/static/video.js/types/index.d.ts.map
new file mode 100644
index 0000000..71ad5e7
--- /dev/null
+++ b/priv/static/video.js/types/index.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/js/index.js"],"names":[],"mappings":""} \ No newline at end of file
diff --git a/priv/static/video.js/types/live-tracker.d.ts b/priv/static/video.js/types/live-tracker.d.ts
new file mode 100644
index 0000000..326b54c
--- /dev/null
+++ b/priv/static/video.js/types/live-tracker.d.ts
@@ -0,0 +1,170 @@
+export default LiveTracker;
+/**
+ * A class for checking live current time and determining when the player
+ * is at or behind the live edge.
+ */
+declare class LiveTracker extends Component {
+ /**
+ * Creates an instance of this class.
+ *
+ * @param { import('./player').default } player
+ * The `Player` that this class should be attached to.
+ *
+ * @param {Object} [options]
+ * The key/value store of player options.
+ *
+ * @param {number} [options.trackingThreshold=20]
+ * Number of seconds of live window (seekableEnd - seekableStart) that
+ * media needs to have before the liveui will be shown.
+ *
+ * @param {number} [options.liveTolerance=15]
+ * Number of seconds behind live that we have to be
+ * before we will be considered non-live. Note that this will only
+ * be used when playing at the live edge. This allows large seekable end
+ * changes to not effect whether we are live or not.
+ */
+ constructor(player: import('./player').default, options?: {
+ trackingThreshold?: number;
+ liveTolerance?: number;
+ });
+ trackLiveHandler_: () => void;
+ handlePlay_: (e: any) => void;
+ handleFirstTimeupdate_: (e: any) => void;
+ handleSeeked_: (e: any) => void;
+ seekToLiveEdge_: (e: any) => void;
+ /**
+ * all the functionality for tracking when seek end changes
+ * and for tracking how far past seek end we should be
+ */
+ trackLive_(): void;
+ lastTime_: number;
+ pastSeekEnd_: number;
+ behindLiveEdge_: any;
+ /**
+ * handle a durationchange event on the player
+ * and start/stop tracking accordingly.
+ */
+ handleDurationchange(): void;
+ /**
+ * start/stop tracking
+ */
+ toggleTracking(): void;
+ /**
+ * start tracking live playback
+ */
+ startTracking(): void;
+ timeupdateSeen_: any;
+ trackingInterval_: number;
+ /**
+ * handle the first timeupdate on the player if it wasn't already playing
+ * when live tracker started tracking.
+ */
+ handleFirstTimeupdate(): void;
+ /**
+ * Keep track of what time a seek starts, and listen for seeked
+ * to find where a seek ends.
+ */
+ handleSeeked(): void;
+ seekedBehindLive_: boolean;
+ nextSeekedFromUser_: boolean;
+ /**
+ * handle the first play on the player, and make sure that we seek
+ * right to the live edge.
+ */
+ handlePlay(): void;
+ /**
+ * Stop tracking, and set all internal variables to
+ * their initial value.
+ */
+ reset_(): void;
+ lastSeekEnd_: any;
+ /**
+ * The next seeked event is from the user. Meaning that any seek
+ * > 2s behind live will be considered behind live for real and
+ * liveTolerance will be ignored.
+ */
+ nextSeekedFromUser(): void;
+ /**
+ * stop tracking live playback
+ */
+ stopTracking(): void;
+ /**
+ * A helper to get the player seekable end
+ * so that we don't have to null check everywhere
+ *
+ * @return {number}
+ * The furthest seekable end or Infinity.
+ */
+ seekableEnd(): number;
+ /**
+ * A helper to get the player seekable start
+ * so that we don't have to null check everywhere
+ *
+ * @return {number}
+ * The earliest seekable start or 0.
+ */
+ seekableStart(): number;
+ /**
+ * Get the live time window aka
+ * the amount of time between seekable start and
+ * live current time.
+ *
+ * @return {number}
+ * The amount of seconds that are seekable in
+ * the live video.
+ */
+ liveWindow(): number;
+ /**
+ * Determines if the player is live, only checks if this component
+ * is tracking live playback or not
+ *
+ * @return {boolean}
+ * Whether liveTracker is tracking
+ */
+ isLive(): boolean;
+ /**
+ * Determines if currentTime is at the live edge and won't fall behind
+ * on each seekableendchange
+ *
+ * @return {boolean}
+ * Whether playback is at the live edge
+ */
+ atLiveEdge(): boolean;
+ /**
+ * get what we expect the live current time to be
+ *
+ * @return {number}
+ * The expected live current time
+ */
+ liveCurrentTime(): number;
+ /**
+ * The number of seconds that have occurred after seekable end
+ * changed. This will be reset to 0 once seekable end changes.
+ *
+ * @return {number}
+ * Seconds past the current seekable end
+ */
+ pastSeekEnd(): number;
+ /**
+ * If we are currently behind the live edge, aka currentTime will be
+ * behind on a seekableendchange
+ *
+ * @return {boolean}
+ * If we are behind the live edge
+ */
+ behindLiveEdge(): boolean;
+ /**
+ * Whether live tracker is currently tracking or not.
+ */
+ isTracking(): boolean;
+ /**
+ * Seek to the live edge if we are behind the live edge
+ */
+ seekToLiveEdge(): void;
+ /**
+ * Dispose of liveTracker
+ */
+ dispose(): void;
+}
+import Component from "./component.js";
+//# sourceMappingURL=live-tracker.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/live-tracker.d.ts.map b/priv/static/video.js/types/live-tracker.d.ts.map
new file mode 100644
index 0000000..495f205
--- /dev/null
+++ b/priv/static/video.js/types/live-tracker.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"live-tracker.d.ts","sourceRoot":"","sources":["../../src/js/live-tracker.js"],"names":[],"mappings":";AAaA;;;GAGG;AACH;IAEE;;;;;;;;;;;;;;;;;;OAkBG;IACH,oBAhBY,OAAO,UAAU,EAAE,OAAO;QAMV,iBAAiB,GAAlC,MAAM;QAIW,aAAa,GAA9B,MAAM;OAwBhB;IAZC,8BAAgD;IAChD,8BAA4C;IAC5C,yCAAkE;IAClE,gCAAgD;IAChD,kCAAoD;IAUtD;;;OAGG;IACH,mBAqCC;IA1BC,kBAAwB;IAExB,qBAAkD;IAqBhD,qBAA+B;IAKnC;;;OAGG;IACH,6BAEC;IAED;;OAEG;IACH,uBAUC;IAED;;OAEG;IACH,sBAuBC;IAdG,qBAAgD;IAGlD,0BAA6F;IAa/F;;;OAGG;IACH,8BAGC;IAED;;;OAGG;IACH,qBAMC;IAHC,2BAAiE;IACjE,6BAAgC;IAIlC;;;OAGG;IACH,mBAEC;IAED;;;OAGG;IACH,eAiBC;IAdC,kBAAsB;IAgBxB;;;;OAIG;IACH,2BAEC;IAED;;OAEG;IACH,qBAMC;IAED;;;;;;OAMG;IACH,eAHY,MAAM,CAejB;IAED;;;;;;OAMG;IACH,iBAHY,MAAM,CAejB;IAED;;;;;;;;OAQG;IACH,cAJY,MAAM,CAajB;IAED;;;;;;OAMG;IACH,UAHY,OAAO,CAKlB;IAED;;;;;;OAMG;IACH,cAHY,OAAO,CAKlB;IAED;;;;;OAKG;IACH,mBAHY,MAAM,CAKjB;IAED;;;;;;OAMG;IACH,eAHY,MAAM,CAWjB;IAED;;;;;;OAMG;IACH,kBAHY,OAAO,CAKlB;IAED;;OAEG;IACH,sBAEC;IAED;;OAEG;IACH,uBAQC;IAED;;OAEG;IACH,gBAGC;CACF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/loading-spinner.d.ts b/priv/static/video.js/types/loading-spinner.d.ts
new file mode 100644
index 0000000..f575057
--- /dev/null
+++ b/priv/static/video.js/types/loading-spinner.d.ts
@@ -0,0 +1,17 @@
+export default LoadingSpinner;
+/**
+ * A loading spinner for use during waiting/loading events.
+ *
+ * @extends Component
+ */
+declare class LoadingSpinner extends Component {
+ /**
+ * Create the `LoadingSpinner`s DOM element.
+ *
+ * @return {Element}
+ * The dom element that gets created.
+ */
+ createEl(): Element;
+}
+import Component from "./component";
+//# sourceMappingURL=loading-spinner.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/loading-spinner.d.ts.map b/priv/static/video.js/types/loading-spinner.d.ts.map
new file mode 100644
index 0000000..4defc00
--- /dev/null
+++ b/priv/static/video.js/types/loading-spinner.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"loading-spinner.d.ts","sourceRoot":"","sources":["../../src/js/loading-spinner.js"],"names":[],"mappings":";AAMA;;;;GAIG;AACH;IAEE;;;;;OAKG;IACH,YAHY,OAAO,CAmBlB;CAUF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/media-error.d.ts b/priv/static/video.js/types/media-error.d.ts
new file mode 100644
index 0000000..5afa267
--- /dev/null
+++ b/priv/static/video.js/types/media-error.d.ts
@@ -0,0 +1,134 @@
+export default MediaError;
+/**
+ * An object containing an error type, as well as other information regarding the error.
+ */
+export type ErrorMetadata = {
+ [key: string]: any;
+ errorType: string;
+};
+/**
+ * A Custom `MediaError` class which mimics the standard HTML5 `MediaError` class.
+ *
+ * @param {number|string|Object|MediaError} value
+ * This can be of multiple types:
+ * - number: should be a standard error code
+ * - string: an error message (the code will be 0)
+ * - Object: arbitrary properties
+ * - `MediaError` (native): used to populate a video.js `MediaError` object
+ * - `MediaError` (video.js): will return itself if it's already a
+ * video.js `MediaError` object.
+ *
+ * @see [MediaError Spec]{@link https://dev.w3.org/html5/spec-author-view/video.html#mediaerror}
+ * @see [Encrypted MediaError Spec]{@link https://www.w3.org/TR/2013/WD-encrypted-media-20130510/#error-codes}
+ *
+ * @class MediaError
+ */
+declare function MediaError(value: number | string | any | MediaError): MediaError;
+declare class MediaError {
+ /**
+ * A Custom `MediaError` class which mimics the standard HTML5 `MediaError` class.
+ *
+ * @param {number|string|Object|MediaError} value
+ * This can be of multiple types:
+ * - number: should be a standard error code
+ * - string: an error message (the code will be 0)
+ * - Object: arbitrary properties
+ * - `MediaError` (native): used to populate a video.js `MediaError` object
+ * - `MediaError` (video.js): will return itself if it's already a
+ * video.js `MediaError` object.
+ *
+ * @see [MediaError Spec]{@link https://dev.w3.org/html5/spec-author-view/video.html#mediaerror}
+ * @see [Encrypted MediaError Spec]{@link https://www.w3.org/TR/2013/WD-encrypted-media-20130510/#error-codes}
+ *
+ * @class MediaError
+ */
+ constructor(value: number | string | any | MediaError);
+ code: number;
+ message: string;
+ /**
+ * An optional status code that can be set by plugins to allow even more detail about
+ * the error. For example a plugin might provide a specific HTTP status code and an
+ * error message for that code. Then when the plugin gets that error this class will
+ * know how to display an error message for it. This allows a custom message to show
+ * up on the `Player` error overlay.
+ *
+ * @type {Array}
+ */
+ status: any[];
+ /**
+ * An object containing an error type, as well as other information regarding the error.
+ *
+ * @typedef {{errorType: string, [key: string]: any}} ErrorMetadata
+ */
+ /**
+ * An optional object to give more detail about the error. This can be used to give
+ * a higher level of specificity to an error versus the more generic MediaError codes.
+ * `metadata` expects an `errorType` string that should align with the values from videojs.Error.
+ *
+ * @type {ErrorMetadata}
+ */
+ metadata: ErrorMetadata;
+ /**
+ * W3C error code for any custom error.
+ *
+ * @member MediaError.MEDIA_ERR_CUSTOM
+ * @constant {number}
+ * @default 0
+ */
+ MEDIA_ERR_CUSTOM: number;
+ /**
+ * W3C error code for media error aborted.
+ *
+ * @member MediaError.MEDIA_ERR_ABORTED
+ * @constant {number}
+ * @default 1
+ */
+ MEDIA_ERR_ABORTED: number;
+ /**
+ * W3C error code for any network error.
+ *
+ * @member MediaError.MEDIA_ERR_NETWORK
+ * @constant {number}
+ * @default 2
+ */
+ MEDIA_ERR_NETWORK: number;
+ /**
+ * W3C error code for any decoding error.
+ *
+ * @member MediaError.MEDIA_ERR_DECODE
+ * @constant {number}
+ * @default 3
+ */
+ MEDIA_ERR_DECODE: number;
+ /**
+ * W3C error code for any time that a source is not supported.
+ *
+ * @member MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED
+ * @constant {number}
+ * @default 4
+ */
+ MEDIA_ERR_SRC_NOT_SUPPORTED: number;
+ /**
+ * W3C error code for any time that a source is encrypted.
+ *
+ * @member MediaError.MEDIA_ERR_ENCRYPTED
+ * @constant {number}
+ * @default 5
+ */
+ MEDIA_ERR_ENCRYPTED: number;
+}
+declare namespace MediaError {
+ /**
+ * *
+ */
+ type errorTypes = any[];
+ const errorTypes: string[];
+ const defaultMessages: any[];
+ const MEDIA_ERR_CUSTOM: number;
+ const MEDIA_ERR_ABORTED: number;
+ const MEDIA_ERR_NETWORK: number;
+ const MEDIA_ERR_DECODE: number;
+ const MEDIA_ERR_SRC_NOT_SUPPORTED: number;
+ const MEDIA_ERR_ENCRYPTED: number;
+}
+//# sourceMappingURL=media-error.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/media-error.d.ts.map b/priv/static/video.js/types/media-error.d.ts.map
new file mode 100644
index 0000000..987b139
--- /dev/null
+++ b/priv/static/video.js/types/media-error.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"media-error.d.ts","sourceRoot":"","sources":["../../src/js/media-error.js"],"names":[],"mappings":";;;;;;eAgFyB,MAAM;;AA3E/B;;;;;;;;;;;;;;;;GAgBG;AACH,mCAdW,MAAM,GAAC,MAAM,SAAQ,UAAU,cAyCzC;;IA5CD;;;;;;;;;;;;;;;;OAgBG;IACH,mBAdW,MAAM,GAAC,MAAM,SAAQ,UAAU,EAyCzC;IAlBG,aAAiB;IAGjB,gBAAoB;IAgCxB;;;;;;;;OAQG;IACH,cAA2B;IAE3B;;;;OAIG;IAEH;;;;;;OAMG;IACH,UAFU,aAAa,CAEM;IA+C7B;;;;;;OAMG;IACH,yBAAqC;IAWrC;;;;;;OAMG;IACH,0BAAsC;IAWtC;;;;;;OAMG;IACH,0BAAsC;IAWtC;;;;;;OAMG;IACH,yBAAqC;IAWrC;;;;;;OAMG;IACH,oCAAgD;IAWhD;;;;;;OAMG;IACH,4BAAwC"} \ No newline at end of file
diff --git a/priv/static/video.js/types/menu/menu-button.d.ts b/priv/static/video.js/types/menu/menu-button.d.ts
new file mode 100644
index 0000000..249874b
--- /dev/null
+++ b/priv/static/video.js/types/menu/menu-button.d.ts
@@ -0,0 +1,177 @@
+export default MenuButton;
+/**
+ * A `MenuButton` class for any popup {@link Menu}.
+ *
+ * @extends Component
+ */
+declare class MenuButton extends Component {
+ /**
+ * Creates an instance of this class.
+ *
+ * @param { import('../player').default } player
+ * The `Player` that this class should be attached to.
+ *
+ * @param {Object} [options={}]
+ * The key/value store of player options.
+ */
+ constructor(player: import('../player').default, options?: any);
+ menuButton_: Button;
+ enabled_: boolean;
+ handleMenuKeyUp_: (e: any) => void;
+ /**
+ * Update the menu based on the current state of its items.
+ */
+ update(): void;
+ menu: Menu;
+ /**
+ * Track the state of the menu button
+ *
+ * @type {Boolean}
+ * @private
+ */
+ private buttonPressed_;
+ /**
+ * Create the menu and add all items to it.
+ *
+ * @return {Menu}
+ * The constructed menu
+ */
+ createMenu(): Menu;
+ /**
+ * Hide the menu if the number of items is less than or equal to this threshold. This defaults
+ * to 0 and whenever we add items which can be hidden to the menu we'll increment it. We list
+ * it here because every time we run `createMenu` we need to reset the value.
+ *
+ * @protected
+ * @type {Number}
+ */
+ protected hideThreshold_: number;
+ items: void;
+ /**
+ * Create the list of menu items. Specific to each subclass.
+ *
+ * @abstract
+ */
+ createItems(): void;
+ /**
+ * Create the `MenuButtons`s DOM element.
+ *
+ * @return {Element}
+ * The element that gets created.
+ */
+ createEl(): Element;
+ /**
+ * Overwrites the `setIcon` method from `Component`.
+ * In this case, we want the icon to be appended to the menuButton.
+ *
+ * @param {string} name
+ * The icon name to be added.
+ */
+ setIcon(name: string): void;
+ /**
+ * Allow sub components to stack CSS class names for the wrapper element
+ *
+ * @return {string}
+ * The constructed wrapper DOM `className`
+ */
+ buildWrapperCSSClass(): string;
+ /**
+ * Get or set the localized control text that will be used for accessibility.
+ *
+ * > NOTE: This will come from the internal `menuButton_` element.
+ *
+ * @param {string} [text]
+ * Control text for element.
+ *
+ * @param {Element} [el=this.menuButton_.el()]
+ * Element to set the title on.
+ *
+ * @return {string}
+ * - The control text when getting
+ */
+ controlText(text?: string, el?: Element): string;
+ /**
+ * Dispose of the `menu-button` and all child components.
+ */
+ dispose(): void;
+ /**
+ * Handle a click on a `MenuButton`.
+ * See {@link ClickableComponent#handleClick} for instances where this is called.
+ *
+ * @param {Event} event
+ * The `keydown`, `tap`, or `click` event that caused this function to be
+ * called.
+ *
+ * @listens tap
+ * @listens click
+ */
+ handleClick(event: Event): void;
+ /**
+ * Handle `mouseleave` for `MenuButton`.
+ *
+ * @param {Event} event
+ * The `mouseleave` event that caused this function to be called.
+ *
+ * @listens mouseleave
+ */
+ handleMouseLeave(event: Event): void;
+ /**
+ * Handle tab, escape, down arrow, and up arrow keys for `MenuButton`. See
+ * {@link ClickableComponent#handleKeyDown} for instances where this is called.
+ *
+ * @param {Event} event
+ * The `keydown` event that caused this function to be called.
+ *
+ * @listens keydown
+ */
+ handleKeyDown(event: Event): void;
+ /**
+ * Handle a `keyup` event on a `MenuButton`. The listener for this is added in
+ * the constructor.
+ *
+ * @param {Event} event
+ * Key press event
+ *
+ * @listens keyup
+ */
+ handleMenuKeyUp(event: Event): void;
+ /**
+ * This method name now delegates to `handleSubmenuKeyDown`. This means
+ * anyone calling `handleSubmenuKeyPress` will not see their method calls
+ * stop working.
+ *
+ * @param {Event} event
+ * The event that caused this function to be called.
+ */
+ handleSubmenuKeyPress(event: Event): void;
+ /**
+ * Handle a `keydown` event on a sub-menu. The listener for this is added in
+ * the constructor.
+ *
+ * @param {Event} event
+ * Key press event
+ *
+ * @listens keydown
+ */
+ handleSubmenuKeyDown(event: Event): void;
+ /**
+ * Put the current `MenuButton` into a pressed state.
+ */
+ pressButton(): void;
+ /**
+ * Take the current `MenuButton` out of a pressed state.
+ */
+ unpressButton(): void;
+ /**
+ * Disable the `MenuButton`. Don't allow it to be clicked.
+ */
+ disable(): void;
+ /**
+ * Enable the `MenuButton`. Allow it to be clicked.
+ */
+ enable(): void;
+}
+import Component from "../component.js";
+import Button from "../button.js";
+import Menu from "./menu.js";
+//# sourceMappingURL=menu-button.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/menu/menu-button.d.ts.map b/priv/static/video.js/types/menu/menu-button.d.ts.map
new file mode 100644
index 0000000..5d76be8
--- /dev/null
+++ b/priv/static/video.js/types/menu/menu-button.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"menu-button.d.ts","sourceRoot":"","sources":["../../../src/js/menu/menu-button.js"],"names":[],"mappings":";AAaA;;;;GAIG;AACH;IAEE;;;;;;;;OAQG;IACH,oBANY,OAAO,WAAW,EAAE,OAAO,iBAwCtC;IA/BC,oBAA8C;IAe9C,kBAAoB;IAIpB,mCAAsD;IAcxD;;OAEG;IACH,eA4BC;IApBC,WAAgB;IAGhB;;;;;OAKG;IACH,uBAA2B;IAa7B;;;;;OAKG;IACH,cAHY,IAAI,CAuCf;IAjCC;;;;;;;OAOG;IACH,iCAAuB;IAevB,YAA+B;IAYjC;;;;OAIG;IACH,oBAAgB;IAEhB;;;;;OAKG;IACH,YAHY,OAAO,CAQlB;IAED;;;;;;OAMG;IACH,cAHW,MAAM,QAKhB;IAED;;;;;OAKG;IACH,wBAHY,MAAM,CAiBjB;IAqBD;;;;;;;;;;;;;OAaG;IACH,mBATW,MAAM,OAGN,OAAO,GAGN,MAAM,CAKjB;IAED;;OAEG;IACH,gBAGC;IAED;;;;;;;;;;OAUG;IACH,mBAPW,KAAK,QAaf;IAED;;;;;;;OAOG;IACH,wBALW,KAAK,QAQf;IAgBD;;;;;;;;OAQG;IACH,qBALW,KAAK,QA0Bf;IAED;;;;;;;;OAQG;IACH,uBALW,KAAK,QAUf;IAED;;;;;;;OAOG;IACH,6BAHW,KAAK,QAKf;IAED;;;;;;;;OAQG;IACH,4BALW,KAAK,QAuBf;IAED;;OAEG;IACH,oBAgBC;IAED;;OAEG;IACH,sBAOC;IAED;;OAEG;IACH,gBAOC;IAED;;OAEG;IACH,eAKC;CACF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/menu/menu-item.d.ts b/priv/static/video.js/types/menu/menu-item.d.ts
new file mode 100644
index 0000000..7c07303
--- /dev/null
+++ b/priv/static/video.js/types/menu/menu-item.d.ts
@@ -0,0 +1,44 @@
+export default MenuItem;
+/**
+ * The component for a menu item. `<li>`
+ *
+ * @extends ClickableComponent
+ */
+declare class MenuItem extends ClickableComponent {
+ /**
+ * Creates an instance of the this class.
+ *
+ * @param { import('../player').default } player
+ * The `Player` that this class should be attached to.
+ *
+ * @param {Object} [options={}]
+ * The key/value store of player options.
+ *
+ */
+ constructor(player: import('../player').default, options?: any);
+ selectable: any;
+ isSelected_: any;
+ multiSelectable: any;
+ nonIconControl: boolean;
+ /**
+ * Any click on a `MenuItem` puts it into the selected state.
+ * See {@link ClickableComponent#handleClick} for instances where this is called.
+ *
+ * @param {Event} event
+ * The `keydown`, `tap`, or `click` event that caused this function to be
+ * called.
+ *
+ * @listens tap
+ * @listens click
+ */
+ handleClick(event: Event): void;
+ /**
+ * Set the state for this menu item as selected or not.
+ *
+ * @param {boolean} selected
+ * if the menu item is selected or not
+ */
+ selected(selected: boolean): void;
+}
+import ClickableComponent from "../clickable-component.js";
+//# sourceMappingURL=menu-item.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/menu/menu-item.d.ts.map b/priv/static/video.js/types/menu/menu-item.d.ts.map
new file mode 100644
index 0000000..dbc71ea
--- /dev/null
+++ b/priv/static/video.js/types/menu/menu-item.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"menu-item.d.ts","sourceRoot":"","sources":["../../../src/js/menu/menu-item.js"],"names":[],"mappings":";AASA;;;;GAIG;AACH;IAEE;;;;;;;;;OASG;IACH,oBAPY,OAAO,WAAW,EAAE,OAAO,iBAyBtC;IAfC,gBAAoC;IACpC,iBAA4C;IAC5C,qBAA8C;IAgC9C,wBAA0B;IAuC5B;;;;;;;;;;OAUG;IACH,mBAPW,KAAK,QASf;IAED;;;;;OAKG;IACH,mBAHW,OAAO,QAoBjB;CACF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/menu/menu-keys.d.ts b/priv/static/video.js/types/menu/menu-keys.d.ts
new file mode 100644
index 0000000..df63177
--- /dev/null
+++ b/priv/static/video.js/types/menu/menu-keys.d.ts
@@ -0,0 +1,19 @@
+/**
+ * All keys used for operation of a menu (`MenuButton`, `Menu`, and `MenuItem`)
+ * Note that 'Enter' and 'Space' are not included here (otherwise they would
+ * prevent the `MenuButton` and `MenuItem` from being keyboard-clickable)
+ */
+export type MenuKeys = any;
+/**
+ * @file menu-keys.js
+ */
+/**
+ * All keys used for operation of a menu (`MenuButton`, `Menu`, and `MenuItem`)
+ * Note that 'Enter' and 'Space' are not included here (otherwise they would
+ * prevent the `MenuButton` and `MenuItem` from being keyboard-clickable)
+ *
+ * @typedef MenuKeys
+ * @array
+ */
+export const MenuKeys: string[];
+//# sourceMappingURL=menu-keys.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/menu/menu-keys.d.ts.map b/priv/static/video.js/types/menu/menu-keys.d.ts.map
new file mode 100644
index 0000000..13b598f
--- /dev/null
+++ b/priv/static/video.js/types/menu/menu-keys.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"menu-keys.d.ts","sourceRoot":"","sources":["../../../src/js/menu/menu-keys.js"],"names":[],"mappings":";;;;;;AAAA;;GAEG;AAEH;;;;;;;IAOI;AACJ,gCAOE"} \ No newline at end of file
diff --git a/priv/static/video.js/types/menu/menu.d.ts b/priv/static/video.js/types/menu/menu.d.ts
new file mode 100644
index 0000000..cd9331d
--- /dev/null
+++ b/priv/static/video.js/types/menu/menu.d.ts
@@ -0,0 +1,102 @@
+export default Menu;
+/**
+ * The Menu component is used to build popup menus, including subtitle and
+ * captions selection menus.
+ *
+ * @extends Component
+ */
+declare class Menu extends Component {
+ /**
+ * Create an instance of this class.
+ *
+ * @param { import('../player').default } player
+ * the player that this component should attach to
+ *
+ * @param {Object} [options]
+ * Object of option names and values
+ *
+ */
+ constructor(player: import('../player').default, options?: any);
+ menuButton_: any;
+ focusedChild_: number;
+ boundHandleBlur_: (e: any) => void;
+ boundHandleTapClick_: (e: any) => void;
+ /**
+ * Add event listeners to the {@link MenuItem}.
+ *
+ * @param {Object} component
+ * The instance of the `MenuItem` to add listeners to.
+ *
+ */
+ addEventListenerForItem(component: any): void;
+ /**
+ * Remove event listeners from the {@link MenuItem}.
+ *
+ * @param {Object} component
+ * The instance of the `MenuItem` to remove listeners.
+ *
+ */
+ removeEventListenerForItem(component: any): void;
+ /**
+ * This method will be called indirectly when the component has been added
+ * before the component adds to the new menu instance by `addItem`.
+ * In this case, the original menu instance will remove the component
+ * by calling `removeChild`.
+ *
+ * @param {Object} component
+ * The instance of the `MenuItem`
+ */
+ removeChild(component: any): void;
+ /**
+ * Add a {@link MenuItem} to the menu.
+ *
+ * @param {Object|string} component
+ * The name or instance of the `MenuItem` to add.
+ *
+ */
+ addItem(component: any | string): void;
+ /**
+ * Create the `Menu`s DOM element.
+ *
+ * @return {Element}
+ * the element that was created
+ */
+ createEl(): Element;
+ contentEl_: Element;
+ dispose(): void;
+ /**
+ * Called when a `MenuItem` loses focus.
+ *
+ * @param {Event} event
+ * The `blur` event that caused this function to be called.
+ *
+ * @listens blur
+ */
+ handleBlur(event: Event): void;
+ /**
+ * Called when a `MenuItem` gets clicked or tapped.
+ *
+ * @param {Event} event
+ * The `click` or `tap` event that caused this function to be called.
+ *
+ * @listens click,tap
+ */
+ handleTapClick(event: Event): void;
+ /**
+ * Move to next (lower) menu item for keyboard users.
+ */
+ stepForward(): void;
+ /**
+ * Move to previous (higher) menu item for keyboard users.
+ */
+ stepBack(): void;
+ /**
+ * Set focus on a {@link MenuItem} in the `Menu`.
+ *
+ * @param {Object|string} [item=0]
+ * Index of child item set focus on.
+ */
+ focus(item?: any | string): void;
+}
+import Component from "../component.js";
+//# sourceMappingURL=menu.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/menu/menu.d.ts.map b/priv/static/video.js/types/menu/menu.d.ts.map
new file mode 100644
index 0000000..97e1eab
--- /dev/null
+++ b/priv/static/video.js/types/menu/menu.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../../../src/js/menu/menu.js"],"names":[],"mappings":";AASA;;;;;GAKG;AACH;IAEE;;;;;;;;;OASG;IACH,oBAPY,OAAO,WAAW,EAAE,OAAO,iBAqBtC;IAVG,iBAAqC;IAGvC,sBAAuB;IAKvB,mCAAiD;IACjD,uCAAyD;IAG3D;;;;;;OAMG;IACH,8CAOC;IAED;;;;;;OAMG;IACH,iDAOC;IAED;;;;;;;;OAQG;IACH,kCAOC;IAED;;;;;;OAMG;IACH,mBAJW,MAAO,MAAM,QAUvB;IAED;;;;;OAKG;IACH,YAHY,OAAO,CA2BlB;IArBC,oBAEE;IAqBJ,gBAMC;IAED;;;;;;;OAOG;IACH,kBALW,KAAK,QAkBf;IAED;;;;;;;OAOG;IACH,sBALW,KAAK,QA4Bf;IA0BD;;OAEG;IACH,oBAOC;IAED;;OAEG;IACH,iBAOC;IAED;;;;;OAKG;IACH,aAHW,MAAO,MAAM,QAsBvB;CACF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/mixins/evented.d.ts b/priv/static/video.js/types/mixins/evented.d.ts
new file mode 100644
index 0000000..d1d4c3f
--- /dev/null
+++ b/priv/static/video.js/types/mixins/evented.d.ts
@@ -0,0 +1,41 @@
+export default evented;
+/**
+ * Applies {@link module:evented~EventedMixin|EventedMixin} to a target object.
+ *
+ * @param {Object} target
+ * The object to which to add event methods.
+ *
+ * @param {Object} [options={}]
+ * Options for customizing the mixin behavior.
+ *
+ * @param {string} [options.eventBusKey]
+ * By default, adds a `eventBusEl_` DOM element to the target object,
+ * which is used as an event bus. If the target object already has a
+ * DOM element that should be used, pass its key here.
+ *
+ * @return {Object}
+ * The target object.
+ */
+declare function evented(target: any, options?: {
+ eventBusKey?: string;
+}): any;
+/**
+ * Returns whether or not an object has had the evented mixin applied.
+ *
+ * @param {Object} object
+ * An object to test.
+ *
+ * @return {boolean}
+ * Whether or not the object appears to be evented.
+ */
+export function isEvented(object: any): boolean;
+/**
+ * Adds a callback to run after the evented mixin applied.
+ *
+ * @param {Object} target
+ * An object to Add
+ * @param {Function} callback
+ * The callback to run.
+ */
+export function addEventedCallback(target: any, callback: Function): void;
+//# sourceMappingURL=evented.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/mixins/evented.d.ts.map b/priv/static/video.js/types/mixins/evented.d.ts.map
new file mode 100644
index 0000000..a7cd5b9
--- /dev/null
+++ b/priv/static/video.js/types/mixins/evented.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"evented.d.ts","sourceRoot":"","sources":["../../../src/js/mixins/evented.js"],"names":[],"mappings":";AAqcA;;;;;;;;;;;;;;;;GAgBG;AACH;IAR6B,WAAW,GAA5B,MAAM;QA2CjB;AA1dD;;;;;;;;GAQG;AACH,wCAHY,OAAO,CAM0D;AAE7E;;;;;;;GAOG;AACH,0EASC"} \ No newline at end of file
diff --git a/priv/static/video.js/types/mixins/stateful.d.ts b/priv/static/video.js/types/mixins/stateful.d.ts
new file mode 100644
index 0000000..a2ee3ad
--- /dev/null
+++ b/priv/static/video.js/types/mixins/stateful.d.ts
@@ -0,0 +1,21 @@
+export default stateful;
+/**
+ * Applies {@link module:stateful~StatefulMixin|StatefulMixin} to a target
+ * object.
+ *
+ * If the target object is {@link module:evented|evented} and has a
+ * `handleStateChanged` method, that method will be automatically bound to the
+ * `statechanged` event on itself.
+ *
+ * @param {Object} target
+ * The object to be made stateful.
+ *
+ * @param {Object} [defaultState]
+ * A default set of properties to populate the newly-stateful object's
+ * `state` property.
+ *
+ * @return {Object}
+ * Returns the `target`.
+ */
+declare function stateful(target: any, defaultState?: any): any;
+//# sourceMappingURL=stateful.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/mixins/stateful.d.ts.map b/priv/static/video.js/types/mixins/stateful.d.ts.map
new file mode 100644
index 0000000..8e6be33
--- /dev/null
+++ b/priv/static/video.js/types/mixins/stateful.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"stateful.d.ts","sourceRoot":"","sources":["../../../src/js/mixins/stateful.js"],"names":[],"mappings":";AAsFA;;;;;;;;;;;;;;;;;GAiBG;AACH,gEAaC"} \ No newline at end of file
diff --git a/priv/static/video.js/types/modal-dialog.d.ts b/priv/static/video.js/types/modal-dialog.d.ts
new file mode 100644
index 0000000..2a81617
--- /dev/null
+++ b/priv/static/video.js/types/modal-dialog.d.ts
@@ -0,0 +1,193 @@
+export default ModalDialog;
+/**
+ * The `ModalDialog` displays over the video and its controls, which blocks
+ * interaction with the player until it is closed.
+ *
+ * Modal dialogs include a "Close" button and will close when that button
+ * is activated - or when ESC is pressed anywhere.
+ *
+ * @extends Component
+ */
+declare class ModalDialog extends Component {
+ /**
+ * Create an instance of this class.
+ *
+ * @param { import('./player').default } player
+ * The `Player` that this class should be attached to.
+ *
+ * @param {Object} [options]
+ * The key/value store of player options.
+ *
+ * @param { import('./utils/dom').ContentDescriptor} [options.content=undefined]
+ * Provide customized content for this modal.
+ *
+ * @param {string} [options.description]
+ * A text description for the modal, primarily for accessibility.
+ *
+ * @param {boolean} [options.fillAlways=false]
+ * Normally, modals are automatically filled only the first time
+ * they open. This tells the modal to refresh its content
+ * every time it opens.
+ *
+ * @param {string} [options.label]
+ * A text label for the modal, primarily for accessibility.
+ *
+ * @param {boolean} [options.pauseOnOpen=true]
+ * If `true`, playback will will be paused if playing when
+ * the modal opens, and resumed when it closes.
+ *
+ * @param {boolean} [options.temporary=true]
+ * If `true`, the modal can only be opened once; it will be
+ * disposed as soon as it's closed.
+ *
+ * @param {boolean} [options.uncloseable=false]
+ * If `true`, the user will not be able to close the modal
+ * through the UI in the normal ways. Programmatic closing is
+ * still possible.
+ */
+ constructor(player: import('./player').default, options?: {
+ content?: import('./utils/dom').ContentDescriptor;
+ description?: string;
+ fillAlways?: boolean;
+ label?: string;
+ pauseOnOpen?: boolean;
+ temporary?: boolean;
+ uncloseable?: boolean;
+ });
+ handleKeyDown_: (e: any) => void;
+ close_: (e: any) => void;
+ opened_: boolean;
+ hasBeenOpened_: boolean;
+ hasBeenFilled_: boolean;
+ contentEl_: Element;
+ descEl_: Element;
+ /**
+ * Create the `ModalDialog`'s DOM element
+ *
+ * @return {Element}
+ * The DOM element that gets created.
+ */
+ createEl(): Element;
+ dispose(): void;
+ previouslyActiveEl_: any;
+ /**
+ * Returns the label string for this modal. Primarily used for accessibility.
+ *
+ * @return {string}
+ * the localized or raw label of this modal.
+ */
+ label(): string;
+ /**
+ * Returns the description string for this modal. Primarily used for
+ * accessibility.
+ *
+ * @return {string}
+ * The localized or raw description of this modal.
+ */
+ description(): string;
+ /**
+ * Opens the modal.
+ *
+ * @fires ModalDialog#beforemodalopen
+ * @fires ModalDialog#modalopen
+ */
+ open(): void;
+ wasPlaying_: boolean;
+ hadControls_: boolean;
+ /**
+ * If the `ModalDialog` is currently open or closed.
+ *
+ * @param {boolean} [value]
+ * If given, it will open (`true`) or close (`false`) the modal.
+ *
+ * @return {boolean}
+ * the current open state of the modaldialog
+ */
+ opened(value?: boolean): boolean;
+ /**
+ * Closes the modal, does nothing if the `ModalDialog` is
+ * not open.
+ *
+ * @fires ModalDialog#beforemodalclose
+ * @fires ModalDialog#modalclose
+ */
+ close(): void;
+ /**
+ * Check to see if the `ModalDialog` is closeable via the UI.
+ *
+ * @param {boolean} [value]
+ * If given as a boolean, it will set the `closeable` option.
+ *
+ * @return {boolean}
+ * Returns the final value of the closable option.
+ */
+ closeable(value?: boolean): boolean;
+ closeable_: boolean;
+ /**
+ * Fill the modal's content element with the modal's "content" option.
+ * The content element will be emptied before this change takes place.
+ */
+ fill(): void;
+ /**
+ * Fill the modal's content element with arbitrary content.
+ * The content element will be emptied before this change takes place.
+ *
+ * @fires ModalDialog#beforemodalfill
+ * @fires ModalDialog#modalfill
+ *
+ * @param { import('./utils/dom').ContentDescriptor} [content]
+ * The same rules apply to this as apply to the `content` option.
+ */
+ fillWith(content?: import('./utils/dom').ContentDescriptor): void;
+ /**
+ * Empties the content element. This happens anytime the modal is filled.
+ *
+ * @fires ModalDialog#beforemodalempty
+ * @fires ModalDialog#modalempty
+ */
+ empty(): void;
+ /**
+ * Gets or sets the modal content, which gets normalized before being
+ * rendered into the DOM.
+ *
+ * This does not update the DOM or fill the modal, but it is called during
+ * that process.
+ *
+ * @param { import('./utils/dom').ContentDescriptor} [value]
+ * If defined, sets the internal content value to be used on the
+ * next call(s) to `fill`. This value is normalized before being
+ * inserted. To "clear" the internal content value, pass `null`.
+ *
+ * @return { import('./utils/dom').ContentDescriptor}
+ * The current content of the modal dialog
+ */
+ content(value?: import('./utils/dom').ContentDescriptor): import('./utils/dom').ContentDescriptor;
+ content_: Dom.ContentDescriptor;
+ /**
+ * conditionally focus the modal dialog if focus was previously on the player.
+ *
+ * @private
+ */
+ private conditionalFocus_;
+ /**
+ * conditionally blur the element and refocus the last focused element
+ *
+ * @private
+ */
+ private conditionalBlur_;
+ /**
+ * Keydown handler. Attached when modal is focused.
+ *
+ * @listens keydown
+ */
+ handleKeyDown(event: any): void;
+ /**
+ * get all focusable elements
+ *
+ * @private
+ */
+ private focusableEls_;
+}
+import Component from "./component";
+import * as Dom from "./utils/dom";
+//# sourceMappingURL=modal-dialog.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/modal-dialog.d.ts.map b/priv/static/video.js/types/modal-dialog.d.ts.map
new file mode 100644
index 0000000..c3ee0d7
--- /dev/null
+++ b/priv/static/video.js/types/modal-dialog.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"modal-dialog.d.ts","sourceRoot":"","sources":["../../src/js/modal-dialog.js"],"names":[],"mappings":";AAWA;;;;;;;;GAQG;AACH;IAEE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACH,oBAjCY,OAAO,UAAU,EAAE,OAAO;QAMwB,OAAO,GAAzD,OAAO,aAAa,EAAE,iBAAiB;QAGvB,WAAW,GAA5B,MAAM;QAGY,UAAU,GAA5B,OAAO;QAKU,KAAK,GAAtB,MAAM;QAGY,WAAW,GAA7B,OAAO;QAIW,SAAS,GAA3B,OAAO;QAIW,WAAW,GAA7B,OAAO;OAgCjB;IAxBC,iCAAkD;IAClD,yBAAkC;IAClC,iBAAgE;IAAjD,wBAAiD;IAA3B,wBAA2B;IAQhE,oBAIE;IAEF,iBAGE;IAOJ;;;;;OAKG;IACH,YAHY,OAAO,CAclB;IAED,gBAMC;IAHC,yBAA+B;IAejC;;;;;OAKG;IACH,SAHY,MAAM,CAKjB;IAED;;;;;;OAMG;IACH,eAHY,MAAM,CAYjB;IAED;;;;;OAKG;IACH,aAmDC;IAxBC,qBAAmC;IASnC,sBAAqC;IAiBvC;;;;;;;;OAQG;IACH,eANY,OAAO,GAGP,OAAO,CAQlB;IAED;;;;;;OAMG;IACH,cAwCC;IAED;;;;;;;;OAQG;IACH,kBANY,OAAO,GAGP,OAAO,CA6BlB;IAxBqB,oBAAyB;IA0B/C;;;OAGG;IACH,aAEC;IAED;;;;;;;;;OASG;IACH,mBAHY,OAAO,aAAa,EAAE,iBAAiB,QA2ClD;IAED;;;;;OAKG;IACH,cAiBC;IAED;;;;;;;;;;;;;;OAcG;IACH,gBARa,OAAO,aAAa,EAAE,iBAAiB,GAKvC,OAAO,aAAa,EAAE,iBAAiB,CAQnD;IAHG,gCAAqB;IAKzB;;;;OAIG;IACH,0BAWC;IAED;;;;OAIG;IACH,yBAKC;IAED;;;;OAIG;IACH,gCAsCC;IAED;;;;OAIG;IACH,sBAgBC;CACF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/player.d.ts b/priv/static/video.js/types/player.d.ts
new file mode 100644
index 0000000..d5fcbaf
--- /dev/null
+++ b/priv/static/video.js/types/player.d.ts
@@ -0,0 +1,1776 @@
+export default Player;
+/**
+ * An instance of the `Player` class is created when any of the Video.js setup methods
+ * are used to initialize a video.
+ *
+ * After an instance has been created it can be accessed globally in three ways:
+ * 1. By calling `videojs.getPlayer('example_video_1');`
+ * 2. By calling `videojs('example_video_1');` (not recommended)
+ * 2. By using it directly via `videojs.players.example_video_1;`
+ *
+ * @extends Component
+ * @global
+ */
+declare class Player extends Component {
+ /**
+ * Gets tag settings
+ *
+ * @param {Element} tag
+ * The player tag
+ *
+ * @return {Object}
+ * An object containing all of the settings
+ * for a player tag
+ */
+ static getTagSettings(tag: Element): any;
+ /**
+ * Create an instance of this class.
+ *
+ * @param {Element} tag
+ * The original video DOM element used for configuring options.
+ *
+ * @param {Object} [options]
+ * Object of option names and values.
+ *
+ * @param {Function} [ready]
+ * Ready callback function.
+ */
+ constructor(tag: Element, options?: any, ready?: Function);
+ boundDocumentFullscreenChange_: (e: any) => void;
+ boundFullWindowOnEscKey_: (e: any) => void;
+ boundUpdateStyleEl_: (e: any) => void;
+ boundApplyInitTime_: (e: any) => void;
+ boundUpdateCurrentBreakpoint_: (e: any) => void;
+ boundHandleTechClick_: (e: any) => void;
+ boundHandleTechDoubleClick_: (e: any) => void;
+ boundHandleTechTouchStart_: (e: any) => void;
+ boundHandleTechTouchMove_: (e: any) => void;
+ boundHandleTechTouchEnd_: (e: any) => void;
+ boundHandleTechTap_: (e: any) => void;
+ isFullscreen_: boolean;
+ log: any;
+ fsApi_: any;
+ isPosterFromTech_: boolean;
+ queuedCallbacks_: any[];
+ hasStarted_: boolean;
+ userActive_: boolean;
+ debugEnabled_: boolean;
+ audioOnlyMode_: boolean;
+ audioPosterMode_: boolean;
+ audioOnlyCache_: {
+ playerHeight: any;
+ hiddenChildren: any[];
+ };
+ tag: Element;
+ tagAttributes: any;
+ languages_: {};
+ /** @type string */
+ poster_: string;
+ /** @type {boolean} */
+ controls_: boolean;
+ changingSrc_: boolean;
+ playCallbacks_: any[];
+ playTerminatedQueue_: any[];
+ scrubbing_: boolean;
+ el_: Element;
+ middleware_: any[];
+ /**
+ * Destroys the video player and does any necessary cleanup.
+ *
+ * This is especially helpful if you are dynamically adding and removing videos
+ * to/from the DOM.
+ *
+ * @fires Player#dispose
+ */
+ dispose(): void;
+ styleEl_: Element;
+ playerElIngest_: any;
+ /**
+ * Create the `Player`'s DOM element.
+ *
+ * @return {Element}
+ * The DOM element that gets created.
+ */
+ createEl(): Element;
+ fill_: boolean;
+ fluid_: boolean;
+ /**
+ * Get or set the `Player`'s crossOrigin option. For the HTML5 player, this
+ * sets the `crossOrigin` property on the `<video>` tag to control the CORS
+ * behavior.
+ *
+ * @see [Video Element Attributes]{@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video#attr-crossorigin}
+ *
+ * @param {string|null} [value]
+ * The value to set the `Player`'s crossOrigin to. If an argument is
+ * given, must be one of `'anonymous'` or `'use-credentials'`, or 'null'.
+ *
+ * @return {string|null|undefined}
+ * - The current crossOrigin value of the `Player` when getting.
+ * - undefined when setting
+ */
+ crossOrigin(value?: string | null): string | null | undefined;
+ /**
+ * A getter/setter for the `Player`'s width. Returns the player's configured value.
+ * To get the current width use `currentWidth()`.
+ *
+ * @param {number|string} [value]
+ * CSS value to set the `Player`'s width to.
+ *
+ * @return {number|undefined}
+ * - The current width of the `Player` when getting.
+ * - Nothing when setting
+ */
+ width(value?: number | string): number | undefined;
+ /**
+ * A getter/setter for the `Player`'s height. Returns the player's configured value.
+ * To get the current height use `currentheight()`.
+ *
+ * @param {number|string} [value]
+ * CSS value to set the `Player`'s height to.
+ *
+ * @return {number|undefined}
+ * - The current height of the `Player` when getting.
+ * - Nothing when setting
+ */
+ height(value?: number | string): number | undefined;
+ /**
+ * A getter/setter for the `Player`'s width & height.
+ *
+ * @param {string} dimension
+ * This string can be:
+ * - 'width'
+ * - 'height'
+ *
+ * @param {number|string} [value]
+ * Value for dimension specified in the first argument.
+ *
+ * @return {number}
+ * The dimension arguments value when getting (width/height).
+ */
+ dimension(dimension: string, value?: number | string): number;
+ /**
+ * A getter/setter/toggler for the vjs-fluid `className` on the `Player`.
+ *
+ * Turning this on will turn off fill mode.
+ *
+ * @param {boolean} [bool]
+ * - A value of true adds the class.
+ * - A value of false removes the class.
+ * - No value will be a getter.
+ *
+ * @return {boolean|undefined}
+ * - The value of fluid when getting.
+ * - `undefined` when setting.
+ */
+ fluid(bool?: boolean): boolean | undefined;
+ /**
+ * A getter/setter/toggler for the vjs-fill `className` on the `Player`.
+ *
+ * Turning this on will turn off fluid mode.
+ *
+ * @param {boolean} [bool]
+ * - A value of true adds the class.
+ * - A value of false removes the class.
+ * - No value will be a getter.
+ *
+ * @return {boolean|undefined}
+ * - The value of fluid when getting.
+ * - `undefined` when setting.
+ */
+ fill(bool?: boolean): boolean | undefined;
+ /**
+ * Get/Set the aspect ratio
+ *
+ * @param {string} [ratio]
+ * Aspect ratio for player
+ *
+ * @return {string|undefined}
+ * returns the current aspect ratio when getting
+ */
+ /**
+ * A getter/setter for the `Player`'s aspect ratio.
+ *
+ * @param {string} [ratio]
+ * The value to set the `Player`'s aspect ratio to.
+ *
+ * @return {string|undefined}
+ * - The current aspect ratio of the `Player` when getting.
+ * - undefined when setting
+ */
+ aspectRatio(ratio?: string): string | undefined;
+ aspectRatio_: string;
+ /**
+ * Update styles of the `Player` element (height, width and aspect ratio).
+ *
+ * @private
+ * @listens Tech#loadedmetadata
+ */
+ private updateStyleEl_;
+ /**
+ * Load/Create an instance of playback {@link Tech} including element
+ * and API methods. Then append the `Tech` element in `Player` as a child.
+ *
+ * @param {string} techName
+ * name of the playback technology
+ *
+ * @param {string} source
+ * video source
+ *
+ * @private
+ */
+ private loadTech_;
+ techName_: string;
+ tech_: any;
+ /**
+ * Unload and dispose of the current playback {@link Tech}.
+ *
+ * @private
+ */
+ private unloadTech_;
+ textTracksJson_: any[];
+ /**
+ * Return a reference to the current {@link Tech}.
+ * It will print a warning by default about the danger of using the tech directly
+ * but any argument that is passed in will silence the warning.
+ *
+ * @param {*} [safety]
+ * Anything passed in to silence the warning
+ *
+ * @return {Tech}
+ * The Tech
+ */
+ tech(safety?: any): Tech;
+ /**
+ * An object that contains Video.js version.
+ *
+ * @typedef {Object} PlayerVersion
+ *
+ * @property {string} 'video.js' - Video.js version
+ */
+ /**
+ * Returns an object with Video.js version.
+ *
+ * @return {PlayerVersion}
+ * An object with Video.js version.
+ */
+ version(): {
+ /**
+ * 'video.js' - Video.js version
+ */
+ "": string;
+ };
+ /**
+ * Set up click and touch listeners for the playback element
+ *
+ * - On desktops: a click on the video itself will toggle playback
+ * - On mobile devices: a click on the video toggles controls
+ * which is done by toggling the user state between active and
+ * inactive
+ * - A tap can signal that a user has become active or has become inactive
+ * e.g. a quick tap on an iPhone movie should reveal the controls. Another
+ * quick tap should hide them again (signaling the user is in an inactive
+ * viewing state)
+ * - In addition to this, we still want the user to be considered inactive after
+ * a few seconds of inactivity.
+ *
+ * > Note: the only part of iOS interaction we can't mimic with this setup
+ * is a touch and hold on the video element counting as activity in order to
+ * keep the controls showing, but that shouldn't be an issue. A touch and hold
+ * on any controls will still keep the user active
+ *
+ * @private
+ */
+ private addTechControlsListeners_;
+ /**
+ * Remove the listeners used for click and tap controls. This is needed for
+ * toggling to controls disabled, where a tap/touch should do nothing.
+ *
+ * @private
+ */
+ private removeTechControlsListeners_;
+ /**
+ * Player waits for the tech to be ready
+ *
+ * @private
+ */
+ private handleTechReady_;
+ /**
+ * Retrigger the `loadstart` event that was triggered by the {@link Tech}.
+ *
+ * @fires Player#loadstart
+ * @listens Tech#loadstart
+ * @private
+ */
+ private handleTechLoadStart_;
+ /**
+ * Handle autoplay string values, rather than the typical boolean
+ * values that should be handled by the tech. Note that this is not
+ * part of any specification. Valid values and what they do can be
+ * found on the autoplay getter at Player#autoplay()
+ */
+ manualAutoplay_(type: any): Promise<void>;
+ /**
+ * Update the internal source caches so that we return the correct source from
+ * `src()`, `currentSource()`, and `currentSources()`.
+ *
+ * > Note: `currentSources` will not be updated if the source that is passed in exists
+ * in the current `currentSources` cache.
+ *
+ *
+ * @param {Tech~SourceObject} srcObj
+ * A string or object source to update our caches to.
+ */
+ updateSourceCaches_(srcObj?: string): void;
+ /**
+ * *EXPERIMENTAL* Fired when the source is set or changed on the {@link Tech}
+ * causing the media element to reload.
+ *
+ * It will fire for the initial source and each subsequent source.
+ * This event is a custom event from Video.js and is triggered by the {@link Tech}.
+ *
+ * The event object for this event contains a `src` property that will contain the source
+ * that was available when the event was triggered. This is generally only necessary if Video.js
+ * is switching techs while the source was being changed.
+ *
+ * It is also fired when `load` is called on the player (or media element)
+ * because the {@link https://html.spec.whatwg.org/multipage/media.html#dom-media-load|specification for `load`}
+ * says that the resource selection algorithm needs to be aborted and restarted.
+ * In this case, it is very likely that the `src` property will be set to the
+ * empty string `""` to indicate we do not know what the source will be but
+ * that it is changing.
+ *
+ * *This event is currently still experimental and may change in minor releases.*
+ * __To use this, pass `enableSourceset` option to the player.__
+ *
+ * @event Player#sourceset
+ * @type {Event}
+ * @prop {string} src
+ * The source url available when the `sourceset` was triggered.
+ * It will be an empty string if we cannot know what the source is
+ * but know that the source will change.
+ */
+ /**
+ * Retrigger the `sourceset` event that was triggered by the {@link Tech}.
+ *
+ * @fires Player#sourceset
+ * @listens Tech#sourceset
+ * @private
+ */
+ private handleTechSourceset_;
+ lastSource_: {
+ player: any;
+ tech: any;
+ };
+ /**
+ * Add/remove the vjs-has-started class
+ *
+ *
+ * @param {boolean} request
+ * - true: adds the class
+ * - false: remove the class
+ *
+ * @return {boolean}
+ * the boolean value of hasStarted_
+ */
+ hasStarted(request: boolean): boolean;
+ /**
+ * Fired whenever the media begins or resumes playback
+ *
+ * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-play}
+ * @fires Player#play
+ * @listens Tech#play
+ * @private
+ */
+ private handleTechPlay_;
+ /**
+ * Retrigger the `ratechange` event that was triggered by the {@link Tech}.
+ *
+ * If there were any events queued while the playback rate was zero, fire
+ * those events now.
+ *
+ * @private
+ * @method Player#handleTechRateChange_
+ * @fires Player#ratechange
+ * @listens Tech#ratechange
+ */
+ private handleTechRateChange_;
+ /**
+ * Retrigger the `waiting` event that was triggered by the {@link Tech}.
+ *
+ * @fires Player#waiting
+ * @listens Tech#waiting
+ * @private
+ */
+ private handleTechWaiting_;
+ /**
+ * Retrigger the `canplay` event that was triggered by the {@link Tech}.
+ * > Note: This is not consistent between browsers. See #1351
+ *
+ * @fires Player#canplay
+ * @listens Tech#canplay
+ * @private
+ */
+ private handleTechCanPlay_;
+ /**
+ * Retrigger the `canplaythrough` event that was triggered by the {@link Tech}.
+ *
+ * @fires Player#canplaythrough
+ * @listens Tech#canplaythrough
+ * @private
+ */
+ private handleTechCanPlayThrough_;
+ /**
+ * Retrigger the `playing` event that was triggered by the {@link Tech}.
+ *
+ * @fires Player#playing
+ * @listens Tech#playing
+ * @private
+ */
+ private handleTechPlaying_;
+ /**
+ * Retrigger the `seeking` event that was triggered by the {@link Tech}.
+ *
+ * @fires Player#seeking
+ * @listens Tech#seeking
+ * @private
+ */
+ private handleTechSeeking_;
+ /**
+ * Retrigger the `seeked` event that was triggered by the {@link Tech}.
+ *
+ * @fires Player#seeked
+ * @listens Tech#seeked
+ * @private
+ */
+ private handleTechSeeked_;
+ /**
+ * Retrigger the `pause` event that was triggered by the {@link Tech}.
+ *
+ * @fires Player#pause
+ * @listens Tech#pause
+ * @private
+ */
+ private handleTechPause_;
+ /**
+ * Retrigger the `ended` event that was triggered by the {@link Tech}.
+ *
+ * @fires Player#ended
+ * @listens Tech#ended
+ * @private
+ */
+ private handleTechEnded_;
+ /**
+ * Fired when the duration of the media resource is first known or changed
+ *
+ * @listens Tech#durationchange
+ * @private
+ */
+ private handleTechDurationChange_;
+ /**
+ * Handle a click on the media element to play/pause
+ *
+ * @param {Event} event
+ * the event that caused this function to trigger
+ *
+ * @listens Tech#click
+ * @private
+ */
+ private handleTechClick_;
+ /**
+ * Handle a double-click on the media element to enter/exit fullscreen
+ *
+ * @param {Event} event
+ * the event that caused this function to trigger
+ *
+ * @listens Tech#dblclick
+ * @private
+ */
+ private handleTechDoubleClick_;
+ /**
+ * Handle a tap on the media element. It will toggle the user
+ * activity state, which hides and shows the controls.
+ *
+ * @listens Tech#tap
+ * @private
+ */
+ private handleTechTap_;
+ /**
+ * Handle touch to start
+ *
+ * @listens Tech#touchstart
+ * @private
+ */
+ private handleTechTouchStart_;
+ userWasActive: boolean;
+ /**
+ * Handle touch to move
+ *
+ * @listens Tech#touchmove
+ * @private
+ */
+ private handleTechTouchMove_;
+ /**
+ * Handle touch to end
+ *
+ * @param {Event} event
+ * the touchend event that triggered
+ * this function
+ *
+ * @listens Tech#touchend
+ * @private
+ */
+ private handleTechTouchEnd_;
+ /**
+ * @private
+ */
+ private toggleFullscreenClass_;
+ /**
+ * when the document fschange event triggers it calls this
+ */
+ documentFullscreenChange_(e: any): void;
+ /**
+ * Handle Tech Fullscreen Change
+ *
+ * @param {Event} event
+ * the fullscreenchange event that triggered this function
+ *
+ * @param {Object} data
+ * the data that was sent with the event
+ *
+ * @private
+ * @listens Tech#fullscreenchange
+ * @fires Player#fullscreenchange
+ */
+ private handleTechFullscreenChange_;
+ handleTechFullscreenError_(event: any, err: any): void;
+ /**
+ * @private
+ */
+ private togglePictureInPictureClass_;
+ /**
+ * Handle Tech Enter Picture-in-Picture.
+ *
+ * @param {Event} event
+ * the enterpictureinpicture event that triggered this function
+ *
+ * @private
+ * @listens Tech#enterpictureinpicture
+ */
+ private handleTechEnterPictureInPicture_;
+ /**
+ * Handle Tech Leave Picture-in-Picture.
+ *
+ * @param {Event} event
+ * the leavepictureinpicture event that triggered this function
+ *
+ * @private
+ * @listens Tech#leavepictureinpicture
+ */
+ private handleTechLeavePictureInPicture_;
+ /**
+ * Fires when an error occurred during the loading of an audio/video.
+ *
+ * @private
+ * @listens Tech#error
+ */
+ private handleTechError_;
+ /**
+ * Retrigger the `textdata` event that was triggered by the {@link Tech}.
+ *
+ * @fires Player#textdata
+ * @listens Tech#textdata
+ * @private
+ */
+ private handleTechTextData_;
+ /**
+ * Get object for cached values.
+ *
+ * @return {Object}
+ * get the current object cache
+ */
+ getCache(): any;
+ /**
+ * Resets the internal cache object.
+ *
+ * Using this function outside the player constructor or reset method may
+ * have unintended side-effects.
+ *
+ * @private
+ */
+ private resetCache_;
+ cache_: {
+ currentTime: number;
+ initTime: number;
+ inactivityTimeout: number;
+ duration: number;
+ lastVolume: number;
+ lastPlaybackRate: number;
+ media: any;
+ src: string;
+ source: {};
+ sources: any[];
+ playbackRates: any[];
+ volume: number;
+ };
+ /**
+ * Pass values to the playback tech
+ *
+ * @param {string} [method]
+ * the method to call
+ *
+ * @param {Object} [arg]
+ * the argument to pass
+ *
+ * @private
+ */
+ private techCall_;
+ /**
+ * Mediate attempt to call playback tech method
+ * and return the value of the method called.
+ *
+ * @param {string} method
+ * Tech method
+ *
+ * @return {*}
+ * Value returned by the tech method called, undefined if tech
+ * is not ready or tech method is not present
+ *
+ * @private
+ */
+ private techGet_;
+ /**
+ * Attempt to begin playback at the first opportunity.
+ *
+ * @return {Promise|undefined}
+ * Returns a promise if the browser supports Promises (or one
+ * was passed in as an option). This promise will be resolved on
+ * the return value of play. If this is undefined it will fulfill the
+ * promise chain otherwise the promise chain will be fulfilled when
+ * the promise from play is fulfilled.
+ */
+ play(): Promise<any> | undefined;
+ /**
+ * The actual logic for play, takes a callback that will be resolved on the
+ * return value of play. This allows us to resolve to the play promise if there
+ * is one on modern browsers.
+ *
+ * @private
+ * @param {Function} [callback]
+ * The callback that should be called when the techs play is actually called
+ */
+ private play_;
+ waitToPlay_: (e: any) => void;
+ /**
+ * These functions will be run when if play is terminated. If play
+ * runPlayCallbacks_ is run these function will not be run. This allows us
+ * to differentiate between a terminated play and an actual call to play.
+ */
+ runPlayTerminatedQueue_(): void;
+ /**
+ * When a callback to play is delayed we have to run these
+ * callbacks when play is actually called on the tech. This function
+ * runs the callbacks that were delayed and accepts the return value
+ * from the tech.
+ *
+ * @param {undefined|Promise} val
+ * The return value from the tech.
+ */
+ runPlayCallbacks_(val: undefined | Promise<any>): void;
+ /**
+ * Pause the video playback
+ */
+ pause(): void;
+ /**
+ * Check if the player is paused or has yet to play
+ *
+ * @return {boolean}
+ * - false: if the media is currently playing
+ * - true: if media is not currently playing
+ */
+ paused(): boolean;
+ /**
+ * Get a TimeRange object representing the current ranges of time that the user
+ * has played.
+ *
+ * @return { import('./utils/time').TimeRange }
+ * A time range object that represents all the increments of time that have
+ * been played.
+ */
+ played(): import('./utils/time').TimeRange;
+ /**
+ * Sets or returns whether or not the user is "scrubbing". Scrubbing is
+ * when the user has clicked the progress bar handle and is
+ * dragging it along the progress bar.
+ *
+ * @param {boolean} [isScrubbing]
+ * whether the user is or is not scrubbing
+ *
+ * @return {boolean|undefined}
+ * - The value of scrubbing when getting
+ * - Nothing when setting
+ */
+ scrubbing(isScrubbing?: boolean): boolean | undefined;
+ /**
+ * Get or set the current time (in seconds)
+ *
+ * @param {number|string} [seconds]
+ * The time to seek to in seconds
+ *
+ * @return {number|undefined}
+ * - the current time in seconds when getting
+ * - Nothing when setting
+ */
+ currentTime(seconds?: number | string): number | undefined;
+ /**
+ * Apply the value of initTime stored in cache as currentTime.
+ *
+ * @private
+ */
+ private applyInitTime_;
+ /**
+ * Normally gets the length in time of the video in seconds;
+ * in all but the rarest use cases an argument will NOT be passed to the method
+ *
+ * > **NOTE**: The video must have started loading before the duration can be
+ * known, and depending on preload behaviour may not be known until the video starts
+ * playing.
+ *
+ * @fires Player#durationchange
+ *
+ * @param {number} [seconds]
+ * The duration of the video to set in seconds
+ *
+ * @return {number|undefined}
+ * - The duration of the video in seconds when getting
+ * - Nothing when setting
+ */
+ duration(seconds?: number): number | undefined;
+ /**
+ * Calculates how much time is left in the video. Not part
+ * of the native video API.
+ *
+ * @return {number}
+ * The time remaining in seconds
+ */
+ remainingTime(): number;
+ /**
+ * A remaining time function that is intended to be used when
+ * the time is to be displayed directly to the user.
+ *
+ * @return {number}
+ * The rounded time remaining in seconds
+ */
+ remainingTimeDisplay(): number;
+ /**
+ * Get a TimeRange object with an array of the times of the video
+ * that have been downloaded. If you just want the percent of the
+ * video that's been downloaded, use bufferedPercent.
+ *
+ * @see [Buffered Spec]{@link http://dev.w3.org/html5/spec/video.html#dom-media-buffered}
+ *
+ * @return { import('./utils/time').TimeRange }
+ * A mock {@link TimeRanges} object (following HTML spec)
+ */
+ buffered(): import('./utils/time').TimeRange;
+ /**
+ * Get the TimeRanges of the media that are currently available
+ * for seeking to.
+ *
+ * @see [Seekable Spec]{@link https://html.spec.whatwg.org/multipage/media.html#dom-media-seekable}
+ *
+ * @return { import('./utils/time').TimeRange }
+ * A mock {@link TimeRanges} object (following HTML spec)
+ */
+ seekable(): import('./utils/time').TimeRange;
+ /**
+ * Returns whether the player is in the "seeking" state.
+ *
+ * @return {boolean} True if the player is in the seeking state, false if not.
+ */
+ seeking(): boolean;
+ /**
+ * Returns whether the player is in the "ended" state.
+ *
+ * @return {boolean} True if the player is in the ended state, false if not.
+ */
+ ended(): boolean;
+ /**
+ * Returns the current state of network activity for the element, from
+ * the codes in the list below.
+ * - NETWORK_EMPTY (numeric value 0)
+ * The element has not yet been initialised. All attributes are in
+ * their initial states.
+ * - NETWORK_IDLE (numeric value 1)
+ * The element's resource selection algorithm is active and has
+ * selected a resource, but it is not actually using the network at
+ * this time.
+ * - NETWORK_LOADING (numeric value 2)
+ * The user agent is actively trying to download data.
+ * - NETWORK_NO_SOURCE (numeric value 3)
+ * The element's resource selection algorithm is active, but it has
+ * not yet found a resource to use.
+ *
+ * @see https://html.spec.whatwg.org/multipage/embedded-content.html#network-states
+ * @return {number} the current network activity state
+ */
+ networkState(): number;
+ /**
+ * Returns a value that expresses the current state of the element
+ * with respect to rendering the current playback position, from the
+ * codes in the list below.
+ * - HAVE_NOTHING (numeric value 0)
+ * No information regarding the media resource is available.
+ * - HAVE_METADATA (numeric value 1)
+ * Enough of the resource has been obtained that the duration of the
+ * resource is available.
+ * - HAVE_CURRENT_DATA (numeric value 2)
+ * Data for the immediate current playback position is available.
+ * - HAVE_FUTURE_DATA (numeric value 3)
+ * Data for the immediate current playback position is available, as
+ * well as enough data for the user agent to advance the current
+ * playback position in the direction of playback.
+ * - HAVE_ENOUGH_DATA (numeric value 4)
+ * The user agent estimates that enough data is available for
+ * playback to proceed uninterrupted.
+ *
+ * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-readystate
+ * @return {number} the current playback rendering state
+ */
+ readyState(): number;
+ /**
+ * Get the percent (as a decimal) of the video that's been downloaded.
+ * This method is not a part of the native HTML video API.
+ *
+ * @return {number}
+ * A decimal between 0 and 1 representing the percent
+ * that is buffered 0 being 0% and 1 being 100%
+ */
+ bufferedPercent(): number;
+ /**
+ * Get the ending time of the last buffered time range
+ * This is used in the progress bar to encapsulate all time ranges.
+ *
+ * @return {number}
+ * The end of the last buffered time range
+ */
+ bufferedEnd(): number;
+ /**
+ * Get or set the current volume of the media
+ *
+ * @param {number} [percentAsDecimal]
+ * The new volume as a decimal percent:
+ * - 0 is muted/0%/off
+ * - 1.0 is 100%/full
+ * - 0.5 is half volume or 50%
+ *
+ * @return {number|undefined}
+ * The current volume as a percent when getting
+ */
+ volume(percentAsDecimal?: number): number | undefined;
+ /**
+ * Get the current muted state, or turn mute on or off
+ *
+ * @param {boolean} [muted]
+ * - true to mute
+ * - false to unmute
+ *
+ * @return {boolean|undefined}
+ * - true if mute is on and getting
+ * - false if mute is off and getting
+ * - nothing if setting
+ */
+ muted(muted?: boolean): boolean | undefined;
+ /**
+ * Get the current defaultMuted state, or turn defaultMuted on or off. defaultMuted
+ * indicates the state of muted on initial playback.
+ *
+ * ```js
+ * var myPlayer = videojs('some-player-id');
+ *
+ * myPlayer.src("http://www.example.com/path/to/video.mp4");
+ *
+ * // get, should be false
+ * console.log(myPlayer.defaultMuted());
+ * // set to true
+ * myPlayer.defaultMuted(true);
+ * // get should be true
+ * console.log(myPlayer.defaultMuted());
+ * ```
+ *
+ * @param {boolean} [defaultMuted]
+ * - true to mute
+ * - false to unmute
+ *
+ * @return {boolean|undefined}
+ * - true if defaultMuted is on and getting
+ * - false if defaultMuted is off and getting
+ * - Nothing when setting
+ */
+ defaultMuted(defaultMuted?: boolean): boolean | undefined;
+ /**
+ * Get the last volume, or set it
+ *
+ * @param {number} [percentAsDecimal]
+ * The new last volume as a decimal percent:
+ * - 0 is muted/0%/off
+ * - 1.0 is 100%/full
+ * - 0.5 is half volume or 50%
+ *
+ * @return {number|undefined}
+ * - The current value of lastVolume as a percent when getting
+ * - Nothing when setting
+ *
+ * @private
+ */
+ private lastVolume_;
+ /**
+ * Check if current tech can support native fullscreen
+ * (e.g. with built in controls like iOS)
+ *
+ * @return {boolean}
+ * if native fullscreen is supported
+ */
+ supportsFullScreen(): boolean;
+ /**
+ * Check if the player is in fullscreen mode or tell the player that it
+ * is or is not in fullscreen mode.
+ *
+ * > NOTE: As of the latest HTML5 spec, isFullscreen is no longer an official
+ * property and instead document.fullscreenElement is used. But isFullscreen is
+ * still a valuable property for internal player workings.
+ *
+ * @param {boolean} [isFS]
+ * Set the players current fullscreen state
+ *
+ * @return {boolean|undefined}
+ * - true if fullscreen is on and getting
+ * - false if fullscreen is off and getting
+ * - Nothing when setting
+ */
+ isFullscreen(isFS?: boolean): boolean | undefined;
+ /**
+ * Increase the size of the video to full screen
+ * In some browsers, full screen is not supported natively, so it enters
+ * "full window mode", where the video fills the browser window.
+ * In browsers and devices that support native full screen, sometimes the
+ * browser's default controls will be shown, and not the Video.js custom skin.
+ * This includes most mobile devices (iOS, Android) and older versions of
+ * Safari.
+ *
+ * @param {Object} [fullscreenOptions]
+ * Override the player fullscreen options
+ *
+ * @fires Player#fullscreenchange
+ */
+ requestFullscreen(fullscreenOptions?: any): Promise<any>;
+ requestFullscreenHelper_(fullscreenOptions: any): any;
+ /**
+ * Return the video to its normal size after having been in full screen mode
+ *
+ * @fires Player#fullscreenchange
+ */
+ exitFullscreen(): Promise<any>;
+ exitFullscreenHelper_(): any;
+ /**
+ * When fullscreen isn't supported we can stretch the
+ * video container to as wide as the browser will let us.
+ *
+ * @fires Player#enterFullWindow
+ */
+ enterFullWindow(): void;
+ isFullWindow: boolean;
+ docOrigOverflow: any;
+ /**
+ * Check for call to either exit full window or
+ * full screen on ESC key
+ *
+ * @param {string} event
+ * Event to check for key press
+ */
+ fullWindowOnEscKey(event: string): void;
+ /**
+ * Exit full window
+ *
+ * @fires Player#exitFullWindow
+ */
+ exitFullWindow(): void;
+ /**
+ * Get or set disable Picture-in-Picture mode.
+ *
+ * @param {boolean} [value]
+ * - true will disable Picture-in-Picture mode
+ * - false will enable Picture-in-Picture mode
+ */
+ disablePictureInPicture(value?: boolean): any;
+ /**
+ * Check if the player is in Picture-in-Picture mode or tell the player that it
+ * is or is not in Picture-in-Picture mode.
+ *
+ * @param {boolean} [isPiP]
+ * Set the players current Picture-in-Picture state
+ *
+ * @return {boolean|undefined}
+ * - true if Picture-in-Picture is on and getting
+ * - false if Picture-in-Picture is off and getting
+ * - nothing if setting
+ */
+ isInPictureInPicture(isPiP?: boolean): boolean | undefined;
+ isInPictureInPicture_: boolean;
+ /**
+ * Create a floating video window always on top of other windows so that users may
+ * continue consuming media while they interact with other content sites, or
+ * applications on their device.
+ *
+ * This can use document picture-in-picture or element picture in picture
+ *
+ * Set `enableDocumentPictureInPicture` to `true` to use docPiP on a supported browser
+ * Else set `disablePictureInPicture` to `false` to disable elPiP on a supported browser
+ *
+ *
+ * @see [Spec]{@link https://w3c.github.io/picture-in-picture/}
+ * @see [Spec]{@link https://wicg.github.io/document-picture-in-picture/}
+ *
+ * @fires Player#enterpictureinpicture
+ *
+ * @return {Promise}
+ * A promise with a Picture-in-Picture window.
+ */
+ requestPictureInPicture(): Promise<any>;
+ /**
+ * Exit Picture-in-Picture mode.
+ *
+ * @see [Spec]{@link https://wicg.github.io/picture-in-picture}
+ *
+ * @fires Player#leavepictureinpicture
+ *
+ * @return {Promise}
+ * A promise.
+ */
+ exitPictureInPicture(): Promise<any>;
+ /**
+ * Called when this Player receives a hotkey keydown event.
+ * Supported player-wide hotkeys are:
+ *
+ * f - toggle fullscreen
+ * m - toggle mute
+ * k or Space - toggle play/pause
+ *
+ * @param {Event} event
+ * The `keydown` event that caused this function to be called.
+ */
+ handleHotkeys(event: Event): void;
+ /**
+ * Check whether the player can play a given mimetype
+ *
+ * @see https://www.w3.org/TR/2011/WD-html5-20110113/video.html#dom-navigator-canplaytype
+ *
+ * @param {string} type
+ * The mimetype to check
+ *
+ * @return {string}
+ * 'probably', 'maybe', or '' (empty string)
+ */
+ canPlayType(type: string): string;
+ /**
+ * Select source based on tech-order or source-order
+ * Uses source-order selection if `options.sourceOrder` is truthy. Otherwise,
+ * defaults to tech-order selection
+ *
+ * @param {Array} sources
+ * The sources for a media asset
+ *
+ * @return {Object|boolean}
+ * Object of source and tech order or false
+ */
+ selectSource(sources: any[]): any | boolean;
+ /**
+ * Executes source setting and getting logic
+ *
+ * @param {Tech~SourceObject|Tech~SourceObject[]|string} [source]
+ * A SourceObject, an array of SourceObjects, or a string referencing
+ * a URL to a media source. It is _highly recommended_ that an object
+ * or array of objects is used here, so that source selection
+ * algorithms can take the `type` into account.
+ *
+ * If not provided, this method acts as a getter.
+ * @param {boolean} [isRetry]
+ * Indicates whether this is being called internally as a result of a retry
+ *
+ * @return {string|undefined}
+ * If the `source` argument is missing, returns the current source
+ * URL. Otherwise, returns nothing/undefined.
+ */
+ handleSrc_(source: any, isRetry?: boolean): string | undefined;
+ resetRetryOnError_: () => void;
+ /**
+ * Get or set the video source.
+ *
+ * @param {Tech~SourceObject|Tech~SourceObject[]|string} [source]
+ * A SourceObject, an array of SourceObjects, or a string referencing
+ * a URL to a media source. It is _highly recommended_ that an object
+ * or array of objects is used here, so that source selection
+ * algorithms can take the `type` into account.
+ *
+ * If not provided, this method acts as a getter.
+ *
+ * @return {string|undefined}
+ * If the `source` argument is missing, returns the current source
+ * URL. Otherwise, returns nothing/undefined.
+ */
+ src(source: any): string | undefined;
+ /**
+ * Set the source object on the tech, returns a boolean that indicates whether
+ * there is a tech that can play the source or not
+ *
+ * @param {Tech~SourceObject} source
+ * The source object to set on the Tech
+ *
+ * @return {boolean}
+ * - True if there is no Tech to playback this source
+ * - False otherwise
+ *
+ * @private
+ */
+ private src_;
+ /**
+ * Begin loading the src data.
+ */
+ load(): void;
+ /**
+ * Reset the player. Loads the first tech in the techOrder,
+ * removes all the text tracks in the existing `tech`,
+ * and calls `reset` on the `tech`.
+ */
+ reset(): void;
+ doReset_(): void;
+ /**
+ * Reset Control Bar's UI by calling sub-methods that reset
+ * all of Control Bar's components
+ */
+ resetControlBarUI_(): void;
+ /**
+ * Reset tech's progress so progress bar is reset in the UI
+ */
+ resetProgressBar_(): void;
+ /**
+ * Reset Playback ratio
+ */
+ resetPlaybackRate_(): void;
+ /**
+ * Reset Volume bar
+ */
+ resetVolumeBar_(): void;
+ /**
+ * Returns all of the current source objects.
+ *
+ * @return {Tech~SourceObject[]}
+ * The current source objects
+ */
+ currentSources(): Tech;
+ /**
+ * Returns the current source object.
+ *
+ * @return {Tech~SourceObject}
+ * The current source object
+ */
+ currentSource(): Tech;
+ /**
+ * Returns the fully qualified URL of the current source value e.g. http://mysite.com/video.mp4
+ * Can be used in conjunction with `currentType` to assist in rebuilding the current source object.
+ *
+ * @return {string}
+ * The current source
+ */
+ currentSrc(): string;
+ /**
+ * Get the current source type e.g. video/mp4
+ * This can allow you rebuild the current source object so that you could load the same
+ * source and tech later
+ *
+ * @return {string}
+ * The source MIME type
+ */
+ currentType(): string;
+ /**
+ * Get or set the preload attribute
+ *
+ * @param {'none'|'auto'|'metadata'} [value]
+ * Preload mode to pass to tech
+ *
+ * @return {string|undefined}
+ * - The preload attribute value when getting
+ * - Nothing when setting
+ */
+ preload(value?: 'none' | 'auto' | 'metadata'): string | undefined;
+ /**
+ * Get or set the autoplay option. When this is a boolean it will
+ * modify the attribute on the tech. When this is a string the attribute on
+ * the tech will be removed and `Player` will handle autoplay on loadstarts.
+ *
+ * @param {boolean|'play'|'muted'|'any'} [value]
+ * - true: autoplay using the browser behavior
+ * - false: do not autoplay
+ * - 'play': call play() on every loadstart
+ * - 'muted': call muted() then play() on every loadstart
+ * - 'any': call play() on every loadstart. if that fails call muted() then play().
+ * - *: values other than those listed here will be set `autoplay` to true
+ *
+ * @return {boolean|string|undefined}
+ * - The current value of autoplay when getting
+ * - Nothing when setting
+ */
+ autoplay(value?: boolean | 'play' | 'muted' | 'any'): boolean | string | undefined;
+ /**
+ * Set or unset the playsinline attribute.
+ * Playsinline tells the browser that non-fullscreen playback is preferred.
+ *
+ * @param {boolean} [value]
+ * - true means that we should try to play inline by default
+ * - false means that we should use the browser's default playback mode,
+ * which in most cases is inline. iOS Safari is a notable exception
+ * and plays fullscreen by default.
+ *
+ * @return {string|undefined}
+ * - the current value of playsinline
+ * - Nothing when setting
+ *
+ * @see [Spec]{@link https://html.spec.whatwg.org/#attr-video-playsinline}
+ */
+ playsinline(value?: boolean): string | undefined;
+ /**
+ * Get or set the loop attribute on the video element.
+ *
+ * @param {boolean} [value]
+ * - true means that we should loop the video
+ * - false means that we should not loop the video
+ *
+ * @return {boolean|undefined}
+ * - The current value of loop when getting
+ * - Nothing when setting
+ */
+ loop(value?: boolean): boolean | undefined;
+ /**
+ * Get or set the poster image source url
+ *
+ * @fires Player#posterchange
+ *
+ * @param {string} [src]
+ * Poster image source URL
+ *
+ * @return {string|undefined}
+ * - The current value of poster when getting
+ * - Nothing when setting
+ */
+ poster(src?: string): string | undefined;
+ /**
+ * Some techs (e.g. YouTube) can provide a poster source in an
+ * asynchronous way. We want the poster component to use this
+ * poster source so that it covers up the tech's controls.
+ * (YouTube's play button). However we only want to use this
+ * source if the player user hasn't set a poster through
+ * the normal APIs.
+ *
+ * @fires Player#posterchange
+ * @listens Tech#posterchange
+ * @private
+ */
+ private handleTechPosterChange_;
+ /**
+ * Get or set whether or not the controls are showing.
+ *
+ * @fires Player#controlsenabled
+ *
+ * @param {boolean} [bool]
+ * - true to turn controls on
+ * - false to turn controls off
+ *
+ * @return {boolean|undefined}
+ * - The current value of controls when getting
+ * - Nothing when setting
+ */
+ controls(bool?: boolean): boolean | undefined;
+ /**
+ * Toggle native controls on/off. Native controls are the controls built into
+ * devices (e.g. default iPhone controls) or other techs
+ * (e.g. Vimeo Controls)
+ * **This should only be set by the current tech, because only the tech knows
+ * if it can support native controls**
+ *
+ * @fires Player#usingnativecontrols
+ * @fires Player#usingcustomcontrols
+ *
+ * @param {boolean} [bool]
+ * - true to turn native controls on
+ * - false to turn native controls off
+ *
+ * @return {boolean|undefined}
+ * - The current value of native controls when getting
+ * - Nothing when setting
+ */
+ usingNativeControls(bool?: boolean): boolean | undefined;
+ usingNativeControls_: any;
+ /**
+ * Set or get the current MediaError
+ *
+ * @fires Player#error
+ *
+ * @param {MediaError|string|number} [err]
+ * A MediaError or a string/number to be turned
+ * into a MediaError
+ *
+ * @return {MediaError|null|undefined}
+ * - The current MediaError when getting (or null)
+ * - Nothing when setting
+ */
+ error(err?: MediaError | string | number): MediaError | null | undefined;
+ error_: MediaError;
+ /**
+ * Report user activity
+ *
+ * @param {Object} event
+ * Event object
+ */
+ reportUserActivity(event: any): void;
+ userActivity_: boolean;
+ /**
+ * Get/set if user is active
+ *
+ * @fires Player#useractive
+ * @fires Player#userinactive
+ *
+ * @param {boolean} [bool]
+ * - true if the user is active
+ * - false if the user is inactive
+ *
+ * @return {boolean|undefined}
+ * - The current value of userActive when getting
+ * - Nothing when setting
+ */
+ userActive(bool?: boolean): boolean | undefined;
+ /**
+ * Listen for user activity based on timeout value
+ *
+ * @private
+ */
+ private listenForUserActivity_;
+ /**
+ * Gets or sets the current playback rate. A playback rate of
+ * 1.0 represents normal speed and 0.5 would indicate half-speed
+ * playback, for instance.
+ *
+ * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-playbackrate
+ *
+ * @param {number} [rate]
+ * New playback rate to set.
+ *
+ * @return {number|undefined}
+ * - The current playback rate when getting or 1.0
+ * - Nothing when setting
+ */
+ playbackRate(rate?: number): number | undefined;
+ /**
+ * Gets or sets the current default playback rate. A default playback rate of
+ * 1.0 represents normal speed and 0.5 would indicate half-speed playback, for instance.
+ * defaultPlaybackRate will only represent what the initial playbackRate of a video was, not
+ * not the current playbackRate.
+ *
+ * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-defaultplaybackrate
+ *
+ * @param {number} [rate]
+ * New default playback rate to set.
+ *
+ * @return {number|undefined}
+ * - The default playback rate when getting or 1.0
+ * - Nothing when setting
+ */
+ defaultPlaybackRate(rate?: number): number | undefined;
+ /**
+ * Gets or sets the audio flag
+ *
+ * @param {boolean} [bool]
+ * - true signals that this is an audio player
+ * - false signals that this is not an audio player
+ *
+ * @return {boolean|undefined}
+ * - The current value of isAudio when getting
+ * - Nothing when setting
+ */
+ isAudio(bool?: boolean): boolean | undefined;
+ isAudio_: boolean;
+ enableAudioOnlyUI_(): void;
+ disableAudioOnlyUI_(): void;
+ /**
+ * Get the current audioOnlyMode state or set audioOnlyMode to true or false.
+ *
+ * Setting this to `true` will hide all player components except the control bar,
+ * as well as control bar components needed only for video.
+ *
+ * @param {boolean} [value]
+ * The value to set audioOnlyMode to.
+ *
+ * @return {Promise|boolean}
+ * A Promise is returned when setting the state, and a boolean when getting
+ * the present state
+ */
+ audioOnlyMode(value?: boolean): Promise<any> | boolean;
+ enablePosterModeUI_(): void;
+ disablePosterModeUI_(): void;
+ /**
+ * Get the current audioPosterMode state or set audioPosterMode to true or false
+ *
+ * @param {boolean} [value]
+ * The value to set audioPosterMode to.
+ *
+ * @return {Promise|boolean}
+ * A Promise is returned when setting the state, and a boolean when getting
+ * the present state
+ */
+ audioPosterMode(value?: boolean): Promise<any> | boolean;
+ /**
+ * A helper method for adding a {@link TextTrack} to our
+ * {@link TextTrackList}.
+ *
+ * In addition to the W3C settings we allow adding additional info through options.
+ *
+ * @see http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#dom-media-addtexttrack
+ *
+ * @param {string} [kind]
+ * the kind of TextTrack you are adding
+ *
+ * @param {string} [label]
+ * the label to give the TextTrack label
+ *
+ * @param {string} [language]
+ * the language to set on the TextTrack
+ *
+ * @return {TextTrack|undefined}
+ * the TextTrack that was added or undefined
+ * if there is no tech
+ */
+ addTextTrack(kind?: string, label?: string, language?: string): TextTrack | undefined;
+ /**
+ * Create a remote {@link TextTrack} and an {@link HTMLTrackElement}.
+ *
+ * @param {Object} options
+ * Options to pass to {@link HTMLTrackElement} during creation. See
+ * {@link HTMLTrackElement} for object properties that you should use.
+ *
+ * @param {boolean} [manualCleanup=false] if set to true, the TextTrack will not be removed
+ * from the TextTrackList and HtmlTrackElementList
+ * after a source change
+ *
+ * @return { import('./tracks/html-track-element').default }
+ * the HTMLTrackElement that was created and added
+ * to the HtmlTrackElementList and the remote
+ * TextTrackList
+ *
+ */
+ addRemoteTextTrack(options: any, manualCleanup?: boolean): import('./tracks/html-track-element').default;
+ /**
+ * Remove a remote {@link TextTrack} from the respective
+ * {@link TextTrackList} and {@link HtmlTrackElementList}.
+ *
+ * @param {Object} track
+ * Remote {@link TextTrack} to remove
+ *
+ * @return {undefined}
+ * does not return anything
+ */
+ removeRemoteTextTrack(obj?: {}): undefined;
+ /**
+ * Gets available media playback quality metrics as specified by the W3C's Media
+ * Playback Quality API.
+ *
+ * @see [Spec]{@link https://wicg.github.io/media-playback-quality}
+ *
+ * @return {Object|undefined}
+ * An object with supported media playback quality metrics or undefined if there
+ * is no tech or the tech does not support it.
+ */
+ getVideoPlaybackQuality(): any | undefined;
+ /**
+ * Get video width
+ *
+ * @return {number}
+ * current video width
+ */
+ videoWidth(): number;
+ /**
+ * Get video height
+ *
+ * @return {number}
+ * current video height
+ */
+ videoHeight(): number;
+ /**
+ * Set or get the player's language code.
+ *
+ * Changing the language will trigger
+ * [languagechange]{@link Player#event:languagechange}
+ * which Components can use to update control text.
+ * ClickableComponent will update its control text by default on
+ * [languagechange]{@link Player#event:languagechange}.
+ *
+ * @fires Player#languagechange
+ *
+ * @param {string} [code]
+ * the language code to set the player to
+ *
+ * @return {string|undefined}
+ * - The current language code when getting
+ * - Nothing when setting
+ */
+ language(code?: string): string | undefined;
+ language_: string;
+ /**
+ * Get the player's language dictionary
+ * Merge every time, because a newly added plugin might call videojs.addLanguage() at any time
+ * Languages specified directly in the player options have precedence
+ *
+ * @return {Array}
+ * An array of of supported languages
+ */
+ languages(): any[];
+ /**
+ * returns a JavaScript object representing the current track
+ * information. **DOES not return it as JSON**
+ *
+ * @return {Object}
+ * Object representing the current of track info
+ */
+ toJSON(): any;
+ /**
+ * Creates a simple modal dialog (an instance of the {@link ModalDialog}
+ * component) that immediately overlays the player with arbitrary
+ * content and removes itself when closed.
+ *
+ * @param {string|Function|Element|Array|null} content
+ * Same as {@link ModalDialog#content}'s param of the same name.
+ * The most straight-forward usage is to provide a string or DOM
+ * element.
+ *
+ * @param {Object} [options]
+ * Extra options which will be passed on to the {@link ModalDialog}.
+ *
+ * @return {ModalDialog}
+ * the {@link ModalDialog} that was created
+ */
+ createModal(content: string | Function | Element | any[] | null, options?: any): ModalDialog;
+ /**
+ * Change breakpoint classes when the player resizes.
+ *
+ * @private
+ */
+ private updateCurrentBreakpoint_;
+ breakpoint_: string;
+ /**
+ * Removes the current breakpoint.
+ *
+ * @private
+ */
+ private removeCurrentBreakpoint_;
+ /**
+ * Get or set breakpoints on the player.
+ *
+ * Calling this method with an object or `true` will remove any previous
+ * custom breakpoints and start from the defaults again.
+ *
+ * @param {Object|boolean} [breakpoints]
+ * If an object is given, it can be used to provide custom
+ * breakpoints. If `true` is given, will set default breakpoints.
+ * If this argument is not given, will simply return the current
+ * breakpoints.
+ *
+ * @param {number} [breakpoints.tiny]
+ * The maximum width for the "vjs-layout-tiny" class.
+ *
+ * @param {number} [breakpoints.xsmall]
+ * The maximum width for the "vjs-layout-x-small" class.
+ *
+ * @param {number} [breakpoints.small]
+ * The maximum width for the "vjs-layout-small" class.
+ *
+ * @param {number} [breakpoints.medium]
+ * The maximum width for the "vjs-layout-medium" class.
+ *
+ * @param {number} [breakpoints.large]
+ * The maximum width for the "vjs-layout-large" class.
+ *
+ * @param {number} [breakpoints.xlarge]
+ * The maximum width for the "vjs-layout-x-large" class.
+ *
+ * @param {number} [breakpoints.huge]
+ * The maximum width for the "vjs-layout-huge" class.
+ *
+ * @return {Object}
+ * An object mapping breakpoint names to maximum width values.
+ */
+ breakpoints(breakpoints?: any | boolean): any;
+ breakpoints_: any;
+ /**
+ * Get or set a flag indicating whether or not this player should adjust
+ * its UI based on its dimensions.
+ *
+ * @param {boolean} [value]
+ * Should be `true` if the player should adjust its UI based on its
+ * dimensions; otherwise, should be `false`.
+ *
+ * @return {boolean|undefined}
+ * Will be `true` if this player should adjust its UI based on its
+ * dimensions; otherwise, will be `false`.
+ * Nothing if setting
+ */
+ responsive(value?: boolean): boolean | undefined;
+ responsive_: any;
+ /**
+ * Get current breakpoint name, if any.
+ *
+ * @return {string}
+ * If there is currently a breakpoint set, returns a the key from the
+ * breakpoints object matching it. Otherwise, returns an empty string.
+ */
+ currentBreakpoint(): string;
+ /**
+ * Get the current breakpoint class name.
+ *
+ * @return {string}
+ * The matching class name (e.g. `"vjs-layout-tiny"` or
+ * `"vjs-layout-large"`) for the current breakpoint. Empty string if
+ * there is no current breakpoint.
+ */
+ currentBreakpointClass(): string;
+ /**
+ * An object that describes a single piece of media.
+ *
+ * Properties that are not part of this type description will be retained; so,
+ * this can be viewed as a generic metadata storage mechanism as well.
+ *
+ * @see {@link https://wicg.github.io/mediasession/#the-mediametadata-interface}
+ * @typedef {Object} Player~MediaObject
+ *
+ * @property {string} [album]
+ * Unused, except if this object is passed to the `MediaSession`
+ * API.
+ *
+ * @property {string} [artist]
+ * Unused, except if this object is passed to the `MediaSession`
+ * API.
+ *
+ * @property {Object[]} [artwork]
+ * Unused, except if this object is passed to the `MediaSession`
+ * API. If not specified, will be populated via the `poster`, if
+ * available.
+ *
+ * @property {string} [poster]
+ * URL to an image that will display before playback.
+ *
+ * @property {Tech~SourceObject|Tech~SourceObject[]|string} [src]
+ * A single source object, an array of source objects, or a string
+ * referencing a URL to a media source. It is _highly recommended_
+ * that an object or array of objects is used here, so that source
+ * selection algorithms can take the `type` into account.
+ *
+ * @property {string} [title]
+ * Unused, except if this object is passed to the `MediaSession`
+ * API.
+ *
+ * @property {Object[]} [textTracks]
+ * An array of objects to be used to create text tracks, following
+ * the {@link https://www.w3.org/TR/html50/embedded-content-0.html#the-track-element|native track element format}.
+ * For ease of removal, these will be created as "remote" text
+ * tracks and set to automatically clean up on source changes.
+ *
+ * These objects may have properties like `src`, `kind`, `label`,
+ * and `language`, see {@link Tech#createRemoteTextTrack}.
+ */
+ /**
+ * Populate the player using a {@link Player~MediaObject|MediaObject}.
+ *
+ * @param {Player~MediaObject} media
+ * A media object.
+ *
+ * @param {Function} ready
+ * A callback to be called when the player is ready.
+ */
+ loadMedia(media: any, ready: Function): void;
+ /**
+ * Get a clone of the current {@link Player~MediaObject} for this player.
+ *
+ * If the `loadMedia` method has not been used, will attempt to return a
+ * {@link Player~MediaObject} based on the current state of the player.
+ *
+ * @return {Player~MediaObject}
+ */
+ getMedia(): Player;
+ /**
+ * Set debug mode to enable/disable logs at info level.
+ *
+ * @param {boolean} enabled
+ * @fires Player#debugon
+ * @fires Player#debugoff
+ * @return {boolean|undefined}
+ */
+ debug(enabled: boolean): boolean | undefined;
+ previousLogLevel_: any;
+ /**
+ * Set or get current playback rates.
+ * Takes an array and updates the playback rates menu with the new items.
+ * Pass in an empty array to hide the menu.
+ * Values other than arrays are ignored.
+ *
+ * @fires Player#playbackrateschange
+ * @param {number[]} [newRates]
+ * The new rates that the playback rates menu should update to.
+ * An empty array will hide the menu
+ * @return {number[]} When used as a getter will return the current playback rates
+ */
+ playbackRates(newRates?: number[]): number[];
+ /**
+ * Get or set the `Player`'s crossorigin option. For the HTML5 player, this
+ * sets the `crossOrigin` property on the `<video>` tag to control the CORS
+ * behavior.
+ *
+ * @see [Video Element Attributes]{@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video#attr-crossorigin}
+ *
+ * @param {string} [value]
+ * The value to set the `Player`'s crossorigin to. If an argument is
+ * given, must be one of `anonymous` or `use-credentials`.
+ *
+ * @return {string|undefined}
+ * - The current crossorigin value of the `Player` when getting.
+ * - undefined when setting
+ */
+ crossorigin: (value?: string | null) => string | null | undefined;
+ options_: {
+ techOrder: any[];
+ html5: {};
+ enableSourceset: boolean;
+ inactivityTimeout: number;
+ playbackRates: any[];
+ liveui: boolean;
+ children: string[];
+ language: any;
+ languages: {};
+ notSupportedMessage: string;
+ normalizeAutoplay: boolean;
+ fullscreen: {
+ options: {
+ navigationUI: string;
+ };
+ };
+ breakpoints: {};
+ responsive: boolean;
+ audioOnlyMode: boolean;
+ audioPosterMode: boolean;
+ enableSmoothSeeking: boolean;
+ };
+}
+declare namespace Player {
+ const players: any;
+}
+import Component from "./component.js";
+import Tech from "./tech/tech.js";
+import MediaError from "./media-error.js";
+import ModalDialog from "./modal-dialog";
+//# sourceMappingURL=player.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/player.d.ts.map b/priv/static/video.js/types/player.d.ts.map
new file mode 100644
index 0000000..a920a94
--- /dev/null
+++ b/priv/static/video.js/types/player.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"player.d.ts","sourceRoot":"","sources":["../../src/js/player.js"],"names":[],"mappings":";AA0RA;;;;;;;;;;;GAWG;AACH;IA0wJE;;;;;;;;;OASG;IACH,2BAPW,OAAO,OAuDjB;IAl0JD;;;;;;;;;;;OAWG;IACH,iBATW,OAAO,mCAkTjB;IAlQC,iDAA8E;IAC9E,2CAAiE;IAEjE,sCAAwD;IACxD,sCAAwD;IACxD,gDAA4E;IAE5E,wCAA4D;IAC5D,8CAAwE;IACxE,6CAAsE;IACtE,4CAAoE;IACpE,2CAAkE;IAClE,sCAAwD;IAGxD,uBAA0B;IAG1B,SAAiC;IAGjC,YAA2B;IAG3B,2BAA8B;IAI9B,wBAA0B;IAM1B,qBAAwB;IAGxB,qBAAwB;IAGxB,uBAA0B;IAG1B,wBAA2B;IAG3B,0BAA6B;IAG7B;;;MAGC;IAaD,aAAc;IAGd,mBAAkD;IAahD,eAAkC;IAQpC,mBAAmB;IACnB,SADU,MAAM,CACmB;IAGnC,sBAAsB;IACtB,WADW,OAAO,CACiB;IAQnC,sBAAyB;IACzB,sBAAwB;IACxB,4BAA8B;IA0B9B,oBAAuB;IAEvB,aAA0B;IAqC1B,mBAAqB;IA2FvB;;;;;;;OAOG;IACH,gBA+DC;IA9CG,kBAAoB;IAqBpB,qBAA2B;IA2B/B;;;;;OAKG;IACH,YAHY,OAAO,CAwKlB;IAjDC,eAAkB;IAClB,gBAAmB;IAkDrB;;;;;;;;;;;;;;OAcG;IACH,oBARW,MAAM,GAAC,IAAI,GAIV,MAAM,GAAC,IAAI,GAAC,SAAS,CAqBhC;IAED;;;;;;;;;;OAUG;IACH,cAPW,MAAM,GAAC,MAAM,GAGZ,MAAM,GAAC,SAAS,CAM3B;IAED;;;;;;;;;;OAUG;IACH,eAPW,MAAM,GAAC,MAAM,GAGZ,MAAM,GAAC,SAAS,CAM3B;IAED;;;;;;;;;;;;;OAaG;IACH,qBAXW,MAAM,UAKN,MAAM,GAAC,MAAM,GAGZ,MAAM,CA0BjB;IAED;;;;;;;;;;;;;OAaG;IACH,aATW,OAAO,GAKN,OAAO,GAAC,SAAS,CAyB5B;IAED;;;;;;;;;;;;;OAaG;IACH,YATW,OAAO,GAKN,OAAO,GAAC,SAAS,CAiB5B;IAED;;;;;;;;OAQG;IAEH;;;;;;;;;OASG;IACH,oBAPW,MAAM,GAGL,MAAM,GAAC,SAAS,CAoB3B;IAPC,qBAAyB;IAS3B;;;;;OAKG;IACH,uBA8EC;IAED;;;;;;;;;;;OAWG;IACH,kBAuIC;IAtHC,kBAA8B;IA0D9B,WAAuC;IA8DzC;;;;OAIG;IACH,oBAqBC;IAdC,uBAAsE;IAgBxE;;;;;;;;;;OAUG;IACH,oBAHY,IAAI,CAUf;IAED;;;;;;OAMG;IAEH;;;;;OAKG;IACH;;;;YATc,MAAM;MAanB;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,kCAiBC;IAED;;;;;OAKG;IACH,qCASC;IAED;;;;OAIG;IACH,yBAaC;IAED;;;;;;OAMG;IACH,6BA4BC;IAED;;;;;OAKG;IACH,0CAwDC;IAED;;;;;;;;;;OAUG;IACH,2CAkDC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH;;;;;;OAMG;IACH,6BA+CC;IANC;;;MAAsE;IAQxE;;;;;;;;;;OAUG;IACH,oBAPW,OAAO,GAIN,OAAO,CAoBlB;IAED;;;;;;;OAOG;IACH,wBAcC;IAED;;;;;;;;;;OAUG;IACH,8BAaC;IAED;;;;;;OAMG;IACH,2BAqBC;IAED;;;;;;;OAOG;IACH,2BASC;IAED;;;;;;OAMG;IACH,kCAUC;IAED;;;;;;OAMG;IACH,2BASC;IAED;;;;;;OAMG;IACH,2BASC;IAED;;;;;;OAMG;IACH,0BASC;IAED;;;;;;OAMG;IACH,yBAUC;IAED;;;;;;OAMG;IACH,yBAiBC;IAED;;;;;OAKG;IACH,kCAEC;IAED;;;;;;;;OAQG;IACH,yBA4BC;IAED;;;;;;;;OAQG;IACH,+BA0CC;IAED;;;;;;OAMG;IACH,uBAEC;IAED;;;;;OAKG;IACH,8BAEC;IADC,uBAAsC;IAGxC;;;;;OAKG;IACH,6BAIC;IAED;;;;;;;;;OASG;IACH,4BAKC;IAED;;OAEG;IACH,+BAMC;IAED;;OAEG;IACH,wCAiBC;IAED;;;;;;;;;;;;OAYG;IACH,oCAUC;IAED,uDAEC;IAED;;OAEG;IACH,qCAMC;IAED;;;;;;;;OAQG;IACH,yCAEC;IAED;;;;;;;;OAQG;IACH,yCAEC;IAED;;;;;OAKG;IACH,yBAMC;IAED;;;;;;OAMG;IACH,4BAcC;IAED;;;;;OAKG;IACH,gBAEC;IAED;;;;;;;OAOG;IACH,oBAoBC;IAnBC;;;;;;;;;;;;;MAkBC;IAGH;;;;;;;;;;OAUG;IACH,kBAoBC;IAED;;;;;;;;;;;;OAYG;IACH,iBAmCC;IAED;;;;;;;;;OASG;IACH,QAPY,eAAQ,SAAS,CAW5B;IAED;;;;;;;;OAQG;IACH,cA2CC;IAlCG,8BAAuB;IAoC3B;;;;OAIG;IACH,gCAQC;IAED;;;;;;;;OAQG;IACH,uBAHW,SAAS,eAAQ,QAa3B;IAED;;OAEG;IACH,cAEC;IAED;;;;;;OAMG;IACH,UAJY,OAAO,CAOlB;IAED;;;;;;;OAOG;IACH,UAJa,OAAO,cAAc,EAAE,SAAS,CAM5C;IAED;;;;;;;;;;;OAWG;IACH,wBAPW,OAAO,GAGN,OAAO,GAAC,SAAS,CAgB5B;IAED;;;;;;;;;OASG;IACH,sBAPW,MAAM,GAAC,MAAM,GAGZ,MAAM,GAAC,SAAS,CAiC3B;IAED;;;;OAIG;IACH,uBAEC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,mBAPW,MAAM,GAGL,MAAM,GAAC,SAAS,CAqC3B;IAED;;;;;;OAMG;IACH,iBAHY,MAAM,CAKjB;IAED;;;;;;OAMG;IACH,wBAHY,MAAM,CAKjB;IAKD;;;;;;;;;OASG;IACH,YAHa,OAAO,cAAc,EAAE,SAAS,CAW5C;IAED;;;;;;;;OAQG;IACH,YAHa,OAAO,cAAc,EAAE,SAAS,CAW5C;IAED;;;;OAIG;IACH,WAFY,OAAO,CAIlB;IAED;;;;OAIG;IACH,SAFY,OAAO,CAIlB;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,gBAFY,MAAM,CAIjB;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,cAFY,MAAM,CAIjB;IAED;;;;;;;OAOG;IACH,mBAJY,MAAM,CAMjB;IAED;;;;;;OAMG;IACH,eAHY,MAAM,CAajB;IAED;;;;;;;;;;;OAWG;IACH,0BATY,MAAM,GAMN,MAAM,GAAC,SAAS,CAsB3B;IAED;;;;;;;;;;;OAWG;IACH,cATW,OAAO,GAIN,OAAO,GAAC,SAAS,CAW5B;IAED;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,4BATW,OAAO,GAIN,OAAO,GAAC,SAAS,CAU5B;IAED;;;;;;;;;;;;;;OAcG;IACH,oBAMC;IAED;;;;;;OAMG;IACH,sBAHY,OAAO,CAKlB;IAED;;;;;;;;;;;;;;;OAeG;IACH,oBARY,OAAO,GAGP,OAAO,GAAC,SAAS,CA0B5B;IAED;;;;;;;;;;;;;OAaG;IACH,yDA+BC;IAED,sDAqCC;IAED;;;;OAIG;IACH,+BA4BC;IAED,6BAiBC;IAED;;;;;OAKG;IACH,wBAqBC;IAnBC,sBAAwB;IAGxB,qBAA8D;IAkBhE;;;;;;OAMG;IACH,0BAHW,MAAM,QAahB;IAED;;;;OAIG;IACH,uBAkBC;IAED;;;;;;OAMG;IACH,gCAJW,OAAO,OAWjB;IAED;;;;;;;;;;;OAWG;IACH,6BARY,OAAO,GAGP,OAAO,GAAC,SAAS,CAY5B;IALG,+BAAoC;IAOxC;;;;;;;;;;;;;;;;;;OAkBG;IACH,wCAkDC;IAED;;;;;;;;;OASG;IACH,qCAgBC;IAgED;;;;;;;;;;OAUG;IACH,qBAHW,KAAK,QAuCf;IAED;;;;;;;;;;OAUG;IACH,kBANW,MAAM,GAGL,MAAM,CAkCjB;IAED;;;;;;;;;;OAUG;IACH,8BAHY,MAAO,OAAO,CA4DzB;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,kCAPW,OAAO,GAGN,MAAM,GAAC,SAAS,CAgG3B;IALG,+BAGC;IAIL;;;;;;;;;;;;;;OAcG;IACH,kBAJY,MAAM,GAAC,SAAS,CAM3B;IAED;;;;;;;;;;;;OAYG;IACH,aAmCC;IAED;;OAEG;IACH,aAUC;IAED;;;;OAIG;IACH,cAQC;IAED,iBA0BC;IAED;;;OAGG;IACH,2BAIC;IAED;;OAEG;IACH,0BA8BC;IAED;;OAEG;IACH,2BAGC;IAED;;OAEG;IACH,wBAGC;IAED;;;;;OAKG;IACH,kBAHY,IAAI,CAaf;IAED;;;;;OAKG;IACH,iBAHY,IAAI,CAKf;IAED;;;;;;OAMG;IACH,cAHY,MAAM,CAKjB;IAED;;;;;;;OAOG;IACH,eAHY,MAAM,CAKjB;IAED;;;;;;;;;OASG;IACH,gBAPW,MAAM,GAAC,MAAM,GAAC,UAAU,GAGvB,MAAM,GAAC,SAAS,CAW3B;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,iBAZW,OAAO,GAAC,MAAM,GAAC,OAAO,GAAC,KAAK,GAQ3B,OAAO,GAAC,MAAM,GAAC,SAAS,CAqCnC;IAED;;;;;;;;;;;;;;;OAeG;IACH,oBAZW,OAAO,GAMN,MAAM,GAAC,SAAS,CAY3B;IAED;;;;;;;;;;OAUG;IACH,aARW,OAAO,GAIN,OAAO,GAAC,SAAS,CAW5B;IAED;;;;;;;;;;;OAWG;IACH,aAPW,MAAM,GAGL,MAAM,GAAC,SAAS,CAmC3B;IAED;;;;;;;;;;;OAWG;IACH,gCAYC;IAED;;;;;;;;;;;;OAYG;IACH,gBARW,OAAO,GAIN,OAAO,GAAC,SAAS,CA6C5B;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,2BARW,OAAO,GAIN,OAAO,GAAC,SAAS,CAuC5B;IAvBC,0BAAgC;IAyBlC;;;;;;;;;;;;OAYG;IACH,YARY,UAAU,GAAC,MAAM,GAAC,MAAM,GAIxB,UAAU,GAAC,IAAI,GAAC,SAAS,CAwEpC;IA3BG,mBAAkB;IA6BtB;;;;;OAKG;IACH,qCAEC;IADC,uBAAyB;IAG3B;;;;;;;;;;;;;OAaG;IACH,kBARW,OAAO,GAIN,OAAO,GAAC,SAAS,CAoD5B;IAED;;;;OAIG;IACH,+BA2GC;IAED;;;;;;;;;;;;;OAaG;IACH,oBAPW,MAAM,GAGL,MAAM,GAAC,SAAS,CAgB3B;IAED;;;;;;;;;;;;;;OAcG;IACH,2BAPW,MAAM,GAGL,MAAM,GAAC,SAAS,CAa3B;IAED;;;;;;;;;;OAUG;IACH,eARW,OAAO,GAIN,OAAO,GAAC,SAAS,CAW5B;IALG,kBAAsB;IAO1B,2BA2BC;IAED,4BASC;IAED;;;;;;;;;;;;OAYG;IACH,sBAPW,OAAO,GAGN,eAAQ,OAAO,CAiC1B;IAED,4BAOC;IAED,6BAOC;IAED;;;;;;;;;OASG;IACH,wBAPW,OAAO,GAGN,eAAQ,OAAO,CAiC1B;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,oBAbW,MAAM,UAGN,MAAM,aAGN,MAAM,GAGL,SAAS,GAAC,SAAS,CAQ9B;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,iDAVW,OAAO,GAIL,OAAO,6BAA6B,EAAE,OAAO,CAUzD;IAED;;;;;;;;;OASG;IACH,iCAHY,SAAS,CAgBpB;IAED;;;;;;;;;OASG;IACH,2BAJY,MAAO,SAAS,CAM3B;IAED;;;;;OAKG;IACH,cAHY,MAAM,CAKjB;IAED;;;;;OAKG;IACH,eAHY,MAAM,CAKjB;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,gBAPW,MAAM,GAGL,MAAM,GAAC,SAAS,CAuB3B;IAbG,kBAA2C;IAe/C;;;;;;;OAOG;IACH,mBAEC;IAED;;;;;;OAMG;IACH,cAgBC;IAED;;;;;;;;;;;;;;;OAeG;IACH,qBAXW,MAAM,cAAU,OAAO,WAAO,IAAI,kBAQjC,WAAW,CAgBtB;IAED;;;;OAIG;IACH,iCA6BC;IAJK,oBAAsC;IAM5C;;;;OAIG;IACH,iCAQC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACH,0BA9BY,MAAO,OAAO,OA8CzB;IARC,kBAAuE;IAUzE;;;;;;;;;;;;OAYG;IACH,mBATY,OAAO,GAIP,OAAO,GAAC,SAAS,CAoC5B;IAfC,iBAAwB;IAiB1B;;;;;;OAMG;IACH,qBAJY,MAAM,CAMjB;IAED;;;;;;;OAOG;IACH,0BALY,MAAM,CAOjB;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2CG;IAEH;;;;;;;;OAQG;IACH,6CA8CC;IAED;;;;;;;OAOG;IACH,YAFY,MAAM,CA2BjB;IA8DD;;;;;;;OAOG;IACH,eALW,OAAO,GAGN,OAAO,GAAC,SAAS,CAkB5B;IAVG,uBAAuC;IAY3C;;;;;;;;;;;OAWG;IACH,yBALW,MAAM,EAAE,GAGP,MAAM,EAAE,CA0BnB;IAqEH;;;;;;;;;;;;;;OAcG;IACH,sBAl6Ia,MAAM,GAAC,IAAI,KAIV,MAAM,GAAC,IAAI,GAAC,SAAS,CA85IP;IAsB5B;;;;;;;;;;;;;;;;;;;;;;MAAyB;CAzGxB"} \ No newline at end of file
diff --git a/priv/static/video.js/types/plugin.d.ts b/priv/static/video.js/types/plugin.d.ts
new file mode 100644
index 0000000..451a4eb
--- /dev/null
+++ b/priv/static/video.js/types/plugin.d.ts
@@ -0,0 +1,184 @@
+export default Plugin;
+export type PluginEventHash = {
+ /**
+ * For basic plugins, the return value of the plugin function. For
+ * advanced plugins, the plugin instance on which the event is fired.
+ */
+ instance: string;
+ /**
+ * The name of the plugin.
+ */
+ name: string;
+ /**
+ * For basic plugins, the plugin function. For advanced plugins, the
+ * plugin class/constructor.
+ */
+ plugin: string;
+};
+/**
+ * Parent class for all advanced plugins.
+ *
+ * @mixes module:evented~EventedMixin
+ * @mixes module:stateful~StatefulMixin
+ * @fires Player#beforepluginsetup
+ * @fires Player#beforepluginsetup:$name
+ * @fires Player#pluginsetup
+ * @fires Player#pluginsetup:$name
+ * @listens Player#dispose
+ * @throws {Error}
+ * If attempting to instantiate the base {@link Plugin} class
+ * directly instead of via a sub-class.
+ */
+declare class Plugin {
+ /**
+ * Determines if a plugin is a basic plugin (i.e. not a sub-class of `Plugin`).
+ *
+ * @param {string|Function} plugin
+ * If a string, matches the name of a plugin. If a function, will be
+ * tested directly.
+ *
+ * @return {boolean}
+ * Whether or not a plugin is a basic plugin.
+ */
+ static isBasic(plugin: string | Function): boolean;
+ /**
+ * Register a Video.js plugin.
+ *
+ * @param {string} name
+ * The name of the plugin to be registered. Must be a string and
+ * must not match an existing plugin or a method on the `Player`
+ * prototype.
+ *
+ * @param {typeof Plugin|Function} plugin
+ * A sub-class of `Plugin` or a function for basic plugins.
+ *
+ * @return {typeof Plugin|Function}
+ * For advanced plugins, a factory function for that plugin. For
+ * basic plugins, a wrapper function that initializes the plugin.
+ */
+ static registerPlugin(name: string, plugin: typeof Plugin | Function): typeof Plugin | Function;
+ /**
+ * De-register a Video.js plugin.
+ *
+ * @param {string} name
+ * The name of the plugin to be de-registered. Must be a string that
+ * matches an existing plugin.
+ *
+ * @throws {Error}
+ * If an attempt is made to de-register the base plugin.
+ */
+ static deregisterPlugin(name: string): void;
+ /**
+ * Gets an object containing multiple Video.js plugins.
+ *
+ * @param {Array} [names]
+ * If provided, should be an array of plugin names. Defaults to _all_
+ * plugin names.
+ *
+ * @return {Object|undefined}
+ * An object containing plugin(s) associated with their name(s) or
+ * `undefined` if no matching plugins exist).
+ */
+ static getPlugins(names?: any[]): any | undefined;
+ /**
+ * Gets a plugin's version, if available
+ *
+ * @param {string} name
+ * The name of a plugin.
+ *
+ * @return {string}
+ * The plugin's version or an empty string.
+ */
+ static getPluginVersion(name: string): string;
+ /**
+ * Creates an instance of this class.
+ *
+ * Sub-classes should call `super` to ensure plugins are properly initialized.
+ *
+ * @param {Player} player
+ * A Video.js player instance.
+ */
+ constructor(player: Player);
+ player: Player;
+ log: any;
+ /**
+ * Disposes a plugin.
+ *
+ * Subclasses can override this if they want, but for the sake of safety,
+ * it's probably best to subscribe the "dispose" event.
+ *
+ * @fires Plugin#dispose
+ */
+ dispose(): void;
+ /**
+ * Get the version of the plugin that was set on <pluginName>.VERSION
+ */
+ version(): any;
+ /**
+ * Each event triggered by plugins includes a hash of additional data with
+ * conventional properties.
+ *
+ * This returns that object or mutates an existing hash.
+ *
+ * @param {Object} [hash={}]
+ * An object to be used as event an event hash.
+ *
+ * @return {PluginEventHash}
+ * An event hash object with provided properties mixed-in.
+ */
+ getEventHash(hash?: any): PluginEventHash;
+ /**
+ * Triggers an event on the plugin object and overrides
+ * {@link module:evented~EventedMixin.trigger|EventedMixin.trigger}.
+ *
+ * @param {string|Object} event
+ * An event type or an object with a type property.
+ *
+ * @param {Object} [hash={}]
+ * Additional data hash to merge with a
+ * {@link PluginEventHash|PluginEventHash}.
+ *
+ * @return {boolean}
+ * Whether or not default was prevented.
+ */
+ trigger(event: string | any, hash?: any): boolean;
+ /**
+ * Handles "statechanged" events on the plugin. No-op by default, override by
+ * subclassing.
+ *
+ * @abstract
+ * @param {Event} e
+ * An event object provided by a "statechanged" event.
+ *
+ * @param {Object} e.changes
+ * An object describing changes that occurred with the "statechanged"
+ * event.
+ */
+ handleStateChanged(e: Event): void;
+ state: any;
+}
+declare namespace Plugin {
+ export { getPlugin };
+ export { BASE_PLUGIN_NAME };
+}
+import Player from "./player";
+/**
+ * Get a single registered plugin by name.
+ *
+ * @private
+ * @param {string} name
+ * The name of a plugin.
+ *
+ * @return {typeof Plugin|Function|undefined}
+ * The plugin (or undefined).
+ */
+declare function getPlugin(name: string): typeof Plugin | Function | undefined;
+/**
+ * The base plugin name.
+ *
+ * @private
+ * @constant
+ * @type {string}
+ */
+declare const BASE_PLUGIN_NAME: string;
+//# sourceMappingURL=plugin.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/plugin.d.ts.map b/priv/static/video.js/types/plugin.d.ts.map
new file mode 100644
index 0000000..4c5f2c2
--- /dev/null
+++ b/priv/static/video.js/types/plugin.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/js/plugin.js"],"names":[],"mappings":";;;;;;cAigBc,MAAM;;;;UAIN,MAAM;;;;;YAGN,MAAM;;AA3VpB;;;;;;;;;;;;;GAaG;AACH;IA+HE;;;;;;;;;OASG;IACH,uBAPa,MAAM,WAAS,GAIhB,OAAO,CAOlB;IAED;;;;;;;;;;;;;;OAcG;IACH,4BAZa,MAAM,UAKN,aAAa,WAAS,GAGvB,aAAa,WAAS,CAgCjC;IAED;;;;;;;;;OASG;IACH,8BAPY,MAAM,QAejB;IAED;;;;;;;;;;OAUG;IACH,kCAJY,MAAO,SAAS,CAiB3B;IAED;;;;;;;;OAQG;IACH,8BANa,MAAM,GAGP,MAAM,CAOjB;IArPD;;;;;;;OAOG;IACH,oBAHW,MAAM,EA4BhB;IApBC,eAAoB;IAGlB,SAAkD;IA6EtD;;;;;;;OAOG;IACH,gBAsBC;IAxFD;;OAEG;IACH,eAEC;IAED;;;;;;;;;;;OAWG;IACH,0BAHY,eAAe,CAQ1B;IAED;;;;;;;;;;;;;OAaG;IACH,eAVa,MAAM,MAAO,eAOd,OAAO,CAKlB;IAED;;;;;;;;;;;OAWG;IACH,sBAPc,KAAK,QAOK;IA2BR,WAAiB;CAgIlC;;;;;;AApYD;;;;;;;;;GASG;AACH,iCANa,MAAM,GAGP,aAAa,cAAU,SAAS,CAGoC;AAhDhF;;;;;;GAMG;AACH,gCAFU,MAAM,CAEkB"} \ No newline at end of file
diff --git a/priv/static/video.js/types/poster-image.d.ts b/priv/static/video.js/types/poster-image.d.ts
new file mode 100644
index 0000000..d464d4d
--- /dev/null
+++ b/priv/static/video.js/types/poster-image.d.ts
@@ -0,0 +1,84 @@
+export default PosterImage;
+/**
+ * A `ClickableComponent` that handles showing the poster image for the player.
+ *
+ * @extends ClickableComponent
+ */
+declare class PosterImage extends ClickableComponent {
+ /**
+ * Create an instance of this class.
+ *
+ * @param { import('./player').default } player
+ * The `Player` that this class should attach to.
+ *
+ * @param {Object} [options]
+ * The key/value store of player options.
+ */
+ constructor(player: import('./player').default, options?: any);
+ update_: (e: any) => void;
+ /**
+ * Create the `PosterImage`s DOM element.
+ *
+ * @return {Element}
+ * The element that gets created.
+ */
+ createEl(): Element;
+ /**
+ * Get or set the `PosterImage`'s crossOrigin option.
+ *
+ * @param {string|null} [value]
+ * The value to set the crossOrigin to. If an argument is
+ * given, must be one of `'anonymous'` or `'use-credentials'`, or 'null'.
+ *
+ * @return {string|null}
+ * - The current crossOrigin value of the `Player` when getting.
+ * - undefined when setting
+ */
+ crossOrigin(value?: string | null): string | null;
+ /**
+ * An {@link EventTarget~EventListener} for {@link Player#posterchange} events.
+ *
+ * @listens Player#posterchange
+ *
+ * @param {Event} [event]
+ * The `Player#posterchange` event that triggered this function.
+ */
+ update(event?: Event): void;
+ /**
+ * Set the source of the `PosterImage` depending on the display method. (Re)creates
+ * the inner picture and img elementss when needed.
+ *
+ * @param {string} [url]
+ * The URL to the source for the `PosterImage`. If not specified or falsy,
+ * any source and ant inner picture/img are removed.
+ */
+ setSrc(url?: string): void;
+ /**
+ * An {@link EventTarget~EventListener} for clicks on the `PosterImage`. See
+ * {@link ClickableComponent#handleClick} for instances where this will be triggered.
+ *
+ * @listens tap
+ * @listens click
+ * @listens keydown
+ *
+ * @param {Event} event
+ + The `click`, `tap` or `keydown` event that caused this function to be called.
+ */
+ handleClick(event: Event): void;
+ /**
+ * Get or set the `PosterImage`'s crossorigin option. For the HTML5 player, this
+ * sets the `crossOrigin` property on the `<img>` tag to control the CORS
+ * behavior.
+ *
+ * @param {string|null} [value]
+ * The value to set the `PosterImages`'s crossorigin to. If an argument is
+ * given, must be one of `anonymous` or `use-credentials`.
+ *
+ * @return {string|null|undefined}
+ * - The current crossorigin value of the `Player` when getting.
+ * - undefined when setting
+ */
+ crossorigin: (value?: string | null) => string | null;
+}
+import ClickableComponent from "./clickable-component.js";
+//# sourceMappingURL=poster-image.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/poster-image.d.ts.map b/priv/static/video.js/types/poster-image.d.ts.map
new file mode 100644
index 0000000..6306168
--- /dev/null
+++ b/priv/static/video.js/types/poster-image.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"poster-image.d.ts","sourceRoot":"","sources":["../../src/js/poster-image.js"],"names":[],"mappings":";AAQA;;;;GAIG;AACH;IAEE;;;;;;;;OAQG;IACH,oBANY,OAAO,UAAU,EAAE,OAAO,iBAarC;IAFC,0BAAoC;IAYtC;;;;;OAKG;IACH,YAHY,OAAO,CAOlB;IAED;;;;;;;;;;OAUG;IACH,oBARW,MAAM,GAAC,IAAI,GAIV,MAAM,GAAC,IAAI,CA8BtB;IAED;;;;;;;OAOG;IACH,eAHW,KAAK,QAef;IAED;;;;;;;OAOG;IACH,aAJW,MAAM,QA6BhB;IAED;;;;;;;;;;OAUG;IACH,mBAHW,KAAK,QAkBf;IAIH;;;;;;;;;;;;OAYG;IACH,sBAxIa,MAAM,GAAC,IAAI,KAIV,MAAM,GAAC,IAAI,CAoIQ;CAfhC"} \ No newline at end of file
diff --git a/priv/static/video.js/types/resize-manager.d.ts b/priv/static/video.js/types/resize-manager.d.ts
new file mode 100644
index 0000000..bb3a003
--- /dev/null
+++ b/priv/static/video.js/types/resize-manager.d.ts
@@ -0,0 +1,52 @@
+export default ResizeManager;
+/**
+ * A Resize Manager. It is in charge of triggering `playerresize` on the player in the right conditions.
+ *
+ * It'll either create an iframe and use a debounced resize handler on it or use the new {@link https://wicg.github.io/ResizeObserver/|ResizeObserver}.
+ *
+ * If the ResizeObserver is available natively, it will be used. A polyfill can be passed in as an option.
+ * If a `playerresize` event is not needed, the ResizeManager component can be removed from the player, see the example below.
+ *
+ * @example <caption>How to disable the resize manager</caption>
+ * const player = videojs('#vid', {
+ * resizeManager: false
+ * });
+ *
+ * @see {@link https://wicg.github.io/ResizeObserver/|ResizeObserver specification}
+ *
+ * @extends Component
+ */
+declare class ResizeManager extends Component {
+ /**
+ * Create the ResizeManager.
+ *
+ * @param {Object} player
+ * The `Player` that this class should be attached to.
+ *
+ * @param {Object} [options]
+ * The key/value store of ResizeManager options.
+ *
+ * @param {Object} [options.ResizeObserver]
+ * A polyfill for ResizeObserver can be passed in here.
+ * If this is set to null it will ignore the native ResizeObserver and fall back to the iframe fallback.
+ */
+ constructor(player: any, options?: {
+ ResizeObserver?: any;
+ });
+ ResizeObserver: any;
+ loadListener_: () => void;
+ resizeObserver_: any;
+ debouncedHandler_: Function;
+ unloadListener_: () => void;
+ createEl(): Element;
+ /**
+ * Called when a resize is triggered on the iframe or a resize is observed via the ResizeObserver
+ *
+ * @fires Player#playerresize
+ */
+ resizeHandler(): void;
+ dispose(): void;
+ resizeObserver: any;
+}
+import Component from "./component.js";
+//# sourceMappingURL=resize-manager.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/resize-manager.d.ts.map b/priv/static/video.js/types/resize-manager.d.ts.map
new file mode 100644
index 0000000..b9bab59
--- /dev/null
+++ b/priv/static/video.js/types/resize-manager.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"resize-manager.d.ts","sourceRoot":"","sources":["../../src/js/resize-manager.js"],"names":[],"mappings":";AASA;;;;;;;;;;;;;;;;GAgBG;AACH;IAEE;;;;;;;;;;;;OAYG;IACH;QAJ4B,cAAc;OAqDzC;IAjCC,oBAAqE;IACrE,0BAAyB;IACzB,qBAA2B;IAC3B,4BAEoB;IAaM,4BAKrB;IAYP,oBAQC;IAED;;;;OAIG;IACH,sBAcC;IAED,gBAyBC;IAJC,oBAA0B;CAM7B"} \ No newline at end of file
diff --git a/priv/static/video.js/types/setup.d.ts b/priv/static/video.js/types/setup.d.ts
new file mode 100644
index 0000000..14700af
--- /dev/null
+++ b/priv/static/video.js/types/setup.d.ts
@@ -0,0 +1,20 @@
+/**
+ * Set up any tags that have a data-setup `attribute` when the player is started.
+ */
+export function autoSetup(): void;
+/**
+ * Wait until the page is loaded before running autoSetup. This will be called in
+ * autoSetup if `hasLoaded` returns false.
+ *
+ * @param {number} wait
+ * How long to wait in ms
+ *
+ * @param {module:videojs} [vjs]
+ * The videojs library function
+ */
+export function autoSetupTimeout(wait: number, vjs?: any): void;
+/**
+ * check if the window has been loaded
+ */
+export function hasLoaded(): boolean;
+//# sourceMappingURL=setup.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/setup.d.ts.map b/priv/static/video.js/types/setup.d.ts.map
new file mode 100644
index 0000000..3668d48
--- /dev/null
+++ b/priv/static/video.js/types/setup.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/js/setup.js"],"names":[],"mappings":"AAaA;;GAEG;AACH,kCA2CC;AAED;;;;;;;;;GASG;AACH,uCANW,MAAM,mBAiBhB;AA4BD;;GAEG;AACH,qCAEC"} \ No newline at end of file
diff --git a/priv/static/video.js/types/slider/slider.d.ts b/priv/static/video.js/types/slider/slider.d.ts
new file mode 100644
index 0000000..a973671
--- /dev/null
+++ b/priv/static/video.js/types/slider/slider.d.ts
@@ -0,0 +1,147 @@
+export default Slider;
+/**
+ * The base functionality for a slider. Can be vertical or horizontal.
+ * For instance the volume bar or the seek bar on a video is a slider.
+ *
+ * @extends Component
+ */
+declare class Slider extends Component {
+ /**
+ * Create an instance of this class
+ *
+ * @param { import('../player').default } player
+ * The `Player` that this class should be attached to.
+ *
+ * @param {Object} [options]
+ * The key/value store of player options.
+ */
+ constructor(player: import('../player').default, options?: any);
+ handleMouseDown_: (e: any) => void;
+ handleMouseUp_: (e: any) => void;
+ handleKeyDown_: (e: any) => void;
+ handleClick_: (e: any) => void;
+ handleMouseMove_: (e: any) => void;
+ update_: (e: any) => number;
+ bar: Component;
+ /**
+ * Are controls are currently enabled for this slider or not.
+ *
+ * @return {boolean}
+ * true if controls are enabled, false otherwise
+ */
+ enabled(): boolean;
+ /**
+ * Enable controls for this slider if they are disabled
+ */
+ enable(): void;
+ enabled_: boolean;
+ /**
+ * Disable controls for this slider if they are enabled
+ */
+ disable(): void;
+ /**
+ * Create the `Slider`s DOM element.
+ *
+ * @param {string} type
+ * Type of element to create.
+ *
+ * @param {Object} [props={}]
+ * List of properties in Object form.
+ *
+ * @param {Object} [attributes={}]
+ * list of attributes in Object form.
+ *
+ * @return {Element}
+ * The element that gets created.
+ */
+ createEl(type: string, props?: any, attributes?: any): Element;
+ /**
+ * Handle `mousedown` or `touchstart` events on the `Slider`.
+ *
+ * @param {MouseEvent} event
+ * `mousedown` or `touchstart` event that triggered this function
+ *
+ * @listens mousedown
+ * @listens touchstart
+ * @fires Slider#slideractive
+ */
+ handleMouseDown(event: MouseEvent): void;
+ /**
+ * Handle the `mousemove`, `touchmove`, and `mousedown` events on this `Slider`.
+ * The `mousemove` and `touchmove` events will only only trigger this function during
+ * `mousedown` and `touchstart`. This is due to {@link Slider#handleMouseDown} and
+ * {@link Slider#handleMouseUp}.
+ *
+ * @param {MouseEvent} event
+ * `mousedown`, `mousemove`, `touchstart`, or `touchmove` event that triggered
+ * this function
+ * @param {boolean} mouseDown this is a flag that should be set to true if `handleMouseMove` is called directly. It allows us to skip things that should not happen if coming from mouse down but should happen on regular mouse move handler. Defaults to false.
+ *
+ * @listens mousemove
+ * @listens touchmove
+ */
+ handleMouseMove(event: MouseEvent): void;
+ /**
+ * Handle `mouseup` or `touchend` events on the `Slider`.
+ *
+ * @param {MouseEvent} event
+ * `mouseup` or `touchend` event that triggered this function.
+ *
+ * @listens touchend
+ * @listens mouseup
+ * @fires Slider#sliderinactive
+ */
+ handleMouseUp(event: MouseEvent): void;
+ /**
+ * Update the progress bar of the `Slider`.
+ *
+ * @return {number}
+ * The percentage of progress the progress bar represents as a
+ * number from 0 to 1.
+ */
+ update(): number;
+ progress_: any;
+ /**
+ * Get the percentage of the bar that should be filled
+ * but clamped and rounded.
+ *
+ * @return {number}
+ * percentage filled that the slider is
+ */
+ getProgress(): number;
+ /**
+ * Calculate distance for slider
+ *
+ * @param {Event} event
+ * The event that caused this function to run.
+ *
+ * @return {number}
+ * The current position of the Slider.
+ * - position.x for vertical `Slider`s
+ * - position.y for horizontal `Slider`s
+ */
+ calculateDistance(event: Event): number;
+ /**
+ * Listener for click events on slider, used to prevent clicks
+ * from bubbling up to parent elements like button menus.
+ *
+ * @param {Object} event
+ * Event that caused this object to run
+ */
+ handleClick(event: any): void;
+ /**
+ * Get/set if slider is horizontal for vertical
+ *
+ * @param {boolean} [bool]
+ * - true if slider is vertical,
+ * - false is horizontal
+ *
+ * @return {boolean}
+ * - true if slider is vertical, and getting
+ * - false if the slider is horizontal, and getting
+ */
+ vertical(bool?: boolean): boolean;
+ vertical_: boolean;
+}
+import Component from "../component.js";
+//# sourceMappingURL=slider.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/slider/slider.d.ts.map b/priv/static/video.js/types/slider/slider.d.ts.map
new file mode 100644
index 0000000..ffaf661
--- /dev/null
+++ b/priv/static/video.js/types/slider/slider.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"slider.d.ts","sourceRoot":"","sources":["../../../src/js/slider/slider.js"],"names":[],"mappings":";AASA;;;;;GAKG;AACH;IAEE;;;;;;;;KAQC;IACD,oBANU,OAAO,WAAW,EAAE,OAAO,iBAuBpC;IAdC,mCAAsD;IACtD,iCAAkD;IAClD,iCAAkD;IAClD,+BAA8C;IAC9C,mCAAsD;IACtD,4BAAoC;IAGpC,eAA+C;IAQjD;;;;;OAKG;IACH,WAHY,OAAO,CAKlB;IAED;;OAEG;IACH,eAqBC;IADC,kBAAoB;IAGtB;;OAEG;IACH,gBAuBC;IAED;;;;;;;;;;;;;;OAcG;IACH,eAZW,MAAM,kCASL,OAAO,CAkBlB;IAED;;;;;;;;;OASG;IACH,uBAPW,UAAU,QAqCpB;IAED;;;;;;;;;;;;;OAaG;IACH,uBARW,UAAU,QAQI;IAEzB;;;;;;;;;OASG;IACH,qBAPW,UAAU,QA2BpB;IAED;;;;;;OAMG;IACH,UAJY,MAAM,CAgCjB;IAXC,eAAyB;IAa3B;;;;;;OAMG;IACH,eAHY,MAAM,CAKjB;IAED;;;;;;;;;;OAUG;IACH,yBARW,KAAK,GAGJ,MAAM,CAYjB;IAgCD;;;;;;OAMG;IACH,8BAGC;IAED;;;;;;;;;;OAUG;IACH,gBARW,OAAO,GAIN,OAAO,CAgBlB;IAPC,mBAAuB;CAQ1B"} \ No newline at end of file
diff --git a/priv/static/video.js/types/tech/html5.d.ts b/priv/static/video.js/types/tech/html5.d.ts
new file mode 100644
index 0000000..add5ec3
--- /dev/null
+++ b/priv/static/video.js/types/tech/html5.d.ts
@@ -0,0 +1,350 @@
+export default Html5;
+/**
+ * HTML5 Media Controller - Wrapper for HTML5 Media API
+ *
+ * @mixes Tech~SourceHandlerAdditions
+ * @extends Tech
+ */
+declare class Html5 extends Tech {
+ isScrubbing_: boolean;
+ /**
+ * Modify the media element so that we can detect when
+ * the source is changed. Fires `sourceset` just after the source has changed
+ */
+ setupSourcesetHandling_(): void;
+ /**
+ * When a captions track is enabled in the iOS Safari native player, all other
+ * tracks are disabled (including metadata tracks), which nulls all of their
+ * associated cue points. This will restore metadata tracks to their pre-fullscreen
+ * state in those cases so that cue points are not needlessly lost.
+ *
+ * @private
+ */
+ private restoreMetadataTracksInIOSNativePlayer_;
+ /**
+ * Attempt to force override of tracks for the given type
+ *
+ * @param {string} type - Track type to override, possible values include 'Audio',
+ * 'Video', and 'Text'.
+ * @param {boolean} override - If set to true native audio/video will be overridden,
+ * otherwise native audio/video will potentially be used.
+ * @private
+ */
+ private overrideNative_;
+ /**
+ * Proxy native track list events for the given type to our track
+ * lists if the browser we are playing in supports that type of track list.
+ *
+ * @param {string} name - Track type; values include 'audio', 'video', and 'text'
+ * @private
+ */
+ private proxyNativeTracksForType_;
+ /**
+ * Proxy all native track list events to our track lists if the browser we are playing
+ * in supports that type of track list.
+ *
+ * @private
+ */
+ private proxyNativeTracks_;
+ /**
+ * Create the `Html5` Tech's DOM element.
+ *
+ * @return {Element}
+ * The element that gets created.
+ */
+ createEl(): Element;
+ /**
+ * This will be triggered if the loadstart event has already fired, before videojs was
+ * ready. Two known examples of when this can happen are:
+ * 1. If we're loading the playback object after it has started loading
+ * 2. The media is already playing the (often with autoplay on) then
+ *
+ * This function will fire another loadstart so that videojs can catchup.
+ *
+ * @fires Tech#loadstart
+ *
+ * @return {undefined}
+ * returns nothing.
+ */
+ handleLateInit_(el: any): undefined;
+ /**
+ * Get whether we are scrubbing or not.
+ *
+ * @return {boolean} isScrubbing
+ * - true for we are currently scrubbing
+ * - false for we are no longer scrubbing
+ */
+ scrubbing(): boolean;
+ /**
+ * Get the current duration of the HTML5 media element.
+ *
+ * @return {number}
+ * The duration of the media or 0 if there is no duration.
+ */
+ duration(): number;
+ /**
+ * Get the current width of the HTML5 media element.
+ *
+ * @return {number}
+ * The width of the HTML5 media element.
+ */
+ width(): number;
+ /**
+ * Get the current height of the HTML5 media element.
+ *
+ * @return {number}
+ * The height of the HTML5 media element.
+ */
+ height(): number;
+ /**
+ * Proxy iOS `webkitbeginfullscreen` and `webkitendfullscreen` into
+ * `fullscreenchange` event.
+ *
+ * @private
+ * @fires fullscreenchange
+ * @listens webkitendfullscreen
+ * @listens webkitbeginfullscreen
+ * @listens webkitbeginfullscreen
+ */
+ private proxyWebkitFullscreen_;
+ /**
+ * Check if fullscreen is supported on the video el.
+ *
+ * @return {boolean}
+ * - True if fullscreen is supported.
+ * - False if fullscreen is not supported.
+ */
+ supportsFullScreen(): boolean;
+ /**
+ * Request that the `HTML5` Tech enter fullscreen.
+ */
+ enterFullScreen(): void;
+ /**
+ * Request that the `HTML5` Tech exit fullscreen.
+ */
+ exitFullScreen(): void;
+ /**
+ * A getter/setter for the `Html5` Tech's source object.
+ * > Note: Please use {@link Html5#setSource}
+ *
+ * @param {Tech~SourceObject} [src]
+ * The source object you want to set on the `HTML5` techs element.
+ *
+ * @return {Tech~SourceObject|undefined}
+ * - The current source object when a source is not passed in.
+ * - undefined when setting
+ *
+ * @deprecated Since version 5.
+ */
+ src(src: any): Tech;
+ /**
+ * Get the current source on the `HTML5` Tech. Falls back to returning the source from
+ * the HTML5 media element.
+ *
+ * @return {Tech~SourceObject}
+ * The current source object from the HTML5 tech. With a fallback to the
+ * elements source.
+ */
+ currentSrc(): Tech;
+ /**
+ * Set controls attribute for the HTML5 media Element.
+ *
+ * @param {string} val
+ * Value to set the controls attribute to
+ */
+ setControls(val: string): void;
+ /**
+ * Creates either native TextTrack or an emulated TextTrack depending
+ * on the value of `featuresNativeTextTracks`
+ *
+ * @param {Object} options
+ * The object should contain the options to initialize the TextTrack with.
+ *
+ * @param {string} [options.kind]
+ * `TextTrack` kind (subtitles, captions, descriptions, chapters, or metadata).
+ *
+ * @param {string} [options.label]
+ * Label to identify the text track
+ *
+ * @param {string} [options.language]
+ * Two letter language abbreviation.
+ *
+ * @param {boolean} [options.default]
+ * Default this track to on.
+ *
+ * @param {string} [options.id]
+ * The internal id to assign this track.
+ *
+ * @param {string} [options.src]
+ * A source url for the track.
+ *
+ * @return {HTMLTrackElement}
+ * The track element that gets created.
+ */
+ createRemoteTextTrack(options: {
+ kind?: string;
+ label?: string;
+ language?: string;
+ default?: boolean;
+ id?: string;
+ src?: string;
+ }): HTMLTrackElement;
+ /**
+ * Creates a remote text track object and returns an html track element.
+ *
+ * @param {Object} options The object should contain values for
+ * kind, language, label, and src (location of the WebVTT file)
+ * @param {boolean} [manualCleanup=false] if set to true, the TextTrack
+ * will not be removed from the TextTrackList and HtmlTrackElementList
+ * after a source change
+ * @return {HTMLTrackElement} An Html Track Element.
+ * This can be an emulated {@link HTMLTrackElement} or a native one.
+ *
+ */
+ addRemoteTextTrack(options: any, manualCleanup?: boolean): HTMLTrackElement;
+ /**
+ * Boolean indicating whether the `HTML5` tech currently supports the media element
+ * moving in the DOM. iOS breaks if you move the media element, so this is set this to
+ * false there. Everywhere else this should be true.
+ *
+ * @type {boolean}
+ * @default
+ */
+ movingMediaElementInDOM: boolean;
+}
+declare namespace Html5 {
+ /**
+ * Check if HTML5 media is supported by this browser/device.
+ *
+ * @return {boolean}
+ * - True if HTML5 media is supported.
+ * - False if HTML5 media is not supported.
+ */
+ function isSupported(): boolean;
+ /**
+ * Check if the tech can support the given type
+ *
+ * @param {string} type
+ * The mimetype to check
+ * @return {string} 'probably', 'maybe', or '' (empty string)
+ */
+ function canPlayType(type: string): string;
+ /**
+ * Check if the tech can support the given source
+ *
+ * @param {Object} srcObj
+ * The source object
+ * @param {Object} options
+ * The options passed to the tech
+ * @return {string} 'probably', 'maybe', or '' (empty string)
+ */
+ function canPlaySource(srcObj: any, options: any): string;
+ /**
+ * Check if the volume can be changed in this browser/device.
+ * Volume cannot be changed in a lot of mobile devices.
+ * Specifically, it can't be changed from 1 on iOS.
+ *
+ * @return {boolean}
+ * - True if volume can be controlled
+ * - False otherwise
+ */
+ function canControlVolume(): boolean;
+ /**
+ * Check if the volume can be muted in this browser/device.
+ * Some devices, e.g. iOS, don't allow changing volume
+ * but permits muting/unmuting.
+ *
+ * @return {boolean}
+ * - True if volume can be muted
+ * - False otherwise
+ */
+ function canMuteVolume(): boolean;
+ /**
+ * Check if the playback rate can be changed in this browser/device.
+ *
+ * @return {boolean}
+ * - True if playback rate can be controlled
+ * - False otherwise
+ */
+ function canControlPlaybackRate(): boolean;
+ /**
+ * Check if we can override a video/audio elements attributes, with
+ * Object.defineProperty.
+ *
+ * @return {boolean}
+ * - True if builtin attributes can be overridden
+ * - False otherwise
+ */
+ function canOverrideAttributes(): boolean;
+ /**
+ * Check to see if native `TextTrack`s are supported by this browser/device.
+ *
+ * @return {boolean}
+ * - True if native `TextTrack`s are supported.
+ * - False otherwise
+ */
+ function supportsNativeTextTracks(): boolean;
+ /**
+ * Check to see if native `VideoTrack`s are supported by this browser/device
+ *
+ * @return {boolean}
+ * - True if native `VideoTrack`s are supported.
+ * - False otherwise
+ */
+ function supportsNativeVideoTracks(): boolean;
+ /**
+ * Check to see if native `AudioTrack`s are supported by this browser/device
+ *
+ * @return {boolean}
+ * - True if native `AudioTrack`s are supported.
+ * - False otherwise
+ */
+ function supportsNativeAudioTracks(): boolean;
+ const Events: any[];
+ function disposeMediaElement(el: any): void;
+ function resetMediaElement(el: any): void;
+ namespace nativeSourceHandler {
+ /**
+ * Check if the media element can play the given mime type.
+ *
+ * @param {string} type
+ * The mimetype to check
+ *
+ * @return {string}
+ * 'probably', 'maybe', or '' (empty string)
+ */
+ function canPlayType(type: string): string;
+ /**
+ * Check if the media element can handle a source natively.
+ *
+ * @param {Tech~SourceObject} source
+ * The source object
+ *
+ * @param {Object} [options]
+ * Options to be passed to the tech.
+ *
+ * @return {string}
+ * 'probably', 'maybe', or '' (empty string).
+ */
+ function canHandleSource(source: any, options?: any): string;
+ /**
+ * Pass the source to the native media element.
+ *
+ * @param {Tech~SourceObject} source
+ * The source object
+ *
+ * @param {Html5} tech
+ * The instance of the Html5 tech
+ *
+ * @param {Object} [options]
+ * The options to pass to the source
+ */
+ function handleSource(source: any, tech: Html5, options?: any): void;
+ /**
+ * A noop for the native dispose function, as cleanup is not needed.
+ */
+ function dispose(): void;
+ }
+}
+import Tech from "./tech.js";
+//# sourceMappingURL=html5.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/tech/html5.d.ts.map b/priv/static/video.js/types/tech/html5.d.ts.map
new file mode 100644
index 0000000..f96780a
--- /dev/null
+++ b/priv/static/video.js/types/tech/html5.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"html5.d.ts","sourceRoot":"","sources":["../../../src/js/tech/html5.js"],"names":[],"mappings":";AAgBA;;;;;GAKG;AACH;IAkCI,sBAAyB;IA4E3B;;;OAGG;IACH,gCAEC;IAED;;;;;;;OAOG;IACH,gDA0DC;IAED;;;;;;;;OAQG;IACH,wBAoBC;IAsBD;;;;;;OAMG;IACH,kCA0EC;IAED;;;;;OAKG;IACH,2BAIC;IAED;;;;;OAKG;IACH,YAHY,OAAO,CA2ElB;IAED;;;;;;;;;;;;OAYG;IACH,0BAHY,SAAS,CAiFpB;IAeD;;;;;;OAMG;IACH,aAJY,OAAO,CAMlB;IAqBD;;;;;OAKG;IACH,YAHY,MAAM,CA8BjB;IAED;;;;;OAKG;IACH,SAHY,MAAM,CAKjB;IAED;;;;;OAKG;IACH,UAHY,MAAM,CAKjB;IAED;;;;;;;;;OASG;IACH,+BA8BC;IAED;;;;;;OAMG;IACH,sBAJY,OAAO,CAMlB;IAED;;OAEG;IACH,wBAyBC;IAED;;OAEG;IACH,uBAOC;IA6CD;;;;;;;;;;;;OAYG;IACH,eANY,IAAI,CAaf;IAUD;;;;;;;OAOG;IACH,cAJY,IAAI,CASf;IAED;;;;;OAKG;IACH,iBAHW,MAAM,QAKhB;IAyBD;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH;eArBW,MAAM;gBAGN,MAAM;mBAGN,MAAM;kBAGN,OAAO;aAGP,MAAM;cAGN,MAAM;QAGL,gBAAgB,CA6B3B;IAED;;;;;;;;;;;OAWG;IACH,iDAPW,OAAO,GAGN,gBAAgB,CAY3B;IAyWH;;;;;;;OAOG;IACH,yBAHU,OAAO,CAGsB;CA7TtC;;IA0BD;;;;;;OAMG;IACH,gCASC;IAED;;;;;;OAMG;IACH,2CAEC;IAED;;;;;;;;OAQG;IACH,0DAEC;IAED;;;;;;;;OAQG;IACH,qCA6BC;IAED;;;;;;;;OAQG;IACH,kCAgBC;IAED;;;;;;OAMG;IACH,2CAeC;IAED;;;;;;;OAOG;IACH,0CAeC;IAED;;;;;;OAMG;IACH,6CAEC;IAED;;;;;;OAMG;IACH,8CAEC;IAED;;;;;;OAMG;IACH,8CAEC;;IA2ID,4CA8BC;IAED,0CA0BC;;QAsoBD;;;;;;;;WAQG;QACH,2CAOC;QAED;;;;;;;;;;;WAWG;QACH,6DAcC;QAED;;;;;;;;;;;WAWG;QACH,qEAEC;QAED;;WAEG;QACH,yBAAiD"} \ No newline at end of file
diff --git a/priv/static/video.js/types/tech/loader.d.ts b/priv/static/video.js/types/tech/loader.d.ts
new file mode 100644
index 0000000..b4444fb
--- /dev/null
+++ b/priv/static/video.js/types/tech/loader.d.ts
@@ -0,0 +1,24 @@
+export default MediaLoader;
+/**
+ * The `MediaLoader` is the `Component` that decides which playback technology to load
+ * when a player is initialized.
+ *
+ * @extends Component
+ */
+declare class MediaLoader extends Component {
+ /**
+ * Create an instance of this class.
+ *
+ * @param { import('../player').default } player
+ * The `Player` that this class should attach to.
+ *
+ * @param {Object} [options]
+ * The key/value store of player options.
+ *
+ * @param {Function} [ready]
+ * The function that is run when this component is ready.
+ */
+ constructor(player: import('../player').default, options?: any, ready?: Function);
+}
+import Component from "../component.js";
+//# sourceMappingURL=loader.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/tech/loader.d.ts.map b/priv/static/video.js/types/tech/loader.d.ts.map
new file mode 100644
index 0000000..8d1a3e8
--- /dev/null
+++ b/priv/static/video.js/types/tech/loader.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/js/tech/loader.js"],"names":[],"mappings":";AAQA;;;;;GAKG;AACH;IAEE;;;;;;;;;;;OAWG;IACH,oBATY,OAAO,WAAW,EAAE,OAAO,mCA0CtC;CACF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/tech/middleware.d.ts b/priv/static/video.js/types/tech/middleware.d.ts
new file mode 100644
index 0000000..23e987c
--- /dev/null
+++ b/priv/static/video.js/types/tech/middleware.d.ts
@@ -0,0 +1,171 @@
+/**
+ * A middleware object is a plain JavaScript object that has methods that
+ * match the {@link Tech} methods found in the lists of allowed
+ * {@link module:middleware.allowedGetters|getters},
+ * {@link module:middleware.allowedSetters|setters}, and
+ * {@link module:middleware.allowedMediators|mediators}.
+ *
+ * @typedef {Object} MiddlewareObject
+ */
+/**
+ * A middleware factory function that should return a
+ * {@link module:middleware~MiddlewareObject|MiddlewareObject}.
+ *
+ * This factory will be called for each player when needed, with the player
+ * passed in as an argument.
+ *
+ * @callback MiddlewareFactory
+ * @param { import('../player').default } player
+ * A Video.js player.
+ */
+/**
+ * Define a middleware that the player should use by way of a factory function
+ * that returns a middleware object.
+ *
+ * @param {string} type
+ * The MIME type to match or `"*"` for all MIME types.
+ *
+ * @param {MiddlewareFactory} middleware
+ * A middleware factory function that will be executed for
+ * matching types.
+ */
+export function use(type: string, middleware: MiddlewareFactory): void;
+/**
+ * Gets middlewares by type (or all middlewares).
+ *
+ * @param {string} type
+ * The MIME type to match or `"*"` for all MIME types.
+ *
+ * @return {Function[]|undefined}
+ * An array of middlewares or `undefined` if none exist.
+ */
+export function getMiddleware(type: string): Function[] | undefined;
+/**
+ * Asynchronously sets a source using middleware by recursing through any
+ * matching middlewares and calling `setSource` on each, passing along the
+ * previous returned value each time.
+ *
+ * @param { import('../player').default } player
+ * A {@link Player} instance.
+ *
+ * @param {Tech~SourceObject} src
+ * A source object.
+ *
+ * @param {Function}
+ * The next middleware to run.
+ */
+export function setSource(player: import('../player').default, src: any, next: any): void;
+/**
+ * When the tech is set, passes the tech to each middleware's `setTech` method.
+ *
+ * @param {Object[]} middleware
+ * An array of middleware instances.
+ *
+ * @param { import('../tech/tech').default } tech
+ * A Video.js tech.
+ */
+export function setTech(middleware: any[], tech: import('../tech/tech').default): void;
+/**
+ * Calls a getter on the tech first, through each middleware
+ * from right to left to the player.
+ *
+ * @param {Object[]} middleware
+ * An array of middleware instances.
+ *
+ * @param { import('../tech/tech').default } tech
+ * The current tech.
+ *
+ * @param {string} method
+ * A method name.
+ *
+ * @return {*}
+ * The final value from the tech after middleware has intercepted it.
+ */
+export function get(middleware: any[], tech: import('../tech/tech').default, method: string): any;
+/**
+ * Takes the argument given to the player and calls the setter method on each
+ * middleware from left to right to the tech.
+ *
+ * @param {Object[]} middleware
+ * An array of middleware instances.
+ *
+ * @param { import('../tech/tech').default } tech
+ * The current tech.
+ *
+ * @param {string} method
+ * A method name.
+ *
+ * @param {*} arg
+ * The value to set on the tech.
+ *
+ * @return {*}
+ * The return value of the `method` of the `tech`.
+ */
+export function set(middleware: any[], tech: import('../tech/tech').default, method: string, arg: any): any;
+/**
+ * Takes the argument given to the player and calls the `call` version of the
+ * method on each middleware from left to right.
+ *
+ * Then, call the passed in method on the tech and return the result unchanged
+ * back to the player, through middleware, this time from right to left.
+ *
+ * @param {Object[]} middleware
+ * An array of middleware instances.
+ *
+ * @param { import('../tech/tech').default } tech
+ * The current tech.
+ *
+ * @param {string} method
+ * A method name.
+ *
+ * @param {*} arg
+ * The value to set on the tech.
+ *
+ * @return {*}
+ * The return value of the `method` of the `tech`, regardless of the
+ * return values of middlewares.
+ */
+export function mediate(middleware: any[], tech: import('../tech/tech').default, method: string, arg?: any): any;
+/**
+ * Clear the middleware cache for a player.
+ *
+ * @param { import('../player').default } player
+ * A {@link Player} instance.
+ */
+export function clearCacheForPlayer(player: import('../player').default): void;
+export const TERMINATOR: {};
+/**
+ * Enumeration of allowed getters where the keys are method names.
+ *
+ * @type {Object}
+ */
+export const allowedGetters: any;
+/**
+ * Enumeration of allowed setters where the keys are method names.
+ *
+ * @type {Object}
+ */
+export const allowedSetters: any;
+/**
+ * Enumeration of allowed mediators where the keys are method names.
+ *
+ * @type {Object}
+ */
+export const allowedMediators: any;
+/**
+ * A middleware object is a plain JavaScript object that has methods that
+ * match the {@link Tech } methods found in the lists of allowed
+ * {@link module :middleware.allowedGetters|getters},
+ * {@link module :middleware.allowedSetters|setters}, and
+ * {@link module :middleware.allowedMediators|mediators}.
+ */
+export type MiddlewareObject = any;
+/**
+ * A middleware factory function that should return a
+ * {@link module :middleware~MiddlewareObject|MiddlewareObject}.
+ *
+ * This factory will be called for each player when needed, with the player
+ * passed in as an argument.
+ */
+export type MiddlewareFactory = (player: import('../player').default) => any;
+//# sourceMappingURL=middleware.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/tech/middleware.d.ts.map b/priv/static/video.js/types/tech/middleware.d.ts.map
new file mode 100644
index 0000000..9cdab6c
--- /dev/null
+++ b/priv/static/video.js/types/tech/middleware.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../src/js/tech/middleware.js"],"names":[],"mappings":"AAWA;;;;;;;;GAQG;AAEH;;;;;;;;;;GAUG;AAEH;;;;;;;;;;GAUG;AACH,0BAPY,MAAM,cAGN,iBAAiB,QAO5B;AAED;;;;;;;;GAQG;AACH,oCANY,MAAM,GAGN,UAAU,GAAC,SAAS,CAS/B;AAED;;;;;;;;;;;;;GAaG;AACH,kCATa,OAAO,WAAW,EAAE,OAAO,6BAWvC;AAED;;;;;;;;GAQG;AACH,oCANW,KAAQ,QAGP,OAAO,cAAc,EAAE,OAAO,QAKzC;AAED;;;;;;;;;;;;;;;GAeG;AACH,gCAZY,KAAQ,QAGP,OAAO,cAAc,EAAE,OAAO,UAG/B,MAAM,OAQjB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,gCAfY,KAAQ,QAGP,OAAO,cAAc,EAAE,OAAO,UAG/B,MAAM,iBAWjB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,oCAhBY,KAAQ,QAGP,OAAO,cAAc,EAAE,OAAO,UAG/B,MAAM,kBAqBjB;AAiED;;;;;GAKG;AACH,4CAHa,OAAO,WAAW,EAAE,OAAO,QAKvC;AA9OD,4BAA6B;AAuK7B;;;;GAIG;AACH,iCAUE;AAEF;;;;GAIG;AACH,iCAIE;AAEF;;;;GAIG;AACH,mCAGE;;;;;;;;;;;;;;;;yCAvLU,OAAO,WAAW,EAAE,OAAO"} \ No newline at end of file
diff --git a/priv/static/video.js/types/tech/setup-sourceset.d.ts b/priv/static/video.js/types/tech/setup-sourceset.d.ts
new file mode 100644
index 0000000..9ef0f2c
--- /dev/null
+++ b/priv/static/video.js/types/tech/setup-sourceset.d.ts
@@ -0,0 +1,18 @@
+export default setupSourceset;
+/**
+ * setup `sourceset` handling on the `Html5` tech. This function
+ * patches the following element properties/functions:
+ *
+ * - `src` - to determine when `src` is set
+ * - `setAttribute()` - to determine when `src` is set
+ * - `load()` - this re-triggers the source selection algorithm, and can
+ * cause a sourceset.
+ *
+ * If there is no source when we are adding `sourceset` support or during a `load()`
+ * we also patch the functions listed in `firstSourceWatch`.
+ *
+ * @param {Html5} tech
+ * The tech to patch
+ */
+declare function setupSourceset(tech: Html5): void;
+//# sourceMappingURL=setup-sourceset.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/tech/setup-sourceset.d.ts.map b/priv/static/video.js/types/tech/setup-sourceset.d.ts.map
new file mode 100644
index 0000000..e80ae5d
--- /dev/null
+++ b/priv/static/video.js/types/tech/setup-sourceset.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"setup-sourceset.d.ts","sourceRoot":"","sources":["../../../src/js/tech/setup-sourceset.js"],"names":[],"mappings":";AA+NA;;;;;;;;;;;;;;GAcG;AACH,mDAmEC"} \ No newline at end of file
diff --git a/priv/static/video.js/types/tech/tech.d.ts b/priv/static/video.js/types/tech/tech.d.ts
new file mode 100644
index 0000000..3f50aa4
--- /dev/null
+++ b/priv/static/video.js/types/tech/tech.d.ts
@@ -0,0 +1,581 @@
+export default Tech;
+/**
+ * An Object containing a structure like: `{src: 'url', type: 'mimetype'}` or string
+ * that just contains the src url alone.
+ * * `var SourceObject = {src: 'http://ex.com/video.mp4', type: 'video/mp4'};`
+ * `var SourceString = 'http://example.com/some-video.mp4';`
+ */
+export type SourceObject = any | string;
+/**
+ * This is the base class for media playback technology controllers, such as
+ * {@link HTML5}
+ *
+ * @extends Component
+ */
+declare class Tech extends Component {
+ /**
+ * Check if the type is supported by this tech.
+ *
+ * The base tech does not support any type, but source handlers might
+ * overwrite this.
+ *
+ * @param {string} _type
+ * The media type to check
+ * @return {string} Returns the native video element's response
+ */
+ static canPlayType(_type: string): string;
+ /**
+ * Check if the tech can support the given source
+ *
+ * @param {Object} srcObj
+ * The source object
+ * @param {Object} options
+ * The options passed to the tech
+ * @return {string} 'probably', 'maybe', or '' (empty string)
+ */
+ static canPlaySource(srcObj: any, options: any): string;
+ static isTech(component: any): boolean;
+ /**
+ * Registers a `Tech` into a shared list for videojs.
+ *
+ * @param {string} name
+ * Name of the `Tech` to register.
+ *
+ * @param {Object} tech
+ * The `Tech` class to register.
+ */
+ static registerTech(name: string, tech: any): any;
+ /**
+ * Get a `Tech` from the shared list by name.
+ *
+ * @param {string} name
+ * `camelCase` or `TitleCase` name of the Tech to get
+ *
+ * @return {Tech|undefined}
+ * The `Tech` or undefined if there was no tech with the name requested.
+ */
+ static getTech(name: string): Tech | undefined;
+ /**
+ * Create an instance of this Tech.
+ *
+ * @param {Object} [options]
+ * The key/value store of player options.
+ *
+ * @param {Function} [ready]
+ * Callback function to call when the `HTML5` Tech is ready.
+ */
+ constructor(options?: any, ready?: Function);
+ onDurationChange_: (e: any) => void;
+ trackProgress_: (e: any) => void;
+ trackCurrentTime_: (e: any) => void;
+ stopTrackingCurrentTime_: (e: any) => void;
+ disposeSourceHandler_: (e: any) => any;
+ queuedHanders_: Set<any>;
+ hasStarted_: boolean;
+ featuresNativeTextTracks: boolean;
+ preloadTextTracks: boolean;
+ autoRemoteTextTracks_: import("../tracks/text-track-list").default;
+ /**
+ * A special function to trigger source set in a way that will allow player
+ * to re-trigger if the player or tech are not ready yet.
+ *
+ * @fires Tech#sourceset
+ * @param {string} src The source string at the time of the source changing.
+ */
+ triggerSourceset(src: string): void;
+ /**
+ * Polyfill the `progress` event for browsers that don't support it natively.
+ *
+ * @see {@link Tech#trackProgress}
+ */
+ manualProgressOn(): void;
+ manualProgress: boolean;
+ /**
+ * Turn off the polyfill for `progress` events that was created in
+ * {@link Tech#manualProgressOn}
+ */
+ manualProgressOff(): void;
+ /**
+ * This is used to trigger a `progress` event when the buffered percent changes. It
+ * sets an interval function that will be called every 500 milliseconds to check if the
+ * buffer end percent has changed.
+ *
+ * > This function is called by {@link Tech#manualProgressOn}
+ *
+ * @param {Event} event
+ * The `ready` event that caused this to run.
+ *
+ * @listens Tech#ready
+ * @fires Tech#progress
+ */
+ trackProgress(event: Event): void;
+ progressInterval: number;
+ /**
+ * Update our internal duration on a `durationchange` event by calling
+ * {@link Tech#duration}.
+ *
+ * @param {Event} event
+ * The `durationchange` event that caused this to run.
+ *
+ * @listens Tech#durationchange
+ */
+ onDurationChange(event: Event): void;
+ duration_: any;
+ /**
+ * Get and create a `TimeRange` object for buffering.
+ *
+ * @return { import('../utils/time').TimeRange }
+ * The time range object that was created.
+ */
+ buffered(): import('../utils/time').TimeRange;
+ /**
+ * Get the percentage of the current video that is currently buffered.
+ *
+ * @return {number}
+ * A number from 0 to 1 that represents the decimal percentage of the
+ * video that is buffered.
+ *
+ */
+ bufferedPercent(): number;
+ /**
+ * Turn off the polyfill for `progress` events that was created in
+ * {@link Tech#manualProgressOn}
+ * Stop manually tracking progress events by clearing the interval that was set in
+ * {@link Tech#trackProgress}.
+ */
+ stopTrackingProgress(): void;
+ /**
+ * Polyfill the `timeupdate` event for browsers that don't support it.
+ *
+ * @see {@link Tech#trackCurrentTime}
+ */
+ manualTimeUpdatesOn(): void;
+ manualTimeUpdates: boolean;
+ /**
+ * Turn off the polyfill for `timeupdate` events that was created in
+ * {@link Tech#manualTimeUpdatesOn}
+ */
+ manualTimeUpdatesOff(): void;
+ /**
+ * Sets up an interval function to track current time and trigger `timeupdate` every
+ * 250 milliseconds.
+ *
+ * @listens Tech#play
+ * @triggers Tech#timeupdate
+ */
+ trackCurrentTime(): void;
+ currentTimeInterval: number;
+ /**
+ * Stop the interval function created in {@link Tech#trackCurrentTime} so that the
+ * `timeupdate` event is no longer triggered.
+ *
+ * @listens {Tech#pause}
+ */
+ stopTrackingCurrentTime(): void;
+ /**
+ * Turn off all event polyfills, clear the `Tech`s {@link AudioTrackList},
+ * {@link VideoTrackList}, and {@link TextTrackList}, and dispose of this Tech.
+ *
+ * @fires Component#dispose
+ */
+ dispose(): void;
+ /**
+ * Clear out a single `TrackList` or an array of `TrackLists` given their names.
+ *
+ * > Note: Techs without source handlers should call this between sources for `video`
+ * & `audio` tracks. You don't want to use them between tracks!
+ *
+ * @param {string[]|string} types
+ * TrackList names to clear, valid names are `video`, `audio`, and
+ * `text`.
+ */
+ clearTracks(types: string[] | string): void;
+ /**
+ * Remove any TextTracks added via addRemoteTextTrack that are
+ * flagged for automatic garbage collection
+ */
+ cleanupAutoTextTracks(): void;
+ /**
+ * Reset the tech, which will removes all sources and reset the internal readyState.
+ *
+ * @abstract
+ */
+ reset(): void;
+ /**
+ * Get the value of `crossOrigin` from the tech.
+ *
+ * @abstract
+ *
+ * @see {Html5#crossOrigin}
+ */
+ crossOrigin(): void;
+ /**
+ * Set the value of `crossOrigin` on the tech.
+ *
+ * @abstract
+ *
+ * @param {string} crossOrigin the crossOrigin value
+ * @see {Html5#setCrossOrigin}
+ */
+ setCrossOrigin(): void;
+ /**
+ * Get or set an error on the Tech.
+ *
+ * @param {MediaError} [err]
+ * Error to set on the Tech
+ *
+ * @return {MediaError|null}
+ * The current error object on the tech, or null if there isn't one.
+ */
+ error(err?: MediaError): MediaError | null;
+ error_: MediaError;
+ /**
+ * Returns the `TimeRange`s that have been played through for the current source.
+ *
+ * > NOTE: This implementation is incomplete. It does not track the played `TimeRange`.
+ * It only checks whether the source has played at all or not.
+ *
+ * @return { import('../utils/time').TimeRange }
+ * - A single time range if this video has played
+ * - An empty set of ranges if not.
+ */
+ played(): import('../utils/time').TimeRange;
+ /**
+ * Start playback
+ *
+ * @abstract
+ *
+ * @see {Html5#play}
+ */
+ play(): void;
+ /**
+ * Set whether we are scrubbing or not
+ *
+ * @abstract
+ * @param {boolean} _isScrubbing
+ * - true for we are currently scrubbing
+ * - false for we are no longer scrubbing
+ *
+ * @see {Html5#setScrubbing}
+ */
+ setScrubbing(_isScrubbing: boolean): void;
+ /**
+ * Get whether we are scrubbing or not
+ *
+ * @abstract
+ *
+ * @see {Html5#scrubbing}
+ */
+ scrubbing(): void;
+ /**
+ * Causes a manual time update to occur if {@link Tech#manualTimeUpdatesOn} was
+ * previously called.
+ *
+ * @param {number} _seconds
+ * Set the current time of the media to this.
+ * @fires Tech#timeupdate
+ */
+ setCurrentTime(_seconds: number): void;
+ /**
+ * Turn on listeners for {@link VideoTrackList}, {@link {AudioTrackList}, and
+ * {@link TextTrackList} events.
+ *
+ * This adds {@link EventTarget~EventListeners} for `addtrack`, and `removetrack`.
+ *
+ * @fires Tech#audiotrackchange
+ * @fires Tech#videotrackchange
+ * @fires Tech#texttrackchange
+ */
+ initTrackListeners(): void;
+ /**
+ * Emulate TextTracks using vtt.js if necessary
+ *
+ * @fires Tech#vttjsloaded
+ * @fires Tech#vttjserror
+ */
+ addWebVttScript_(): void;
+ /**
+ * Emulate texttracks
+ *
+ */
+ emulateTextTracks(): void;
+ /**
+ * Create and returns a remote {@link TextTrack} object.
+ *
+ * @param {string} kind
+ * `TextTrack` kind (subtitles, captions, descriptions, chapters, or metadata)
+ *
+ * @param {string} [label]
+ * Label to identify the text track
+ *
+ * @param {string} [language]
+ * Two letter language abbreviation
+ *
+ * @return {TextTrack}
+ * The TextTrack that gets created.
+ */
+ addTextTrack(kind: string, label?: string, language?: string): TextTrack;
+ /**
+ * Create an emulated TextTrack for use by addRemoteTextTrack
+ *
+ * This is intended to be overridden by classes that inherit from
+ * Tech in order to create native or custom TextTracks.
+ *
+ * @param {Object} options
+ * The object should contain the options to initialize the TextTrack with.
+ *
+ * @param {string} [options.kind]
+ * `TextTrack` kind (subtitles, captions, descriptions, chapters, or metadata).
+ *
+ * @param {string} [options.label].
+ * Label to identify the text track
+ *
+ * @param {string} [options.language]
+ * Two letter language abbreviation.
+ *
+ * @return {HTMLTrackElement}
+ * The track element that gets created.
+ */
+ createRemoteTextTrack(options: {
+ kind?: string;
+ label?: string;
+ language?: string;
+ }): HTMLTrackElement;
+ /**
+ * Creates a remote text track object and returns an html track element.
+ *
+ * > Note: This can be an emulated {@link HTMLTrackElement} or a native one.
+ *
+ * @param {Object} options
+ * See {@link Tech#createRemoteTextTrack} for more detailed properties.
+ *
+ * @param {boolean} [manualCleanup=false]
+ * - When false: the TextTrack will be automatically removed from the video
+ * element whenever the source changes
+ * - When True: The TextTrack will have to be cleaned up manually
+ *
+ * @return {HTMLTrackElement}
+ * An Html Track Element.
+ *
+ */
+ addRemoteTextTrack(options?: any, manualCleanup?: boolean): HTMLTrackElement;
+ /**
+ * Remove a remote text track from the remote `TextTrackList`.
+ *
+ * @param {TextTrack} track
+ * `TextTrack` to remove from the `TextTrackList`
+ */
+ removeRemoteTextTrack(track: TextTrack): void;
+ /**
+ * Gets available media playback quality metrics as specified by the W3C's Media
+ * Playback Quality API.
+ *
+ * @see [Spec]{@link https://wicg.github.io/media-playback-quality}
+ *
+ * @return {Object}
+ * An object with supported media playback quality metrics
+ *
+ * @abstract
+ */
+ getVideoPlaybackQuality(): any;
+ /**
+ * Attempt to create a floating video window always on top of other windows
+ * so that users may continue consuming media while they interact with other
+ * content sites, or applications on their device.
+ *
+ * @see [Spec]{@link https://wicg.github.io/picture-in-picture}
+ *
+ * @return {Promise|undefined}
+ * A promise with a Picture-in-Picture window if the browser supports
+ * Promises (or one was passed in as an option). It returns undefined
+ * otherwise.
+ *
+ * @abstract
+ */
+ requestPictureInPicture(): Promise<any> | undefined;
+ /**
+ * A method to check for the value of the 'disablePictureInPicture' <video> property.
+ * Defaults to true, as it should be considered disabled if the tech does not support pip
+ *
+ * @abstract
+ */
+ disablePictureInPicture(): boolean;
+ /**
+ * A method to set or unset the 'disablePictureInPicture' <video> property.
+ *
+ * @abstract
+ */
+ setDisablePictureInPicture(): void;
+ /**
+ * A fallback implementation of requestVideoFrameCallback using requestAnimationFrame
+ *
+ * @param {function} cb
+ * @return {number} request id
+ */
+ requestVideoFrameCallback(cb: Function): number;
+ /**
+ * A fallback implementation of cancelVideoFrameCallback
+ *
+ * @param {number} id id of callback to be cancelled
+ */
+ cancelVideoFrameCallback(id: number): void;
+ /**
+ * A method to set a poster from a `Tech`.
+ *
+ * @abstract
+ */
+ setPoster(): void;
+ /**
+ * A method to check for the presence of the 'playsinline' <video> attribute.
+ *
+ * @abstract
+ */
+ playsinline(): void;
+ /**
+ * A method to set or unset the 'playsinline' <video> attribute.
+ *
+ * @abstract
+ */
+ setPlaysinline(): void;
+ /**
+ * Attempt to force override of native audio tracks.
+ *
+ * @param {boolean} override - If set to true native audio will be overridden,
+ * otherwise native audio will potentially be used.
+ *
+ * @abstract
+ */
+ overrideNativeAudioTracks(override: boolean): void;
+ /**
+ * Attempt to force override of native video tracks.
+ *
+ * @param {boolean} override - If set to true native video will be overridden,
+ * otherwise native video will potentially be used.
+ *
+ * @abstract
+ */
+ overrideNativeVideoTracks(override: boolean): void;
+ /**
+ * Check if the tech can support the given mime-type.
+ *
+ * The base tech does not support any type, but source handlers might
+ * overwrite this.
+ *
+ * @param {string} _type
+ * The mimetype to check for support
+ *
+ * @return {string}
+ * 'probably', 'maybe', or empty string
+ *
+ * @see [Spec]{@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/canPlayType}
+ *
+ * @abstract
+ */
+ canPlayType(_type: string): string;
+ /**
+ * List of associated text tracks
+ *
+ * @type {TextTrackList}
+ * @private
+ * @property Tech#textTracks_
+ */
+ /**
+ * List of associated audio tracks.
+ *
+ * @type {AudioTrackList}
+ * @private
+ * @property Tech#audioTracks_
+ */
+ /**
+ * List of associated video tracks.
+ *
+ * @type {VideoTrackList}
+ * @private
+ * @property Tech#videoTracks_
+ */
+ /**
+ * Boolean indicating whether the `Tech` supports volume control.
+ *
+ * @type {boolean}
+ * @default
+ */
+ featuresVolumeControl: boolean;
+ /**
+ * Boolean indicating whether the `Tech` supports muting volume.
+ *
+ * @type {boolean}
+ * @default
+ */
+ featuresMuteControl: boolean;
+ /**
+ * Boolean indicating whether the `Tech` supports fullscreen resize control.
+ * Resizing plugins using request fullscreen reloads the plugin
+ *
+ * @type {boolean}
+ * @default
+ */
+ featuresFullscreenResize: boolean;
+ /**
+ * Boolean indicating whether the `Tech` supports changing the speed at which the video
+ * plays. Examples:
+ * - Set player to play 2x (twice) as fast
+ * - Set player to play 0.5x (half) as fast
+ *
+ * @type {boolean}
+ * @default
+ */
+ featuresPlaybackRate: boolean;
+ /**
+ * Boolean indicating whether the `Tech` supports the `progress` event.
+ * This will be used to determine if {@link Tech#manualProgressOn} should be called.
+ *
+ * @type {boolean}
+ * @default
+ */
+ featuresProgressEvents: boolean;
+ /**
+ * Boolean indicating whether the `Tech` supports the `sourceset` event.
+ *
+ * A tech should set this to `true` and then use {@link Tech#triggerSourceset}
+ * to trigger a {@link Tech#event:sourceset} at the earliest time after getting
+ * a new source.
+ *
+ * @type {boolean}
+ * @default
+ */
+ featuresSourceset: boolean;
+ /**
+ * Boolean indicating whether the `Tech` supports the `timeupdate` event.
+ * This will be used to determine if {@link Tech#manualTimeUpdates} should be called.
+ *
+ * @type {boolean}
+ * @default
+ */
+ featuresTimeupdateEvents: boolean;
+ /**
+ * Boolean indicating whether the `Tech` supports `requestVideoFrameCallback`.
+ *
+ * @type {boolean}
+ * @default
+ */
+ featuresVideoFrameCallback: boolean;
+}
+declare namespace Tech {
+ /**
+ * A functional mixin for techs that want to use the Source Handler pattern.
+ * Source handlers are scripts for handling specific formats.
+ * The source handler pattern is used for adaptive formats (HLS, DASH) that
+ * manually load video data and feed it into a Source Buffer (Media Source Extensions)
+ * Example: `Tech.withSourceHandlers.call(MyTech);`
+ *
+ * @param {Tech} _Tech
+ * The tech to add source handler functions to.
+ *
+ * @mixes Tech~SourceHandlerAdditions
+ */
+ function withSourceHandlers(_Tech: Tech): void;
+ const defaultTechOrder_: any[];
+}
+import Component from "../component";
+import MediaError from "../media-error.js";
+//# sourceMappingURL=tech.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/tech/tech.d.ts.map b/priv/static/video.js/types/tech/tech.d.ts.map
new file mode 100644
index 0000000..31ad842
--- /dev/null
+++ b/priv/static/video.js/types/tech/tech.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"tech.d.ts","sourceRoot":"","sources":["../../../src/js/tech/tech.js"],"names":[],"mappings":";;;;;;;2BAwBa,MAAO,MAAM;AAoD1B;;;;;GAKG;AACH;IAy2BE;;;;;;;;;OASG;IACH,0BAJW,MAAM,GAEL,MAAM,CAIjB;IAED;;;;;;;;OAQG;IACH,iDAFY,MAAM,CAIjB;IAcD,uCAIC;IAED;;;;;;;;OAQG;IACH,0BANW,MAAM,kBA+BhB;IAED;;;;;;;;OAQG;IACH,qBANW,MAAM,GAGL,IAAI,GAAC,SAAS,CAkBzB;IAh9BD;;;;;;;;MAQE;IACF,6CAwEC;IAlEC,oCAAwD;IACxD,iCAAkD;IAClD,oCAAwD;IACxD,2CAAsE;IACtE,uCAAgE;IAEhE,yBAA+B;IAI/B,qBAAwB;IAiCtB,0BAmiCI,OAAO,CAniC0B;IASvC,2BAA4D;IAE5D,mEAAiE;IAcnE;;;;;;OAMG;IACH,sBAFW,MAAM,QAqBhB;IAKD;;;;OAIG;IACH,yBAOC;IAJC,wBAA0B;IAM5B;;;OAGG;IACH,0BAKC;IAED;;;;;;;;;;;;OAYG;IACH,qBANW,KAAK,QA6Bf;IArBC,yBAoBQ;IAGV;;;;;;;;OAQG;IACH,wBALW,KAAK,QAOf;IADC,eAAgC;IAGlC;;;;;OAKG;IACH,YAHa,OAAO,eAAe,EAAE,SAAS,CAK7C;IAED;;;;;;;OAOG;IACH,mBALY,MAAM,CAOjB;IAED;;;;;OAKG;IACH,6BAEC;IAED;;;;OAIG;IACH,4BAKC;IAJC,2BAA6B;IAM/B;;;OAGG;IACH,6BAKC;IAED;;;;;;OAMG;IACH,yBAeC;IAXC,4BAUO;IAGT;;;;;OAKG;IACH,gCAMC;IAED;;;;;OAKG;IACH,gBAeC;IAED;;;;;;;;;OASG;IACH,mBAJW,MAAM,EAAE,GAAC,MAAM,QAoBzB;IAED;;;OAGG;IACH,8BASC;IAED;;;;OAIG;IACH,cAAU;IAEV;;;;;;OAMG;IACH,oBAAgB;IAEhB;;;;;;;OAOG;IACH,uBAAmB;IAEnB;;;;;;;;OAQG;IACH,YANW,UAAU,GAGT,UAAU,GAAC,IAAI,CAS1B;IAJG,mBAAiC;IAMrC;;;;;;;;;OASG;IACH,UAJa,OAAO,eAAe,EAAE,SAAS,CAS7C;IAED;;;;;;OAMG;IACH,aAAS;IAET;;;;;;;;;OASG;IACH,2BANW,OAAO,QAMW;IAE7B;;;;;;OAMG;IACH,kBAAc;IAEd;;;;;;;OAOG;IACH,yBAJW,MAAM,QAehB;IAED;;;;;;;;;OASG;IACH,2BAqCC;IAED;;;;;OAKG;IACH,yBAqDC;IAED;;;OAGG;IACH,0BA4CC;IAED;;;;;;;;;;;;;;OAcG;IACH,mBAZW,MAAM,UAGN,MAAM,aAGN,MAAM,GAGL,SAAS,CASpB;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH;eAZW,MAAM;gBAGN,MAAM;mBAGN,MAAM;QAGL,gBAAgB,CAS3B;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,kDATW,OAAO,GAKN,gBAAgB,CAqB3B;IAED;;;;;OAKG;IACH,6BAHW,SAAS,QAUnB;IAED;;;;;;;;;;OAUG;IACH,+BAEC;IAED;;;;;;;;;;;;;OAaG;IACH,2BAPY,eAAQ,SAAS,CAS5B;IAED;;;;;OAKG;IACH,mCAEC;IAED;;;;OAIG;IACH,mCAA+B;IAE/B;;;;;OAKG;IACH,yCAFY,MAAM,CAkBjB;IAED;;;;OAIG;IACH,6BAFW,MAAM,QAQhB;IAED;;;;OAIG;IACH,kBAAc;IAEd;;;;OAIG;IACH,oBAAgB;IAEhB;;;;OAIG;IACH,uBAAmB;IAEnB;;;;;;;OAOG;IACH,oCALW,OAAO,QAKoB;IAEtC;;;;;;;OAOG;IACH,oCALW,OAAO,QAKoB;IAEtC;;;;;;;;;;;;;;;OAeG;IACH,mBAVY,MAAM,GAGN,MAAM,CASjB;IA0JH;;;;;;OAMG;IAEH;;;;;;OAMG;IAEH;;;;;;OAMG;IAEH;;;;;OAKG;IACH,uBAHU,OAAO,CAGmB;IAEpC;;;;;OAKG;IACH,qBAHU,OAAO,CAGiB;IAElC;;;;;;OAMG;IACH,0BAHU,OAAO,CAGsB;IAEvC;;;;;;;;OAQG;IACH,sBAHU,OAAO,CAGkB;IAEnC;;;;;;OAMG;IACH,wBAHU,OAAO,CAGoB;IAErC;;;;;;;;;OASG;IACH,mBAHU,OAAO,CAGe;IAEhC;;;;;;OAMG;IACH,0BAHU,OAAO,CAGsB;IAWvC;;;;;OAKG;IACH,4BAHU,OAAO,CAGwB;CAvJxC;;IAyJD;;;;;;;;;;;OAWG;IACH,+CA0MC"} \ No newline at end of file
diff --git a/priv/static/video.js/types/title-bar.d.ts b/priv/static/video.js/types/title-bar.d.ts
new file mode 100644
index 0000000..f2ca248
--- /dev/null
+++ b/priv/static/video.js/types/title-bar.d.ts
@@ -0,0 +1,67 @@
+export default TitleBar;
+/**
+ * Displays an element over the player which contains an optional title and
+ * description for the current content.
+ *
+ * Much of the code for this component originated in the now obsolete
+ * videojs-dock plugin: https://github.com/brightcove/videojs-dock/
+ *
+ * @extends Component
+ */
+declare class TitleBar extends Component {
+ constructor(player: any, options: any);
+ /**
+ * Create the `TitleBar`'s DOM element
+ *
+ * @return {Element}
+ * The element that was created.
+ */
+ createEl(): Element;
+ els: {
+ title: Element;
+ description: Element;
+ };
+ /**
+ * Updates the DOM based on the component's state object.
+ */
+ updateDom_(): void;
+ /**
+ * Update the contents of the title bar component with new title and
+ * description text.
+ *
+ * If both title and description are missing, the title bar will be hidden.
+ *
+ * If either title or description are present, the title bar will be visible.
+ *
+ * NOTE: Any previously set value will be preserved. To unset a previously
+ * set value, you must pass an empty string or null.
+ *
+ * For example:
+ *
+ * ```
+ * update({title: 'foo', description: 'bar'}) // title: 'foo', description: 'bar'
+ * update({description: 'bar2'}) // title: 'foo', description: 'bar2'
+ * update({title: ''}) // title: '', description: 'bar2'
+ * update({title: 'foo', description: null}) // title: 'foo', description: null
+ * ```
+ *
+ * @param {Object} [options={}]
+ * An options object. When empty, the title bar will be hidden.
+ *
+ * @param {string} [options.title]
+ * A title to display in the title bar.
+ *
+ * @param {string} [options.description]
+ * A description to display in the title bar.
+ */
+ update(options?: {
+ title?: string;
+ description?: string;
+ }): void;
+ /**
+ * Dispose the component.
+ */
+ dispose(): void;
+}
+import Component from "./component";
+//# sourceMappingURL=title-bar.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/title-bar.d.ts.map b/priv/static/video.js/types/title-bar.d.ts.map
new file mode 100644
index 0000000..7a2ab30
--- /dev/null
+++ b/priv/static/video.js/types/title-bar.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"title-bar.d.ts","sourceRoot":"","sources":["../../src/js/title-bar.js"],"names":[],"mappings":";AAKA;;;;;;;;GAQG;AACH;IAEE,uCAIC;IAED;;;;;OAKG;IACH,YAHY,OAAO,CAkBlB;IAdC;;;MASC;IAOH;;OAEG;IACH,mBAmCC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH;QAN6B,KAAK,GAAtB,MAAM;QAGW,WAAW,GAA5B,MAAM;aAKjB;IAED;;OAEG;IACH,gBAWC;CACF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/tracks/audio-track-list.d.ts b/priv/static/video.js/types/tracks/audio-track-list.d.ts
new file mode 100644
index 0000000..b4c827a
--- /dev/null
+++ b/priv/static/video.js/types/tracks/audio-track-list.d.ts
@@ -0,0 +1,29 @@
+export default AudioTrackList;
+/**
+ * The current list of {@link AudioTrack} for a media file.
+ *
+ * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#audiotracklist}
+ * @extends TrackList
+ */
+declare class AudioTrackList extends TrackList {
+ /**
+ * Create an instance of this class.
+ *
+ * @param { import('./audio-track').default[] } [tracks=[]]
+ * A list of `AudioTrack` to instantiate the list with.
+ */
+ constructor(tracks?: import('./audio-track').default[]);
+ changing_: boolean;
+ /**
+ * Add an {@link AudioTrack} to the `AudioTrackList`.
+ *
+ * @param { import('./audio-track').default } track
+ * The AudioTrack to add to the list
+ *
+ * @fires TrackList#addtrack
+ */
+ addTrack(track: import('./audio-track').default): void;
+ removeTrack(rtrack: any): void;
+}
+import TrackList from "./track-list";
+//# sourceMappingURL=audio-track-list.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/tracks/audio-track-list.d.ts.map b/priv/static/video.js/types/tracks/audio-track-list.d.ts.map
new file mode 100644
index 0000000..190948b
--- /dev/null
+++ b/priv/static/video.js/types/tracks/audio-track-list.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"audio-track-list.d.ts","sourceRoot":"","sources":["../../../src/js/tracks/audio-track-list.js"],"names":[],"mappings":";AA2BA;;;;;GAKG;AACH;IAEE;;;;;OAKG;IACH,qBAHY,OAAO,eAAe,EAAE,OAAO,EAAE,EAe5C;IADC,mBAAsB;IAGxB;;;;;;;OAOG;IACH,gBALY,OAAO,eAAe,EAAE,OAAO,QAkC1C;IAED,+BAOC;CACF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/tracks/audio-track.d.ts b/priv/static/video.js/types/tracks/audio-track.d.ts
new file mode 100644
index 0000000..d284ffd
--- /dev/null
+++ b/priv/static/video.js/types/tracks/audio-track.d.ts
@@ -0,0 +1,37 @@
+export default AudioTrack;
+/**
+ * A representation of a single `AudioTrack`. If it is part of an {@link AudioTrackList}
+ * only one `AudioTrack` in the list will be enabled at a time.
+ *
+ * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#audiotrack}
+ * @extends Track
+ */
+declare class AudioTrack extends Track {
+ /**
+ * Create an instance of this class.
+ *
+ * @param {Object} [options={}]
+ * Object of option names and values
+ *
+ * @param {AudioTrack~Kind} [options.kind='']
+ * A valid audio track kind
+ *
+ * @param {string} [options.id='vjs_track_' + Guid.newGUID()]
+ * A unique id for this AudioTrack.
+ *
+ * @param {string} [options.label='']
+ * The menu label for this track.
+ *
+ * @param {string} [options.language='']
+ * A valid two character language code.
+ *
+ * @param {boolean} [options.enabled]
+ * If this track is the one that is currently playing. If this track is part of
+ * an {@link AudioTrackList}, only one {@link AudioTrack} will be enabled.
+ */
+ constructor(options?: any);
+ enabled: any;
+ loaded_: boolean;
+}
+import Track from "./track";
+//# sourceMappingURL=audio-track.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/tracks/audio-track.d.ts.map b/priv/static/video.js/types/tracks/audio-track.d.ts.map
new file mode 100644
index 0000000..df3ad69
--- /dev/null
+++ b/priv/static/video.js/types/tracks/audio-track.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"audio-track.d.ts","sourceRoot":"","sources":["../../../src/js/tracks/audio-track.js"],"names":[],"mappings":";AAIA;;;;;;GAMG;AACH;IAEE;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,2BAkDC;IAHG,aAA+B;IAEjC,iBAAmB;CAEtB"} \ No newline at end of file
diff --git a/priv/static/video.js/types/tracks/html-track-element-list.d.ts b/priv/static/video.js/types/tracks/html-track-element-list.d.ts
new file mode 100644
index 0000000..b7fa67d
--- /dev/null
+++ b/priv/static/video.js/types/tracks/html-track-element-list.d.ts
@@ -0,0 +1,49 @@
+export default HtmlTrackElementList;
+/**
+ * @file html-track-element-list.js
+ */
+/**
+ * The current list of {@link HtmlTrackElement}s.
+ */
+declare class HtmlTrackElementList {
+ /**
+ * Create an instance of this class.
+ *
+ * @param {HtmlTrackElement[]} [tracks=[]]
+ * A list of `HtmlTrackElement` to instantiate the list with.
+ */
+ constructor(trackElements?: any[]);
+ trackElements_: any[];
+ /**
+ * Add an {@link HtmlTrackElement} to the `HtmlTrackElementList`
+ *
+ * @param {HtmlTrackElement} trackElement
+ * The track element to add to the list.
+ *
+ * @private
+ */
+ private addTrackElement_;
+ /**
+ * Get an {@link HtmlTrackElement} from the `HtmlTrackElementList` given an
+ * {@link TextTrack}.
+ *
+ * @param {TextTrack} track
+ * The track associated with a track element.
+ *
+ * @return {HtmlTrackElement|undefined}
+ * The track element that was found or undefined.
+ *
+ * @private
+ */
+ private getTrackElementByTrack_;
+ /**
+ * Remove a {@link HtmlTrackElement} from the `HtmlTrackElementList`
+ *
+ * @param {HtmlTrackElement} trackElement
+ * The track element to remove from the list.
+ *
+ * @private
+ */
+ private removeTrackElement_;
+}
+//# sourceMappingURL=html-track-element-list.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/tracks/html-track-element-list.d.ts.map b/priv/static/video.js/types/tracks/html-track-element-list.d.ts.map
new file mode 100644
index 0000000..5dd18fe
--- /dev/null
+++ b/priv/static/video.js/types/tracks/html-track-element-list.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"html-track-element-list.d.ts","sourceRoot":"","sources":["../../../src/js/tracks/html-track-element-list.js"],"names":[],"mappings":";AAAA;;GAEG;AAEH;;GAEG;AACH;IAEE;;;;;OAKG;IACH,mCAkBC;IAjBC,sBAAwB;IAmB1B;;;;;;;OAOG;IACH,yBAeC;IAED;;;;;;;;;;;OAWG;IACH,gCAYC;IAED;;;;;;;OAOG;IACH,4BAcC;CACF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/tracks/html-track-element.d.ts b/priv/static/video.js/types/tracks/html-track-element.d.ts
new file mode 100644
index 0000000..556dd34
--- /dev/null
+++ b/priv/static/video.js/types/tracks/html-track-element.d.ts
@@ -0,0 +1,65 @@
+export default HTMLTrackElement;
+/**
+ * A single track represented in the DOM.
+ *
+ * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#htmltrackelement}
+ * @extends EventTarget
+ */
+declare class HTMLTrackElement extends EventTarget {
+ /**
+ * Create an instance of this class.
+ *
+ * @param {Object} options={}
+ * Object of option names and values
+ *
+ * @param { import('../tech/tech').default } options.tech
+ * A reference to the tech that owns this HTMLTrackElement.
+ *
+ * @param {TextTrack~Kind} [options.kind='subtitles']
+ * A valid text track kind.
+ *
+ * @param {TextTrack~Mode} [options.mode='disabled']
+ * A valid text track mode.
+ *
+ * @param {string} [options.id='vjs_track_' + Guid.newGUID()]
+ * A unique id for this TextTrack.
+ *
+ * @param {string} [options.label='']
+ * The menu label for this track.
+ *
+ * @param {string} [options.language='']
+ * A valid two character language code.
+ *
+ * @param {string} [options.srclang='']
+ * A valid two character language code. An alternative, but deprioritized
+ * version of `options.language`
+ *
+ * @param {string} [options.src]
+ * A url to TextTrack cues.
+ *
+ * @param {boolean} [options.default]
+ * If this track should default to on or off.
+ */
+ constructor(options?: {
+ tech: import('../tech/tech').default;
+ });
+ kind: any;
+ src: any;
+ srclang: any;
+ label: any;
+ default: any;
+ /**
+ * @protected
+ */
+ protected allowedEvents_: {
+ load: string;
+ };
+}
+declare namespace HTMLTrackElement {
+ const NONE: number;
+ const LOADING: number;
+ const LOADED: number;
+ const ERROR: number;
+}
+import EventTarget from "../event-target";
+//# sourceMappingURL=html-track-element.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/tracks/html-track-element.d.ts.map b/priv/static/video.js/types/tracks/html-track-element.d.ts.map
new file mode 100644
index 0000000..0115f13
--- /dev/null
+++ b/priv/static/video.js/types/tracks/html-track-element.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"html-track-element.d.ts","sourceRoot":"","sources":["../../../src/js/tracks/html-track-element.js"],"names":[],"mappings":";AAOA;;;;;GAKG;AACH;IAEE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH;QA5BqD,IAAI,EAA7C,OAAO,cAAc,EAAE,OAAO;OAmFzC;IAhDC,UAAsB;IACtB,SAAoB;IACpB,aAA6B;IAC7B,WAAwB;IACxB,aAA4B;IA+ChC;;OAEG;IACH;;MAAyC;CALxC;;gBAYS,MAAM;mBAQN,MAAM;kBAQN,MAAM;iBAQN,MAAM"} \ No newline at end of file
diff --git a/priv/static/video.js/types/tracks/text-track-cue-list.d.ts b/priv/static/video.js/types/tracks/text-track-cue-list.d.ts
new file mode 100644
index 0000000..6a91e5f
--- /dev/null
+++ b/priv/static/video.js/types/tracks/text-track-cue-list.d.ts
@@ -0,0 +1,79 @@
+export default TextTrackCueList;
+/**
+ * ~TextTrackCue
+ */
+export type TextTrackCueList = {
+ /**
+ * The unique id for this text track cue
+ */
+ id: string;
+ /**
+ * The start time for this text track cue
+ */
+ startTime: number;
+ /**
+ * The end time for this text track cue
+ */
+ endTime: number;
+ /**
+ * Pause when the end time is reached if true.
+ */
+ pauseOnExit: boolean;
+};
+/**
+ * @file text-track-cue-list.js
+ */
+/**
+ * @typedef {Object} TextTrackCueList~TextTrackCue
+ *
+ * @property {string} id
+ * The unique id for this text track cue
+ *
+ * @property {number} startTime
+ * The start time for this text track cue
+ *
+ * @property {number} endTime
+ * The end time for this text track cue
+ *
+ * @property {boolean} pauseOnExit
+ * Pause when the end time is reached if true.
+ *
+ * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcue}
+ */
+/**
+ * A List of TextTrackCues.
+ *
+ * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcuelist}
+ */
+declare class TextTrackCueList {
+ /**
+ * Create an instance of this class..
+ *
+ * @param {Array} cues
+ * A list of cues to be initialized with
+ */
+ constructor(cues: any[]);
+ /**
+ * A setter for cues in this list. Creates getters
+ * an an index for the cues.
+ *
+ * @param {Array} cues
+ * An array of cues to set
+ *
+ * @private
+ */
+ private setCues_;
+ cues_: any[];
+ length_: number;
+ /**
+ * Get a `TextTrackCue` that is currently in the `TextTrackCueList` by id.
+ *
+ * @param {string} id
+ * The id of the cue that should be searched for.
+ *
+ * @return {TextTrackCueList~TextTrackCue|null}
+ * A single cue or null if none was found.
+ */
+ getCueById(id: string): TextTrackCueList;
+}
+//# sourceMappingURL=text-track-cue-list.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/tracks/text-track-cue-list.d.ts.map b/priv/static/video.js/types/tracks/text-track-cue-list.d.ts.map
new file mode 100644
index 0000000..6568b9d
--- /dev/null
+++ b/priv/static/video.js/types/tracks/text-track-cue-list.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"text-track-cue-list.d.ts","sourceRoot":"","sources":["../../../src/js/tracks/text-track-cue-list.js"],"names":[],"mappings":";;;;;;;;QAOc,MAAM;;;;eAGN,MAAM;;;;aAGN,MAAM;;;;iBAGN,OAAO;;AAhBrB;;GAEG;AAEH;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;GAIG;AACH;IAEE;;;;;OAKG;IACH,yBAcC;IAED;;;;;;;;OAQG;IACH,iBAyBC;IApBC,aAAiB;IACjB,gBAA0B;IAqB5B;;;;;;;;OAQG;IACH,eANW,MAAM,GAGL,gBAAgB,CAgB3B;CACF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/tracks/text-track-display.d.ts b/priv/static/video.js/types/tracks/text-track-display.d.ts
new file mode 100644
index 0000000..8450a3f
--- /dev/null
+++ b/priv/static/video.js/types/tracks/text-track-display.d.ts
@@ -0,0 +1,93 @@
+/**
+ * Construct an rgba color from a given hex color code.
+ *
+ * @param {number} color
+ * Hex number for color, like #f0e or #f604e2.
+ *
+ * @param {number} opacity
+ * Value for opacity, 0.0 - 1.0.
+ *
+ * @return {string}
+ * The rgba color that was created, like 'rgba(255, 0, 0, 0.3)'.
+ */
+export function constructColor(color: number, opacity: number): string;
+export default TextTrackDisplay;
+/**
+ * The component for displaying text track cues.
+ *
+ * @extends Component
+ */
+declare class TextTrackDisplay extends Component {
+ /**
+ * Creates an instance of this class.
+ *
+ * @param { import('../player').default } player
+ * The `Player` that this class should be attached to.
+ *
+ * @param {Object} [options]
+ * The key/value store of player options.
+ *
+ * @param {Function} [ready]
+ * The function to call when `TextTrackDisplay` is ready.
+ */
+ constructor(player: import('../player').default, options?: any, ready?: Function);
+ /**
+ * Preselect a track following this precedence:
+ * - matches the previously selected {@link TextTrack}'s language and kind
+ * - matches the previously selected {@link TextTrack}'s language only
+ * - is the first default captions track
+ * - is the first default descriptions track
+ *
+ * @listens Player#loadstart
+ */
+ preselectTrack(): void;
+ /**
+ * Turn display of {@link TextTrack}'s from the current state into the other state.
+ * There are only two states:
+ * - 'shown'
+ * - 'hidden'
+ *
+ * @listens Player#loadstart
+ */
+ toggleDisplay(): void;
+ /**
+ * Create the {@link Component}'s DOM element.
+ *
+ * @return {Element}
+ * The element that was created.
+ */
+ createEl(): Element;
+ /**
+ * Clear all displayed {@link TextTrack}s.
+ */
+ clearDisplay(): void;
+ /**
+ * Update the displayed TextTrack when a either a {@link Player#texttrackchange} or
+ * a {@link Player#fullscreenchange} is fired.
+ *
+ * @listens Player#texttrackchange
+ * @listens Player#fullscreenchange
+ */
+ updateDisplay(): void;
+ /**
+ * Updates the displayed TextTrack to be sure it overlays the video when a either
+ * a {@link Player#texttrackchange} or a {@link Player#fullscreenchange} is fired.
+ */
+ updateDisplayOverlay(): void;
+ /**
+ * Style {@Link TextTrack} activeCues according to {@Link TextTrackSettings}.
+ *
+ * @param {TextTrack} track
+ * Text track object containing active cues to style.
+ */
+ updateDisplayState(track: TextTrack): void;
+ /**
+ * Add an {@link TextTrack} to to the {@link Tech}s {@link TextTrackList}.
+ *
+ * @param {TextTrack|TextTrack[]} tracks
+ * Text track object or text track array to be added to the list.
+ */
+ updateForTrack(tracks: TextTrack | TextTrack[]): void;
+}
+import Component from "../component";
+//# sourceMappingURL=text-track-display.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/tracks/text-track-display.d.ts.map b/priv/static/video.js/types/tracks/text-track-display.d.ts.map
new file mode 100644
index 0000000..d238d93
--- /dev/null
+++ b/priv/static/video.js/types/tracks/text-track-display.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"text-track-display.d.ts","sourceRoot":"","sources":["../../../src/js/tracks/text-track-display.js"],"names":[],"mappings":"AAuBA;;;;;;;;;;;GAWG;AACH,sCATW,MAAM,WAGN,MAAM,GAGL,MAAM,CAoBjB;;AA0CD;;;;GAIG;AACH;IAEE;;;;;;;;;;;OAWG;IACH,oBATY,OAAO,WAAW,EAAE,OAAO,mCAoDtC;IAED;;;;;;;;MAQE;IACF,uBAkDC;IAED;;;;;;;OAOG;IACH,sBAMC;IAED;;;;;OAKG;IACH,YAHY,OAAO,CAWlB;IAED;;OAEG;IACH,qBAIC;IAED;;;;;;OAMG;IACH,sBAoDC;IAED;;;OAGG;IACH,6BAwBC;IAED;;;;;OAKG;IACH,0BAHW,SAAS,QAiFnB;IAED;;;;;OAKG;IACH,uBAHW,SAAS,GAAC,SAAS,EAAE,QA4C/B;CAEF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/tracks/text-track-list-converter.d.ts b/priv/static/video.js/types/tracks/text-track-list-converter.d.ts
new file mode 100644
index 0000000..5f5e8dd
--- /dev/null
+++ b/priv/static/video.js/types/tracks/text-track-list-converter.d.ts
@@ -0,0 +1,50 @@
+declare namespace _default {
+ export { textTracksToJson };
+ export { jsonToTextTracks };
+ export { trackToJson_ };
+}
+export default _default;
+/**
+ * Examine a {@link Tech} and return a JSON-compatible javascript array that represents the
+ * state of all {@link TextTrack}s currently configured. The return array is compatible with
+ * {@link text-track-list-converter:jsonToTextTracks}.
+ *
+ * @param { import('../tech/tech').default } tech
+ * The tech object to query
+ *
+ * @return {Array}
+ * A serializable javascript representation of the {@link Tech}s
+ * {@link TextTrackList}.
+ */
+declare function textTracksToJson(tech: import('../tech/tech').default): any[];
+/**
+ * Create a set of remote {@link TextTrack}s on a {@link Tech} based on an array of javascript
+ * object {@link TextTrack} representations.
+ *
+ * @param {Array} json
+ * An array of `TextTrack` representation objects, like those that would be
+ * produced by `textTracksToJson`.
+ *
+ * @param {Tech} tech
+ * The `Tech` to create the `TextTrack`s on.
+ */
+declare function jsonToTextTracks(json: any[], tech: Tech): any;
+/**
+ * @file text-track-list-converter.js Utilities for capturing text track state and
+ * re-creating tracks based on a capture.
+ *
+ * @module text-track-list-converter
+ */
+/**
+ * Examine a single {@link TextTrack} and return a JSON-compatible javascript object that
+ * represents the {@link TextTrack}'s state.
+ *
+ * @param {TextTrack} track
+ * The text track to query.
+ *
+ * @return {Object}
+ * A serializable javascript representation of the TextTrack.
+ * @private
+ */
+declare function trackToJson_(track: TextTrack): any;
+//# sourceMappingURL=text-track-list-converter.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/tracks/text-track-list-converter.d.ts.map b/priv/static/video.js/types/tracks/text-track-list-converter.d.ts.map
new file mode 100644
index 0000000..c2bc6a6
--- /dev/null
+++ b/priv/static/video.js/types/tracks/text-track-list-converter.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"text-track-list-converter.d.ts","sourceRoot":"","sources":["../../../src/js/tracks/text-track-list-converter.js"],"names":[],"mappings":";;;;;;AA2CA;;;;;;;;;;;GAWG;AACH,wCAPY,OAAO,cAAc,EAAE,OAAO,SAwBzC;AAED;;;;;;;;;;GAUG;AACH,gEAUC;AA/FD;;;;;GAKG;AAEH;;;;;;;;;;GAUG;AACH,qCAPW,SAAS,OA8BnB"} \ No newline at end of file
diff --git a/priv/static/video.js/types/tracks/text-track-list.d.ts b/priv/static/video.js/types/tracks/text-track-list.d.ts
new file mode 100644
index 0000000..11b62f4
--- /dev/null
+++ b/priv/static/video.js/types/tracks/text-track-list.d.ts
@@ -0,0 +1,23 @@
+export default TextTrackList;
+/**
+ * The current list of {@link TextTrack} for a media file.
+ *
+ * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttracklist}
+ * @extends TrackList
+ */
+declare class TextTrackList extends TrackList {
+ /**
+ * Add a {@link TextTrack} to the `TextTrackList`
+ *
+ * @param { import('./text-track').default } track
+ * The text track to add to the list.
+ *
+ * @fires TrackList#addtrack
+ */
+ addTrack(track: import('./text-track').default): void;
+ queueChange_: () => void;
+ triggerSelectedlanguagechange_: () => void;
+ removeTrack(rtrack: any): void;
+}
+import TrackList from "./track-list";
+//# sourceMappingURL=text-track-list.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/tracks/text-track-list.d.ts.map b/priv/static/video.js/types/tracks/text-track-list.d.ts.map
new file mode 100644
index 0000000..7746892
--- /dev/null
+++ b/priv/static/video.js/types/tracks/text-track-list.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"text-track-list.d.ts","sourceRoot":"","sources":["../../../src/js/tracks/text-track-list.js"],"names":[],"mappings":";AAKA;;;;;GAKG;AACH;IAEE;;;;;;;OAOG;IACH,gBALY,OAAO,cAAc,EAAE,OAAO,QAyBzC;IAhBG,yBAAqD;IAGrD,2CAAkF;IAetF,+BAYC;CACF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/tracks/text-track-settings.d.ts b/priv/static/video.js/types/tracks/text-track-settings.d.ts
new file mode 100644
index 0000000..a53e584
--- /dev/null
+++ b/priv/static/video.js/types/tracks/text-track-settings.d.ts
@@ -0,0 +1,124 @@
+export default TextTrackSettings;
+/**
+ * Manipulate Text Tracks settings.
+ *
+ * @extends ModalDialog
+ */
+declare class TextTrackSettings extends ModalDialog {
+ /**
+ * Creates an instance of this class.
+ *
+ * @param { import('../player').default } player
+ * The `Player` that this class should be attached to.
+ *
+ * @param {Object} [options]
+ * The key/value store of player options.
+ */
+ constructor(player: import('../player').default, options?: any);
+ /**
+ * Update display of text track settings
+ */
+ updateDisplay(): void;
+ endDialog: Element;
+ /**
+ * Create a <select> element with configured options.
+ *
+ * @param {string} key
+ * Configuration key to use during creation.
+ *
+ * @param {string} [legendId]
+ * Id of associated <legend>.
+ *
+ * @param {string} [type=label]
+ * Type of labelling element, `label` or `legend`
+ *
+ * @return {string}
+ * An HTML string.
+ *
+ * @private
+ */
+ private createElSelect_;
+ /**
+ * Create foreground color element for the component
+ *
+ * @return {string}
+ * An HTML string.
+ *
+ * @private
+ */
+ private createElFgColor_;
+ /**
+ * Create background color element for the component
+ *
+ * @return {string}
+ * An HTML string.
+ *
+ * @private
+ */
+ private createElBgColor_;
+ /**
+ * Create window color element for the component
+ *
+ * @return {string}
+ * An HTML string.
+ *
+ * @private
+ */
+ private createElWinColor_;
+ /**
+ * Create color elements for the component
+ *
+ * @return {Element}
+ * The element that was created
+ *
+ * @private
+ */
+ private createElColors_;
+ /**
+ * Create font elements for the component
+ *
+ * @return {Element}
+ * The element that was created.
+ *
+ * @private
+ */
+ private createElFont_;
+ /**
+ * Create controls for the component
+ *
+ * @return {Element}
+ * The element that was created.
+ *
+ * @private
+ */
+ private createElControls_;
+ content(): Element[];
+ /**
+ * Gets an object of text track settings (or null).
+ *
+ * @return {Object}
+ * An object with config values parsed from the DOM or localStorage.
+ */
+ getValues(): any;
+ /**
+ * Sets text track settings from an object of values.
+ *
+ * @param {Object} values
+ * An object with config values parsed from the DOM or localStorage.
+ */
+ setValues(values: any): void;
+ /**
+ * Sets all `<select>` elements to their default values.
+ */
+ setDefaults(): void;
+ /**
+ * Restore texttrack settings from localStorage
+ */
+ restoreSettings(): void;
+ /**
+ * Save text track settings to localStorage
+ */
+ saveSettings(): void;
+}
+import ModalDialog from "../modal-dialog";
+//# sourceMappingURL=text-track-settings.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/tracks/text-track-settings.d.ts.map b/priv/static/video.js/types/tracks/text-track-settings.d.ts.map
new file mode 100644
index 0000000..85b1bcb
--- /dev/null
+++ b/priv/static/video.js/types/tracks/text-track-settings.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"text-track-settings.d.ts","sourceRoot":"","sources":["../../../src/js/tracks/text-track-settings.js"],"names":[],"mappings":";AA4OA;;;;GAIG;AACH;IAEE;;;;;;;;OAQG;IACH,oBANY,OAAO,WAAW,EAAE,OAAO,iBA8CtC;IAsSD;;OAEG;IACH,sBAMC;IA7UC,mBAGE;IAmCJ;;;;;;;;;;;;;;;;OAgBG;IACH,wBAuBC;IAED;;;;;;;OAOG;IACH,yBAgBC;IAED;;;;;;;OAOG;IACH,yBAgBC;IAED;;;;;;;OAOG;IACH,0BAgBC;IAED;;;;;;;OAOG;IACH,wBASC;IAED;;;;;;;OAOG;IACH,sBAeC;IAED;;;;;;;OAOG;IACH,0BAaC;IAED,qBAMC;IAcD;;;;;OAKG;IACH,iBAUC;IAED;;;;;OAKG;IACH,6BAIC;IAED;;OAEG;IACH,oBAMC;IAED;;OAEG;IACH,wBAYC;IAED;;OAEG;IACH,qBAgBC;CAuCF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/tracks/text-track.d.ts b/priv/static/video.js/types/tracks/text-track.d.ts
new file mode 100644
index 0000000..f418054
--- /dev/null
+++ b/priv/static/video.js/types/tracks/text-track.d.ts
@@ -0,0 +1,79 @@
+export default TextTrack;
+/**
+ * A representation of a single `TextTrack`.
+ *
+ * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttrack}
+ * @extends Track
+ */
+declare class TextTrack extends Track {
+ /**
+ * Create an instance of this class.
+ *
+ * @param {Object} options={}
+ * Object of option names and values
+ *
+ * @param { import('../tech/tech').default } options.tech
+ * A reference to the tech that owns this TextTrack.
+ *
+ * @param {TextTrack~Kind} [options.kind='subtitles']
+ * A valid text track kind.
+ *
+ * @param {TextTrack~Mode} [options.mode='disabled']
+ * A valid text track mode.
+ *
+ * @param {string} [options.id='vjs_track_' + Guid.newGUID()]
+ * A unique id for this TextTrack.
+ *
+ * @param {string} [options.label='']
+ * The menu label for this track.
+ *
+ * @param {string} [options.language='']
+ * A valid two character language code.
+ *
+ * @param {string} [options.srclang='']
+ * A valid two character language code. An alternative, but deprioritized
+ * version of `options.language`
+ *
+ * @param {string} [options.src]
+ * A url to TextTrack cues.
+ *
+ * @param {boolean} [options.default]
+ * If this track should default to on or off.
+ */
+ constructor(options?: {
+ tech: import('../tech/tech').default;
+ });
+ tech_: any;
+ cues_: any[];
+ activeCues_: any[];
+ preload_: boolean;
+ timeupdateHandler: Function;
+ src: any;
+ loaded_: boolean;
+ startTracking(): void;
+ rvf_: any;
+ stopTracking(): void;
+ /**
+ * Add a cue to the internal list of cues.
+ *
+ * @param {TextTrack~Cue} cue
+ * The cue to add to our internal list
+ */
+ addCue(originalCue: any): void;
+ /**
+ * Remove a cue from our internal list
+ *
+ * @param {TextTrack~Cue} removeCue
+ * The cue to remove from our internal list
+ */
+ removeCue(removeCue: any): void;
+ /**
+ * cuechange - One or more cues in the track have become active or stopped being active.
+ * @protected
+ */
+ protected allowedEvents_: {
+ cuechange: string;
+ };
+}
+import Track from "./track.js";
+//# sourceMappingURL=text-track.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/tracks/text-track.d.ts.map b/priv/static/video.js/types/tracks/text-track.d.ts.map
new file mode 100644
index 0000000..a67d15f
--- /dev/null
+++ b/priv/static/video.js/types/tracks/text-track.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"text-track.d.ts","sourceRoot":"","sources":["../../../src/js/tracks/text-track.js"],"names":[],"mappings":";AAoHA;;;;;GAKG;AACH;IAEE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH;QA5BqD,IAAI,EAA7C,OAAO,cAAc,EAAE,OAAO;OA6OzC;IAhMC,WAA0B;IAE1B,aAAe;IACf,mBAAqB;IAErB,kBAAsD;IAMtD,4BA2BE;IA8IA,SAAuB;IAIrB,iBAAmB;IAUzB,sBAKC;IAHC,UAAwE;IAK1E,qBAMC;IAED;;;;;OAKG;IACH,+BA4BC;IAED;;;;;OAKG;IACH,gCAYC;IAGH;;;OAGG;IACH;;MAAkC;CANjC"} \ No newline at end of file
diff --git a/priv/static/video.js/types/tracks/track-enums.d.ts b/priv/static/video.js/types/tracks/track-enums.d.ts
new file mode 100644
index 0000000..0a78940
--- /dev/null
+++ b/priv/static/video.js/types/tracks/track-enums.d.ts
@@ -0,0 +1,66 @@
+/**
+ * All possible `VideoTrackKind`s
+ */
+export type VideoTrackKind = any;
+export namespace VideoTrackKind {
+ const alternative: string;
+ const captions: string;
+ const main: string;
+ const sign: string;
+ const subtitles: string;
+ const commentary: string;
+}
+/**
+ * All possible `AudioTrackKind`s
+ */
+export type AudioTrackKind = any;
+/**
+ * All possible `AudioTrackKind`s
+ *
+ * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-audiotrack-kind
+ * @typedef AudioTrack~Kind
+ * @enum
+ */
+export const AudioTrackKind: {
+ alternative: string;
+ descriptions: string;
+ main: string;
+ 'main-desc': string;
+ translation: string;
+ commentary: string;
+};
+/**
+ * All possible `TextTrackKind`s
+ */
+export type TextTrackKind = any;
+export namespace TextTrackKind {
+ const subtitles_1: string;
+ export { subtitles_1 as subtitles };
+ const captions_1: string;
+ export { captions_1 as captions };
+ export const descriptions: string;
+ export const chapters: string;
+ export const metadata: string;
+}
+/**
+ * All possible `TextTrackMode`s
+ */
+export type TextTrackMode = any;
+export namespace TextTrackMode {
+ const disabled: string;
+ const hidden: string;
+ const showing: string;
+}
+/**
+ * ~Kind
+ */
+export type VideoTrack = any;
+/**
+ * ~Kind
+ */
+export type AudioTrack = any;
+/**
+ * ~Kind
+ */
+export type TextTrack = any;
+//# sourceMappingURL=track-enums.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/tracks/track-enums.d.ts.map b/priv/static/video.js/types/tracks/track-enums.d.ts.map
new file mode 100644
index 0000000..1c565cd
--- /dev/null
+++ b/priv/static/video.js/types/tracks/track-enums.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"track-enums.d.ts","sourceRoot":"","sources":["../../../src/js/tracks/track-enums.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAoBA;;;;;;GAMG;AACH;;;;;;;EAOE"} \ No newline at end of file
diff --git a/priv/static/video.js/types/tracks/track-list.d.ts b/priv/static/video.js/types/tracks/track-list.d.ts
new file mode 100644
index 0000000..18e9d1c
--- /dev/null
+++ b/priv/static/video.js/types/tracks/track-list.d.ts
@@ -0,0 +1,66 @@
+export default TrackList;
+/**
+ * Common functionaliy between {@link TextTrackList}, {@link AudioTrackList}, and
+ * {@link VideoTrackList}
+ *
+ * @extends EventTarget
+ */
+declare class TrackList extends EventTarget {
+ /**
+ * Create an instance of this class
+ *
+ * @param { import('./track').default[] } tracks
+ * A list of tracks to initialize the list with.
+ *
+ * @abstract
+ */
+ constructor(tracks?: import('./track').default[]);
+ tracks_: any[];
+ /**
+ * Add a {@link Track} to the `TrackList`
+ *
+ * @param { import('./track').default } track
+ * The audio, video, or text track to add to the list.
+ *
+ * @fires TrackList#addtrack
+ */
+ addTrack(track: import('./track').default): void;
+ /**
+ * Remove a {@link Track} from the `TrackList`
+ *
+ * @param { import('./track').default } rtrack
+ * The audio, video, or text track to remove from the list.
+ *
+ * @fires TrackList#removetrack
+ */
+ removeTrack(rtrack: import('./track').default): void;
+ /**
+ * Get a Track from the TrackList by a tracks id
+ *
+ * @param {string} id - the id of the track to get
+ * @method getTrackById
+ * @return { import('./track').default }
+ * @private
+ */
+ private getTrackById;
+ /**
+ * Triggered when a different track is selected/enabled.
+ *
+ * @event TrackList#change
+ * @type {Event}
+ */
+ /**
+ * Events that can be called with on + eventName. See {@link EventHandler}.
+ *
+ * @property {Object} TrackList#allowedEvents_
+ * @protected
+ */
+ protected allowedEvents_: {
+ change: string;
+ addtrack: string;
+ removetrack: string;
+ labelchange: string;
+ };
+}
+import EventTarget from "../event-target";
+//# sourceMappingURL=track-list.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/tracks/track-list.d.ts.map b/priv/static/video.js/types/tracks/track-list.d.ts.map
new file mode 100644
index 0000000..bf34d59
--- /dev/null
+++ b/priv/static/video.js/types/tracks/track-list.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"track-list.d.ts","sourceRoot":"","sources":["../../../src/js/tracks/track-list.js"],"names":[],"mappings":";AAMA;;;;;GAKG;AACH;IACE;;;;;;;OAOG;IACH,qBALY,OAAO,SAAS,EAAE,OAAO,EAAE,EAyBtC;IAjBC,eAAiB;IAmBnB;;;;;;;OAOG;IACH,gBALY,OAAO,SAAS,EAAE,OAAO,QAqDpC;IAED;;;;;;;OAOG;IACH,oBALY,OAAO,SAAS,EAAE,OAAO,QAsCpC;IAED;;;;;;;OAOG;IACH,qBAaC;IAGH;;;;;OAKG;IAEH;;;;;OAKG;IACH;;;;;MAAkC;CAfjC"} \ No newline at end of file
diff --git a/priv/static/video.js/types/tracks/track-types.d.ts b/priv/static/video.js/types/tracks/track-types.d.ts
new file mode 100644
index 0000000..f2d3878
--- /dev/null
+++ b/priv/static/video.js/types/tracks/track-types.d.ts
@@ -0,0 +1,48 @@
+export namespace NORMAL {
+ const names: string[];
+}
+export namespace REMOTE {
+ const names_1: string[];
+ export { names_1 as names };
+}
+export const ALL: {
+ audio: {
+ ListClass: typeof AudioTrackList;
+ TrackClass: typeof AudioTrack;
+ capitalName: string;
+ };
+ video: {
+ ListClass: typeof VideoTrackList;
+ TrackClass: typeof VideoTrack;
+ capitalName: string;
+ };
+ text: {
+ ListClass: typeof TextTrackList;
+ TrackClass: typeof TextTrack;
+ capitalName: string;
+ };
+} & {
+ remoteText: {
+ ListClass: typeof TextTrackList;
+ TrackClass: typeof TextTrack;
+ capitalName: string;
+ getterName: string;
+ privateName: string;
+ };
+ remoteTextEl: {
+ ListClass: typeof HtmlTrackElementList;
+ TrackClass: typeof HTMLTrackElement;
+ capitalName: string;
+ getterName: string;
+ privateName: string;
+ };
+};
+import AudioTrackList from "./audio-track-list";
+import AudioTrack from "./audio-track";
+import VideoTrackList from "./video-track-list";
+import VideoTrack from "./video-track";
+import TextTrackList from "./text-track-list";
+import TextTrack from "./text-track";
+import HtmlTrackElementList from "./html-track-element-list";
+import HTMLTrackElement from "./html-track-element";
+//# sourceMappingURL=track-types.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/tracks/track-types.d.ts.map b/priv/static/video.js/types/tracks/track-types.d.ts.map
new file mode 100644
index 0000000..1f3a59c
--- /dev/null
+++ b/priv/static/video.js/types/tracks/track-types.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"track-types.d.ts","sourceRoot":"","sources":["../../../src/js/tracks/track-types.js"],"names":[],"mappings":";;;;;;;AAuDA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA8C"} \ No newline at end of file
diff --git a/priv/static/video.js/types/tracks/track.d.ts b/priv/static/video.js/types/tracks/track.d.ts
new file mode 100644
index 0000000..71cd947
--- /dev/null
+++ b/priv/static/video.js/types/tracks/track.d.ts
@@ -0,0 +1,41 @@
+export default Track;
+/**
+ * A Track class that contains all of the common functionality for {@link AudioTrack},
+ * {@link VideoTrack}, and {@link TextTrack}.
+ *
+ * > Note: This class should not be used directly
+ *
+ * @see {@link https://html.spec.whatwg.org/multipage/embedded-content.html}
+ * @extends EventTarget
+ * @abstract
+ */
+declare class Track extends EventTarget {
+ /**
+ * Create an instance of this class.
+ *
+ * @param {Object} [options={}]
+ * Object of option names and values
+ *
+ * @param {string} [options.kind='']
+ * A valid kind for the track type you are creating.
+ *
+ * @param {string} [options.id='vjs_track_' + Guid.newGUID()]
+ * A unique id for this AudioTrack.
+ *
+ * @param {string} [options.label='']
+ * The menu label for this track.
+ *
+ * @param {string} [options.language='']
+ * A valid two character language code.
+ *
+ * @abstract
+ */
+ constructor(options?: {
+ kind?: string;
+ id?: string;
+ label?: string;
+ language?: string;
+ });
+}
+import EventTarget from "../event-target";
+//# sourceMappingURL=track.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/tracks/track.d.ts.map b/priv/static/video.js/types/tracks/track.d.ts.map
new file mode 100644
index 0000000..c7b15f3
--- /dev/null
+++ b/priv/static/video.js/types/tracks/track.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"track.d.ts","sourceRoot":"","sources":["../../../src/js/tracks/track.js"],"names":[],"mappings":";AAMA;;;;;;;;;GASG;AACH;IAEE;;;;;;;;;;;;;;;;;;;OAmBG;IACH;QAd4B,IAAI,GAArB,MAAM;QAGW,EAAE,GAAnB,MAAM;QAGW,KAAK,GAAtB,MAAM;QAGW,QAAQ,GAAzB,MAAM;OAiFhB;CACF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/tracks/video-track-list.d.ts b/priv/static/video.js/types/tracks/video-track-list.d.ts
new file mode 100644
index 0000000..5cdbc87
--- /dev/null
+++ b/priv/static/video.js/types/tracks/video-track-list.d.ts
@@ -0,0 +1,29 @@
+export default VideoTrackList;
+/**
+ * The current list of {@link VideoTrack} for a video.
+ *
+ * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#videotracklist}
+ * @extends TrackList
+ */
+declare class VideoTrackList extends TrackList {
+ /**
+ * Create an instance of this class.
+ *
+ * @param {VideoTrack[]} [tracks=[]]
+ * A list of `VideoTrack` to instantiate the list with.
+ */
+ constructor(tracks?: VideoTrack[]);
+ changing_: boolean;
+ /**
+ * Add a {@link VideoTrack} to the `VideoTrackList`.
+ *
+ * @param { import('./video-track').default } track
+ * The VideoTrack to add to the list
+ *
+ * @fires TrackList#addtrack
+ */
+ addTrack(track: import('./video-track').default): void;
+ removeTrack(rtrack: any): void;
+}
+import TrackList from "./track-list";
+//# sourceMappingURL=video-track-list.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/tracks/video-track-list.d.ts.map b/priv/static/video.js/types/tracks/video-track-list.d.ts.map
new file mode 100644
index 0000000..35b87f2
--- /dev/null
+++ b/priv/static/video.js/types/tracks/video-track-list.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"video-track-list.d.ts","sourceRoot":"","sources":["../../../src/js/tracks/video-track-list.js"],"names":[],"mappings":";AA0BA;;;;;GAKG;AACH;IAEE;;;;;OAKG;IACH,qBAHW,YAAY,EA+BtB;IAjBC,mBAAsB;IAmBxB;;;;;;;OAOG;IACH,gBALY,OAAO,eAAe,EAAE,OAAO,QA+B1C;IAED,+BAOC;CACF"} \ No newline at end of file
diff --git a/priv/static/video.js/types/tracks/video-track.d.ts b/priv/static/video.js/types/tracks/video-track.d.ts
new file mode 100644
index 0000000..0933e64
--- /dev/null
+++ b/priv/static/video.js/types/tracks/video-track.d.ts
@@ -0,0 +1,40 @@
+export default VideoTrack;
+/**
+ * A representation of a single `VideoTrack`.
+ *
+ * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#videotrack}
+ * @extends Track
+ */
+declare class VideoTrack extends Track {
+ /**
+ * Create an instance of this class.
+ *
+ * @param {Object} [options={}]
+ * Object of option names and values
+ *
+ * @param {string} [options.kind='']
+ * A valid {@link VideoTrack~Kind}
+ *
+ * @param {string} [options.id='vjs_track_' + Guid.newGUID()]
+ * A unique id for this AudioTrack.
+ *
+ * @param {string} [options.label='']
+ * The menu label for this track.
+ *
+ * @param {string} [options.language='']
+ * A valid two character language code.
+ *
+ * @param {boolean} [options.selected]
+ * If this track is the one that is currently playing.
+ */
+ constructor(options?: {
+ kind?: string;
+ id?: string;
+ label?: string;
+ language?: string;
+ selected?: boolean;
+ });
+ selected: any;
+}
+import Track from "./track";
+//# sourceMappingURL=video-track.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/tracks/video-track.d.ts.map b/priv/static/video.js/types/tracks/video-track.d.ts.map
new file mode 100644
index 0000000..a619328
--- /dev/null
+++ b/priv/static/video.js/types/tracks/video-track.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"video-track.d.ts","sourceRoot":"","sources":["../../../src/js/tracks/video-track.js"],"names":[],"mappings":";AAIA;;;;;GAKG;AACH;IAEE;;;;;;;;;;;;;;;;;;;;OAoBG;IACH;QAf4B,IAAI,GAArB,MAAM;QAGW,EAAE,GAAnB,MAAM;QAGW,KAAK,GAAtB,MAAM;QAGW,QAAQ,GAAzB,MAAM;QAGY,QAAQ,GAA1B,OAAO;OAoDjB;IAFG,cAAiC;CAGtC"} \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/browser.d.ts b/priv/static/video.js/types/utils/browser.d.ts
new file mode 100644
index 0000000..5f330d0
--- /dev/null
+++ b/priv/static/video.js/types/utils/browser.d.ts
@@ -0,0 +1,163 @@
+/**
+ * Whether or not this device is an iPod.
+ *
+ * @static
+ * @type {Boolean}
+ */
+export let IS_IPOD: boolean;
+/**
+ * The detected iOS version - or `null`.
+ *
+ * @static
+ * @type {string|null}
+ */
+export let IOS_VERSION: string | null;
+/**
+ * Whether or not this is an Android device.
+ *
+ * @static
+ * @type {Boolean}
+ */
+export let IS_ANDROID: boolean;
+/**
+ * The detected Android version - or `null` if not Android or indeterminable.
+ *
+ * @static
+ * @type {number|string|null}
+ */
+export let ANDROID_VERSION: number | string | null;
+/**
+ * Whether or not this is Mozilla Firefox.
+ *
+ * @static
+ * @type {Boolean}
+ */
+export let IS_FIREFOX: boolean;
+/**
+ * Whether or not this is Microsoft Edge.
+ *
+ * @static
+ * @type {Boolean}
+ */
+export let IS_EDGE: boolean;
+/**
+ * Whether or not this is any Chromium Browser
+ *
+ * @static
+ * @type {Boolean}
+ */
+export let IS_CHROMIUM: boolean;
+/**
+ * Whether or not this is any Chromium browser that is not Edge.
+ *
+ * This will also be `true` for Chrome on iOS, which will have different support
+ * as it is actually Safari under the hood.
+ *
+ * Deprecated, as the behaviour to not match Edge was to prevent Legacy Edge's UA matching.
+ * IS_CHROMIUM should be used instead.
+ * "Chromium but not Edge" could be explicitly tested with IS_CHROMIUM && !IS_EDGE
+ *
+ * @static
+ * @deprecated
+ * @type {Boolean}
+ */
+export let IS_CHROME: boolean;
+/**
+ * The detected Chromium version - or `null`.
+ *
+ * @static
+ * @type {number|null}
+ */
+export let CHROMIUM_VERSION: number | null;
+/**
+ * The detected Google Chrome version - or `null`.
+ * This has always been the _Chromium_ version, i.e. would return on Chromium Edge.
+ * Deprecated, use CHROMIUM_VERSION instead.
+ *
+ * @static
+ * @deprecated
+ * @type {number|null}
+ */
+export let CHROME_VERSION: number | null;
+/**
+ * The detected Internet Explorer version - or `null`.
+ *
+ * @static
+ * @deprecated
+ * @type {number|null}
+ */
+export let IE_VERSION: number | null;
+/**
+ * Whether or not this is desktop Safari.
+ *
+ * @static
+ * @type {Boolean}
+ */
+export let IS_SAFARI: boolean;
+/**
+ * Whether or not this is a Windows machine.
+ *
+ * @static
+ * @type {Boolean}
+ */
+export let IS_WINDOWS: boolean;
+/**
+ * Whether or not this device is an iPad.
+ *
+ * @static
+ * @type {Boolean}
+ */
+export let IS_IPAD: boolean;
+/**
+ * Whether or not this device is an iPhone.
+ *
+ * @static
+ * @type {Boolean}
+ */
+export let IS_IPHONE: boolean;
+/**
+ * Whether or not this is a Tizen device.
+ *
+ * @static
+ * @type {Boolean}
+ */
+export let IS_TIZEN: boolean;
+/**
+ * Whether or not this is a WebOS device.
+ *
+ * @static
+ * @type {Boolean}
+ */
+export let IS_WEBOS: boolean;
+/**
+ * Whether or not this is a Smart TV (Tizen or WebOS) device.
+ *
+ * @static
+ * @type {Boolean}
+ */
+export let IS_SMART_TV: boolean;
+/**
+ * Whether or not this device is touch-enabled.
+ *
+ * @static
+ * @const
+ * @type {Boolean}
+ */
+export const TOUCH_ENABLED: boolean;
+/**
+ * Whether or not this is an iOS device.
+ *
+ * @static
+ * @const
+ * @type {Boolean}
+ */
+export const IS_IOS: boolean;
+/**
+ * Whether or not this is any flavor of Safari - including iOS.
+ *
+ * @static
+ * @const
+ * @type {Boolean}
+ */
+export const IS_ANY_SAFARI: boolean;
+//# sourceMappingURL=browser.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/browser.d.ts.map b/priv/static/video.js/types/utils/browser.d.ts.map
new file mode 100644
index 0000000..53a93a7
--- /dev/null
+++ b/priv/static/video.js/types/utils/browser.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../src/js/utils/browser.js"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH,4BAA2B;AAE3B;;;;;GAKG;AACH,wBAFU,MAAM,GAAC,IAAI,CAES;AAE9B;;;;;GAKG;AACH,+BAA8B;AAE9B;;;;;GAKG;AACH,4BAFU,MAAM,GAAC,MAAM,GAAC,IAAI,CAED;AAE3B;;;;;GAKG;AACH,+BAA8B;AAE9B;;;;;GAKG;AACH,4BAA2B;AAE3B;;;;;GAKG;AACH,gCAA+B;AAE/B;;;;;;;;;;;;;GAaG;AACH,8BAA6B;AAE7B;;;;;GAKG;AACH,6BAFU,MAAM,GAAC,IAAI,CAEc;AAEnC;;;;;;;;GAQG;AACH,2BAFU,MAAM,GAAC,IAAI,CAEY;AAEjC;;;;;;GAMG;AACH,uBAFU,MAAM,GAAC,IAAI,CAEQ;AAE7B;;;;;GAKG;AACH,8BAA6B;AAE7B;;;;;GAKG;AACH,+BAA8B;AAE9B;;;;;GAKG;AACH,4BAA2B;AAE3B;;;;;GAKG;AAIH,8BAA6B;AAE7B;;;;;GAKG;AACH,6BAA4B;AAE5B;;;;;GAKG;AACH,6BAA4B;AAE5B;;;;;GAKG;AACH,gCAA+B;AAE/B;;;;;;GAMG;AACH,oCAG4E;AAqG5E;;;;;;GAMG;AACH,6BAAsD;AAEtD;;;;;;GAMG;AACH,oCAAiE"} \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/buffer.d.ts b/priv/static/video.js/types/utils/buffer.d.ts
new file mode 100644
index 0000000..39baee8
--- /dev/null
+++ b/priv/static/video.js/types/utils/buffer.d.ts
@@ -0,0 +1,14 @@
+/**
+ * Compute the percentage of the media that has been buffered.
+ *
+ * @param { import('./time').TimeRange } buffered
+ * The current `TimeRanges` object representing buffered time ranges
+ *
+ * @param {number} duration
+ * Total duration of the media
+ *
+ * @return {number}
+ * Percent buffered of the total duration in decimal form.
+ */
+export function bufferedPercent(buffered: import('./time').TimeRange, duration: number): number;
+//# sourceMappingURL=buffer.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/buffer.d.ts.map b/priv/static/video.js/types/utils/buffer.d.ts.map
new file mode 100644
index 0000000..77e3051
--- /dev/null
+++ b/priv/static/video.js/types/utils/buffer.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"buffer.d.ts","sourceRoot":"","sources":["../../../src/js/utils/buffer.js"],"names":[],"mappings":"AAMA;;;;;;;;;;;GAWG;AACH,0CATY,OAAO,QAAQ,EAAE,SAAS,YAG3B,MAAM,GAGL,MAAM,CA6BjB"} \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/create-logger.d.ts b/priv/static/video.js/types/utils/create-logger.d.ts
new file mode 100644
index 0000000..bf4c187
--- /dev/null
+++ b/priv/static/video.js/types/utils/create-logger.d.ts
@@ -0,0 +1,124 @@
+export default function createLogger(name: any, delimiter?: string, styles?: string): {
+ (...args: any[]): void;
+ /**
+ * Create a new subLogger which chains the old name to the new name.
+ *
+ * For example, doing `videojs.log.createLogger('player')` and then using that logger will log the following:
+ * ```js
+ * mylogger('foo');
+ * // > VIDEOJS: player: foo
+ * ```
+ *
+ * @param {string} subName
+ * The name to add call the new logger
+ * @param {string} [subDelimiter]
+ * Optional delimiter
+ * @param {string} [subStyles]
+ * Optional styles
+ * @return {Object}
+ */
+ createLogger(subName: string, subDelimiter?: string, subStyles?: string): any;
+ /**
+ * Create a new logger.
+ *
+ * @param {string} newName
+ * The name for the new logger
+ * @param {string} [newDelimiter]
+ * Optional delimiter
+ * @param {string} [newStyles]
+ * Optional styles
+ * @return {Object}
+ */
+ createNewLogger(newName: string, newDelimiter?: string, newStyles?: string): any;
+ /**
+ * Enumeration of available logging levels, where the keys are the level names
+ * and the values are `|`-separated strings containing logging methods allowed
+ * in that logging level. These strings are used to create a regular expression
+ * matching the function name being called.
+ *
+ * Levels provided by Video.js are:
+ *
+ * - `off`: Matches no calls. Any value that can be cast to `false` will have
+ * this effect. The most restrictive.
+ * - `all`: Matches only Video.js-provided functions (`debug`, `log`,
+ * `log.warn`, and `log.error`).
+ * - `debug`: Matches `log.debug`, `log`, `log.warn`, and `log.error` calls.
+ * - `info` (default): Matches `log`, `log.warn`, and `log.error` calls.
+ * - `warn`: Matches `log.warn` and `log.error` calls.
+ * - `error`: Matches only `log.error` calls.
+ *
+ * @type {Object}
+ */
+ levels: any;
+ /**
+ * Get or set the current logging level.
+ *
+ * If a string matching a key from {@link module:log.levels} is provided, acts
+ * as a setter.
+ *
+ * @param {'all'|'debug'|'info'|'warn'|'error'|'off'} [lvl]
+ * Pass a valid level to set a new logging level.
+ *
+ * @return {string}
+ * The current logging level.
+ */
+ level(lvl?: 'all' | 'debug' | 'info' | 'warn' | 'error' | 'off'): string;
+ /**
+ * Returns an array containing everything that has been logged to the history.
+ *
+ * This array is a shallow clone of the internal history record. However, its
+ * contents are _not_ cloned; so, mutating objects inside this array will
+ * mutate them in history.
+ *
+ * @return {Array}
+ */
+ history: {
+ (): any[];
+ /**
+ * Allows you to filter the history by the given logger name
+ *
+ * @param {string} fname
+ * The name to filter by
+ *
+ * @return {Array}
+ * The filtered list to return
+ */
+ filter(fname: string): any[];
+ /**
+ * Clears the internal history tracking, but does not prevent further history
+ * tracking.
+ */
+ clear(): void;
+ /**
+ * Disable history tracking if it is currently enabled.
+ */
+ disable(): void;
+ /**
+ * Enable history tracking if it is currently disabled.
+ */
+ enable(): void;
+ };
+ /**
+ * Logs error messages. Similar to `console.error`.
+ *
+ * @param {...*} args
+ * One or more messages or objects that should be logged as an error
+ */
+ error(...args: any[]): any;
+ /**
+ * Logs warning messages. Similar to `console.warn`.
+ *
+ * @param {...*} args
+ * One or more messages or objects that should be logged as a warning.
+ */
+ warn(...args: any[]): any;
+ /**
+ * Logs debug messages. Similar to `console.debug`, but may also act as a comparable
+ * log if `console.debug` is not available
+ *
+ * @param {...*} args
+ * One or more messages or objects that should be logged as debug.
+ */
+ debug(...args: any[]): any;
+};
+//# sourceMappingURL=create-logger.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/create-logger.d.ts.map b/priv/static/video.js/types/utils/create-logger.d.ts.map
new file mode 100644
index 0000000..a5f7e46
--- /dev/null
+++ b/priv/static/video.js/types/utils/create-logger.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"create-logger.d.ts","sourceRoot":"","sources":["../../../src/js/utils/create-logger.js"],"names":[],"mappings":"AA8EA;;IAmCE;;;;;;;;;;;;;;;;OAgBG;0BAPQ,MAAM,iBAEN,MAAM,cAEN,MAAM;IAYjB;;;;;;;;;;OAUG;6BAPQ,MAAM,iBAEN,MAAM,cAEN,MAAM;IAQjB;;;;;;;;;;;;;;;;;;OAkBG;;IAWH;;;;;;;;;;;OAWG;gBALS,KAAK,GAAC,OAAO,GAAC,MAAM,GAAC,MAAM,GAAC,OAAO,GAAC,KAAK,GAGzC,MAAM;IAalB;;;;;;;;OAQG;;;QAGH;;;;;;;;WAQG;sBALQ,MAAM;QAajB;;;WAGG;;QAOH;;WAEG;;QAQH;;WAEG;;;IAOH;;;;;OAKG;;IAGH;;;;;OAKG;;IAGH;;;;;;OAMG;;EAIJ"} \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/deprecate.d.ts b/priv/static/video.js/types/utils/deprecate.d.ts
new file mode 100644
index 0000000..6e8b020
--- /dev/null
+++ b/priv/static/video.js/types/utils/deprecate.d.ts
@@ -0,0 +1,28 @@
+/**
+ * Decorate a function with a deprecation message the first time it is called.
+ *
+ * @param {string} message
+ * A deprecation message to log the first time the returned function
+ * is called.
+ *
+ * @param {Function} fn
+ * The function to be deprecated.
+ *
+ * @return {Function}
+ * A wrapper function that will log a deprecation warning the first
+ * time it is called. The return value will be the return value of
+ * the wrapped function.
+ */
+export function deprecate(message: string, fn: Function): Function;
+/**
+ * Internal function used to mark a function as deprecated in the next major
+ * version with consistent messaging.
+ *
+ * @param {number} major The major version where it will be removed
+ * @param {string} oldName The old function name
+ * @param {string} newName The new function name
+ * @param {Function} fn The function to deprecate
+ * @return {Function} The decorated function
+ */
+export function deprecateForMajor(major: number, oldName: string, newName: string, fn: Function): Function;
+//# sourceMappingURL=deprecate.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/deprecate.d.ts.map b/priv/static/video.js/types/utils/deprecate.d.ts.map
new file mode 100644
index 0000000..16fada5
--- /dev/null
+++ b/priv/static/video.js/types/utils/deprecate.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"deprecate.d.ts","sourceRoot":"","sources":["../../../src/js/utils/deprecate.js"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;GAcG;AACH,mCAZY,MAAM,0BAwBjB;AAED;;;;;;;;;GASG;AACH,yCANY,MAAM,WACN,MAAM,WACN,MAAM,0BAMjB"} \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/dom-data.d.ts b/priv/static/video.js/types/utils/dom-data.d.ts
new file mode 100644
index 0000000..df14f6c
--- /dev/null
+++ b/priv/static/video.js/types/utils/dom-data.d.ts
@@ -0,0 +1,3 @@
+declare const _default: any;
+export default _default;
+//# sourceMappingURL=dom-data.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/dom-data.d.ts.map b/priv/static/video.js/types/utils/dom-data.d.ts.map
new file mode 100644
index 0000000..d33e811
--- /dev/null
+++ b/priv/static/video.js/types/utils/dom-data.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"dom-data.d.ts","sourceRoot":"","sources":["../../../src/js/utils/dom-data.js"],"names":[],"mappings":""} \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/dom.d.ts b/priv/static/video.js/types/utils/dom.d.ts
new file mode 100644
index 0000000..83c53cd
--- /dev/null
+++ b/priv/static/video.js/types/utils/dom.d.ts
@@ -0,0 +1,448 @@
+/**
+ * Whether the current DOM interface appears to be real (i.e. not simulated).
+ *
+ * @return {boolean}
+ * Will be `true` if the DOM appears to be real, `false` otherwise.
+ */
+export function isReal(): boolean;
+/**
+ * Determines, via duck typing, whether or not a value is a DOM element.
+ *
+ * @param {*} value
+ * The value to check.
+ *
+ * @return {boolean}
+ * Will be `true` if the value is a DOM element, `false` otherwise.
+ */
+export function isEl(value: any): boolean;
+/**
+ * Determines if the current DOM is embedded in an iframe.
+ *
+ * @return {boolean}
+ * Will be `true` if the DOM is embedded in an iframe, `false`
+ * otherwise.
+ */
+export function isInFrame(): boolean;
+/**
+ * Creates an element and applies properties, attributes, and inserts content.
+ *
+ * @param {string} [tagName='div']
+ * Name of tag to be created.
+ *
+ * @param {Object} [properties={}]
+ * Element properties to be applied.
+ *
+ * @param {Object} [attributes={}]
+ * Element attributes to be applied.
+ *
+ * @param {ContentDescriptor} [content]
+ * A content descriptor object.
+ *
+ * @return {Element}
+ * The element that was created.
+ */
+export function createEl(tagName?: string, properties?: any, attributes?: any, content?: ContentDescriptor): Element;
+/**
+ * Injects text into an element, replacing any existing contents entirely.
+ *
+ * @param {HTMLElement} el
+ * The element to add text content into
+ *
+ * @param {string} text
+ * The text content to add.
+ *
+ * @return {Element}
+ * The element with added text content.
+ */
+export function textContent(el: HTMLElement, text: string): Element;
+/**
+ * Insert an element as the first child node of another
+ *
+ * @param {Element} child
+ * Element to insert
+ *
+ * @param {Element} parent
+ * Element to insert child into
+ */
+export function prependTo(child: Element, parent: Element): void;
+/**
+ * Check if an element has a class name.
+ *
+ * @param {Element} element
+ * Element to check
+ *
+ * @param {string} classToCheck
+ * Class name to check for
+ *
+ * @return {boolean}
+ * Will be `true` if the element has a class, `false` otherwise.
+ *
+ * @throws {Error}
+ * Throws an error if `classToCheck` has white space.
+ */
+export function hasClass(element: Element, classToCheck: string): boolean;
+/**
+ * Add a class name to an element.
+ *
+ * @param {Element} element
+ * Element to add class name to.
+ *
+ * @param {...string} classesToAdd
+ * One or more class name to add.
+ *
+ * @return {Element}
+ * The DOM element with the added class name.
+ */
+export function addClass(element: Element, ...classesToAdd: string[]): Element;
+/**
+ * Remove a class name from an element.
+ *
+ * @param {Element} element
+ * Element to remove a class name from.
+ *
+ * @param {...string} classesToRemove
+ * One or more class name to remove.
+ *
+ * @return {Element}
+ * The DOM element with class name removed.
+ */
+export function removeClass(element: Element, ...classesToRemove: string[]): Element;
+/**
+ * The callback definition for toggleClass.
+ *
+ * @callback module:dom~PredicateCallback
+ * @param {Element} element
+ * The DOM element of the Component.
+ *
+ * @param {string} classToToggle
+ * The `className` that wants to be toggled
+ *
+ * @return {boolean|undefined}
+ * If `true` is returned, the `classToToggle` will be added to the
+ * `element`. If `false`, the `classToToggle` will be removed from
+ * the `element`. If `undefined`, the callback will be ignored.
+ */
+/**
+ * Adds or removes a class name to/from an element depending on an optional
+ * condition or the presence/absence of the class name.
+ *
+ * @param {Element} element
+ * The element to toggle a class name on.
+ *
+ * @param {string} classToToggle
+ * The class that should be toggled.
+ *
+ * @param {boolean|module:dom~PredicateCallback} [predicate]
+ * See the return value for {@link module:dom~PredicateCallback}
+ *
+ * @return {Element}
+ * The element with a class that has been toggled.
+ */
+export function toggleClass(element: Element, classToToggle: string, predicate: any): Element;
+/**
+ * Apply attributes to an HTML element.
+ *
+ * @param {Element} el
+ * Element to add attributes to.
+ *
+ * @param {Object} [attributes]
+ * Attributes to be applied.
+ */
+export function setAttributes(el: Element, attributes?: any): void;
+/**
+ * Get an element's attribute values, as defined on the HTML tag.
+ *
+ * Attributes are not the same as properties. They're defined on the tag
+ * or with setAttribute.
+ *
+ * @param {Element} tag
+ * Element from which to get tag attributes.
+ *
+ * @return {Object}
+ * All attributes of the element. Boolean attributes will be `true` or
+ * `false`, others will be strings.
+ */
+export function getAttributes(tag: Element): any;
+/**
+ * Get the value of an element's attribute.
+ *
+ * @param {Element} el
+ * A DOM element.
+ *
+ * @param {string} attribute
+ * Attribute to get the value of.
+ *
+ * @return {string}
+ * The value of the attribute.
+ */
+export function getAttribute(el: Element, attribute: string): string;
+/**
+ * Set the value of an element's attribute.
+ *
+ * @param {Element} el
+ * A DOM element.
+ *
+ * @param {string} attribute
+ * Attribute to set.
+ *
+ * @param {string} value
+ * Value to set the attribute to.
+ */
+export function setAttribute(el: Element, attribute: string, value: string): void;
+/**
+ * Remove an element's attribute.
+ *
+ * @param {Element} el
+ * A DOM element.
+ *
+ * @param {string} attribute
+ * Attribute to remove.
+ */
+export function removeAttribute(el: Element, attribute: string): void;
+/**
+ * Attempt to block the ability to select text.
+ */
+export function blockTextSelection(): void;
+/**
+ * Turn off text selection blocking.
+ */
+export function unblockTextSelection(): void;
+/**
+ * Identical to the native `getBoundingClientRect` function, but ensures that
+ * the method is supported at all (it is in all browsers we claim to support)
+ * and that the element is in the DOM before continuing.
+ *
+ * This wrapper function also shims properties which are not provided by some
+ * older browsers (namely, IE8).
+ *
+ * Additionally, some browsers do not support adding properties to a
+ * `ClientRect`/`DOMRect` object; so, we shallow-copy it with the standard
+ * properties (except `x` and `y` which are not widely supported). This helps
+ * avoid implementations where keys are non-enumerable.
+ *
+ * @param {Element} el
+ * Element whose `ClientRect` we want to calculate.
+ *
+ * @return {Object|undefined}
+ * Always returns a plain object - or `undefined` if it cannot.
+ */
+export function getBoundingClientRect(el: Element): any | undefined;
+/**
+ * Represents the position of a DOM element on the page.
+ *
+ * @typedef {Object} module:dom~Position
+ *
+ * @property {number} left
+ * Pixels to the left.
+ *
+ * @property {number} top
+ * Pixels from the top.
+ */
+/**
+ * Get the position of an element in the DOM.
+ *
+ * Uses `getBoundingClientRect` technique from John Resig.
+ *
+ * @see http://ejohn.org/blog/getboundingclientrect-is-awesome/
+ *
+ * @param {Element} el
+ * Element from which to get offset.
+ *
+ * @return {module:dom~Position}
+ * The position of the element that was passed in.
+ */
+export function findPosition(el: Element): any;
+/**
+ * Represents x and y coordinates for a DOM element or mouse pointer.
+ *
+ * @typedef {Object} module:dom~Coordinates
+ *
+ * @property {number} x
+ * x coordinate in pixels
+ *
+ * @property {number} y
+ * y coordinate in pixels
+ */
+/**
+ * Get the pointer position within an element.
+ *
+ * The base on the coordinates are the bottom left of the element.
+ *
+ * @param {Element} el
+ * Element on which to get the pointer position on.
+ *
+ * @param {Event} event
+ * Event object.
+ *
+ * @return {module:dom~Coordinates}
+ * A coordinates object corresponding to the mouse position.
+ *
+ */
+export function getPointerPosition(el: Element, event: Event): any;
+/**
+ * Determines, via duck typing, whether or not a value is a text node.
+ *
+ * @param {*} value
+ * Check if this value is a text node.
+ *
+ * @return {boolean}
+ * Will be `true` if the value is a text node, `false` otherwise.
+ */
+export function isTextNode(value: any): boolean;
+/**
+ * Empties the contents of an element.
+ *
+ * @param {Element} el
+ * The element to empty children from
+ *
+ * @return {Element}
+ * The element with no children
+ */
+export function emptyEl(el: Element): Element;
+/**
+ * This is a mixed value that describes content to be injected into the DOM
+ * via some method. It can be of the following types:
+ *
+ * Type | Description
+ * -----------|-------------
+ * `string` | The value will be normalized into a text node.
+ * `Element` | The value will be accepted as-is.
+ * `Text` | A TextNode. The value will be accepted as-is.
+ * `Array` | A one-dimensional array of strings, elements, text nodes, or functions. These functions should return a string, element, or text node (any other return value, like an array, will be ignored).
+ * `Function` | A function, which is expected to return a string, element, text node, or array - any of the other possible values described above. This means that a content descriptor could be a function that returns an array of functions, but those second-level functions must return strings, elements, or text nodes.
+ *
+ * @typedef {string|Element|Text|Array|Function} ContentDescriptor
+ */
+/**
+ * Normalizes content for eventual insertion into the DOM.
+ *
+ * This allows a wide range of content definition methods, but helps protect
+ * from falling into the trap of simply writing to `innerHTML`, which could
+ * be an XSS concern.
+ *
+ * The content for an element can be passed in multiple types and
+ * combinations, whose behavior is as follows:
+ *
+ * @param {ContentDescriptor} content
+ * A content descriptor value.
+ *
+ * @return {Array}
+ * All of the content that was passed in, normalized to an array of
+ * elements or text nodes.
+ */
+export function normalizeContent(content: ContentDescriptor): any[];
+/**
+ * Normalizes and appends content to an element.
+ *
+ * @param {Element} el
+ * Element to append normalized content to.
+ *
+ * @param {ContentDescriptor} content
+ * A content descriptor value.
+ *
+ * @return {Element}
+ * The element with appended normalized content.
+ */
+export function appendContent(el: Element, content: ContentDescriptor): Element;
+/**
+ * Normalizes and inserts content into an element; this is identical to
+ * `appendContent()`, except it empties the element first.
+ *
+ * @param {Element} el
+ * Element to insert normalized content into.
+ *
+ * @param {ContentDescriptor} content
+ * A content descriptor value.
+ *
+ * @return {Element}
+ * The element with inserted normalized content.
+ */
+export function insertContent(el: Element, content: ContentDescriptor): Element;
+/**
+ * Check if an event was a single left click.
+ *
+ * @param {MouseEvent} event
+ * Event object.
+ *
+ * @return {boolean}
+ * Will be `true` if a single left click, `false` otherwise.
+ */
+export function isSingleLeftClick(event: MouseEvent): boolean;
+/**
+ * A safe getComputedStyle.
+ *
+ * This is needed because in Firefox, if the player is loaded in an iframe with
+ * `display:none`, then `getComputedStyle` returns `null`, so, we do a
+ * null-check to make sure that the player doesn't break in these cases.
+ *
+ * @param {Element} el
+ * The element you want the computed style of
+ *
+ * @param {string} prop
+ * The property name you want
+ *
+ * @see https://bugzilla.mozilla.org/show_bug.cgi?id=548397
+ */
+export function computedStyle(el: Element, prop: string): any;
+/**
+ * Copy document style sheets to another window.
+ *
+ * @param {Window} win
+ * The window element you want to copy the document style sheets to.
+ *
+ */
+export function copyStyleSheetsToWindow(win: Window): void;
+/**
+ * Finds a single DOM element matching `selector` within the optional
+ * `context` of another DOM element (defaulting to `document`).
+ *
+ * @param {string} selector
+ * A valid CSS selector, which will be passed to `querySelector`.
+ *
+ * @param {Element|String} [context=document]
+ * A DOM element within which to query. Can also be a selector
+ * string in which case the first matching element will be used
+ * as context. If missing (or no element matches selector), falls
+ * back to `document`.
+ *
+ * @return {Element|null}
+ * The element that was found or null.
+ */
+export const $: Function;
+/**
+ * Finds a all DOM elements matching `selector` within the optional
+ * `context` of another DOM element (defaulting to `document`).
+ *
+ * @param {string} selector
+ * A valid CSS selector, which will be passed to `querySelectorAll`.
+ *
+ * @param {Element|String} [context=document]
+ * A DOM element within which to query. Can also be a selector
+ * string in which case the first matching element will be used
+ * as context. If missing (or no element matches selector), falls
+ * back to `document`.
+ *
+ * @return {NodeList}
+ * A element list of elements that were found. Will be empty if none
+ * were found.
+ *
+ */
+export const $$: Function;
+/**
+ * :dom~PredicateCallback
+ */
+export type module = (element: Element, classToToggle: string) => boolean | undefined;
+/**
+ * This is a mixed value that describes content to be injected into the DOM
+ * via some method. It can be of the following types:
+ *
+ * Type | Description
+ * -----------|-------------
+ * `string` | The value will be normalized into a text node.
+ * `Element` | The value will be accepted as-is.
+ * `Text` | A TextNode. The value will be accepted as-is.
+ * `Array` | A one-dimensional array of strings, elements, text nodes, or functions. These functions should return a string, element, or text node (any other return value, like an array, will be ignored).
+ * `Function` | A function, which is expected to return a string, element, text node, or array - any of the other possible values described above. This means that a content descriptor could be a function that returns an array of functions, but those second-level functions must return strings, elements, or text nodes.
+ */
+export type ContentDescriptor = string | Element | Text | any[] | Function;
+//# sourceMappingURL=dom.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/dom.d.ts.map b/priv/static/video.js/types/utils/dom.d.ts.map
new file mode 100644
index 0000000..3c6a5a1
--- /dev/null
+++ b/priv/static/video.js/types/utils/dom.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../../src/js/utils/dom.js"],"names":[],"mappings":"AAkDA;;;;;GAKG;AACH,0BAHY,OAAO,CAMlB;AAED;;;;;;;;GAQG;AACH,kCAHY,OAAO,CAKlB;AAED;;;;;;GAMG;AACH,6BAJY,OAAO,CAalB;AA2BD;;;;;;;;;;;;;;;;;GAiBG;AACH,mCAfY,MAAM,gDASP,iBAAiB,GAGhB,OAAO,CA2BlB;AAED;;;;;;;;;;;GAWG;AACH,gCATY,WAAW,QAGX,MAAM,GAGN,OAAO,CAUlB;AAED;;;;;;;;GAQG;AACH,iCANW,OAAO,UAGP,OAAO,QASjB;AAED;;;;;;;;;;;;;;GAcG;AACH,kCAZY,OAAO,gBAGP,MAAM,GAGN,OAAO,CAUlB;AAED;;;;;;;;;;;GAWG;AACH,kCATY,OAAO,mBAGJ,MAAM,KAGT,OAAO,CAOlB;AAED;;;;;;;;;;;GAWG;AACH,qCATY,OAAO,sBAGJ,MAAM,KAGT,OAAO,CAYlB;AAED;;;;;;;;;;;;;;GAcG;AAEH;;;;;;;;;;;;;;;GAeG;AACH,qCAZY,OAAO,iBAGP,MAAM,mBAMN,OAAO,CAalB;AAED;;;;;;;;GAQG;AACH,kCANW,OAAO,0BAgBjB;AAED;;;;;;;;;;;;GAYG;AACH,mCAPY,OAAO,OAqClB;AAED;;;;;;;;;;;GAWG;AACH,iCATW,OAAO,aAGP,MAAM,GAGL,MAAM,CAKjB;AAED;;;;;;;;;;;GAWG;AACH,iCATW,OAAO,aAGP,MAAM,SAGN,MAAM,QAKhB;AAED;;;;;;;;GAQG;AACH,oCANW,OAAO,aAGP,MAAM,QAKhB;AAED;;GAEG;AACH,2CAKC;AAED;;GAEG;AACH,6CAIC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,0CANY,OAAO,GAGP,MAAO,SAAS,CAwB3B;AAED;;;;;;;;;;GAUG;AAEH;;;;;;;;;;;;GAYG;AACH,iCANY,OAAO,OAiClB;AAED;;;;;;;;;;GAUG;AAEH;;;;;;;;;;;;;;GAcG;AACH,uCAVY,OAAO,SAGP,KAAK,OAuDhB;AAED;;;;;;;;GAQG;AACH,wCAHY,OAAO,CAKlB;AAED;;;;;;;;GAQG;AACH,4BANY,OAAO,GAGP,OAAO,CAQlB;AAED;;;;;;;;;;;;;GAaG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,0CAPW,iBAAiB,SAiC3B;AAED;;;;;;;;;;;GAWG;AACH,kCATY,OAAO,WAGR,iBAAiB,GAGhB,OAAO,CAMlB;AAED;;;;;;;;;;;;GAYG;AACH,kCATW,OAAO,WAGP,iBAAiB,GAGhB,OAAO,CAKlB;AAED;;;;;;;;GAQG;AACH,yCANY,UAAU,GAGV,OAAO,CAgDlB;AAwCD;;;;;;;;;;;;;;GAcG;AACH,kCARc,OAAO,QAGP,MAAM,OAuBnB;AAED;;;;;;GAMG;AACH,6CAJc,MAAM,QAuBnB;AAnGD;;;;;;;;;;;;;;;GAeG;AACH,yBAAgD;AAEhD;;;;;;;;;;;;;;;;;GAiBG;AACH,0BAAoD;;;;+BA9iBtC,OAAO,iBAGP,MAAM,KAGN,OAAO,GAAC,SAAS;;;;;;;;;;;;;gCA0XlB,MAAM,GAAC,OAAO,GAAC,IAAI,mBAAe"} \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/events.d.ts b/priv/static/video.js/types/utils/events.d.ts
new file mode 100644
index 0000000..ac46c9f
--- /dev/null
+++ b/priv/static/video.js/types/utils/events.d.ts
@@ -0,0 +1,85 @@
+/**
+ * Fix a native event to have standard property values
+ *
+ * @param {Object} event
+ * Event object to fix.
+ *
+ * @return {Object}
+ * Fixed event object.
+ */
+export function fixEvent(event: any): any;
+/**
+ * Add an event listener to element
+ * It stores the handler function in a separate cache object
+ * and adds a generic handler to the element's event,
+ * along with a unique id (guid) to the element.
+ *
+ * @param {Element|Object} elem
+ * Element or object to bind listeners to
+ *
+ * @param {string|string[]} type
+ * Type of event to bind to.
+ *
+ * @param {Function} fn
+ * Event listener.
+ */
+export function on(elem: Element | any, type: string | string[], fn: Function): void;
+/**
+ * Removes event listeners from an element
+ *
+ * @param {Element|Object} elem
+ * Object to remove listeners from.
+ *
+ * @param {string|string[]} [type]
+ * Type of listener to remove. Don't include to remove all events from element.
+ *
+ * @param {Function} [fn]
+ * Specific listener to remove. Don't include to remove listeners for an event
+ * type.
+ */
+export function off(elem: Element | any, type?: string | string[], fn?: Function): void;
+/**
+ * Trigger an event for an element
+ *
+ * @param {Element|Object} elem
+ * Element to trigger an event on
+ *
+ * @param {EventTarget~Event|string} event
+ * A string (the type) or an event object with a type attribute
+ *
+ * @param {Object} [hash]
+ * data hash to pass along with the event
+ *
+ * @return {boolean|undefined}
+ * Returns the opposite of `defaultPrevented` if default was
+ * prevented. Otherwise, returns `undefined`
+ */
+export function trigger(elem: Element | any, event: any, hash?: any): boolean | undefined;
+/**
+ * Trigger a listener only once for an event.
+ *
+ * @param {Element|Object} elem
+ * Element or object to bind to.
+ *
+ * @param {string|string[]} type
+ * Name/type of event
+ *
+ * @param {Event~EventListener} fn
+ * Event listener function
+ */
+export function one(elem: Element | any, type: string | string[], fn: any): void;
+/**
+ * Trigger a listener only once and then turn if off for all
+ * configured events
+ *
+ * @param {Element|Object} elem
+ * Element or object to bind to.
+ *
+ * @param {string|string[]} type
+ * Name/type of event
+ *
+ * @param {Event~EventListener} fn
+ * Event listener function
+ */
+export function any(elem: Element | any, type: string | string[], fn: any): void;
+//# sourceMappingURL=events.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/events.d.ts.map b/priv/static/video.js/types/utils/events.d.ts.map
new file mode 100644
index 0000000..e72dc77
--- /dev/null
+++ b/priv/static/video.js/types/utils/events.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/js/utils/events.js"],"names":[],"mappings":"AA+EA;;;;;;;;GAQG;AACH,0CA2HC;AAmCD;;;;;;;;;;;;;;GAcG;AACH,yBATW,OAAO,MAAO,QAGd,MAAM,GAAC,MAAM,EAAE,sBA6EzB;AAED;;;;;;;;;;;;GAYG;AACH,0BAVW,OAAO,MAAO,SAGd,MAAM,GAAC,MAAM,EAAE,uBA+DzB;AAED;;;;;;;;;;;;;;;GAeG;AACH,8BAbW,OAAO,MAAO,2BASb,OAAO,GAAC,SAAS,CAuD5B;AAED;;;;;;;;;;;GAWG;AACH,0BATW,OAAO,MAAO,QAGd,MAAM,GAAC,MAAM,EAAE,iBAkBzB;AAED;;;;;;;;;;;;GAYG;AACH,0BATW,OAAO,MAAO,QAGd,MAAM,GAAC,MAAM,EAAE,iBAiBzB"} \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/filter-source.d.ts b/priv/static/video.js/types/utils/filter-source.d.ts
new file mode 100644
index 0000000..55874de
--- /dev/null
+++ b/priv/static/video.js/types/utils/filter-source.d.ts
@@ -0,0 +1,16 @@
+export default filterSource;
+/**
+ * Filter out single bad source objects or multiple source objects in an
+ * array. Also flattens nested source object arrays into a 1 dimensional
+ * array of source objects.
+ *
+ * @param {Tech~SourceObject|Tech~SourceObject[]} src
+ * The src object to filter
+ *
+ * @return {Tech~SourceObject[]}
+ * An array of sourceobjects containing only valid sources
+ *
+ * @private
+ */
+declare function filterSource(src: any): Tech;
+//# sourceMappingURL=filter-source.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/filter-source.d.ts.map b/priv/static/video.js/types/utils/filter-source.d.ts.map
new file mode 100644
index 0000000..615e7cf
--- /dev/null
+++ b/priv/static/video.js/types/utils/filter-source.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"filter-source.d.ts","sourceRoot":"","sources":["../../../src/js/utils/filter-source.js"],"names":[],"mappings":";AAMA;;;;;;;;;;;;GAYG;AACH,8CA4BC"} \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/fn.d.ts b/priv/static/video.js/types/utils/fn.d.ts
new file mode 100644
index 0000000..4f369db
--- /dev/null
+++ b/priv/static/video.js/types/utils/fn.d.ts
@@ -0,0 +1,5 @@
+export const UPDATE_REFRESH_INTERVAL: 30;
+export function bind_(context: any, fn: Function, uid?: number): Function;
+export function throttle(fn: Function, wait: number): Function;
+export function debounce(func: Function, wait: number, immediate?: boolean, context?: any): Function;
+//# sourceMappingURL=fn.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/fn.d.ts.map b/priv/static/video.js/types/utils/fn.d.ts.map
new file mode 100644
index 0000000..0ecbedb
--- /dev/null
+++ b/priv/static/video.js/types/utils/fn.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"fn.d.ts","sourceRoot":"","sources":["../../../src/js/utils/fn.js"],"names":[],"mappings":"AAOA,yCAA0C;AAsBnC,wDANO,MAAM,YAwBnB;AAeM,6CALO,MAAM,YAkBnB;AA4BM,+CAfO,MAAM,cAGN,OAAO,2BA6CpB"} \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/guid.d.ts b/priv/static/video.js/types/utils/guid.d.ts
new file mode 100644
index 0000000..219b199
--- /dev/null
+++ b/priv/static/video.js/types/utils/guid.d.ts
@@ -0,0 +1,12 @@
+/**
+ * Get a unique auto-incrementing ID by number that has not been returned before.
+ *
+ * @return {number}
+ * A new unique ID.
+ */
+export function newGUID(): number;
+/**
+ * Reset the unique auto-incrementing ID for testing only.
+ */
+export function resetGuidInTestsOnly(): void;
+//# sourceMappingURL=guid.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/guid.d.ts.map b/priv/static/video.js/types/utils/guid.d.ts.map
new file mode 100644
index 0000000..8773899
--- /dev/null
+++ b/priv/static/video.js/types/utils/guid.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"guid.d.ts","sourceRoot":"","sources":["../../../src/js/utils/guid.js"],"names":[],"mappings":"AAoBA;;;;;GAKG;AACH,2BAHY,MAAM,CAKjB;AAED;;GAEG;AACH,6CAEC"} \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/hooks.d.ts b/priv/static/video.js/types/utils/hooks.d.ts
new file mode 100644
index 0000000..4ddf7c4
--- /dev/null
+++ b/priv/static/video.js/types/utils/hooks.d.ts
@@ -0,0 +1,54 @@
+/**
+ * An Object that contains lifecycle hooks as keys which point to an array
+ * of functions that are run when a lifecycle is triggered
+ *
+ * @private
+ */
+export const hooks_: {};
+/**
+ * Get a list of hooks for a specific lifecycle
+ *
+ * @param {string} type
+ * the lifecycle to get hooks from
+ *
+ * @param {Function|Function[]} [fn]
+ * Optionally add a hook (or hooks) to the lifecycle that your are getting.
+ *
+ * @return {Array}
+ * an array of hooks, or an empty array if there are none.
+ */
+export function hooks(type: string, fn?: Function | Function[]): any[];
+/**
+ * Add a function hook to a specific videojs lifecycle.
+ *
+ * @param {string} type
+ * the lifecycle to hook the function to.
+ *
+ * @param {Function|Function[]}
+ * The function or array of functions to attach.
+ */
+export function hook(type: string, fn: any): void;
+/**
+ * Add a function hook that will only run once to a specific videojs lifecycle.
+ *
+ * @param {string} type
+ * the lifecycle to hook the function to.
+ *
+ * @param {Function|Function[]}
+ * The function or array of functions to attach.
+ */
+export function hookOnce(type: string, fn: any): void;
+/**
+ * Remove a hook from a specific videojs lifecycle.
+ *
+ * @param {string} type
+ * the lifecycle that the function hooked to
+ *
+ * @param {Function} fn
+ * The hooked function to remove
+ *
+ * @return {boolean}
+ * The function that was removed or undef
+ */
+export function removeHook(type: string, fn: Function): boolean;
+//# sourceMappingURL=hooks.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/hooks.d.ts.map b/priv/static/video.js/types/utils/hooks.d.ts.map
new file mode 100644
index 0000000..fb63a06
--- /dev/null
+++ b/priv/static/video.js/types/utils/hooks.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/js/utils/hooks.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAkB;AAElB;;;;;;;;;;;GAWG;AACH,4BATY,MAAM,OAGN,WAAS,UAAU,SAY9B;AAED;;;;;;;;GAQG;AACH,2BANW,MAAM,iBAQhB;AA2BD;;;;;;;;GAQG;AACH,+BANW,MAAM,iBAehB;AA3CD;;;;;;;;;;;GAWG;AACH,iCATY,MAAM,iBAMN,OAAO,CAclB"} \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/log.d.ts b/priv/static/video.js/types/utils/log.d.ts
new file mode 100644
index 0000000..ffbc5ca
--- /dev/null
+++ b/priv/static/video.js/types/utils/log.d.ts
@@ -0,0 +1,20 @@
+export default log;
+declare const log: {
+ (...args: any[]): void;
+ createLogger(subName: string, subDelimiter?: string, subStyles?: string): any;
+ createNewLogger(newName: string, newDelimiter?: string, newStyles?: string): any;
+ levels: any;
+ level(lvl?: "info" | "error" | "all" | "debug" | "warn" | "off"): string;
+ history: {
+ (): any[];
+ filter(fname: string): any[];
+ clear(): void;
+ disable(): void;
+ enable(): void;
+ };
+ error(...args: any[]): any;
+ warn(...args: any[]): any;
+ debug(...args: any[]): any;
+};
+export const createLogger: (subName: string, subDelimiter?: string, subStyles?: string) => any;
+//# sourceMappingURL=log.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/log.d.ts.map b/priv/static/video.js/types/utils/log.d.ts.map
new file mode 100644
index 0000000..0ad1d66
--- /dev/null
+++ b/priv/static/video.js/types/utils/log.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../../src/js/utils/log.js"],"names":[],"mappings":";AAMA;;;;;;;;;;;;;;;;EAAoC;AACpC,+FAAsC"} \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/mimetypes.d.ts b/priv/static/video.js/types/utils/mimetypes.d.ts
new file mode 100644
index 0000000..d4f35f1
--- /dev/null
+++ b/priv/static/video.js/types/utils/mimetypes.d.ts
@@ -0,0 +1,34 @@
+/**
+ * Mimetypes
+ */
+export type MimetypesKind = any;
+export namespace MimetypesKind {
+ const opus: string;
+ const ogv: string;
+ const mp4: string;
+ const mov: string;
+ const m4v: string;
+ const mkv: string;
+ const m4a: string;
+ const mp3: string;
+ const aac: string;
+ const caf: string;
+ const flac: string;
+ const oga: string;
+ const wav: string;
+ const m3u8: string;
+ const mpd: string;
+ const jpg: string;
+ const jpeg: string;
+ const gif: string;
+ const png: string;
+ const svg: string;
+ const webp: string;
+}
+export function getMimetype(src?: string): string;
+export function findMimetype(player: import('../player').default, src: string): string;
+/**
+ * ~Kind
+ */
+export type Mimetypes = any;
+//# sourceMappingURL=mimetypes.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/mimetypes.d.ts.map b/priv/static/video.js/types/utils/mimetypes.d.ts.map
new file mode 100644
index 0000000..1b8f33c
--- /dev/null
+++ b/priv/static/video.js/types/utils/mimetypes.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"mimetypes.d.ts","sourceRoot":"","sources":["../../../src/js/utils/mimetypes.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CO,kCANI,MAAM,GAGL,MAAM,CAQjB;AAeM,qCATK,OAAO,WAAW,EAAE,OAAO,OAG5B,MAAM,GAGL,MAAM,CAiCjB"} \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/num.d.ts b/priv/static/video.js/types/utils/num.d.ts
new file mode 100644
index 0000000..82b5f3d
--- /dev/null
+++ b/priv/static/video.js/types/utils/num.d.ts
@@ -0,0 +1,20 @@
+/**
+ * @file num.js
+ * @module num
+ */
+/**
+ * Keep a number between a min and a max value
+ *
+ * @param {number} number
+ * The number to clamp
+ *
+ * @param {number} min
+ * The minimum value
+ * @param {number} max
+ * The maximum value
+ *
+ * @return {number}
+ * the clamped number
+ */
+export function clamp(number: number, min: number, max: number): number;
+//# sourceMappingURL=num.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/num.d.ts.map b/priv/static/video.js/types/utils/num.d.ts.map
new file mode 100644
index 0000000..9abe4a6
--- /dev/null
+++ b/priv/static/video.js/types/utils/num.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"num.d.ts","sourceRoot":"","sources":["../../../src/js/utils/num.js"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;GAaG;AACH,8BAXW,MAAM,OAGN,MAAM,OAEN,MAAM,GAGL,MAAM,CAOjB"} \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/obj.d.ts b/priv/static/video.js/types/utils/obj.d.ts
new file mode 100644
index 0000000..4ac15ed
--- /dev/null
+++ b/priv/static/video.js/types/utils/obj.d.ts
@@ -0,0 +1,86 @@
+/**
+ * Array-like iteration for objects.
+ *
+ * @param {Object} object
+ * The object to iterate over
+ *
+ * @param {obj:EachCallback} fn
+ * The callback function which is called for each key in the object.
+ */
+export function each(object: any, fn: any): void;
+/**
+ * Array-like reduce for objects.
+ *
+ * @param {Object} object
+ * The Object that you want to reduce.
+ *
+ * @param {Function} fn
+ * A callback function which is called for each key in the object. It
+ * receives the accumulated value and the per-iteration value and key
+ * as arguments.
+ *
+ * @param {*} [initial = 0]
+ * Starting value
+ *
+ * @return {*}
+ * The final accumulated value.
+ */
+export function reduce(object: any, fn: Function, initial?: any): any;
+/**
+ * Returns whether a value is an object of any kind - including DOM nodes,
+ * arrays, regular expressions, etc. Not functions, though.
+ *
+ * This avoids the gotcha where using `typeof` on a `null` value
+ * results in `'object'`.
+ *
+ * @param {Object} value
+ * @return {boolean}
+ */
+export function isObject(value: any): boolean;
+/**
+ * Returns whether an object appears to be a "plain" object - that is, a
+ * direct instance of `Object`.
+ *
+ * @param {Object} value
+ * @return {boolean}
+ */
+export function isPlain(value: any): boolean;
+/**
+ * Merge two objects recursively.
+ *
+ * Performs a deep merge like
+ * {@link https://lodash.com/docs/4.17.10#merge|lodash.merge}, but only merges
+ * plain objects (not arrays, elements, or anything else).
+ *
+ * Non-plain object values will be copied directly from the right-most
+ * argument.
+ *
+ * @param {Object[]} sources
+ * One or more objects to merge into a new object.
+ *
+ * @return {Object}
+ * A new object that is the merged result of all sources.
+ */
+export function merge(...sources: any[]): any;
+/**
+ * Returns an array of values for a given object
+ *
+ * @param {Object} source - target object
+ * @return {Array<unknown>} - object values
+ */
+export function values(source?: any): Array<unknown>;
+/**
+ * Object.defineProperty but "lazy", which means that the value is only set after
+ * it is retrieved the first time, rather than being set right away.
+ *
+ * @param {Object} obj the object to set the property on
+ * @param {string} key the key for the property to set
+ * @param {Function} getValue the function used to get the value when it is needed.
+ * @param {boolean} setter whether a setter should be allowed or not
+ */
+export function defineLazyProperty(obj: any, key: string, getValue: Function, setter?: boolean): any;
+/**
+ * :EachCallback
+ */
+export type obj = (value: any, key: string) => any;
+//# sourceMappingURL=obj.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/obj.d.ts.map b/priv/static/video.js/types/utils/obj.d.ts.map
new file mode 100644
index 0000000..f2a7e41
--- /dev/null
+++ b/priv/static/video.js/types/utils/obj.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"obj.d.ts","sourceRoot":"","sources":["../../../src/js/utils/obj.js"],"names":[],"mappings":"AAgDA;;;;;;;;GAQG;AACH,iDAEC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,sEAEC;AAED;;;;;;;;;GASG;AACH,sCAFY,OAAO,CAIlB;AAED;;;;;;GAMG;AACH,qCAFY,OAAO,CAMlB;AAED;;;;;;;;;;;;;;;GAeG;AACH,kCANa,KAAQ,OA6BpB;AAED;;;;;GAKG;AACH,sCAFY,MAAM,OAAO,CAAC,CAczB;AAED;;;;;;;;GAQG;AACH,kDAJW,MAAM,+BAEN,OAAO,OAuBjB;;;;oCA7LU,MAAM"} \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/promise.d.ts b/priv/static/video.js/types/utils/promise.d.ts
new file mode 100644
index 0000000..76f7026
--- /dev/null
+++ b/priv/static/video.js/types/utils/promise.d.ts
@@ -0,0 +1,21 @@
+/**
+ * Returns whether an object is `Promise`-like (i.e. has a `then` method).
+ *
+ * @param {Object} value
+ * An object that may or may not be `Promise`-like.
+ *
+ * @return {boolean}
+ * Whether or not the object is `Promise`-like.
+ */
+export function isPromise(value: any): boolean;
+/**
+ * Silence a Promise-like object.
+ *
+ * This is useful for avoiding non-harmful, but potentially confusing "uncaught
+ * play promise" rejection error messages.
+ *
+ * @param {Object} value
+ * An object that may or may not be `Promise`-like.
+ */
+export function silencePromise(value: any): void;
+//# sourceMappingURL=promise.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/promise.d.ts.map b/priv/static/video.js/types/utils/promise.d.ts.map
new file mode 100644
index 0000000..78a8ed1
--- /dev/null
+++ b/priv/static/video.js/types/utils/promise.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../../../src/js/utils/promise.js"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AACH,uCAHY,OAAO,CAKlB;AAED;;;;;;;;GAQG;AACH,iDAIC"} \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/str.d.ts b/priv/static/video.js/types/utils/str.d.ts
new file mode 100644
index 0000000..3b03f6d
--- /dev/null
+++ b/priv/static/video.js/types/utils/str.d.ts
@@ -0,0 +1,4 @@
+export function toLowerCase(string: string): string;
+export function toTitleCase(string: string): string;
+export function titleCaseEquals(str1: string, str2: string): boolean;
+//# sourceMappingURL=str.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/str.d.ts.map b/priv/static/video.js/types/utils/str.d.ts.map
new file mode 100644
index 0000000..a7f39b3
--- /dev/null
+++ b/priv/static/video.js/types/utils/str.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"str.d.ts","sourceRoot":"","sources":["../../../src/js/utils/str.js"],"names":[],"mappings":"AAcO,oCANI,MAAM,GAGL,MAAM,CASjB;AAWM,oCANI,MAAM,GAGL,MAAM,CASjB;AAcM,sCATI,MAAM,QAGN,MAAM,GAGL,OAAO,CAKlB"} \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/stylesheet.d.ts b/priv/static/video.js/types/utils/stylesheet.d.ts
new file mode 100644
index 0000000..d944c36
--- /dev/null
+++ b/priv/static/video.js/types/utils/stylesheet.d.ts
@@ -0,0 +1,3 @@
+export function createStyleElement(className: string): Element;
+export function setTextContent(el: Element, content: string): void;
+//# sourceMappingURL=stylesheet.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/stylesheet.d.ts.map b/priv/static/video.js/types/utils/stylesheet.d.ts.map
new file mode 100644
index 0000000..c43d4f0
--- /dev/null
+++ b/priv/static/video.js/types/utils/stylesheet.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"stylesheet.d.ts","sourceRoot":"","sources":["../../../src/js/utils/stylesheet.js"],"names":[],"mappings":"AAeO,8CANI,MAAM,GAGL,OAAO,CASlB;AAWM,mCANI,OAAO,WAGP,MAAM,QAShB"} \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/time.d.ts b/priv/static/video.js/types/utils/time.d.ts
new file mode 100644
index 0000000..6b7e3e1
--- /dev/null
+++ b/priv/static/video.js/types/utils/time.d.ts
@@ -0,0 +1,71 @@
+/**
+ * Create a `TimeRange` object which mimics an
+ * {@link https://developer.mozilla.org/en-US/docs/Web/API/TimeRanges|HTML5 TimeRanges instance}.
+ *
+ * @param {number|Array[]} start
+ * The start of a single range (a number) or an array of ranges (an
+ * array of arrays of two numbers each).
+ *
+ * @param {number} end
+ * The end of a single range. Cannot be used with the array form of
+ * the `start` argument.
+ *
+ * @return {TimeRange}
+ */
+export function createTimeRanges(start: number | any[][], end: number): TimeRange;
+/**
+ * Replaces the default formatTime implementation with a custom implementation.
+ *
+ * @param {Function} customImplementation
+ * A function which will be used in place of the default formatTime
+ * implementation. Will receive the current time in seconds and the
+ * guide (in seconds) as arguments.
+ */
+export function setFormatTime(customImplementation: Function): void;
+/**
+ * Resets formatTime to the default implementation.
+ */
+export function resetFormatTime(): void;
+/**
+ * Delegates to either the default time formatting function or a custom
+ * function supplied via `setFormatTime`.
+ *
+ * Formats seconds as a time string (H:MM:SS or M:SS). Supplying a
+ * guide (in seconds) will force a number of leading zeros to cover the
+ * length of the guide.
+ *
+ * @example formatTime(125, 600) === "02:05"
+ * @param {number} seconds
+ * Number of seconds to be turned into a string
+ *
+ * @param {number} guide
+ * Number (in seconds) to model the string after
+ *
+ * @return {string}
+ * Time formatted as H:MM:SS or M:SS
+ */
+export function formatTime(seconds: number, guide?: number): string;
+export { createTimeRanges as createTimeRange };
+/**
+ * Returns the time for the specified index at the start or end
+ * of a TimeRange object.
+ */
+export type TimeRangeIndex = Function;
+/**
+ * An object that contains ranges of time, which mimics {@link TimeRanges }.
+ */
+export type TimeRange = {
+ /**
+ * The number of time ranges represented by this object.
+ */
+ length: number;
+ /**
+ * Returns the time offset at which a specified time range begins.
+ */
+ start: any;
+ /**
+ * Returns the time offset at which a specified time range ends.
+ */
+ end: any;
+};
+//# sourceMappingURL=time.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/time.d.ts.map b/priv/static/video.js/types/utils/time.d.ts.map
new file mode 100644
index 0000000..14b19ce
--- /dev/null
+++ b/priv/static/video.js/types/utils/time.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../../src/js/utils/time.js"],"names":[],"mappings":"AA8HA;;;;;;;;;;;;;GAaG;AACH,wCAVW,MAAM,GAAC,OAAO,OAId,MAAM,GAIL,SAAS,CASpB;AAkDD;;;;;;;GAOG;AACH,oEAEC;AAED;;GAEG;AACH,wCAEC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,oCATc,MAAM,UAGN,MAAM,GAGN,MAAM,CAKnB;;;;;;;;;;;;;;YAjNa,MAAM"} \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/url.d.ts b/priv/static/video.js/types/utils/url.d.ts
new file mode 100644
index 0000000..43e68ee
--- /dev/null
+++ b/priv/static/video.js/types/utils/url.d.ts
@@ -0,0 +1,41 @@
+export function parseUrl(url: string): url;
+export function getAbsoluteURL(url: string): string;
+export function getFileExtension(path: string): string;
+export function isCrossOrigin(url: string, winLoc?: {
+ protocol?: string;
+ host?: string;
+}): boolean;
+/**
+ * :URLObject
+ */
+export type url = {
+ /**
+ * The protocol of the url that was parsed.
+ */
+ protocol: string;
+ /**
+ * The hostname of the url that was parsed.
+ */
+ hostname: string;
+ /**
+ * The port of the url that was parsed.
+ */
+ port: string;
+ /**
+ * The pathname of the url that was parsed.
+ */
+ pathname: string;
+ /**
+ * The search query of the url that was parsed.
+ */
+ search: string;
+ /**
+ * The hash of the url that was parsed.
+ */
+ hash: string;
+ /**
+ * The host of the url that was parsed.
+ */
+ host: string;
+};
+//# sourceMappingURL=url.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/utils/url.d.ts.map b/priv/static/video.js/types/utils/url.d.ts.map
new file mode 100644
index 0000000..2ad7f77
--- /dev/null
+++ b/priv/static/video.js/types/utils/url.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../../src/js/utils/url.js"],"names":[],"mappings":"AA0CO,uCAHO,GAAG,CA0ChB;AAcM,oCARO,MAAM,GAGN,MAAM,CAiBnB;AAcM,uCAPO,MAAM,GAGP,MAAM,CAelB;AAqBM,mCAfO,MAAM;IAMU,QAAQ,GAAxB,MAAM;IAGU,IAAI,GAApB,MAAM;IAGN,OAAO,CAcpB;;;;;;;;cA1Ja,MAAM;;;;cAGN,MAAM;;;;UAGN,MAAM;;;;cAGN,MAAM;;;;YAGN,MAAM;;;;UAGN,MAAM;;;;UAGN,MAAM"} \ No newline at end of file
diff --git a/priv/static/video.js/types/video.d.ts b/priv/static/video.js/types/video.d.ts
new file mode 100644
index 0000000..379e750
--- /dev/null
+++ b/priv/static/video.js/types/video.d.ts
@@ -0,0 +1,242 @@
+export default videojs;
+/**
+ * A callback that is called when a component is ready. Does not have any
+ * parameters and any callback value will be ignored. See: {@link Component ~ReadyCallback}
+ */
+export type ReadyCallback = () => any;
+export type version = string;
+/**
+ * A callback that is called when a component is ready. Does not have any
+ * parameters and any callback value will be ignored. See: {@link Component~ReadyCallback}
+ *
+ * @callback ReadyCallback
+ */
+/**
+ * The `videojs()` function doubles as the main function for users to create a
+ * {@link Player} instance as well as the main library namespace.
+ *
+ * It can also be used as a getter for a pre-existing {@link Player} instance.
+ * However, we _strongly_ recommend using `videojs.getPlayer()` for this
+ * purpose because it avoids any potential for unintended initialization.
+ *
+ * Due to [limitations](https://github.com/jsdoc3/jsdoc/issues/955#issuecomment-313829149)
+ * of our JSDoc template, we cannot properly document this as both a function
+ * and a namespace, so its function signature is documented here.
+ *
+ * #### Arguments
+ * ##### id
+ * string|Element, **required**
+ *
+ * Video element or video element ID.
+ *
+ * ##### options
+ * Object, optional
+ *
+ * Options object for providing settings.
+ * See: [Options Guide](https://docs.videojs.com/tutorial-options.html).
+ *
+ * ##### ready
+ * {@link Component~ReadyCallback}, optional
+ *
+ * A function to be called when the {@link Player} and {@link Tech} are ready.
+ *
+ * #### Return Value
+ *
+ * The `videojs()` function returns a {@link Player} instance.
+ *
+ * @namespace
+ *
+ * @borrows AudioTrack as AudioTrack
+ * @borrows Component.getComponent as getComponent
+ * @borrows module:events.on as on
+ * @borrows module:events.one as one
+ * @borrows module:events.off as off
+ * @borrows module:events.trigger as trigger
+ * @borrows EventTarget as EventTarget
+ * @borrows module:middleware.use as use
+ * @borrows Player.players as players
+ * @borrows Plugin.registerPlugin as registerPlugin
+ * @borrows Plugin.deregisterPlugin as deregisterPlugin
+ * @borrows Plugin.getPlugins as getPlugins
+ * @borrows Plugin.getPlugin as getPlugin
+ * @borrows Plugin.getPluginVersion as getPluginVersion
+ * @borrows Tech.getTech as getTech
+ * @borrows Tech.registerTech as registerTech
+ * @borrows TextTrack as TextTrack
+ * @borrows VideoTrack as VideoTrack
+ *
+ * @param {string|Element} id
+ * Video element or video element ID.
+ *
+ * @param {Object} [options]
+ * Options object for providing settings.
+ * See: [Options Guide](https://docs.videojs.com/tutorial-options.html).
+ *
+ * @param {ReadyCallback} [ready]
+ * A function to be called when the {@link Player} and {@link Tech} are
+ * ready.
+ *
+ * @return {Player}
+ * The `videojs()` function returns a {@link Player|Player} instance.
+ */
+declare function videojs(id: string | Element, options?: any, ready?: ReadyCallback): Player;
+declare namespace videojs {
+ export { hooks_ };
+ export { hooks };
+ export { hook };
+ export { hookOnce };
+ export { removeHook };
+ export { version as VERSION };
+ export const options: any;
+ /**
+ * Get an object with the currently created players, keyed by player ID
+ *
+ * @return {Object}
+ * The created players
+ */
+ export function getPlayers(): any;
+ /**
+ * Get a single player based on an ID or DOM element.
+ *
+ * This is useful if you want to check if an element or ID has an associated
+ * Video.js player, but not create one if it doesn't.
+ *
+ * @param {string|Element} id
+ * An HTML element - `<video>`, `<audio>`, or `<video-js>` -
+ * or a string matching the `id` of such an element.
+ *
+ * @return {Player|undefined}
+ * A player instance or `undefined` if there is no player instance
+ * matching the argument.
+ */
+ export function getPlayer(id: string | Element): Player;
+ /**
+ * Returns an array of all current players.
+ *
+ * @return {Array}
+ * An array of all players. The array will be in the order that
+ * `Object.keys` provides, which could potentially vary between
+ * JavaScript engines.
+ *
+ */
+ export function getAllPlayers(): any[];
+ export const players: any;
+ export const getComponent: typeof Component.getComponent;
+ /**
+ * Register a component so it can referred to by name. Used when adding to other
+ * components, either through addChild `component.addChild('myComponent')` or through
+ * default children options `{ children: ['myComponent'] }`.
+ *
+ * > NOTE: You could also just initialize the component before adding.
+ * `component.addChild(new MyComponent());`
+ *
+ * @param {string} name
+ * The class name of the component
+ *
+ * @param {typeof Component} comp
+ * The component class
+ *
+ * @return {typeof Component}
+ * The newly registered component
+ */
+ export function registerComponent(name: string, comp: typeof Component): typeof Component;
+ export const getTech: typeof Tech.getTech;
+ export const registerTech: typeof Tech.registerTech;
+ export { middlewareUse as use };
+ export namespace middleware {
+ const TERMINATOR: {};
+ }
+ export { browser };
+ export { Obj as obj };
+ export const mergeOptions: Function;
+ export const defineLazyProperty: Function;
+ export const bind: Function;
+ export const registerPlugin: typeof Plugin.registerPlugin;
+ export const deregisterPlugin: typeof Plugin.deregisterPlugin;
+ /**
+ * Deprecated method to register a plugin with Video.js
+ *
+ * @deprecated Deprecated and will be removed in 9.0. Use videojs.registerPlugin() instead.
+ *
+ * @param {string} name
+ * The plugin name
+ *
+ * @param {typeof Plugin|Function} plugin
+ * The plugin sub-class or function
+ *
+ * @return {typeof Plugin|Function}
+ */
+ export function plugin(name: string, plugin: Function | typeof Plugin): Function | typeof Plugin;
+ export const getPlugins: typeof Plugin.getPlugins;
+ export const getPlugin: (name: string) => Function | typeof Plugin;
+ export const getPluginVersion: typeof Plugin.getPluginVersion;
+ /**
+ * Adding languages so that they're available to all players.
+ * Example: `videojs.addLanguage('es', { 'Hello': 'Hola' });`
+ *
+ * @param {string} code
+ * The language code or dictionary property
+ *
+ * @param {Object} data
+ * The data values to be translated
+ *
+ * @return {Object}
+ * The resulting language dictionary object
+ */
+ export function addLanguage(code: string, data: any): any;
+ export { log };
+ export { createLogger };
+ export { Time as time };
+ export const createTimeRange: Function;
+ export const createTimeRanges: Function;
+ export const formatTime: Function;
+ export const setFormatTime: Function;
+ export const resetFormatTime: Function;
+ export const parseUrl: Function;
+ export const isCrossOrigin: Function;
+ export { EventTarget };
+ export const any: typeof Events.any;
+ export const on: typeof Events.on;
+ export const one: typeof Events.one;
+ export const off: typeof Events.off;
+ export const trigger: typeof Events.trigger;
+ export { xhr };
+ export { TextTrack };
+ export { AudioTrack };
+ export { VideoTrack };
+ export const computedStyle: Function;
+ export { Dom as dom };
+ export { Fn as fn };
+ export { Num as num };
+ export { Str as str };
+ export { Url as url };
+ export { VjsErrors as Error };
+}
+import Player from "./player";
+import { hooks_ } from "./utils/hooks";
+import { hooks } from "./utils/hooks";
+import { hook } from "./utils/hooks";
+import { hookOnce } from "./utils/hooks";
+import { removeHook } from "./utils/hooks";
+import Component from "./component";
+import Tech from "./tech/tech.js";
+import { use as middlewareUse } from "./tech/middleware.js";
+import * as browser from "./utils/browser.js";
+import * as Obj from "./utils/obj";
+import Plugin from "./plugin";
+import log from "./utils/log.js";
+import { createLogger } from "./utils/log.js";
+import * as Time from "./utils/time.js";
+import EventTarget from "./event-target";
+import * as Events from "./utils/events.js";
+import xhr from "@videojs/xhr";
+import TextTrack from "./tracks/text-track.js";
+import AudioTrack from "./tracks/audio-track.js";
+import VideoTrack from "./tracks/video-track.js";
+import * as Dom from "./utils/dom.js";
+import * as Fn from "./utils/fn.js";
+import * as Num from "./utils/num.js";
+import * as Str from "./utils/str.js";
+import * as Url from "./utils/url.js";
+import VjsErrors from "./consts/errors";
+//# sourceMappingURL=video.d.ts.map \ No newline at end of file
diff --git a/priv/static/video.js/types/video.d.ts.map b/priv/static/video.js/types/video.d.ts.map
new file mode 100644
index 0000000..7566df6
--- /dev/null
+++ b/priv/static/video.js/types/video.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"video.d.ts","sourceRoot":"","sources":["../../src/js/video.js"],"names":[],"mappings":";;;;;;sBAKc,MAAM;AAkDpB;;;;;GAKG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmEG;AACH,6BAdY,MAAM,GAAC,OAAO,yBAOd,aAAa,GAIb,MAAM,CAiEjB;;;;;;;;;IAoDD;;;;;OAKG;IACH,kCAAyC;IAEzC;;;;;;;;;;;;;OAaG;IACH,wDA0BC;IAED;;;;;;;;OAQG;IACH,uCAIyE;;;IAKzE;;;;;;;;;;;;;;;;OAgBG;IACH,0FAMC;;;;;;;;;;;;;;IAuED;;;;;;;;;;;;OAYG;IACH,iGAGC;;;;IAMD;;;;;;;;;;;;OAYG;IACH,0DASC"} \ No newline at end of file