diff options
Diffstat (limited to 'javascript/videojs/src/js/title-bar.js')
| -rw-r--r-- | javascript/videojs/src/js/title-bar.js | 138 |
1 files changed, 0 insertions, 138 deletions
diff --git a/javascript/videojs/src/js/title-bar.js b/javascript/videojs/src/js/title-bar.js deleted file mode 100644 index 1b59cb8..0000000 --- a/javascript/videojs/src/js/title-bar.js +++ /dev/null @@ -1,138 +0,0 @@ -import Component from './component'; -import * as Dom from './utils/dom'; -import * as Guid from './utils/guid'; -import * as Obj from './utils/obj'; - -/** - * Displays an element over the player which contains an optional title and - * description for the current content. - * - * Much of the code for this component originated in the now obsolete - * videojs-dock plugin: https://github.com/brightcove/videojs-dock/ - * - * @extends Component - */ -class TitleBar extends Component { - - constructor(player, options) { - super(player, options); - this.on('statechanged', (e) => this.updateDom_()); - this.updateDom_(); - } - - /** - * Create the `TitleBar`'s DOM element - * - * @return {Element} - * The element that was created. - */ - createEl() { - this.els = { - title: Dom.createEl('div', { - className: 'vjs-title-bar-title', - id: `vjs-title-bar-title-${Guid.newGUID()}` - }), - description: Dom.createEl('div', { - className: 'vjs-title-bar-description', - id: `vjs-title-bar-description-${Guid.newGUID()}` - }) - }; - - return Dom.createEl('div', { - className: 'vjs-title-bar' - }, {}, Obj.values(this.els)); - } - - /** - * Updates the DOM based on the component's state object. - */ - updateDom_() { - const tech = this.player_.tech_; - const techEl = tech && tech.el_; - const techAriaAttrs = { - title: 'aria-labelledby', - description: 'aria-describedby' - }; - - ['title', 'description'].forEach(k => { - const value = this.state[k]; - const el = this.els[k]; - const techAriaAttr = techAriaAttrs[k]; - - Dom.emptyEl(el); - - if (value) { - Dom.textContent(el, value); - } - - // If there is a tech element available, update its ARIA attributes - // according to whether a title and/or description have been provided. - if (techEl) { - techEl.removeAttribute(techAriaAttr); - - if (value) { - techEl.setAttribute(techAriaAttr, el.id); - } - } - }); - - if (this.state.title || this.state.description) { - this.show(); - } else { - this.hide(); - } - } - - /** - * Update the contents of the title bar component with new title and - * description text. - * - * If both title and description are missing, the title bar will be hidden. - * - * If either title or description are present, the title bar will be visible. - * - * NOTE: Any previously set value will be preserved. To unset a previously - * set value, you must pass an empty string or null. - * - * For example: - * - * ``` - * update({title: 'foo', description: 'bar'}) // title: 'foo', description: 'bar' - * update({description: 'bar2'}) // title: 'foo', description: 'bar2' - * update({title: ''}) // title: '', description: 'bar2' - * update({title: 'foo', description: null}) // title: 'foo', description: null - * ``` - * - * @param {Object} [options={}] - * An options object. When empty, the title bar will be hidden. - * - * @param {string} [options.title] - * A title to display in the title bar. - * - * @param {string} [options.description] - * A description to display in the title bar. - */ - update(options) { - this.setState(options); - } - - /** - * Dispose the component. - */ - dispose() { - const tech = this.player_.tech_; - const techEl = tech && tech.el_; - - if (techEl) { - techEl.removeAttribute('aria-labelledby'); - techEl.removeAttribute('aria-describedby'); - } - - super.dispose(); - this.els = null; - } -} - -Component.registerComponent('TitleBar', TitleBar); - -export default TitleBar; |
