import {nativeVlElement, define} from '/node_modules/vl-ui-core/dist/vl-core.js';
import '/node_modules/@govflanders/vl-ui-util/dist/js/util.js';
import '/node_modules/@govflanders/vl-ui-core/dist/js/core.js';
import '/lib/video-player.js';
/**
* VlVideoPlayer
* @class
* @classdesc Een toegankelijke video speler met HTML5 ondersteuning.
*
* @extends HTMLElement
*
* @see {@link https://www.github.com/milieuinfo/webcomponent-vl-ui-video-player/releases/latest|Release notes}
* @see {@link https://www.github.com/milieuinfo/webcomponent-vl-ui-video-player/issues|Issues}
* @see {@link https://webcomponenten.omgeving.vlaanderen.be/demo/vl-video-player.html|Demo}
*
*/
export class VlVideoPlayer extends nativeVlElement(HTMLVideoElement) {
connectedCallback() {
this._processStyle();
}
get _containerTemplate() {
return this._template(`<div class="vl-video-player"></div>`);
}
get _hasContainer() {
return this.closest('.vl-video-player') != undefined;
}
get _isDressed() {
return this.hasAttribute('data-vl-video-player-dressed');
}
_processStyle() {
this.setAttribute('data-vl-video-player', '');
this._addContainerElement();
this._dress();
}
_dress() {
if (!this._isDressed) {
vl.videoPlayer.dress(this);
}
}
_addContainerElement() {
if (!this._hasContainer) {
const container = this._containerTemplate.firstElementChild;
this.parentElement.append(container);
container.append(this);
}
}
}
define('vl-video-player', VlVideoPlayer, {extends: 'video'});