aboutsummaryrefslogtreecommitdiff
path: root/assets/netcut/lib/videojs-hotkeys
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--assets/netcut/lib/videojs-hotkeys/videojs.hotkeys.js399
-rw-r--r--assets/netcut/lib/videojs-hotkeys/videojs.hotkeys.min.js3
-rw-r--r--assets/netcut/lib/videojs-hotkeys/videojs.hotkeys.min.js.map1
3 files changed, 403 insertions, 0 deletions
diff --git a/assets/netcut/lib/videojs-hotkeys/videojs.hotkeys.js b/assets/netcut/lib/videojs-hotkeys/videojs.hotkeys.js
new file mode 100644
index 0000000..90d2452
--- /dev/null
+++ b/assets/netcut/lib/videojs-hotkeys/videojs.hotkeys.js
@@ -0,0 +1,399 @@
+/*
+ * Video.js Hotkeys
+ * https://github.com/ctd1500/videojs-hotkeys
+ *
+ * Copyright (c) 2015 Chris Dougherty
+ * Licensed under the Apache-2.0 license.
+ */
+
+;(function(root, factory) {
+ if (typeof window !== 'undefined' && window.videojs) {
+ factory(window.videojs);
+ } else if (typeof define === 'function' && define.amd) {
+ define('videojs-hotkeys', ['video.js'], function (module) {
+ return factory(module.default || module);
+ });
+ } else if (typeof module !== 'undefined' && module.exports) {
+ module.exports = factory(require('video.js'));
+ }
+}(this, function (videojs) {
+ "use strict";
+ if (typeof window !== 'undefined') {
+ window['videojs_hotkeys'] = { version: "0.2.22" };
+ }
+
+ var hotkeys = function(options) {
+ var player = this;
+ var pEl = player.el();
+ var doc = document;
+ var def_options = {
+ volumeStep: 0.1,
+ seekStep: 5,
+ enableMute: true,
+ enableVolumeScroll: true,
+ enableFullscreen: true,
+ enableNumbers: true,
+ enableJogStyle: false,
+ alwaysCaptureHotkeys: false,
+ enableModifiersForNumbers: true,
+ enableInactiveFocus: true,
+ skipInitialFocus: false,
+ playPauseKey: playPauseKey,
+ rewindKey: rewindKey,
+ forwardKey: forwardKey,
+ volumeUpKey: volumeUpKey,
+ volumeDownKey: volumeDownKey,
+ muteKey: muteKey,
+ fullscreenKey: fullscreenKey,
+ customKeys: {}
+ };
+
+ var cPlay = 1,
+ cRewind = 2,
+ cForward = 3,
+ cVolumeUp = 4,
+ cVolumeDown = 5,
+ cMute = 6,
+ cFullscreen = 7;
+
+ // Use built-in merge function from Video.js v5.0+ or v4.4.0+
+ var mergeOptions = videojs.mergeOptions || videojs.util.mergeOptions;
+ options = mergeOptions(def_options, options || {});
+
+ var volumeStep = options.volumeStep,
+ seekStep = options.seekStep,
+ enableMute = options.enableMute,
+ enableVolumeScroll = options.enableVolumeScroll,
+ enableFull = options.enableFullscreen,
+ enableNumbers = options.enableNumbers,
+ enableJogStyle = options.enableJogStyle,
+ alwaysCaptureHotkeys = options.alwaysCaptureHotkeys,
+ enableModifiersForNumbers = options.enableModifiersForNumbers,
+ enableInactiveFocus = options.enableInactiveFocus,
+ skipInitialFocus = options.skipInitialFocus;
+
+ // Set default player tabindex to handle keydown and doubleclick events
+ if (!pEl.hasAttribute('tabIndex')) {
+ pEl.setAttribute('tabIndex', '-1');
+ }
+
+ // Remove player outline to fix video performance issue
+ pEl.style.outline = "none";
+
+ if (alwaysCaptureHotkeys || !player.autoplay()) {
+ if (!skipInitialFocus) {
+ player.one('play', function() {
+ pEl.focus(); // Fixes the .vjs-big-play-button handing focus back to body instead of the player
+ });
+ }
+ }
+
+ if (enableInactiveFocus) {
+ player.on('userinactive', function() {
+ // When the control bar fades, re-apply focus to the player if last focus was a control button
+ var cancelFocusingPlayer = function() {
+ clearTimeout(focusingPlayerTimeout);
+ };
+ var focusingPlayerTimeout = setTimeout(function() {
+ player.off('useractive', cancelFocusingPlayer);
+ var activeElement = doc.activeElement;
+ var controlBar = pEl.querySelector('.vjs-control-bar');
+ if (activeElement && activeElement.parentElement == controlBar) {
+ pEl.focus();
+ }
+ }, 10);
+
+ player.one('useractive', cancelFocusingPlayer);
+ });
+ }
+
+ player.on('play', function() {
+ // Fix allowing the YouTube plugin to have hotkey support.
+ var ifblocker = pEl.querySelector('.iframeblocker');
+ if (ifblocker && ifblocker.style.display === '') {
+ ifblocker.style.display = "block";
+ ifblocker.style.bottom = "39px";
+ }
+ });
+
+ var keyDown = function keyDown(event) {
+ var ewhich = event.which, wasPlaying, seekTime;
+ var ePreventDefault = event.preventDefault;
+ var duration = player.duration();
+ // When controls are disabled, hotkeys will be disabled as well
+ if (player.controls()) {
+
+ // Don't catch keys if any control buttons are focused, unless alwaysCaptureHotkeys is true
+ var activeEl = doc.activeElement;
+ if (alwaysCaptureHotkeys ||
+ activeEl == pEl ||
+ activeEl == pEl.querySelector('.vjs-tech') ||
+ activeEl == pEl.querySelector('.vjs-control-bar') ||
+ activeEl == pEl.querySelector('.iframeblocker')) {
+
+ switch (checkKeys(event, player)) {
+ // Spacebar toggles play/pause
+ case cPlay:
+ ePreventDefault();
+ if (alwaysCaptureHotkeys) {
+ // Prevent control activation with space
+ event.stopPropagation();
+ }
+
+ if (player.paused()) {
+ player.play();
+ } else {
+ player.pause();
+ }
+ break;
+
+ // Seeking with the left/right arrow keys
+ case cRewind: // Seek Backward
+ wasPlaying = !player.paused();
+ ePreventDefault();
+ if (wasPlaying) {
+ player.pause();
+ }
+ seekTime = player.currentTime() - seekStepD(event);
+ // The flash player tech will allow you to seek into negative
+ // numbers and break the seekbar, so try to prevent that.
+ if (seekTime <= 0) {
+ seekTime = 0;
+ }
+ player.currentTime(seekTime);
+ if (wasPlaying) {
+ player.play();
+ }
+ break;
+ case cForward: // Seek Forward
+ wasPlaying = !player.paused();
+ ePreventDefault();
+ if (wasPlaying) {
+ player.pause();
+ }
+ seekTime = player.currentTime() + seekStepD(event);
+ // Fixes the player not sending the end event if you
+ // try to seek past the duration on the seekbar.
+ if (seekTime >= duration) {
+ seekTime = wasPlaying ? duration - .001 : duration;
+ }
+ player.currentTime(seekTime);
+ if (wasPlaying) {
+ player.play();
+ }
+ break;
+
+ // Volume control with the up/down arrow keys
+ case cVolumeDown:
+ ePreventDefault();
+ if (!enableJogStyle) {
+ player.volume(player.volume() - volumeStep);
+ } else {
+ seekTime = player.currentTime() - 1;
+ if (player.currentTime() <= 1) {
+ seekTime = 0;
+ }
+ player.currentTime(seekTime);
+ }
+ break;
+ case cVolumeUp:
+ ePreventDefault();
+ if (!enableJogStyle) {
+ player.volume(player.volume() + volumeStep);
+ } else {
+ seekTime = player.currentTime() + 1;
+ if (seekTime >= duration) {
+ seekTime = duration;
+ }
+ player.currentTime(seekTime);
+ }
+ break;
+
+ // Toggle Mute with the M key
+ case cMute:
+ if (enableMute) {
+ player.muted(!player.muted());
+ }
+ break;
+
+ // Toggle Fullscreen with the F key
+ case cFullscreen:
+ if (enableFull) {
+ if (player.isFullscreen()) {
+ player.exitFullscreen();
+ } else {
+ player.requestFullscreen();
+ }
+ }
+ break;
+
+ default:
+ // Number keys from 0-9 skip to a percentage of the video. 0 is 0% and 9 is 90%
+ if ((ewhich > 47 && ewhich < 59) || (ewhich > 95 && ewhich < 106)) {
+ // Do not handle if enableModifiersForNumbers set to false and keys are Ctrl, Cmd or Alt
+ if (enableModifiersForNumbers || !(event.metaKey || event.ctrlKey || event.altKey)) {
+ if (enableNumbers) {
+ var sub = 48;
+ if (ewhich > 95) {
+ sub = 96;
+ }
+ var number = ewhich - sub;
+ ePreventDefault();
+ player.currentTime(player.duration() * number * 0.1);
+ }
+ }
+ }
+
+ // Handle any custom hotkeys
+ for (var customKey in options.customKeys) {
+ var customHotkey = options.customKeys[customKey];
+ // Check for well formed custom keys
+ if (customHotkey && customHotkey.key && customHotkey.handler) {
+ // Check if the custom key's condition matches
+ if (customHotkey.key(event)) {
+ ePreventDefault();
+ customHotkey.handler(player, options, event);
+ }
+ }
+ }
+ }
+ }
+ }
+ };
+
+ var doubleClick = function doubleClick(event) {
+ // When controls are disabled, hotkeys will be disabled as well
+ if (player.controls()) {
+
+ // Don't catch clicks if any control buttons are focused
+ var activeEl = event.relatedTarget || event.toElement || doc.activeElement;
+ if (activeEl == pEl ||
+ activeEl == pEl.querySelector('.vjs-tech') ||
+ activeEl == pEl.querySelector('.iframeblocker')) {
+
+ if (enableFull) {
+ if (player.isFullscreen()) {
+ player.exitFullscreen();
+ } else {
+ player.requestFullscreen();
+ }
+ }
+ }
+ }
+ };
+
+ var mouseScroll = function mouseScroll(event) {
+ // When controls are disabled, hotkeys will be disabled as well
+ if (player.controls()) {
+ var activeEl = doc.activeElement;
+ if (alwaysCaptureHotkeys ||
+ activeEl == pEl ||
+ activeEl == pEl.querySelector('.vjs-tech') ||
+ activeEl == pEl.querySelector('.iframeblocker') ||
+ activeEl == pEl.querySelector('.vjs-control-bar')) {
+
+ if (enableVolumeScroll) {
+ event = window.event || event;
+ var delta = Math.max(-1, Math.min(1, (event.wheelDelta || -event.detail)));
+ event.preventDefault();
+
+ if (delta == 1) {
+ player.volume(player.volume() + volumeStep);
+ } else if (delta == -1) {
+ player.volume(player.volume() - volumeStep);
+ }
+ }
+ }
+ }
+ };
+
+ var checkKeys = function checkKeys(e, player) {
+ // Allow some modularity in defining custom hotkeys
+
+ // Play/Pause check
+ if (options.playPauseKey(e, player)) {
+ return cPlay;
+ }
+
+ // Seek Backward check
+ if (options.rewindKey(e, player)) {
+ return cRewind;
+ }
+
+ // Seek Forward check
+ if (options.forwardKey(e, player)) {
+ return cForward;
+ }
+
+ // Volume Up check
+ if (options.volumeUpKey(e, player)) {
+ return cVolumeUp;
+ }
+
+ // Volume Down check
+ if (options.volumeDownKey(e, player)) {
+ return cVolumeDown;
+ }
+
+ // Mute check
+ if (options.muteKey(e, player)) {
+ return cMute;
+ }
+
+ // Fullscreen check
+ if (options.fullscreenKey(e, player)) {
+ return cFullscreen;
+ }
+ };
+
+ function playPauseKey(e) {
+ // Space bar or MediaPlayPause
+ return (e.which === 32 || e.which === 179);
+ }
+
+ function rewindKey(e) {
+ // Left Arrow or MediaRewind
+ return (e.which === 37 || e.which === 177);
+ }
+
+ function forwardKey(e) {
+ // Right Arrow or MediaForward
+ return (e.which === 39 || e.which === 176);
+ }
+
+ function volumeUpKey(e) {
+ // Up Arrow
+ return (e.which === 38);
+ }
+
+ function volumeDownKey(e) {
+ // Down Arrow
+ return (e.which === 40);
+ }
+
+ function muteKey(e) {
+ // M key
+ return (e.which === 77);
+ }
+
+ function fullscreenKey(e) {
+ // F key
+ return (e.which === 70);
+ }
+
+ function seekStepD(e) {
+ // SeekStep caller, returns an int, or a function returning an int
+ return (typeof seekStep === "function" ? seekStep(e) : seekStep);
+ }
+
+ player.on('keydown', keyDown);
+ player.on('dblclick', doubleClick);
+ player.on('mousewheel', mouseScroll);
+ player.on("DOMMouseScroll", mouseScroll);
+
+ return this;
+ };
+
+ var registerPlugin = videojs.registerPlugin || videojs.plugin;
+ registerPlugin('hotkeys', hotkeys);
+}));
diff --git a/assets/netcut/lib/videojs-hotkeys/videojs.hotkeys.min.js b/assets/netcut/lib/videojs-hotkeys/videojs.hotkeys.min.js
new file mode 100644
index 0000000..4422ad8
--- /dev/null
+++ b/assets/netcut/lib/videojs-hotkeys/videojs.hotkeys.min.js
@@ -0,0 +1,3 @@
+/* videojs-hotkeys v0.2.22 - https://github.com/ctd1500/videojs-hotkeys */
+!function(e,t){"undefined"!=typeof window&&window.videojs?t(window.videojs):"function"==typeof define&&define.amd?define("videojs-hotkeys",["video.js"],function(e){return t(e.default||e)}):"undefined"!=typeof module&&module.exports&&(module.exports=t(require("video.js")))}(0,function(e){"use strict";"undefined"!=typeof window&&(window.videojs_hotkeys={version:"0.2.22"});(e.registerPlugin||e.plugin)("hotkeys",function(t){function r(e){return"function"==typeof a?a(e):a}var n=this,o=n.el(),u=document,l={volumeStep:.1,seekStep:5,enableMute:!0,enableVolumeScroll:!0,enableFullscreen:!0,enableNumbers:!0,enableJogStyle:!1,alwaysCaptureHotkeys:!1,enableModifiersForNumbers:!0,enableInactiveFocus:!0,skipInitialFocus:!1,playPauseKey:function(e){return 32===e.which||179===e.which},rewindKey:function(e){return 37===e.which||177===e.which},forwardKey:function(e){return 39===e.which||176===e.which},volumeUpKey:function(e){return 38===e.which},volumeDownKey:function(e){return 40===e.which},muteKey:function(e){return 77===e.which},fullscreenKey:function(e){return 70===e.which},customKeys:{}},i=e.mergeOptions||e.util.mergeOptions,c=(t=i(l,t||{})).volumeStep,a=t.seekStep,s=t.enableMute,m=t.enableVolumeScroll,y=t.enableFullscreen,f=t.enableNumbers,v=t.enableJogStyle,d=t.alwaysCaptureHotkeys,p=t.enableModifiersForNumbers,b=t.enableInactiveFocus,h=t.skipInitialFocus;o.hasAttribute("tabIndex")||o.setAttribute("tabIndex","-1"),o.style.outline="none",!d&&n.autoplay()||h||n.one("play",function(){o.focus()}),b&&n.on("userinactive",function(){var e=function(){clearTimeout(t)},t=setTimeout(function(){n.off("useractive",e);var t=u.activeElement,r=o.querySelector(".vjs-control-bar");t&&t.parentElement==r&&o.focus()},10);n.one("useractive",e)}),n.on("play",function(){var e=o.querySelector(".iframeblocker");e&&""===e.style.display&&(e.style.display="block",e.style.bottom="39px")});var w=function(e){if(n.controls()){var t=u.activeElement;if((d||t==o||t==o.querySelector(".vjs-tech")||t==o.querySelector(".iframeblocker")||t==o.querySelector(".vjs-control-bar"))&&m){e=window.event||e;var r=Math.max(-1,Math.min(1,e.wheelDelta||-e.detail));e.preventDefault(),1==r?n.volume(n.volume()+c):-1==r&&n.volume(n.volume()-c)}}},k=function(e,r){return t.playPauseKey(e,r)?1:t.rewindKey(e,r)?2:t.forwardKey(e,r)?3:t.volumeUpKey(e,r)?4:t.volumeDownKey(e,r)?5:t.muteKey(e,r)?6:t.fullscreenKey(e,r)?7:void 0};return n.on("keydown",function(e){var l,i,a=e.which,m=e.preventDefault,b=n.duration();if(n.controls()){var h=u.activeElement;if(d||h==o||h==o.querySelector(".vjs-tech")||h==o.querySelector(".vjs-control-bar")||h==o.querySelector(".iframeblocker"))switch(k(e,n)){case 1:m(),d&&e.stopPropagation(),n.paused()?n.play():n.pause();break;case 2:l=!n.paused(),m(),l&&n.pause(),(i=n.currentTime()-r(e))<=0&&(i=0),n.currentTime(i),l&&n.play();break;case 3:l=!n.paused(),m(),l&&n.pause(),(i=n.currentTime()+r(e))>=b&&(i=l?b-.001:b),n.currentTime(i),l&&n.play();break;case 5:m(),v?(i=n.currentTime()-1,n.currentTime()<=1&&(i=0),n.currentTime(i)):n.volume(n.volume()-c);break;case 4:m(),v?((i=n.currentTime()+1)>=b&&(i=b),n.currentTime(i)):n.volume(n.volume()+c);break;case 6:s&&n.muted(!n.muted());break;case 7:y&&(n.isFullscreen()?n.exitFullscreen():n.requestFullscreen());break;default:if((a>47&&a<59||a>95&&a<106)&&(p||!(e.metaKey||e.ctrlKey||e.altKey))&&f){var w=48;a>95&&(w=96);var K=a-w;m(),n.currentTime(n.duration()*K*.1)}for(var S in t.customKeys){var F=t.customKeys[S];F&&F.key&&F.handler&&F.key(e)&&(m(),F.handler(n,t,e))}}}}),n.on("dblclick",function(e){if(n.controls()){var t=e.relatedTarget||e.toElement||u.activeElement;t!=o&&t!=o.querySelector(".vjs-tech")&&t!=o.querySelector(".iframeblocker")||y&&(n.isFullscreen()?n.exitFullscreen():n.requestFullscreen())}}),n.on("mousewheel",w),n.on("DOMMouseScroll",w),this})});
+//# sourceMappingURL=videojs.hotkeys.min.js.map \ No newline at end of file
diff --git a/assets/netcut/lib/videojs-hotkeys/videojs.hotkeys.min.js.map b/assets/netcut/lib/videojs-hotkeys/videojs.hotkeys.min.js.map
new file mode 100644
index 0000000..0cace8c
--- /dev/null
+++ b/assets/netcut/lib/videojs-hotkeys/videojs.hotkeys.min.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["videojs.hotkeys.js"],"names":["root","factory","window","videojs","define","amd","module","default","exports","require","this","version","registerPlugin","plugin","options","seekStepD","e","seekStep","player","pEl","el","doc","document","def_options","volumeStep","enableMute","enableVolumeScroll","enableFullscreen","enableNumbers","enableJogStyle","alwaysCaptureHotkeys","enableModifiersForNumbers","enableInactiveFocus","skipInitialFocus","playPauseKey","which","rewindKey","forwardKey","volumeUpKey","volumeDownKey","muteKey","fullscreenKey","customKeys","mergeOptions","util","enableFull","hasAttribute","setAttribute","style","outline","autoplay","one","focus","on","cancelFocusingPlayer","clearTimeout","focusingPlayerTimeout","setTimeout","off","activeElement","controlBar","querySelector","parentElement","ifblocker","display","bottom","mouseScroll","event","controls","activeEl","delta","Math","max","min","wheelDelta","detail","preventDefault","volume","checkKeys","wasPlaying","seekTime","ewhich","ePreventDefault","duration","stopPropagation","paused","play","pause","currentTime","muted","isFullscreen","exitFullscreen","requestFullscreen","metaKey","ctrlKey","altKey","sub","number","customKey","customHotkey","key","handler","relatedTarget","toElement"],"mappings":"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","file":"videojs.hotkeys.min.js"} \ No newline at end of file