UNPKG

@deepakhb2/ngx-embed-video

Version:

> Get embed code for embedding youtube/vimeo/dailymotion/\* video in websites from URL or ID in Angular 7+ (Tested on 9/10). > Currently supports YouTube, Vimeo and Dailymotion. Feel free to make pull request to add others!

2 lines 4.84 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common/http"),require("@angular/platform-browser"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("@deepakhb2/ngx-embed-video",["exports","@angular/core","@angular/common/http","@angular/platform-browser","rxjs/operators"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).deepakhb2=e.deepakhb2||{},e.deepakhb2["ngx-embed-video"]={}),e.ng.core,e.ng.common.http,e.ng.platformBrowser,e.rxjs.operators)}(this,(function(e,t,i,o,n){"use strict";var r=function(){function e(e,t){this.http=e,this.sanitizer=t,this.validYouTubeOptions=["default","mqdefault","hqdefault","sddefault","maxresdefault"],this.validVimeoOptions=["thumbnail_small","thumbnail_medium","thumbnail_large"],this.validDailyMotionOptions=["thumbnail_60_url","thumbnail_120_url","thumbnail_180_url","thumbnail_240_url","thumbnail_360_url","thumbnail_480_url","thumbnail_720_url","thumbnail_1080_url"]}return e.prototype.embed=function(e,t){var i;return e=new URL(e),(i=this.detectYoutube(e))?this.embed_youtube(i,t):(i=this.detectVimeo(e))?this.embed_vimeo(i,t):(i=this.detectDailymotion(e))?this.embed_dailymotion(i,t):void 0},e.prototype.embed_youtube=function(e,t){return t=this.parseOptions(t),this.sanitize_iframe('<iframe src="https://www.youtube.com/embed/'+e+t.query+'"'+t.attr+' frameborder="0" allowfullscreen></iframe>')},e.prototype.embed_vimeo=function(e,t){return t=this.parseOptions(t),this.sanitize_iframe('<iframe src="https://player.vimeo.com/video/'+e+t.query+'"'+t.attr+' frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>')},e.prototype.embed_dailymotion=function(e,t){return t=this.parseOptions(t),this.sanitize_iframe('<iframe src="https://www.dailymotion.com/embed/video/'+e+t.query+'"'+t.attr+' frameborder="0" allowfullscreen></iframe>')},e.prototype.embed_image=function(e,t){var i;return e=new URL(e),(i=this.detectYoutube(e))?this.embed_youtube_image(i,t):(i=this.detectVimeo(e))?this.embed_vimeo_image(i,t):(i=this.detectDailymotion(e))?this.embed_dailymotion_image(i,t):void 0},e.prototype.embed_youtube_image=function(e,t){"function"==typeof t&&(t={}),(t=t||{}).image=this.validYouTubeOptions.indexOf(t.image)>0?t.image:"default";var i="https://img.youtube.com/vi/"+e+"/"+t.image+".jpg",o={link:i,html:'<img src="'+i+'"/>'};return new Promise((function(e){e(o)}))},e.prototype.embed_vimeo_image=function(e,t){return"function"==typeof t&&(t={}),(t=t||{}).image=this.validVimeoOptions.indexOf(t.image)>=0?t.image:"thumbnail_large",this.http.get("https://vimeo.com/api/v2/video/"+e+".json").pipe(n.map((function(e){return{link:e[0][t.image],html:'<img src="'+e[0][t.image]+'"/>'}}))).toPromise().catch((function(e){return console.log(e)}))},e.prototype.embed_dailymotion_image=function(e,t){return"function"==typeof t&&(t={}),(t=t||{}).image=this.validDailyMotionOptions.indexOf(t.image)>=0?t.image:"thumbnail_480_url",this.http.get("https://api.dailymotion.com/video/"+e+"?fields="+t.image).pipe(n.map((function(e){return{link:e[t.image],html:'<img src="'+e[t.image]+'"/>'}}))).toPromise().catch((function(e){return console.log(e)}))},e.prototype.parseOptions=function(e){var t="",i="";if(e&&e.hasOwnProperty("query")&&(t="?"+this.serializeQuery(e.query)),e&&e.hasOwnProperty("attr")){var o=[];Object.keys(e.attr).forEach((function(t){o.push(t+'="'+e.attr[t]+'"')})),i=" "+o.join(" ")}return{query:t,attr:i}},e.prototype.serializeQuery=function(e){var t=[];for(var i in e)e.hasOwnProperty(i)&&t.push(encodeURIComponent(i)+"="+encodeURIComponent(e[i]));return t.join("&")},e.prototype.sanitize_iframe=function(e){return this.sanitizer.bypassSecurityTrustHtml(e)},e.prototype.detectVimeo=function(e){return"vimeo.com"===e.hostname?e.pathname.split("/")[1]:null},e.prototype.detectYoutube=function(e){return e.hostname.indexOf("youtube.com")>-1?e.search.split("=")[1]:"youtu.be"===e.hostname?e.pathname.split("/")[1]:""},e.prototype.detectDailymotion=function(e){return e.hostname.indexOf("dailymotion.com")>-1?e.pathname.split("/")[2].split("_")[0]:"dai.ly"===e.hostname?e.pathname.split("/")[1]:""},e}();r.decorators=[{type:t.Injectable}],r.ctorParameters=function(){return[{type:i.HttpClient},{type:o.DomSanitizer}]};var a=function(){function e(){}return e.prototype.ngOnInit=function(){},e}();a.decorators=[{type:t.Component,args:[{selector:"lib-ngx-embed-video",template:"\n <p>\n ngx-embed-video works!\n </p>\n "}]}],a.ctorParameters=function(){return[]};var m=function(){};m.decorators=[{type:t.NgModule,args:[{declarations:[a],imports:[],exports:[a]}]}],e.NgxEmbedVideoComponent=a,e.NgxEmbedVideoModule=m,e.NgxEmbedVideoService=r,Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=deepakhb2-ngx-embed-video.umd.min.js.map