"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;