Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) Safe-mode: OFF (not secure) /var/www/html/wincloud_gateway/node_modules/video-react/lib/components/ drwxr-xr-x | |
| Viewing file: Select action/file-type: "use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _react = require("react");
var _propTypes = _interopRequireDefault(require("prop-types"));
var _dom = require("../utils/dom");
var propTypes = {
clickable: _propTypes["default"].bool,
dblclickable: _propTypes["default"].bool,
manager: _propTypes["default"].object,
actions: _propTypes["default"].object,
player: _propTypes["default"].object,
shortcuts: _propTypes["default"].array
};
var defaultProps = {
clickable: true,
dblclickable: true
};
var Shortcut =
/*#__PURE__*/
function (_Component) {
(0, _inherits2["default"])(Shortcut, _Component);
function Shortcut(props, context) {
var _this;
(0, _classCallCheck2["default"])(this, Shortcut);
_this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(Shortcut).call(this, props, context));
_this.defaultShortcuts = [{
keyCode: 32,
// spacebar
handle: _this.togglePlay
}, {
keyCode: 75,
// k
handle: _this.togglePlay
}, {
keyCode: 70,
// f
handle: _this.toggleFullscreen
}, {
keyCode: 37,
// Left arrow
handle: function handle(player, actions) {
if (!player.hasStarted) {
return;
}
actions.replay(5, {
action: 'replay-5',
source: 'shortcut'
}); // Go back 5 seconds
}
}, {
keyCode: 74,
// j
handle: function handle(player, actions) {
if (!player.hasStarted) {
return;
}
actions.replay(10, {
action: 'replay-10',
source: 'shortcut'
}); // Go back 10 seconds
}
}, {
keyCode: 39,
// Right arrow
handle: function handle(player, actions) {
if (!player.hasStarted) {
return;
}
actions.forward(5, {
action: 'forward-5',
source: 'shortcut'
}); // Go forward 5 seconds
}
}, {
keyCode: 76,
// l
handle: function handle(player, actions) {
if (!player.hasStarted) {
return;
}
actions.forward(10, {
action: 'forward-10',
source: 'shortcut'
}); // Go forward 10 seconds
}
}, {
keyCode: 36,
// Home
handle: function handle(player, actions) {
if (!player.hasStarted) {
return;
}
actions.seek(0); // Go to beginning of video
}
}, {
keyCode: 35,
// End
handle: function handle(player, actions) {
if (!player.hasStarted) {
return;
} // Go to end of video
actions.seek(player.duration);
}
}, {
keyCode: 38,
// Up arrow
handle: function handle(player, actions) {
// Increase volume 5%
var v = player.volume + 0.05;
if (v > 1) {
v = 1;
}
actions.changeVolume(v, {
action: 'volume-up',
source: 'shortcut'
});
}
}, {
keyCode: 40,
// Down arrow
handle: function handle(player, actions) {
// Decrease volume 5%
var v = player.volume - 0.05;
if (v < 0) {
v = 0;
}
var action = v > 0 ? 'volume-down' : 'volume-off';
actions.changeVolume(v, {
action: action,
source: 'shortcut'
});
}
}, {
keyCode: 190,
// Shift + >
shift: true,
handle: function handle(player, actions) {
// Increase speed
var playbackRate = player.playbackRate;
if (playbackRate >= 1.5) {
playbackRate = 2;
} else if (playbackRate >= 1.25) {
playbackRate = 1.5;
} else if (playbackRate >= 1.0) {
playbackRate = 1.25;
} else if (playbackRate >= 0.5) {
playbackRate = 1.0;
} else if (playbackRate >= 0.25) {
playbackRate = 0.5;
} else if (playbackRate >= 0) {
playbackRate = 0.25;
}
actions.changeRate(playbackRate, {
action: 'fast-forward',
source: 'shortcut'
});
}
}, {
keyCode: 188,
// Shift + <
shift: true,
handle: function handle(player, actions) {
// Decrease speed
var playbackRate = player.playbackRate;
if (playbackRate <= 0.5) {
playbackRate = 0.25;
} else if (playbackRate <= 1.0) {
playbackRate = 0.5;
} else if (playbackRate <= 1.25) {
playbackRate = 1.0;
} else if (playbackRate <= 1.5) {
playbackRate = 1.25;
} else if (playbackRate <= 2) {
playbackRate = 1.5;
}
actions.changeRate(playbackRate, {
action: 'fast-rewind',
source: 'shortcut'
});
}
}];
_this.shortcuts = (0, _toConsumableArray2["default"])(_this.defaultShortcuts);
_this.mergeShortcuts = _this.mergeShortcuts.bind((0, _assertThisInitialized2["default"])(_this));
_this.handleKeyPress = _this.handleKeyPress.bind((0, _assertThisInitialized2["default"])(_this));
_this.handleClick = _this.handleClick.bind((0, _assertThisInitialized2["default"])(_this));
_this.handleDoubleClick = _this.handleDoubleClick.bind((0, _assertThisInitialized2["default"])(_this));
return _this;
}
(0, _createClass2["default"])(Shortcut, [{
key: "componentDidMount",
value: function componentDidMount() {
this.mergeShortcuts();
document.addEventListener('keydown', this.handleKeyPress);
document.addEventListener('click', this.handleClick);
document.addEventListener('dblclick', this.handleDoubleClick);
}
}, {
key: "componentDidUpdate",
value: function componentDidUpdate(prevProps) {
if (prevProps.shortcuts !== this.props.shortcuts) {
this.mergeShortcuts();
}
}
}, {
key: "componentWillUnmount",
value: function componentWillUnmount() {
document.removeEventListener('keydown', this.handleKeyPress);
document.removeEventListener('click', this.handleClick);
document.removeEventListener('dblclick', this.handleDoubleClick);
} // merge the shortcuts from props
}, {
key: "mergeShortcuts",
value: function mergeShortcuts() {
var getShortcutKey = function getShortcutKey(_ref) {
var _ref$keyCode = _ref.keyCode,
keyCode = _ref$keyCode === void 0 ? 0 : _ref$keyCode,
_ref$ctrl = _ref.ctrl,
ctrl = _ref$ctrl === void 0 ? false : _ref$ctrl,
_ref$shift = _ref.shift,
shift = _ref$shift === void 0 ? false : _ref$shift,
_ref$alt = _ref.alt,
alt = _ref$alt === void 0 ? false : _ref$alt;
return "".concat(keyCode, ":").concat(ctrl, ":").concat(shift, ":").concat(alt);
};
var defaultShortcuts = this.defaultShortcuts.reduce(function (shortcuts, shortcut) {
return Object.assign(shortcuts, (0, _defineProperty2["default"])({}, getShortcutKey(shortcut), shortcut));
}, {});
var mergedShortcuts = (this.props.shortcuts || []).reduce(function (shortcuts, shortcut) {
var keyCode = shortcut.keyCode,
handle = shortcut.handle;
if (keyCode && typeof handle === 'function') {
return Object.assign(shortcuts, (0, _defineProperty2["default"])({}, getShortcutKey(shortcut), shortcut));
}
return shortcuts;
}, defaultShortcuts);
var gradeShortcut = function gradeShortcut(s) {
var score = 0;
var ps = ['ctrl', 'shift', 'alt'];
ps.forEach(function (key) {
if (s[key]) {
score++;
}
});
return score;
};
this.shortcuts = Object.keys(mergedShortcuts).map(function (key) {
return mergedShortcuts[key];
}).sort(function (a, b) {
return gradeShortcut(b) - gradeShortcut(a);
});
}
}, {
key: "togglePlay",
value: function togglePlay(player, actions) {
if (player.paused) {
actions.play({
action: 'play',
source: 'shortcut'
});
} else {
actions.pause({
action: 'pause',
source: 'shortcut'
});
}
}
}, {
key: "toggleFullscreen",
value: function toggleFullscreen(player, actions) {
actions.toggleFullscreen(player);
}
}, {
key: "handleKeyPress",
value: function handleKeyPress(e) {
var _this$props = this.props,
player = _this$props.player,
actions = _this$props.actions;
if (!player.isActive) {
return;
}
if (document.activeElement && ((0, _dom.hasClass)(document.activeElement, 'video-react-control') || (0, _dom.hasClass)(document.activeElement, 'video-react-menu-button-active') || // || hasClass(document.activeElement, 'video-react-slider')
(0, _dom.hasClass)(document.activeElement, 'video-react-big-play-button'))) {
return;
}
var keyCode = e.keyCode || e.which;
var ctrl = e.ctrlKey || e.metaKey;
var shift = e.shiftKey;
var alt = e.altKey;
var shortcut = this.shortcuts.filter(function (s) {
if (!s.keyCode || s.keyCode - keyCode !== 0) {
return false;
}
if (s.ctrl !== undefined && s.ctrl !== ctrl || s.shift !== undefined && s.shift !== shift || s.alt !== undefined && s.alt !== alt) {
return false;
}
return true;
})[0];
if (shortcut) {
shortcut.handle(player, actions);
e.preventDefault();
}
} // only if player is active and player is ready
}, {
key: "canBeClicked",
value: function canBeClicked(player, e) {
if (!player.isActive || e.target.nodeName !== 'VIDEO' || player.readyState !== 4) {
return false;
}
return true;
}
}, {
key: "handleClick",
value: function handleClick(e) {
var _this$props2 = this.props,
player = _this$props2.player,
actions = _this$props2.actions,
clickable = _this$props2.clickable;
if (!this.canBeClicked(player, e) || !clickable) {
return;
}
this.togglePlay(player, actions); // e.preventDefault();
}
}, {
key: "handleDoubleClick",
value: function handleDoubleClick(e) {
var _this$props3 = this.props,
player = _this$props3.player,
actions = _this$props3.actions,
dblclickable = _this$props3.dblclickable;
if (!this.canBeClicked(player, e) || !dblclickable) {
return;
}
this.toggleFullscreen(player, actions); // e.preventDefault();
} // this component dose not render anything
// it's just for the key down event
}, {
key: "render",
value: function render() {
return null;
}
}]);
return Shortcut;
}(_react.Component);
exports["default"] = Shortcut;
Shortcut.propTypes = propTypes;
Shortcut.defaultProps = defaultProps;
Shortcut.displayName = 'Shortcut'; |
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0214 ]-- |