UNPKG

ngx-lite-video

Version:

ngx-lite-video is an Angular package for lazy loading embedded YouTube and Vimeo videos, improving page speed and user experience.

1 lines 1.97 kB
import{Injectable as e,Optional as t}from"@angular/core";import{catchError as r,map as o,of as i}from"rxjs";import*as a from"@angular/core";import*as n from"@angular/platform-browser";import*as s from"@angular/common/http";export class NgxLiteVideoGeneralService{constructor(e,t){this.__domSanitizer=e,this.__http=t,this.__youtubeSizes={sd:"sddefault",medium:"mqdefault",high:"hqdefault",max:"maxresdefault"},this.__thumbHelper={max:"thumbnail_large",high:"thumbnail_large",medium:"thumbnail_medium",sd:"thumbnail_small"}}getYouTubeBanner(e,t){return`https://img.youtube.com/vi/${e}/${this.__youtubeSizes[t]}.jpg`}getYouTubeUrl(e,t,r,o,i,a){return this.__domSanitizer.bypassSecurityTrustResourceUrl(`https://www.youtube-nocookie.com/embed/${e}?autoplay=1&controls=${t?"1":"0"}${o?"&playlist="+e+"&loop=1":""}${i?"&start="+i:""}${a?"&end="+a:""}${r?"&fs=1":"&fs=0"}`)}getVimeoVideoUrl(e,t,r,o){return this.__domSanitizer.bypassSecurityTrustResourceUrl(`https://player.vimeo.com/video/${e}?autoplay=1${t?"&controls=true":"&controls=false"}${r?"&loop=true":""}${o?"&background=true":""}`)}getVimeoBanner(e,t){return this.__http.get(`https://vimeo.com/api/v2/video/${e}.json`).pipe(o(e=>({bannerSrc:`url(${e[0][this.__thumbHelper[t]]})`,title:e[0].title})),r(()=>i({bannerSrc:"",title:""})))}hasNoVideoId(e){if(!e)throw Error("Video ID MUST be provided")}}NgxLiteVideoGeneralService.ɵfac=a.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"13.3.12",ngImport:a,type:NgxLiteVideoGeneralService,deps:[{token:n.DomSanitizer},{token:s.HttpClient,optional:!0}],target:a.ɵɵFactoryTarget.Injectable}),NgxLiteVideoGeneralService.ɵprov=a.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"13.3.12",ngImport:a,type:NgxLiteVideoGeneralService}),a.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"13.3.12",ngImport:a,type:NgxLiteVideoGeneralService,decorators:[{type:e}],ctorParameters:function(){return[{type:n.DomSanitizer},{type:s.HttpClient,decorators:[{type:t}]}]}});