bitmovin-player-ui
Version:
Bitmovin Player UI Framework
46 lines (39 loc) • 1.27 kB
text/typescript
import { ButtonConfig } from '../buttons/Button';
import { Component, ComponentConfig } from '../Component';
import { Container } from '../Container';
import { PlayerAPI } from 'bitmovin-player';
import { UIInstanceManager } from '../../UIManager';
import { SettingsPanel } from '../settings/SettingsPanel';
export interface DismissClickOverlayConfig extends ButtonConfig {
target: Component<ComponentConfig>;
}
export class DismissClickOverlay extends Container<DismissClickOverlayConfig> {
constructor(config: DismissClickOverlayConfig) {
super(config);
this.config = this.mergeConfig(
config,
{
cssClass: 'ui-dismiss-click-overlay',
role: this.config.role,
},
<DismissClickOverlayConfig>this.config,
);
}
configure(player: PlayerAPI, uimanager: UIInstanceManager) {
super.configure(player, uimanager);
this.config.target.onShow.subscribe(() => {
this.show();
});
this.config.target.onHide.subscribe(() => {
this.hide();
});
const element = this.getDomElement();
element.on('click', () => {
if (this.config.target instanceof SettingsPanel) {
this.config.target.hideAndReset();
} else {
this.config.target.hide();
}
});
}
}