Files
shaka-player/demo/close_button.js
T
theodab e8e28073c1 chore(demo): Removed demo localization system (#5665)
A localization system was added to the demo, in preparation for future localizations of the demo page.
However, such further localizations were never added, and it seems likely that they will never be added.
Given that it will almost definitely never be used, the localization system has just become an annoyance that makes adding new features to the demo more difficult, so this removes the system entirely.
2023-09-25 02:58:39 -07:00

61 lines
1.7 KiB
JavaScript

/*! @license
* Shaka Player
* Copyright 2016 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
goog.provide('shakaDemo.CloseButton');
/**
* A custom UI button, to allow users to close the video element.
* This cannot actually extend shaka.ui.Element, as that class does not exist
* at load-time when in uncompiled mode.
* @extends {shaka.ui.Element}
*/
shakaDemo.CloseButton = class extends shaka.ui.Element {
/**
* @param {!HTMLElement} parent
* @param {!shaka.ui.Controls} controls
*/
constructor(parent, controls) {
super(parent, controls);
this.button_ = document.createElement('button');
this.button_.classList.add('material-icons-round');
this.button_.classList.add('close-button');
this.button_.textContent = 'close'; // Close icon.
this.parent.appendChild(this.button_);
this.button_.addEventListener('click', () => {
shakaDemoMain.unload();
});
if ('documentPictureInPicture' in window) {
this.eventManager.listen(
window.documentPictureInPicture, 'enter', () => {
this.button_.style.display = 'none';
const pipWindow = window.documentPictureInPicture.window;
this.eventManager.listen(pipWindow, 'pagehide', () => {
this.button_.style.display = 'block';
});
});
}
}
};
/**
* @implements {shaka.extern.IUIElement.Factory}
* @final
*/
shakaDemo.CloseButton.Factory = class {
/** @override */
create(rootElement, controls) {
return new shakaDemo.CloseButton(rootElement, controls);
}
};
// This button is registered inside setup in shakaDemo.Main, rather than
// statically here, since shaka.ui.Controls does not exist in this stage of the
// load process.