UNPKG

@hercilio/ngx-youtube-player

Version:

[![Build Status](https://travis-ci.org/Hernior/ngx-youtube-player.svg?branch=master)](https://travis-ci.org/Hernior/ngx-youtube-player) [![npm version](https://badge.fury.io/js/ngx-youtube-player.svg)](https://badge.fury.io/js/ngx-youtube-player) [![npm d

74 lines 8.87 kB
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core'; import { defaultSizes } from './ngx-youtube-player.service'; import * as i0 from "@angular/core"; import * as i1 from "./ngx-youtube-player.service"; export class YoutubePlayerComponent { constructor(playerService, elementRef, renderer) { this.playerService = playerService; this.elementRef = elementRef; this.renderer = renderer; this.videoId = ''; this.height = defaultSizes.height; this.width = defaultSizes.width; /** * @description sets the protocol by the navigator object * if there is no window, it sets a default http protocol * unless the protocol is set from outside */ this.protocol = this.getProtocol(); this.playerVars = {}; // player created and initialized - sends instance of the player this.ready = new EventEmitter(); // state change: send the YT event with its state this.change = new EventEmitter(); } ngAfterContentInit() { const htmlId = this.playerService.generateUniqueId(); const playerSize = { height: this.height, width: this.width }; const container = this.renderer.selectRootElement('#yt-player-ngx-component'); this.renderer.setAttribute(container, 'id', htmlId); this.playerService.loadPlayerApi({ protocol: this.protocol }); this.playerService.setupPlayer(htmlId, { change: this.change, ready: this.ready }, playerSize, this.videoId, this.playerVars); } getProtocol() { const hasWindow = window && window.location; const protocol = hasWindow ? window.location.protocol.replace(':', '') : 'http'; return protocol; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: YoutubePlayerComponent, deps: [{ token: i1.YoutubePlayerService }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: YoutubePlayerComponent, selector: "youtube-player", inputs: { videoId: "videoId", height: "height", width: "width", protocol: "protocol", playerVars: "playerVars" }, outputs: { ready: "ready", change: "change" }, ngImport: i0, template: ` <div id="yt-player-ngx-component"></div> `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: YoutubePlayerComponent, decorators: [{ type: Component, args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'youtube-player', template: ` <div id="yt-player-ngx-component"></div> ` }] }], ctorParameters: () => [{ type: i1.YoutubePlayerService }, { type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { videoId: [{ type: Input }], height: [{ type: Input }], width: [{ type: Input }], protocol: [{ type: Input }], playerVars: [{ type: Input }], ready: [{ type: Output }], change: [{ type: Output }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXlvdXR1YmUtcGxheWVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC15b3V0dWJlLXBsYXllci9zcmMvbGliL25neC15b3V0dWJlLXBsYXllci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBR1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLFlBQVksRUFDYixNQUFNLDhCQUE4QixDQUFDOzs7QUFTdEMsTUFBTSxPQUFPLHNCQUFzQjtJQWlCakMsWUFDUyxhQUFtQyxFQUNsQyxVQUFzQixFQUN0QixRQUFtQjtRQUZwQixrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUFDbEMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBbkJwQixZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsV0FBTSxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUM7UUFDN0IsVUFBSyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDcEM7Ozs7V0FJRztRQUNNLGFBQVEsR0FBVyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdEMsZUFBVSxHQUFrQixFQUFFLENBQUM7UUFFeEMsZ0VBQWdFO1FBQ3RELFVBQUssR0FBRyxJQUFJLFlBQVksRUFBYSxDQUFDO1FBQ2hELGlEQUFpRDtRQUN2QyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7SUFNbkQsQ0FBQztJQUVKLGtCQUFrQjtRQUNoQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDckQsTUFBTSxVQUFVLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzlELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQy9DLDBCQUEwQixDQUMzQixDQUFDO1FBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQztZQUMvQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDeEIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQzVCLE1BQU0sRUFDTjtZQUNFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7U0FDbEIsRUFDRCxVQUFVLEVBQ1YsSUFBSSxDQUFDLE9BQU8sRUFDWixJQUFJLENBQUMsVUFBVSxDQUNoQixDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVc7UUFDVCxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUM1QyxNQUFNLFFBQVEsR0FBRyxTQUFTO1lBQ3hCLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQztZQUMzQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ1gsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQzsrR0FuRFUsc0JBQXNCO21HQUF0QixzQkFBc0IsdU5BSnZCOztHQUVUOzs0RkFFVSxzQkFBc0I7a0JBUGxDLFNBQVM7bUJBQUM7b0JBQ1QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFFBQVEsRUFBRTs7R0FFVDtpQkFDRjswSUFFVSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFNRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR0ksS0FBSztzQkFBZCxNQUFNO2dCQUVHLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG4gIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBZb3V0dWJlUGxheWVyU2VydmljZSxcbiAgZGVmYXVsdFNpemVzXG59IGZyb20gJy4vbmd4LXlvdXR1YmUtcGxheWVyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHNlbGVjdG9yOiAneW91dHViZS1wbGF5ZXInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgaWQ9XCJ5dC1wbGF5ZXItbmd4LWNvbXBvbmVudFwiPjwvZGl2PlxuICBgXG59KVxuZXhwb3J0IGNsYXNzIFlvdXR1YmVQbGF5ZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgQElucHV0KCkgdmlkZW9JZCA9ICcnO1xuICBASW5wdXQoKSBoZWlnaHQgPSBkZWZhdWx0U2l6ZXMuaGVpZ2h0O1xuICBASW5wdXQoKSB3aWR0aCA9IGRlZmF1bHRTaXplcy53aWR0aDtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBzZXRzIHRoZSBwcm90b2NvbCBieSB0aGUgbmF2aWdhdG9yIG9iamVjdFxuICAgKiBpZiB0aGVyZSBpcyBubyB3aW5kb3csIGl0IHNldHMgYSBkZWZhdWx0IGh0dHAgcHJvdG9jb2xcbiAgICogdW5sZXNzIHRoZSBwcm90b2NvbCBpcyBzZXQgZnJvbSBvdXRzaWRlXG4gICAqL1xuICBASW5wdXQoKSBwcm90b2NvbDogc3RyaW5nID0gdGhpcy5nZXRQcm90b2NvbCgpO1xuICBASW5wdXQoKSBwbGF5ZXJWYXJzOiBZVC5QbGF5ZXJWYXJzID0ge307XG5cbiAgLy8gcGxheWVyIGNyZWF0ZWQgYW5kIGluaXRpYWxpemVkIC0gc2VuZHMgaW5zdGFuY2Ugb2YgdGhlIHBsYXllclxuICBAT3V0cHV0KCkgcmVhZHkgPSBuZXcgRXZlbnRFbWl0dGVyPFlULlBsYXllcj4oKTtcbiAgLy8gc3RhdGUgY2hhbmdlOiBzZW5kIHRoZSBZVCBldmVudCB3aXRoIGl0cyBzdGF0ZVxuICBAT3V0cHV0KCkgY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxZVC5QbGF5ZXJFdmVudD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcGxheWVyU2VydmljZTogWW91dHViZVBsYXllclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMlxuICApIHt9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIGNvbnN0IGh0bWxJZCA9IHRoaXMucGxheWVyU2VydmljZS5nZW5lcmF0ZVVuaXF1ZUlkKCk7XG4gICAgY29uc3QgcGxheWVyU2l6ZSA9IHsgaGVpZ2h0OiB0aGlzLmhlaWdodCwgd2lkdGg6IHRoaXMud2lkdGggfTtcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLnJlbmRlcmVyLnNlbGVjdFJvb3RFbGVtZW50KFxuICAgICAgJyN5dC1wbGF5ZXItbmd4LWNvbXBvbmVudCdcbiAgICApO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGNvbnRhaW5lciwgJ2lkJywgaHRtbElkKTtcbiAgICB0aGlzLnBsYXllclNlcnZpY2UubG9hZFBsYXllckFwaSh7XG4gICAgICBwcm90b2NvbDogdGhpcy5wcm90b2NvbFxuICAgIH0pO1xuICAgIHRoaXMucGxheWVyU2VydmljZS5zZXR1cFBsYXllcihcbiAgICAgIGh0bWxJZCxcbiAgICAgIHtcbiAgICAgICAgY2hhbmdlOiB0aGlzLmNoYW5nZSxcbiAgICAgICAgcmVhZHk6IHRoaXMucmVhZHlcbiAgICAgIH0sXG4gICAgICBwbGF5ZXJTaXplLFxuICAgICAgdGhpcy52aWRlb0lkLFxuICAgICAgdGhpcy5wbGF5ZXJWYXJzXG4gICAgKTtcbiAgfVxuXG4gIGdldFByb3RvY29sKCkge1xuICAgIGNvbnN0IGhhc1dpbmRvdyA9IHdpbmRvdyAmJiB3aW5kb3cubG9jYXRpb247XG4gICAgY29uc3QgcHJvdG9jb2wgPSBoYXNXaW5kb3dcbiAgICAgID8gd2luZG93LmxvY2F0aW9uLnByb3RvY29sLnJlcGxhY2UoJzonLCAnJylcbiAgICAgIDogJ2h0dHAnO1xuICAgIHJldHVybiBwcm90b2NvbDtcbiAgfVxufVxuIl19