/** * @file chapters-track-menu-item.js */ import MenuItem from '../../menu/menu-item.js'; import Component from '../../component.js'; /** * The chapter track menu item * * @extends MenuItem */ class ChaptersTrackMenuItem extends MenuItem { /** * Creates an instance of this class. * * @param { import('../../player').default } player * The `Player` that this class should be attached to. * * @param {Object} [options] * The key/value store of player options. */ constructor(player, options) { const track = options.track; const cue = options.cue; const currentTime = player.currentTime(); // Modify options for parent MenuItem class's init. options.selectable = true; options.multiSelectable = false; options.label = cue.text; options.selected = (cue.startTime <= currentTime && currentTime < cue.endTime); super(player, options); this.track = track; this.cue = cue; } /** * This gets called when an `ChaptersTrackMenuItem` is "clicked". See * {@link ClickableComponent} for more detailed information on what a click can be. * * @param {Event} [event] * The `keydown`, `tap`, or `click` event that caused this function to be * called. * * @listens tap * @listens click */ handleClick(event) { super.handleClick(); this.player_.currentTime(this.cue.startTime); } } Component.registerComponent('ChaptersTrackMenuItem', ChaptersTrackMenuItem); export default ChaptersTrackMenuItem;