UNPKG

cloudinary-video-player

Version:
49 lines (46 loc) 1.57 kB
import { _ as _vjs } from './_videojs-proxy.js'; const ClickableComponent = _vjs.getComponent('ClickableComponent'); class ShareDownloadButton extends ClickableComponent { constructor(player) { let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; super(player, options); } handleClick(event) { super.handleClick(event); // Delegate the actual download to the plugin API if present if (this.player().share && typeof this.player().share.download === 'function') { this.player().share.download(); } } createEl() { const button = _vjs.dom.createEl('button', { className: 'vjs-control vjs-share-download-button vjs-button', ariaLabel: 'Download video', title: 'Download video' }); const iconSpan = _vjs.dom.createEl('span', { className: 'vjs-icon-file-download vjs-icon-placeholder' }); button.appendChild(iconSpan); const spinnerSpan = _vjs.dom.createEl('span', { className: 'vjs-loading-spinner' }); button.appendChild(spinnerSpan); return button; } /** * Toggles the "preparing download" visual state (spinner + title). * @param {boolean} isPreparing */ setPreparing(isPreparing) { const el = this.el(); if (isPreparing) { el.classList.add('vjs-waiting'); el.setAttribute('title', 'Download is being prepared'); } else { el.classList.remove('vjs-waiting'); el.setAttribute('title', 'Download video'); } } } _vjs.registerComponent('ShareDownloadButton', ShareDownloadButton);