UNPKG

ng5-yt-player

Version:

* [Description](#Description) * [Usage](#usage) * [Events](#Events) * [Download](#download)

152 lines (147 loc) 5.36 kB
(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core')) : typeof define === 'function' && define.amd ? define(['exports', '@angular/core'], factory) : (factory((global['ng5-yt-player'] = {}),global.ng.core)); }(this, (function (exports,core) { 'use strict'; var $window = window; var iFrameSrc = 'http://www.youtube.com/iframe_api'; var YoutubePlayerService = (function () { /** * @param {?} zone */ function YoutubePlayerService(zone) { this.zone = zone; } /** * @param {?} domElementId * @param {?} playerOptions * @param {?} readyEvent * @param {?} stateChangeEvent * @return {?} */ YoutubePlayerService.prototype.createPlayer = function (domElementId, playerOptions, readyEvent, stateChangeEvent) { var _this = this; return setInterval(function () { if ((typeof $window.YT !== 'undefined') && $window.YT && $window.YT.Player) { var /** @type {?} */ player = new $window.YT.Player(domElementId, Object.assign({}, playerOptions, { events: { onReady: function (ev) { _this.zone.run(function () { return readyEvent.emit(ev.target); }); }, onStateChange: function (ev) { /** * player state is 1 (playing), 2 for Pause. Reference https://developers.google.com/youtube/iframe_api_reference */ _this.zone.run(function () { return stateChangeEvent.emit(ev.data); }); } } })); } }, 100); }; /** * @return {?} */ YoutubePlayerService.prototype.loadPlayerApi = function () { var /** @type {?} */ doc = $window.document; var /** @type {?} */ playerApi = doc.createElement('script'); playerApi.type = 'text/javascript'; playerApi.src = iFrameSrc; doc.body.appendChild(playerApi); }; return YoutubePlayerService; }()); YoutubePlayerService.decorators = [ { type: core.Injectable }, ]; /** * @nocollapse */ YoutubePlayerService.ctorParameters = function () { return [ { type: core.NgZone, }, ]; }; var YoutubePlayerComponent = (function () { /** * @param {?} playerService */ function YoutubePlayerComponent(playerService) { this.playerService = playerService; this.playerReadyEvent = new core.EventEmitter(); this.playerStateChangeEvent = new core.EventEmitter(); this.domId = 'player-' + this.guid(); } /** * @return {?} */ YoutubePlayerComponent.prototype.ngAfterContentInit = function () { var /** @type {?} */ playerOptions = { videoId: this.videoId || '', height: this.height || 300, width: this.width || 300, playerVars: Object.assign({}, this.playerParams, { enablejsapi: 1 }) }; this.playerService.loadPlayerApi(); this.playerService.createPlayer(this.domId, playerOptions, this.playerReadyEvent, this.playerStateChangeEvent); }; /** * @return {?} */ YoutubePlayerComponent.prototype.guid = function () { /** * @return {?} */ function s4() { return Math.floor((1 + Math.random()) * 0x10000) .toString(16) .substring(1); } return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4(); }; return YoutubePlayerComponent; }()); YoutubePlayerComponent.decorators = [ { type: core.Component, args: [{ selector: 'ng5-youtube-player', template: "\n <div [id]=\"domId\"></div>\n ", styles: ["\n\n "] },] }, ]; /** * @nocollapse */ YoutubePlayerComponent.ctorParameters = function () { return [ { type: YoutubePlayerService, }, ]; }; YoutubePlayerComponent.propDecorators = { 'videoId': [{ type: core.Input },], 'height': [{ type: core.Input },], 'width': [{ type: core.Input },], 'playerParams': [{ type: core.Input },], 'playerReadyEvent': [{ type: core.Output },], 'playerStateChangeEvent': [{ type: core.Output },], }; var YouTubePlayerModule = (function () { function YouTubePlayerModule() { } return YouTubePlayerModule; }()); YouTubePlayerModule.decorators = [ { type: core.NgModule, args: [{ declarations: [ YoutubePlayerComponent ], schemas: [core.NO_ERRORS_SCHEMA, core.CUSTOM_ELEMENTS_SCHEMA], providers: [YoutubePlayerService], exports: [ YoutubePlayerComponent ] },] }, ]; /** * @nocollapse */ YouTubePlayerModule.ctorParameters = function () { return []; }; exports.YouTubePlayerModule = YouTubePlayerModule; exports.ɵb = YoutubePlayerService; exports.ɵa = YoutubePlayerComponent; Object.defineProperty(exports, '__esModule', { value: true }); }))); //# sourceMappingURL=ng5-yt-player.umd.js.map