import _inheritsLoose from "@babel/runtime/helpers/inheritsLoose"; import videojs from 'video.js'; var MenuButton = videojs.getComponent('MenuButton'); var Menu = videojs.getComponent('Menu'); var Component = videojs.getComponent('Component'); var Dom = videojs.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 = /*#__PURE__*/function (_MenuButton) { _inheritsLoose(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); export { ConcreteButton as default };