mirror of
https://github.com/DanielnetoDotCom/YouPHPTube
synced 2025-10-03 17:59:55 +02:00
91 lines
No EOL
2.4 KiB
JavaScript
91 lines
No EOL
2.4 KiB
JavaScript
"use strict";
|
|
|
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.default = void 0;
|
|
var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
|
|
var _video = _interopRequireDefault(require("video.js"));
|
|
var MenuButton = _video.default.getComponent('MenuButton');
|
|
var Menu = _video.default.getComponent('Menu');
|
|
var Component = _video.default.getComponent('Component');
|
|
var Dom = _video.default.dom;
|
|
|
|
/**
|
|
* Convert string to title case.
|
|
*
|
|
* @param {string} string - the string to convert
|
|
* @return {string} the returned titlecase string
|
|
*/
|
|
function toTitleCase(string) {
|
|
if (typeof string !== 'string') {
|
|
return string;
|
|
}
|
|
return string.charAt(0).toUpperCase() + string.slice(1);
|
|
}
|
|
|
|
/**
|
|
* Extend vjs button class for quality button.
|
|
*/
|
|
var ConcreteButton = exports.default = /*#__PURE__*/function (_MenuButton) {
|
|
(0, _inheritsLoose2.default)(ConcreteButton, _MenuButton);
|
|
/**
|
|
* Button constructor.
|
|
*
|
|
* @param {Player} player - videojs player instance
|
|
*/
|
|
function ConcreteButton(player) {
|
|
return _MenuButton.call(this, player, {
|
|
title: player.localize('Quality'),
|
|
name: 'QualityButton'
|
|
}) || this;
|
|
}
|
|
|
|
/**
|
|
* Creates button items.
|
|
*
|
|
* @return {Array} - Button items
|
|
*/
|
|
var _proto = ConcreteButton.prototype;
|
|
_proto.createItems = function createItems() {
|
|
return [];
|
|
}
|
|
|
|
/**
|
|
* Create the menu and add all items to it.
|
|
*
|
|
* @return {Menu}
|
|
* The constructed menu
|
|
*/;
|
|
_proto.createMenu = function createMenu() {
|
|
var menu = new Menu(this.player_, {
|
|
menuButton: this
|
|
});
|
|
this.hideThreshold_ = 0;
|
|
|
|
// Add a title list item to the top
|
|
if (this.options_.title) {
|
|
var titleEl = Dom.createEl('li', {
|
|
className: 'vjs-menu-title',
|
|
innerHTML: toTitleCase(this.options_.title),
|
|
tabIndex: -1
|
|
});
|
|
var titleComponent = new Component(this.player_, {
|
|
el: titleEl
|
|
});
|
|
this.hideThreshold_ += 1;
|
|
menu.addItem(titleComponent);
|
|
}
|
|
this.items = this.createItems();
|
|
if (this.items) {
|
|
// Add menu items to the menu
|
|
for (var i = 0; i < this.items.length; i++) {
|
|
menu.addItem(this.items[i]);
|
|
}
|
|
}
|
|
return menu;
|
|
};
|
|
return ConcreteButton;
|
|
}(MenuButton);
|
|
module.exports = exports.default; |